Accueil > Forum > > > > inserer une fonction javascript dans une page css
inserer une fonction javascript dans une page css
dimanche 28 novembre 2010 à 19:25:17 |
inserer une fonction javascript dans une page css

medas918
|
Code Javascript : <script language="JavaScript">
alert("bonjour le site est en construction")
</script>
<script language="JavaScript">
// fonction de conversion en hexadécimal
var hexa = "0123465789ABCDEF";
function convert_hexa(nb) {
return hexa.charAt(Math.floor(nb/16)) + hexa.charAt(nb%16);
}
// r1,g1,b1 représentent les couleurs de départ (en RGB)
// r2,g2,b2 représentent les couleurs de fin (en RGB)
// texte représente la chaîne à afficher
// size est la taille du dégradé (nombre de lettres au final (avec ajouts d'espace si nécessaire))
// (si < taille du texte, on prend cette dernière)
function degrade(r1,g1,b1,r2,g2,b2,texte,size) {
var nb = texte.length;
var s = nb;
var dt = 1;
if ( size > s ) {
dt = Math.round( ( size - 2 ) / ( nb - 1 ) );
s = dt * ( nb - 1 );
}
dr = ( r2 - r1 ) / s;
dg = ( g2 - g1 ) / s;
db = ( b2 - b1 ) / s;
for ( var i = 0; i <= s; i++ ) {
var t = " ";
var index = i / dt;
if ( index == Math.round(index) ) {
t = texte.charAt(index);
}
// Ecriture de chaque lettre, une par une avec sa propre couleur
document.write('<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>');
}
}
</script>
je souhaite que cette fonction soit dans une page css mais je ne sais pas comment faire car si je laisse dans ma page html je dois toujours utilise le marqueur qui est celui-ci:
code=js]<script language="JavaScript">degrade(255,0,0,0,127,255,"page web",0);</script>
[/code]
donc pour évité faire une balise script et marquer ce que je souhaite je voudrai le mettre dans mon fichier css et que s'applique sur tous les éléments de mon body
est ce possible sinon conseillez moi de faire autrement s'il y a une solution merci beaucoup
et bon courage
 
|
|
lundi 29 novembre 2010 à 18:56:44 |
Re : inserer une fonction javascript dans une page css

PetoleTeam
|
Bonjour,
je souhaite que cette fonction soit dans une page css
le mieux c'est de faire l'essai pour voir que cela va planter...
une feuille de style, CSS, c'est
<style type="text/css">
une page javascript, JS, c'est
<script type="text/javascript">
ce sont donc deux choses bien différentes.
pour la suite j'avoue avoir un peu de mal à te suivre, si tu ne veux pas le mettre dans ta page, édites le code généré et mets le directement dans ta page.
;O)
|
|
lundi 29 novembre 2010 à 20:58:13 |
Re : inserer une fonction javascript dans une page css

