diff --git a/Activity_3_python/Activites_Python3/._Activite_decouverte_Python.hml.html b/Activity_3_python/Activites_Python3/._Activite_decouverte_Python.hml.html
new file mode 100644
index 0000000..fb151d8
Binary files /dev/null and b/Activity_3_python/Activites_Python3/._Activite_decouverte_Python.hml.html differ
diff --git a/Activity_3_python/Activites_Python3/._Exercice13.html b/Activity_3_python/Activites_Python3/._Exercice13.html
new file mode 100644
index 0000000..bcdeb28
Binary files /dev/null and b/Activity_3_python/Activites_Python3/._Exercice13.html differ
diff --git a/Activity_3_python/Activites_Python3/._Exercice17.html b/Activity_3_python/Activites_Python3/._Exercice17.html
new file mode 100644
index 0000000..73ec20f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/._Exercice17.html differ
diff --git a/Activity_3_python/Activites_Python3/._Exercice34.html b/Activity_3_python/Activites_Python3/._Exercice34.html
new file mode 100644
index 0000000..bf88c36
Binary files /dev/null and b/Activity_3_python/Activites_Python3/._Exercice34.html differ
diff --git a/Activity_3_python/Activites_Python3/._Immuablevsmutable.html b/Activity_3_python/Activites_Python3/._Immuablevsmutable.html
new file mode 100644
index 0000000..b18869f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/._Immuablevsmutable.html differ
diff --git a/Activity_3_python/Activites_Python3/Activite_decouverte_Python.html.html b/Activity_3_python/Activites_Python3/Activite_decouverte_Python.html.html
new file mode 100644
index 0000000..db1ff9d
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Activite_decouverte_Python.html.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+ Introduction au langage de programmation Python 3
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Autrestypes.html b/Activity_3_python/Activites_Python3/Autrestypes.html
new file mode 100644
index 0000000..8fb0e8a
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Autrestypes.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+ Autres types
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Nous avons vu les types les plus courants. Il en existe bien d'autres :
+
+complex (nombres complexes, par exemple 1+2.5j)
+set (structure de données)
+file (fichiers)
+...
+
+
+
Créé avec HelpNDoc Personal Edition: Créer des livres électroniques EPub facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice11.html b/Activity_3_python/Activites_Python3/Exercice11.html
new file mode 100644
index 0000000..863973e
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice11.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+ Exercice 1.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
☆ Afficher la taille en octets et en bits d'un fichier de 536 kio.
+
On donne : 1 kio (1 kibioctet) = 2 10 octets
+
1 octet = 1 byte = 8 bits
+
+
+
+
Créé avec HelpNDoc Personal Edition: Sites web iPhone faciles
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice13.html b/Activity_3_python/Activites_Python3/Exercice13.html
new file mode 100644
index 0000000..9a70ffc
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice13.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+ Exercice 1.3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Afficher la valeur numérique de √(4,6 3 - 15/16)
+
Comparer avec votre calculette.
+
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice14.html b/Activity_3_python/Activites_Python3/Exercice14.html
new file mode 100644
index 0000000..0982aae
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice14.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+ Exercice 1.4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ A partir des deux variables prenom et nom , afficher les initiales (par exemple LM pour Léa Martin).
+
+
+
+
Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice15.html b/Activity_3_python/Activites_Python3/Exercice15.html
new file mode 100644
index 0000000..8e9c693
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice15.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+ Exercice 1.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★☆ L'identifiant d'accès au réseau du lycée est construit de la manière suivante : les 4 premiers caractères du prénom (maximum), suivi d'un point, puis les caractères du nom (limités à 12) le tout en minuscule.
+
Exemple : Alexandre Lecouturier → ale.lecouturier
+
A partir des deux variables prenom et nom , construire l'identifiant.
+
+
+
+
Créé avec HelpNDoc Personal Edition: Éditeur complet de livres électroniques ePub
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice16.html b/Activity_3_python/Activites_Python3/Exercice16.html
new file mode 100644
index 0000000..0a05de5
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice16.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+ Exercice 1.6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★★ On donne un extrait des logins d'accès au réseau du lycée :
+
ale.lecouturier Huz4 lea.martin monty
+
1) Créer une variable de type dict qui contient les couples identifiant - mot de passe ci-dessus.
+
2) La saisie du login fournit deux variables identifiant et motdepasse : une pour l'identifiant et l'autre pour le mot de passe. Construire une variable booléenne qui donne True en cas d'identification correcte, et False dans le cas contraire :
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice17.html b/Activity_3_python/Activites_Python3/Exercice17.html
new file mode 100644
index 0000000..06fb0f3
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice17.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+ Exercice 1.2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Le numéro de sécurité sociale est constitué de 13 chiffres auquel s'ajoute la clé de contrôle (2 chiffres).
+
Exemple : 1 89 11 26 108 268 91
+
La clé de contrôle est calculée par la formule :
+
Clé = 97 - (numéro de sécurité sociale modulo 97)
+
Retrouver la clé de contrôle de votre numéro de sécurité sociale.
+
Quel est l'intérêt de la clé de contrôle ?
+
+
+
+
Créé avec HelpNDoc Personal Edition: Qu'est-ce qu'un outil de création d'aide ?
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice21.html b/Activity_3_python/Activites_Python3/Exercice21.html
new file mode 100644
index 0000000..c442b43
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice21.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+ Exercice 2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Le numéro de sécurité sociale est constitué de 13 chiffres auquel s'ajoute la clé de contrôle (2 chiffres). La clé de contrôle est calculée par la formule : 97 - (numéro de sécurité sociale modulo 97)
+
Ecrire un script qui contrôle la validité d'un numéro de sécurité sociale. On pourra utiliser la fonction int() pour convertir le type str en type int . Exemple :
+
>>> Entrer votre numéro de sécurité sociale (13 chiffres) --> 1891126108268 Entrer votre clé de contrôle (2 chiffres) --------------> 91 Votre numéro de sécurité sociale est valide. >>> Entrer votre numéro de sécurité sociale (13 chiffres) --> 2891126108268 Entrer votre clé de contrôle (2 chiffres) --------------> 91 Votre numéro de sécurité sociale est INVALIDE ! >>>
+
+
Créé avec HelpNDoc Personal Edition: Éditeur de documentation CHM facile
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice22.html b/Activity_3_python/Activites_Python3/Exercice22.html
new file mode 100644
index 0000000..2b8f640
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice22.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+ Exercice 2.2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Nombre entier non signé et signé Dans un octet, on peut stocker un nombre entier compris entre 0b00000000 = 0 et 0b11111111 = 255 (entier non signé, en numération binaire naturel). On peut aussi stocker un entier compris entre -128 et +127 (entier signé, représentation dite en complément à deux). En complément à deux, les nombres négatifs sont codés de la manière suivante : -1 correspond à 255 en binaire naturel -2 correspond à 254 en binaire naturel ... -127 correspond à 129 en binaire naturel -128 correspond à 128 en binaire naturel 1) Ecrire un script qui donne la correspondance entre entier signé et entier non signé. Par exemple :
+
>>> Entrer un entier signé en complément à deux (-128 à +127): 25 La représentation en binaire naturel est : 25 >>> Entrer un entier signé en complément à deux (-128 à +127): -15 La représentation en binaire naturel est : 241
+
2) Ecrire un script qui donne la correspondance entre entier non signé et entier signé. Par exemple :
+
>>> Entrer un nombre entier (0 à 255): 250 Cela représente l'entier signé : -6
+
+
Créé avec HelpNDoc Personal Edition: Créer des livres électroniques facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice23.html b/Activity_3_python/Activites_Python3/Exercice23.html
new file mode 100644
index 0000000..a45943b
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice23.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+ Exercice 2.3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Ecrire un script qui demande la note au bac et qui affiche la mention correspondante. Par exemple :
+
>>> Note au bac (sur 20) : 13.5 Bac avec mention Assez Bien >>> Note au bac (sur 20) : 10.9 Bac avec mention Passable >>> Note au bac (sur 20) : 4 Recalé >>>
+
+
Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice24.html b/Activity_3_python/Activites_Python3/Exercice24.html
new file mode 100644
index 0000000..1178116
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice24.html
@@ -0,0 +1,169 @@
+
+
+
+
+
+ Exercice 2.4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Ecrire un script qui calcule l'indice de masse corporelle (IMC) d'un adulte et qui en donne l'interprétation (corpulence normale, surpoids...).
+
IMC(kg/m 2 ) = masse/taille 2
+
L’interprétation se fait selon la classification de l’OMS (Organisation Mondiale de la Santé).
+
+
+IMC (kg/m 2 )
+
+Interprétation (selon l’OMS)
+
+
+
+Inférieur à 16
+
+Anorexie ou dénutrition
+
+
+
+Entre 16.5 et 18.5
+
+Maigreur
+
+
+
+Entre 18.5 et 25
+
+Corpulence normale
+
+
+
+Entre 25 et 30
+
+Surpoids
+
+
+
+Entre 30 et 35
+
+Obésité modérée (Classe 1)
+
+
+
+Entre 35 et 40
+
+Obésité élevé (Classe 2)
+
+
+
+Supérieur à 40
+
+Obésité morbide ou massive
+
+
+
+
+
Par exemple :
+
>>> Votre taille en cm ? 170 Votre masse en kg ? 68.5 IMC = 23.70 kg/m² Interprétation : corpulence normale >>>
+
+
Créé avec HelpNDoc Personal Edition: Générateur d'aide complet
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice25.html b/Activity_3_python/Activites_Python3/Exercice25.html
new file mode 100644
index 0000000..3820e0c
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice25.html
@@ -0,0 +1,116 @@
+
+
+
+
+
+ Exercice 2.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★★ Ecrire un script qui résout l'équation du second degré : ax² + bx + c = 0 Par exemple :
+
>>> Résolution de l'équation du second degré : ax² + bx + c = 0 Coefficient a ? 1 Coefficient b ? -0.9 Coefficient c ? 0.056 Discriminant : 0.586 Deux solutions : 0.0672468158199 0.83275318418
+
>>> Résolution de l'équation du second degré : ax² + bx + c = 0 Coefficient a ? 2 Coefficient b ? 1.5 Coefficient c ? 4 Discriminant : -29.75 Il n'y a pas de solution.
+
+
Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice31.html b/Activity_3_python/Activites_Python3/Exercice31.html
new file mode 100644
index 0000000..921c7e6
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice31.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+ Exercice 3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Ecrire un script qui affiche toutes les tables de multiplication (de 1 à 10).
+
+
Créé avec HelpNDoc Personal Edition: Générer facilement des livres électroniques Kindle
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice32.html b/Activity_3_python/Activites_Python3/Exercice32.html
new file mode 100644
index 0000000..625cb70
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice32.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+ Exercice 3.2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Ecrire un script qui calcule la moyenne d'une série de notes. On pourra utiliser une variable qui contient la somme intermédiaire des notes.
+
>>> Nombre de notes ? 3 --> 15 --> 11.5 --> 14 Moyenne : 13.5 >>>
+
+
Créé avec HelpNDoc Personal Edition: Créer des aides HTML, DOC, PDF et des manuels depuis une même source
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice33.html b/Activity_3_python/Activites_Python3/Exercice33.html
new file mode 100644
index 0000000..8230d71
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice33.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+ Exercice 3.3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ 1) Avec une boucle for , écrire un script qui compte le nombre de lettres z dans une chaîne de caractères. Par exemple :
+
>>> Entrer la chaîne : Zinedine Zidane Résultat : 2
+
2) Faire la même chose, directement avec la méthode count() de la classe str . Pour obtenir de l'aide sur cette méthode :
+
>>> help ( str .count)
+
+
Créé avec HelpNDoc Personal Edition: Produire des livres Kindle gratuitement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice34.html b/Activity_3_python/Activites_Python3/Exercice34.html
new file mode 100644
index 0000000..9099690
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice34.html
@@ -0,0 +1,118 @@
+
+
+
+
+
+ Exercice 3.4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★ Avec une boucle while , écrire un script qui affiche l'heure courante avec une actualisation chaque seconde. On utilisera la fonction sleep() du module time . Pour obtenir de l'aide sur cette fonction :
+
>>> import time >>> help (time.sleep)
+
Par exemple :
+
>>> # Taper CTRL + C pour arrêter le programme. >>> Heure courante 12:40:59 Heure courante 12:41:00 Heure courante 12:41:01 Heure courante 12:41:02 KeyboardInterrupt >>>
+
Remarque : il n'est pas conventionnel de forcer l'arrêt d'un programme avec CTRL + C Nous verrons comment interrompre proprement un programme dans le chapitre Gestion des exceptions .
+
+
Créé avec HelpNDoc Personal Edition: Écrire des livres électronique Kindle
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice35.html b/Activity_3_python/Activites_Python3/Exercice35.html
new file mode 100644
index 0000000..e563940
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice35.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+ Exercice 3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★☆ 1) Ecrire le script du jeu de devinette suivant :
+
>>> Le jeu consiste à deviner un nombre entre 1 et 100 : ---> 50 trop petit ! ---> 75 trop petit ! ---> 87 trop grand ! ---> 81 trop petit ! ---> 84 trop petit ! ---> 85 Gagné en 6 coups !
+
2) Quelle est la stratégie la plus efficace ?
+
3) Montrer que l'on peut deviner un nombre en 7 coups maximum.
+
Bibliographie : La dichotomie
+
Remarque : pour créer un nombre entier aléatoire entre 1 et 100 :
+
import random nombre = random.randint(1,100)
+
+
Créé avec HelpNDoc Personal Edition: Générer facilement des livres électroniques Kindle
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice36.html b/Activity_3_python/Activites_Python3/Exercice36.html
new file mode 100644
index 0000000..264f1e4
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice36.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+ Exercice 3.6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★★ Code de César En cryptographie, le code de César est une technique de chiffrement élémentaire qui consiste à décaler une lettre de 3 rangs vers la droite : A → D B → E ... Z → C
+
1) Ecrire le script de ce codage. Par exemple :
+
>>> Message à coder ? abcdefghijklmnopqrstuvwxyz defghijklmnopqrstuvwxyzabc
+
>>> Message à coder ? Monty Python's Flying Circus prqwb sbwkrq'v ioblqj flufxv
+
On pourra utiliser la chaîne ' abcdefghijklmnopqrstuvwxyz ' et la méthode find() de la classe str . Pour obtenir de l'aide sur cette méthode :
+
>>> help ( str .find)
+
2) Ecrire le script du décodage. Par exemple :
+
>>> Message à décoder ? prqwb sbwkrq'v ioblqj flufxv monty python's flying circus
+
+
Créé avec HelpNDoc Personal Edition: Produire facilement des livres électroniques Kindle
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice37.html b/Activity_3_python/Activites_Python3/Exercice37.html
new file mode 100644
index 0000000..281047e
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice37.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+ Exercice 3.7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★★ Ecrire un script qui donne l'évolution de la suite convergente : u n+1 = u n /2 + 1/u n Par exemple :
+
>>> Valeur initiale ? 20 Jusqu'à quel rang ? 10 0 20.0 1 10.05 2 5.12450248756 3 2.75739213842 4 1.74135758045 5 1.44494338196 6 1.41454033013 7 1.41421360012 8 1.41421356237 9 1.41421356237 10 1.41421356237 >>>
+
+
Créé avec HelpNDoc Personal Edition: Sites web iPhone faciles
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice38.html b/Activity_3_python/Activites_Python3/Exercice38.html
new file mode 100644
index 0000000..9d44b89
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice38.html
@@ -0,0 +1,117 @@
+
+
+
+
+
+ Exercice 3.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
★★ Fraction continue infinie
+
Estimer la valeur numérique de la fraction continue suivante :
+
+
Comparer avec la valeur exacte : (1 + √5)/2
+
+
Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercice39.html b/Activity_3_python/Activites_Python3/Exercice39.html
new file mode 100644
index 0000000..749e51c
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercice39.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+ Exercice 3.9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1) ★ Ecrire un script qui détermine si un nombre entier est premier ou pas. Par exemple :
+
>>> Nombre ? 17 17 est un nombre premier
+
2) ★★ Ecrire un script qui décompose un nombre entier en un produit de facteurs premiers.
+
>>> Nombre à décomposer ? 2142 2142 = 2 * 3 * 3 * 7 * 17
+
+
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide CHM facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercices1.html b/Activity_3_python/Activites_Python3/Exercices1.html
new file mode 100644
index 0000000..d044818
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercices1.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+ Exercices 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques ePub
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercices2.html b/Activity_3_python/Activites_Python3/Exercices2.html
new file mode 100644
index 0000000..1cb8eb3
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercices2.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+ Exercices 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Avantages d'un outil de création d'aide
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Exercices3.html b/Activity_3_python/Activites_Python3/Exercices3.html
new file mode 100644
index 0000000..ce71085
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Exercices3.html
@@ -0,0 +1,114 @@
+
+
+
+
+
+ Exercices 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Produire des livres électroniques facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/IDLE.html b/Activity_3_python/Activites_Python3/IDLE.html
new file mode 100644
index 0000000..3fe7f65
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/IDLE.html
@@ -0,0 +1,140 @@
+
+
+
+
+
+ IDLE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
IDLE
+
IDLE est un environnement de développement intégré (Integrated Development Environment) pour Python. Un IDLE propose un certain nombre d'outils :
+
+
+un éditeur de texte (pour écrire le programme)
+un interpréteur (pour exécuter le programme)
+un débogueur (pour tester le programme)
+une fenètre intéractive REPL (Read-Evaluate-Print-Loop) permettant d'entrer du code Python arbitraire et de voir immédiatement les résultats.
+
+
+
Il existe des IDLE en ligne pour Python:
+
+
+
Il existe des IDLE installables sur les ordinateurs:
+
+
+
Exemple pour Edupython:
+
+
La Console Python est un interpréteur Python en mode interactif.
+
+
Exemple de fenêtre interactive REPL dans Mu
+
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques Kindle
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Immuablevsmutable.html b/Activity_3_python/Activites_Python3/Immuablevsmutable.html
new file mode 100644
index 0000000..d25ee8f
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Immuablevsmutable.html
@@ -0,0 +1,171 @@
+
+
+
+
+
+ Immuable vs mutable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Les nombres sont des types immuables tout comme les chaînes de caractères et les tuples .
+
Une variable de type immuable ne peut être modifiée. Une opération sur une variable de ce type entraîne nécessairement la création d’une autre variable du même type.
+
+
Pour mettre en évidence cette propriété, jouons avec la fonction id() qui renvoie l'identificateur unique d'un objet, cela correspond à l'adresse mémoire dans laquelle il est stocké.
+
Si l'identifiant est le même, c'est le même objet.
+
+
Vous allez vérifier cela dans la Console Python (interpréteur Python en mode interactif)
+
+
>>> a = 1 >>> id(a)
+
+
>>> a += 2 >>> print(a)
+
+
>>> id(a)
+
+
>>> b = a >>> id(b)
+
+
Donner plusieurs noms à un même objet s'appelle l' aliasing, les variables a et b sont des alias l'une de l'autre. a et b pointent vers le même emplacement mémoire
+
+
>>> b = 5 >>> a
+
+
>>> b
+
+
>>> id(a)
+
+
>>> id(a)
+
+
Conclusion, l'aliasing se fait sans risque.
+
+
+
Un objet de type mutable peut être modifié et modifié in situ. Aucune copie implicite n'est faite.
+
Cette catégorie comprend: les listes , les dictionnaires , ...
+
+
>>> liste1 = [] >>> id(liste1)
+
+
>>> liste1.append('Nicolas') >>> liste1
+
+
>>> id(liste1)
+
+
La valeur de liste peut être modifié mais liste ne change pas d'id.
+
+
Si un objet doit être souvent modifié, un type mutable est préférable qu'un type immuable d'un point de vue espace mémoire mais attention à l'aliasing par exemple:
+
+
>>> liste2 = liste1 >>> id(liste2)
+
+
>>> liste2.append(3) >>> liste2
+
>>> liste1
+
+
+
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentation complet
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Lesbouclesinstructionsforwhile.html b/Activity_3_python/Activites_Python3/Lesbouclesinstructionsforwhile.html
new file mode 100644
index 0000000..ffcd9a4
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Lesbouclesinstructionsforwhile.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+ Les boucles (instructions for, while)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Une boucle permet d'exécuter une portion de code plusieurs fois de suite.
+
+
+
+
+Séquence
+
+Algorithme
+
+Algorigramme
+
+
+
+
+
+Répétitive ou itérative à condition initiale
+
+
+TANT QUE la condition est vrai
+ Faire “Traitement”
+Fin TANT QUE
+
+
+
+
+
+
+
+Répétitive ou itérative à condition finale
+
+
+RÉPÉTER
+ “Traitement”
+JUSQU'À “Condition” vraie
+
+
+
+
+
+
+
+
+
+
+
+
+Séquence
+
+Algorithme
+
+Algorigramme
+
+
+
+
+
+
+Boucle avec comptage
+
+
+
+POUR i allant de VI jusqu’à VF
+ Faire “Traitement”
+Fin POUR
+
+
+
+
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide HTML facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Lesconditionsinstructionsifelife.html b/Activity_3_python/Activites_Python3/Lesconditionsinstructionsifelife.html
new file mode 100644
index 0000000..8249ceb
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Lesconditionsinstructionsifelife.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+ Les conditions (instructions if, elif, else)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Les langages informatiques savent interpréter des expressions conditionnelles telles que :
+
+
• " Si la météo le permet alors je vais me promener, sinon je reste à la maison . "
+
+
Structure conditionnelle ou alternative
+
+
+
+Séquence
+
+Algorithme
+
+Algorigramme
+
+
+
+
+
+Alternative partielle
+
+
+SI la condition est vrai ALORS
+ Faire “Traitement”
+Fin SI
+
+
+
+
+
+
+
+Alternative complète
+
+SI l’expression est vrai ALORS
+ Faire “Traitement 1”
+SINON
+ Faire “Traitement 2”
+Fin SI
+
+
+
+
+
+
+
+
La condition peut être composée de plusieurs conditions combinées par les opérateurs logiques ET, OU, et NON.
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Lesfonctionsmathematiques.html b/Activity_3_python/Activites_Python3/Lesfonctionsmathematiques.html
new file mode 100644
index 0000000..cc39350
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Lesfonctionsmathematiques.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+ Les fonctions mathématiques
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sous Python, pour utiliser les fonctions mathématiques, il faut commencer par importer le module math :
+
>>> import math
+
Sous l'IDLE (Python GUI), la fonction dir() retourne la liste des fonctions et données d'un module :
+
>>> dir (math) ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
+
Sous Edupython, vous trouverez la liste des fonctions dans l'onglet du bas nommé Variables
+
+
Pour appeler une fonction d'un module, la syntaxe est la suivante : module.fonction(arguments)
+
Pour accéder à une donnée d'un module : module.data
+
>>> print (math.pi) # donnée pi du module math (nombre pi) >>> print (math.sin(math.pi/4.0)) # fonction sin() du module math (sinus) >>> print (math.sqrt(2.0)) # fonction sqrt() du module math (racine carrée) >>> print (math.sqrt(-5.0)) >>> print (math.exp(-3.0)) # fonction exp() du module math (exponentielle) >>> print (math.log(math.e)) # fonction log() du module math (logarithme népérien)
+
Pour simplifier, vous pouvez importer toutes les fonctions d'un module :
+
>>> from math import *
+
+
Vous devez privilégier uniquement l'importation des fonctions que vous souhaitez utiliser:
+
>>> from math import pi
+
Utilisation d'un module en Python (vidéo)
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypeboolbooleen.html b/Activity_3_python/Activites_Python3/Letypeboolbooleen.html
new file mode 100644
index 0000000..00155a1
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypeboolbooleen.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+ Le type bool (booléen)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deux valeurs sont possibles : True et False
+
>>> choix = True >>> print ( type (choix))
+
Les opérateurs de comparaison :
+
+
+Opérateur
+
+Signification
+
+Remarques
+
+
+
+<
+
+strictement inférieur
+
+
+
+
+
+<=
+
+inférieur ou égal
+
+
+
+
+
+>
+
+strictement supérieur
+
+
+
+
+
+>=
+
+supérieur ou égal
+
+
+
+
+
+==
+
+égal
+
+Attention : deux signes ==
+
+
+
+!=
+
+différent
+
+
+
+
+
+
+
>>> b = 10 >>> print (b > 8) >>> print (b == 5) >>> print (b != 10) >>> print (0 <= b <= 20)
+
Les opérateurs logiques : and , or , not
+
>>> note = 13.0 >>> mention_ab = note >= 12.0 and note < 14.0 # ou bien : mention_ab = 12.0 <= note < 14.0 >>> print (mention_ab) >>> print ( not mention_ab) >>> print (note == 20.0 or note == 0.0)
+
L'opérateur in s'utilise avec des chaînes (type str ) ou des listes (type list ) :
+
>>> chaine = 'Bonsoir' >>> # la sous-chaîne 'soir' fait-elle partie de la chaîne 'Bonsoir' ? >>> resultat = 'soir' in chaine >>> print (resultat) >>> print ( 'b' in chaine)
+
>>> maliste = [4, 8, 15] >>> # le nombre entier 9 est-il dans la liste ? >>> print (9 in maliste) >>> print (8 in maliste) >>> print (14 not in maliste)
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub facile
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypedictdictionnaire.html b/Activity_3_python/Activites_Python3/Letypedictdictionnaire.html
new file mode 100644
index 0000000..94d550f
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypedictdictionnaire.html
@@ -0,0 +1,115 @@
+
+
+
+
+
+ Le type dict (dictionnaire)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Un dictionnaire stocke des données sous la forme clé ⇒ valeur Une clé est unique et n'est pas nécessairement un entier (comme c'est le cas de l'indice d'une liste).
+
>>> moyennes = { 'math' : 12.5, 'anglais' : 15.8} # entre accolades >>> print ( type (moyennes)) >>> print (moyennes[ 'anglais' ]) # entre crochets >>> moyennes[ 'anglais' ] = 14.3 # nouvelle affectation >>> print (moyennes) >>> moyennes[ 'sport' ] = 11.0 # nouvelle entrée >>> print (moyennes)
+
+
Créé avec HelpNDoc Personal Edition: Créer des documentations web iPhone
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypefloatnombresenvirguleflott.html b/Activity_3_python/Activites_Python3/Letypefloatnombresenvirguleflott.html
new file mode 100644
index 0000000..1723dd0
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypefloatnombresenvirguleflott.html
@@ -0,0 +1,152 @@
+
+
+
+
+
+ Le type float (nombres en virgule flottante)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
>>> b = 17.0 # le séparateur décimal est un point (et non une virgule) >>> print (b) >>> print ( type (b))
+
>>> c = 14.0/3.0 >>> print (c)
+
>>> c = 14.0//3.0 # division entière >>> print (c)
+
Attention: il faut éviter de faire des divisions entières sur des nombres négatifs
+
>>> print ( 7//3 )
+
>>> print ( -7//3 )
+
Attention : avec des nombres entiers, l'opérateur / fait une division classique et retourne toujours un type float :
+
>>> c = 12/3 >>> print (c)
+
Notation scientifique :
+
>>> a = -1.784892e4 >>> print (a)
+
Entre deux nombres donnés, par exemple entre 1 et 4, ou entre 3,5 et 3,6 ou entre – 10,36 et – 10,34… il existe une infinité d’autres nombres. Certaines sont des entiers, comme 2 ou 3, certains sont des décimaux comme 1,5 ou 2,3, d’autres sont des rationnels comme 4/3, d’autres sont des irrationnels comme .
+
+
Nous allons voir qu’en machine, certains nombres sont stockés de manière exacte et d’autre de manière approchée.
+
+
+Calculer 0,1 + 0,2 en langage Python.
+
+
Expliquer pourquoi le résultat n’est pas celui attendu
+
+
On peut tester l’égalité de 0,1 + 0,2 avec 0,3
+
+
>>> print ( 0.1+0.2 == 0.3 )
+
Il faut éviter de tester l’égalité de deux flottants.
+
+
• La fonction « float() » permet de convertir un entier en flottant.
+
>>> print ( float (5) )
+
• La fonction « int() » permet de convertir un flottant en entier.
+
>>> print ( int (4.8) )
+
À tester avec des nombres positifs ou négatifs pour voir comment la valeur est obtenue (tronquée ? arrondie ?).
+
+
La fonction « print () » permet d’afficher des flottants en indiquant le nombre de chiffres à afficher après la virgule à l’aide de la chaîne "%.2f" %x dans laquelle le nombre devant f donne le nombre de décimales et x est le nombre à afficher.
+
>>> x = 0.123456 >>> print (x)
+
>>> print ( "%.2f" %x )
+
• Il faut être prudent avec les arrondis.
+
+
>>> print ( "%.2f" %0.1 )
+
>>> print ( "%.20f" %0.1 )
+
>>> print ( "%.20f" %0.125 )
+
>>> print ( 1.2*3 )
+
+
Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques ePub
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypeintintegernombresentiers.html b/Activity_3_python/Activites_Python3/Letypeintintegernombresentiers.html
new file mode 100644
index 0000000..1db281d
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypeintintegernombresentiers.html
@@ -0,0 +1,162 @@
+
+
+
+
+
+ Le type int (integer: nombres entiers)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Depuis EduPython (IDLE PyScripter), saisir ces lignes de programme dans la Console Python (interpréteur Python en mode interactif)
+
Pour affecter (on dit aussi assigner) la valeur 16 à la variable nommée age :
+
+
Afin que vous gardiez une trace de votre travail, saisir les différentes lignes de programme dans la zone de saisie puis exécuter pour voir le résultat dans la console Python.
+
+
Désormais vous pourrez utiliser la fonction print() pour afficher la valeur de la variable comme un "outil de debogage" (aide à analyser les bugs d'un programme).
+
Pour une meilleure compréhension des scripts et et éviter l'usage du print() , vous pouvez utiliser le site web PythonTutor et visualiser l'exécution pas à pas : http://pythontutor.com/visualize.html#mode=edit
+
+
Remarque : Il est possible en langage Python de réaliser des affectations multiples:
+
>>> a,b = 2,3
+
>>> print (a)
+
>>> print (b)
+
En programmation, le codage de la variable diffère en fonction de la donnée utilisée (booléen, nombre entiers, nombre à virgule, caractères...). On parle alors de type de variable.
+
En langage Python, le typage est dynamique ce qui signifie que c’est l’instruction d’affectation qui va définir le type de la variable.
+
+
La fonction type() retourne le type de la variable :
+
>>> print ( type (age))
+
int est le type des nombres entiers.
+
>>> x= 0b11111011101 >>> print (x)
+
>>> y= 0x7DD >>> print (y)
+
Rappel:
+
La notation « 0b… » indique que la valeur du nombre est en binaire.
+
La notation « 0x… » indique que la valeur du nombre est en hexadécimal.
+
+
+On peut convertir un nombre en binaire en utilisant la fonction « bin() ». Par exemple:
+
+
>>> binaire= bin (25) >>> print (binaire)
+
+On peut convertir un nombre en décimal en écrivant simplement sa valeur.
+
+
>>> decimal= 0x1FA >>> print (decimal)
+
+On peut convertir un nombre en hexadécimal en utilisant la fonction « hex() ».
+
+
>>> hexadecimal= hex (506) >>> print (hexadecimal)
+
+
Commenter et documenter son programme sont essentiels pour maintenir un code clair et pour faciliter la collaboration avec d'autres personnes. Cette pratique de programmation permet également de se rappeler ultérieurement l'utilité de telle ou telle variable, méthode, etc...
+
>>> # ceci est un commentaire >>> age = age + 1 # en plus court : age += 1 >>> print (age) >>> age = age - 3 # en plus court : age -= 3 >>> print (age) >>> age = age*2 # en plus court : age *= 2 >>> print (age)
+
>>> a = 6*3 - 20 >>> print (a)
+
>>> b = 25 >>> c = a + 2*b >>> print (b, c) # ne pas oublier la virgule
+
L'opérateur // donne la division entière :
+
>>> tour = 450//360 >>> print (tour)
+
L'opérateur % donne le reste de la division (opération modulo) :
+
>>> angle = 450%360 >>> print (angle)
+
L'opérateur ** donne la puissance :
+
>>> mo = 2**20 >>> print (mo) >>> racine2 = 2**0.5 >>> print (racine2)
+
+
+
+
Créé avec HelpNDoc Personal Edition: Qu'est-ce qu'un outil de création d'aide ?
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypelistliste.html b/Activity_3_python/Activites_Python3/Letypelistliste.html
new file mode 100644
index 0000000..de16046
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypelistliste.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+ Le type list (liste)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Une liste est une structure de données ou une séquence appelée également tableau.
+
Les listes sont comme les tuples mais à la différence qu'ils sont modifiables (on parle d'objets "mutables").
+
Le premier élément d'une liste possède donc l'indice (l'index) 0. Dans une liste, on peut avoir des éléments de plusieurs types.
+
>>> infoperso_l = [ 'Pierre' , 'Dupont' , 17, 1.75, 72.5] >>> # la liste infoperso contient 5 éléments de types str, str, int, float et float >>> print ( type (infoperso_l)) >>> print (infoperso_l) >>> print ( 'Prénom : ' , infoperso_l[0]) # premier élément (indice 0) >>> print ( 'Masse : ' , infoperso_l[4]) # le cinquième élément a l'indice 4
+
La fonction range() crée une liste d'entiers régulièrement espacés :
+
>>> maliste = range (10) >>> print ( list (maliste)) >>> print ( type (maliste))
+
>>> maliste = range (1,10,2) # range(début,fin non comprise,intervalle) >>> print ( list (maliste)) >>> print (maliste[2]) # le troisième élément a l'indice 2
+
On peut créer une liste de listes, qui s'apparente à un tableau à 2 dimensions (ligne, colonne) :
+
0 1 2 10 11 12 20 21 22
+
>>> maliste = [[0, 1, 2], [10, 11, 12], [20, 21, 22]] >>> print (maliste[0]) >>> print (maliste[0][0]) >>> print (maliste[2][1]) # élément à la troisième ligne et deuxième colonne >>> maliste[2][1] = 69 # nouvelle affectation >>> print (maliste)
+
+
Créé avec HelpNDoc Personal Edition: Nouvelles et informations sur les outils de logiciels de création d'aide
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypestrstringchainedecaractere.html b/Activity_3_python/Activites_Python3/Letypestrstringchainedecaractere.html
new file mode 100644
index 0000000..d186945
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypestrstringchainedecaractere.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+ Le type str (string : chaîne de caractères)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
>>> nom = 'Dupont' # entre apostrophes >>> print (nom) >>> print ( type (nom)) >>> prenom = "Pierre" # on peut aussi utiliser les guillemets >>> print (prenom) >>> print (nom, prenom) # ne pas oublier la virgule
+
La concaténation désigne la mise bout à bout de plusieurs chaînes de caractères. La concaténation utilise l'opérateur +
+
>>> chaine = nom + prenom # concaténation de deux chaînes de caractères >>> print (chaine) >>> chaine = prenom + nom # concaténation de deux chaînes de caractères >>> print (chaine) >>> chaine = prenom + ' ' + nom >>> print (chaine) >>> chaine = chaine + ' 18 ans' # en plus court : chaine += ' 18 ans' >>> print (chaine)
+
La fonction len() retourne la longueur (length) de la chaîne de caractères :
+
>>> print ( len (chaine))
+
Indexage et slicing :
+
>>> print (chaine[0]) # premier caractère (indice 0) >>> print (chaine[1]) # deuxième caractère (indice 1) >>> print (chaine[1:4]) # slicing >>> print (chaine[2:]) # slicing >>> print (chaine[-1]) # dernier caractère (indice -1) >>> print (chaine[-6:]) # slicing
+
En résumé :
+
+---+---+---+---+---+---+ | M | u | r | i | e | l | +---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1
+
+
>>> chaine = 'Aujourd' hui ' SyntaxError: invalid syntax >>> chaine = 'Aujourd\'hui' # séquence d'échappement \' >>> print (chaine) >>> chaine = "Aujourd'hui" >>> print (chaine)
+
La séquence d'échappement \n représente un saut ligne :
+
>>> chaine = 'Première ligne\nDeuxième ligne' >>> print (chaine)
+
Plus simplement, on peut utiliser les triples guillemets (ou les triples apostrophes) pour encadrer une chaîne définie sur plusieurs lignes :
+
>>> chaine = """Première ligne Deuxième ligne""" >>> print (chaine)
+
On ne peut pas mélanger les serviettes et les torchons (ici type str et type int ) :
+
>>> chaine = '17.45' >>> print ( type (chaine)) >>> chaine = chaine + 2
+
La fonction float() permet de convertir un type str en type float
+
>>> nombre = float (chaine) >>> print (nombre) >>> print ( type (nombre)) >>> nombre = nombre + 2 # en plus court : nombre += 2 >>> print (nombre)
+
La fonction input() lance une invite de commande (en anglais : prompt) pour saisir une chaîne de caractères.
+
>>> # saisir une chaîne de caractères et valider avec la touche Enter >>> chaine = input ( "Entrer un nombre : " ) Entrer un nombre : 14.56 >>> print (chaine) >>> print ( type (chaine)) >>> nombre = float (chaine) # conversion de type >>> print (nombre**2)
+
+
Créé avec HelpNDoc Personal Edition: Générateur facile de livres électroniques et documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Letypetuplep-uplets.html b/Activity_3_python/Activites_Python3/Letypetuplep-uplets.html
new file mode 100644
index 0000000..68cec67
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Letypetuplep-uplets.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+ Le type tuple (p-uplets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Il est possible de "stocker" plusieurs données dans une même structure, ce type de structure est appelé une séquence .
+
+
De façon plus précise, nous définirons une séquence comme un ensemble fini et ordonné d'éléments indicés de 0 à n-1 (si cette séquence comporte n éléments).
+
+
Dans un tuple, on peut avoir des éléments de plusieurs types.
+
>>> infoperso_t = ( 'Pierre' , 'Dupont' , 17, 1.75, 72.5) >>> # le tuple infoperso contient 5 éléments de types str, str, int, float et float >>> print ( type (infoperso_t)) >>> print (infoperso_t) >>> print ( 'Prénom : ' , infoperso_t[0]) # premier élément (indice 0) >>> print ( 'Age : ' , infoperso_t[2]) # le troisième élément a l'indice 2 >>> print ( 'Taille : ' , infoperso_t[3]) # le quatrième élément a l'indice 3
+
>>> a = infoperso_t[2] >>> print ( type (a)) >>> print (a)
+
Il n'est pas possible de modifier un tuple après sa création (on parle d'objet "immutable"), si vous essayez de modifier un tuple existant, l'interpréteur Python vous renverra une erreur.
+
>>> infoperso_t[0] = 'Bernard'
+
Il n'est pas nécessaire d'utiliser des parenthèses pour créer un tuple:
+
>>> mon_tuple = 'Bernard', 'Durand', 58, 1.82, 79.5 >>> print (mon_tuple)
+
Il est possible d'assigner à des variables les valeurs contenues dans un tuple :
+
>>> a, b, c, d, e = mon_tuple
+
>>> print (a) >>> print (e)
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Linstructionelif.html b/Activity_3_python/Activites_Python3/Linstructionelif.html
new file mode 100644
index 0000000..98280dc
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Linstructionelif.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+ L'instruction elif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Une instruction elif (contraction de else if ) est toujours associée à une instruction if
+
Syntaxe
+
if expression 1: bloc d'instructions 1 elif expression 2: bloc d'instructions 2 elif expression 3: bloc d'instructions 3 # ici deux instructions elif, mais il n'y a pas de limitation else : bloc d'instructions 4 # suite du programme
+
Si l'expression 1 est vraie alors le bloc d'instructions 1 est exécuté, et on passe à la suite du programme. Si l'expression 1 est fausse alors on teste l'expression 2 :
+
+si l'expression 2 est vraie on exécute le bloc d'instructions 2, et on passe à la suite du programme.
+si l'expression 2 est fausse alors on teste l'expression 3, etc.
+
+
Le bloc d'instructions 4 est donc exécuté si toutes les expressions sont fausses (c'est le bloc "par défaut").
+
Parfois il n'y a rien à faire. Dans ce cas, on peut omettre l'instruction else :
+
if expression 1: bloc d'instructions 1 elif expression 2: bloc d'instructions 2 elif expression 3: bloc d'instructions 3 # suite du programme
+
L'instruction elif évite souvent l'utilisation de conditions imbriquées (et souvent compliquées).
+
Exemple
+
# script Condition5.py # ce script fait la même chose que Condition4.py note = float ( input ( "Note sur 20 : " )) if note == 0.0: print ("C'est en dessous de la moyenne") print ("... lamentable !") elif note == 20.0: print ("J'ai la moyenne") print ("C'est même excellent !") elif note < 10.0 and note > 0.0: # ou bien : elif 0.0 < note < 10.0: print ("C'est en dessous de la moyenne") elif note >= 10.0 and note < 20.0: # ou bien : elif 10.0 <= note < 20.0: print ("J'ai la moyenne") else : print ("Note invalide !") print ("Fin du programme")
+
Exécuter et tester
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentation complet
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Linstructionelse.html b/Activity_3_python/Activites_Python3/Linstructionelse.html
new file mode 100644
index 0000000..48e0cb5
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Linstructionelse.html
@@ -0,0 +1,125 @@
+
+
+
+
+
+ L'instruction else
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Une instruction else est toujours associée à une instruction if
+
Syntaxe
+
if expression: bloc d'instructions 1 # attention à l'indentation else : # else est au même niveau que if bloc d'instructions 2 # attention à l'indentation # suite du programme
+
Si l'expression est vraie (True) alors le bloc d'instructions 1 est exécuté. Si l'expression est fausse (False) alors c'est le bloc d'instructions 2 qui est exécuté.
+
# script Condition2.py chaine = input ( "Note sur 20 : " ) note = float (chaine) if note >= 10.0: # ce bloc est exécuté si l'expression (note >= 10.0) est vraie print ("J'ai la moyenne") else : # ce bloc est exécuté si l'expression (note >= 10.0) est fausse print ("C'est en dessous de la moyenne") print ("Fin du programme")
+
Exécuter et tester
+
Pour traiter le cas des notes invalides (<0 ou >20), on peut imbriquer des instructions conditionnelles :
+
# script Condition3.py chaine = input ( "Note sur 20 : " ) note = float (chaine) if note > 20.0 or note < 0.0: # ce bloc est exécuté si l'expression (note > 20.0 or note < 0.0) est vraie print ("Note invalide !") else : # ce bloc est exécuté si l'expression (note > 20.0 or note < 0.0) est fausse if note >= 10.0: # ce bloc est exécuté si l'expression (note >= 10.0) est vraie print ("J'ai la moyenne") else : # ce bloc est exécuté si l'expression (note >= 10.0) est fausse print ("C'est en dessous de la moyenne") print ("Fin du programme")
+
Exécuter et tester
+
On ajoute encore un niveau d'imbrication pour traiter les cas particuliers 0 et 20 :
+
# script Condition4.py chaine = input ( "Note sur 20 : " ) note = float (chaine) if note > 20.0 or note < 0.0: print ("Note invalide !") else : if note >= 10.0: print ("J'ai la moyenne") if note == 20.0: # ce bloc est exécuté si l'expression (note == 20.0) est vraie print ("C'est même excellent !") else : print ("C'est en dessous de la moyenne") if note == 0.0: # ce bloc est exécuté si l'expression (note == 0.0) est vraie print ("... lamentable !") print ("Fin du programme")
+
Exécuter et tester
+
+
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide PDF facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Linstructionfor.html b/Activity_3_python/Activites_Python3/Linstructionfor.html
new file mode 100644
index 0000000..184059a
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Linstructionfor.html
@@ -0,0 +1,140 @@
+
+
+
+
+
+ L'instruction for
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Syntaxe
+
for élément in séquence : bloc d'instructions # suite du programme
+
Les éléments de la séquence sont issus d'une chaîne de caractères ou bien d'une liste.
+
Exemple avec une séquence de caractères
+
# script Boucle4.py chaine = 'Bonsoir' for lettre in chaine: # lettre est la variable d'itération print (lettre) print ("Fin de la boucle")
+
Exécuter
+
La variable lettre est initialisée avec le premier élément de la séquence ( ' B ' ). Le bloc d'instructions est alors exécuté. Puis la variable lettre est mise à jour avec le second élément de la séquence ( ' o ' ) et le bloc d'instructions à nouveau exécuté... Le bloc d'instructions est exécuté une dernière fois lorsqu'on arrive au dernier élément de la séquence ( ' r ' ) :
+
Exemple avec les éléments d'une liste
+
# script Boucle5.py maliste = [ 'Pierre' , 67.5, 18] for element in maliste: print (element) print ("Fin de la boucle")
+
Exécuter et tester
+
Là, on affiche dans l'ordre les éléments de la liste :
+
Fonction range()
+
L'association avec la fonction range() est très utile pour créer des séquences automatiques de nombres entiers :
+
# script Boucle6.py print ( list ( range (1,5))) for i in range (1,5): print (i) print ("Fin de la boucle")
+
>>> [1, 2, 3, 4] 1 2 3 4 Fin de la boucle
+
Table de multiplication
+
La création d'une table de multiplication paraît plus simple avec une boucle for qu'avec une boucle while :
+
# script Boucle7.py for compteur in range (1,11): print (compteur, '* 9 =' , compteur*9) print ("Et voilà !")
+
Exécuter
+
L'instruction break
+
L'instruction break provoque une sortie immédiate d'une boucle while ou d'une boucle for .
+
Dans l'exemple suivant, l'expression True est toujours ... vraie : on a une boucle sans fin. L'instruction break est donc le seul moyen de sortir de la boucle.
+
Affichage de l'heure courante
+
# script Boucle8.py import time # importation du module time while True : # strftime() est une fonction du module time print ( 'Heure courante ' , time.strftime( '%H:%M:%S' )) quitter = input( 'Voulez-vous quitter le programme (o/n) ? ' ) if quitter == 'o' : break print ("A bientôt")
+
Exécuter et tester
+
Astuce
+
Si vous connaissez le nombre de boucles à effectuer, utiliser une boucle for . Autrement, utiliser une boucle while (notamment pour faire des boucles sans fin).
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentation complet
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Linstructionif.html b/Activity_3_python/Activites_Python3/Linstructionif.html
new file mode 100644
index 0000000..b3822c8
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Linstructionif.html
@@ -0,0 +1,123 @@
+
+
+
+
+
+ L'instruction if
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Syntaxe
+
if expression: # ne pas oublier le signe de ponctuation ':' bloc d'instructions # attention à l'indentation # suite du programme
+
Si l'expression est vraie ( True ) alors le bloc d'instructions est exécuté. Si l'expression est fausse ( False ) on passe directement à la suite du programme.
+
Nous allons commencer par créer le script Condition1.py :
+
+
# script Condition1.py chaine = input ( "Note sur 20 : " ) note = float (chaine) if note >= 10.0: # ce bloc est exécuté si l'expression (note >= 10.0) est vraie print ("J'ai la moyenne") print ("Fin du programme")
+
Pour exécuter le script : Cliquer sur exécuter (ou touche Ctrl + F9) et tester.
+
Pour une meilleure compréhension des scripts, vous pouvez utiliser le site web PythonTutor et visualiser l'exécution pas à pas: http://pythontutor.com/visualize.html#mode=edit
+
+
+
Créé avec HelpNDoc Personal Edition: Créer facilement des fichiers Qt Help
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Linstructionwhile.html b/Activity_3_python/Activites_Python3/Linstructionwhile.html
new file mode 100644
index 0000000..594c7e9
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Linstructionwhile.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+ L'instruction while
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Syntaxe
+
while expression: # ne pas oublier le signe de ponctuation ':' bloc d'instructions # attention à l'indentation # suite du programme
+
Si l'expression est vraie ( True ) le bloc d'instructions est exécuté, puis l'expression est à nouveau évaluée. Le cycle continue jusqu'à ce que l'expression soit fausse ( False ) : on passe alors à la suite du programme.
+
Exemple : un script qui compte de 1 à 4
+
# script Boucle1.py # initialisation de la variable de comptage compteur = 1 while compteur < 5: # ce bloc est exécuté tant que la condition (compteur < 5) est vraie print (compteur, compteur < 5) compteur += 1 # incrémentation du compteur, compteur = compteur + 1 print (compteur < 5) print ("Fin de la boucle")
+
Exécuter
+
Table de multiplication par 8
+
# script Boucle2.py compteur = 1 # initialisation de la variable de comptage while compteur <= 10: # ce bloc est exécuté tant que la condition (compteur <= 10) est vraie print (compteur, '* 8 =' , compteur*8) compteur += 1 # incrémentation du compteur, compteur = compteur + 1 print ("Et voilà !")
+
Exécuter
+
Affichage de l'heure courante
+
# script Boucle3.py import time # importation du module time quitter = 'n' # initialisation while quitter != 'o' : # ce bloc est exécuté tant que la condition est vraie # strftime() est une fonction du module time print ( 'Heure courante ' , time.strftime( '%H:%M:%S' )) quitter = input( "Voulez-vous quitter le programme (o/n) ? " ) print ("A bientôt")
+
Exécuter et tester
+
+
Créé avec HelpNDoc Personal Edition: Produire des livres EPub gratuitement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Nomsdevariables.html b/Activity_3_python/Activites_Python3/Nomsdevariables.html
new file mode 100644
index 0000000..cf4be57
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Nomsdevariables.html
@@ -0,0 +1,126 @@
+
+
+
+
+
+ Noms de variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Identificateur:
+
+
Le nom d'une variable s'écrit avec des lettres (non accentuées) , des chiffres ou bien l'underscore _
+
+
Le nom d'une variable ne doit pas commencer par un chiffre .
+
+
En langage Python, l'usage est de ne pas utiliser de lettres majuscules pour nommer les variables (celles-ci sont réservées pour nommer les classes).
+
+
Il est préférable d'utiliser des noms évocateurs
+
+
Exemple : age, mon_age, temperature1
+
+
A éviter : Age, AGE, MonAge, monAge, Temperature1
+
+
Créé avec HelpNDoc Personal Edition: Éditeur de documentation CHM facile
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Preambule.html b/Activity_3_python/Activites_Python3/Preambule.html
new file mode 100644
index 0000000..3fdd016
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Preambule.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+ Préambule
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Le langage Python est un langage de programmation objet interprété . Il a été développé par Guido Von Rossum à partir de 1989 à l’Université d’Amsterdam.
+
+
Python est un langage multiplateforme , c'est-à-dire disponible sur plusieurs architectures (compatible PC, tablettes, smartphones, ordinateur low cost Raspberry Pi...) et systèmes d'exploitation (Windows, Linux, Mac, Android...).
+
+
Le langage Python est gratuit, sous licence libre .
+
+
C'est un des langages informatiques les plus populaires avec C, C++, C#, Objective-C, Java, PHP, JavaScript, Delphi, Visual Basic, Ruby et Perl ( liste non exhaustive ).
+
+
Actuellement, Python en est à sa version 3 depuis 2008.
+
Attention : Python 2 n'est pas compatible avec Python 3 !
+
+
Que peut-on faire avec Python ?
+
Beaucoup de choses !
+
+
+du calcul scientifique (librairie NumPy )
+des graphiques (librairie matplotlib )
+du traitement du son, de la synthèse vocale (librairie eSpeak)
+du traitement d'image (librairie PIL ), de la vision artificielle par caméra (framework SimpleCV )
+de la bio-informatique (librairie Biopython )
+des applications avec interface graphique GUI (librairies Tkinter , PyQt , wxPython , PyGTK ...)
+des jeux vidéo en 2D (librairie Pygame )
+des applications multi-touch (framework kivy pour tablette et smartphone à écran tactile)
+des applications Web (serveur Web Zope ; frameworks Web Flask , Django )
+interfacer des systèmes de gestion de base de données (librairie MySQLdb ...)
+des applications réseau (framework Twisted )
+communiquer avec des ports série (librairie PySerial ), en Bluetooth (librairie pybluez )...
+
+
...
+
Des dizaines de milliers de librairies sont disponibles sur le dépôt officiel PyPI .
+
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub facile
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/ProgrammationOrienteeObjetPOO.html b/Activity_3_python/Activites_Python3/ProgrammationOrienteeObjetPOO.html
new file mode 100644
index 0000000..9563781
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/ProgrammationOrienteeObjetPOO.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+ Programmation Orientée Objet (POO)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Python est un langage de programmation orienté objet (comme les langages C++, Java, PHP, Ruby...). Une variable est en fait un objet d'une certaine classe .
+
Tous les types du langage python sont également des objets.
+
Par exemple, la variable amis est un objet de la classe list . On dit aussi que la variable amis est une instance de la classe list . L' instanciation (action d'instancier) est la création d'un objet à partir d'une classe.
+
>>> # instanciation de l'objet amis de la classe list >>> amis = [ 'Nicolas' , 'Julie' ] # ou bien : amis = list(['Nicolas', 'Julie']) >>> print ( type (amis))
+
Une classe possède des fonctions que l'on appelle méthodes et des données que l'on appelle attributs .
+
La méthode append() de la classe list ajoute un nouvel élément en fin de liste :
+
>>> # instanciation d'une liste vide >>> amis = [] # ou bien : amis = list() >>> amis.append( 'Nicolas' ) # synthase générale : objet.méthode(arguments) >>> print (amis) >>> amis.append( 'Julie' ) # ou bien : amis = amis + ['Julie'] >>> print (amis) >>> amis.append( 'Pauline' ) >>> print (amis)
+
>>> amis.sort() # la méthode sort() trie les éléments >>> print (amis)
+
>>> amis.reverse() # la méthode reverse() inverse la liste des éléments >>> print (amis)
+
La méthode lower() de la classe str retourne la chaîne de caractères en casse minuscule :
+
>>> # la variable chaine est une instance de la classe str >>> chaine = "BONJOUR" # ou bien : chaine = str("BONJOUR") >>> chaine2 = chaine.lower() # on applique la méthode lower() à l'objet chaine >>> print (chaine2) >>> print (chaine)
+
La méthode pop() de la classe dict supprime une clé :
+
>>> # instanciation de l'objet moyennes de la classe dict >>> moyennes = { 'sport' : 11.0, 'anglais' : 14.3, 'math' : 12.5} >>> # ou : moyennes = dict({'sport': 11.0, 'anglais': 14.3, 'math': 12.5}) >>> moyennes.pop( 'anglais' ) >>> print (moyennes)
+
>>> print (moyennes.keys()) # la méthode keys() retourne la liste des clés
+
>>> print (moyennes.values()) # la méthode values() retourne la liste des valeurs
+
+
+
Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Scripts.html b/Activity_3_python/Activites_Python3/Scripts.html
new file mode 100644
index 0000000..d3e904e
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Scripts.html
@@ -0,0 +1,132 @@
+
+
+
+
+
+ Scripts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Scripts
+
Un programme (code source) est une séquence d'instructions.
+
Dans le cas d'un programme en langage Python, on parle souvent de script Python.
+
+
Un script se présente sous la forme d'un fichier texte avec l'extension .py
+
+
Voici un exemple de script Python :
+
Bonjour.py
+
Télécharger le et copier le dans votre dossier de travail
+
+
Le code source d'un script s'ouvre avec un éditeur de texte
+
+
Démarrer l'IDLE Edupython
+
L'IDLE muni d'un interpréteur permettra d'exécuter le script.
+
+
Ouvrir le script depuis Edupython.
+
Une fois chargé, 2 solutions s'offrent à vous pour l'exécuter:
+
+Soit vous cliquez sur l'icône Exécuter ou (Ctrl + F9)
+Soit vous appelez le script dans la Console Python (interpréteur Python en mode interactif)
+
+
+
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/Variablestypesetoperateurs.html b/Activity_3_python/Activites_Python3/Variablestypesetoperateurs.html
new file mode 100644
index 0000000..95c4aa0
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/Variablestypesetoperateurs.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+ Variables, types et opérateurs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Notion de variables
+
+
Lorsque l’on écrit un programme informatique, on va manipuler des données comme des nombres entiers, des nombres à virgules, des chaînes de caractères.
+
+
Pour pouvoir manipuler facilement toutes ces données, on va les mémoriser, les stocker dans des variables , ce qui revient à les « ranger dans une boîte » et on va leur donner un nom, « coller une étiquette dessus ».
+
+
+
Le processeur sait très bien utiliser ces « boites » mémoires (c’est même son travail principal).
+
+
Déclarer une variable permet de réserver un espace mémoire volatile (cache, vive) dans lequel il est possible de stocker une valeur (une donnée), pour la réutiliser ou la modifier plus tard.
+
+
L’instruction d' affectation est l’action d'associer une valeur à cette variable.
+
+
En Python une affectation est effectuée avec le signe « = », la variable étant écrite en premier et le contenu qu’elle doit prendre étant écrit en deuxième.
+
+
Exemple:
+
+
x = 5 #On affecte à la variable nommée x la valeur 5
+
+
+
Remarque:
+
+Une affectation dans une variable peut faire appel à la variable elle-même.
+
+
Par exemple a = a + 1 peut se traduire par : la variable a prend la valeur (actuelle) de a , + 1.
+
+En informatique, « a = b » ne veut pas dire la même chose que « b = a ».
+
+
+
+
+
+
Créé avec HelpNDoc Personal Edition: Créer des livres électroniques facilement
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/Activites_Python3/css/base.css b/Activity_3_python/Activites_Python3/css/base.css
new file mode 100644
index 0000000..bd22c80
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/base.css
@@ -0,0 +1,112 @@
+body {
+ background-color: #fff;
+ overflow: auto;
+ width: 100%;
+}
+
+.clear {
+ border: 0;
+ clear: both;
+ margin: 0;
+ padding: 0;
+}
+
+#topic_header, #topic_footer,
+#toc_header, #toc_footer {
+ padding: 10px;
+}
+
+#topic_content,
+#toc_content{
+ margin: 10px;
+}
+
+/* Backgrounds */
+
+#topic_header {
+ background: #fff url(../img/header-bg.png) repeat-x left top;
+ border-bottom: 1px solid #ccc;
+ margin-bottom: 15px;
+}
+
+#topic_footer{
+ background: #fff url(../img/footer-bg.png) repeat-x left top;
+ margin-top: 20px;
+}
+
+/* Topic */
+
+#topic_header #topic_header_content {
+ float: left;
+}
+
+#topic_header #topic_header_nav {
+ float: right;
+}
+
+#topic_header #topic_header_nav img {
+ margin-left: 5px;
+}
+
+#topic_header a,
+#topic_footer a,
+#search_results a,
+#popupMenu a {
+ color: #333;
+ text-decoration: none;
+}
+
+#topic_header a:hover,
+#topic_footer a:hover,
+#search_results a:hover,
+#popupMenu a:hover{
+ text-decoration: underline;
+}
+
+#topic_header h1 {
+ color: #333;
+ font-size: 18px;
+}
+
+#topic_footer {
+ font-size: 11px;
+}
+
+#topic_breadcrumb {
+ color: #333;
+ font-size: 11px;
+}
+
+/* Popup */
+
+#popupMenu {
+ background-color: #eee;
+ border: 1px solid #999;
+ position: absolute;
+ padding: 5px;
+ webkit-box-shadow: 0px 0px 5px #cccccc;
+ -moz-box-shadow: 0px 0px 5px #cccccc;
+ box-shadow: 0px 0px 5px #cccccc;
+}
+
+#popupMenu a{
+ display: block;
+ margin: 5px 10px 2px 5px;
+}
+
+.close-button{
+ color: #666;
+ cursor: hand;
+ cursor: pointer;
+ float: right;
+ font-size: 10px;
+ position: relative;
+ top: -5px;
+ right: -3px;
+}
+
+/* Search highlight */
+
+.highlight {
+ background-color: yellow;
+}
\ No newline at end of file
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/0.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/0.png
new file mode 100644
index 0000000..0189cda
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/0.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/1.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/1.png
new file mode 100644
index 0000000..01335b0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/1.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/10.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/10.png
new file mode 100644
index 0000000..86c1b70
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/10.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/11.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/11.png
new file mode 100644
index 0000000..60da179
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/11.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/12.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/12.png
new file mode 100644
index 0000000..7977cad
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/12.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/13.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/13.png
new file mode 100644
index 0000000..2d6b99e
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/13.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/14.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/14.png
new file mode 100644
index 0000000..c6150b5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/14.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/15.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/15.png
new file mode 100644
index 0000000..58f205f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/15.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/16.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/16.png
new file mode 100644
index 0000000..746f6c4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/16.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/17.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/17.png
new file mode 100644
index 0000000..e450e6b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/17.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/18.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/18.png
new file mode 100644
index 0000000..fae8d06
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/18.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/19.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/19.png
new file mode 100644
index 0000000..557aa37
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/19.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/2.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/2.png
new file mode 100644
index 0000000..3887079
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/2.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/20.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/20.png
new file mode 100644
index 0000000..cb6845b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/20.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/21.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/21.png
new file mode 100644
index 0000000..bfb11c9
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/21.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/22.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/22.png
new file mode 100644
index 0000000..17ed9c5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/22.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/23.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/23.png
new file mode 100644
index 0000000..1c4a863
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/23.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/24.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/24.png
new file mode 100644
index 0000000..e91b518
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/24.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/25.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/25.png
new file mode 100644
index 0000000..00d2d5d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/25.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/26.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/26.png
new file mode 100644
index 0000000..4952af6
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/26.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/27.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/27.png
new file mode 100644
index 0000000..a61fe9b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/27.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/28.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/28.png
new file mode 100644
index 0000000..52160f0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/28.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/29.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/29.png
new file mode 100644
index 0000000..06aa97c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/29.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/3.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/3.png
new file mode 100644
index 0000000..b1c9413
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/3.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/30.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/30.png
new file mode 100644
index 0000000..7b52276
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/30.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/31.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/31.png
new file mode 100644
index 0000000..02283db
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/31.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/32.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/32.png
new file mode 100644
index 0000000..875843c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/32.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/33.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/33.png
new file mode 100644
index 0000000..d64f137
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/33.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/34.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/34.png
new file mode 100644
index 0000000..a6d94c5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/34.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/35.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/35.png
new file mode 100644
index 0000000..dfc87bf
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/35.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/36.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/36.png
new file mode 100644
index 0000000..ce6235b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/36.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/37.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/37.png
new file mode 100644
index 0000000..0120330
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/37.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/38.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/38.png
new file mode 100644
index 0000000..5334fae
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/38.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/39.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/39.png
new file mode 100644
index 0000000..06e446b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/39.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/4.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/4.png
new file mode 100644
index 0000000..6e5cfc0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/4.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/40.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/40.png
new file mode 100644
index 0000000..6d744db
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/40.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/41.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/41.png
new file mode 100644
index 0000000..476edf4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/41.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/5.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/5.png
new file mode 100644
index 0000000..1df634f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/5.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/6.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/6.png
new file mode 100644
index 0000000..947d9c4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/6.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/7.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/7.png
new file mode 100644
index 0000000..a362886
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/7.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/8.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/8.png
new file mode 100644
index 0000000..5bcd3ec
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/8.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/9.png b/Activity_3_python/Activites_Python3/css/dynatree/chm/9.png
new file mode 100644
index 0000000..3b4991d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/9.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/icons.gif b/Activity_3_python/Activites_Python3/css/dynatree/chm/icons.gif
new file mode 100644
index 0000000..c0ccac1
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/icons.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/loading.gif b/Activity_3_python/Activites_Python3/css/dynatree/chm/loading.gif
new file mode 100644
index 0000000..251df05
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/loading.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/ui.dynatree.css b/Activity_3_python/Activites_Python3/css/dynatree/chm/ui.dynatree.css
new file mode 100644
index 0000000..29679b4
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/dynatree/chm/ui.dynatree.css
@@ -0,0 +1,440 @@
+/*******************************************************************************
+ * Tree container
+ */
+ul.dynatree-container
+{
+ font-family: tahoma, arial, helvetica;
+ font-size: 10pt; /* font size should not be too big */
+ white-space: nowrap;
+ padding: 3px;
+ margin: 0; /* issue 201 */
+ background-color: white;
+ border: 1px dotted gray;
+ overflow: auto;
+ height: 100%; /* issue 263 */
+}
+
+ul.dynatree-container ul
+{
+ padding: 0 0 0 16px;
+ margin: 0;
+}
+
+ul.dynatree-container li
+{
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+ -moz-background-clip:border;
+ -moz-background-inline-policy: continuous;
+ -moz-background-origin: padding;
+ background-attachment: scroll;
+ background-color: transparent;
+ background-repeat: repeat-y;
+ background-image: url("vline.gif");
+ background-position: 0 0;
+ /*
+ background-image: url("icons_96x256.gif");
+ background-position: -80px -64px;
+ */
+ margin: 0;
+ padding: 1px 0 0 0;
+}
+/* Suppress lines for last child node */
+ul.dynatree-container li.dynatree-lastsib
+{
+ background-image: none;
+}
+/* Suppress lines if level is fixed expanded (option minExpandLevel) */
+ul.dynatree-no-connector > li
+{
+ background-image: none;
+}
+
+/* Style, when control is disabled */
+.ui-dynatree-disabled ul.dynatree-container
+{
+ opacity: 0.5;
+/* filter: alpha(opacity=50); /* Yields a css warning */
+ background-color: silver;
+}
+
+/*******************************************************************************
+ * Common icon definitions
+ */
+span.dynatree-empty,
+span.dynatree-vline,
+span.dynatree-connector,
+span.dynatree-expander,
+span.dynatree-icon,
+span.dynatree-checkbox,
+span.dynatree-radio,
+span.dynatree-drag-helper-img,
+#dynatree-drop-marker
+{
+ width: 16px;
+ height: 16px;
+/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221 */
+/* -moz-box-align: start; /* issue 221 */
+ display: inline-block; /* Required to make a span sizeable */
+ vertical-align: top;
+ background-repeat: no-repeat;
+ background-position: left;
+ background-image: url("icons.gif");
+ background-position: 0 0;
+}
+
+/** Used by 'icon' node option: */
+ul.dynatree-container img
+{
+ width: 16px;
+ height: 16px;
+ margin-left: 3px;
+ vertical-align: top;
+ border-style: none;
+}
+
+
+/*******************************************************************************
+ * Lines and connectors
+ */
+
+span.dynatree-connector
+{
+ background-position: -16px -64px;
+}
+
+/*******************************************************************************
+ * Expander icon
+ * Note: IE6 doesn't correctly evaluate multiples class names,
+ * so we create combined class names that can be used in the CSS.
+ *
+ * Prefix: dynatree-exp-
+ * 1st character: 'e': expanded, 'c': collapsed
+ * 2nd character (optional): 'd': lazy (Delayed)
+ * 3rd character (optional): 'l': Last sibling
+ */
+
+span.dynatree-expander
+{
+ background-position: 0px -80px;
+ cursor: pointer;
+}
+.dynatree-exp-cl span.dynatree-expander /* Collapsed, not delayed, last sibling */
+{
+ background-position: 0px -96px;
+}
+.dynatree-exp-cd span.dynatree-expander /* Collapsed, delayed, not last sibling */
+{
+ background-position: -64px -80px;
+}
+.dynatree-exp-cdl span.dynatree-expander /* Collapsed, delayed, last sibling */
+{
+ background-position: -64px -96px;
+}
+.dynatree-exp-e span.dynatree-expander, /* Expanded, not delayed, not last sibling */
+.dynatree-exp-ed span.dynatree-expander /* Expanded, delayed, not last sibling */
+{
+ background-position: -32px -80px;
+}
+.dynatree-exp-el span.dynatree-expander, /* Expanded, not delayed, last sibling */
+.dynatree-exp-edl span.dynatree-expander /* Expanded, delayed, last sibling */
+{
+ background-position: -32px -96px;
+}
+.dynatree-loading span.dynatree-expander /* 'Loading' status overrides all others */
+{
+ background-position: 0 0;
+ background-image: url("loading.gif");
+}
+
+
+/*******************************************************************************
+ * Checkbox icon
+ */
+span.dynatree-checkbox
+{
+ margin-left: 3px;
+ background-position: 0px -32px;
+}
+span.dynatree-checkbox:hover
+{
+ background-position: -16px -32px;
+}
+
+.dynatree-partsel span.dynatree-checkbox
+{
+ background-position: -64px -32px;
+}
+.dynatree-partsel span.dynatree-checkbox:hover
+{
+ background-position: -80px -32px;
+}
+
+.dynatree-selected span.dynatree-checkbox
+{
+ background-position: -32px -32px;
+}
+.dynatree-selected span.dynatree-checkbox:hover
+{
+ background-position: -48px -32px;
+}
+
+/*******************************************************************************
+ * Radiobutton icon
+ * This is a customization, that may be activated by overriding the 'checkbox'
+ * class name as 'dynatree-radio' in the tree options.
+ */
+span.dynatree-radio
+{
+ margin-left: 3px;
+ background-position: 0px -48px;
+}
+span.dynatree-radio:hover
+{
+ background-position: -16px -48px;
+}
+
+.dynatree-partsel span.dynatree-radio
+{
+ background-position: -64px -48px;
+}
+.dynatree-partsel span.dynatree-radio:hover
+{
+ background-position: -80px -48px;
+}
+
+.dynatree-selected span.dynatree-radio
+{
+ background-position: -32px -48px;
+}
+.dynatree-selected span.dynatree-radio:hover
+{
+ background-position: -48px -48px;
+}
+
+/*******************************************************************************
+ * Node type icon
+ * Note: IE6 doesn't correctly evaluate multiples class names,
+ * so we create combined class names that can be used in the CSS.
+ *
+ * Prefix: dynatree-ico-
+ * 1st character: 'e': expanded, 'c': collapsed
+ * 2nd character (optional): 'f': folder
+ */
+
+span.dynatree-icon /* Default icon */
+{
+ margin-left: 3px;
+ background-position: 0px 0px;
+}
+
+.dynatree-ico-cf span.dynatree-icon /* Collapsed Folder */
+{
+ background-position: 0px -16px;
+}
+
+.dynatree-ico-ef span.dynatree-icon /* Expanded Folder */
+{
+ background-position: -64px -16px;
+}
+
+/* Status node icons */
+
+.dynatree-statusnode-wait span.dynatree-icon
+{
+ background-image: url("loading.gif");
+}
+
+.dynatree-statusnode-error span.dynatree-icon
+{
+ background-position: 0px -112px;
+/* background-image: url("ltError.gif");*/
+}
+
+/*******************************************************************************
+ * Node titles
+ */
+
+/* @Chrome: otherwise hit area of node titles is broken (issue 133)
+ Removed again for issue 165; (133 couldn't be reproduced) */
+span.dynatree-node
+{
+/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221*/
+/* -moz-box-align: start; /* issue 221 */
+/* display: inline-block; /* Required to make a span sizeable */
+}
+
+
+/* Remove blue color and underline from title links */
+ul.dynatree-container a
+/*, ul.dynatree-container a:visited*/
+{
+ color: black; /* inherit doesn't work on IE */
+ text-decoration: none;
+ vertical-align: top;
+ margin: 0px;
+ margin-left: 3px;
+/* outline: 0; /* @ Firefox, prevent dotted border after click */
+}
+
+ul.dynatree-container a:hover
+{
+/* text-decoration: underline; */
+ background-color: #F2F7FD; /* light blue */
+ border-color: #B8D6FB; /* darker light blue */
+}
+
+span.dynatree-node a
+{
+ font-size: 10pt; /* required for IE, quirks mode */
+ display: inline-block; /* Better alignment, when title contains */
+/* vertical-align: top;*/
+ padding-left: 3px;
+ padding-right: 3px; /* Otherwise italic font will be outside bounds */
+ /* line-height: 16px; /* should be the same as img height, in case 16 px */
+}
+span.dynatree-folder a
+{
+ font-weight: bold;
+}
+
+ul.dynatree-container a:focus,
+span.dynatree-focused a:link /* @IE */
+{
+ background-color: #EFEBDE; /* gray */
+}
+
+span.dynatree-has-children a
+{
+}
+
+span.dynatree-expanded a
+{
+}
+
+span.dynatree-selected a
+{
+ color: green;
+ font-style: italic;
+}
+
+span.dynatree-active a
+{
+ background-color: #3169C6 !important;
+ color: white !important; /* @ IE6 */
+}
+
+/*******************************************************************************
+ * Drag'n'drop support
+ */
+
+/*** Helper object ************************************************************/
+div.dynatree-drag-helper
+{
+}
+div.dynatree-drag-helper a
+{
+ border: 1px solid gray;
+ background-color: white;
+ padding-left: 5px;
+ padding-right: 5px;
+ opacity: 0.8;
+}
+span.dynatree-drag-helper-img
+{
+ /*
+ position: relative;
+ left: -16px;
+ */
+}
+div.dynatree-drag-helper /*.dynatree-drop-accept*/
+{
+
+/* border-color: green;
+ background-color: red;*/
+}
+div.dynatree-drop-accept span.dynatree-drag-helper-img
+{
+ background-position: -32px -112px;
+}
+div.dynatree-drag-helper.dynatree-drop-reject
+{
+ border-color: red;
+}
+div.dynatree-drop-reject span.dynatree-drag-helper-img
+{
+ background-position: -16px -112px;
+}
+
+/*** Drop marker icon *********************************************************/
+
+#dynatree-drop-marker
+{
+ width: 24px;
+ position: absolute;
+ background-position: 0 -128px;
+ margin: 0;
+/* border: 1px solid red; */
+}
+#dynatree-drop-marker.dynatree-drop-after,
+#dynatree-drop-marker.dynatree-drop-before
+{
+ width:64px;
+ background-position: 0 -144px;
+}
+#dynatree-drop-marker.dynatree-drop-copy
+{
+ background-position: -64px -128px;
+}
+#dynatree-drop-marker.dynatree-drop-move
+{
+ background-position: -64px -128px;
+}
+
+/*** Source node while dragging ***********************************************/
+
+span.dynatree-drag-source
+{
+ /* border: 1px dotted gray; */
+ background-color: #e0e0e0;
+}
+span.dynatree-drag-source a
+{
+ color: gray;
+}
+
+/*** Target node while dragging cursor is over it *****************************/
+
+span.dynatree-drop-target
+{
+ /*border: 1px solid gray;*/
+}
+span.dynatree-drop-target a
+{
+}
+span.dynatree-drop-target.dynatree-drop-accept a
+{
+ /*border: 1px solid green;*/
+ background-color: #3169C6 !important;
+ color: white !important; /* @ IE6 */
+ text-decoration: none;
+}
+span.dynatree-drop-target.dynatree-drop-reject
+{
+ /*border: 1px solid red;*/
+}
+span.dynatree-drop-target.dynatree-drop-after a
+{
+}
+
+
+/*******************************************************************************
+ * Custom node classes (sample)
+ */
+
+span.custom1 a
+{
+ background-color: maroon;
+ color: yellow;
+}
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/chm/vline.gif b/Activity_3_python/Activites_Python3/css/dynatree/chm/vline.gif
new file mode 100644
index 0000000..1b00ae5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/chm/vline.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/0.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/0.png
new file mode 100644
index 0000000..0189cda
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/0.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/1.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/1.png
new file mode 100644
index 0000000..01335b0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/1.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/10.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/10.png
new file mode 100644
index 0000000..86c1b70
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/10.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/11.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/11.png
new file mode 100644
index 0000000..60da179
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/11.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/12.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/12.png
new file mode 100644
index 0000000..7977cad
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/12.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/13.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/13.png
new file mode 100644
index 0000000..2d6b99e
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/13.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/14.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/14.png
new file mode 100644
index 0000000..c6150b5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/14.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/15.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/15.png
new file mode 100644
index 0000000..58f205f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/15.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/16.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/16.png
new file mode 100644
index 0000000..746f6c4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/16.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/17.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/17.png
new file mode 100644
index 0000000..e450e6b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/17.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/18.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/18.png
new file mode 100644
index 0000000..fae8d06
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/18.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/19.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/19.png
new file mode 100644
index 0000000..557aa37
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/19.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/2.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/2.png
new file mode 100644
index 0000000..3887079
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/2.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/20.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/20.png
new file mode 100644
index 0000000..cb6845b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/20.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/21.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/21.png
new file mode 100644
index 0000000..bfb11c9
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/21.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/22.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/22.png
new file mode 100644
index 0000000..17ed9c5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/22.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/23.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/23.png
new file mode 100644
index 0000000..1c4a863
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/23.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/24.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/24.png
new file mode 100644
index 0000000..e91b518
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/24.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/25.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/25.png
new file mode 100644
index 0000000..00d2d5d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/25.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/26.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/26.png
new file mode 100644
index 0000000..4952af6
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/26.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/27.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/27.png
new file mode 100644
index 0000000..a61fe9b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/27.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/28.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/28.png
new file mode 100644
index 0000000..52160f0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/28.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/29.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/29.png
new file mode 100644
index 0000000..06aa97c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/29.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/3.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/3.png
new file mode 100644
index 0000000..b1c9413
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/3.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/30.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/30.png
new file mode 100644
index 0000000..7b52276
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/30.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/31.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/31.png
new file mode 100644
index 0000000..02283db
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/31.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/32.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/32.png
new file mode 100644
index 0000000..875843c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/32.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/33.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/33.png
new file mode 100644
index 0000000..d64f137
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/33.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/34.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/34.png
new file mode 100644
index 0000000..a6d94c5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/34.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/35.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/35.png
new file mode 100644
index 0000000..dfc87bf
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/35.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/36.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/36.png
new file mode 100644
index 0000000..ce6235b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/36.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/37.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/37.png
new file mode 100644
index 0000000..0120330
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/37.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/38.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/38.png
new file mode 100644
index 0000000..5334fae
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/38.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/39.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/39.png
new file mode 100644
index 0000000..06e446b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/39.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/4.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/4.png
new file mode 100644
index 0000000..6e5cfc0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/4.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/40.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/40.png
new file mode 100644
index 0000000..6d744db
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/40.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/41.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/41.png
new file mode 100644
index 0000000..476edf4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/41.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/5.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/5.png
new file mode 100644
index 0000000..1df634f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/5.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/6.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/6.png
new file mode 100644
index 0000000..947d9c4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/6.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/7.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/7.png
new file mode 100644
index 0000000..a362886
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/7.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/8.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/8.png
new file mode 100644
index 0000000..5bcd3ec
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/8.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/9.png b/Activity_3_python/Activites_Python3/css/dynatree/folder/9.png
new file mode 100644
index 0000000..3b4991d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/9.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/icons.gif b/Activity_3_python/Activites_Python3/css/dynatree/folder/icons.gif
new file mode 100644
index 0000000..a58eb93
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/icons.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/loading.gif b/Activity_3_python/Activites_Python3/css/dynatree/folder/loading.gif
new file mode 100644
index 0000000..251df05
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/loading.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/ui.dynatree.css b/Activity_3_python/Activites_Python3/css/dynatree/folder/ui.dynatree.css
new file mode 100644
index 0000000..29679b4
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/dynatree/folder/ui.dynatree.css
@@ -0,0 +1,440 @@
+/*******************************************************************************
+ * Tree container
+ */
+ul.dynatree-container
+{
+ font-family: tahoma, arial, helvetica;
+ font-size: 10pt; /* font size should not be too big */
+ white-space: nowrap;
+ padding: 3px;
+ margin: 0; /* issue 201 */
+ background-color: white;
+ border: 1px dotted gray;
+ overflow: auto;
+ height: 100%; /* issue 263 */
+}
+
+ul.dynatree-container ul
+{
+ padding: 0 0 0 16px;
+ margin: 0;
+}
+
+ul.dynatree-container li
+{
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+ -moz-background-clip:border;
+ -moz-background-inline-policy: continuous;
+ -moz-background-origin: padding;
+ background-attachment: scroll;
+ background-color: transparent;
+ background-repeat: repeat-y;
+ background-image: url("vline.gif");
+ background-position: 0 0;
+ /*
+ background-image: url("icons_96x256.gif");
+ background-position: -80px -64px;
+ */
+ margin: 0;
+ padding: 1px 0 0 0;
+}
+/* Suppress lines for last child node */
+ul.dynatree-container li.dynatree-lastsib
+{
+ background-image: none;
+}
+/* Suppress lines if level is fixed expanded (option minExpandLevel) */
+ul.dynatree-no-connector > li
+{
+ background-image: none;
+}
+
+/* Style, when control is disabled */
+.ui-dynatree-disabled ul.dynatree-container
+{
+ opacity: 0.5;
+/* filter: alpha(opacity=50); /* Yields a css warning */
+ background-color: silver;
+}
+
+/*******************************************************************************
+ * Common icon definitions
+ */
+span.dynatree-empty,
+span.dynatree-vline,
+span.dynatree-connector,
+span.dynatree-expander,
+span.dynatree-icon,
+span.dynatree-checkbox,
+span.dynatree-radio,
+span.dynatree-drag-helper-img,
+#dynatree-drop-marker
+{
+ width: 16px;
+ height: 16px;
+/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221 */
+/* -moz-box-align: start; /* issue 221 */
+ display: inline-block; /* Required to make a span sizeable */
+ vertical-align: top;
+ background-repeat: no-repeat;
+ background-position: left;
+ background-image: url("icons.gif");
+ background-position: 0 0;
+}
+
+/** Used by 'icon' node option: */
+ul.dynatree-container img
+{
+ width: 16px;
+ height: 16px;
+ margin-left: 3px;
+ vertical-align: top;
+ border-style: none;
+}
+
+
+/*******************************************************************************
+ * Lines and connectors
+ */
+
+span.dynatree-connector
+{
+ background-position: -16px -64px;
+}
+
+/*******************************************************************************
+ * Expander icon
+ * Note: IE6 doesn't correctly evaluate multiples class names,
+ * so we create combined class names that can be used in the CSS.
+ *
+ * Prefix: dynatree-exp-
+ * 1st character: 'e': expanded, 'c': collapsed
+ * 2nd character (optional): 'd': lazy (Delayed)
+ * 3rd character (optional): 'l': Last sibling
+ */
+
+span.dynatree-expander
+{
+ background-position: 0px -80px;
+ cursor: pointer;
+}
+.dynatree-exp-cl span.dynatree-expander /* Collapsed, not delayed, last sibling */
+{
+ background-position: 0px -96px;
+}
+.dynatree-exp-cd span.dynatree-expander /* Collapsed, delayed, not last sibling */
+{
+ background-position: -64px -80px;
+}
+.dynatree-exp-cdl span.dynatree-expander /* Collapsed, delayed, last sibling */
+{
+ background-position: -64px -96px;
+}
+.dynatree-exp-e span.dynatree-expander, /* Expanded, not delayed, not last sibling */
+.dynatree-exp-ed span.dynatree-expander /* Expanded, delayed, not last sibling */
+{
+ background-position: -32px -80px;
+}
+.dynatree-exp-el span.dynatree-expander, /* Expanded, not delayed, last sibling */
+.dynatree-exp-edl span.dynatree-expander /* Expanded, delayed, last sibling */
+{
+ background-position: -32px -96px;
+}
+.dynatree-loading span.dynatree-expander /* 'Loading' status overrides all others */
+{
+ background-position: 0 0;
+ background-image: url("loading.gif");
+}
+
+
+/*******************************************************************************
+ * Checkbox icon
+ */
+span.dynatree-checkbox
+{
+ margin-left: 3px;
+ background-position: 0px -32px;
+}
+span.dynatree-checkbox:hover
+{
+ background-position: -16px -32px;
+}
+
+.dynatree-partsel span.dynatree-checkbox
+{
+ background-position: -64px -32px;
+}
+.dynatree-partsel span.dynatree-checkbox:hover
+{
+ background-position: -80px -32px;
+}
+
+.dynatree-selected span.dynatree-checkbox
+{
+ background-position: -32px -32px;
+}
+.dynatree-selected span.dynatree-checkbox:hover
+{
+ background-position: -48px -32px;
+}
+
+/*******************************************************************************
+ * Radiobutton icon
+ * This is a customization, that may be activated by overriding the 'checkbox'
+ * class name as 'dynatree-radio' in the tree options.
+ */
+span.dynatree-radio
+{
+ margin-left: 3px;
+ background-position: 0px -48px;
+}
+span.dynatree-radio:hover
+{
+ background-position: -16px -48px;
+}
+
+.dynatree-partsel span.dynatree-radio
+{
+ background-position: -64px -48px;
+}
+.dynatree-partsel span.dynatree-radio:hover
+{
+ background-position: -80px -48px;
+}
+
+.dynatree-selected span.dynatree-radio
+{
+ background-position: -32px -48px;
+}
+.dynatree-selected span.dynatree-radio:hover
+{
+ background-position: -48px -48px;
+}
+
+/*******************************************************************************
+ * Node type icon
+ * Note: IE6 doesn't correctly evaluate multiples class names,
+ * so we create combined class names that can be used in the CSS.
+ *
+ * Prefix: dynatree-ico-
+ * 1st character: 'e': expanded, 'c': collapsed
+ * 2nd character (optional): 'f': folder
+ */
+
+span.dynatree-icon /* Default icon */
+{
+ margin-left: 3px;
+ background-position: 0px 0px;
+}
+
+.dynatree-ico-cf span.dynatree-icon /* Collapsed Folder */
+{
+ background-position: 0px -16px;
+}
+
+.dynatree-ico-ef span.dynatree-icon /* Expanded Folder */
+{
+ background-position: -64px -16px;
+}
+
+/* Status node icons */
+
+.dynatree-statusnode-wait span.dynatree-icon
+{
+ background-image: url("loading.gif");
+}
+
+.dynatree-statusnode-error span.dynatree-icon
+{
+ background-position: 0px -112px;
+/* background-image: url("ltError.gif");*/
+}
+
+/*******************************************************************************
+ * Node titles
+ */
+
+/* @Chrome: otherwise hit area of node titles is broken (issue 133)
+ Removed again for issue 165; (133 couldn't be reproduced) */
+span.dynatree-node
+{
+/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221*/
+/* -moz-box-align: start; /* issue 221 */
+/* display: inline-block; /* Required to make a span sizeable */
+}
+
+
+/* Remove blue color and underline from title links */
+ul.dynatree-container a
+/*, ul.dynatree-container a:visited*/
+{
+ color: black; /* inherit doesn't work on IE */
+ text-decoration: none;
+ vertical-align: top;
+ margin: 0px;
+ margin-left: 3px;
+/* outline: 0; /* @ Firefox, prevent dotted border after click */
+}
+
+ul.dynatree-container a:hover
+{
+/* text-decoration: underline; */
+ background-color: #F2F7FD; /* light blue */
+ border-color: #B8D6FB; /* darker light blue */
+}
+
+span.dynatree-node a
+{
+ font-size: 10pt; /* required for IE, quirks mode */
+ display: inline-block; /* Better alignment, when title contains */
+/* vertical-align: top;*/
+ padding-left: 3px;
+ padding-right: 3px; /* Otherwise italic font will be outside bounds */
+ /* line-height: 16px; /* should be the same as img height, in case 16 px */
+}
+span.dynatree-folder a
+{
+ font-weight: bold;
+}
+
+ul.dynatree-container a:focus,
+span.dynatree-focused a:link /* @IE */
+{
+ background-color: #EFEBDE; /* gray */
+}
+
+span.dynatree-has-children a
+{
+}
+
+span.dynatree-expanded a
+{
+}
+
+span.dynatree-selected a
+{
+ color: green;
+ font-style: italic;
+}
+
+span.dynatree-active a
+{
+ background-color: #3169C6 !important;
+ color: white !important; /* @ IE6 */
+}
+
+/*******************************************************************************
+ * Drag'n'drop support
+ */
+
+/*** Helper object ************************************************************/
+div.dynatree-drag-helper
+{
+}
+div.dynatree-drag-helper a
+{
+ border: 1px solid gray;
+ background-color: white;
+ padding-left: 5px;
+ padding-right: 5px;
+ opacity: 0.8;
+}
+span.dynatree-drag-helper-img
+{
+ /*
+ position: relative;
+ left: -16px;
+ */
+}
+div.dynatree-drag-helper /*.dynatree-drop-accept*/
+{
+
+/* border-color: green;
+ background-color: red;*/
+}
+div.dynatree-drop-accept span.dynatree-drag-helper-img
+{
+ background-position: -32px -112px;
+}
+div.dynatree-drag-helper.dynatree-drop-reject
+{
+ border-color: red;
+}
+div.dynatree-drop-reject span.dynatree-drag-helper-img
+{
+ background-position: -16px -112px;
+}
+
+/*** Drop marker icon *********************************************************/
+
+#dynatree-drop-marker
+{
+ width: 24px;
+ position: absolute;
+ background-position: 0 -128px;
+ margin: 0;
+/* border: 1px solid red; */
+}
+#dynatree-drop-marker.dynatree-drop-after,
+#dynatree-drop-marker.dynatree-drop-before
+{
+ width:64px;
+ background-position: 0 -144px;
+}
+#dynatree-drop-marker.dynatree-drop-copy
+{
+ background-position: -64px -128px;
+}
+#dynatree-drop-marker.dynatree-drop-move
+{
+ background-position: -64px -128px;
+}
+
+/*** Source node while dragging ***********************************************/
+
+span.dynatree-drag-source
+{
+ /* border: 1px dotted gray; */
+ background-color: #e0e0e0;
+}
+span.dynatree-drag-source a
+{
+ color: gray;
+}
+
+/*** Target node while dragging cursor is over it *****************************/
+
+span.dynatree-drop-target
+{
+ /*border: 1px solid gray;*/
+}
+span.dynatree-drop-target a
+{
+}
+span.dynatree-drop-target.dynatree-drop-accept a
+{
+ /*border: 1px solid green;*/
+ background-color: #3169C6 !important;
+ color: white !important; /* @ IE6 */
+ text-decoration: none;
+}
+span.dynatree-drop-target.dynatree-drop-reject
+{
+ /*border: 1px solid red;*/
+}
+span.dynatree-drop-target.dynatree-drop-after a
+{
+}
+
+
+/*******************************************************************************
+ * Custom node classes (sample)
+ */
+
+span.custom1 a
+{
+ background-color: maroon;
+ color: yellow;
+}
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/folder/vline.gif b/Activity_3_python/Activites_Python3/css/dynatree/folder/vline.gif
new file mode 100644
index 0000000..1b00ae5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/folder/vline.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/0.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/0.png
new file mode 100644
index 0000000..0189cda
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/0.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/1.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/1.png
new file mode 100644
index 0000000..01335b0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/1.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/10.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/10.png
new file mode 100644
index 0000000..86c1b70
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/10.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/11.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/11.png
new file mode 100644
index 0000000..60da179
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/11.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/12.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/12.png
new file mode 100644
index 0000000..7977cad
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/12.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/13.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/13.png
new file mode 100644
index 0000000..2d6b99e
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/13.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/14.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/14.png
new file mode 100644
index 0000000..c6150b5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/14.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/15.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/15.png
new file mode 100644
index 0000000..58f205f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/15.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/16.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/16.png
new file mode 100644
index 0000000..746f6c4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/16.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/17.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/17.png
new file mode 100644
index 0000000..e450e6b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/17.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/18.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/18.png
new file mode 100644
index 0000000..fae8d06
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/18.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/19.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/19.png
new file mode 100644
index 0000000..557aa37
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/19.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/2.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/2.png
new file mode 100644
index 0000000..3887079
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/2.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/20.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/20.png
new file mode 100644
index 0000000..cb6845b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/20.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/21.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/21.png
new file mode 100644
index 0000000..bfb11c9
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/21.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/22.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/22.png
new file mode 100644
index 0000000..17ed9c5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/22.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/23.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/23.png
new file mode 100644
index 0000000..1c4a863
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/23.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/24.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/24.png
new file mode 100644
index 0000000..e91b518
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/24.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/25.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/25.png
new file mode 100644
index 0000000..00d2d5d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/25.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/26.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/26.png
new file mode 100644
index 0000000..4952af6
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/26.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/27.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/27.png
new file mode 100644
index 0000000..a61fe9b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/27.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/28.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/28.png
new file mode 100644
index 0000000..52160f0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/28.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/29.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/29.png
new file mode 100644
index 0000000..06aa97c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/29.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/3.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/3.png
new file mode 100644
index 0000000..b1c9413
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/3.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/30.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/30.png
new file mode 100644
index 0000000..7b52276
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/30.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/31.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/31.png
new file mode 100644
index 0000000..02283db
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/31.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/32.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/32.png
new file mode 100644
index 0000000..875843c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/32.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/33.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/33.png
new file mode 100644
index 0000000..d64f137
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/33.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/34.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/34.png
new file mode 100644
index 0000000..a6d94c5
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/34.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/35.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/35.png
new file mode 100644
index 0000000..dfc87bf
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/35.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/36.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/36.png
new file mode 100644
index 0000000..ce6235b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/36.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/37.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/37.png
new file mode 100644
index 0000000..0120330
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/37.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/38.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/38.png
new file mode 100644
index 0000000..5334fae
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/38.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/39.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/39.png
new file mode 100644
index 0000000..06e446b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/39.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/4.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/4.png
new file mode 100644
index 0000000..6e5cfc0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/4.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/40.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/40.png
new file mode 100644
index 0000000..6d744db
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/40.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/41.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/41.png
new file mode 100644
index 0000000..476edf4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/41.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/5.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/5.png
new file mode 100644
index 0000000..1df634f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/5.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/6.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/6.png
new file mode 100644
index 0000000..947d9c4
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/6.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/7.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/7.png
new file mode 100644
index 0000000..a362886
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/7.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/8.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/8.png
new file mode 100644
index 0000000..5bcd3ec
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/8.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/9.png b/Activity_3_python/Activites_Python3/css/dynatree/vista/9.png
new file mode 100644
index 0000000..3b4991d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/9.png differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/icons.gif b/Activity_3_python/Activites_Python3/css/dynatree/vista/icons.gif
new file mode 100644
index 0000000..6e237a0
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/icons.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/loading.gif b/Activity_3_python/Activites_Python3/css/dynatree/vista/loading.gif
new file mode 100644
index 0000000..2a96840
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/dynatree/vista/loading.gif differ
diff --git a/Activity_3_python/Activites_Python3/css/dynatree/vista/ui.dynatree.css b/Activity_3_python/Activites_Python3/css/dynatree/vista/ui.dynatree.css
new file mode 100644
index 0000000..347f7f3
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/dynatree/vista/ui.dynatree.css
@@ -0,0 +1,452 @@
+/*******************************************************************************
+ * Tree container
+ */
+ul.dynatree-container
+{
+ font-family: tahoma, arial, helvetica;
+ font-size: 10pt; /* font size should not be too big */
+ white-space: nowrap;
+ padding: 3px;
+ margin: 0; /* issue 201 */
+ background-color: white;
+ border: 1px dotted gray;
+ overflow: auto;
+ height: 100%; /* issue 263 */
+}
+
+ul.dynatree-container ul
+{
+ padding: 0 0 0 16px;
+ margin: 0;
+}
+
+ul.dynatree-container li
+{
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+ -moz-background-clip:border;
+ -moz-background-inline-policy: continuous;
+ -moz-background-origin: padding;
+ background-attachment: scroll;
+ background-color: transparent;
+ background-position: 0 0;
+ background-repeat: repeat-y;
+ background-image: none; /* no v-lines */
+
+ margin:0;
+ padding:1px 0 0 0;
+}
+/* Suppress lines for last child node */
+ul.dynatree-container li.dynatree-lastsib
+{
+ background-image: none;
+}
+/* Suppress lines if level is fixed expanded (option minExpandLevel) */
+ul.dynatree-no-connector > li
+{
+ background-image: none;
+}
+
+/* Style, when control is disabled */
+.ui-dynatree-disabled ul.dynatree-container
+{
+ opacity: 0.5;
+/* filter: alpha(opacity=50); /* Yields a css warning */
+ background-color: silver;
+}
+
+
+/*******************************************************************************
+ * Common icon definitions
+ */
+span.dynatree-empty,
+span.dynatree-vline,
+span.dynatree-connector,
+span.dynatree-expander,
+span.dynatree-icon,
+span.dynatree-checkbox,
+span.dynatree-radio,
+span.dynatree-drag-helper-img,
+#dynatree-drop-marker
+{
+ width: 16px;
+ height: 16px;
+/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221*/
+/* -moz-box-align: start; /* issue 221 */
+ display: inline-block; /* Required to make a span sizeable */
+ vertical-align: top;
+ background-repeat: no-repeat;
+ background-position: left;
+ background-image: url("icons.gif");
+ background-position: 0 0;
+}
+
+/** Used by 'icon' node option: */
+ul.dynatree-container img
+{
+ width: 16px;
+ height: 16px;
+ margin-left: 3px;
+ vertical-align: top;
+ border-style: none;
+}
+
+
+/*******************************************************************************
+ * Lines and connectors
+ */
+
+/*
+span.dynatree-empty
+{
+}
+span.dynatree-vline
+{
+}
+*/
+span.dynatree-connector
+{
+ background-image: none;
+}
+/*
+.dynatree-lastsib span.dynatree-connector
+{
+}
+*/
+/*******************************************************************************
+ * Expander icon
+ * Note: IE6 doesn't correctly evaluate multiples class names,
+ * so we create combined class names that can be used in the CSS.
+ *
+ * Prefix: dynatree-exp-
+ * 1st character: 'e': expanded, 'c': collapsed
+ * 2nd character (optional): 'd': lazy (Delayed)
+ * 3rd character (optional): 'l': Last sibling
+ */
+
+span.dynatree-expander
+{
+ background-position: 0px -80px;
+ cursor: pointer;
+}
+span.dynatree-expander:hover
+{
+ background-position: -16px -80px;
+}
+.dynatree-exp-cl span.dynatree-expander /* Collapsed, not delayed, last sibling */
+{
+}
+.dynatree-exp-cd span.dynatree-expander /* Collapsed, delayed, not last sibling */
+{
+}
+.dynatree-exp-cdl span.dynatree-expander /* Collapsed, delayed, last sibling */
+{
+}
+.dynatree-exp-e span.dynatree-expander, /* Expanded, not delayed, not last sibling */
+.dynatree-exp-ed span.dynatree-expander, /* Expanded, delayed, not last sibling */
+.dynatree-exp-el span.dynatree-expander, /* Expanded, not delayed, last sibling */
+.dynatree-exp-edl span.dynatree-expander /* Expanded, delayed, last sibling */
+{
+ background-position: -32px -80px;
+}
+.dynatree-exp-e span.dynatree-expander:hover, /* Expanded, not delayed, not last sibling */
+.dynatree-exp-ed span.dynatree-expander:hover, /* Expanded, delayed, not last sibling */
+.dynatree-exp-el span.dynatree-expander:hover, /* Expanded, not delayed, last sibling */
+.dynatree-exp-edl span.dynatree-expander:hover /* Expanded, delayed, last sibling */
+{
+ background-position: -48px -80px;
+}
+.dynatree-loading span.dynatree-expander /* 'Loading' status overrides all others */
+{
+ background-position: 0 0;
+ background-image: url("loading.gif");
+}
+
+
+/*******************************************************************************
+ * Checkbox icon
+ */
+span.dynatree-checkbox
+{
+ margin-left: 3px;
+ background-position: 0px -32px;
+}
+span.dynatree-checkbox:hover
+{
+ background-position: -16px -32px;
+}
+
+.dynatree-partsel span.dynatree-checkbox
+{
+ background-position: -64px -32px;
+}
+.dynatree-partsel span.dynatree-checkbox:hover
+{
+ background-position: -80px -32px;
+}
+
+.dynatree-selected span.dynatree-checkbox
+{
+ background-position: -32px -32px;
+}
+.dynatree-selected span.dynatree-checkbox:hover
+{
+ background-position: -48px -32px;
+}
+
+/*******************************************************************************
+ * Radiobutton icon
+ * This is a customization, that may be activated by overriding the 'checkbox'
+ * class name as 'dynatree-radio' in the tree options.
+ */
+span.dynatree-radio
+{
+ margin-left: 3px;
+ background-position: 0px -48px;
+}
+span.dynatree-radio:hover
+{
+ background-position: -16px -48px;
+}
+
+.dynatree-partsel span.dynatree-radio
+{
+ background-position: -64px -48px;
+}
+.dynatree-partsel span.dynatree-radio:hover
+{
+ background-position: -80px -48px;
+}
+
+.dynatree-selected span.dynatree-radio
+{
+ background-position: -32px -48px;
+}
+.dynatree-selected span.dynatree-radio:hover
+{
+ background-position: -48px -48px;
+}
+
+/*******************************************************************************
+ * Node type icon
+ * Note: IE6 doesn't correctly evaluate multiples class names,
+ * so we create combined class names that can be used in the CSS.
+ *
+ * Prefix: dynatree-ico-
+ * 1st character: 'e': expanded, 'c': collapsed
+ * 2nd character (optional): 'f': folder
+ */
+
+span.dynatree-icon /* Default icon */
+{
+ margin-left: 3px;
+ background-position: 0px 0px;
+}
+
+.dynatree-has-children span.dynatree-icon /* Default icon */
+{
+/* background-position: 0px -16px; */
+}
+
+.dynatree-ico-cf span.dynatree-icon /* Collapsed Folder */
+{
+ background-position: 0px -16px;
+}
+
+.dynatree-ico-ef span.dynatree-icon /* Expanded Folder */
+{
+ background-position: -64px -16px;
+}
+
+/* Status node icons */
+
+.dynatree-statusnode-wait span.dynatree-icon
+{
+ background-image: url("loading.gif");
+}
+
+.dynatree-statusnode-error span.dynatree-icon
+{
+ background-position: 0px -112px;
+/* background-image: url("ltError.gif");*/
+}
+
+/*******************************************************************************
+ * Node titles
+ */
+
+/* @Chrome: otherwise hit area of node titles is broken (issue 133)
+ Removed again for issue 165; (133 couldn't be reproduced) */
+span.dynatree-node
+{
+/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221 */
+/* -moz-box-align: start; /* issue 221 */
+/* display: inline-block; /* Required to make a span sizeable */
+}
+
+
+/* Remove blue color and underline from title links */
+ul.dynatree-container a
+/*, ul.dynatree-container a:visited*/
+{
+ color: black; /* inherit doesn't work on IE */
+ text-decoration: none;
+ vertical-align: top;
+ margin: 0px;
+ margin-left: 3px;
+/* outline: 0; /* @ Firefox, prevent dotted border after click */
+ /* Set transparent border to prevent jumping when active node gets a border
+ (we can do this, because this theme doesn't use vertical lines)
+ */
+ border: 1px solid white; /* Note: 'transparent' would not work in IE6 */
+
+}
+
+ul.dynatree-container a:hover
+{
+/* text-decoration: underline; */
+ background: #F2F7FD; /* light blue */
+ border-color: #B8D6FB; /* darker light blue */
+}
+
+span.dynatree-node a
+{
+ display: inline-block; /* Better alignment, when title contains */
+/* vertical-align: top;*/
+ padding-left: 3px;
+ padding-right: 3px; /* Otherwise italic font will be outside bounds */
+ /* line-height: 16px; /* should be the same as img height, in case 16 px */
+}
+span.dynatree-folder a
+{
+/* font-weight: bold; */ /* custom */
+}
+
+ul.dynatree-container a:focus,
+span.dynatree-focused a:link /* @IE */
+{
+ background-color: #EFEBDE; /* gray */
+}
+
+span.dynatree-has-children a
+{
+/* font-style: oblique; /* custom: */
+}
+
+span.dynatree-expanded a
+{
+}
+
+span.dynatree-selected a
+{
+/* color: green; */
+ font-style: italic;
+}
+
+span.dynatree-active a
+{
+ border: 1px solid #99DEFD;
+ background-color: #D8F0FA;
+}
+
+/*******************************************************************************
+ * Drag'n'drop support
+ */
+
+/*** Helper object ************************************************************/
+div.dynatree-drag-helper
+{
+}
+div.dynatree-drag-helper a
+{
+ border: 1px solid gray;
+ background-color: white;
+ padding-left: 5px;
+ padding-right: 5px;
+ opacity: 0.8;
+}
+span.dynatree-drag-helper-img
+{
+ /*
+ position: relative;
+ left: -16px;
+ */
+}
+div.dynatree-drag-helper /*.dynatree-drop-accept*/
+{
+/* border-color: green;
+ background-color: red;*/
+}
+div.dynatree-drop-accept span.dynatree-drag-helper-img
+{
+ background-position: -32px -112px;
+}
+div.dynatree-drag-helper.dynatree-drop-reject
+{
+ border-color: red;
+}
+div.dynatree-drop-reject span.dynatree-drag-helper-img
+{
+ background-position: -16px -112px;
+}
+
+/*** Drop marker icon *********************************************************/
+
+#dynatree-drop-marker
+{
+ width: 24px;
+ position: absolute;
+ background-position: 0 -128px;
+ margin: 0;
+}
+#dynatree-drop-marker.dynatree-drop-after,
+#dynatree-drop-marker.dynatree-drop-before
+{
+ width:64px;
+ background-position: 0 -144px;
+}
+#dynatree-drop-marker.dynatree-drop-copy
+{
+ background-position: -64px -128px;
+}
+#dynatree-drop-marker.dynatree-drop-move
+{
+ background-position: -64px -128px;
+}
+
+/*** Source node while dragging ***********************************************/
+
+span.dynatree-drag-source
+{
+ /* border: 1px dotted gray; */
+ background-color: #e0e0e0;
+}
+span.dynatree-drag-source a
+{
+ color: gray;
+}
+
+/*** Target node while dragging cursor is over it *****************************/
+
+span.dynatree-drop-target
+{
+ /*border: 1px solid gray;*/
+}
+span.dynatree-drop-target a
+{
+}
+span.dynatree-drop-target.dynatree-drop-accept a
+{
+ /*border: 1px solid green;*/
+ background-color: #3169C6 !important;
+ color: white !important; /* @ IE6 */
+ text-decoration: none;
+}
+span.dynatree-drop-target.dynatree-drop-reject
+{
+ /*border: 1px solid red;*/
+}
+span.dynatree-drop-target.dynatree-drop-after a
+{
+}
diff --git a/Activity_3_python/Activites_Python3/css/hnd.css b/Activity_3_python/Activites_Python3/css/hnd.css
new file mode 100644
index 0000000..5dbe54b
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/hnd.css
@@ -0,0 +1,734 @@
+/* ========== Text Styles ========== */
+hr { color: #000000}
+body, table, span.rvts0 /* Normal text */
+{
+ font-size: 10pt;
+ font-family: 'Arial', 'Helvetica', sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ color: #000000;
+ text-decoration: none;
+}
+span.rvts1 /* Heading */
+{
+ font-weight: bold;
+ color: #0000ff;
+}
+span.rvts2 /* Subheading */
+{
+ font-weight: bold;
+ color: #000080;
+}
+span.rvts3 /* Keywords */
+{
+ font-style: italic;
+ color: #800000;
+}
+a.rvts4, span.rvts4 /* Jump 1 */
+{
+ color: #008000;
+ text-decoration: underline;
+}
+a.rvts5, span.rvts5 /* Jump 2 */
+{
+ color: #008000;
+ text-decoration: underline;
+}
+span.rvts6
+{
+}
+span.rvts7
+{
+ font-weight: bold;
+ color: #0000ff;
+}
+span.rvts8
+{
+ font-weight: bold;
+ color: #000080;
+}
+span.rvts9
+{
+ font-style: italic;
+ color: #800000;
+}
+a.rvts10, span.rvts10
+{
+ color: #008000;
+ text-decoration: underline;
+}
+span.rvts11
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+}
+span.rvts12
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+}
+span.rvts13
+{
+ font-size: 13pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+}
+a.rvts14, span.rvts14
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #0000ff;
+ text-decoration: underline;
+}
+span.rvts15 /* Font Style */
+{
+ font-family: 'Tahoma', 'Geneva', sans-serif;
+ font-style: italic;
+ color: #c0c0c0;
+}
+a.rvts16, span.rvts16 /* Font Style */
+{
+ font-family: 'Tahoma', 'Geneva', sans-serif;
+ font-style: italic;
+ color: #6666ff;
+ text-decoration: underline;
+}
+span.rvts17
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+}
+a.rvts18, span.rvts18
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #0000ff;
+ text-decoration: none;
+}
+span.rvts19
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ text-decoration: underline;
+}
+span.rvts20
+{
+ font-size: 12pt;
+ font-family: 'Times New Roman', 'Times', serif;
+ color: #000000;
+}
+span.rvts21
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #000000;
+ background-color: #fcfcfc;
+}
+span.rvts22
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #000000;
+ background-color: #fcfcfc;
+ text-decoration: underline;
+}
+span.rvts23
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: #000000;
+ background-color: #fcfcfc;
+}
+span.rvts24
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ text-decoration: underline;
+}
+span.rvts25
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #000000;
+}
+span.rvts26
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #000000;
+ text-decoration: underline;
+}
+span.rvts27
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ text-decoration: line-through;
+}
+span.rvts28
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #000000;
+}
+span.rvts29
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #900090;
+}
+span.rvts30
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #770000;
+}
+span.rvts31
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #dd0000;
+}
+span.rvts32
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: #000000;
+}
+span.rvts33
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: ;
+}
+span.rvts34
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #007f7f;
+}
+span.rvts35
+{
+ font-size: 12pt;
+ font-family: 'cambria';
+ font-weight: bold;
+ color: #000000;
+}
+span.rvts36
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #0000ff;
+}
+a.rvts37, span.rvts37
+{
+ font-size: 12pt;
+ font-family: 'Times New Roman', 'Times', serif;
+ color: #0000ff;
+ text-decoration: underline;
+}
+span.rvts38
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #770000;
+}
+span.rvts39
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #000000;
+}
+span.rvts40
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #dd0000;
+}
+span.rvts41
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #900090;
+}
+span.rvts42
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #0000ff;
+}
+span.rvts43
+{
+ font-size: 11pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+}
+span.rvts44
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-style: italic;
+}
+span.rvts45
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #2f6b55;
+}
+span.rvts46
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #7030a0;
+}
+span.rvts47
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #ff7700;
+}
+span.rvts48
+{
+ font-size: 12pt;
+ font-family: 'Verdana', 'Geneva', sans-serif;
+ font-weight: bold;
+ color: #181a12;
+}
+span.rvts49
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #ff0000;
+}
+span.rvts50
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #363b29;
+}
+span.rvts51
+{
+ font-size: 13pt;
+ font-family: 'Cambria';
+ font-style: italic;
+ font-weight: bold;
+ color: #000000;
+}
+span.rvts52
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: ;
+}
+span.rvts53
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #00aa00;
+}
+span.rvts54
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #000000;
+ background-color: #ff7777;
+}
+span.rvts55
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: ;
+}
+span.rvts56
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: ;
+}
+span.rvts57
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #000000;
+ background-color: #ffffff;
+}
+span.rvts58
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: #000000;
+ background-color: #ffffff;
+}
+span.rvts59
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #00b050;
+}
+span.rvts60
+{
+ font-size: 12pt;
+ font-family: 'Verdana', 'Geneva', sans-serif;
+ color: ;
+}
+span.rvts61
+{
+ font-size: 12pt;
+ font-family: 'Verdana', 'Geneva', sans-serif;
+ color: #000000;
+ background-color: #ffffff;
+}
+span.rvts62
+{
+ font-size: 12pt;
+ font-family: 'Verdana', 'Geneva', sans-serif;
+ color: #363b29;
+}
+span.rvts63
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #363b29;
+}
+span.rvts64
+{
+ font-size: 12pt;
+ font-family: 'Verdana', 'Geneva', sans-serif;
+ font-weight: bold;
+ color: #363b29;
+}
+span.rvts65
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: #181a12;
+}
+span.rvts66
+{
+ font-size: 9pt;
+ font-family: 'consolas';
+ color: #3c3c3c;
+}
+span.rvts67
+{
+ font-size: 12pt;
+ font-family: 'cambria';
+ font-weight: bold;
+ color: #000000;
+ text-decoration: underline;
+}
+span.rvts68
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ font-style: italic;
+ font-weight: bold;
+ color: ;
+}
+span.rvts69
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: ;
+}
+span.rvts70
+{
+ font-size: 8pt;
+ font-family: 'Cambria';
+ vertical-align: super;
+}
+span.rvts71
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #ff0000;
+}
+span.rvts72
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+}
+span.rvts73
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-style: italic;
+ color: #000000;
+}
+span.rvts74
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-style: italic;
+ color: #810000;
+}
+span.rvts75
+{
+ font-size: 11pt;
+ font-family: 'Times';
+ font-weight: bold;
+ color: #ff0000;
+ background-color: #fcfcfc;
+}
+span.rvts76
+{
+ font-size: 11pt;
+ font-family: 'Times';
+ font-weight: bold;
+ background-color: #fcfcfc;
+}
+span.rvts77
+{
+ font-size: 11pt;
+ font-weight: bold;
+ background-color: #fcfcfc;
+}
+span.rvts78
+{
+ font-size: 11pt;
+ font-family: 'Times';
+ background-color: #fcfcfc;
+}
+span.rvts79
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ background-color: #fcfcfc;
+}
+span.rvts80
+{
+ font-size: 14pt;
+ font-family: 'Verdana', 'Geneva', sans-serif;
+ font-weight: bold;
+ color: #363b29;
+}
+span.rvts81
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ color: #000000;
+ background-color: #ffff66;
+}
+span.rvts82
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: #363b29;
+}
+span.rvts83
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ font-weight: bold;
+ color: #363b29;
+}
+span.rvts84
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #363b29;
+ text-decoration: underline;
+}
+span.rvts85
+{
+ font-size: 8pt;
+ font-family: 'Cambria';
+ color: #363b29;
+ vertical-align: super;
+}
+span.rvts86
+{
+ font-size: 11pt;
+ font-weight: bold;
+ color: #005675;
+}
+span.rvts87
+{
+ font-size: 8pt;
+ font-weight: bold;
+ color: #005675;
+}
+span.rvts88
+{
+ font-size: 11pt;
+ font-weight: bold;
+ color: #41b7d8;
+}
+span.rvts89
+{
+ font-size: 11pt;
+ font-weight: bold;
+ color: #109618;
+}
+span.rvts90
+{
+ font-size: 11pt;
+ font-weight: bold;
+ color: #ff9900;
+}
+span.rvts91
+{
+ font-size: 11pt;
+ font-weight: bold;
+ color: #dc3912;
+}
+span.rvts92
+{
+ font-size: 11pt;
+ font-family: 'Cambria';
+ color: #494949;
+}
+span.rvts93
+{
+ font-size: 11pt;
+}
+span.rvts94
+{
+ font-size: 14pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ font-weight: bold;
+ color: #363b29;
+}
+span.rvts95
+{
+ font-size: 17pt;
+ font-family: 'Lucida Console', 'Monaco', monospace;
+ font-weight: bold;
+ color: #363b29;
+}
+span.rvts96
+{
+ font-size: 14pt;
+ font-family: 'Cambria';
+ color: #363b29;
+}
+a.rvts97, span.rvts97
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ text-decoration: underline;
+}
+span.rvts98
+{
+ font-family: 'Cambria';
+ font-weight: bold;
+}
+a.rvts99, span.rvts99
+{
+ font-size: 12pt;
+ font-family: 'Cambria';
+ color: #332510;
+ text-decoration: underline;
+}
+span.rvts100
+{
+ font-size: 10pt;
+ font-family: 'Cambria';
+ color: #363b29;
+ vertical-align: sub;
+}
+/* ========== Para Styles ========== */
+p,ul,ol /* Paragraph Style */
+{
+ text-align: left;
+ text-indent: 0px;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+.rvps1 /* Centered */
+{
+ text-align: center;
+}
+.rvps2
+{
+}
+.rvps3
+{
+ text-align: center;
+}
+.rvps4 /* Paragraph Style */
+{
+ text-align: center;
+ border-color: #c0c0c0;
+ border-style: solid;
+ border-width: 1px;
+ border-right: none;
+ border-left: none;
+ padding: 2px 0px 2px 0px;
+ margin: 7px 0px 7px 0px;
+}
+.rvps5
+{
+ margin: 8px 0px 0px 0px;
+}
+.rvps6
+{
+ text-indent: 48px;
+}
+.rvps7
+{
+ margin: 12px 0px 12px 0px;
+}
+.rvps8
+{
+ background: #eeeeee;
+ padding: 12px 12px 12px 12px;
+ margin: 14px 0px 14px 0px;
+}
+.rvps9
+{
+ background: #ffffff;
+ padding: 12px 12px 12px 12px;
+ margin: 14px 0px 14px 0px;
+}
+.rvps10
+{
+ background: #eff0f1;
+ padding: 8px 8px 8px 8px;
+}
+.rvps11
+{
+ margin: 0px 0px 0px 1px;
+}
+.rvps12
+{
+ text-align: left;
+ text-indent: 0px;
+ padding: 0px 0px 0px 0px;
+ margin: 19px 0px 10px 0px;
+}
+.rvps13
+{
+ text-align: left;
+ text-indent: 0px;
+ padding: 0px 0px 0px 0px;
+ margin: 16px 0px 8px 0px;
+}
+.rvps14
+{
+ background: #ffffff;
+ margin: 0px 0px 26px 0px;
+}
+.rvps15
+{
+ margin: 0px 0px 0px 96px;
+}
+/* ========== Lists ========== */
+.list0 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: disc;}
+.list1 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: circle;}
+.list2 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: square;}
+.list3 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: disc;}
+.list4 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: decimal;}
+.list5 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: decimal;}
+.list6 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: square;}
+.list7 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: circle;}
+.list8 {text-indent: 0px; padding: 0; margin: 0 0 0 96px; list-style-position: outside; list-style-type: disc;}
diff --git a/Activity_3_python/Activites_Python3/css/ielte8.css b/Activity_3_python/Activites_Python3/css/ielte8.css
new file mode 100644
index 0000000..1d6f53c
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/ielte8.css
@@ -0,0 +1,3 @@
+.ui-tabs .ui-tabs-nav {
+ padding: 0;
+}
\ No newline at end of file
diff --git a/Activity_3_python/Activites_Python3/css/reset.css b/Activity_3_python/Activites_Python3/css/reset.css
new file mode 100644
index 0000000..391d3a3
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/reset.css
@@ -0,0 +1,48 @@
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+img {
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+}
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ font-size: 100%;
+ font: inherit;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
\ No newline at end of file
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
new file mode 100644
index 0000000..5b5dab2
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_flat_0_aaaaaa_40x100.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_flat_75_ffffff_40x100.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_flat_75_ffffff_40x100.png
new file mode 100644
index 0000000..ac8b229
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_flat_75_ffffff_40x100.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_55_fbf9ee_1x400.png
new file mode 100644
index 0000000..ad3d634
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_55_fbf9ee_1x400.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_65_ffffff_1x400.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_65_ffffff_1x400.png
new file mode 100644
index 0000000..42ccba2
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_65_ffffff_1x400.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_75_dadada_1x400.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_75_dadada_1x400.png
new file mode 100644
index 0000000..5a46b47
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_75_dadada_1x400.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_75_e6e6e6_1x400.png
new file mode 100644
index 0000000..86c2baa
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_75_e6e6e6_1x400.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_95_fef1ec_1x400.png
new file mode 100644
index 0000000..4443fdc
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_glass_95_fef1ec_1x400.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png
new file mode 100644
index 0000000..7c9fa6c
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png
new file mode 100644
index 0000000..0e05810
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_222222_256x240.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000..b273ff1
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_222222_256x240.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_2e83ff_256x240.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_2e83ff_256x240.png
new file mode 100644
index 0000000..09d1cdc
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_2e83ff_256x240.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_454545_256x240.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_454545_256x240.png
new file mode 100644
index 0000000..59bd45b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_454545_256x240.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_888888_256x240.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_888888_256x240.png
new file mode 100644
index 0000000..6d02426
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_888888_256x240.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_cd0a0a_256x240.png b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_cd0a0a_256x240.png
new file mode 100644
index 0000000..2ab019b
Binary files /dev/null and b/Activity_3_python/Activites_Python3/css/silver-theme/images/ui-icons_cd0a0a_256x240.png differ
diff --git a/Activity_3_python/Activites_Python3/css/silver-theme/jquery-ui-1.8.12.custom.css b/Activity_3_python/Activites_Python3/css/silver-theme/jquery-ui-1.8.12.custom.css
new file mode 100644
index 0000000..d94b6b2
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/silver-theme/jquery-ui-1.8.12.custom.css
@@ -0,0 +1,103 @@
+/*
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=&fwDefault=normal&fsDefault=&cornerRadius=0&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: ; font-size: 1em; }
+.ui-widget-content { background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
+.ui-widget-content a { color: #222222; }
+.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.ui-widget-header a { color: #222222; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x; color: #cd0a0a; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/*
+ * jQuery UI Tabs 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: 2px 5px; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 10px; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/Activity_3_python/Activites_Python3/css/toc.css b/Activity_3_python/Activites_Python3/css/toc.css
new file mode 100644
index 0000000..a8776ff
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/css/toc.css
@@ -0,0 +1,71 @@
+/* -- Body -- */
+
+body {
+ overflow: hidden;
+}
+
+/* -- UI Tabs -- */
+
+ul.dynatree-container {
+ line-height: 1.5em;
+}
+
+.ui-tabs {
+ position: static;
+}
+
+#toc_header {
+ padding-bottom: 0;
+}
+
+#tabs .ui-tabs-nav {
+ border: 0;
+ border-bottom: 1px solid #ccc;
+ padding-top: 19px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+}
+
+#tabs .ui-widget-header{
+ background: #fff url(../img/header-bg.png) left bottom repeat-x;
+}
+
+#tabs .ui-tabs-panel {
+ overflow: auto;
+ position: absolute;
+ top: 43px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+/* Search */
+
+#search_value {
+ width: 140px;
+}
+
+#search_results {
+ padding-top: 10px;
+}
+
+/* -- Tree -- */
+
+ul.dynatree-container {
+ border: 0;
+ font-family: inherit;
+ overflow: visible;
+ padding: 0;
+}
+
+/* Selection color */
+span.dynatree-active a {
+ background-color: #999999 !important;
+}
+
+/* Remove folder boldness */
+span.dynatree-folder a {
+ font-weight: normal;
+}
\ No newline at end of file
diff --git a/Activity_3_python/Activites_Python3/img/arrow_left.png b/Activity_3_python/Activites_Python3/img/arrow_left.png
new file mode 100644
index 0000000..7270e0d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/arrow_left.png differ
diff --git a/Activity_3_python/Activites_Python3/img/arrow_right.png b/Activity_3_python/Activites_Python3/img/arrow_right.png
new file mode 100644
index 0000000..ca41e5d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/arrow_right.png differ
diff --git a/Activity_3_python/Activites_Python3/img/arrow_up.png b/Activity_3_python/Activites_Python3/img/arrow_up.png
new file mode 100644
index 0000000..557d5e6
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/arrow_up.png differ
diff --git a/Activity_3_python/Activites_Python3/img/book-closed.png b/Activity_3_python/Activites_Python3/img/book-closed.png
new file mode 100644
index 0000000..ad23b2a
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/book-closed.png differ
diff --git a/Activity_3_python/Activites_Python3/img/book.png b/Activity_3_python/Activites_Python3/img/book.png
new file mode 100644
index 0000000..0a76cc1
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/book.png differ
diff --git a/Activity_3_python/Activites_Python3/img/footer-bg.png b/Activity_3_python/Activites_Python3/img/footer-bg.png
new file mode 100644
index 0000000..5682c5f
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/footer-bg.png differ
diff --git a/Activity_3_python/Activites_Python3/img/header-bg.png b/Activity_3_python/Activites_Python3/img/header-bg.png
new file mode 100644
index 0000000..81d526d
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/header-bg.png differ
diff --git a/Activity_3_python/Activites_Python3/img/topic.png b/Activity_3_python/Activites_Python3/img/topic.png
new file mode 100644
index 0000000..3974bca
Binary files /dev/null and b/Activity_3_python/Activites_Python3/img/topic.png differ
diff --git a/Activity_3_python/Activites_Python3/js/hnd.js b/Activity_3_python/Activites_Python3/js/hnd.js
new file mode 100644
index 0000000..a603c28
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/js/hnd.js
@@ -0,0 +1 @@
+jQuery.fn.highlight=function(a){function d(b,a){var e=0;if(b.nodeType==3){var c=b.data.toUpperCase().indexOf(a);if(c>=0){e=document.createElement("span");e.className="highlight";c=b.splitText(c);c.splitText(a.length);var g=c.cloneNode(!0);e.appendChild(g);c.parentNode.replaceChild(e,c);e=1}}else if(b.nodeType==1&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(c=0;cb[1]?-1:a[1]=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);/*
+ * jQuery UI Draggable 1.8.17
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!!this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy();return this}},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle"))return!1;this.handle=this._getHandle(b);if(!this.handle)return!1;c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")});return!0},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment();if(this._trigger("start",b)===!1){this._clear();return!1}this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b);return!0},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1){this._mouseUp({});return!1}this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,b);return!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b);return a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)});return c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();droppablesLoop:for(var g=0;g').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),a.browser.opera&&/relative/.test(f.css("position"))&&f.css({position:"relative",top:"auto",left:"auto"}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.17"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10),position:b.css("position")})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,e){a(b).each(function(){var b=a(this),f=a(this).data("resizable-alsoresize"),g={},i=e&&e.length?e:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(i,function(a,b){var c=(f[b]||0)+(h[b]||0);c&&c>=0&&(g[b]=c||null)}),a.browser.opera&&/relative/.test(b.css("position"))&&(d._revertToRelativePosition=!0,b.css({position:"absolute",top:"auto",left:"auto"})),b.css(g)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};d._revertToRelativePosition&&(d._revertToRelativePosition=!1,typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)),a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);/*
+ * jQuery UI Selectable 1.8.17
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ * jquery.ui.core.js
+ * jquery.ui.mouse.js
+ * jquery.ui.widget.js
+ */(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy();return this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(!this.options.disabled){var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element});return!1}})}},_mouseDrag:function(b){var c=this;this.dragged=!0;if(!this.options.disabled){var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!!i&&i.element!=c.element[0]){var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f){e=a(this);return!1}});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}this.currentItem=e,this._removeCurrentsFromItems();return!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b);return!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs;return!1},_mouseStop:function(b,c){if(!!b){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem));return this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"=");return d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")});return d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a),this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];e||(b.style.visibility="hidden");return b},update:function(a,b){if(!e||!!d.forcePlaceholderSize)b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!!c)if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f",remove:null,select:null,show:null,spinner:"Loading… ",tabTemplate:"#{label} "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash){e.selected=a;return!1}}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1){this.blur();return!1}e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected")){e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur();return!1}if(!f.length){e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur();return!1}}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]")));return a},destroy:function(){var b=this.options;this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie);return this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e]));return this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0]));return this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a])));return this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;this.anchors.eq(a).trigger(this.options.event+".tabs");return this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup();return this},url:function(a,b){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b);return this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.17"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a: '"+this.data.title+"'";},toDict:function(recursive,callback){var dict=$.extend({},this.data);dict.activate=(this.tree.activeNode===this);dict.focus=(this.tree.focusNode===this);dict.expand=this.bExpanded;dict.select=this.bSelected;if(callback){callback(dict);}
+if(recursive&&this.childList){dict.children=[];for(var i=0,l=this.childList.length;i1){res+=cache.tagConnector;}}else if(this.hasChildren()!==false){res+=cache.tagExpander;}else{res+=cache.tagConnector;}
+if(opts.checkbox&&data.hideCheckbox!==true&&!data.isStatusNode){res+=cache.tagCheckbox;}
+if(data.icon){res+=" ";}else if(data.icon===false){noop();}else{res+=cache.tagNodeIcon;}
+var nodeTitle="";if(opts.onCustomRender){nodeTitle=opts.onCustomRender.call(tree,this)||"";}
+if(!nodeTitle){var tooltip=data.tooltip?' title="'+data.tooltip.replace(/\"/g,'"')+'"':'',href=data.href||"#";if(opts.noLink||data.noLink){nodeTitle=''+data.title+' ';}else{nodeTitle=''+data.title+' ';}}
+res+=nodeTitle;return res;},_fixOrder:function(){var cl=this.childList;if(!cl||!this.ul){return;}
+var childLI=this.ul.firstChild;for(var i=0,l=cl.length-1;i1){this.ul.className=cn.container+" "+cn.noConnector;}else{this.ul.className=cn.container;}}else if(parent){if(!this.li){firstTime=true;this.li=document.createElement("li");this.li.dtnode=this;if(data.key&&opts.generateIds){this.li.id=opts.idPrefix+data.key;}
+this.span=document.createElement("span");this.span.className=cn.title;this.li.appendChild(this.span);if(!parent.ul){parent.ul=document.createElement("ul");parent.ul.style.display="none";parent.li.appendChild(parent.ul);}
+parent.ul.appendChild(this.li);}
+this.span.innerHTML=this._getInnerHtml();var cnList=[];cnList.push(cn.node);if(data.isFolder){cnList.push(cn.folder);}
+if(this.bExpanded){cnList.push(cn.expanded);}
+if(this.hasChildren()!==false){cnList.push(cn.hasChildren);}
+if(data.isLazy&&this.childList===null){cnList.push(cn.lazy);}
+if(isLastSib){cnList.push(cn.lastsib);}
+if(this.bSelected){cnList.push(cn.selected);}
+if(this.hasSubSel){cnList.push(cn.partsel);}
+if(tree.activeNode===this){cnList.push(cn.active);}
+if(data.addClass){cnList.push(data.addClass);}
+cnList.push(cn.combinedExpanderPrefix
++(this.bExpanded?"e":"c")
++(data.isLazy&&this.childList===null?"d":"")
++(isLastSib?"l":""));cnList.push(cn.combinedIconPrefix
++(this.bExpanded?"e":"c")
++(data.isFolder?"f":""));this.span.className=cnList.join(" ");this.li.className=isLastSib?cn.lastsib:"";if(firstTime&&opts.onCreate){opts.onCreate.call(tree,this,this.span);}
+if(opts.onRender){opts.onRender.call(tree,this,this.span);}}
+if((this.bExpanded||includeInvisible===true)&&this.childList){for(var i=0,l=this.childList.length;iy?1:-1;};cl.sort(cmp);if(deep){for(var i=0,l=cl.length;i0){this.childList[0].focus();}else{this.focus();}}
+break;case DTNodeStatus_Loading:this._isLoading=true;$(this.span).addClass(this.tree.options.classNames.nodeLoading);if(!this.parent){this._setStatusNode({title:this.tree.options.strings.loading+info,tooltip:tooltip,addClass:this.tree.options.classNames.nodeWait});}
+break;case DTNodeStatus_Error:this._isLoading=false;this._setStatusNode({title:this.tree.options.strings.loadError+info,tooltip:tooltip,addClass:this.tree.options.classNames.nodeError});break;default:throw"Bad LazyNodeStatus: '"+lts+"'.";}},_parentList:function(includeRoot,includeSelf){var l=[];var dtn=includeSelf?this:this.parent;while(dtn){if(includeRoot||dtn.parent){l.unshift(dtn);}
+dtn=dtn.parent;}
+return l;},getLevel:function(){var level=0;var dtn=this.parent;while(dtn){level++;dtn=dtn.parent;}
+return level;},_getTypeForOuterNodeEvent:function(event){var cns=this.tree.options.classNames;var target=event.target;if(target.className.indexOf(cns.node)<0){return null;}
+var eventX=event.pageX-target.offsetLeft;var eventY=event.pageY-target.offsetTop;for(var i=0,l=target.childNodes.length;i=x&&eventX<=(x+nx)&&eventY>=y&&eventY<=(y+ny)){if(cn.className==cns.title){return"title";}else if(cn.className==cns.expander){return"expander";}else if(cn.className==cns.checkbox){return"checkbox";}else if(cn.className==cns.nodeIcon){return"icon";}}}
+return"prefix";},getEventTargetType:function(event){var tcn=event&&event.target?event.target.className:"",cns=this.tree.options.classNames;if(tcn===cns.title){return"title";}else if(tcn===cns.expander){return"expander";}else if(tcn===cns.checkbox){return"checkbox";}else if(tcn===cns.nodeIcon){return"icon";}else if(tcn===cns.empty||tcn===cns.vline||tcn===cns.connector){return"prefix";}else if(tcn.indexOf(cns.node)>=0){return this._getTypeForOuterNodeEvent(event);}
+return null;},isVisible:function(){var parents=this._parentList(true,false);for(var i=0,l=parents.length;ia").focus();}catch(e){}},isFocused:function(){return(this.tree.tnFocused===this);},_activate:function(flag,fireEvents){this.tree.logDebug("dtnode._activate(%o, fireEvents=%o) - %o",flag,fireEvents,this);var opts=this.tree.options;if(this.data.isStatusNode){return;}
+if(fireEvents&&opts.onQueryActivate&&opts.onQueryActivate.call(this.tree,flag,this)===false){return;}
+if(flag){if(this.tree.activeNode){if(this.tree.activeNode===this){return;}
+this.tree.activeNode.deactivate();}
+if(opts.activeVisible){this.makeVisible();}
+this.tree.activeNode=this;if(opts.persist){$.cookie(opts.cookieId+"-active",this.data.key,opts.cookie);}
+this.tree.persistence.activeKey=this.data.key;$(this.span).addClass(opts.classNames.active);if(fireEvents&&opts.onActivate){opts.onActivate.call(this.tree,this);}}else{if(this.tree.activeNode===this){if(opts.onQueryActivate&&opts.onQueryActivate.call(this.tree,false,this)===false){return;}
+$(this.span).removeClass(opts.classNames.active);if(opts.persist){$.cookie(opts.cookieId+"-active","",opts.cookie);}
+this.tree.persistence.activeKey=null;this.tree.activeNode=null;if(fireEvents&&opts.onDeactivate){opts.onDeactivate.call(this.tree,this);}}}},activate:function(){this._activate(true,true);},activateSilently:function(){this._activate(true,false);},deactivate:function(){this._activate(false,true);},isActive:function(){return(this.tree.activeNode===this);},_userActivate:function(){var activate=true;var expand=false;if(this.data.isFolder){switch(this.tree.options.clickFolderMode){case 2:activate=false;expand=true;break;case 3:activate=expand=true;break;}}
+if(this.parent===null){expand=false;}
+if(expand){this.toggleExpand();this.focus();}
+if(activate){this.activate();}},_setSubSel:function(hasSubSel){if(hasSubSel){this.hasSubSel=true;$(this.span).addClass(this.tree.options.classNames.partsel);}else{this.hasSubSel=false;$(this.span).removeClass(this.tree.options.classNames.partsel);}},_updatePartSelectionState:function(){var sel;if(!this.hasChildren()){sel=(this.bSelected&&!this.data.unselectable&&!this.data.isStatusNode);this._setSubSel(false);return sel;}
+var i,l,cl=this.childList,allSelected=true,allDeselected=true;for(i=0,l=cl.length;i=0;i--){sib=parents[i].getNextSibling();if(sib){break;}}}
+if(sib){sib.focus();}
+break;default:handled=false;}
+if(handled){event.preventDefault();}},_onKeypress:function(event){},_onFocus:function(event){var opts=this.tree.options;if(event.type=="blur"||event.type=="focusout"){if(opts.onBlur){opts.onBlur.call(this.tree,this);}
+if(this.tree.tnFocused){$(this.tree.tnFocused.span).removeClass(opts.classNames.focused);}
+this.tree.tnFocused=null;if(opts.persist){$.cookie(opts.cookieId+"-focus","",opts.cookie);}}else if(event.type=="focus"||event.type=="focusin"){if(this.tree.tnFocused&&this.tree.tnFocused!==this){this.tree.logDebug("dtnode.onFocus: out of sync: curFocus: %o",this.tree.tnFocused);$(this.tree.tnFocused.span).removeClass(opts.classNames.focused);}
+this.tree.tnFocused=this;if(opts.onFocus){opts.onFocus.call(this.tree,this);}
+$(this.tree.tnFocused.span).addClass(opts.classNames.focused);if(opts.persist){$.cookie(opts.cookieId+"-focus",this.data.key,opts.cookie);}}},visit:function(fn,includeSelf){var res=true;if(includeSelf===true){res=fn(this);if(res===false||res=="skip"){return res;}}
+if(this.childList){for(var i=0,l=this.childList.length;i reloading %s...",this,keyPath,child);var self=this;child.reloadChildren(function(node,isOk){if(isOk){tree.logDebug("%s._loadKeyPath(%s) -> reloaded %s.",node,keyPath,node);callback.call(tree,child,"loaded");node._loadKeyPath(segList.join(tree.options.keyPathSeparator),callback);}else{tree.logWarning("%s._loadKeyPath(%s) -> reloadChildren() failed.",self,keyPath);callback.call(tree,child,"error");}});}else{callback.call(tree,child,"loaded");child._loadKeyPath(segList.join(tree.options.keyPathSeparator),callback);}
+return;}}
+tree.logWarning("Node not found: "+seg);return;},resetLazy:function(){if(this.parent===null){throw"Use tree.reload() instead";}else if(!this.data.isLazy){throw"node.resetLazy() requires lazy nodes.";}
+this.expand(false);this.removeChildren();},_addChildNode:function(dtnode,beforeNode){var tree=this.tree,opts=tree.options,pers=tree.persistence;dtnode.parent=this;if(this.childList===null){this.childList=[];}else if(!beforeNode){if(this.childList.length>0){$(this.childList[this.childList.length-1].span).removeClass(opts.classNames.lastsib);}}
+if(beforeNode){var iBefore=$.inArray(beforeNode,this.childList);if(iBefore<0){throw" must be a child of ";}
+this.childList.splice(iBefore,0,dtnode);}else{this.childList.push(dtnode);}
+var isInitializing=tree.isInitializing();if(opts.persist&&pers.cookiesFound&&isInitializing){if(pers.activeKey===dtnode.data.key){tree.activeNode=dtnode;}
+if(pers.focusedKey===dtnode.data.key){tree.focusNode=dtnode;}
+dtnode.bExpanded=($.inArray(dtnode.data.key,pers.expandedKeyList)>=0);dtnode.bSelected=($.inArray(dtnode.data.key,pers.selectedKeyList)>=0);}else{if(dtnode.data.activate){tree.activeNode=dtnode;if(opts.persist){pers.activeKey=dtnode.data.key;}}
+if(dtnode.data.focus){tree.focusNode=dtnode;if(opts.persist){pers.focusedKey=dtnode.data.key;}}
+dtnode.bExpanded=(dtnode.data.expand===true);if(dtnode.bExpanded&&opts.persist){pers.addExpand(dtnode.data.key);}
+dtnode.bSelected=(dtnode.data.select===true);if(dtnode.bSelected&&opts.persist){pers.addSelect(dtnode.data.key);}}
+if(opts.minExpandLevel>=dtnode.getLevel()){this.bExpanded=true;}
+if(dtnode.bSelected&&opts.selectMode==3){var p=this;while(p){if(!p.hasSubSel){p._setSubSel(true);}
+p=p.parent;}}
+if(tree.bEnableUpdate){this.render();}
+return dtnode;},addChild:function(obj,beforeNode){if(typeof(obj)=="string"){throw"Invalid data type for "+obj;}else if(!obj||obj.length===0){return;}else if(obj instanceof DynaTreeNode){return this._addChildNode(obj,beforeNode);}
+if(!obj.length){obj=[obj];}
+var prevFlag=this.tree.enableUpdate(false);var tnFirst=null;for(var i=0,l=obj.length;i=0){this.expandedKeyList.splice(idx,1);$.cookie(this.cookieId+"-expand",this.expandedKeyList.join(","),this.cookieOpts);}},addSelect:function(key){if($.inArray(key,this.selectedKeyList)<0){this.selectedKeyList.push(key);$.cookie(this.cookieId+"-select",this.selectedKeyList.join(","),this.cookieOpts);}},clearSelect:function(key){var idx=$.inArray(key,this.selectedKeyList);if(idx>=0){this.selectedKeyList.splice(idx,1);$.cookie(this.cookieId+"-select",this.selectedKeyList.join(","),this.cookieOpts);}},isReloading:function(){return this.cookiesFound===true;},toDict:function(){return{cookiesFound:this.cookiesFound,activeKey:this.activeKey,focusedKey:this.activeKey,expandedKeyList:this.expandedKeyList,selectedKeyList:this.selectedKeyList};},lastentry:undefined};var DynaTree=Class.create();DynaTree.version="$Version: 1.2.1_rc3$";DynaTree.prototype={initialize:function($widget){this.phase="init";this.$widget=$widget;this.options=$widget.options;this.$tree=$widget.element;this.timer=null;this.divTree=this.$tree.get(0);_initDragAndDrop(this);},_load:function(callback){var $widget=this.$widget;var opts=this.options,self=this;this.bEnableUpdate=true;this._nodeCount=1;this.activeNode=null;this.focusNode=null;if(opts.rootVisible!==undefined){this.logWarning("Option 'rootVisible' is no longer supported.");}
+if(opts.minExpandLevel<1){this.logWarning("Option 'minExpandLevel' must be >= 1.");opts.minExpandLevel=1;}
+if(opts.classNames!==$.ui.dynatree.prototype.options.classNames){opts.classNames=$.extend({},$.ui.dynatree.prototype.options.classNames,opts.classNames);}
+if(opts.ajaxDefaults!==$.ui.dynatree.prototype.options.ajaxDefaults){opts.ajaxDefaults=$.extend({},$.ui.dynatree.prototype.options.ajaxDefaults,opts.ajaxDefaults);}
+if(opts.dnd!==$.ui.dynatree.prototype.options.dnd){opts.dnd=$.extend({},$.ui.dynatree.prototype.options.dnd,opts.dnd);}
+if(!opts.imagePath){$("script").each(function(){var _rexDtLibName=/.*dynatree[^\/]*\.js$/i;if(this.src.search(_rexDtLibName)>=0){if(this.src.indexOf("/")>=0){opts.imagePath=this.src.slice(0,this.src.lastIndexOf("/"))+"/skin/";}else{opts.imagePath="skin/";}
+self.logDebug("Guessing imagePath from '%s': '%s'",this.src,opts.imagePath);return false;}});}
+this.persistence=new DynaTreeStatus(opts.cookieId,opts.cookie);if(opts.persist){if(!$.cookie){_log("warn","Please include jquery.cookie.js to use persistence.");}
+this.persistence.read();}
+this.logDebug("DynaTree.persistence: %o",this.persistence.toDict());this.cache={tagEmpty:" ",tagVline:" ",tagExpander:" ",tagConnector:" ",tagNodeIcon:" ",tagCheckbox:" ",lastentry:undefined};if(opts.children||(opts.initAjax&&opts.initAjax.url)||opts.initId){$(this.divTree).empty();}
+var $ulInitialize=this.$tree.find(">ul:first").hide();this.tnRoot=new DynaTreeNode(null,this,{});this.tnRoot.bExpanded=true;this.tnRoot.render();this.divTree.appendChild(this.tnRoot.ul);var root=this.tnRoot;var isReloading=(opts.persist&&this.persistence.isReloading());var isLazy=false;var prevFlag=this.enableUpdate(false);this.logDebug("Dynatree._load(): read tree structure...");if(opts.children){root.addChild(opts.children);}else if(opts.initAjax&&opts.initAjax.url){isLazy=true;root.data.isLazy=true;this._reloadAjax(callback);}else if(opts.initId){this._createFromTag(root,$("#"+opts.initId));}else{this._createFromTag(root,$ulInitialize);$ulInitialize.remove();}
+this._checkConsistency();if(!isLazy&&opts.selectMode==3){root._updatePartSelectionState();}
+this.logDebug("Dynatree._load(): render nodes...");this.enableUpdate(prevFlag);this.logDebug("Dynatree._load(): bind events...");this.$widget.bind();this.logDebug("Dynatree._load(): postInit...");this.phase="postInit";if(opts.persist){this.persistence.write();}
+if(this.focusNode&&this.focusNode.isVisible()){this.logDebug("Focus on init: %o",this.focusNode);this.focusNode.focus();}
+if(!isLazy){if(opts.onPostInit){opts.onPostInit.call(this,isReloading,false);}
+if(callback){callback.call(this,"ok");}}
+this.phase="idle";},_reloadAjax:function(callback){var opts=this.options;if(!opts.initAjax||!opts.initAjax.url){throw"tree.reload() requires 'initAjax' mode.";}
+var pers=this.persistence;var ajaxOpts=$.extend({},opts.initAjax);if(ajaxOpts.addActiveKey){ajaxOpts.data.activeKey=pers.activeKey;}
+if(ajaxOpts.addFocusedKey){ajaxOpts.data.focusedKey=pers.focusedKey;}
+if(ajaxOpts.addExpandedKeyList){ajaxOpts.data.expandedKeyList=pers.expandedKeyList.join(",");}
+if(ajaxOpts.addSelectedKeyList){ajaxOpts.data.selectedKeyList=pers.selectedKeyList.join(",");}
+if(ajaxOpts.success){this.logWarning("initAjax: success callback is ignored; use onPostInit instead.");}
+if(ajaxOpts.error){this.logWarning("initAjax: error callback is ignored; use onPostInit instead.");}
+var isReloading=pers.isReloading();ajaxOpts.success=function(dtnode,data,textStatus){if(opts.selectMode==3){dtnode.tree.tnRoot._updatePartSelectionState();}
+if(opts.onPostInit){opts.onPostInit.call(dtnode.tree,isReloading,false);}
+if(callback){callback.call(dtnode.tree,"ok");}};ajaxOpts.error=function(dtnode,XMLHttpRequest,textStatus,errorThrown){if(opts.onPostInit){opts.onPostInit.call(dtnode.tree,isReloading,true,XMLHttpRequest,textStatus,errorThrown);}
+if(callback){callback.call(dtnode.tree,"error",XMLHttpRequest,textStatus,errorThrown);}};this.logDebug("Dynatree._init(): send Ajax request...");this.tnRoot.appendAjax(ajaxOpts);},toString:function(){return"Dynatree '"+this.$tree.attr("id")+"'";},toDict:function(){return this.tnRoot.toDict(true);},serializeArray:function(stopOnParents){var nodeList=this.getSelectedNodes(stopOnParents),name=this.$tree.attr("name")||this.$tree.attr("id"),arr=[];for(var i=0,l=nodeList.length;i=2){Array.prototype.unshift.apply(arguments,["debug"]);_log.apply(this,arguments);}},logInfo:function(msg){if(this.options.debugLevel>=1){Array.prototype.unshift.apply(arguments,["info"]);_log.apply(this,arguments);}},logWarning:function(msg){Array.prototype.unshift.apply(arguments,["warn"]);_log.apply(this,arguments);},isInitializing:function(){return(this.phase=="init"||this.phase=="postInit");},isReloading:function(){return(this.phase=="init"||this.phase=="postInit")&&this.options.persist&&this.persistence.cookiesFound;},isUserEvent:function(){return(this.phase=="userEvent");},redraw:function(){this.tnRoot.render(false,false);},renderInvisibleNodes:function(){this.tnRoot.render(false,true);},reload:function(callback){this._load(callback);},getRoot:function(){return this.tnRoot;},enable:function(){this.$widget.enable();},disable:function(){this.$widget.disable();},getNodeByKey:function(key){var el=document.getElementById(this.options.idPrefix+key);if(el){return el.dtnode?el.dtnode:null;}
+var match=null;this.visit(function(node){if(node.data.key==key){match=node;return false;}},true);return match;},getActiveNode:function(){return this.activeNode;},reactivate:function(setFocus){var node=this.activeNode;if(node){this.activeNode=null;node.activate();if(setFocus){node.focus();}}},getSelectedNodes:function(stopOnParents){var nodeList=[];this.tnRoot.visit(function(node){if(node.bSelected){nodeList.push(node);if(stopOnParents===true){return"skip";}}});return nodeList;},activateKey:function(key){var dtnode=(key===null)?null:this.getNodeByKey(key);if(!dtnode){if(this.activeNode){this.activeNode.deactivate();}
+this.activeNode=null;return null;}
+dtnode.focus();dtnode.activate();return dtnode;},loadKeyPath:function(keyPath,callback){var segList=keyPath.split(this.options.keyPathSeparator);if(segList[0]===""){segList.shift();}
+if(segList[0]==this.tnRoot.data.key){this.logDebug("Removed leading root key.");segList.shift();}
+keyPath=segList.join(this.options.keyPathSeparator);return this.tnRoot._loadKeyPath(keyPath,callback);},selectKey:function(key,select){var dtnode=this.getNodeByKey(key);if(!dtnode){return null;}
+dtnode.select(select);return dtnode;},enableUpdate:function(bEnable){if(this.bEnableUpdate==bEnable){return bEnable;}
+this.bEnableUpdate=bEnable;if(bEnable){this.redraw();}
+return!bEnable;},count:function(){return this.tnRoot.countChildren();},visit:function(fn,includeRoot){return this.tnRoot.visit(fn,includeRoot);},_createFromTag:function(parentTreeNode,$ulParent){var self=this;$ulParent.find(">li").each(function(){var $li=$(this),$liSpan=$li.find(">span:first"),$liA=$li.find(">a:first"),title,href=null,target=null,tooltip;if($liSpan.length){title=$liSpan.html();}else if($liA.length){title=$liA.html();href=$liA.attr("href");target=$liA.attr("target");tooltip=$liA.attr("title");}else{title=$li.html();var iPos=title.search(/=0){title=$.trim(title.substring(0,iPos));}else{title=$.trim(title);}}
+var data={title:title,tooltip:tooltip,isFolder:$li.hasClass("folder"),isLazy:$li.hasClass("lazy"),expand:$li.hasClass("expanded"),select:$li.hasClass("selected"),activate:$li.hasClass("active"),focus:$li.hasClass("focused"),noLink:$li.hasClass("noLink")};if(href){data.href=href;data.target=target;}
+if($li.attr("title")){data.tooltip=$li.attr("title");}
+if($li.attr("id")){data.key=$li.attr("id");}
+if($li.attr("data")){var dataAttr=$.trim($li.attr("data"));if(dataAttr){if(dataAttr.charAt(0)!="{"){dataAttr="{"+dataAttr+"}";}
+try{$.extend(data,eval("("+dataAttr+")"));}catch(e){throw("Error parsing node data: "+e+"\ndata:\n'"+dataAttr+"'");}}}
+var childNode=parentTreeNode.addChild(data);var $ul=$li.find(">ul:first");if($ul.length){self._createFromTag(childNode,$ul);}});},_checkConsistency:function(){},_setDndStatus:function(sourceNode,targetNode,helper,hitMode,accept){var $source=sourceNode?$(sourceNode.span):null,$target=$(targetNode.span);if(!this.$dndMarker){this.$dndMarker=$("
").hide().prependTo($(this.divTree).parent());}
+if(hitMode==="after"||hitMode==="before"||hitMode==="over"){var pos=$target.offset();switch(hitMode){case"before":this.$dndMarker.removeClass("dynatree-drop-after dynatree-drop-over");this.$dndMarker.addClass("dynatree-drop-before");pos.top-=8;break;case"after":this.$dndMarker.removeClass("dynatree-drop-before dynatree-drop-over");this.$dndMarker.addClass("dynatree-drop-after");pos.top+=8;break;default:this.$dndMarker.removeClass("dynatree-drop-after dynatree-drop-before");this.$dndMarker.addClass("dynatree-drop-over");$target.addClass("dynatree-drop-target");pos.left+=8;}
+this.$dndMarker.css({"left":pos.left,"top":pos.top,"z-index":1000}).show();}else{$target.removeClass("dynatree-drop-target");this.$dndMarker.hide();}
+if(hitMode==="after"){$target.addClass("dynatree-drop-after");}else{$target.removeClass("dynatree-drop-after");}
+if(hitMode==="before"){$target.addClass("dynatree-drop-before");}else{$target.removeClass("dynatree-drop-before");}
+if(accept===true){if($source){$source.addClass("dynatree-drop-accept");}
+$target.addClass("dynatree-drop-accept");helper.addClass("dynatree-drop-accept");}else{if($source){$source.removeClass("dynatree-drop-accept");}
+$target.removeClass("dynatree-drop-accept");helper.removeClass("dynatree-drop-accept");}
+if(accept===false){if($source){$source.addClass("dynatree-drop-reject");}
+$target.addClass("dynatree-drop-reject");helper.addClass("dynatree-drop-reject");}else{if($source){$source.removeClass("dynatree-drop-reject");}
+$target.removeClass("dynatree-drop-reject");helper.removeClass("dynatree-drop-reject");}},_onDragEvent:function(eventName,node,otherNode,event,ui,draggable){var opts=this.options,dnd=this.options.dnd,res=null,nodeTag=$(node.span),hitMode;switch(eventName){case"helper":var $helper=$("
").append($(event.target).closest('a').clone());$("ul.dynatree-container",node.tree.divTree).append($helper);$helper.data("dtSourceNode",node);res=$helper;break;case"start":if(node.isStatusNode()){res=false;}else if(dnd.onDragStart){res=dnd.onDragStart(node);}
+if(res===false){this.logDebug("tree.onDragStart() cancelled");ui.helper.trigger("mouseup");ui.helper.hide();}else{nodeTag.addClass("dynatree-drag-source");}
+break;case"enter":res=dnd.onDragEnter?dnd.onDragEnter(node,otherNode):null;res={over:(res!==false)&&((res===true)||(res==="over")||$.inArray("over",res)>=0),before:(res!==false)&&((res===true)||(res==="before")||$.inArray("before",res)>=0),after:(res!==false)&&((res===true)||(res==="after")||$.inArray("after",res)>=0)};ui.helper.data("enterResponse",res);break;case"over":var enterResponse=ui.helper.data("enterResponse");hitMode=null;if(enterResponse===false){break;}else if(typeof enterResponse==="string"){hitMode=enterResponse;}else{var nodeOfs=nodeTag.offset();var relPos={x:event.pageX-nodeOfs.left,y:event.pageY-nodeOfs.top};var relPos2={x:relPos.x/nodeTag.width(),y:relPos.y/nodeTag.height()};if(enterResponse.after&&relPos2.y>0.75){hitMode="after";}else if(!enterResponse.over&&enterResponse.after&&relPos2.y>0.5){hitMode="after";}else if(enterResponse.before&&relPos2.y<=0.25){hitMode="before";}else if(!enterResponse.over&&enterResponse.before&&relPos2.y<=0.5){hitMode="before";}else if(enterResponse.over){hitMode="over";}
+if(dnd.preventVoidMoves){if(node===otherNode){hitMode=null;}else if(hitMode==="before"&&otherNode&&node===otherNode.getNextSibling()){hitMode=null;}else if(hitMode==="after"&&otherNode&&node===otherNode.getPrevSibling()){hitMode=null;}else if(hitMode==="over"&&otherNode&&otherNode.parent===node&&otherNode.isLastSibling()){hitMode=null;}}
+ui.helper.data("hitMode",hitMode);}
+if(hitMode==="over"&&dnd.autoExpandMS&&node.hasChildren()!==false&&!node.bExpanded){node.scheduleAction("expand",dnd.autoExpandMS);}
+if(hitMode&&dnd.onDragOver){res=dnd.onDragOver(node,otherNode,hitMode);}
+this._setDndStatus(otherNode,node,ui.helper,hitMode,res!==false);break;case"drop":hitMode=ui.helper.data("hitMode");if(hitMode&&dnd.onDrop){dnd.onDrop(node,otherNode,hitMode,ui,draggable);}
+break;case"leave":node.scheduleAction("cancel");ui.helper.data("enterResponse",null);ui.helper.data("hitMode",null);this._setDndStatus(otherNode,node,ui.helper,"out",undefined);if(dnd.onDragLeave){dnd.onDragLeave(node,otherNode);}
+break;case"stop":nodeTag.removeClass("dynatree-drag-source");if(dnd.onDragStop){dnd.onDragStop(node);}
+break;default:throw"Unsupported drag event: "+eventName;}
+return res;},cancelDrag:function(){var dd=$.ui.ddmanager.current;if(dd){dd.cancel();}},lastentry:undefined};$.widget("ui.dynatree",{_init:function(){if(parseFloat($.ui.version)<1.8){if(this.options.debugLevel>=0){_log("warn","ui.dynatree._init() was called; you should upgrade to jquery.ui.core.js v1.8 or higher.");}
+return this._create();}
+if(this.options.debugLevel>=2){_log("debug","ui.dynatree._init() was called; no current default functionality.");}},_create:function(){var opts=this.options;if(opts.debugLevel>=1){logMsg("Dynatree._create(): version='%s', debugLevel=%o.",$.ui.dynatree.version,this.options.debugLevel);}
+this.options.event+=".dynatree";var divTree=this.element.get(0);this.tree=new DynaTree(this);this.tree._load();this.tree.logDebug("Dynatree._init(): done.");},bind:function(){this.unbind();var eventNames="click.dynatree dblclick.dynatree";if(this.options.keyboard){eventNames+=" keypress.dynatree keydown.dynatree";}
+this.element.bind(eventNames,function(event){var dtnode=$.ui.dynatree.getNode(event.target);if(!dtnode){return true;}
+var tree=dtnode.tree;var o=tree.options;tree.logDebug("event(%s): dtnode: %s",event.type,dtnode);var prevPhase=tree.phase;tree.phase="userEvent";try{switch(event.type){case"click":return(o.onClick&&o.onClick.call(tree,dtnode,event)===false)?false:dtnode._onClick(event);case"dblclick":return(o.onDblClick&&o.onDblClick.call(tree,dtnode,event)===false)?false:dtnode._onDblClick(event);case"keydown":return(o.onKeydown&&o.onKeydown.call(tree,dtnode,event)===false)?false:dtnode._onKeydown(event);case"keypress":return(o.onKeypress&&o.onKeypress.call(tree,dtnode,event)===false)?false:dtnode._onKeypress(event);}}catch(e){var _=null;tree.logWarning("bind(%o): dtnode: %o, error: %o",event,dtnode,e);}finally{tree.phase=prevPhase;}});function __focusHandler(event){event=$.event.fix(event||window.event);var dtnode=$.ui.dynatree.getNode(event.target);return dtnode?dtnode._onFocus(event):false;}
+var div=this.tree.divTree;if(div.addEventListener){div.addEventListener("focus",__focusHandler,true);div.addEventListener("blur",__focusHandler,true);}else{div.onfocusin=div.onfocusout=__focusHandler;}},unbind:function(){this.element.unbind(".dynatree");},enable:function(){this.bind();$.Widget.prototype.enable.apply(this,arguments);},disable:function(){this.unbind();$.Widget.prototype.disable.apply(this,arguments);},getTree:function(){return this.tree;},getRoot:function(){return this.tree.getRoot();},getActiveNode:function(){return this.tree.getActiveNode();},getSelectedNodes:function(){return this.tree.getSelectedNodes();},lastentry:undefined});if(parseFloat($.ui.version)<1.8){$.ui.dynatree.getter="getTree getRoot getActiveNode getSelectedNodes";}
+$.ui.dynatree.version="$Version: 1.2.1_rc3$";$.ui.dynatree.getNode=function(el){if(el instanceof DynaTreeNode){return el;}
+if(el.selector!==undefined){el=el[0];}
+while(el){if(el.dtnode){return el.dtnode;}
+el=el.parentNode;}
+return null;}
+$.ui.dynatree.getPersistData=DynaTreeStatus._getTreePersistData;$.ui.dynatree.prototype.options={title:"Dynatree",minExpandLevel:1,imagePath:null,children:null,initId:null,initAjax:null,autoFocus:true,keyboard:true,persist:false,autoCollapse:false,clickFolderMode:3,activeVisible:true,checkbox:false,selectMode:2,fx:null,noLink:false,onClick:null,onDblClick:null,onKeydown:null,onKeypress:null,onFocus:null,onBlur:null,onQueryActivate:null,onQuerySelect:null,onQueryExpand:null,onPostInit:null,onActivate:null,onDeactivate:null,onSelect:null,onExpand:null,onLazyRead:null,onCustomRender:null,onCreate:null,onRender:null,dnd:{onDragStart:null,onDragStop:null,autoExpandMS:1000,preventVoidMoves:true,onDragEnter:null,onDragOver:null,onDrop:null,onDragLeave:null},ajaxDefaults:{cache:false,timeout:0,dataType:"json"},strings:{loading:"Loading…",loadError:"Load error!"},generateIds:false,idPrefix:"dynatree-id-",keyPathSeparator:"/",cookieId:"dynatree",cookie:{expires:null},classNames:{container:"dynatree-container",node:"dynatree-node",folder:"dynatree-folder",empty:"dynatree-empty",vline:"dynatree-vline",expander:"dynatree-expander",connector:"dynatree-connector",checkbox:"dynatree-checkbox",nodeIcon:"dynatree-icon",title:"dynatree-title",noConnector:"dynatree-no-connector",nodeError:"dynatree-statusnode-error",nodeWait:"dynatree-statusnode-wait",hidden:"dynatree-hidden",combinedExpanderPrefix:"dynatree-exp-",combinedIconPrefix:"dynatree-ico-",nodeLoading:"dynatree-loading",hasChildren:"dynatree-has-children",active:"dynatree-active",selected:"dynatree-selected",expanded:"dynatree-expanded",lazy:"dynatree-lazy",focused:"dynatree-focused",partsel:"dynatree-partsel",lastsib:"dynatree-lastsib"},debugLevel:1,lastentry:undefined};if(parseFloat($.ui.version)<1.8){$.ui.dynatree.defaults=$.ui.dynatree.prototype.options;}
+$.ui.dynatree.nodedatadefaults={title:null,key:null,isFolder:false,isLazy:false,tooltip:null,href:null,icon:null,addClass:null,noLink:false,activate:false,focus:false,expand:false,select:false,hideCheckbox:false,unselectable:false,children:null,lastentry:undefined};function _initDragAndDrop(tree){var dnd=tree.options.dnd||null;if(dnd&&(dnd.onDragStart||dnd.onDrop)){_registerDnd();}
+if(dnd&&dnd.onDragStart){tree.$tree.draggable({addClasses:false,appendTo:"body",containment:false,delay:0,distance:4,revert:false,scroll:true,scrollSpeed:7,scrollSensitivity:10,connectToDynatree:true,helper:function(event){var sourceNode=$.ui.dynatree.getNode(event.target);if(!sourceNode){return"
";}
+return sourceNode.tree._onDragEvent("helper",sourceNode,null,event,null,null);},start:function(event,ui){},_last:null});}
+if(dnd&&dnd.onDrop){tree.$tree.droppable({addClasses:false,tolerance:"intersect",greedy:false,_last:null});}}
+var didRegisterDnd=false;var _registerDnd=function(){if(didRegisterDnd){return;}
+$.ui.plugin.add("draggable","connectToDynatree",{start:function(event,ui){var draggable=$(this).data("draggable"),sourceNode=ui.helper.data("dtSourceNode")||null;if(sourceNode){draggable.offset.click.top=-2;draggable.offset.click.left=+16;return sourceNode.tree._onDragEvent("start",sourceNode,null,event,ui,draggable);}},drag:function(event,ui){var draggable=$(this).data("draggable"),sourceNode=ui.helper.data("dtSourceNode")||null,prevTargetNode=ui.helper.data("dtTargetNode")||null,targetNode=$.ui.dynatree.getNode(event.target);if(event.target&&!targetNode){var isHelper=$(event.target).closest("div.dynatree-drag-helper,#dynatree-drop-marker").length>0;if(isHelper){return;}}
+ui.helper.data("dtTargetNode",targetNode);if(prevTargetNode&&prevTargetNode!==targetNode){prevTargetNode.tree._onDragEvent("leave",prevTargetNode,sourceNode,event,ui,draggable);}
+if(targetNode){if(!targetNode.tree.options.dnd.onDrop){noop();}else if(targetNode===prevTargetNode){targetNode.tree._onDragEvent("over",targetNode,sourceNode,event,ui,draggable);}else{targetNode.tree._onDragEvent("enter",targetNode,sourceNode,event,ui,draggable);}}},stop:function(event,ui){var draggable=$(this).data("draggable"),sourceNode=ui.helper.data("dtSourceNode")||null,targetNode=ui.helper.data("dtTargetNode")||null,mouseDownEvent=draggable._mouseDownEvent,eventType=event.type,dropped=(eventType=="mouseup"&&event.which==1);if(!dropped){logMsg("Drag was cancelled");}
+if(targetNode){if(dropped){targetNode.tree._onDragEvent("drop",targetNode,sourceNode,event,ui,draggable);}
+targetNode.tree._onDragEvent("leave",targetNode,sourceNode,event,ui,draggable);}
+if(sourceNode){sourceNode.tree._onDragEvent("stop",sourceNode,null,event,ui,draggable);}}});didRegisterDnd=true;};})(jQuery);
\ No newline at end of file
diff --git a/Activity_3_python/Activites_Python3/js/jquery.min.js b/Activity_3_python/Activites_Python3/js/jquery.min.js
new file mode 100644
index 0000000..ee02337
--- /dev/null
+++ b/Activity_3_python/Activites_Python3/js/jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o=""+"",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Activity_3_python/exercise_1/ex1_1.py b/Activity_3_python/exercise_1/ex1_1.py
new file mode 100644
index 0000000..7a26327
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_1.py
@@ -0,0 +1,2 @@
+fichier = 536
+print("Fichier :", fichier, "kio", fichier * 2**10, "octets",fichier * 8 * 2**10, "bits")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_1/ex1_2.py b/Activity_3_python/exercise_1/ex1_2.py
new file mode 100644
index 0000000..7ee508a
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_2.py
@@ -0,0 +1,5 @@
+cle = 1891126108268
+
+res = 97 - cle%97
+
+print("La clé de contrçôle de", cle, "est", res)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_1/ex1_3.py b/Activity_3_python/exercise_1/ex1_3.py
new file mode 100644
index 0000000..5f70844
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_3.py
@@ -0,0 +1,5 @@
+from math import *
+a = sqrt(4.6**3 - 15/16)
+print(a)
+if a == 9.818273779030608:
+ print("C'est bien égale")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_1/ex1_4.py b/Activity_3_python/exercise_1/ex1_4.py
new file mode 100644
index 0000000..eec7295
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_4.py
@@ -0,0 +1,4 @@
+prenom = "Léa"
+nom = "Martin"
+
+print(prenom[0], nom[0])
\ No newline at end of file
diff --git a/Activity_3_python/exercise_1/ex1_5.py b/Activity_3_python/exercise_1/ex1_5.py
new file mode 100644
index 0000000..1e07245
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_5.py
@@ -0,0 +1,4 @@
+prenom = "Alexandre"
+nom = "Lecouturier"
+
+print(prenom, nom, "a pour identifiant ",prenom[0:3].lower() + "." + nom.lower())
\ No newline at end of file
diff --git a/Activity_3_python/exercise_1/ex1_6.py b/Activity_3_python/exercise_1/ex1_6.py
new file mode 100644
index 0000000..2e7a556
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_6.py
@@ -0,0 +1,12 @@
+identifiants = {
+ "ale.lecouturier":"Huz4",
+ "lea.martin":"monty"
+ }
+
+identifiant = input("Identifiant : ")
+motdepasse = input("Mot de passe : ")
+
+if identifiant in identifiants and motdepasse == identifiants[identifiant]:
+ print(True)
+else:
+ print(False)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_1/ex1_6_mieux.py b/Activity_3_python/exercise_1/ex1_6_mieux.py
new file mode 100644
index 0000000..a7c78f2
--- /dev/null
+++ b/Activity_3_python/exercise_1/ex1_6_mieux.py
@@ -0,0 +1,39 @@
+identifiants = {
+ "ale.lecouturier":"Huz4",
+ "lea.martin":"monty"
+ }
+
+#identifiant = input("Identifiant : ")
+#motdepasse = input("Mot de passe : ")
+
+def f():
+ if identifiant.get() in identifiants and motdepasse.get() == identifiants[identifiant]:
+ print(True)
+ else:
+ print(False)
+
+
+from tkinter import *
+
+fenetre = Tk()
+
+label = Label(fenetre, text="Identifiant :")
+label.pack()
+
+
+identifiant = Entry(fenetre, width=30)
+identifiant.pack()
+
+
+
+label = Label(fenetre, text="Mot de passe :")
+label.pack()
+
+
+motdepasse = Entry(fenetre, width=30)
+motdepasse.pack()
+
+bouton = Button(fenetre, text="Se connecter", command=f)
+bouton.pack()
+
+fenetre.mainloop()
\ No newline at end of file
diff --git a/Activity_3_python/exercise_2/ex2_1.py b/Activity_3_python/exercise_2/ex2_1.py
new file mode 100644
index 0000000..80edc4b
--- /dev/null
+++ b/Activity_3_python/exercise_2/ex2_1.py
@@ -0,0 +1,7 @@
+nss = input("Entrer votre numéro de sécurité sociale (13 chiffres) : ")
+cdc = input("Entrer votre clé de contrôle (2 chiffres) : ")
+
+if int(cdc) == 97 - int(nss) % 97:
+ print("Votre numéro de sécurité sociale est valide.")
+else:
+ print("Votre numéro de sécurité sociale est INVALIDE !")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_2/ex2_2_1.py b/Activity_3_python/exercise_2/ex2_2_1.py
new file mode 100644
index 0000000..96482fc
--- /dev/null
+++ b/Activity_3_python/exercise_2/ex2_2_1.py
@@ -0,0 +1,8 @@
+es = int(input("Entrer un entier signé en complément à deux (-128 à +127) : "))
+
+if es>=0:
+ rbn = es
+else:
+ rbn = 256 + es
+
+print("La représentation en binaire naturel est : ", rbn)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_2/ex2_2_2.py b/Activity_3_python/exercise_2/ex2_2_2.py
new file mode 100644
index 0000000..0ab2873
--- /dev/null
+++ b/Activity_3_python/exercise_2/ex2_2_2.py
@@ -0,0 +1,8 @@
+es = int(input("Entrer un nombre entier (0 à 255) : "))
+
+if es >= 127:
+ rbn = es - 256
+else:
+ rbn = es
+
+print("Cela représente l'entier signé : ", rbn)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_2/ex2_3.py b/Activity_3_python/exercise_2/ex2_3.py
new file mode 100644
index 0000000..967f5e4
--- /dev/null
+++ b/Activity_3_python/exercise_2/ex2_3.py
@@ -0,0 +1,12 @@
+note = int(input("Note au bac (sur 20) : "))
+
+if note < 10:
+ print("recalé")
+elif note < 12:
+ print("Pas de mention")
+elif note < 14:
+ print("Assez bien")
+elif note < 16:
+ print("Bien")
+else:
+ print("Félissitation")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_2/ex2_4.py b/Activity_3_python/exercise_2/ex2_4.py
new file mode 100644
index 0000000..01b42b9
--- /dev/null
+++ b/Activity_3_python/exercise_2/ex2_4.py
@@ -0,0 +1,21 @@
+taille = float(input("Votre taille en cm ? "))
+masse = float(input("Votre masse en kg ? "))
+
+IMC = (masse/taille**2)*10000
+
+print("IMC = " ,round(IMC) ,"kg/m²")
+
+if IMC < 16:
+ print("Anorexie ou dénutrition")
+elif IMC < 18.5:
+ print("Maigreur")
+elif IMC < 25:
+ print("Corpulence normale")
+elif IMC < 30:
+ print("Surpoids")
+elif IMC < 35:
+ print("Obésité modérée (Classe 1)")
+elif IMC < 40:
+ print("Obésité élevé (Classe 2)")
+else:
+ print("Obésité morbide ou massive")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_2/ex2_5.py b/Activity_3_python/exercise_2/ex2_5.py
new file mode 100644
index 0000000..489a949
--- /dev/null
+++ b/Activity_3_python/exercise_2/ex2_5.py
@@ -0,0 +1,20 @@
+from math import*
+
+print("Résolution de l'équation du second degré : ax² + bx + c = 0")
+a = float(input("Coefficient a ?"))
+b = float(input("Coefficient b ?"))
+c = float(input("Coefficient c ?"))
+
+discriminant = (b**2)/(4*a*c)
+
+print("Discriminant : ",discriminant)
+
+if discriminant > 0:
+ print("Deux solutions :")
+ print((-b-sqrt(discriminant))/(2*a))
+ print((-b+sqrt(discriminant))/(2*a))
+elif discriminant == 0:
+ print("Une solution :")
+ print(-b/(2*a))
+else:
+ print("Pas de solution !")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_1.py b/Activity_3_python/exercise_3/ex3_1.py
new file mode 100644
index 0000000..c3ce351
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_1.py
@@ -0,0 +1,3 @@
+for i in range(1,11):
+ for y in range(1,11):
+ print(i, "x", y, "=", i*y)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_2.py b/Activity_3_python/exercise_3/ex3_2.py
new file mode 100644
index 0000000..3bf3184
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_2.py
@@ -0,0 +1,5 @@
+a = int(input("Nombre de notes ? "))
+note = 0
+for i in range(a):
+ note += float(input("-->"))
+print(f"Moyenne : {note/a}")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_3_1.py b/Activity_3_python/exercise_3/ex3_3_1.py
new file mode 100644
index 0000000..38ec65e
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_3_1.py
@@ -0,0 +1,8 @@
+a = input("Entrer la chaîne : ")
+b = 0
+
+for i in range(len(a)):
+ if a[i] == "Z" or a[i] == "z":
+ b += 1
+
+print(f"Résultat : {b}")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_3_2.py b/Activity_3_python/exercise_3/ex3_3_2.py
new file mode 100644
index 0000000..9356e42
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_3_2.py
@@ -0,0 +1,2 @@
+a = input("Entrer la chaîne : ")
+print("Résultat : ",a.count("z") + a.count("Z"))
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_4.py b/Activity_3_python/exercise_3/ex3_4.py
new file mode 100644
index 0000000..d831ae3
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_4.py
@@ -0,0 +1,5 @@
+import time
+
+while True:
+ print("Heure courante", time.strftime("%H:%M:%S"))
+ time.sleep(1)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_5.py b/Activity_3_python/exercise_3/ex3_5.py
new file mode 100644
index 0000000..a91be0f
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_5.py
@@ -0,0 +1,16 @@
+import random
+
+nombre = random.randint(1,100)
+coup = 0
+a = None
+print("Le jeu consiste à deviner un nombre entre 1 et 100 :")
+
+while a != nombre:
+ coup += 1
+ a = int(input("--> "))
+ if a < nombre:
+ print("trop petit !")
+ elif a > nombre:
+ print("trop grand !")
+ else:
+ print(f"Gagné en {coup} coups !")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_6_1.py b/Activity_3_python/exercise_3/ex3_6_1.py
new file mode 100644
index 0000000..e485bdc
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_6_1.py
@@ -0,0 +1,16 @@
+msg = input("Message à coder ? ")
+res = ""
+alph = 'abcdefghijklmnopqrstuvwxyz'
+
+for i in msg:
+ if i == ' ' or i =="'":
+ res += i
+
+ else:
+ p = alph.find(i)
+ t = p + 3
+ if t > 25:
+ t = t - 26
+ res += alph[t]
+
+print(res)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_6_2.py b/Activity_3_python/exercise_3/ex3_6_2.py
new file mode 100644
index 0000000..c5f84a2
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_6_2.py
@@ -0,0 +1,16 @@
+msg = input("Message à coder ? ")
+res = ""
+alph = 'abcdefghijklmnopqrstuvwxyz'
+
+for i in msg:
+ if i == ' ' or i =="'":
+ res += i
+
+ else:
+ p = alph.find(i)
+ t = p - 3
+ if t < 0:
+ t = 26 + t
+ res += alph[t]
+
+print(res)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_7.py b/Activity_3_python/exercise_3/ex3_7.py
new file mode 100644
index 0000000..c489175
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_7.py
@@ -0,0 +1,7 @@
+u = int(input("Valeur initiale ?"))
+jusque = int(input("Jusqu'à quel rang ?"))
+
+print(0, u)
+for i in range(1,jusque+1):
+ u = u/2 + 1/u
+ print(i, u)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_8.py b/Activity_3_python/exercise_3/ex3_8.py
new file mode 100644
index 0000000..a9e64e3
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_8.py
@@ -0,0 +1,8 @@
+from math import sqrt
+
+res = 0
+for i in range(1,1001):
+ res = 1+res/i
+ print(i, res)
+
+print(1 + sqrt(5)/2)
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_9_1.py b/Activity_3_python/exercise_3/ex3_9_1.py
new file mode 100644
index 0000000..4670159
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_9_1.py
@@ -0,0 +1,12 @@
+nbr = int(input("Nombre ? "))
+pre = True
+
+for i in range(2,11):
+ if i != nbr:
+ if nbr % i == 0:
+ pre = False
+
+if pre:
+ print("nombre premier !")
+else:
+ print("nombre non premier !")
\ No newline at end of file
diff --git a/Activity_3_python/exercise_3/ex3_9_2.py b/Activity_3_python/exercise_3/ex3_9_2.py
new file mode 100644
index 0000000..ad975f6
--- /dev/null
+++ b/Activity_3_python/exercise_3/ex3_9_2.py
@@ -0,0 +1,8 @@
+nbr = int(input("Nombre ? "))
+nbr_pre = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
+
+while nbr != 0:
+ for i in nbr_pre:
+ if nbr % i == 0:
+ nbr = nbr/i
+ print(i)