Index: pampi/script-nonfree/Makefile
===================================================================
--- /dev/null
+++ pampi/script-nonfree/Makefile
@@ -0,0 +1,19 @@
+
+include pampi-nonfree.pro
+QMFILES = $(patsubst %.ts, %.qm, $(TRANSLATIONS))
+
+all: ui_pampi_nonfree.py $(QMFILES)
+
+clean:
+	rm -f ui_*.py *~ *.qm
+
+ui_pampi_nonfree.py: pampi_nonfree.ui
+	pyuic5 $< -o $@
+
+%.qm : %.ts
+	lrelease $<
+
+$(TRANSLATIONS): $(SOURCES) pampi-nonfree.pro
+	LC_ALL=en_US.UTF-8 pylupdate5 pampi-nonfree.pro
+
+.PHONY: all clean
Index: pampi/script-nonfree/README.fr.md
===================================================================
--- /dev/null
+++ pampi/script-nonfree/README.fr.md
@@ -0,0 +1,65 @@
+Le script `pampi-nonfree`
+=========================
+
+Le script `pampi-nonfree` sert à mettre en place quelques pièces manquantes,
+dans le cadre d'une distribution libre (par exemple avec un paquet Debian)
+
+Voici une copie du début du fichier debian/copyright qui est utilisé
+pour créer un paquet libre selon
+[la charte Debian](https://www.debian.org/social_contract#guidelines) :
+
+```
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Files-Excluded: pampi/presentations/assets/css/bootstrap*
+ pampi/presentations/assets/fonts/*
+ pampi/presentations/assets/js/impress.js
+ pampi/presentations/assets/tools/D3/c3*.js
+ pampi/presentations/assets/tools/D3/d3*.js
+ pampi/presentations/assets/tools/GeoGebra/deployggb.js
+ pampi/presentations/assets/tools/JSXGraph/*
+ pampi/presentations/assets/tools/katex/fonts/*
+ pampi/presentations/assets/tools/katex/katex*
+ pampi/presentations/assets/tools/katex/auto-render.min.js
+ pampi/files/md/bootstrap*
+ pampi/files/md/marked*
+ pampi/libs/win/pandoc.exe
+ pampi/libs/icons
+ pampi/translations/*.qm
+ pampi/presentations/assets/tools/Vis/vis*
+```
+
+Remplacement des fichiers exclus
+================================
+
+Liens à d'autres paquets Debian
+-------------------------------
+
+Pour la plupart d'entre eux, les fichiers exclus du paquet source pour Debian
+existent déjà dans la distribution, et c'est appliquer un principe de
+non-redondance que de remplacer ces fichiers par des liens vers les fichiers
+équivalents, que la distribution Debian fournit.
+
+Les paquets qui fournissent ces fichiers sont autant de *dépendances*, dont
+la liste est :
+
+>   pandoc, libjs-bootstrap(>=3.4.1+dfsg-2), fonts-sil-andika,
+>   fonts-opendyslexic, libjs-impress(>=1.0.0-1), hovercraft (>=2.7-2),
+>   libjs-c3 (>=0.4.11+dfsg-4), jsxgraph, fonts-katex, libjs-katex,
+>   libjs-marked, macaulay2-common
+
+Téléchargement des fichiers non-libres
+--------------------------------------
+
+Quelques fichiers ne peuvent pas être distribués en conformité avec
+ [la charte Debian](https://www.debian.org/social_contract#guidelines),
+ pour des raisons diverses :
+
+ - licence non-commerciale (donc non libre)
+ - difficulté à retrouver l'auteur et la licence, même quand ce fichier s'est trouvé répandu sur plusieurs sites web, et fait probablement partie d'un « domaine commun » au sens large
+ - fichier existant sous une forme difficile à lire pour un humain : ça peut être le cas de fichiers JS ou CSS minifiés, où tous les passages à la ligne ont été supprimés, ainsi que les indentations qui facilitent la compréhension de la source.
+
+Dans ce cas, le script `pampi-nonfree` permet de télécharger ces fichiers,
+si on est d'accord avec les particularités de leurs licences. Les fichiers
+sont installés dans la zone personnelle propre à l'utilisateur qui a
+accepté cette installation, ils ne se mettent pas en place pour tous les
+utilisateurs du même ordinateur.
Index: pampi/script-nonfree/README.md
===================================================================
--- /dev/null
+++ pampi/script-nonfree/README.md
@@ -0,0 +1,62 @@
+The script `pampi-nonfree`
+==========================
+
+The script `pampi-nonfree` is used to install some missing files, in the
+context of a free-libre distribution (for instance with a Debian package)
+
+Here is a copy of the begin of the file debian/copyright which is used
+to create a free-libre debian package, complying with
+[the Debian Free Software Guidelines](https://www.debian.org/social_contract#guidelines):
+
+```
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Files-Excluded: pampi/presentations/assets/css/bootstrap*
+ pampi/presentations/assets/fonts/*
+ pampi/presentations/assets/js/impress.js
+ pampi/presentations/assets/tools/D3/c3*.js
+ pampi/presentations/assets/tools/D3/d3*.js
+ pampi/presentations/assets/tools/GeoGebra/deployggb.js
+ pampi/presentations/assets/tools/JSXGraph/*
+ pampi/presentations/assets/tools/katex/fonts/*
+ pampi/presentations/assets/tools/katex/katex*
+ pampi/presentations/assets/tools/katex/auto-render.min.js
+ pampi/files/md/bootstrap*
+ pampi/files/md/marked*
+ pampi/libs/win/pandoc.exe
+ pampi/libs/icons
+ pampi/translations/*.qm
+ pampi/presentations/assets/tools/Vis/vis*
+```
+
+Replacement of excluded files:
+==============================
+
+Links to other Debian packages
+------------------------------
+
+Most of the excluded files already exist in other already distributed
+Debian packages, so it is the consequence of a non-redundancy principle to
+replace them by links to equivalent files, which Debian provides.
+
+The packages which provide those files are *dependencies*, whose list is:
+
+>   pandoc, libjs-bootstrap(>=3.4.1+dfsg-2), fonts-sil-andika,
+>   fonts-opendyslexic, libjs-impress(>=1.0.0-1), hovercraft (>=2.7-2),
+>   libjs-c3 (>=0.4.11+dfsg-4), jsxgraph, fonts-katex, libjs-katex,
+>   libjs-marked, macaulay2-common
+
+Downloading non-free files
+--------------------------
+
+A few files cannot be distributed accordingly with
+[the Debian Free Software Guidelines](https://www.debian.org/social_contract#guidelines),
+for various reasons:
+
+ - non-commercial license (hence non-free)
+ - difficulties to find the author and the license, even when the file was spread around Internet, and may probably be thought of as a "Public Domain" file.
+ - the file exists in a format which is not human-readable: it can be the case of minified JS or CSS files, where all carriage returns and indentations have been removed, which makes the source rather tough.
+
+In such a case, the script `pampi-nonfree` allows on to download those files,
+if one agrees with their license peculiarities. The files are installed in
+user space (the user who accepted this installation), they are not available
+for other users on the same computer.
Index: pampi/script-nonfree/pampi-nonfree
===================================================================
--- /dev/null
+++ pampi/script-nonfree/pampi-nonfree
@@ -0,0 +1,90 @@
+"""
+This file is useful in Debian packages, to let users download some software
+pieces which have non-free licenses.
+"""
+
+import sys, os, re
+from PyQt5.QtWidgets import QDialog, QApplication, QMessageBox
+from PyQt5 import QtCore
+from ui_pampi_nonfree import Ui_Dialog
+from subprocess import call, Popen, PIPE
+
+nf = {}
+nf["deployggb.js"] = {
+    "URL": "https://gitlab.com/edleh/pampi/-/raw/master/pampi/presentations/assets/tools/GeoGebra/deployggb.js?inline=false",
+    "location": "presentations/assets/tools/GeoGebra",
+}
+
+nf["Vis"] = {
+    "URL": ["https://gitlab.com/edleh/pampi/-/raw/master/pampi/presentations/assets/tools/Vis/vis.min.js?inline=false",
+            "https://gitlab.com/edleh/pampi/-/raw/master/pampi/presentations/assets/tools/Vis/vis.min.css?inline=false"],
+    "location": ["presentations/assets/tools/Vis",
+                 "presentations/assets/tools/Vis"],
+}
+
+
+class MonDialogue(QDialog, Ui_Dialog):
+    def __init__(self, parent=None):
+        super(MonDialogue, self).__init__(parent)
+        self.setupUi(self)
+        return
+
+    def installable(self):
+        install=[]
+        if self.deployggbBox.isChecked():
+            install.append("deployggb.js")
+        if self.VisBox.isChecked():
+            install.append("Vis")
+        return install
+
+    def download(self, key):
+        urls = nf[key]["URL"]
+        locations = nf[key]["location"]
+        if type(urls) == str:
+            urls=[urls]
+        if type(locations) == str:
+            locations = [locations]
+        ddir = QtCore.QStandardPaths.standardLocations(
+            QtCore.QStandardPaths.DocumentsLocation)
+            
+        for url, location in zip(urls, locations):
+            m = re.match(r"^https?://.*/([^\?]*).*$", url)
+            filename = m.group(1)
+            target = os.path.join(ddir, location, filename)
+            cmd = "wget {} -O {}".format(url, target)
+            ret = call (cmd, shell=True)
+            if ret == 0:
+                QMessageBox.information(self, self.tr("Download OK"), self.tr("{} was successfully downloaded,\nto{}").format(filename, target))
+            else:
+                QMessageBox.warning(self, self.tr("Download Failed"), self.tr("{} is not downloaded").format(filename))
+        return
+
+if __name__ == "__main__":
+    app = QApplication(sys.argv)
+    locale = QtCore.QLocale.system().name()
+    # recherche d'un i18n passé en argument
+    # (par exemple LANG=fr_FR) :
+    for arg in sys.argv:
+        if arg.split('=')[0] == 'LANG':
+            locale = arg.split('=')[1]
+    # traduction de Qt (boutons des dialogues, etc) :
+    qtTranslationsPath = QtCore.QLibraryInfo.location(
+        QtCore.QLibraryInfo.TranslationsPath)
+    qtTranslator = QtCore.QTranslator()
+    if qtTranslator.load('qtbase_' + locale, qtTranslationsPath):
+        app.installTranslator(qtTranslator)
+    elif qtTranslator.load('qt_' + locale, qtTranslationsPath):
+        app.installTranslator(qtTranslator)
+    # traduction du logiciel :
+    appLocalefile = 'pampi-nonfree_{}'.format(locale)
+    appTranslator = QtCore.QTranslator()
+    if appTranslator.load(appLocalefile, '.'):
+        app.installTranslator(appTranslator)
+
+    md = MonDialogue()
+    md.show()
+    OK = md.exec_()
+    if OK:
+        for i in md.installable():
+            md.download(i)
+
Index: pampi/script-nonfree/pampi-nonfree.pro
===================================================================
--- /dev/null
+++ pampi/script-nonfree/pampi-nonfree.pro
@@ -0,0 +1,5 @@
+SOURCES      += pampi-nonfree
+SOURCES      += ui_pampi_nonfree.py
+
+TRANSLATIONS += pampi-nonfree.ts
+TRANSLATIONS += pampi-nonfree_fr.ts
Index: pampi/script-nonfree/pampi-nonfree.ts
===================================================================
--- /dev/null
+++ pampi/script-nonfree/pampi-nonfree.ts
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="2.0">
+<context>
+    <name>Dialog</name>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="67"/>
+        <source>PAMPI non-free files download</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="68"/>
+        <source>Please read information about authors and licenses of the files you want to download.
+Then you can check those files which are interesting for download.
+
+Some files cannot be distributed in the Debian package &quot;pampi&quot;, because their are non-free, or because they are frozen old versions of files currently distributed by Debian.
+
+If you want to install them, please have a look at their licenses and copyrights, then download them, so they will be installed in your user space.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="74"/>
+        <source>deployggb.js</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="75"/>
+        <source>Install deployggb.js</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="76"/>
+        <source>@author: GeoGebra - Dynamic Mathematics for Everyone, http://www.geogebra.org
+
+@license: This file is subject to the GeoGebra Non-Commercial License Agreement, see http://www.geogebra.org/license. For questions please write us at office@geogebra.org. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="79"/>
+        <source>Vis</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="80"/>
+        <source>Install vis.min.css and vis.min.js</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="81"/>
+        <source>vis.js
+======
+
+https://github.com/almende/vis
+
+A dynamic, browser-based visualization library.
+
+@version 4.18.1
+@date    2017-01-29
+
+@license
+Copyright (C) 2011-2016 Almende B.V, http://almende.com
+
+Vis.js is dual licensed under both
+
+* The Apache 2.0 License
+  http://www.apache.org/licenses/LICENSE-2.0
+
+and
+
+* The MIT License
+  http://opensource.org/licenses/MIT
+
+Vis.js may be distributed under either license.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>MonDialogue</name>
+    <message>
+        <location filename="pampi-nonfree" line="56"/>
+        <source>Download OK</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="58"/>
+        <source>Download Failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="58"/>
+        <source>{} is not downloaded</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="56"/>
+        <source>{} was successfully downloaded,
+to{}</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
Index: pampi/script-nonfree/pampi-nonfree_fr.ts
===================================================================
--- /dev/null
+++ pampi/script-nonfree/pampi-nonfree_fr.ts
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS><TS version="2.0" language="fr" sourcelanguage="">
+<context>
+    <name>Dialog</name>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="67"/>
+        <source>PAMPI non-free files download</source>
+        <translation>Téléchargement de fichiers : PAMPI non-libre</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="68"/>
+        <source>Please read information about authors and licenses of the files you want to download.
+Then you can check those files which are interesting for download.
+
+Some files cannot be distributed in the Debian package &quot;pampi&quot;, because their are non-free, or because they are frozen old versions of files currently distributed by Debian.
+
+If you want to install them, please have a look at their licenses and copyrights, then download them, so they will be installed in your user space.</source>
+        <translation>Veuillez lire les informations au sujet des auteurs et des licences pour le fichiers à télécharger.
+Vous pourrez alors cocher les fichiers qui vous intéressent.
+
+Quelques fichiers ne peuvent être distribués dans le paquet Debian « pampi », parce qu&apos;ils sont non-libres, ou parce que ce sont des versions anciennes « gelées » de fichiers distribués actuellement par Debian.
+
+Si vous voulez les installer, veuillez examiner leur licence et leur copyright, puis les télécharger ; alors ils seront installés dans votre espace utilisateur.</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="74"/>
+        <source>deployggb.js</source>
+        <translation>deployggb.js</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="75"/>
+        <source>Install deployggb.js</source>
+        <translation>Installer deployggb.js</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="76"/>
+        <source>@author: GeoGebra - Dynamic Mathematics for Everyone, http://www.geogebra.org
+
+@license: This file is subject to the GeoGebra Non-Commercial License Agreement, see http://www.geogebra.org/license. For questions please write us at office@geogebra.org. </source>
+        <translation>@author: GeoGebra - Dynamic Mathematics for Everyone, http://www.geogebra.org
+
+@license: This file is subject to the GeoGebra Non-Commercial License Agreement, see http://www.geogebra.org/license. For questions please write us at office@geogebra.org. </translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="91"/>
+        <source>GeogebraReader.js</source>
+        <translation type="obsolete">GeogebraReader.js</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="92"/>
+        <source>Install GeogebraReader.js</source>
+        <translation type="obsolete">Installer GeogebraReader.js</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="93"/>
+        <source>JSXGraph 0.99.5
+===============
+
+Copyright 2008-2016
+      Matthias Ehmann,
+      Michael Gerhaeuser,
+      Carsten Miller,
+      Bianca Valentin,
+      Alfred Wassermann,
+      Peter Wilfahrt
+
+This file is part of JSXGraph.
+JSXGraph is free software dual licensed under the GNU LGPL or MIT License.
+
+You can redistribute it and/or modify it under the terms of the
+
+* GNU Lesser General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version
+OR
+* MIT License: https://github.com/jsxgraph/jsxgraph/blob/master/LICENSE.MIT
+
+JSXGraph is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License and
+the MIT License along with JSXGraph. If not, see &lt;http://www.gnu.org/licenses/&gt;
+and &lt;http://opensource.org/licenses/MIT/&gt;.</source>
+        <translation type="obsolete">JSXGraph 0.99.5
+===============
+
+Copyright 2008-2016
+      Matthias Ehmann,
+      Michael Gerhaeuser,
+      Carsten Miller,
+      Bianca Valentin,
+      Alfred Wassermann,
+      Peter Wilfahrt
+
+This file is part of JSXGraph.
+JSXGraph is free software dual licensed under the GNU LGPL or MIT License.
+
+You can redistribute it and/or modify it under the terms of the
+
+* GNU Lesser General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version
+OR
+* MIT License: https://github.com/jsxgraph/jsxgraph/blob/master/LICENSE.MIT
+
+JSXGraph is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public License and
+the MIT License along with JSXGraph. If not, see &lt;http://www.gnu.org/licenses/&gt;
+and &lt;http://opensource.org/licenses/MIT/&gt;.</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="79"/>
+        <source>Vis</source>
+        <translation>Vis</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="80"/>
+        <source>Install vis.min.css and vis.min.js</source>
+        <translation>Installer vis.min.css et vis.min.js</translation>
+    </message>
+    <message>
+        <location filename="ui_pampi_nonfree.py" line="81"/>
+        <source>vis.js
+======
+
+https://github.com/almende/vis
+
+A dynamic, browser-based visualization library.
+
+@version 4.18.1
+@date    2017-01-29
+
+@license
+Copyright (C) 2011-2016 Almende B.V, http://almende.com
+
+Vis.js is dual licensed under both
+
+* The Apache 2.0 License
+  http://www.apache.org/licenses/LICENSE-2.0
+
+and
+
+* The MIT License
+  http://opensource.org/licenses/MIT
+
+Vis.js may be distributed under either license.
+</source>
+        <translation>vis.js
+======
+
+https://github.com/almende/vis
+
+A dynamic, browser-based visualization library.
+
+@version 4.18.1
+@date    2017-01-29
+
+@license
+Copyright (C) 2011-2016 Almende B.V, http://almende.com
+
+Vis.js is dual licensed under both
+
+* The Apache 2.0 License
+  http://www.apache.org/licenses/LICENSE-2.0
+
+and
+
+* The MIT License
+  http://opensource.org/licenses/MIT
+
+Vis.js may be distributed under either license.
+</translation>
+    </message>
+</context>
+<context>
+    <name>MonDialogue</name>
+    <message>
+        <location filename="pampi-nonfree" line="56"/>
+        <source>Download OK</source>
+        <translation>Téléchargement OK</translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="60"/>
+        <source>{} was successfully downloaded</source>
+        <translation type="obsolete">{} est téléchargé avec succès</translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="58"/>
+        <source>Download Failed</source>
+        <translation>Téléchargement manqué</translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="58"/>
+        <source>{} is not downloaded</source>
+        <translation>Échec au téléchargement de {}</translation>
+    </message>
+    <message>
+        <location filename="pampi-nonfree" line="56"/>
+        <source>{} was successfully downloaded,
+to{}</source>
+        <translation>{} est téléchargé avec succès,
+vers {}</translation>
+    </message>
+</context>
+</TS>
Index: pampi/script-nonfree/pampi_nonfree.ui
===================================================================
--- /dev/null
+++ pampi/script-nonfree/pampi_nonfree.ui
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Dialog</class>
+ <widget class="QDialog" name="Dialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>639</width>
+    <height>720</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>PAMPI non-free files download</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QPlainTextEdit" name="plainTextEdit">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>130</height>
+      </size>
+     </property>
+     <property name="readOnly">
+      <bool>true</bool>
+     </property>
+     <property name="plainText">
+      <string>Please read information about authors and licenses of the files you want to download.
+Then you can check those files which are interesting for download.
+
+Some files cannot be distributed in the Debian package &quot;pampi&quot;, because their are non-free, or because they are frozen old versions of files currently distributed by Debian.
+
+If you want to install them, please have a look at their licenses and copyrights, then download them, so they will be installed in your user space.</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="ggbdeployBox">
+     <property name="title">
+      <string>deployggb.js</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <widget class="QCheckBox" name="deployggbBox">
+        <property name="text">
+         <string>Install deployggb.js</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPlainTextEdit" name="deployggbTextEdit">
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>100</height>
+         </size>
+        </property>
+        <property name="plainText">
+         <string>@author: GeoGebra - Dynamic Mathematics for Everyone, http://www.geogebra.org
+
+@license: This file is subject to the GeoGebra Non-Commercial License Agreement, see http://www.geogebra.org/license. For questions please write us at office@geogebra.org. </string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox_2">
+     <property name="title">
+      <string>Vis</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_4">
+      <item>
+       <widget class="QCheckBox" name="VisBox">
+        <property name="text">
+         <string>Install vis.min.css and vis.min.js</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QPlainTextEdit" name="VisTextEdit">
+        <property name="minimumSize">
+         <size>
+          <width>0</width>
+          <height>100</height>
+         </size>
+        </property>
+        <property name="plainText">
+         <string>vis.js
+======
+
+https://github.com/almende/vis
+
+A dynamic, browser-based visualization library.
+
+@version 4.18.1
+@date    2017-01-29
+
+@license
+Copyright (C) 2011-2016 Almende B.V, http://almende.com
+
+Vis.js is dual licensed under both
+
+* The Apache 2.0 License
+  http://www.apache.org/licenses/LICENSE-2.0
+
+and
+
+* The MIT License
+  http://opensource.org/licenses/MIT
+
+Vis.js may be distributed under either license.
+</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>Dialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>Dialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