medas918
|
merci de ta réponse mais je connais sa et j'ai essayé
alors je vais t'expliquer ce code en js je l'ai mis dans une page .js
puis je l'appel sur la page en question
exemple
Code HTML : <html>
<head>
<title>mapage</title>
[code=js]<script type="text/javavscrip src="url/nonfichier.js">
</head>
<body>
<h1><script>nonficher("je suis en couleur degradéé);</script><h1>
</body>
</html>[/code]
mais sa ne fonctionne pas je ne sais pas pourquoi ?
|
|
lundi 29 novembre 2010 à 21:00:51 |
Re : inserer une fonction javascript dans une page css

medas918
|
Code HTML : <html>
<head>
<title>mapage</title>
<script type="text/javavscrip src="url/nonfichier.js">
</head>
<body>
<h1><script>nonficher("je suis en couleur degradéé);</script><h1>
</body>
</html>
mais sa ne fonctionne pas je ne sais pas pourquoi ?
|
|
lundi 29 novembre 2010 à 22:06:42 |
Re : inserer une fonction javascript dans une page css

PetoleTeam
|
lorsque l'on écrit
Code HTML : <script type="text/javavscript" src ="nom_fichier.js"> cela signifie que le navigateur charge le CONTENU du fichier nom_fichier.js.
Le nom du fichier n'a que peu d'importance, il pourrait tout aussi bien s'appelait et_ta_pioche.xxl, ce qui compte ce sont les fonctions qui sont à l'intérieur et dont mises à disposition par leur référence, leur nom en fait.
Si dans ce fichier j'ai une fonction qui s'appelle writeTitre cela me permet de l'utiliser dès que le CONTENU du fichier à été intégré par le navigateur.
Dans ton exemple tu fais référence à une fonction nomficher qui n'existe pas dans ton fichier nomfichier.js, cela ne peut donc en aucun cas fonctionner.
Donc reprenons ton cas.
dans le fichier nomfichier.js je vais trouvé
Code Javascript : // fonction de conversion en hexadécimal
var hexa = "0123465789ABCDEF";
function convert_hexa(nb) {
return hexa.charAt(Math.floor(nb / 16)) + hexa.charAt(nb % 16);
}
// r1,g1,b1 représentent les couleurs de départ (en RGB)
// r2,g2,b2 représentent les couleurs de fin (en RGB)
// texte représente la chaîne à afficher
// size est la taille du dégradé (nombre de lettres au final (avec ajouts d'espace si nécessaire))
// (si < taille du texte, on prend cette dernière)
function degrade(r1, g1, b1, r2, g2, b2, texte, size) {
var nb = texte.length;
var s = nb;
var dt = 1;
if (size > s) {
dt = Math.round((size - 2) / (nb - 1));
s = dt * (nb - 1);
}
dr = (r2 - r1) / s;
dg = (g2 - g1) / s;
db = (b2 - b1) / s;
for (var i = 0; i <= s; i++) {
var t = " ";
var index = i / dt;
if (index == Math.round(index)) {
t = texte.charAt(index);
}
// Ecriture de chaque lettre, une par une avec sa propre couleur
document.write('<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>');
}
}
//----------------------------------------------------
// Fonction appelee dans le HTML
// cela permet de ne pas reprendre tous les parametres
//----------------------------------------------------
function writeTitre( txt_){
degrade(255,0,0,0,127,255, txt_,0); //appel de la fonction degrade
}et c'est tout, pour cet exemple
Ensuite dans ton document, il te suffit de mettre
Code HTML : <html>
<head>
<title>mapage</title>
<script type="text/javavscript" src = "nomfichier.js">
</head>
<body>
<h1>
<script type="text/javascript">
writeTitre("je suis en couleur degradée"); //appel de la fonction
</script>
</h1>
Le reste du document...
</body>
</html>
voila pour le principe...
;O)
|
|
mercredi 1 décembre 2010 à 21:15:17 |
Re : inserer une fonction javascript dans une page css

medas918
|
merci de ta réponse mais ceci ne fonctionne pas
j'ai fais comme tu me l'as dit je te montre ma page html qui se nomme mangas.html
Code HTML : <html>
<head>
<title>Mangas</title>
<style type="text/css" media="screen">@import url(mangas.css);</style>
<script language="JavaScript">
alert("bonjour le site est en construction")
</script>
<script type="text/javascript" src="degarde.js">
</script>
</head>
<h1><center><script type="text/javavscript">writeTitre(127,255,0,255,236,0,"L'univers des Mangas",0); </script></center></h1>
<span style="font-size: 28px; font-weight: bold;">
<script language="JavaScript">writeTitre(255,0,0,0,127,255,"BIENVENUE DANS L'UNIVERS DU MANGAS",0);</script>
</span>
<!--
<INPUT class="type"type="button" value="types de mangas" id="bouton types de mangas" onClick= "popuptypesdemangas()">
<INPUT class="LigneImpaire" type="button" value=" Kodomo " id="bouton Kodomo "<a href=" Kodomo " target="_blanck"> Kodomo </a>>
<INPUT class="LigneImpaire" type="button" value=" Kodomo " id="bouton Kodomo " onClick= "popupkodomo()">
<INPUT class="Lignepaire" type="button" value=" Shojo" id="bouton Shojo" onClick= "popupshojo()">
<INPUT class="LigneImpaire" type="button" value=" Shonen" id="bouton Shonen" onClick= "popupshonen()">
<INPUT class="Lignepaire" type="button" value=" Josei" id="bouton Josei" onClick= "popupjosei()">
<INPUT class="LigneImpaire" type="button" value=" Seinen" id="bouton Seinen" onClick= "popupseinen()">
<INPUT class="Lignepaire" type="button" value=" Redisu" id="bouton Redisu" onClick= "popupredisu()">
<INPUT class="LigneImpaire" type="button" value=" Gekiga" id="bouton Gekiga" onClick= "popupgekiga()">
<INPUT class="Lignepaire" type="button" value=" Hentai" id="bouton Hentai" onClick= "popuphentai()">
<INPUT class="LigneImpaire" type="button" value=" Jidaimono" id="bouton Jidaimono" onClick= "popupjidaimono()">
<INPUT class="Lignepaire" type="button" value=" Moé" id="bouton Moé" onClick= "popupmoe()">
<INPUT class="LigneImpaire" type="button" value=" Shitei" id="bouton Shitei" onClick= "popupshittei()">
<INPUT class="Lignepaire" type="button" value=" Shakai" id="bouton Shakai" onClick= "popupshakai()">
<INPUT class="LigneImpaire" type="button" value=" Geihin" id="bouton Geihin" onClick= "popupgeihin()">
<INPUT class="Lignepaire" type="button" value=" Suiri" id="bouton Suiri" onClick= "popupsuiri()">
<INPUT class="LigneImpaire" type="button" value=" Yonkoma" id="bouton Yonkoma" onClick= "popupyonkoma()">
-->
<p><a href="Types de Mangas.html" target="_blanck"><script language="JavaScript">degrade(255,125,0,150,0,120,"Types de Mangas",0);</script></a></p>
<p><a href="Types d'anime.html" target="_blanck"><script language="JavaScript">degrade(255,255,0,255,0,0,"Types d'Anime",0);</script></a></p>
</body>
</html>
mon fichier javascript qui se nomme degrade.js
Code Javascript : // fonction de conversion en hexadécimal
var hexa = "0123465789ABCDEF";
function convert_hexa(nb) {
return hexa.charAt(Math.floor(nb / 16)) + hexa.charAt(nb % 16);
}
// r1,g1,b1 représentent les couleurs de départ (en RGB)
// r2,g2,b2 représentent les couleurs de fin (en RGB)
// texte représente la chaîne à afficher
// size est la taille du dégradé (nombre de lettres au final (avec ajouts d'espace si nécessaire))
// (si < taille du texte, on prend cette dernière)
function degrade(r1, g1, b1, r2, g2, b2, texte, size) {
var nb = texte.length;
var s = nb;
var dt = 1;
if (size > s) {
dt = Math.round((size - 2) / (nb - 1));
s = dt * (nb - 1);
}
dr = (r2 - r1) / s;
dg = (g2 - g1) / s;
db = (b2 - b1) / s;
for (var i = 0; i <= s; i++) {
var t = " ";
var index = i / dt;
if (index == Math.round(index)) {
t = texte.charAt(index);
}
// Ecriture de chaque lettre, une par une avec sa propre couleur
document.write('<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>');
}
}
//----------------------------------------------------
// Fonction appelee dans le HTML
// cela permet de ne pas reprendre tous les parametres
//----------------------------------------------------
function writeTitre( txt_){
degrade(255,0,0,0,127,255, txt_,0); //appel de la fonction degrade
}
je ne comprend pas pour quoi sa ne veut pas fonctionner j'ai regardé sous chrome et sur ie8 sa ne veut pas mon fichier d'origine c'est mangas.html:
Code HTML : <html>
<head>
<title>Mangas</title>
<style type="text/css" media="screen">@import url(mangas.css);</style>
<script language="JavaScript">
alert("bonjour le site est en construction")
</script>
<script language="JavaScript">
// fonction de conversion en hexadécimal
var hexa = "0123465789ABCDEF";
function convert_hexa(nb) {
return hexa.charAt(Math.floor(nb / 16)) + hexa.charAt(nb % 16);
}
// r1,g1,b1 représentent les couleurs de départ (en RGB)
// r2,g2,b2 représentent les couleurs de fin (en RGB)
// texte représente la chaîne à afficher
// size est la taille du dégradé (nombre de lettres au final (avec ajouts d'espace si nécessaire))
// (si < taille du texte, on prend cette dernière)
function degrade(r1, g1, b1, r2, g2, b2, texte, size) {
var nb = texte.length;
var s = nb;
var dt = 1;
if (size > s) {
dt = Math.round((size - 2) / (nb - 1));
s = dt * (nb - 1);
}
dr = (r2 - r1) / s;
dg = (g2 - g1) / s;
db = (b2 - b1) / s;
for (var i = 0; i <= s; i++) {
var t = " ";
var index = i / dt;
if (index == Math.round(index)) {
t = texte.charAt(index);
}
// Ecriture de chaque lettre, une par une avec sa propre couleur
document.write('<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>');
}
}
</script>
</head>
<h1><center><script type="text/javavscript">degrade(127,255,0,255,236,0,"L'univers des Mangas",0); </script></center></h1>
<span style="font-size: 28px; font-weight: bold;">
<script language="JavaScript">degrade(255,0,0,0,127,255,"BIENVENUE DANS L'UNIVERS DU MANGAS",0);</script>
</span>
<!--
<INPUT class="type"type="button" value="types de mangas" id="bouton types de mangas" onClick= "popuptypesdemangas()">
<INPUT class="LigneImpaire" type="button" value=" Kodomo " id="bouton Kodomo "<a href=" Kodomo " target="_blanck"> Kodomo </a>>
<INPUT class="LigneImpaire" type="button" value=" Kodomo " id="bouton Kodomo " onClick= "popupkodomo()">
<INPUT class="Lignepaire" type="button" value=" Shojo" id="bouton Shojo" onClick= "popupshojo()">
<INPUT class="LigneImpaire" type="button" value=" Shonen" id="bouton Shonen" onClick= "popupshonen()">
<INPUT class="Lignepaire" type="button" value=" Josei" id="bouton Josei" onClick= "popupjosei()">
<INPUT class="LigneImpaire" type="button" value=" Seinen" id="bouton Seinen" onClick= "popupseinen()">
<INPUT class="Lignepaire" type="button" value=" Redisu" id="bouton Redisu" onClick= "popupredisu()">
<INPUT class="LigneImpaire" type="button" value=" Gekiga" id="bouton Gekiga" onClick= "popupgekiga()">
<INPUT class="Lignepaire" type="button" value=" Hentai" id="bouton Hentai" onClick= "popuphentai()">
<INPUT class="LigneImpaire" type="button" value=" Jidaimono" id="bouton Jidaimono" onClick= "popupjidaimono()">
<INPUT class="Lignepaire" type="button" value=" Moé" id="bouton Moé" onClick= "popupmoe()">
<INPUT class="LigneImpaire" type="button" value=" Shitei" id="bouton Shitei" onClick= "popupshittei()">
<INPUT class="Lignepaire" type="button" value=" Shakai" id="bouton Shakai" onClick= "popupshakai()">
<INPUT class="LigneImpaire" type="button" value=" Geihin" id="bouton Geihin" onClick= "popupgeihin()">
<INPUT class="Lignepaire" type="button" value=" Suiri" id="bouton Suiri" onClick= "popupsuiri()">
<INPUT class="LigneImpaire" type="button" value=" Yonkoma" id="bouton Yonkoma" onClick= "popupyonkoma()">
-->
<p><a href="Types de Mangas.html" target="_blanck"><script language="JavaScript">degrade(255,125,0,150,0,120,"Types de Mangas",0);</script></a></p>
<p><a href="Types d'anime.html" target="_blanck"><script language="JavaScript">degrade(255,255,0,255,0,0,"Types d'Anime",0);</script></a></p>
</body>
</html>
et sa me donne bien ce que je veux mais je veux eviter d'écrire sur chaque page
donc je vais chercher mais c'est vrai que c'est la solutionmais je ne comprend pas où est l'erreur
merci beaucoup pour ton aide
|
|
mercredi 1 décembre 2010 à 22:07:56 |
Re : inserer une fonction javascript dans une page css

PetoleTeam
|
Réponse acceptée !
Bonjour,
... j'ai fais comme tu me l'as dit...
pas exactement...j'ai écrit
Code Javascript : <script type="text/javascript">
writeTitre("je suis en couleur degradée"); //appel de la fonction
</script>on ne passe qu'un paramètre, le texte...
...on aurait pu écrire
Code Javascript : <script type="text/javascript">
degrade(255,0,0,0,127,255, "je suis en couleur degradée", 0);
</script> le résultat est le même, simplement en cas de duplication du même fonction c'est plus light à écrire et si je fait une modif, TOUT les fichiers seront modifiés sans autre modification que la fonction.
Il faut donc bien respecter les paramètres passés à la fonction.
Je note une erreur surement un copier/coller approximatif
Code Javascript : <script type="text/javascript" src="degarde.js"> au lieu de
Code Javascript : <script type="text/javascript" src="degrade.js">
Une dernière remarque, ne mets pas le code que tu mets en commentaire, cela allège la lecture
;O)
|
|
jeudi 2 décembre 2010 à 00:02:25 |
Re : inserer une fonction javascript dans une page css

medas918
|
merci de ton aide mais j'ai vu mon erreur donc j'ai fait ce que tu as dit :
depuis le début c'était mon erreur de copier coller
Code HTML : html>
<head>
<title>Mangas</title>
<style type="text/css" media="screen">@import url(mangas.css);</style>
<script language="JavaScript">
alert("bonjour le site est en construction")
</script>
<script type="text/javascript" src="degrade.js">
</script>
</head>
<body>
<h1><center><script language="javascript">degrade(127,255,0,255,236,0,"L'univers des Mangas",0); </script></center></h1>
j'ai mal écris javascript type="text/javascript" c'est pareil que language"jacascript"
Code HTML :
<span style="font-size: 28px; font-weight: bold;">
<script language="JavaScript">degrade(255,0,0,0,127,255,"BIENVENUE DANS L'UNIVERS DU MANGAS",0);</script>
</span> et mon fichier.js et bon sans la fonction que ma creer
Code Javascript : // fonction de conversion en hexadécimal
var hexa = "0123465789ABCDEF";
function convert_hexa(nb) {
return hexa.charAt(Math.floor(nb / 16)) + hexa.charAt(nb % 16);
}
// r1,g1,b1 représentent les couleurs de départ (en RGB)
// r2,g2,b2 représentent les couleurs de fin (en RGB)
// texte représente la chaîne à afficher
// size est la taille du dégradé (nombre de lettres au final (avec ajouts d'espace si nécessaire))
// (si < taille du texte, on prend cette dernière)
function degrade(r1, g1, b1, r2, g2, b2, texte, size) {
var nb = texte.length;
var s = nb;
var dt = 1;
if (size > s) {
dt = Math.round((size - 2) / (nb - 1));
s = dt * (nb - 1);
}
dr = (r2 - r1) / s;
dg = (g2 - g1) / s;
db = (b2 - b1) / s;
for (var i = 0; i <= s; i++) {
var t = " ";
var index = i / dt;
if (index == Math.round(index)) {
t = texte.charAt(index);
}
// Ecriture de chaque lettre, une par une avec sa propre couleur
document.write('<font color="#' + convert_hexa(r1 + i * dr) + convert_hexa(g1 + i * dg) + convert_hexa(b1 + i * db) + '">' + t + '</font>');
}
}
donc c'est juste des erreurs de syntaxe rien de compliquer désolé de t'avoir embêter merci beaucoup de ton aide
|
|
jeudi 2 décembre 2010 à 00:03:52 |
Re : inserer une fonction javascript dans une page css

medas918
|
a aussi il y avait pas besoin d'appeler une autre fonction la fonction degrade suffisait amplement
|
|
jeudi 2 décembre 2010 à 18:34:16 |
Re : inserer une fonction javascript dans une page css

PetoleTeam
|
Bonjour,
il y avait pas besoin d'appeler une autre fonction la fonction degrade suffisait amplement
oui bien sûr, c'était plus l'exemple et un peu aussi pour ce que je t'explique plus haut à savoir
Si tu as 20 pages avec la même chose d'écrite, sauf le texte, exemple
degrade(255,0,0,0,127,255,"du texte qui change",0);
il devient intéressant de créer une fonction qui réduit le nombre de paramètre aux seuls paramètres différents, du coup si un jour tu te lasses de la couleur de tes titres et que tu veuilles en changer ou encore juste tester, tu n'auras qu'un seul endroit à changer, dans ton fichier degrade.js et toutes tes pages seront modifiées directement.
Ainsi tu peux décliner plusieurs fonctions qui reposent sur une fonction de base.
;O)
|
|
Cette discussion est classée dans : fonction, page, code, nb, css
Répondre à ce message
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|