diff --git a/.hgtags b/.hgtags
index 767aaaf207f2d59f7a547d788727e03732642104..f1c0189ea0dffda81488958f4fae4dcb2ecdaad5 100644
--- a/.hgtags
+++ b/.hgtags
@@ -95,3 +95,4 @@ fbb16b0f468e8f95a16c8b372ecdbbb3ba5cd197 OpenOLAT 10.0.8
 6874c2d0b8d7750929137ee97e73a2bd33c0f85a OpenOLAT 10.0.9
 b237fcdef789c0456061929da21c8447345ff404 OpenOLAT 10.1.0
 d117d8cce9484da7b0440738ff44f9d99e3b8a2d OpenOLAT 10.1.1
+a2cc964921ce02a7ed5167a3fe03e4090231aa9d OpenOLAT 10.1.2
diff --git a/NOTICE.TXT b/NOTICE.TXT
index ee6bd8fe3adbe21c23026bd59253ab561cd64f0b..979fc0ee23b367a9daa5b49ee1e8c90124f7060b 100644
--- a/NOTICE.TXT
+++ b/NOTICE.TXT
@@ -129,6 +129,7 @@ This produce uses software based on the MIT License
 * html5shiv (MIT License / GPL2) [https://github.com/aFarkas/html5shiv]
 * respond.js (MIT License) [https://github.com/scottjehl/Respond]
 * Fuel UX (MIT License) [http://exacttarget.github.io/fuelux]
+* mediaelementjs (MIT License) [http://mediaelementjs.com]
 
 -----------------------------------------------------------------------
 This product uses software based on the BSD License
diff --git a/src/main/java/de/bps/course/nodes/ll/_content/run.html b/src/main/java/de/bps/course/nodes/ll/_content/run.html
index bbf956d4e9ddd4a3c97fc96066fab89e83b4025f..e844ca02ebba9a33c6e6432757da93c19eaa5c74 100644
--- a/src/main/java/de/bps/course/nodes/ll/_content/run.html
+++ b/src/main/java/de/bps/course/nodes/ll/_content/run.html
@@ -2,14 +2,19 @@
 	<ul class="list-unstyled">
 	#foreach($link in $linkList)
 		<li class="o_block">
-			<a href="#if($link.intern) $mapperBaseUrl$link.getTarget() #else $link.getTarget() #end" target="$link.getHtmlTarget()">
-				$link.getDescription()
-				#if($link.getHtmlTarget() == "_blank")
-					<i class="o_icon o_icon_external_link"> </i>
-				#end
-			</a>
+			<h5>
+				<a href="#if($link.intern) $mapperBaseUrl$link.getTarget() #else $link.getTarget() #end" target="$link.getHtmlTarget()" class="o_desc">
+					$link.getDescription()
+					<small>
+						#if($link.intern) $mapperBaseUrl$link.getTarget() #else $link.getTarget() #end
+						#if($link.getHtmlTarget() == "_blank")
+							<i class="o_icon o_icon_external_link"> </i>
+						#end
+					</small>
+				</a>
+			</h5>
 			#if($showLinkComments)
-			<div class="text-muted">
+			<div class="o_comment">
 				$link.getComment()
 			</div>
 			#end
diff --git a/src/main/java/org/olat/admin/landingpages/model/Rule.java b/src/main/java/org/olat/admin/landingpages/model/Rule.java
index 53fbf2e4b48cb531d637b02773c6abfe5ccf13e6..63330fc3f86dfd8bf36750d6e5af2096fdfc8284 100644
--- a/src/main/java/org/olat/admin/landingpages/model/Rule.java
+++ b/src/main/java/org/olat/admin/landingpages/model/Rule.java
@@ -77,6 +77,8 @@ public class Rule {
 	}
 	
 	public boolean match(UserSession userSession) {
+		if(userSession == null || userSession.getRoles() == null) return false;
+		
 		boolean match = true;
 		
 		//match the role?
diff --git a/src/main/java/org/olat/admin/search/_content/index.html b/src/main/java/org/olat/admin/search/_content/index.html
index 6f1449d7faedcbf75315661412e18a86939ccf26..da99e3fed2dac6d3741f1fbf675cfa2dc7f264e2 100644
--- a/src/main/java/org/olat/admin/search/_content/index.html
+++ b/src/main/java/org/olat/admin/search/_content/index.html
@@ -10,7 +10,7 @@
 	$r.translate("fullindexer.label.running.indexer") : $searchstatus.fullIndexerStatus.NumberRunningFolderIndexer<br />
 	$r.translate("fullindexer.label.available.indexer") : $searchstatus.fullIndexerStatus.NumberAvailableFolderIndexer<br />	
 	<br />
-	$r.translate("fullindexer.label.finished") : $searchstatus.fullIndexerStatus.lastFullIndexTime<br />
+	$r.translate("fullindexer.label.finished") : #if($searchstatus.fullIndexerStatus.lastFullIndexTime > 1) $searchstatus.fullIndexerStatus.lastFullIndexDateString #else - #end<br />
 	$r.translate("fullindexer.label.time") : $searchstatus.fullIndexerStatus.indexingTime ms<br />
 	$r.translate("fullindexer.label.size") : $searchstatus.fullIndexerStatus.IndexSize
 </fieldset>
diff --git a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties
index 6f97266385e35e877b974ab010afb9b1b2c3a9c1..f183102c5d48b4e983ff8de1b05c4153c71771a0 100644
--- a/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/site/ui/_i18n/LocalStrings_en.properties
@@ -26,7 +26,7 @@ disabledSiteSecurityCallback=Disabled
 down=Down
 managersSiteSecurityCallback=Managers
 poolPrivateMembersSiteSecurityCallback=Question bank admins and members
-registredOrGuestSiteSecurityCallback=Resgistered users and guests without invitee
+registredOrGuestSiteSecurityCallback=Registered users and guests without invitee
 registredSiteSecurityCallback=Registered users without guests/invitee
 restrictToAuthorSiteSecurityCallback=Authors only
 restrictToGroupManagerSiteSecurityCallback=Group managers
diff --git a/src/main/java/org/olat/admin/user/UserAdminController.java b/src/main/java/org/olat/admin/user/UserAdminController.java
index 3c8bd49439b734816042d95edf512ad5cf70769d..606d16dd07a5626d9c7858a42a3cac3054b2bb47 100644
--- a/src/main/java/org/olat/admin/user/UserAdminController.java
+++ b/src/main/java/org/olat/admin/user/UserAdminController.java
@@ -315,7 +315,7 @@ public class UserAdminController extends BasicController implements Activateable
 		userTabP.addTab(translate(NLS_VIEW_COURSES), courseCtr.getInitialComponent());
 		
 		if (isOlatAdmin) {
-			efficicencyCtrl = new CertificateAndEfficiencyStatementListController(ureq, getWindowControl(), identity);
+			efficicencyCtrl = new CertificateAndEfficiencyStatementListController(ureq, getWindowControl(), identity, true);
 			BreadcrumbedStackedPanel stackPanel = new BreadcrumbedStackedPanel("statements", getTranslator(), efficicencyCtrl);
 			stackPanel.pushController(translate(NLS_VIEW_EFF_STATEMENTS), efficicencyCtrl);
 			efficicencyCtrl.setBreadcrumbPanel(stackPanel);
diff --git a/src/main/java/org/olat/admin/user/course/CourseOverviewController.java b/src/main/java/org/olat/admin/user/course/CourseOverviewController.java
index ab6c0c98f1422be5d441b8ea6591b03ce7f2b296..417b41071bf6aaf625d972157a530c317404eb0b 100644
--- a/src/main/java/org/olat/admin/user/course/CourseOverviewController.java
+++ b/src/main/java/org/olat/admin/user/course/CourseOverviewController.java
@@ -137,12 +137,16 @@ public class CourseOverviewController extends BasicController  {
 
 		courseListCtr = new TableController(config, ureq, wControl, getTranslator());
 		listenTo(courseListCtr);
-		courseListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(MSCols.key.i18n(), MSCols.key.ordinal(), null, getLocale()));
-		courseListCtr.addColumnDescriptor(new DefaultColumnDescriptor(MSCols.title.i18n(), MSCols.title.ordinal(), null, getLocale()));
+		courseListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(MSCols.key.i18n(), MSCols.key.ordinal(),
+				TABLE_ACTION_LAUNCH, getLocale()));
+		courseListCtr.addColumnDescriptor(new DefaultColumnDescriptor(MSCols.title.i18n(), MSCols.title.ordinal(),
+				TABLE_ACTION_LAUNCH, getLocale()));
 		if(repositoryModule.isManagedRepositoryEntries()) {
-			courseListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(MSCols.externalId.i18n(), MSCols.externalId.ordinal(), null, getLocale()));
+			courseListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(MSCols.externalId.i18n(), MSCols.externalId.ordinal(),
+					TABLE_ACTION_LAUNCH, getLocale()));
 		}
-		courseListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(MSCols.externalRef.i18n(), MSCols.externalRef.ordinal(), null, getLocale()));
+		courseListCtr.addColumnDescriptor(false, new DefaultColumnDescriptor(MSCols.externalRef.i18n(), MSCols.externalRef.ordinal(),
+				TABLE_ACTION_LAUNCH, getLocale()));
 		CustomCellRenderer roleRenderer = new CourseRoleCellRenderer();
 		courseListCtr.addColumnDescriptor(new CustomRenderColumnDescriptor(MSCols.role.i18n(), MSCols.role.ordinal(), null, getLocale(), ColumnDescriptor.ALIGNMENT_LEFT, roleRenderer));
 		courseListCtr.addColumnDescriptor(new DefaultColumnDescriptor(MSCols.firstTime.i18n(), MSCols.firstTime.ordinal(), null, getLocale()));
@@ -287,7 +291,7 @@ public class CourseOverviewController extends BasicController  {
 				TableEvent te = (TableEvent) event;
 				CourseMemberView item = tableDataModel.getObject(te.getRowId());
 				if (TABLE_ACTION_LAUNCH.equals(te.getActionId())) {
-					NewControllerFactory.getInstance().launch("[RepositoryEntry:" + item.getRepoKey() + "]", ureq, getWindowControl());
+					launch(ureq, item.getRepoKey());
 				} else if (TABLE_ACTION_UNSUBSCRIBE.equals(te.getActionId())){
 					doLeave(ureq, Collections.singletonList(item));
 				} else if (TABLE_ACTION_EDIT.equals(te.getActionId())){
@@ -360,6 +364,10 @@ public class CourseOverviewController extends BasicController  {
 		cmc = null;
 	}
 	
+	private void launch(UserRequest ureq, Long repoKey) {
+		NewControllerFactory.getInstance().launch("[RepositoryEntry:" + repoKey + "]", ureq, getWindowControl());
+	}
+	
 	private void doOpenEdit(UserRequest ureq, CourseMemberView member) {
 		RepositoryEntry repoEntry = repositoryManager.lookupRepositoryEntry(member.getRepoKey());
 		editSingleMemberCtrl = new EditSingleMembershipController(ureq, getWindowControl(), editedIdentity, repoEntry, null);
@@ -391,7 +399,7 @@ public class CourseOverviewController extends BasicController  {
 		MailPackage mailing = new MailPackage(sendMail);
 		if(re != null) {
 			List<RepositoryEntryPermissionChangeEvent> changes = Collections.singletonList((RepositoryEntryPermissionChangeEvent)e);
-			repositoryManager.updateRepositoryEntryMembership(getIdentity(), ureq.getUserSession().getRoles(), re, changes, mailing);
+			repositoryManager.updateRepositoryEntryMemberships(getIdentity(), ureq.getUserSession().getRoles(), re, changes, mailing);
 		}
 
 		businessGroupService.updateMemberships(getIdentity(), e.getGroupChanges(), mailing);
@@ -440,7 +448,7 @@ public class CourseOverviewController extends BasicController  {
 		}
 		List<RepositoryEntryPermissionChangeEvent> repoChanges = Collections.singletonList(changeEvent);
 		for(RepositoryEntry repoEntry:res) {
-			repositoryManager.updateRepositoryEntryMembership(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, reMailing);
+			repositoryManager.updateRepositoryEntryMemberships(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, reMailing);
 		}
 		
 		//make sure all is committed before loading the model again (I see issues without)
diff --git a/src/main/java/org/olat/basesecurity/AuthHelper.java b/src/main/java/org/olat/basesecurity/AuthHelper.java
index fb8df212a26562a23f08d1f1fc9fc898b2e1c749..8d6d7c579dab4b6a2bb5c4d85590779c585021ae 100644
--- a/src/main/java/org/olat/basesecurity/AuthHelper.java
+++ b/src/main/java/org/olat/basesecurity/AuthHelper.java
@@ -69,6 +69,7 @@ import org.olat.core.util.i18n.I18nModule;
 import org.olat.core.util.session.UserSessionManager;
 import org.olat.course.assessment.AssessmentMode;
 import org.olat.course.assessment.AssessmentModeManager;
+import org.olat.course.assessment.AssessmentModule;
 import org.olat.course.assessment.model.TransientAssessmentMode;
 import org.olat.login.AuthBFWCParts;
 import org.olat.login.GuestBFWCParts;
@@ -312,12 +313,15 @@ public class AuthHelper {
 		if(usess.getRoles() != null && usess.getRoles().isOLATAdmin()) {
 			usess.setAssessmentModes(Collections.<TransientAssessmentMode>emptyList());
 		} else {
-			AssessmentModeManager assessmentManager = CoreSpringFactory.getImpl(AssessmentModeManager.class);
-			List<AssessmentMode> modes = assessmentManager.getAssessmentModeFor(identity);
-			if(modes.isEmpty()) {
-				usess.setAssessmentModes(Collections.<TransientAssessmentMode>emptyList());
-			} else {
-				usess.setAssessmentModes(TransientAssessmentMode.create(modes));
+			AssessmentModule assessmentModule = CoreSpringFactory.getImpl(AssessmentModule.class);
+			if(assessmentModule.isAssessmentModeEnabled()) {
+				AssessmentModeManager assessmentManager = CoreSpringFactory.getImpl(AssessmentModeManager.class);
+				List<AssessmentMode> modes = assessmentManager.getAssessmentModeFor(identity);
+				if(modes.isEmpty()) {
+					usess.setAssessmentModes(Collections.<TransientAssessmentMode>emptyList());
+				} else {
+					usess.setAssessmentModes(TransientAssessmentMode.create(modes));
+				}
 			}
 		}
 		
diff --git a/src/main/java/org/olat/basesecurity/model/IdentityRefImpl.java b/src/main/java/org/olat/basesecurity/model/IdentityRefImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..8d86fee6c06e0de60d4bbad201a5b208714db313
--- /dev/null
+++ b/src/main/java/org/olat/basesecurity/model/IdentityRefImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.basesecurity.model;
+
+import org.olat.basesecurity.IdentityRef;
+
+/**
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class IdentityRefImpl implements IdentityRef {
+	
+	private final Long identityKey;
+	
+	public IdentityRefImpl(Long identityKey) {
+		this.identityKey = identityKey;
+	}
+
+	@Override
+	public Long getKey() {
+		return identityKey;
+	}
+
+	@Override
+	public int hashCode() {
+		return identityKey == null ? 86583206 : identityKey.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		} else if(obj instanceof IdentityRefImpl) {
+			IdentityRefImpl ref = (IdentityRefImpl)obj;
+			return identityKey != null && identityKey.equals(ref.identityKey);
+		}
+		return false;
+	}
+}
diff --git a/src/main/java/org/olat/commons/calendar/ui/CalendarFileUploadController.java b/src/main/java/org/olat/commons/calendar/ui/CalendarFileUploadController.java
index 539d978d4043bbe17619900b16d029463e766f86..6e4401c4cee13b02eb3fc08bc0d49e922bde0e32 100644
--- a/src/main/java/org/olat/commons/calendar/ui/CalendarFileUploadController.java
+++ b/src/main/java/org/olat/commons/calendar/ui/CalendarFileUploadController.java
@@ -70,6 +70,19 @@ public class CalendarFileUploadController extends FormBasicController {
 		uifactory.addFormCancelButton("cancel", buttonsCont, ureq, getWindowControl());
 	}
 
+	@Override
+	protected boolean validateFormLogic(UserRequest ureq) {
+		boolean allOk = true;
+		
+		uploadEl.clearError();
+		if(uploadEl.getUploadFile() == null) {
+			 uploadEl.setErrorKey("form.legende.mandatory", null);
+			 allOk &= false;
+		}
+		
+		return allOk & super.validateFormLogic(ureq);
+	}
+
 	@Override
 	protected void formOK(UserRequest ureq) {
 		File uploadedFile = uploadEl.getUploadFile();
diff --git a/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java b/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java
index 2a7e4d88596d8c445a50cefba29f6a76157a2709..6a374464e8f23d0e76c3c0f5ba1d51419ea25505 100644
--- a/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java
+++ b/src/main/java/org/olat/commons/coordinate/cluster/jms/ClusterEventBus.java
@@ -222,6 +222,11 @@ public class ClusterEventBus extends AbstractEventBus implements MessageListener
 		final long msgId = ++latestSentMsgId;
 		final Integer nodeId = clusterConfig.getNodeId();
 		
+		if(ores != null && ores.getResourceableId() != null
+				&& ores.getResourceableId().equals(0l) && "BusinessGroup".equals(ores.getResourceableTypeName())) {
+			System.out.println();
+		}
+		
 		jmsExecutor.execute(new Runnable() {
 			public void run() {
 				try {
diff --git a/src/main/java/org/olat/core/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/_i18n/LocalStrings_pt_BR.properties
index 0aad0f95f95e17cd909ea9179b59b86193904d40..6fffd775d13ad3056f45d67c6a6ebb883fcc7332 100644
--- a/src/main/java/org/olat/core/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Jul 30 16:08:00 CEST 2014
+#Fri Jan 23 21:48:59 CET 2015
 alert=Favor selecionar no m\u00EDnimo um objeto para sua a\u00E7\u00E3o.
 back=Voltar
 calendar.choose=Escolha uma data do mini calend\u00E1rio
@@ -29,6 +29,7 @@ form.mandatory.hover=Este campo \u00E9 obrigat\u00F3rio
 form.uncheckall=Desfazer sele\u00E7\u00E3o
 form.wiki.hover=Este campo pode ser formatado usando a linguagem Wiki Markup 
 help=Ajuda
+help.manual=Manual
 info.header=Informa\u00E7\u00E3o
 info.saved=Suas modifica\u00E7\u00F5es foram salvas.
 input.toolong=Sua entrada \u00E9 muito longa.
diff --git a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties
index fd3c7a1eda0473bc2ca9192a72c7fc4794cc9b4a..c3e60d37c5a59ff3c4fdce77824783d7891bcfb4 100644
--- a/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/chiefcontrollers/_i18n/LocalStrings_pt_BR.properties
@@ -1,10 +1,11 @@
-#Wed Jul 30 21:30:32 CEST 2014
+#Fri Jan 23 22:17:11 CET 2015
 AssessmentManager=Ferramenta de avalia\u00E7\u00E3o
 BusinessGroup=Grupo de neg\u00F3cios
 CalendarManager=Calend\u00E1rio
 CalendarManager.course=Calend\u00E1rio de Curso
 CalendarManager.group=Calend\u00E1rio do Grupo
 CatalogEntry=Inser\u00E7\u00E3o do Catalogo
+CertificatesManager=Certificados
 CourseBb=Elemento de curso
 CourseModule=Curso
 DENCourseNode=Data de inscri\u00E7\u00E3o
diff --git a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpLayoutControllerCreator.java b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpLayoutControllerCreator.java
index 2552a1c6c8b5ba6e14eeaf0efbfc09cc4c5ecd25..4fefb88dab9d9be90fbe7966461ee896e34dacc4 100644
--- a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpLayoutControllerCreator.java
+++ b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpLayoutControllerCreator.java
@@ -28,7 +28,7 @@ import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.commons.fullWebApp.popup.BaseFullWebappPopupLayout;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
@@ -74,12 +74,12 @@ class ContextHelpLayoutControllerCreator implements BaseFullWebappPopupLayout {
 			}
 
 			@Override
-			public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl) {
-				TopNavController topnavCtr = null;
+			public LockableController createTopNavController(UserRequest ureq, WindowControl wControl) {
+				LockableController topnavCtr = null;
 				// ----------- topnav, optional (e.g. for imprint, logout) ------------------		
 				if (CoreSpringFactory.containsBean("fullWebApp.ContextHelpTopNavControllerCreator")) {
 					ControllerCreator topnavControllerCreator = (ControllerCreator) CoreSpringFactory.getBean("fullWebApp.ContextHelpTopNavControllerCreator");
-					topnavCtr = (TopNavController)topnavControllerCreator.createController(ureq, wControl);
+					topnavCtr = (LockableController)topnavControllerCreator.createController(ureq, wControl);
 				}
 				return topnavCtr;
 			}
@@ -96,14 +96,14 @@ class ContextHelpLayoutControllerCreator implements BaseFullWebappPopupLayout {
 			}
 
 			@Override
-			public Controller createFooterController(UserRequest ureq, WindowControl control) {
+			public LockableController createFooterController(UserRequest ureq, WindowControl control) {
 				Controller footerCtr = null;
 				// ----------- footer, optional (e.g. for copyright, powerd by) ------------------
 				if (CoreSpringFactory.containsBean("fullWebApp.ContextHelpFooterControllerCreator")) {
 					ControllerCreator footerCreator = (ControllerCreator) CoreSpringFactory.getBean("fullWebApp.ContextHelpFooterControllerCreator");
 					footerCtr = footerCreator.createController(ureq, control);
 				}
-				return footerCtr;
+				return (LockableController)footerCtr;
 			}
 		};
 	}
diff --git a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java
index 8f83be2a50a452741d60f46f654e62d2314014ad..1c9c0a79823b6147b83b0017031d2a367bc346c9 100644
--- a/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java
+++ b/src/main/java/org/olat/core/commons/contextHelp/ContextHelpTopNavController.java
@@ -25,7 +25,7 @@ import java.util.Locale;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.chiefcontrollers.LanguageChangedEvent;
 import org.olat.core.commons.fullWebApp.DefaultMinimalTopNavController;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.dispatcher.impl.StaticMediaDispatcher;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.Windows;
@@ -65,7 +65,7 @@ import org.olat.search.ui.SearchInputController;
  * 
  * @author Florian Gnaegi, frentix GmbH, http://www.frentix.com
   */
-public class ContextHelpTopNavController extends FormBasicController implements TopNavController {
+public class ContextHelpTopNavController extends FormBasicController implements LockableController {
 	static final OLATResourceable CHANGE_LANG_RESOURCE = OresHelper.createOLATResourceableType("ContextHelp:ChangeLanguageChannel");
 
 	private SingleSelection langSelection;
diff --git a/src/main/java/org/olat/core/commons/controllers/filechooser/FileChooserUIFactory.java b/src/main/java/org/olat/core/commons/controllers/filechooser/FileChooserUIFactory.java
index 1ffd8e37f59a4881c128851aae5de65052e365ed..eff27763f7775121804d4428a62a468d35cadbb2 100644
--- a/src/main/java/org/olat/core/commons/controllers/filechooser/FileChooserUIFactory.java
+++ b/src/main/java/org/olat/core/commons/controllers/filechooser/FileChooserUIFactory.java
@@ -20,6 +20,7 @@
 
 package org.olat.core.commons.controllers.filechooser;
 
+import org.olat.core.commons.modules.bc.FolderEvent;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.util.vfs.VFSContainer;
@@ -146,4 +147,26 @@ public class FileChooserUIFactory {
 		VFSItem selectedItem = event.getSelectedItem();
 		return VFSManager.getRelativeItemPath(selectedItem, rootContainer, relativeBasePath);
 	}
+	
+	/**
+	 * Get the path as string of the selected item relative to the root
+	 * container and the relative base path
+	 * 
+	 * @param event The folder event
+	 * @param rootContainer
+	 *            The root container for which the relative path should be
+	 *            calculated
+	 * @param relativeBasePath
+	 *            when NULL, the path will be calculated relative to the
+	 *            rootContainer; when NULL, the relativeBasePath must
+	 *            represent a relative path within the root container that
+	 *            serves as the base. In this case, the calculated relative item
+	 *            path will start from this relativeBasePath
+	 * @return 
+	 */
+	public static String getSelectedRelativeItemPath(FolderEvent event, VFSContainer rootContainer, String relativeBasePath) {
+		// 1) Create path absolute to the root container
+		VFSItem selectedItem = event.getItem();
+		return VFSManager.getRelativeItemPath(selectedItem, rootContainer, relativeBasePath);
+	}
 }
diff --git a/src/main/java/org/olat/core/commons/controllers/filechooser/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/controllers/filechooser/_i18n/LocalStrings_pt_BR.properties
index d83ebff1adf90a096e3a75913fd7470e1fd8bda9..f4d9df9ff82eb353c60702b1efe418eff8579a51 100644
--- a/src/main/java/org/olat/core/commons/controllers/filechooser/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/controllers/filechooser/_i18n/LocalStrings_pt_BR.properties
@@ -1,7 +1,28 @@
-#Fri Jun 19 18:33:12 CEST 2009
+#Fri Jan 23 21:55:27 CET 2015
+button.create=Criar
+calloutTrigerLink.select.site=Selecionar p\u00E1gina
+calloutTriggerLink=Escolher arquivo/criar/enviar Link
+calloutTriggerLink.replace=Substituir p\u00E1gina
+chooseLink=Escolher arquivo
+command.create=Criar p\u00E1gina e abrir no editor
+command.edit=Abrir p\u00E1gina no editor
+command.preview.label=Selecionar arquivo
+createLink=Criar arquivo
+error.deleted=O arquivo configurado n\u00E3o existe. Crie o arquivo de novo ou escolha outro arquivo.
+error.name.empty=Por favor, insira um nome para o arquivo a ser criado
 filechooser.select.internallink.title=Selecionar link interno
 filechooser.select.title=Selecionar um arquivo existente
 filechooser.tree.error.only.leafs=O diret\u00F3rio {0} n\u00E3o pode ser selecionado porque n\u00E3o \u00E9 um arquivo. Favor escolha um arquivo.
 filechooser.tree.select.intro=Escolher um elemento dentro da \u00E1rvore e clicar no bot\u00E3o "selecionar"
 filechooser.tree.select.title=Selecionar arquivor
 filechooser.upload.title=Carregar arquivo
+filecreator.filename=Nome do arquivo
+filecreator.filename.placeholder=Digite o nome do arquivo aqui, por exemplo\: my_file.html
+filecreator.text.newfile=Criar uma nova p\u00E1gina HTML
+flexi.form.file=Arquivo
+flexi.form.filetobig=Arquivo muito grande
+flexi.form.mustbefilled=obrigat\u00F3rio
+no.file.chosen=Nenhum arquivo selecionado
+uploadLink=Enviar arquivo
+warning.already.exists=Voc\u00EA deseja criar uma nova pasta "{0}"?
+warning.already.exists.title=A pasta "{0}" j\u00E1 existe
diff --git a/src/main/java/org/olat/core/commons/controllers/linkchooser/FileLinkChooserController.java b/src/main/java/org/olat/core/commons/controllers/linkchooser/FileLinkChooserController.java
index 0ae0ba7dfe3d9d757d9f1cdba87ca6df878f4ad2..d3c3ba4abf7f02e0a0ef3319d8e9495255b14b1f 100644
--- a/src/main/java/org/olat/core/commons/controllers/linkchooser/FileLinkChooserController.java
+++ b/src/main/java/org/olat/core/commons/controllers/linkchooser/FileLinkChooserController.java
@@ -190,11 +190,16 @@ public class FileLinkChooserController extends BasicController {
 				if (isFileSuffixOk(folderEvent.getFilename())) {
 					Size size = null;
 					VFSItem item = folderEvent.getItem();
+					
+					String relPath;
 					if(item != null) {
 						size = getSize(item, item.getName());
+						relPath = FileChooserUIFactory
+								.getSelectedRelativeItemPath(folderEvent, rootDir, fileName);
+					} else {
+						relPath = folderEvent.getFilename();
 					}
 					
-					String relPath = folderEvent.getFilename();
 					if(StringHelper.containsNonWhitespace(absolutePath)) {
 						relPath = absolutePath + relPath;
 					}
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java
index ded3b9b07f7b8205ba4641b0275a628b3d541147..ed8fbbb35d76cf33acb7092b14bd7cb51674fdc9 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappController.java
@@ -84,6 +84,7 @@ import org.olat.core.gui.control.winmgr.JSCommand;
 import org.olat.core.gui.themes.Theme;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.helpers.Settings;
+import org.olat.core.id.IdentityEnvironment;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.id.context.ContextEntry;
@@ -151,8 +152,8 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 	private TransientAssessmentMode lockMode;
 	
 	// NEW FROM FullChiefController
-	private TopNavController topnavCtr;
-	private Controller footerCtr;
+	private LockableController topnavCtr;
+	private LockableController footerCtr;
 	private UserToolsMenuController userToolsMenuCtrl;
 	private SiteInstance curSite;
 	private DTab curDTab;
@@ -199,8 +200,9 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 		WindowSettings settings = WindowSettings.parse(windowSettings);
 		wbo = winman.createWindowBackOffice("basechiefwindow", this, settings);
 		
-		if(ureq.getUserSession().getRoles() != null) {	
-			isAdmin = ureq.getUserSession().getRoles().isOLATAdmin();
+		IdentityEnvironment identityEnv = ureq.getUserSession().getIdentityEnvironment();
+		if(identityEnv != null && identityEnv.getRoles() != null) {	
+			isAdmin = identityEnv.getRoles().isOLATAdmin();
 		} else {
 			isAdmin = false;
 		}
@@ -376,6 +378,7 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 		// nav is not a controller part because it is a fundamental part of the BaseFullWebAppConroller.
 		navSitesVc = createVelocityContainer("nav_sites");
 		navSitesVc.setDomReplacementWrapperRequired(false);
+		navSitesVc.contextPut("visible", Boolean.TRUE);
 		mainVc.put("sitesComponent", navSitesVc);
 		
 		navTabsVc = createVelocityContainer("nav_tabs");
@@ -474,7 +477,6 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 			mainVc.put("footerComponent", footerCmp);
 		}
 		
-		
 		contentCtrl = baseFullWebappControllerParts.getContentController(ureq, getWindowControl());
 		if (contentCtrl != null) {
 			listenTo(contentCtrl);
@@ -664,8 +666,12 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 				lockStatus = LockStatus.locked;
 				removeAsListenerAndDispose(assessmentGuardCtrl);
 				assessmentGuardCtrl = null;
-			} else {
+			} else if("continue".equals(event.getCommand())) {
 				initializeDefaultSite(ureq);
+				removeAsListenerAndDispose(assessmentGuardCtrl);
+				assessmentGuardCtrl = null;
+				lockStatus = null;
+				lockMode = null;
 			}
 		} else {
 			int tabIndex = dtabsControllers.indexOf(source);
@@ -1293,19 +1299,23 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 		if(topnavCtr != null) {
 			topnavCtr.lockResource(resource);
 		}
+		if(footerCtr != null) {
+			footerCtr.lockResource(resource);
+		}
+		
 		if(userToolsMenuCtrl != null) {
 			userToolsMenuCtrl.lockResource(resource);
 		}
 		
-		if(navSitesVc.isVisible()) {
-			navSitesVc.setVisible(false);
-		}
 		for(int i=dtabsControllers.size(); i-->0; ) {
 			DTab tab = dtabs.get(i);
 			if(!lockResource.getResourceableId().equals(tab.getOLATResourceable().getResourceableId())) {
 				removeDTab(null, tab);
 			}
 		}
+		navSitesVc.contextPut("visible", Boolean.FALSE);
+		navSitesVc.setDirty(true);
+		navTabsVc.setDirty(true);
 	}
 
 	private void unlockResource() {
@@ -1313,10 +1323,15 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 		if(topnavCtr != null) {
 			topnavCtr.unlockResource();
 		}
+		if(footerCtr != null) {
+			footerCtr.unlockResource();
+		}
 		if(userToolsMenuCtrl != null) {
 			userToolsMenuCtrl.unlockResource();
 		}
-		navSitesVc.setVisible(true);
+		navSitesVc.contextPut("visible", Boolean.TRUE);
+		navSitesVc.setDirty(true);
+		navTabsVc.setDirty(true);
 	}
 
 	private boolean asyncLockResource(TransientAssessmentMode mode) {
@@ -1330,12 +1345,7 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 			lockMode = mode;
 			lockStatus = LockStatus.need;
 		} else if(lockResource != null && lockResource.getResourceableId().equals(mode.getResource().getResourceableId())) {
-			if(mode.getStatus() == Status.leadtime) {
-				if(assessmentGuardCtrl == null) {
-					lockStatus = LockStatus.need;
-				}
-				lockMode = mode;
-			} else if(mode.getStatus() == Status.followup) {
+			if(mode.getStatus() == Status.leadtime || mode.getStatus() == Status.followup) {
 				if(assessmentGuardCtrl == null) {
 					lockStatus = LockStatus.need;
 				}
@@ -1353,8 +1363,13 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 		if(lockResource != null && lockResource.getResourceableId().equals(mode.getResource().getResourceableId())) {
 			logAudit("Async unlock resource for user: " + getIdentity().getName() + " (" + mode.getResource() + ")", null);
 			unlockResource();
+			if(lockMode != null) {
+				//check if there is a locked resource first
+				lockStatus = LockStatus.need;
+			} else {
+				lockStatus = null;
+			}
 			lockMode = null;
-			lockStatus = null;
 			unlock = true;
 		} else {
 			unlock = false;
@@ -1378,11 +1393,12 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
 	
 	private boolean checkAssessmentGuard(UserRequest ureq, TransientAssessmentMode mode) {
 		boolean needUpdate;
-		
 		if(assessmentGuardCtrl == null) {
 			if(lockStatus == LockStatus.need) {
+				List<TransientAssessmentMode> modes = mode == null ?
+						Collections.<TransientAssessmentMode>emptyList() : Collections.singletonList(mode);
 				assessmentGuardCtrl = new AssessmentModeGuardController(ureq, getWindowControl(),
-						Collections.singletonList(mode), true);
+						modes , true);
 				listenTo(assessmentGuardCtrl);
 				assessmentGuardCtrl.getInitialComponent();
 				lockStatus = LockStatus.popup;
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappControllerParts.java b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappControllerParts.java
index 163f501b566d51f0fd9448a66c06fd8aa2c38444..c684e4dcdd50c528b2dcc8e20f7a752a01e6d435 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappControllerParts.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/BaseFullWebappControllerParts.java
@@ -69,7 +69,7 @@ public interface BaseFullWebappControllerParts {
 	 * @param wControl
 	 * @return
 	 */
-	public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl);
+	public LockableController createTopNavController(UserRequest ureq, WindowControl wControl);
 	
 	/**
 	 * footer controller (user count, logged in user, logo, verson info, etc)
@@ -77,6 +77,6 @@ public interface BaseFullWebappControllerParts {
 	 * @param wControl
 	 * @return
 	 */
-	public Controller createFooterController(UserRequest ureq, WindowControl wControl);
+	public LockableController createFooterController(UserRequest ureq, WindowControl wControl);
 	
 }
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/TopNavController.java b/src/main/java/org/olat/core/commons/fullWebApp/LockableController.java
similarity index 95%
rename from src/main/java/org/olat/core/commons/fullWebApp/TopNavController.java
rename to src/main/java/org/olat/core/commons/fullWebApp/LockableController.java
index 0e4239b647d97195d5e556fd6afba659c94e1db8..fabf969e4a1d36b5636b01d76c12bff5c29a716b 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/TopNavController.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/LockableController.java
@@ -28,7 +28,7 @@ import org.olat.core.id.OLATResourceable;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  *
  */
-public interface TopNavController extends Controller {
+public interface LockableController extends Controller {
 	
 	public void lockResource(OLATResourceable resource);
 	
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/_content/nav_sites.html b/src/main/java/org/olat/core/commons/fullWebApp/_content/nav_sites.html
index 5bed533bc977e6aab730bdc730e7afb713aed0dc..b5f3bd4b56e1d39905777b46c1dacb7524a35d46 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/_content/nav_sites.html
+++ b/src/main/java/org/olat/core/commons/fullWebApp/_content/nav_sites.html
@@ -1,15 +1,14 @@
-## ---- START sites tabs ---
 <ul id="$r.getCId()" class="o_navbar_sites nav o_navbar-nav">
-#foreach ($site in $sites)
-	#set ($siteEl = $r.getComponent("$site"))
-	#set ($navel = $siteEl.userObject.getNavElement())
-	<li class='#if($tabhelper.isSiteActive($siteEl.userObject)) active #end $!navel.getIconCSSClass()'>
-		$r.render("$site")
-	</li>
+#if($visible)
+	#foreach ($site in $sites)
+		#set ($siteEl = $r.getComponent("$site"))
+		#set ($navel = $siteEl.userObject.getNavElement())
+		<li class='#if($tabhelper.isSiteActive($siteEl.userObject)) active #end $!navel.getIconCSSClass()'>
+			$r.render("$site")
+		</li>
+	#end
 #end
 </ul>
-## ---- END sites tabs ---
-
 <script type="text/javascript">
 /* <![CDATA[ */ 
     jQuery(document).trigger("oo.nav.sites.modified");
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/fullWebApp/_i18n/LocalStrings_pt_BR.properties
index d626e80cea906d9b92869b0270f1e1f439668a62..ca35a98a2fea65504f3da218d21fb66149f6b5f6 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/fullWebApp/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Jul 30 16:58:16 CEST 2014
+#Fri Jan 23 22:17:27 CET 2015
 access.skip.to.content=Ir para o conte\u00FAdo principal
 accesskey.back=Um passo para tr\u00E1s (se dispon\u00EDvel)
 accesskey.changes=Atualizado \u00E1reas de tela (modo Web2.a no IE somente)\: u, u, u. ..
@@ -13,6 +13,7 @@ accesskey.title=Chaves de acesso para uma navega\u00E7\u00E3o r\u00E1pida
 accesskey.tools=Ferramentas e a\u00E7\u00F5es
 accesskey.top=Topo da p\u00E1gina
 accesskey.topnav=Navega\u00E7\u00E3o superior
+error.head=Erro
 footer.ajax.hover=Modo AJAX est\u00E1 ativo--o que significa a\u00E7\u00F5es mais r\u00E1pidas nessa aplica\u00E7\u00E3o
 footer.logged.in.as=Logado como <i>{0}</i>
 footer.not.logged.in=N\u00E3o logado
@@ -23,10 +24,12 @@ header.topnav.login=Login
 header.topnav.login.alt=Log in
 header.topnav.logout=Log out
 header.topnav.logout.alt=Log off
+header.topnav.more=Mais
 header.topnav.printview=Imprime
 header.topnav.printview.alt=Imprima esta p\u00E1gina
 preview.close=Fechar amostra
 resize.clear.tooltip=Reseta essa coluna para a largura padr\u00E3o
 resize.compress.tooltip=Comprime a largura dessa coluna
 resize.expand.tooltip=Expande a largura dessa coluna
+support.email=Suporte
 warn.tabsfull=Muitas abas est\u00E3o abertas. Feche uma aba e tente novamente.
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappMinimalLayoutControllerCreator.java b/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappMinimalLayoutControllerCreator.java
index 174ad0d5a1f63384c2d63384c008b29aee126afd..edceb5edb881961fa4ec8f392256ee574a71c99f 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappMinimalLayoutControllerCreator.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappMinimalLayoutControllerCreator.java
@@ -28,7 +28,7 @@ import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -57,29 +57,34 @@ class BaseFullWebappMinimalLayoutControllerCreator implements BaseFullWebappPopu
 	/**
 	 * @see org.olat.core.commons.fullWebApp.popup.BaseFullWebappPopupLayout#getFullWebappParts()
 	 */
+	@Override
 	public BaseFullWebappControllerParts getFullWebappParts() {
 		return new BaseFullWebappControllerParts() {
-		
+
+			@Override
 			public List<SiteInstance> getSiteInstances(UserRequest ureq, WindowControl control) {
 				// no static sites
 				return null;
 			}
-		
+
+			@Override
 			public Controller getContentController(UserRequest ureq, WindowControl wControl) {
 				// the content for the Pop-up Window
 				return contentControllerCreator.createController(ureq, wControl);
 			}
-		
-			public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl) {
-				TopNavController topnavCtr = null;
+
+			@Override
+			public LockableController createTopNavController(UserRequest ureq, WindowControl wControl) {
+				LockableController topnavCtr = null;
 				// ----------- topnav, optional (e.g. for imprint, logout) ------------------		
 				if (CoreSpringFactory.containsBean("fullWebApp.MinimalTopNavControllerCreator")) {
 					ControllerCreator topnavControllerCreator = (ControllerCreator) CoreSpringFactory.getBean("fullWebApp.MinimalTopNavControllerCreator");
-					topnavCtr = (TopNavController)topnavControllerCreator.createController(ureq, wControl);
+					topnavCtr = (LockableController)topnavControllerCreator.createController(ureq, wControl);
 				}
 				return topnavCtr;
 			}
-		
+
+			@Override
 			public Controller createHeaderController(UserRequest ureq, WindowControl control) {
 				Controller headerCtr = null;
 				// ----------- header, optional (e.g. for logo, advertising ) ------------------		
@@ -89,15 +94,16 @@ class BaseFullWebappMinimalLayoutControllerCreator implements BaseFullWebappPopu
 				}
 				return headerCtr;
 			}
-		
-			public Controller createFooterController(UserRequest ureq, WindowControl control) {
+
+			@Override
+			public LockableController createFooterController(UserRequest ureq, WindowControl control) {
 				Controller footerCtr = null;
 				// ----------- footer, optional (e.g. for copyright, powerd by) ------------------
 				if (CoreSpringFactory.containsBean("fullWebApp.MinimalFooterControllerCreator")) {
 					ControllerCreator footerCreator = (ControllerCreator) CoreSpringFactory.getBean("fullWebApp.MinimalFooterControllerCreator");
 					footerCtr = footerCreator.createController(ureq, control);
 				}
-				return footerCtr;
+				return (LockableController)footerCtr;
 			}
 		};
 	}
diff --git a/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappPrintLayoutControllerCreator.java b/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappPrintLayoutControllerCreator.java
index bf2a85ebdcbf53747622aae4634f01b39f928199..2adbda284d8ee7a089f967c80855c58ff14d2e2c 100644
--- a/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappPrintLayoutControllerCreator.java
+++ b/src/main/java/org/olat/core/commons/fullWebApp/popup/BaseFullWebappPrintLayoutControllerCreator.java
@@ -22,7 +22,7 @@ package org.olat.core.commons.fullWebApp.popup;
 import java.util.List;
 
 import org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -59,7 +59,7 @@ class BaseFullWebappPrintLayoutControllerCreator implements BaseFullWebappPopupL
 			}
 
 			@Override
-			public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl) {
+			public LockableController createTopNavController(UserRequest ureq, WindowControl wControl) {
 				return null;
 			}
 
@@ -69,7 +69,7 @@ class BaseFullWebappPrintLayoutControllerCreator implements BaseFullWebappPopupL
 			}
 
 			@Override
-			public Controller createFooterController(UserRequest ureq, WindowControl control) {
+			public LockableController createFooterController(UserRequest ureq, WindowControl control) {
 				return null;
 			}
 		};
diff --git a/src/main/java/org/olat/core/commons/modules/bc/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/modules/bc/_i18n/LocalStrings_pt_BR.properties
index aecef70640a69b0609449d438a97ca51bb11923a..2cb82779cc01ddc55a36cc53c6f97fcd629b7332 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/modules/bc/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Fri Jan 17 21:23:03 CET 2014
+#Fri Jan 23 22:20:56 CET 2015
 Directory=Pasta
 FileDeleteFailed=Arquivos/pastas <b>{0}</b> n\u00E3o puderam ser apagados.
 FileDeleted=Arquivos/pastas <b>{0}</b> apagados com sucesso.
@@ -96,6 +96,7 @@ del.header=Confirmar apagar
 del.partial=Alguns dos arquivos n\u00E3o puderam ser apagados.
 dfiles=Arquivos exclu\u00EDdos
 displayname.user=Pasta pessoal de {0}
+download=Download
 edit=Editar
 editQuota=Editar cota.
 editQuota.nop=Este objeto n\u00E3o suporta uma cota adaptada.
@@ -136,6 +137,8 @@ notifications.header=Existem novos arquivos em uma pasta subscrita por voc\u00EA
 resize_image=Otimizar o tamanho da imagem para a Web (1280 x 1280)
 searchfile=Buscar
 send=Enviar E-mail
+subpath.error.characters=Este caminho cont\u00E9m caracteres ilegais. Por favor, use somente a-z, 0-9 e os caracteres especiais '-' e '_'. Para separar sub-diret\u00F3rios use '/'.
+subpath.error.dir.is.file=J\u00E1 existe um arquivo usando este caminho
 success=Opera\u00E7\u00E3o bem sucedida
 text.element.error.notlongerthan=Nomes de pasta e arquivo n\u00E3o podem ser maiores que 20 caract\u00E9res 
 ul=Carregar arquivo
@@ -153,6 +156,7 @@ ul.overwrite.threeoptions.title=Arquivo j\u00E1 existe
 ul.quote=Informa\u00E7\u00E3o sobre sua pasta
 ul.select=Selecionar arquivo
 ul.target=Destino
+ul.target.child=Sub diret\u00F3rio
 ul.tooManyRevisions.description=O n\u00FAmero m\u00E1ximo de revis\u00F5es \u00E9 {0}. Existem {1} revis\u00F5es. Por favor, exclua algumas revis\u00F5es antes de adicionar novas.
 ul.tooManyRevisions.title=H\u00E1 revis\u00F5es demais.
 ul.upload=Salvar
diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java
index 77ac22de2ff1b408ccf476babe9e859ce7a571e3..385c06795eda4ff8880fe96bfaeb64046e47c187 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/components/FolderComponent.java
@@ -43,7 +43,6 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.AbstractComponent;
 import org.olat.core.gui.components.ComponentRenderer;
 import org.olat.core.gui.control.Event;
-import org.olat.core.gui.control.generic.folder.FolderHelper;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.IdentityEnvironment;
 import org.olat.core.logging.activity.CoreLoggingResourceable;
@@ -66,7 +65,6 @@ public class FolderComponent extends AbstractComponent {
 	public static final String SORT_NAME = "name";
 	public static final String SORT_SIZE = "size";
 	public static final String SORT_DATE = "date";
-	public static final String SORT_TYPE = "type";
 	public static final String SORT_REV = "revision";
 	public static final String SORT_LOCK = "lock";
 	
@@ -267,24 +265,6 @@ public class FolderComponent extends AbstractComponent {
 						else				 return ((leaf1.getSize() < leaf2.getSize()) ?  1 : -1);
 				}
 			};
-		} else if (col.equals(SORT_TYPE)) {																							// sort after file type, folders always on top
-			comparator = new Comparator<VFSItem>() {
-				public int compare(VFSItem o1, VFSItem o2) {
-					String type1 = FolderHelper.extractFileType(o1.getName(), translator.getLocale());
-					String type2 = FolderHelper.extractFileType(o2.getName(), translator.getLocale());
-					if (o1 instanceof VFSLeaf) {
-						if (!FolderHelper.isKnownFileType(type1)) type1 = translator.translate("UnknownFile"); 
-					} else {
-						type1 = (sortAsc) ? "" : "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";		// it's a folder
-					}
-					if (o2 instanceof VFSLeaf) {
-						if (!FolderHelper.isKnownFileType(type2)) type2 = translator.translate("UnknownFile"); 
-					} else {
-						type2 = (sortAsc) ? "" : "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";		// it's a folder
-					}
-					return (sortAsc) ? collator.compare(type1, type2) : collator.compare(type2, type1);
-				}
-			};
 		} else if (col.equals(SORT_REV)) {																							// sort after revision number, folders always on top
 			comparator = new Comparator<VFSItem>() {
 				public int compare(VFSItem o1, VFSItem o2) {
diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
index 561b226f2461939274ea0353aee18be85988859d..3899d82a0f755e188a379d99997a150b1dae5167 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
@@ -143,7 +143,7 @@ public class ListRenderer {
 		sb.append("</th><th>");
 
 		sb.append("<a href=\"");																																							// file type column
-		ubu.buildURI(sb, new String[] { PARAM_SORTID }, new String[] { FolderComponent.SORT_TYPE }, iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
+		ubu.buildURI(sb, new String[] { PARAM_SORTID }, new String[] { FolderComponent.SORT_DATE }, iframePostEnabled ? AJAXFlags.MODE_TOBGIFRAME : AJAXFlags.MODE_NORMAL);
 		sb.append("\"");
 		if (iframePostEnabled) { // add ajax iframe target
 			StringOutput so = new StringOutput();
diff --git a/src/main/java/org/olat/core/commons/modules/bc/meta/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/modules/bc/meta/_i18n/LocalStrings_pt_BR.properties
index 86b85b800444fe5bf132ec243a41cded776e539d..9166112f3307b4473478a63541825e4e0f2dffbb 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/meta/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/modules/bc/meta/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Thu Aug 19 14:30:18 CEST 2010
+#Fri Jan 23 22:21:04 CET 2015
 chelp.bc-metainfo.hover=Ajuda sobre arquivos de meta-dados
 chelp.bc-metainfo.title=Informa\u00E7\u00F5es sobre como usar o arquivo de meta dados
 chelp.meta.intro=Cada arquivo pode ser fornecido com meta dados. Estes dados s\u00E3o baseados no Dublin Core Simple Standard. Para mais informa\u00E7\u00F5es acesse\: {0}.
@@ -6,6 +6,7 @@ chelp.meta.locked=Aqui voc\u00EA pode decidir se deseja bloquear este arquivo. O
 chelp.meta.optional=Meta dados s\u00E3o opcionais. No entanto, v\u00E1rios meta dados n\u00E3o podem ser modificados\: o nome da pessoa que enviou um determinado documento, o tamanho do documento, formato de arquivo e tempo de upload de documentos.
 chelp.meta.purpose=Meta dados adicionalmente descrevem um arquivo, por exemplo, o seu t\u00EDtulo, autor ou editor. Eles servem como um meio de esclarecer prop\u00F3sito de um documento e s\u00E3o particularmente adequados para nomes de arquivos que seriam demasiadamente longos ou de t\u00EDtulos de documentos que cont\u00EAm caracteres especiais.
 chelp.meta.search=Meta dados s\u00E3o indexados pela pesquisa de texto completo. Portanto, voc\u00EA pode procurar por meta dados por meio de palavras-chave ao tentar encontrar documentos relevantes.
+external.url=Link externo para este recurso
 file.name.notvalid=Por favor traduzir\! O nome do arquivo n\u00E3o \u00E9 v\u00E1lido, por favor, remova quaisquer caracteres inv\u00E1lidos\! Os caracteres inv\u00E1lidos\: non Latin-1, path char, \:, etc...
 mf.author=Criado por
 mf.cancel=Cancelar
diff --git a/src/main/java/org/olat/core/commons/persistence/DB.java b/src/main/java/org/olat/core/commons/persistence/DB.java
index 29ec03b1de89ff67d18f1479d1056435ce35fac5..1af632cca7e3433f1e3cdc3f90bd2fe02928c6f2 100644
--- a/src/main/java/org/olat/core/commons/persistence/DB.java
+++ b/src/main/java/org/olat/core/commons/persistence/DB.java
@@ -36,6 +36,12 @@ import org.olat.core.id.Persistable;
 
 public interface DB {
 	
+	public boolean isMySQL();
+	
+	public boolean isPostgreSQL();
+	
+	public boolean isOracle();
+	
 	/**
 	 * Close the database session.
 	 */
diff --git a/src/main/java/org/olat/core/commons/persistence/DBImpl.java b/src/main/java/org/olat/core/commons/persistence/DBImpl.java
index 9dd7e4023e15eb030cf325691208ff05e5d30ddb..6bcb4ba5e4dc1af526c6da1492a0ca910aca86f5 100644
--- a/src/main/java/org/olat/core/commons/persistence/DBImpl.java
+++ b/src/main/java/org/olat/core/commons/persistence/DBImpl.java
@@ -87,7 +87,22 @@ public class DBImpl extends LogDelegator implements DB, Destroyable {
 	protected static DBImpl getInstance() {
 		return INSTANCE;
 	}
-	
+
+	@Override
+	public boolean isMySQL() {
+		return "mysql".equals(dbVendor);
+	}
+
+	@Override
+	public boolean isPostgreSQL() {
+		return "postgresql".equals(dbVendor);
+	}
+
+	@Override
+	public boolean isOracle() {
+		return "oracle".equals(dbVendor);
+	}
+
 	@Override
 	public String getDbVendor() {
 		return dbVendor;
diff --git a/src/main/java/org/olat/core/commons/persistence/NativeQueryBuilder.java b/src/main/java/org/olat/core/commons/persistence/NativeQueryBuilder.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3f44ccbb892cae09ab0c67696d2d75e72634335
--- /dev/null
+++ b/src/main/java/org/olat/core/commons/persistence/NativeQueryBuilder.java
@@ -0,0 +1,156 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.commons.persistence;
+
+/**
+ * Provide some help to build native SQL queries for Oracle, MySQL and PostreSQL.
+ * 
+ * Initial date: 02.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class NativeQueryBuilder {
+
+	private final StringBuilder sb;
+	private final DB dbInstance;
+
+	/**
+	 * @param len
+	 */
+	public NativeQueryBuilder(int len, DB dbInstance) {
+		sb = new StringBuilder(len);
+		this.dbInstance = dbInstance;
+	}
+
+	/**
+	 * 
+	 */
+	public NativeQueryBuilder(DB dbInstance) {
+		sb = new StringBuilder(128);
+		this.dbInstance = dbInstance;
+	}
+
+	/**
+	 * @param val
+	 * @return Itself
+	 */
+	public NativeQueryBuilder append(String val) {
+		sb.append(val);
+		return this;
+	}
+	
+	/**
+	 * 
+	 * @param val The value to append
+	 * @param append If true append happens, if false not
+	 * @return Itself
+	 */
+	public NativeQueryBuilder append(String val, boolean append) {
+		if(append) {
+			sb.append(val);
+		}
+		return this;
+	}
+	
+	public NativeQueryBuilder append(String valTrue, String valFalse, boolean choice) {
+		if(choice) {
+			sb.append(valTrue);
+		} else {
+			sb.append(valFalse);
+		}
+		return this;
+	}
+	
+	/**
+	 * Append true as boolean for PostgreSQL, 1 for Oracle and MySQL.
+	 * @return
+	 */
+	public NativeQueryBuilder appendTrue() {
+		if(dbInstance.isPostgreSQL()) {
+			sb.append("true");
+		} else {
+			sb.append("1");
+		}
+		return this;
+	}
+	
+	/**
+	 * Append false as boolean for PostgreSQL, 0 for Oracle and MySQL.
+	 * @return
+	 */
+	public NativeQueryBuilder appendFalse() {
+		if(dbInstance.isPostgreSQL()) {
+			sb.append("false");
+		} else {
+			sb.append("0");
+		}
+		return this;
+	}
+	
+	/**
+	 * Append an "as" for MySQL and PostgreSQL but not Oracle.
+	 * @return
+	 */
+	public NativeQueryBuilder appendAs() {
+		if(dbInstance.isOracle()) {
+			sb.append(" ");
+		} else {
+			sb.append(" as ");
+		}
+		return this;
+	}
+	
+	public NativeQueryBuilder appendToArray(String var) {
+		if(dbInstance.isMySQL()) {
+			sb.append(" group_concat(").append(var).append(")");
+		} else if(dbInstance.isPostgreSQL()) {
+			sb.append(" array_to_string(array_agg(").append(var).append("),',')");
+		} else if(dbInstance.isOracle()) {
+			sb.append(" listagg(").append(var).append(",',')");
+		}
+		return this;
+	}
+
+	/**
+	 * @param i
+	 * @return Itself
+	 */
+	public NativeQueryBuilder append(int i) {
+		sb.append(i);
+		return this;
+	}
+
+	/**
+	 * @param sMin
+	 * @return Itself
+	 */
+	public NativeQueryBuilder append(long sMin) {
+		sb.append(String.valueOf(sMin));
+		return this;
+	}
+
+	/**
+	 * @see java.lang.Object#toString()
+	 */
+	@Override
+	public String toString() {
+		return sb.toString();
+	}
+}
diff --git a/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java b/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java
index ad82c3cfef83232f0298e43006dca8fd52d6f997..7bffea6fd258d3cd531329a9671aa3822526c22f 100644
--- a/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java
+++ b/src/main/java/org/olat/core/commons/persistence/PersistenceHelper.java
@@ -107,6 +107,15 @@ public class PersistenceHelper {
 		return result;
 	}
 	
+	public static boolean appendAnd(StringBuilder sb, boolean where) {
+		if(where) {
+			sb.append(" and ");
+		} else {
+			sb.append(" where ");
+		}
+		return true;
+	}
+	
 	public static boolean appendGroupBy(StringBuilder sb, String dbRef, SortKey... orderBy) {
 		boolean appended = false;
 		if(orderBy != null && orderBy.length > 0 && orderBy[0] != null) {
diff --git a/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml b/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml
index c99beea3e42c26390e66058369fdf00675e458cd..17f8f769553c83da61b06d48d042979d7238e43f 100644
--- a/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml
+++ b/src/main/java/org/olat/core/commons/persistence/_spring/core_persistence.xml
@@ -127,10 +127,6 @@
 		<class>org.olat.instantMessaging.model.InstantMessageNotificationImpl</class>
 		<class>org.olat.ims.qti.statistics.model.QTIStatisticResult</class>
 		<class>org.olat.ims.qti.statistics.model.QTIStatisticResultSet</class>
-		<class>org.olat.modules.coach.model.EfficiencyStatementGroupStatEntry</class>
-		<class>org.olat.modules.coach.model.EfficiencyStatementCourseStatEntry</class>
-		<class>org.olat.modules.coach.model.EfficiencyStatementStudentStatEntry</class>
-		<class>org.olat.modules.coach.model.EfficiencyStatementIdentityStatEntry</class>
 		<class>org.olat.modules.qpool.model.PoolImpl</class>
 		<class>org.olat.modules.qpool.model.PoolToItem</class>
 		<class>org.olat.modules.qpool.model.PoolItemShortView</class>
diff --git a/src/main/java/org/olat/core/commons/services/notifications/NotificationsManager.java b/src/main/java/org/olat/core/commons/services/notifications/NotificationsManager.java
index c1fca403a7ed2ad56c4c8183c875cf4cc8528078..4c38b37448c3f864943abff7a0d6b12351926095 100644
--- a/src/main/java/org/olat/core/commons/services/notifications/NotificationsManager.java
+++ b/src/main/java/org/olat/core/commons/services/notifications/NotificationsManager.java
@@ -28,6 +28,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
+import org.olat.basesecurity.IdentityRef;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -275,7 +276,16 @@ public abstract class NotificationsManager extends BasicManager {
 	 * @param types
 	 * @return
 	 */
-	public abstract List<Subscriber> getSubscribers(Identity identity, List<String> types);
+	public abstract List<Subscriber> getSubscribers(IdentityRef identity, List<String> types);
+
+	/**
+	 * subscribers for ONE person (e.g. subscribed to 5 forums -> 5 subscribers
+	 * belonging to this person) restricted to the specified types
+	 * 
+	 * @param identity
+	 * @return List of Subscriber Objects which belong to the identity
+	 */
+	public abstract List<Subscriber> getSubscribers(IdentityRef identity, long resId);
 	
 	/**
 	 * @param identity
@@ -299,6 +309,8 @@ public abstract class NotificationsManager extends BasicManager {
 
 	public abstract void unsubscribe(Subscriber s);
 	
+	public abstract void unsubscribeAllForIdentityAndResId(IdentityRef identity, Long resId);
+
 	/**
 	 * @param identity
 	 * @param subscriptionContext
diff --git a/src/main/java/org/olat/core/commons/services/notifications/manager/NotificationsManagerImpl.java b/src/main/java/org/olat/core/commons/services/notifications/manager/NotificationsManagerImpl.java
index 7150ff1a632087c6f0ed130d9d39717bb6613901..2a11526cda0a5fae1e1767c757405d45d76d3ea2 100644
--- a/src/main/java/org/olat/core/commons/services/notifications/manager/NotificationsManagerImpl.java
+++ b/src/main/java/org/olat/core/commons/services/notifications/manager/NotificationsManagerImpl.java
@@ -45,6 +45,7 @@ import javax.persistence.TypedQuery;
 import org.hibernate.FlushMode;
 import org.olat.NewControllerFactory;
 import org.olat.basesecurity.BaseSecurity;
+import org.olat.basesecurity.IdentityRef;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.persistence.DBQuery;
@@ -194,6 +195,7 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us
 	 * @param identity
 	 * @return List of Subscriber Objects which belong to the identity
 	 */
+	@Override
 	public List<Subscriber> getSubscribers(Identity identity) {
 		return getSubscribers(identity, Collections.<String>emptyList());
 	}
@@ -206,22 +208,45 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us
 	 * @return List of Subscriber Objects which belong to the identity
 	 */
 	@Override
-	public List<Subscriber> getSubscribers(Identity identity, List<String> types) {
+	public List<Subscriber> getSubscribers(IdentityRef identity, List<String> types) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select sub from notisub as sub ")
 		  .append("inner join fetch sub.publisher as publisher ")
-		  .append("where sub.identity = :anIdentity");
+		  .append("where sub.identity.key = :identityKey");
 		if(types != null && !types.isEmpty()) {
 			sb.append(" and publisher.type in (:types)");
 		}
-		TypedQuery<Subscriber> query = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), Subscriber.class);
-		query.setParameter("anIdentity", identity);
+		TypedQuery<Subscriber> query = dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), Subscriber.class)
+				.setParameter("identityKey", identity.getKey());
 		if(types != null && !types.isEmpty()) {
 			query.setParameter("types", types);
 		}
 		return query.getResultList();
 	}
 
+	/**
+	 * subscribers for ONE person (e.g. subscribed to 5 forums -> 5 subscribers
+	 * belonging to this person) restricted to the specified Olat resourceable id
+	 * 
+	 * @param identity
+	 * @param resId
+	 * @return List of Subscriber Objects which belong to the identity
+	 */
+	@Override
+	public List<Subscriber> getSubscribers(IdentityRef identity, long resId) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select sub from notisub as sub ")
+		  .append("inner join fetch sub.publisher as publisher ")
+		  .append("where sub.identity.key = :identityKey")
+		  .append(" and publisher.resId = :resId)");
+		return dbInstance.getCurrentEntityManager()
+			.createQuery(sb.toString(), Subscriber.class)
+			.setParameter("identityKey", identity.getKey())
+			.setParameter("resId", resId)
+			.getResultList();
+	}
+
 	/**
 	 * @param identity
 	 * @return a list of all subscribers which belong to the identity and which
@@ -893,6 +918,14 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us
 		}
 	}
 
+	@Override
+	public void unsubscribeAllForIdentityAndResId(IdentityRef identity, Long resId) {
+		List<Subscriber> subscribers = getSubscribers(identity, resId.longValue());
+		for (Subscriber sub:subscribers) {
+			unsubscribe (sub);
+		}
+	}
+
 	/**
 	 * @param identity
 	 * @param subscriptionContext
diff --git a/src/main/java/org/olat/core/commons/services/scheduler/_spring/schedulerContext.xml b/src/main/java/org/olat/core/commons/services/scheduler/_spring/schedulerContext.xml
index e586b67bde018096fd40e9b10ccf38aa7604ce6f..9dc624e6dd08f3eaac667a9980ba9974bf8d1b19 100644
--- a/src/main/java/org/olat/core/commons/services/scheduler/_spring/schedulerContext.xml
+++ b/src/main/java/org/olat/core/commons/services/scheduler/_spring/schedulerContext.xml
@@ -27,6 +27,7 @@ How to add a new job:
 	<property name="quartzProperties">
 		<props>
 			<prop key="org.quartz.threadPool.threadCount">5</prop>
+			<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
 		</props>
 	</property>
 	<property name="triggers">
diff --git a/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_pt_BR.properties
index fef396b82aa8b539afdb078e6d82d0377cf35193..d97179b1bd38dfb4dea476b2bc3fecd4866ea4ee 100644
--- a/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/commons/services/webdav/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Jul 30 16:12:04 CEST 2014
+#Fri Jan 23 22:04:44 CET 2015
 admin.menu.title=WebDAV
 admin.menu.title.alt=Acesso WebDAV
 admin.webdav.description=Usando WebDAV voc\u00EA pode montar e utilizar pastas OpenOLAT em \u200B\u200Bseu desktop local como se fossem pastas locais. Ative esse recurso para torn\u00E1-lo acess\u00EDvel para todos os usu\u00E1rios de sua plataforma. Por favor, leia a ajuda de contexto.
@@ -14,6 +14,8 @@ chelp.webdavconfig.title=Configura\u00E7\u00E3o do m\u00F3dulo WebDAV
 core.webdav=WebDAV
 help.hover.webdavconfig=Ajuda sobre a configura\u00E7\u00E3o do m\u00F3dulo WebDAV
 webdav.digest=Autentica\u00E7\u00E3o DIGEST para acesso HTTP
+webdav.for.learners.bookmarks=Habilitar para os cursos que os usu\u00E1rios marcaram como favoritos
+webdav.for.learners.participants=Habilitar acesso aos cursos onde o usu\u00E1rio \u00E9 participante
 webdav.link=Mostrar links WebDAV
 webdav.module=Acesso WebDAV
 webdav.on=Ativo
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/_i18n/LocalStrings_pt_BR.properties
index ec912d3b7b32a1f0e1c4df38271d0016bda7d266..0ec87ed4962e1104c0beb021f37739a1be0467e0 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Sat Mar 20 14:35:46 CET 2010
+#Fri Jan 23 22:17:33 CET 2015
 day.short.di=Ter
 day.short.do=Quin
 day.short.fr=Sex
@@ -6,6 +6,12 @@ day.short.mi=Quar
 day.short.mo=Seg
 day.short.sa=S\u00E1b
 day.short.so=Dom
+file.element.error.general=Erro desconhecido durante a transfer\u00EAncia de arquivo. Tente novamente e certifique-se que o nome do arquivo n\u00E3o cont\u00E9m quaisquer caracteres especiais (+"*\u00E7&/()\=?^`^'\!$\u00A3\u00A8\:,;\u00A7\u00B0).
+file.element.select=Selecione arquivo
+file.element.select.maxsize=Max {0}
+inline.edit.help=Clique para editar
+inline.empty.click.for.edit=<Clique para modificar>
+integer.element.int.error=Valor deve ser um inteiro
 month.long.apr=Abril
 month.long.aug=Agosto
 month.long.dec=Dezembro
@@ -18,11 +24,6 @@ month.long.mar=Mar\u00E7o
 month.long.nov=Novembro
 month.long.oct=Outubro
 month.long.sep=Setembro
-file.element.error.general=Erro desconhecido durante a transfer\u00EAncia de arquivo. Tente novamente e certifique-se que o nome do arquivo n\u00E3o cont\u00E9m quaisquer caracteres especiais (+"*\u00E7&/()\=?^`^'\!$\u00A3\u00A8\:,;\u00A7\u00B0).
-file.element.select=Selecione arquivo
-file.element.select.maxsize=Max {0}
-inline.empty.click.for.edit=<Clique para modificar>
-integer.element.int.error=Valor deve ser um inteiro
 text.element.error.maxvalue=Valor m\u00E1ximo admiss\u00EDvel \u00E9 {0}.
 text.element.error.minvalue=Valor m\u00EDnimo admiss\u00EDvel \u00E9 {0}.
 text.element.error.notlongerthan=n\u00E3o mais que {0} caract\u00E9res permitidos.
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java
index 647847f6321cda968274c6f4784d6a896a717724..1888919e14b7376318cfe6fc33016c2b06a5a0d7 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/RichTextConfiguration.java
@@ -470,7 +470,7 @@ public class RichTextConfiguration implements Disposable {
 	public void setContentCSSFromTheme(Theme theme) {
 		// Always use default content css, then add the one from the theme
 		if (theme.getIdentifyer().equals(Theme.DEFAULTTHEME)) {
-			setContentCSS(theme.getBaseURI() + "content.css");			
+			setContentCSS(theme.getBaseURI() + "content.css");
 		} else {
 			StringOutput cssFiles = new StringOutput();
 			StaticMediaDispatcher.renderStaticURI(cssFiles, "themes/" + Theme.DEFAULTTHEME + "/content.css");
@@ -730,7 +730,7 @@ public class RichTextConfiguration implements Disposable {
 		if(contentCss != null) {
 			// add styles from content css and add them to format menu
 			copyNonValues.put(IMPORTCSS_APPEND, "true");
-			copyValues.put("content_css", Settings.createServerURI() + contentCss);
+			copyValues.put("content_css", contentCss);
 			// filter emoticons classes from content css
 			copyNonValues.put(IMPORT_SELECTOR_CONVERTER, IMPORT_SELECTOR_CONVERTER_VALUE_REMOVE_EMOTICONS);
 			// group imported css classes to paragraph, div, table and style menu
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
index 17d37c20971a9ebebe368c52b71a348e5c14c46f..e289e2bf0dd754fb5aa0cb72228663a646917d89 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/_spring/richTextCorecontext.xml
@@ -25,7 +25,7 @@
 			 				<!-- URL to movie viewer, must be absolute URI. The context path will be add in the plugin -->
 			 				<entry key="movieViewerUrl" value="/raw/_noversion_/movie/tinyMCE/movieViewer.swf" />
 			 				<!-- The place horizontaly and vertically that the player uses for navigation -->
-			 				<entry key="playerOffsetHeight" value="24" />
+			 				<entry key="playerOffsetHeight" value="0" />
 			 				<entry key="playerOffsetWidth" value="0" />
 			  			</map>	  			
 					</property>	
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java
index 0e36a7b695017e475ee02065a6610e63b4f3204e..1c538576569f3704ab31138f031ef123ae2bd0ff 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/DefaultFlexiColumnModel.java
@@ -49,13 +49,18 @@ public class DefaultFlexiColumnModel implements FlexiColumnModel {
 		this(headerKey, columnIndex, false, null);
 	}
 	
+	public DefaultFlexiColumnModel(String headerKey, int columnIndex, boolean sortable, String sortKey) {
+		this(true, headerKey, columnIndex, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,  new TextFlexiCellRenderer());
+	}
+	
 	public DefaultFlexiColumnModel(String headerKey, int columnIndex, FlexiCellRenderer renderer) {
 		this(true, headerKey, columnIndex, false, null, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
 	
-	public DefaultFlexiColumnModel(String headerKey, int columnIndex, boolean sortable, String sortKey) {
-		this(true, headerKey, columnIndex, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,  new TextFlexiCellRenderer());
+	public DefaultFlexiColumnModel(String headerKey, int columnIndex, boolean sortable, String sortKey, FlexiCellRenderer renderer) {
+		this(true, headerKey, columnIndex, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT, renderer);
 	}
+	
 	public DefaultFlexiColumnModel(boolean defVisible, String headerKey, int columnIndex, boolean sortable, String sortKey) {
 		this(defVisible, headerKey, columnIndex, sortable, sortKey, FlexiColumnModel.ALIGNMENT_LEFT,  new TextFlexiCellRenderer());
 	}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/_i18n/LocalStrings_pt_BR.properties
new file mode 100644
index 0000000000000000000000000000000000000000..36cb4ae9d3205b74c9e5c452d4a09b1cbbdda228
--- /dev/null
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/_i18n/LocalStrings_pt_BR.properties
@@ -0,0 +1,4 @@
+#Fri Jan 23 22:18:01 CET 2015
+page.size.a=Mostrar {0} para {1} de {2} linhas.
+page.size.b=Entradas por p\u00E1gina
+show.all=Tudo
diff --git a/src/main/java/org/olat/core/gui/components/table/Table.java b/src/main/java/org/olat/core/gui/components/table/Table.java
index 6d58072d5788502a5f635723c53750fcbcda0c9a..976f002d8ac40640f279f5425ec15d9987a4bfb7 100644
--- a/src/main/java/org/olat/core/gui/components/table/Table.java
+++ b/src/main/java/org/olat/core/gui/components/table/Table.java
@@ -109,10 +109,11 @@ public class Table extends AbstractComponent {
 
 	// order of left-to-right presentation of Columns (visible columndescriptors):
 	// list of columndescriptors
-	List<ColumnDescriptor> columnOrder; // default visibility to improve speed, not private
+	private List<ColumnDescriptor> columnOrder; // default visibility to improve speed, not private
 
 	// all column descriptors whether visible or not
-	List<ColumnDescriptor> allCDs; // default visibility to improve speed, not private
+	private List<ColumnDescriptor> allCDs; // default visibility to improve speed, not private
+	private List<ColumnDescriptor> defaultVisibleCDs;
 
 	private TableDataModel tableDataModel;
 	// DO NOT REFERENCE filteredTableDataModel directly, use always getFilteredTableDataModel() because lazy init!
@@ -156,6 +157,7 @@ public class Table extends AbstractComponent {
 		super(id, name, translator);
 		columnOrder = new ArrayList<ColumnDescriptor>(INITIAL_COLUMNSIZE);
 		allCDs = new ArrayList<ColumnDescriptor>(INITIAL_COLUMNSIZE);
+		defaultVisibleCDs = new ArrayList<ColumnDescriptor>(INITIAL_COLUMNSIZE);
 		sorter = new ArrayList<Integer>(DEFAULT_RESULTS_PER_PAGE);
 		selectedRowId = NO_ROW_SELECTED;
 		currentPageId = Integer.valueOf(1);
@@ -281,11 +283,10 @@ public class Table extends AbstractComponent {
 			} else {
 				columnOrder.add(cd);
 			}
+			defaultVisibleCDs.add(cd);
 		}
 	}
 
-	// public boolean isColumnDescriptorVisible()
-
 	/**
 	 * @param cd
 	 */
@@ -649,6 +650,17 @@ public class Table extends AbstractComponent {
 	protected ChoiceModel createChoiceModel() {
 		return new ChoiceTableDataModel(isMultiSelect(), allCDs, columnOrder, getTranslator());
 	}
+	
+	protected List<Integer> getDefaultVisibleColumns() {
+		List<Integer> indexList = new ArrayList<>();
+		for(ColumnDescriptor defaultVisibleCD:defaultVisibleCDs) {
+			int index = allCDs.indexOf(defaultVisibleCD);
+			if(index >= 0) {
+				indexList.add(index);
+			}
+		}
+		return indexList;
+	}
 
 	/**
 	 * @param selRows
diff --git a/src/main/java/org/olat/core/gui/components/table/TableController.java b/src/main/java/org/olat/core/gui/components/table/TableController.java
index 75175130bfafb6347b554feb23c57a847b10d169..c580d0f3334d79abe6117e37975466d5796920ae 100644
--- a/src/main/java/org/olat/core/gui/components/table/TableController.java
+++ b/src/main/java/org/olat/core/gui/components/table/TableController.java
@@ -338,7 +338,8 @@ public class TableController extends BasicController {
 				applyAndcheckChangedColumnsChoice(ureq, colsChoice.getSelectedRows());
 			} else if (event == Choice.EVNT_FORM_RESETED) {
 				//sideeffect on table and prefs
-				applyAndcheckChangedColumnsChoice(ureq, colsChoice.getAllRows());
+				List<Integer> visibleCols = table.getDefaultVisibleColumns();
+				applyAndcheckChangedColumnsChoice(ureq, visibleCols);
 			} else { // cancelled
 				cmc.deactivate();
 			}
@@ -515,6 +516,7 @@ public class TableController extends BasicController {
 		if (tableModel != null) {
 			contentVc.contextPut("tableEmpty", tableModel.getRowCount() == 0 ? Boolean.TRUE : Boolean.FALSE);
 			contentVc.contextPut("numberOfElements", String.valueOf(table.getUnfilteredRowCount()));
+			contentVc.contextPut("rowCounts", String.valueOf(table.getRowCount()));
 			if (table.isTableFiltered()) {
 				contentVc.contextPut("numberFilteredElements", String.valueOf(table.getRowCount()));
 				contentVc.contextPut(VC_VAR_IS_FILTERED, Boolean.TRUE); 
diff --git a/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html b/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html
index c2a5a926e6bbd9d64ba56aecbff835526725f625..1eff6a4b8805324568d9c20175e969ddda0d1b1d 100644
--- a/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html
+++ b/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html
@@ -11,8 +11,8 @@
 		</div>
 		<div class="col-sm-3 col-xs-4 o_table_row_count">
 		#if ($tableConfig.isDisplayRowCount())
-			$numberOfElements
-			#if ($numberOfElements == "1")
+			$rowCounts
+			#if ($rowCounts == "1")
 				$r.translate("table.entry")
 			#else
 				$r.translate("table.entries")
diff --git a/src/main/java/org/olat/core/gui/components/tree/MenuTreeItem.java b/src/main/java/org/olat/core/gui/components/tree/MenuTreeItem.java
index 0593714134f7a2c43d3759904da934ab14ee475f..4b53c442779570e9134328a191ba12f8e4f0eae5 100644
--- a/src/main/java/org/olat/core/gui/components/tree/MenuTreeItem.java
+++ b/src/main/java/org/olat/core/gui/components/tree/MenuTreeItem.java
@@ -40,6 +40,7 @@ import org.olat.course.tree.TreePosition;
 public class MenuTreeItem extends FormItemImpl {
 	
 	private final MenuTree treeCmp;
+	private boolean noDirtyCheckOnClick = false;
 	private Set<String> visibleNodeIds = new HashSet<>();
 	
 	public MenuTreeItem(String name, ComponentEventListener listener) {
@@ -47,6 +48,14 @@ public class MenuTreeItem extends FormItemImpl {
 		treeCmp = new MenuTree(null, name + "_CMP", listener, this);
 	}
 
+	public boolean isNoDirtyCheckOnClick() {
+		return noDirtyCheckOnClick;
+	}
+
+	public void setNoDirtyCheckOnClick(boolean noDirtyCheckOnClick) {
+		this.noDirtyCheckOnClick = noDirtyCheckOnClick;
+	}
+
 	@Override
 	protected MenuTree getFormItemComponent() {
 		return treeCmp;
diff --git a/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java b/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java
index 001ddd044b8b8aebc626e2f20382b4c222a4b259..9c00f6d2859e353ae520860b9d1d6ef8f1231dcd 100644
--- a/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/tree/MenuTreeRenderer.java
@@ -352,7 +352,11 @@ public class MenuTreeRenderer extends DefaultComponentRenderer {
 		}
 		
 		// add css class to identify level, FireFox script
-		target.append("<a onclick='o2cl_secure()' href=\"");					
+		if(tree.getMenuTreeItem() != null && tree.getMenuTreeItem().isNoDirtyCheckOnClick()) {
+			target.append("<a onclick='o2cl_noDirtyCheck()' href=\"");		
+		} else {
+			target.append("<a onclick='o2cl_secure()' href=\"");		
+		}			
 		
 		// Build menu item URI
 		if (iframePostEnabled) {
diff --git a/src/main/java/org/olat/core/gui/components/tree/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/core/gui/components/tree/_i18n/LocalStrings_pt_BR.properties
index d026924803d6c5677c7cfcb625eb8757f2028040..5efd59f72fab7834d79245af728f9fa17408c5e5 100644
--- a/src/main/java/org/olat/core/gui/components/tree/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/core/gui/components/tree/_i18n/LocalStrings_pt_BR.properties
@@ -1,2 +1,3 @@
-#Mon Mar 02 09:53:59 CET 2009
+#Fri Jan 23 22:18:09 CET 2015
+insertion.point=Ser\u00E1 deixado aqui
 selectiontree.noentries=\=<i>Nenhum item dispon\u00EDvel.</i>
diff --git a/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java b/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java
index 9557d18fdd36959d445fcce795c394232c45c6d3..79351f015aec4e505944c01dfd049bfb3ae89df8 100644
--- a/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java
+++ b/src/main/java/org/olat/core/gui/control/generic/folder/FolderTreeModel.java
@@ -75,16 +75,11 @@ public class FolderTreeModel extends GenericTreeModel {
 		this.selectableFolders = selectableFolders;
 		this.fileFilter = fileFilter;
 
-		GenericTreeNode newRoot = new GenericTreeNode(rootContainer.getName(), rootContainer.getName());
+		GenericTreeNode newRoot = new GenericTreeNode(rootContainer.getName(), "/");
 		newRoot.setIconCssClass("o_filetype_folder");
+		newRoot.setSelected(allowRootFolderSelect);
 		setRootNode(newRoot);
-		if (allowRootFolderSelect) { // include root folder as selection
-			GenericTreeNode effectiveRoot = new GenericTreeNode("/", "/");
-			newRoot.addChild(effectiveRoot);
-			buildTree(effectiveRoot, rootContainer, "/");
-		} else {
-			buildTree(getRootNode(), rootContainer, "/");
-		}
+		buildTree(newRoot, rootContainer, "/");
 	}
 	
 	/**
diff --git a/src/main/java/org/olat/core/id/context/BusinessControl.java b/src/main/java/org/olat/core/id/context/BusinessControl.java
index cc658c40accfd52c8ba92d228245a2ef2ec7b2b2..4362a584752e21681aa1be141216d31cb6208dc5 100644
--- a/src/main/java/org/olat/core/id/context/BusinessControl.java
+++ b/src/main/java/org/olat/core/id/context/BusinessControl.java
@@ -65,9 +65,10 @@ public interface BusinessControl {
 	public String getAsString();
 	
 
-	//fxdiff BAKS-7 Resume function
 	public List<ContextEntry> getEntries();
 	
+	public List<ContextEntry> getEntriesDownTheControls();
+	
 	/**
 	 * pop context entry for further processing, this is used for spawning controllers
 	 * @return
@@ -97,8 +98,4 @@ public interface BusinessControl {
 	 * @return
 	 */
 	public boolean hasContextEntry();
-	
-	
-	
-	//public int getStackedCount();
 }
diff --git a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
index 1d9129cc1ab5186139059263b42f68e753162723..545f7d2217c1e4d992771347ba35aed2005f980d 100644
--- a/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
+++ b/src/main/java/org/olat/core/id/context/BusinessControlFactory.java
@@ -87,10 +87,14 @@ public class BusinessControlFactory {
 			}
 
 			@Override
-			//fxdiff BAKS-7 Resume function
 			public List<ContextEntry> getEntries() {
 				return Collections.<ContextEntry>emptyList();
 			}
+			
+			@Override
+			public List<ContextEntry> getEntriesDownTheControls() {
+				return Collections.<ContextEntry>emptyList();
+			}
 
 			public ContextEntry popLauncherContextEntry() {
 				return null;
@@ -289,27 +293,41 @@ public class BusinessControlFactory {
 		//Root businessControl with RootContextEntry which must be defined (i.e. not null)
 		BusinessControl bc = new StackedBusinessControl(rootEntry, null) {
 
+			@Override
 			public ContextEntry popLauncherContextEntry() {
 				return popInternalLaucherContextEntry();
 			}
 
+			@Override
 			ContextEntry popInternalLaucherContextEntry(){
 				if (ces.size() == 0) return null;
 				ContextEntry ce = ces.remove(0);
 				return ce;
 			}
 			
-			
+			@Override
+			public List<ContextEntry> getEntriesDownTheControls() {
+				List<ContextEntry> allEntries = new ArrayList<>();
+				List<ContextEntry> entries = super.getEntries();
+				if(entries != null) {
+					allEntries.addAll(entries);
+				}
+				if(ces != null) {
+					allEntries.addAll(ces);
+				}
+				return allEntries;
+			}
+
+			@Override
 			public void dropLauncherEntries() {
 				ces.clear();
 			}
 
+			@Override
 			public boolean hasContextEntry() {
 				return ces.size() > 0;
 			}
 		};
-		
-
 		return bc;
 	}
 	
diff --git a/src/main/java/org/olat/core/id/context/StackedBusinessControl.java b/src/main/java/org/olat/core/id/context/StackedBusinessControl.java
index 757124a44039d3287c9c58796cee5cfdb5b08c95..24abe7c0fe111538bf90c8999e86b10b0169fb51 100644
--- a/src/main/java/org/olat/core/id/context/StackedBusinessControl.java
+++ b/src/main/java/org/olat/core/id/context/StackedBusinessControl.java
@@ -104,7 +104,6 @@ public class StackedBusinessControl implements BusinessControl {
 
 	@Override
 	public List<ContextEntry> getEntries() {
-		if(contextEntry == null) new ArrayList<ContextEntry>();
 		List<ContextEntry> entries = new ArrayList<ContextEntry>();
 		if(origBusinessControl != null) {
 			entries.addAll(origBusinessControl.getEntries());
@@ -115,6 +114,11 @@ public class StackedBusinessControl implements BusinessControl {
 		return entries;
 	}
 
+	@Override
+	public List<ContextEntry> getEntriesDownTheControls() {
+		return getEntries();
+	}
+
 	@Override
 	public ContextEntry popLauncherContextEntry() {
 		ContextEntry currentToSpawn = popInternalLaucherContextEntry();
diff --git a/src/main/java/org/olat/core/util/FileUtils.java b/src/main/java/org/olat/core/util/FileUtils.java
index 7faea1d4cfbb61ae04503278a814df78273e9dbf..29f827cdfd1b1a0160a1b002c165991d04b47995 100644
--- a/src/main/java/org/olat/core/util/FileUtils.java
+++ b/src/main/java/org/olat/core/util/FileUtils.java
@@ -833,14 +833,19 @@ public class FileUtils {
 	}
 	
 	public static String normalizeFilename(String name) {
-		String nameFirstPass = name.replace(" ", "_");
-		nameFirstPass = nameFirstPass.replace("\u00C4", "Ae");
-		nameFirstPass = nameFirstPass.replace("\u00D6", "Oe");
-		nameFirstPass = nameFirstPass.replace("\u00DC", "Ue");
-		nameFirstPass = nameFirstPass.replace("\u00E4", "ae");
-		nameFirstPass = nameFirstPass.replace("\u00F6", "oe");
-		nameFirstPass = nameFirstPass.replace("\u00FC", "ue");
-		String nameNormalized = Normalizer.normalize(nameFirstPass, Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+","");
+		String nameFirstPass = name.replace(" ", "_")
+				.replace("\u00C4", "Ae")
+				.replace("\u00D6", "Oe")
+				.replace("\u00DC", "Ue")
+				.replace("\u00E4", "ae")
+				.replace("\u00F6", "oe")
+				.replace("\u00FC", "ue")
+				.replace("\u00DF", "ss")
+				.replace("\u00F8", "o")
+				.replace("\u2205", "o")
+				.replace("\u00E6", "ae");
+		String nameNormalized = Normalizer.normalize(nameFirstPass, Normalizer.Form.NFKD)
+				.replaceAll("\\p{InCombiningDiacriticalMarks}+","");
 		String nameSanitized = nameNormalized.replaceAll("\\W+", "");
 		return nameSanitized;
 	}
diff --git a/src/main/java/org/olat/core/util/io/HttpServletResponseOutputStream.java b/src/main/java/org/olat/core/util/io/HttpServletResponseOutputStream.java
new file mode 100644
index 0000000000000000000000000000000000000000..36a3d3aad81e683bc1c8c94caafdca5926e5df4b
--- /dev/null
+++ b/src/main/java/org/olat/core/util/io/HttpServletResponseOutputStream.java
@@ -0,0 +1,260 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.util.io;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Locale;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 
+ * Initial date: 27.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class HttpServletResponseOutputStream implements HttpServletResponse {
+	
+	private final ServletOutputStream out;
+	
+	public HttpServletResponseOutputStream(OutputStream out) {
+		this.out = new DelegateServletOutputStream(out);
+	}
+
+	@Override
+	public String getCharacterEncoding() {
+		return null;
+	}
+
+	@Override
+	public String getContentType() {
+		return null;
+	}
+
+	@Override
+	public ServletOutputStream getOutputStream() throws IOException {
+		return out;
+	}
+
+	@Override
+	public PrintWriter getWriter() throws IOException {
+		return null;
+	}
+
+	@Override
+	public void setCharacterEncoding(String charset) {
+		//
+	}
+
+	@Override
+	public void setContentLength(int len) {
+		//
+	}
+
+	@Override
+	public void setContentType(String type) {
+		//
+	}
+
+	@Override
+	public void setBufferSize(int size) {
+		//
+	}
+
+	@Override
+	public int getBufferSize() {
+		return 0;
+	}
+
+	@Override
+	public void flushBuffer() throws IOException {
+		//
+	}
+
+	@Override
+	public void resetBuffer() {
+		//
+	}
+
+	@Override
+	public boolean isCommitted() {
+		return false;
+	}
+
+	@Override
+	public void reset() {
+		//
+	}
+
+	@Override
+	public void setLocale(Locale loc) {
+		//
+	}
+
+	@Override
+	public Locale getLocale() {
+		return null;
+	}
+
+	@Override
+	public void addCookie(Cookie cookie) {
+		//
+	}
+
+	@Override
+	public boolean containsHeader(String name) {
+		return false;
+	}
+
+	@Override
+	public String encodeURL(String url) {
+		return null;
+	}
+
+	@Override
+	public String encodeRedirectURL(String url) {
+		return null;
+	}
+
+	@Override
+	public String encodeUrl(String url) {
+		return null;
+	}
+
+	@Override
+	public String encodeRedirectUrl(String url) {
+		return null;
+	}
+
+	@Override
+	public void sendError(int sc, String msg) throws IOException {
+		//
+	}
+
+	@Override
+	public void sendError(int sc) throws IOException {
+		//
+	}
+
+	@Override
+	public void sendRedirect(String location) throws IOException {
+		//
+	}
+
+	@Override
+	public void setDateHeader(String name, long date) {
+		//
+	}
+
+	@Override
+	public void addDateHeader(String name, long date) {
+		//
+	}
+
+	@Override
+	public void setHeader(String name, String value) {
+		//
+	}
+
+	@Override
+	public void addHeader(String name, String value) {
+		//
+	}
+
+	@Override
+	public void setIntHeader(String name, int value) {
+		//
+	}
+
+	@Override
+	public void addIntHeader(String name, int value) {
+		//
+	}
+
+	@Override
+	public void setStatus(int sc) {
+		//
+	}
+
+	@Override
+	public void setStatus(int sc, String sm) {
+		//
+	}
+
+	@Override
+	public int getStatus() {
+		return 0;
+	}
+
+	@Override
+	public String getHeader(String name) {
+		return null;
+	}
+
+	@Override
+	public Collection<String> getHeaders(String name) {
+		return Collections.emptyList();
+	}
+
+	@Override
+	public Collection<String> getHeaderNames() {
+		return Collections.emptyList();
+	}
+	
+	public static class DelegateServletOutputStream extends ServletOutputStream {
+		
+		private final OutputStream out;
+		
+		public DelegateServletOutputStream(OutputStream out) {
+			this.out = out;
+		}
+
+		@Override
+		public void write(int b) throws IOException {
+			out.write(b);
+		}
+
+		@Override
+		public void write(byte[] b) throws IOException {
+			out.write(b);
+		}
+
+		@Override
+		public void write(byte[] b, int off, int len) throws IOException {
+			out.write(b, off, len);
+		}
+
+		@Override
+		public void flush() throws IOException {
+			out.flush();
+		}
+
+		@Override
+		public void close() throws IOException {
+			out.close();
+		}
+	}
+}
diff --git a/src/main/java/org/olat/search/service/document/file/utils/ShieldInputStream.java b/src/main/java/org/olat/core/util/io/ShieldInputStream.java
similarity index 97%
rename from src/main/java/org/olat/search/service/document/file/utils/ShieldInputStream.java
rename to src/main/java/org/olat/core/util/io/ShieldInputStream.java
index 9a8c7c73dcf89875f0979a04c887c1881d20b386..9b9914bd8eda5f8cc0847e8bd459112b98dbfe0e 100644
--- a/src/main/java/org/olat/search/service/document/file/utils/ShieldInputStream.java
+++ b/src/main/java/org/olat/core/util/io/ShieldInputStream.java
@@ -17,7 +17,7 @@
  * frentix GmbH, http://www.frentix.com
  * <p>
  */
-package org.olat.search.service.document.file.utils;
+package org.olat.core.util.io;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/src/main/java/org/olat/core/util/io/ShieldOutputStream.java b/src/main/java/org/olat/core/util/io/ShieldOutputStream.java
new file mode 100644
index 0000000000000000000000000000000000000000..6231e36a1b743cc8a8df58ecb05ca2a6080e8a90
--- /dev/null
+++ b/src/main/java/org/olat/core/util/io/ShieldOutputStream.java
@@ -0,0 +1,64 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.util.io;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.zip.ZipOutputStream;
+
+/**
+ * 
+ * Initial date: 27.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class ShieldOutputStream extends OutputStream {
+	
+	private final ZipOutputStream out;
+	
+	public ShieldOutputStream(ZipOutputStream out) {
+		this.out = out;
+	}
+
+	@Override
+	public void write(int b) throws IOException {
+		out.write(b);
+	}
+
+	@Override
+	public void write(byte[] b) throws IOException {
+		out.write(b);
+	}
+
+	@Override
+	public void write(byte[] b, int off, int len) throws IOException {
+		out.write(b, off, len);
+	}
+
+	@Override
+	public void close() throws IOException {
+		//
+	}
+
+	@Override
+	public void flush() throws IOException {
+		out.flush();
+	}
+}
diff --git a/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java b/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java
index e6a7d23eaeba4e6892df67837d7ebaee74b66966..1f6b681af7e2cff59cc56b551a56b7dc17feaea6 100644
--- a/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java
+++ b/src/main/java/org/olat/core/util/openxml/HTMLToOpenXMLHandler.java
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.Deque;
 import java.util.List;
 
+import org.olat.core.util.openxml.OpenXMLDocument.ListParagraph;
 import org.olat.core.util.openxml.OpenXMLDocument.Style;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -50,8 +51,9 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 	private List<Node> content = new ArrayList<Node>();
 	private Deque<StyleStatus> styleStack = new ArrayDeque<StyleStatus>();
 	
-	private Element currentParagraph;
 	private Table currentTable;
+	private Element currentParagraph;
+	private ListParagraph currentListParagraph;
 	
 	public HTMLToOpenXMLHandler(OpenXMLDocument document, Element paragraph) {
 		this.factory = document;
@@ -76,6 +78,18 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 		return currentParagraph;
 	}
 	
+	private Element getCurrentListParagraph(boolean create) {
+		if(create || currentParagraph == null) {
+			//flush the text
+			if(textBuffer != null) {
+				flushText();
+				addContent(currentParagraph);
+			}
+			currentParagraph = factory.createListParagraph(currentListParagraph);
+		}
+		return currentParagraph;
+	}
+	
 	private void closeParagraph() {
 		flushText();
 		currentParagraph = addContent(currentParagraph);
@@ -229,6 +243,8 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 				styles = setTextPreferences(cssStyles);
 			}
 			styleStack.add(new StyleStatus(tag, styles));
+		} else if("br".equals(tag)) {
+			closeParagraph();
 		} else if("em".equalsIgnoreCase(tag)) {
 			flushText();
 			Style[] styles = setTextPreferences(Style.italic);
@@ -249,6 +265,10 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 			int colspan = OpenXMLUtils.getSpanAttribute("colspan", attributes);
 			int rowspan = OpenXMLUtils.getSpanAttribute("rowspan", attributes);
 			currentTable.addCellEl(colspan, rowspan);
+		} else if("ul".equals(tag) || "ol".equals(tag)) {
+			currentListParagraph = factory.createListParagraph();
+		} else if("li".equals(tag)) {
+			getCurrentListParagraph(true);
 		}
 	}
 
@@ -282,6 +302,8 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 			if(currentTable != null) {
 				content.add(currentTable.getTableEl());
 			}
+			currentTable = null;
+			currentParagraph = null;
 		} else if("td".equals(tag) || "th".equals(tag)) {
 			flushText();
 			currentParagraph = addContent(currentParagraph);
@@ -292,6 +314,11 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 			textBuffer = null;
 			latex = false;
 			currentParagraph = null;
+		} else if("ul".equals(tag) || "ol".equals(tag)) {
+			closeParagraph();
+			currentListParagraph = null;
+		} else if("li".equals(tag)) {
+			//do nothing
 		}
 	}
 	
@@ -452,6 +479,5 @@ public class HTMLToOpenXMLHandler extends DefaultHandler {
 		public void unDone() {
 			done = false;
 		}
-		
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java
index 98a2eeb95ee1a8620f5ddf6b8faca897d9c5b2fb..a21520ebfaa9cb144840d7fc1e96247cb0dbc47c 100644
--- a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java
+++ b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java
@@ -48,10 +48,10 @@ import org.olat.core.commons.services.image.Size;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.io.ShieldInputStream;
 import org.olat.core.util.vfs.LocalFileImpl;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
-import org.olat.search.service.document.file.utils.ShieldInputStream;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -80,11 +80,13 @@ public class OpenXMLDocument {
 	private final OpenXMLStyles styles;
 	
 	private int currentId = 4;
+	private int currentNumberingId = 0;
 	private String documentHeader;
 	private Map<File, DocReference> fileToImagesMap = new HashMap<File, DocReference>();
 	
-	private List<Node> cursorStack = new ArrayList<Node>();
-	private List<HeaderReference> headers = new ArrayList<HeaderReference>();
+	private List<Node> cursorStack = new ArrayList<>();
+	private List<ListParagraph> numbering = new ArrayList<>();
+	private List<HeaderReference> headers = new ArrayList<>();
 	
 	private VFSContainer mediaContainer;
 	
@@ -131,6 +133,10 @@ public class OpenXMLDocument {
 		return headers;
 	}
 	
+	public Collection<ListParagraph> getNumbering() {
+		return numbering;
+	}
+	
 	public Node getCursor() {
 		return cursorStack.get(cursorStack.size() - 1);
 	}
@@ -639,6 +645,104 @@ public class OpenXMLDocument {
 		return cellEl;	
 	}
 	
+	public ListParagraph createListParagraph() {
+		int abstractNumberingId = currentNumberingId++;
+		int numberingId = currentNumberingId++;
+		ListParagraph lp = new ListParagraph(abstractNumberingId, numberingId);
+		numbering.add(lp);
+		return lp;
+	}
+	
+	/*
+<w:p>
+  <w:pPr>
+    <w:pStyle w:val="ListParagraph"/>
+    <w:numPr>
+      <w:ilvl w:val="0"/>
+      <w:numId w:val="1"/>
+    </w:numPr>
+  </w:pPr>
+  <w:r>
+    <w:t>One</w:t>
+  </w:r>
+</w:p>
+	 */
+	public Element createListParagraph(ListParagraph def) {
+		Element paragraphEl = document.createElement("w:p");
+		Element listEl = (Element)paragraphEl.appendChild(document.createElement("w:pPr"));
+		Element pStyleEl = (Element)listEl.appendChild(document.createElement("w:pStyle"));
+		pStyleEl.setAttribute("w:val", "ListParagraph");
+		Element numberingEl = (Element)listEl.appendChild(document.createElement("w:numPr"));
+		Element ilvlEl = (Element)numberingEl.appendChild(document.createElement("w:ilvl"));
+		ilvlEl.setAttribute("w:val", "0");
+		Element numIdEl = (Element)numberingEl.appendChild(document.createElement("w:numId"));
+		numIdEl.setAttribute("w:val", Integer.toString(def.getNumId()));
+		return paragraphEl;
+	}
+	
+	/*
+<w:abstractNum w:abstractNumId="0">
+  <w:lvl w:ilvl="0">
+    <w:start w:val="1"/>
+    <w:numFmt w:val="bullet"/>
+    <w:lvlText w:val="o"/>
+    <w:lvlJc w:val="left"/>
+    <w:pPr>
+      <w:ind w:left="720"
+             w:hanging="360"/>
+    </w:pPr>
+    <w:rPr>
+      <w:rFonts w:ascii="Symbol"
+                w:hAnsi="Symbol"
+                w:hint="default"/>
+    </w:rPr>
+  </w:lvl>
+	 */
+	public Element createAbstractNumbering(ListParagraph def, Document doc) {
+		Element numEl = doc.createElement("w:abstractNum");
+		numEl.setAttribute("w:abstractNumId", Integer.toString(def.getAbstractNumId()));
+		numEl.appendChild(createNumberingLevel(doc));
+		return numEl;
+	}
+	
+	private Element createNumberingLevel(Document numberingDoc) {
+		Element levelEl = numberingDoc.createElement("w:lvl");
+		levelEl.setAttribute("w:ilvl", "0");
+		Element startEl = (Element)levelEl.appendChild(numberingDoc.createElement("w:start"));
+		startEl.setAttribute("w:val", "1");
+		Element numFmtEl = (Element)levelEl.appendChild(numberingDoc.createElement("w:numFmt"));
+		numFmtEl.setAttribute("w:val", "bullet");
+		Element lvlTextEl = (Element)levelEl.appendChild(numberingDoc.createElement("w:lvlText"));
+		lvlTextEl.setAttribute("w:val", Character.toString((char)0xB7));//bullet
+		Element lvlJcEl = (Element)levelEl.appendChild(numberingDoc.createElement("w:lvlJc"));
+		lvlJcEl.setAttribute("w:val", "left");
+		//pPr
+		Element pPrEl = (Element)levelEl.appendChild(numberingDoc.createElement("w:pPr"));
+		Element indEl = (Element)pPrEl.appendChild(numberingDoc.createElement("w:ind"));
+		indEl.setAttribute("w:left", "720");
+		indEl.setAttribute("w:hanging", "360");
+		//rPr
+		Element rPrEl = (Element)levelEl.appendChild(numberingDoc.createElement("w:rPr"));
+		Element rFontsEl = (Element)rPrEl.appendChild(numberingDoc.createElement("w:rFonts"));
+		rFontsEl.setAttribute("w:ascii", "Symbol");
+		rFontsEl.setAttribute("w:hAnsi", "Symbol");
+		rFontsEl.setAttribute("w:hint", "default");
+		return levelEl;
+	}
+	
+	/*
+  <w:num w:numId="1">
+    <w:abstractNumId w:val="0"/>
+  </w:num>
+	 */
+	public Element createNumbering(ListParagraph def, Document numberingDoc) {
+		Element numEl = numberingDoc.createElement("w:num");
+		numEl.setAttribute("w:numId", Integer.toString(def.getNumId()));
+		Element abstractNumEl = (Element)numEl.appendChild(numberingDoc.createElement("w:abstractNumId"));
+		abstractNumEl.setAttribute("w:val", Integer.toString(def.getAbstractNumId()));
+		return numEl;
+	}
+	
 /*
 <w:shd w:val="solid" w:color="E9EAF2" w:fill="auto" />
  */
@@ -992,4 +1096,23 @@ public class OpenXMLDocument {
 			return header;
 		}
 	}
+	
+	public static class ListParagraph {
+		
+		private final int abstractNumId;
+		private final int numId;
+		
+		public ListParagraph(int abstractNumId, int numId) {
+			this.abstractNumId = abstractNumId;
+			this.numId = numId;
+		}
+		
+		public int getAbstractNumId() {
+			return abstractNumId;
+		}
+		
+		public int getNumId() {
+			return numId;
+		}
+	}
 }
diff --git a/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java b/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java
index 2d05fbbc7b4d4d8f4516a971092da8486ab7d3fc..725680cb167cfa351f19e34f81fc0ec233232cf3 100644
--- a/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java
+++ b/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.Charset;
+import java.util.Collection;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
@@ -31,9 +32,11 @@ import org.apache.commons.io.IOUtils;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.openxml.OpenXMLDocument.HeaderReference;
+import org.olat.core.util.openxml.OpenXMLDocument.ListParagraph;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
 /**
@@ -101,6 +104,12 @@ public class OpenXMLDocumentWriter {
 		//word/media
 		appendMedias(out, document);
 		
+		//word/numbering
+		ZipEntry numberingDocument = new ZipEntry("word/numbering.xml");
+		out.putNextEntry(numberingDocument);
+		appendNumbering(out, document);
+		out.closeEntry();
+		
 		//word/document.xml
 		ZipEntry wordDocument = new ZipEntry("word/document.xml");
 		out.putNextEntry(wordDocument);
@@ -138,6 +147,28 @@ public class OpenXMLDocumentWriter {
 		}
 	}
 	
+	private void appendNumbering(ZipOutputStream out, OpenXMLDocument document) {
+		try(InputStream in = OpenXMLDocumentWriter.class.getResourceAsStream("_resources/numbering.xml")) {
+			Collection<ListParagraph> numberingList = document.getNumbering();
+			if(numberingList != null && numberingList.size() > 0) {
+				Document numberingDoc = OpenXMLUtils.createDocument(in);
+				NodeList numberingElList = numberingDoc.getElementsByTagName("w:numbering");
+				Node numberingEl = numberingElList.item(0);
+				for(ListParagraph numberingItem : numberingList) {
+					Element abstractEl = document.createAbstractNumbering(numberingItem, numberingDoc);
+					numberingEl.appendChild(abstractEl);
+					Element numEl = document.createNumbering(numberingItem, numberingDoc);
+					numberingEl.appendChild(numEl);
+				}
+				OpenXMLUtils.writeTo(numberingDoc, out, false);
+			} else {
+				IOUtils.copy(in, out);
+			}
+		} catch (IOException e) {
+			log.error("", e);
+		}
+	}
+	
 	private void appendPredefinedStyles(ZipOutputStream out, OpenXMLStyles styles) {
 		try(InputStream in = OpenXMLDocumentWriter.class.getResourceAsStream("_resources/styles.xml")) {
 			if(styles != null) {
@@ -159,12 +190,13 @@ public class OpenXMLDocumentWriter {
 	/*
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
-  <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings" Target="settings.xml"/>
-  <Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings" Target="webSettings.xml"/>
-  <Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable" Target="fontTable.xml"/>
-  <Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>
+  <Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings" Target="settings.xml"/>
+  <Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/webSettings" Target="webSettings.xml"/>
+  <Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable" Target="fontTable.xml"/>
+  <Relationship Id="rId7" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/>
   <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
   <Relationship Id="rId2" Type="http://schemas.microsoft.com/office/2007/relationships/stylesWithEffects" Target="stylesWithEffects.xml"/>
+  <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" Target="numbering.xml" />
 </Relationships>
 	 */
 	protected void createDocumentRelationships(OutputStream out, OpenXMLDocument document) {
@@ -175,6 +207,8 @@ public class OpenXMLDocumentWriter {
 
 			addRelationship("rId1", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles",
 					"styles.xml", relationshipsEl, doc);
+			addRelationship("rId2", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering",
+					"numbering.xml", relationshipsEl, doc);
 			
 			if(document != null) {
 				for(DocReference docRef:document.getImages()) {
@@ -315,6 +349,7 @@ public class OpenXMLDocumentWriter {
 		createContentTypesOverride("/docProps/core.xml", CT_CORE_PROPERTIES, typesEl, doc);
 		createContentTypesOverride("/word/document.xml", CT_WORD_DOCUMENT, typesEl, doc);
 		createContentTypesOverride("/word/styles.xml", CT_STYLES, typesEl, doc);
+		createContentTypesOverride("/word/numbering.xml", CT_NUMBERING, typesEl, doc);
 		
 		for(HeaderReference headerRef:document.getHeaders()) {
 			createContentTypesOverride("/word/" + headerRef.getFilename(), CT_HEADER, typesEl, doc);
diff --git a/src/main/java/org/olat/core/util/openxml/_resources/numbering.xml b/src/main/java/org/olat/core/util/openxml/_resources/numbering.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b29a0088f3bd8d37ddde0179f88447e6c4d16f61
--- /dev/null
+++ b/src/main/java/org/olat/core/util/openxml/_resources/numbering.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<w:numbering xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14"></w:numbering>
\ No newline at end of file
diff --git a/src/main/java/org/olat/core/util/openxml/_resources/styles.xml b/src/main/java/org/olat/core/util/openxml/_resources/styles.xml
index 00978bd4d6fd651f69ee6db5609d93afddee0ce8..0fd8bf0801e4664edc7c9619b03ef4e0639b0074 100644
--- a/src/main/java/org/olat/core/util/openxml/_resources/styles.xml
+++ b/src/main/java/org/olat/core/util/openxml/_resources/styles.xml
@@ -365,6 +365,14 @@
 		<w:semiHidden />
 		<w:unhideWhenUsed />
 	</w:style>
+	<w:style w:type="paragraph" w:styleId="ListParagraph">
+		<w:name w:val="List Paragraph"/>
+  		<w:basedOn w:val="Normal"/>
+		<w:pPr>
+			<w:ind w:left="720"/>
+			<w:contextualSpacing/>
+		</w:pPr>
+	</w:style>
 	<w:style w:type="character" w:customStyle="1" w:styleId="ooHeading1Zeichen">
 		<w:name w:val="Ãœberschrift 1 Zeichen" />
 		<w:basedOn w:val="Absatzstandardschriftart" />
diff --git a/src/main/java/org/olat/course/CourseFactory.java b/src/main/java/org/olat/course/CourseFactory.java
index 95e6e2dc145b72c3f842b45f3cea23c1c38563b4..8c2cc01438380f0b5a82b321790eabf90704e8a2 100644
--- a/src/main/java/org/olat/course/CourseFactory.java
+++ b/src/main/java/org/olat/course/CourseFactory.java
@@ -556,11 +556,10 @@ public class CourseFactory extends BasicManager {
 				true, Locale.ENGLISH, exportedCourseZIPFile, exportedCourseZIPFile.getName());
 		
 		re.setSoftkey(softKey);
-		re.setAccess(access);
 		repositoryService.update(re);
 		
 		ICourse course = CourseFactory.loadCourse(re.getOlatResource());
-		CourseFactory.publishCourse(course, RepositoryEntry.ACC_USERS, false,  null, Locale.ENGLISH);
+		CourseFactory.publishCourse(course, access, false,  null, Locale.ENGLISH);
 		return re;
 	}
 
diff --git a/src/main/java/org/olat/course/_spring/courseContext.xml b/src/main/java/org/olat/course/_spring/courseContext.xml
index 1b0a28e513d127dca4bfa4ec010f63c96d30b73b..8d17aadacfbab1dd3a65bec98f6cf837c8911ae0 100644
--- a/src/main/java/org/olat/course/_spring/courseContext.xml
+++ b/src/main/java/org/olat/course/_spring/courseContext.xml
@@ -137,7 +137,7 @@
 		--> 
 	</bean>
 	
-	<!-- Business group admin. panel -->
+	<!-- Certificates admin. panel -->
 	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
 		<property name="order" value="8206" />
 		<property name="actionController">	
diff --git a/src/main/java/org/olat/course/assessment/AssessmentEditController.java b/src/main/java/org/olat/course/assessment/AssessmentEditController.java
index 8ec63ee80460935080a7d26be4609e53e6d809d6..9ac8de7219869dcb208d809565b1330685f15968 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentEditController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentEditController.java
@@ -75,6 +75,7 @@ public class AssessmentEditController extends BasicController {
 	
 	private VelocityContainer detailView;
 	private AssessmentForm assessmentForm;
+	private Controller subDetailsController;
 	private Controller detailsEditController;
 	private AssessedIdentityWrapper assessedIdentityWrapper;
 	private AssessableCourseNode courseNode;
@@ -158,10 +159,11 @@ public class AssessmentEditController extends BasicController {
 			detailView.contextPut("courseNodeCss", CourseNodeFactory.getInstance().getCourseNodeConfigurationEvenForDisabledBB(courseNode.getType()).getIconCSSClass());
 
 			// push infos about users groups
-			List<BusinessGroup> participantGroups = course.getCourseEnvironment().getCourseGroupManager().getParticipatingBusinessGroups(
-					assessedIdentity);
+			List<BusinessGroup> participantGroups = course.getCourseEnvironment().getCourseGroupManager()
+					.getParticipatingBusinessGroups(assessedIdentity);
 			final Collator collator = Collator.getInstance(ureq.getLocale());
 			Collections.sort(participantGroups, new Comparator<BusinessGroup>() {
+				@Override
 				public int compare(BusinessGroup a, BusinessGroup b) {
 					return collator.compare(a.getName(), b.getName());
 				}
@@ -199,28 +201,34 @@ public class AssessmentEditController extends BasicController {
 			detailView.contextPut("titleVisible", new Boolean(visible));
 		}
 	}
-	
 
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
 	 */
+	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
-		if (source == backLink){
-			releaseEditorLock();
-			fireEvent(ureq, Event.CANCELLED_EVENT);
+		if (source == backLink) {
+			if(subDetailsController != null) {
+				detailView.remove(subDetailsController.getInitialComponent());
+				removeAsListenerAndDispose(subDetailsController);
+				subDetailsController = null;
+			} else {
+				releaseEditorLock();
+				fireEvent(ureq, Event.CANCELLED_EVENT);
+			}
 		} else if (source == hideLogButton) {
 			detailView.contextPut("showLog", Boolean.FALSE);
 		} else if (source == showLogButton) {
 			detailView.contextPut("showLog", Boolean.TRUE);
 		}
-		
 	}
 
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 	 *      org.olat.core.gui.control.Controller, org.olat.core.gui.control.Event)
 	 */
+	@Override
 	public void event(UserRequest ureq, Controller source, Event event) {
 		if (source == assessmentForm) {
 			if (event == Event.CANCELLED_EVENT) {
@@ -235,11 +243,18 @@ public class AssessmentEditController extends BasicController {
 				fireEvent(ureq, Event.DONE_EVENT);
 			}
 		} else if (source == detailsEditController) {
-			//fxdiff FXOLAT-108: reset SCORM test
+			// reset SCORM test
 			if(event == Event.CHANGED_EVENT) {
 				assessmentForm.reloadData();
 			} else if(event == Event.DONE_EVENT) {
 				fireEvent(ureq, Event.DONE_EVENT);
+			} else if(event instanceof OpenSubDetailsEvent) {
+				removeAsListenerAndDispose(subDetailsController);
+				
+				OpenSubDetailsEvent detailsEvent = (OpenSubDetailsEvent)event;
+				subDetailsController = detailsEvent.getSubDetailsController();
+				listenTo(subDetailsController);
+				detailView.put("subDetailsCmp", subDetailsController.getInitialComponent());
 			}
 		} else if (source == alreadyLockedDialogController) {
 			if (event == Event.CANCELLED_EVENT || DialogBoxUIFactory.isOkEvent(event)) {
diff --git a/src/main/java/org/olat/course/assessment/AssessmentMainController.java b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
index f83a09f1e9ea86dd3641c0f6437a3bbba37787d8..f4616b42fe2f86ad280b61fbfefeda43fb6e2d5c 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentMainController.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentMainController.java
@@ -647,6 +647,7 @@ public class AssessmentMainController extends MainLayoutBasicController implemen
 			CertificateLight certificate = certificatesManager.getCertificateLightById(certificateKey);
 			((AssessedIdentitiesTableDataModel)userListCtr
 					.getTableDataModel()).putCertificate(certificate);
+			userChoose.setDirty(true);
 		}
 	}
 	
diff --git a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
index 8cf6833e8a2a40078b8adad30a3966121023c0f7..00df18a5097ff289d4bdf0ffdbf6f1e443ad286d 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentModeManager.java
@@ -26,6 +26,7 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 
 import org.olat.basesecurity.IdentityRef;
+import org.olat.course.assessment.model.SearchAssessmentModeParams;
 import org.olat.group.BusinessGroup;
 import org.olat.group.area.BGArea;
 import org.olat.repository.RepositoryEntry;
@@ -66,6 +67,19 @@ public interface AssessmentModeManager {
 	
 	public AssessmentMode getAssessmentModeById(Long key);
 	
+	/**
+	 * Search the whole assessment modes on the system.
+	 * 
+	 * @param params
+	 * @return A list of assessment modes
+	 */
+	public List<AssessmentMode> findAssessmentMode(SearchAssessmentModeParams params);
+	
+	/**
+	 * 
+	 * @param entry The course
+	 * @return The list of assessment modes for the specified course
+	 */
 	public List<AssessmentMode> getAssessmentModeFor(RepositoryEntryRef entry);
 	
 	/**
diff --git a/src/main/java/org/olat/course/assessment/AssessmentModule.java b/src/main/java/org/olat/course/assessment/AssessmentModule.java
index cc2e7863dc76057eb3d110bbc82b2fc1421358f7..c6a0cb84ced9d44b7d49d73848058f3e1ecf13c2 100644
--- a/src/main/java/org/olat/course/assessment/AssessmentModule.java
+++ b/src/main/java/org/olat/course/assessment/AssessmentModule.java
@@ -31,17 +31,21 @@ import java.util.List;
 import java.util.Set;
 
 import org.olat.core.commons.services.taskexecutor.TaskExecutorManager;
-import org.olat.core.configuration.Destroyable;
-import org.olat.core.configuration.Initializable;
+import org.olat.core.configuration.AbstractSpringModule;
 import org.olat.core.gui.control.Event;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
+import org.olat.core.util.StringHelper;
+import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.event.GenericEventListener;
 import org.olat.course.CourseFactory;
 import org.olat.course.CourseModule;
 import org.olat.course.ICourse;
 import org.olat.course.Structure;
 import org.olat.course.editor.PublishEvent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
 
 /**
  * Description:<br>
@@ -53,33 +57,37 @@ import org.olat.course.editor.PublishEvent;
  * 
  * @author patrickb
  */
-public class AssessmentModule implements Initializable, Destroyable, GenericEventListener {
+@Service("assessmentModule")
+public class AssessmentModule extends AbstractSpringModule implements GenericEventListener {
 	
 	private static final OLog log = Tracing.createLoggerFor(AssessmentModule.class);
 
 	private List<Long> upcomingWork;
+	
+	@Value("${assessment.mode:enabled}")
+	private String assessmentModeEnabled;
+	
+	@Autowired
 	private CourseModule courseModule;
+	@Autowired
 	private TaskExecutorManager taskExecutorManager;
 	
-	/**
-	 * [used by spring]
-	 */
-	private AssessmentModule(CourseModule courseModule) {
-		this.courseModule = courseModule;
+	@Autowired
+	public AssessmentModule(CoordinatorManager coordinatorManager) {
+		super(coordinatorManager);
 	}
-	
-	/**
-	 * [user by Spring]
-	 * @param taskExecutorManager
-	 */
-	public void setTaskExecutorManager(TaskExecutorManager taskExecutorManager) {
-		this.taskExecutorManager = taskExecutorManager;
+
+	@Override
+	protected void initFromChangedProperties() {
+		updateProperties();
 	}
 
 	/**
 	 * @see org.olat.core.configuration.OLATModule#init(com.anthonyeden.lib.config.Configuration)
 	 */
+	@Override
 	public void init() {
+		updateProperties();
 		upcomingWork = new ArrayList<Long>();
 		/*
 		 * always last step, register for course events
@@ -89,10 +97,15 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 		 * no more code after here!
 		 */
 	}
+	
+	private void updateProperties() {
+		String enabledObj = getStringPropertyValue("assessment.mode", true);
+		if(StringHelper.containsNonWhitespace(enabledObj)) {
+			assessmentModeEnabled = enabledObj;
+		}
+	}
 
-	/**
-	 * @see org.olat.core.configuration.OLATModule#destroy()
-	 */
+	@Override
 	public void destroy() {
 		/*
 		 * first step in destroy, deregister for course events
@@ -113,6 +126,7 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 	 * Called at course publish.
 	 * @see org.olat.core.util.event.GenericEventListener#event(org.olat.core.gui.control.Event)
 	 */
+	@Override
 	public void event(Event event) {
 		if (event instanceof PublishEvent) {
 			PublishEvent pe = (PublishEvent) event;
@@ -186,4 +200,13 @@ public class AssessmentModule implements Initializable, Destroyable, GenericEven
 		}
 		return;
 	}
+
+	public boolean isAssessmentModeEnabled() {
+		return "enabled".equals(assessmentModeEnabled);
+	}
+
+	public void setAssessmentModeEnabled(boolean enabled) {
+		assessmentModeEnabled = enabled ? "enabled" : "disabled";
+		setStringProperty("assessment.mode", assessmentModeEnabled, true);
+	}
 }
diff --git a/src/main/java/org/olat/course/assessment/OpenSubDetailsEvent.java b/src/main/java/org/olat/course/assessment/OpenSubDetailsEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..52dac588f605efa381e7d0f0849cd1570c3a04d7
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/OpenSubDetailsEvent.java
@@ -0,0 +1,44 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment;
+
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.Event;
+
+/**
+ * 
+ * Initial date: 05.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class OpenSubDetailsEvent  extends Event {
+
+	private static final long serialVersionUID = -7305552071364571336L;
+	private final Controller subDetailsController;
+	
+	public OpenSubDetailsEvent(Controller subDetailsController) {
+		super("open-sub-details");
+		this.subDetailsController = subDetailsController;
+	}
+
+	public Controller getSubDetailsController() {
+		return subDetailsController;
+	}
+}
diff --git a/src/main/java/org/olat/course/assessment/_content/detailview.html b/src/main/java/org/olat/course/assessment/_content/detailview.html
index 4a4da3a73989229d0347e76ae365baca930a0580..0cd422136cf2e2d84cb598b950bee4f6476cb12f 100644
--- a/src/main/java/org/olat/course/assessment/_content/detailview.html
+++ b/src/main/java/org/olat/course/assessment/_content/detailview.html
@@ -11,68 +11,72 @@ $r.render("backLink")
 <h4>$r.translate("detailview.title")</h4>
 #end
 
-#if($identityInfosVisible)
-<div class="panel panel-default">
-	<ul class="list-group">
-		<li class="list-group-item">
-			<span><i class="o_icon o_icon_user"> </i> $r.escapeHtml($user.getProperty("firstName", $locale)) $r.escapeHtml($user.getProperty("lastName", $locale))</span>
-		</li>
-		<li class="list-group-item">
-			#if ($user.getProperty("institutionalName", $locale) && $user.getProperty("institutionalName", $locale).length() > 0)
-				#set ($inst = $r.escapeHtml($user.getProperty("institutionalName", $locale)))
+#if($r.available("subDetailsCmp"))
+	$r.render("subDetailsCmp")
+#else
+	#if($identityInfosVisible)
+	<div class="panel panel-default">
+		<ul class="list-group">
+			<li class="list-group-item">
+				<span><i class="o_icon o_icon_user"> </i> $r.escapeHtml($user.getProperty("firstName", $locale)) $r.escapeHtml($user.getProperty("lastName", $locale))</span>
+			</li>
+			<li class="list-group-item">
+				#if ($user.getProperty("institutionalName", $locale) && $user.getProperty("institutionalName", $locale).length() > 0)
+					#set ($inst = $r.escapeHtml($user.getProperty("institutionalName", $locale)))
+				#end
+				#if ($user.getProperty("institutionalUserIdentifier", $locale) && $user.getProperty("institutionalUserIdentifier", $locale).length() > 0)
+					#set ($matnr = $r.escapeHtml($user.getProperty("institutionalUserIdentifier", $locale)))
+				#end
+				<span><i class="o_icon o_icon_mail"> </i> 
+				<a href="mailto:$user.getProperty("email", $locale)">$user.getProperty("email", $locale)</a> 
+				#if ($user.getProperty("institutionalEmail", $locale) && $user.getProperty("institutionalEmail", $locale) != "" && $user.getProperty("email", $locale) != $user.getProperty("institutionalEmail", $locale))
+				 / <a href="mailto:$user.getProperty("institutionalEmail", $locale)">$user.getProperty("institutionalEmail", $locale)</a>
+				#end</span>
+			</li>
+			#if ($inst)
+				<li class="list-group-item"><span><i class="o_icon o_icon_institution"> </i> $inst</span></li>
 			#end
-			#if ($user.getProperty("institutionalUserIdentifier", $locale) && $user.getProperty("institutionalUserIdentifier", $locale).length() > 0)
-				#set ($matnr = $r.escapeHtml($user.getProperty("institutionalUserIdentifier", $locale)))
+			#if ($matnr)
+				<li class="list-group-item"><span>$matnr</span></li>
 			#end
-			<span><i class="o_icon o_icon_mail"> </i> 
-			<a href="mailto:$user.getProperty("email", $locale)">$user.getProperty("email", $locale)</a> 
-			#if ($user.getProperty("institutionalEmail", $locale) && $user.getProperty("institutionalEmail", $locale) != "" && $user.getProperty("email", $locale) != $user.getProperty("institutionalEmail", $locale))
-			 / <a href="mailto:$user.getProperty("institutionalEmail", $locale)">$user.getProperty("institutionalEmail", $locale)</a>
-			#end</span>
-		</li>
-		#if ($inst)
-			<li class="list-group-item"><span><i class="o_icon o_icon_institution"> </i> $inst</span></li>
-		#end
-		#if ($matnr)
-			<li class="list-group-item"><span>$matnr</span></li>
-		#end
-		<li class="list-group-item">
-			<span><i class="o_icon o_icon_group"> </i> $r.translate("participantgroups.title")</span>
-		</li>
-		#if($participantGroups.size() > 0)
-		<li class="list-group-item">
-			#foreach($group in $participantGroups)
-				$r.escapeHtml($group.getName())
-				#if ($velocityCount < $participantGroups.size())
-			,
+			<li class="list-group-item">
+				<span><i class="o_icon o_icon_group"> </i> $r.translate("participantgroups.title")</span>
+			</li>
+			#if($participantGroups.size() > 0)
+			<li class="list-group-item">
+				#foreach($group in $participantGroups)
+					$r.escapeHtml($group.getName())
+					#if ($velocityCount < $participantGroups.size())
+				,
+					#end
 				#end
+			</li>
 			#end
-		</li>
-		#end
-	</ul>
-</div>
-#end
-
-#if ($infoCoach && $infoCoach != "")
-	<div class="o_course_run_disclaimer">
-		<h4>$r.translate("title.infocoach")</h4>
-		$infoCoach
+		</ul>
 	</div>
-#end
-
-#if ($hasDetails)
-	$r.render("detailsController")
-#end
-
-$r.render("assessmentform")
-
-#if($showLog && $log)
-	<div class="o_course_run_log">
-		<h4>$r.translate("log.title")</h4>
-		$r.render("command.hidelog")
-		<pre>$log</pre>
+	#end
+	
+	#if ($infoCoach && $infoCoach != "")
+		<div class="o_course_run_disclaimer">
+			<h4>$r.translate("title.infocoach")</h4>
+			$infoCoach
+		</div>
+	#end
+	
+	#if ($hasDetails)
+		$r.render("detailsController")
+	#end
+	
+	$r.render("assessmentform")
+	
+	#if($showLog && $log)
+		<div class="o_course_run_log">
+			<h4>$r.translate("log.title")</h4>
+			$r.render("command.hidelog")
+			<pre>$log</pre>
+		</div>
+	#elseif ($log)
+		$r.render("command.showlog")
+	#end
 	</div>
-#elseif ($log)
-	$r.render("command.showlog")
-#end
-</div>
+#end
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_pt_BR.properties
index 8be216018f2b9c73b6f99b09ad1ce75cedeec60b..a7062807a4e803df7c82ffe2eaa69d3f8b025f4d 100644
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_pt_BR.properties
@@ -1,6 +1,8 @@
-#Wed Nov 07 18:20:57 CET 2012
+#Fri Jan 23 22:23:29 CET 2015
 action.choose=Selecionar 
 artefact.title=Comprovantes de conclus\u00E3o para curso {0}
+assessment.testresults.finished=<font color\="green">Avalia\u00E7\u00E3o conclu\u00EDda</font>
+assessment.testresults.open=<font color\="orange">Avalia\u00E7\u00E3o pendente</font>
 assessmentLock=Esta avalia\u00E7\u00E3o est\u00E1 sendo modificada pelo usu\u00E1rio {0} ({1}) e est\u00E1 bloqueada. Favor tentar novamente mais tarde. 
 chelp.assess1=Por meio da ferramenta da avalia\u00E7\u00E3o \u00E9 poss\u00EDvel avaliar elementos como <i>$org.olat.course.nodes\:title_iqtest</i>, <i>$org.olat.course.nodes\:title_ms</i> e <i>$org.olat.course.nodes\:title_ta</i> ou voc\u00EA pode modificar avalia\u00E7\u00F5es j\u00E1 existentes.
 chelp.assess1a=Por favor note que se inscrever nesse servi\u00E7o de notifica\u00E7\u00E3o n\u00E3o inclui qualquer informa\u00E7\u00E3o sobre as j\u00E1 tarefas enviadas. Voc\u00EA s\u00F3 ser\u00E1 notificado no caso de resultados de novos testes.
@@ -18,14 +20,19 @@ cmd.filterCourseNodes=Filtrar elementos do Curso
 cmd.filterGroups=Filtrar grupos
 cmd.showAllCourseNodes=Exibir todos elementos do Curso 
 cmd.showAllGroups=Exibir todos grupos 
+cmd.showOnyxReporter=Pontua\u00E7\u00E3o total
 column=Coluna {0}
 command.closeassessment=Fechar
 command.hidelog=Ocultar hist\u00F3rico
 command.showlog=Exibir hist\u00F3rico
 command.start.bulkwizard=Iniciar avalia\u00E7\u00E3o em massa
+confirm.certificate.description=Criar novos certificados para os seguintes usu\u00E1rios\: {0}
+confirm.certificate.description.warning=Voc\u00EA est\u00E1 tentando criar novos certificados para os seguintes usu\u00E1rios\: {0}. O per\u00EDodo de re-certifica\u00E7\u00E3o ainda n\u00E3o terminou para os seguintes usu\u00E1rios\: {1}. Voc\u00EA deseja continuar assim mesmo?
+confirm.certificate.title=Criar certificados
 contact.link=Contato
 course=Curso\:
 course.link=Abrir curso
+create.certificate=Criar certificado
 date=Data\:
 detailview.title=Visualizar detalhes da avalia\u00E7\u00E3o
 efficiencyStatements.cannot.delete=Voc\u00EA n\u00E3o pode excluir o comprovante de realiza\u00E7\u00E3o de um curso existente.
@@ -89,6 +96,7 @@ identityoverview.title=Vis\u00E3o geral da avalia\u00E7\u00E3o
 index.intro=Por meio desta ferramenta voc\u00EA pode acessar seus participantes do curso. Voc\u00EA pode ver resultados de testes ou avalia\u00E7\u00F5es e modific\u00E1-los.<p>Escolher um t\u00F3pico na esquerda para iniciar.
 index.noAssessableNodes=Nenhuma avalia\u00E7\u00E3o pode ser realizada desde que n\u00E3o h\u00E1 nenhum elemento de curso  que possa ser avaliado neste curso. Iniciar o editor do curso e adicionar um elemento de curso que possa ser avaliado \u00E0 estrutura do curso (por exemplo teste).
 index.notifications.assessment=Notifica\u00E7\u00E3o referente novos resultados de teste deste curso\: 
+index.notifications.certificate=Certificados gerados
 index.notifications.title=Servi\u00E7o de notifica\u00E7\u00E3o
 index.slow=Favor notar que leva tempo para exibir as modifica\u00E7\u00F5es da ferramente de avalia\u00E7\u00E3o. Favor, n\u00E3o usar a tecla voltar ou carregar novamente.
 index.title=Ferramente de avalia\u00E7\u00E3o
@@ -110,6 +118,7 @@ menu.nodefocus=Por estrutura de curso
 menu.nodefocus.alt=Selecionar uma estrutura de curso para obter avalia\u00E7\u00F5es deste elemento.
 menu.userfocus=Por usu\u00E1rio 
 menu.userfocus.alt=Selecionar um usu\u00E1rio para obter an\u00E1lise de suas avalia\u00E7\u00F5es.
+no.testresults=<font color\="red">N\u00E3o h\u00E1 resultados dispon\u00EDveis</font>
 nodechoose.intro=Escolher um dos elementos de curso abaixo. Voc\u00EA poder\u00E1 ent\u00E3o dar uma olhada nas avalia\u00E7\u00F5es destes elementos ou modific\u00E1-las. 
 nodechoose.title=Sele\u00E7\u00E3o de elemento de curso
 nodesoverview.emptylist=Nenhum elemento de curso que possa ser avaliado foi encontrado.
@@ -125,14 +134,18 @@ notifications.entry.scorm=Teste SCORM
 notifications.entry.ta=Tarefa
 notifications.header=Novos resultados de testes no curso "{0}"
 notifications.title=Curso "{0}"
+onyxreporter.error=Erro\: o rep\u00F3rter Onyx n\u00E3o responde\!
 participantgroups.noGroups=Este usu\u00E1rio n\u00E3o participa de nenhum grupo.
 participantgroups.title=Participantes em grupos 
 passed.false=<span class\="o_state o_failed"><i class\="o_icon o_icon_failed"> </i> Falhou</span>
 passed.true=<span class\="o_state o_passed"><i class\="o_icon o_icon_passed"> </i> Passou</span>
+select.one.user.warning=Por favor selecione pelo menos um usu\u00E1rio
 table.action.delete=Apagar
 table.action.launchcourse=Iniciar curso
 table.action.select=Selecionar
+table.action.selectparticipant=Selecionar os participantes
 table.action.show=Detalhes
+table.action.showOnyxReporter=Mostrar
 table.add.as.artefact=como artefato
 table.group.context=Contexto do grupo
 table.group.desc=Descri\u00E7\u00E3o
@@ -140,6 +153,7 @@ table.group.name=Nome do grupo
 table.header.action=A\u00E7\u00E3o
 table.header.artefact=ePortfolio
 table.header.attempts=Tentativas
+table.header.certificate=Certificado
 table.header.course=Nome do curso
 table.header.delete=Apagar
 table.header.details=Detalhes
@@ -151,10 +165,13 @@ table.header.max=Max.
 table.header.min=Min.
 table.header.name=Nome
 table.header.node=Elemento de curso
+table.header.overallselect=Pontua\u00E7\u00E3o total
 table.header.passed=Passou
 table.header.score=Pontua\u00E7\u00E3o
 table.header.show=Exibi\u00E7\u00E3o
+table.header.singleselect=Pontua\u00E7\u00E3o \u00FAnica
 table.header.status=Status
+table.header.surveyselect=Avalia\u00E7\u00E3o estat\u00EDstica
 table.header.type=Tipo
 title.infocoach=Informa\u00E7\u00E3o sobre avalia\u00E7\u00E3o
 tool.name=Ferramenta de avalia\u00E7\u00E3o
@@ -189,13 +206,3 @@ wizard.step5.title=Indicar a coluna para suas avalia\u00E7\u00F5es
 wizard.step6.feedback.column=Feedback
 wizard.step6.howto=A coluna "Feedback" mostra se suas avalia\u00E7\u00F5es foram completadas com sucesso.
 wizard.step6.title=Avalia\u00E7\u00E3o completa
-assessment.testresults.finished=<font color\="green">Avalia\u00E7\u00E3o conclu\u00EDda</font>
-assessment.testresults.open=<font color\="orange">Avalia\u00E7\u00E3o pendente</font>
-cmd.showOnyxReporter=Pontua\u00E7\u00E3o total
-no.testresults=<font color\="red">N\u00E3o h\u00E1 resultados dispon\u00EDveis</font>
-onyxreporter.error=Erro\: o rep\u00F3rter Onyx n\u00E3o responde\!
-table.action.selectparticipant=Selecionar os participantes
-table.action.showOnyxReporter=Mostrar
-table.header.overallselect=Pontua\u00E7\u00E3o total
-table.header.singleselect=Pontua\u00E7\u00E3o \u00FAnica
-table.header.surveyselect=Avalia\u00E7\u00E3o estat\u00EDstica
diff --git a/src/main/java/org/olat/course/assessment/_spring/assessmentContext.xml b/src/main/java/org/olat/course/assessment/_spring/assessmentContext.xml
index 1043dfa0f626a22e9a66df7ae763391796ee5246..c94ace250abcf9cc98301d5234e7a931c3485a4c 100644
--- a/src/main/java/org/olat/course/assessment/_spring/assessmentContext.xml
+++ b/src/main/java/org/olat/course/assessment/_spring/assessmentContext.xml
@@ -8,12 +8,7 @@
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context.xsd">
 
-	<context:component-scan base-package="org.olat.course.assessment.manager" />
-
-	<bean id="assessmentModule" class="org.olat.course.assessment.AssessmentModule" init-method="init" destroy-method="destroy" >
-		<constructor-arg index="0" ref="courseModule" />
-		<property name="taskExecutorManager" ref="taskExecutorManager"/>
-	</bean>
+	<context:component-scan base-package="org.olat.course.assessment" />
 
 	<bean id="org.olat.course.assessment.EfficiencyStatementManager" class="org.olat.course.assessment.EfficiencyStatementManager">
 		<property name="dbInstance" ref="database"/>
@@ -23,11 +18,31 @@
 	
 	<bean id="assessmentNotificationsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
 	    <property name="jobDetail" ref="assessmentNotificationsJob" />
-	    <property name="cronExpression" value="55 * * * * ?" />
+	    <property name="cronExpression" value="1 * * * * ?" />
 	    <property name="startDelay" value="55000" />
 	</bean>
 	
 	<bean id="assessmentNotificationsJob" class="org.springframework.scheduling.quartz.JobDetailBean" lazy-init="true">
 		<property name="jobClass" value="org.olat.course.assessment.manager.AssessmentModeNotificationJob" />
 	</bean>
+	
+	<!-- Assessment modes admin panel -->
+	<bean class="org.olat.core.extensions.action.GenericActionExtension" init-method="initExtensionPoints">
+		<property name="order" value="8206" />
+		<property name="actionController">	
+			<bean class="org.olat.core.gui.control.creator.AutoCreator" scope="prototype">
+				<property name="className" value="org.olat.course.assessment.ui.AssessmentModeAdminController"/>
+			</bean>
+		</property>
+		<property name="navigationKey" value="certificates" />
+		<property name="i18nActionKey" value="admin.menu.title"/>
+		<property name="i18nDescriptionKey" value="admin.menu.title.alt"/>
+		<property name="translationPackage" value="org.olat.course.assessment.ui"/>
+		<property name="parentTreeNodeIdentifier" value="modulesParent" /> 
+		<property name="extensionPoints">
+			<list>	
+				<value>org.olat.admin.SystemAdminMainController</value>		
+			</list>
+		</property>
+	</bean>
 </beans>
diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java b/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java
index 03a5767a2fa1ee9542f7db64a1ca827e823ecd54..b6ec61df1b0b99e927f387b1660ef8f8fd27850d 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java
@@ -19,19 +19,30 @@
  */
 package org.olat.course.assessment.manager;
 
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
+import org.olat.basesecurity.model.IdentityRefImpl;
 import org.olat.core.commons.persistence.DB;
+import org.olat.core.gui.control.Event;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.core.util.coordinate.CoordinatorManager;
+import org.olat.core.util.event.GenericEventListener;
 import org.olat.course.assessment.AssessmentMode;
 import org.olat.course.assessment.AssessmentMode.Status;
 import org.olat.course.assessment.AssessmentModeCoordinationService;
 import org.olat.course.assessment.AssessmentModeNotificationEvent;
+import org.olat.course.assessment.AssessmentModule;
 import org.olat.course.assessment.model.AssessmentModeImpl;
+import org.olat.course.assessment.model.CoordinatedAssessmentMode;
 import org.olat.course.assessment.model.TransientAssessmentMode;
+import org.olat.group.ui.edit.BusinessGroupModifiedEvent;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -42,35 +53,58 @@ import org.springframework.stereotype.Service;
  *
  */
 @Service
-public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoordinationService {
+public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoordinationService, GenericEventListener {
+	
+	private static final OLog log = Tracing.createLoggerFor(AssessmentModeCoordinationServiceImpl.class);
 	
 	@Autowired
 	private DB dbInstance;
 	@Autowired
+	private AssessmentModule assessmentModule;
+	@Autowired
 	private CoordinatorManager coordinatorManager;
 	@Autowired
 	private AssessmentModeManagerImpl assessmentModeManager;
 	
-	protected void beat() {
-		Date now = now();
-		List<AssessmentMode> currentModes = assessmentModeManager.getAssessmentModes(now);
-		for(AssessmentMode currentMode:currentModes) {
-			sendEvent(currentMode, now, false);
+	private Map<Long,CoordinatedAssessmentMode> coordinatedModes = new ConcurrentHashMap<>();
+	
+	protected synchronized void beat() {
+		if(assessmentModule.isAssessmentModeEnabled()) {
+			Date now = now();
+			List<Long> currentModeKeys = new ArrayList<>();
+			List<AssessmentMode> currentModes = assessmentModeManager.getAssessmentModes(now);
+			for(AssessmentMode currentMode:currentModes) {
+				try {
+					sendEvent(currentMode, now, false);
+					currentModeKeys.add(currentMode.getKey());
+				} catch (Exception e) {
+					log.error("", e);
+				}
+			}
+			
+			//remove coordinated mode 
+			List<Long> coordinatedModeKeys = new ArrayList<>(coordinatedModes.keySet());
+			for(Long coordinatedModeKey:coordinatedModeKeys) {
+				if(!currentModeKeys.contains(coordinatedModeKey)) {
+					CoordinatedAssessmentMode decoordinatedMode = coordinatedModes.remove(coordinatedModeKey);
+					if(decoordinatedMode != null) {
+						coordinatorManager.getCoordinator().getEventBus()
+							.deregisterFor(this, decoordinatedMode.getListenerRes());
+					}
+				}
+			}
+			
+			if(coordinatedModes.size() > 250) {
+				log.error("Seem to be a leak of coordinated modes");
+			}
 		}
 	}
 	
 	private Date now() {
 		Calendar cal = Calendar.getInstance();
+		//round to minute
 		cal.set(Calendar.MILLISECOND, 0);
-		int second = cal.get(Calendar.SECOND);
-		if(second > 30) {
-			//round to the next minute
-			cal.set(Calendar.SECOND, 0);
-			cal.add(Calendar.MINUTE, 1);
-		} else {
-			cal.set(Calendar.SECOND, 0);
-		}
-		
+		cal.set(Calendar.SECOND, 0);
 		return cal.getTime();
 	}
 	
@@ -82,6 +116,64 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor
 		return sendEvent(mode, now(), true);
 	}
 	
+	private void manageListenersOfCoordinatedMode(AssessmentMode mode) {
+		try {
+			Status status = mode.getStatus();
+			if(status == Status.leadtime || status == Status.assessment || status == Status.followup) {
+				//add listeners
+				CoordinatedAssessmentMode coordinateMode = coordinatedModes.get(mode.getKey());
+				if(coordinateMode == null) {
+					coordinateMode = new CoordinatedAssessmentMode(mode);
+					coordinatedModes.put(mode.getKey(), coordinateMode);
+				}
+				coordinatorManager.getCoordinator().getEventBus()
+					.registerFor(this, null, coordinateMode.getListenerRes());
+				
+			} else if(coordinatedModes.containsKey(mode.getKey())) {
+				CoordinatedAssessmentMode decoordinateMode = coordinatedModes.remove(mode.getKey());
+				if(decoordinateMode != null) {
+					coordinatorManager.getCoordinator().getEventBus()
+						.deregisterFor(this, decoordinateMode.getListenerRes());
+				}
+			}
+		} catch (Exception e) {
+			log.error("", e);
+		}
+	}
+	
+	@Override
+	public void event(Event event) {
+		if(event instanceof BusinessGroupModifiedEvent) {
+			try {
+				BusinessGroupModifiedEvent mod = (BusinessGroupModifiedEvent)event;
+				if(BusinessGroupModifiedEvent.IDENTITY_ADDED_EVENT.equals(mod.getCommand())) {
+					Long identityKey = mod.getAffectedIdentityKey();
+					sendEventAfterMembershipChange(identityKey);
+				}
+			} catch (Exception e) {
+				log.error("", e);
+			}
+		}
+	}
+	
+	private void sendEventAfterMembershipChange(final Long identityKey) {
+		List<AssessmentMode> modes = assessmentModeManager.getAssessmentModeFor(new IdentityRefImpl(identityKey));
+		for(AssessmentMode mode:modes) {
+			Status status = mode.getStatus();
+			if(status == Status.leadtime ) {
+				sendEvent(AssessmentModeNotificationEvent.LEADTIME, mode,
+						assessmentModeManager.getAssessedIdentityKeys(mode));
+			} else if(status == Status.assessment) {
+				sendEvent(AssessmentModeNotificationEvent.START_ASSESSMENT, mode,
+						assessmentModeManager.getAssessedIdentityKeys(mode));
+			} else if(status == Status.followup) {
+				sendEvent(AssessmentModeNotificationEvent.END, mode,
+						assessmentModeManager.getAssessedIdentityKeys(mode));
+			}
+		}
+	}
+
+	@Override
 	public Status evaluateStatus(Date begin, int leadtime, Date end, int followup) {
 		Status status;
 		Date now = now();
@@ -90,7 +182,7 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor
 		Date endWithFollowupTime = assessmentModeManager.evaluateFollowupTime(end, followup);
 		if(beginWithLeadTime.compareTo(now) > 0) {
 			status = Status.none;
-		} else if(beginWithLeadTime.compareTo(now) <= 0 && begin.compareTo(now) >= 0) {
+		} else if(beginWithLeadTime.compareTo(now) <= 0 && begin.compareTo(now) >= 0 && !beginWithLeadTime.equals(begin)) {
 			status = Status.leadtime;
 		} else if(begin.compareTo(now) <= 0 && end.compareTo(now) >= 0) {
 			status = Status.assessment;
@@ -114,7 +206,8 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor
 			mode = ensureStatusOfMode(mode, Status.none);
 			sendEvent(AssessmentModeNotificationEvent.BEFORE, mode,
 					assessmentModeManager.getAssessedIdentityKeys(mode));
-		} else if(mode.getBeginWithLeadTime().compareTo(now) <= 0 && mode.getBegin().compareTo(now) >= 0) {
+		} else if(mode.getBeginWithLeadTime().compareTo(now) <= 0 && mode.getBegin().compareTo(now) >= 0
+				&& mode.getBeginWithLeadTime().compareTo(mode.getBegin()) != 0) {
 			mode = ensureStatusOfMode(mode, Status.leadtime);
 			sendEvent(AssessmentModeNotificationEvent.LEADTIME, mode,
 					assessmentModeManager.getAssessedIdentityKeys(mode));
@@ -158,6 +251,7 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor
 						assessmentModeManager.getAssessedIdentityKeys(mode));
 			}
 		}
+		manageListenersOfCoordinatedMode(mode);
 		return mode;
 	}
 	
@@ -182,7 +276,7 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor
 	public boolean canStart(AssessmentMode assessmentMode) {
 		boolean canStart;
 		Status status = assessmentMode.getStatus();
-		if(status == Status.end) {
+		if(status == Status.end || status == Status.assessment) {
 			canStart = false;
 		} else {
 			canStart = true;
diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
index 5908996910385d1ad1cc46bcc937ccf2b29bb3cc..848bf763c45f77530ce8fa81cf0bdca1856f0b9a 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeManagerImpl.java
@@ -19,6 +19,8 @@
  */
 package org.olat.course.assessment.manager;
 
+import static org.olat.core.commons.persistence.PersistenceHelper.*;
+
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collections;
@@ -28,11 +30,16 @@ import java.util.List;
 import java.util.Set;
 import java.util.StringTokenizer;
 
+import javax.persistence.TemporalType;
+import javax.persistence.TypedQuery;
 import javax.servlet.http.HttpServletRequest;
 
 import org.olat.basesecurity.GroupRoles;
 import org.olat.basesecurity.IdentityRef;
 import org.olat.core.commons.persistence.DB;
+import org.olat.core.commons.persistence.PersistenceHelper;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.core.util.Encoder;
 import org.olat.core.util.IPUtils;
 import org.olat.core.util.StringHelper;
@@ -45,6 +52,7 @@ import org.olat.course.assessment.AssessmentModeToGroup;
 import org.olat.course.assessment.model.AssessmentModeImpl;
 import org.olat.course.assessment.model.AssessmentModeToAreaImpl;
 import org.olat.course.assessment.model.AssessmentModeToGroupImpl;
+import org.olat.course.assessment.model.SearchAssessmentModeParams;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupImpl;
 import org.olat.group.area.BGArea;
@@ -67,6 +75,8 @@ import org.springframework.stereotype.Service;
 @Service("assessmentModeManager")
 public class AssessmentModeManagerImpl implements AssessmentModeManager {
 	
+	private static final OLog log = Tracing.createLoggerFor(AssessmentModeManagerImpl.class);
+	
 	@Autowired
 	private DB dbInstance;
 	@Autowired
@@ -138,7 +148,7 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
 		((AssessmentModeImpl)assessmentMode).setBeginWithLeadTime(beginWithLeadTime);
 		
 		Date end = assessmentMode.getEnd();
-		Date endWithFollowupTime = this.evaluateFollowupTime(end, assessmentMode.getFollowupTime());
+		Date endWithFollowupTime = evaluateFollowupTime(end, assessmentMode.getFollowupTime());
 		((AssessmentModeImpl)assessmentMode).setEndWithFollowupTime(endWithFollowupTime);
 
 		AssessmentMode reloadedMode;
@@ -175,6 +185,75 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
 		return modes == null || modes.isEmpty() ? null : modes.get(0);
 	}
 
+	@Override
+	public List<AssessmentMode> findAssessmentMode(SearchAssessmentModeParams params) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select mode from courseassessmentmode mode")
+		  .append(" inner join fetch mode.repositoryEntry v")
+		  .append(" inner join fetch v.olatResource res");
+		
+		boolean where = false;
+		
+		Date date = params.getDate();
+		if(date != null) {
+			where = appendAnd(sb, where);
+			sb.append(":date between mode.beginWithLeadTime and mode.endWithFollowupTime");
+		}
+		
+		String name = params.getName();
+		if(StringHelper.containsNonWhitespace(name)) {
+			name = PersistenceHelper.makeFuzzyQueryString(name);
+			where = appendAnd(sb, where);
+			sb.append("(");
+			appendFuzzyLike(sb, "v.displayname", "name", dbInstance.getDbVendor());
+			sb.append(" or ");
+			appendFuzzyLike(sb, "mode.name", "name", dbInstance.getDbVendor());
+			sb.append(")");
+		}
+		
+		Long id = null;
+		String refs = null;
+		String fuzzyRefs = null;
+		if(StringHelper.containsNonWhitespace(params.getIdAndRefs())) {
+			refs = params.getIdAndRefs();
+			fuzzyRefs = PersistenceHelper.makeFuzzyQueryString(refs);
+			where = appendAnd(sb, where);
+			sb.append(" (v.externalId=:ref or ");
+			PersistenceHelper.appendFuzzyLike(sb, "v.externalRef", "fuzzyRefs", dbInstance.getDbVendor());
+			sb.append(" or v.softkey=:ref");
+			if(StringHelper.isLong(refs)) {
+				try {
+					id = Long.parseLong(refs);
+					sb.append(" or v.key=:vKey or res.resId=:vKey");
+				} catch (NumberFormatException e) {
+					//
+				}
+			}
+			sb.append(")");	
+		}
+		
+		sb.append(" order by mode.beginWithLeadTime desc ");
+
+		TypedQuery<AssessmentMode> query = dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), AssessmentMode.class);
+		if(StringHelper.containsNonWhitespace(params.getName())) {
+			query.setParameter("name", name);
+		}
+		if(id != null) {
+			query.setParameter("vKey", id);
+		}
+		if(refs != null) {
+			query.setParameter("ref", refs);
+		}
+		if(fuzzyRefs != null) {
+			query.setParameter("fuzzyRefs", fuzzyRefs);
+		}
+		if(date != null) {
+			query.setParameter("date", date, TemporalType.TIMESTAMP);
+		}
+		return query.getResultList();
+	}
+
 	@Override
 	public List<AssessmentMode> getAssessmentModeFor(RepositoryEntryRef entry) {
 		return dbInstance.getCurrentEntityManager()
@@ -338,6 +417,7 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
 	@Override
 	public boolean isSafelyAllowed(HttpServletRequest request, String safeExamBrowserKeys) {
 		boolean safe = false;
+		boolean debug = log.isDebug();
 		if(StringHelper.containsNonWhitespace(safeExamBrowserKeys)) {
 			String safeExamHash = request.getHeader("x-safeexambrowser-requesthash");
 			String url = request.getRequestURL().toString();
@@ -347,6 +427,9 @@ public class AssessmentModeManagerImpl implements AssessmentModeManager {
 				if(safeExamHash != null && safeExamHash.equals(hash)) {
 					safe = true;
 				}
+				if(debug) {
+					log.debug((safeExamHash.equals(hash) ? "Success" : "Failed") + " : " + safeExamHash +" (Header) " + hash + " (Calculated)");
+				}
 			}
 		} else {
 			safe = true;
diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentModeNotificationJob.java b/src/main/java/org/olat/course/assessment/manager/AssessmentModeNotificationJob.java
index 286d55df0c23c33fe3dfe646cc38785b95ba0dc5..779a8cbf0c031826bd6b736aec8df9b562ca3c1d 100644
--- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeNotificationJob.java
+++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeNotificationJob.java
@@ -21,6 +21,8 @@ package org.olat.course.assessment.manager;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.services.scheduler.JobWithDB;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 
@@ -31,10 +33,16 @@ import org.quartz.JobExecutionException;
  *
  */
 public class AssessmentModeNotificationJob extends JobWithDB {
+	
+	private static final OLog log = Tracing.createLoggerFor(AssessmentModeNotificationJob.class);
 
 	@Override
 	public void executeWithDB(JobExecutionContext context)
 	throws JobExecutionException {
-		CoreSpringFactory.getImpl(AssessmentModeCoordinationServiceImpl.class).beat();
+		try {
+			CoreSpringFactory.getImpl(AssessmentModeCoordinationServiceImpl.class).beat();
+		} catch (Exception e) {
+			log.error("", e);
+		}
 	}
 }
diff --git a/src/main/java/org/olat/course/assessment/manager/UserCourseInformationsManagerImpl.java b/src/main/java/org/olat/course/assessment/manager/UserCourseInformationsManagerImpl.java
index 9048a5ff6c293410018067f47e03335b448c85c3..4930beb0c5b7fd62c69f4181bdb00679e0b03d55 100644
--- a/src/main/java/org/olat/course/assessment/manager/UserCourseInformationsManagerImpl.java
+++ b/src/main/java/org/olat/course/assessment/manager/UserCourseInformationsManagerImpl.java
@@ -35,7 +35,8 @@ import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.persistence.PersistenceHelper;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
-import org.olat.core.manager.BasicManager;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.coordinate.SyncerExecutor;
 import org.olat.core.util.resource.OresHelper;
@@ -54,7 +55,9 @@ import org.springframework.stereotype.Service;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
 @Service("userCourseInformationsManager")
-public class UserCourseInformationsManagerImpl extends BasicManager implements UserCourseInformationsManager {
+public class UserCourseInformationsManagerImpl implements UserCourseInformationsManager {
+	
+	private static final OLog log = Tracing.createLoggerFor(UserCourseInformationsManagerImpl.class);
 
 	@Autowired
 	private DB dbInstance;
@@ -81,7 +84,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 			}
 			return infoList.get(0);
 		} catch (Exception e) {
-			logError("Cannot retrieve course informations for: " + identity + " from " + identity, e);
+			log.error("Cannot retrieve course informations for: " + identity + " from " + identity, e);
 			return null;
 		}
 	}
@@ -108,7 +111,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 			List<UserCourseInformations> infoList = query.getResultList();
 			return infoList;
 		} catch (Exception e) {
-			logError("Cannot retrieve course informations for: " + identity + " from " + identity, e);
+			log.error("Cannot retrieve course informations for: " + identity + " from " + identity, e);
 			return null;
 		}
 	}
@@ -145,8 +148,8 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 				@Override
 				public void execute() {
 					try {
-						UltraLightInfos ulInfos = getUserCourseInformationsKey(courseResourceableId, identity);
-						if(ulInfos == null) {
+						UltraLightInfos reloadedUlInfos = getUserCourseInformationsKey(courseResourceableId, identity);
+						if(reloadedUlInfos == null) {
 							OLATResource courseResource = resourceManager.findResourceable(courseResourceableId, "CourseModule");
 							UserCourseInfosImpl infos = new UserCourseInfosImpl();
 							infos.setIdentity(identity);
@@ -157,8 +160,8 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 							infos.setVisit(1);
 							infos.setResource(courseResource);
 							dbInstance.getCurrentEntityManager().persist(infos);
-						} else if(strict || needUpdate(ulInfos)) {
-							UserCourseInfosImpl infos = loadById(ulInfos.getKey());
+						} else if(strict || needUpdate(reloadedUlInfos)) {
+							UserCourseInfosImpl infos = loadById(reloadedUlInfos.getKey());
 							if(infos != null) {
 								infos.setVisit(infos.getVisit() + 1);
 								infos.setRecentLaunch(new Date());
@@ -167,7 +170,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 							}
 						}
 					} catch (Exception e) {
-						logError("Cannot update course informations for: " + identity + " from " + identity, e);
+						log.error("Cannot update course informations for: " + identity + " from " + identity, e);
 					}
 				}
 			});
@@ -196,7 +199,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 			}
 			return infoList.get(0);
 		} catch (Exception e) {
-			logError("Cannot retrieve course informations for: " + id, e);
+			log.error("Cannot retrieve course informations for: " + id, e);
 			return null;
 		}
 	}
@@ -222,7 +225,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 			
 			return new UltraLightInfos((Long)infos[0], (Date)infos[1]);
 		} catch (Exception e) {
-			logError("Cannot retrieve course informations for: " + identity + " from " + identity, e);
+			log.error("Cannot retrieve course informations for: " + identity + " from " + identity, e);
 			return null;
 		}
 	}
@@ -284,7 +287,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 			}
 			return infoList.get(0);
 		} catch (Exception e) {
-			logError("Cannot retrieve course informations for: " + courseResourceId, e);
+			log.error("Cannot retrieve course informations for: " + courseResourceId, e);
 			return null;
 		}
 	}
@@ -331,7 +334,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 			}
 			return dateMap;
 		} catch (Exception e) {
-			logError("Cannot retrieve course informations for: " + courseResourceId, e);
+			log.error("Cannot retrieve course informations for: " + courseResourceId, e);
 			return Collections.emptyMap();
 		}
 	}
@@ -350,7 +353,7 @@ public class UserCourseInformationsManagerImpl extends BasicManager implements U
 					.executeUpdate();
 			return count;
 		} catch (Exception e) {
-			logError("Cannot Delete course informations for: " + entry, e);
+			log.error("Cannot Delete course informations for: " + entry, e);
 			return -1;
 		}
 	}
diff --git a/src/main/java/org/olat/course/assessment/model/AssessmentModeImpl.java b/src/main/java/org/olat/course/assessment/model/AssessmentModeImpl.java
index b43259848ae3a8866220b089d4f65e54110f4204..f568f2414aa7ce54145d35fc9a722c7d644f053e 100644
--- a/src/main/java/org/olat/course/assessment/model/AssessmentModeImpl.java
+++ b/src/main/java/org/olat/course/assessment/model/AssessmentModeImpl.java
@@ -56,7 +56,7 @@ import org.olat.repository.RepositoryEntry;
 @Table(name="o_as_mode_course")
 @NamedQueries({
 	@NamedQuery(name="assessmentModeById", query="select mode from courseassessmentmode mode where mode.key=:modeKey"),
-	@NamedQuery(name="assessmentModeByRepoEntry", query="select mode from courseassessmentmode mode where mode.repositoryEntry.key=:entryKey")
+	@NamedQuery(name="assessmentModeByRepoEntry", query="select mode from courseassessmentmode mode where mode.repositoryEntry.key=:entryKey order by mode.begin desc")
 })
 public class AssessmentModeImpl implements Persistable, AssessmentMode {
 
diff --git a/src/main/java/org/olat/course/assessment/model/CoordinatedAssessmentMode.java b/src/main/java/org/olat/course/assessment/model/CoordinatedAssessmentMode.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6a1fe770874323a05cdf90a9727570e464c9d76
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/model/CoordinatedAssessmentMode.java
@@ -0,0 +1,75 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.model;
+
+import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.resource.OresHelper;
+import org.olat.course.assessment.AssessmentMode;
+
+/**
+ * 
+ * Initial date: 06.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CoordinatedAssessmentMode {
+	
+	private final Long key;
+	private AssessmentMode assessmentMode;
+	private final OLATResourceable listenerRes;
+	
+	public CoordinatedAssessmentMode(AssessmentMode assessmentMode) {
+		key = assessmentMode.getKey();
+		this.assessmentMode = assessmentMode;
+		this.listenerRes = OresHelper.clone(assessmentMode.getRepositoryEntry());
+	}
+	
+	public Long getKey() {
+		return key;
+	}
+
+	public OLATResourceable getListenerRes() {
+		return listenerRes;
+	}
+	
+	public AssessmentMode getAssessmentMode() {
+		return assessmentMode;
+	}
+	
+	public void setAssessmentMode(AssessmentMode assessmentMode) {
+		this.assessmentMode = assessmentMode;
+	}
+	@Override
+	public int hashCode() {
+		return key.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if(this == obj) {
+			return true;
+		}
+		if(obj instanceof CoordinatedAssessmentMode) {
+			CoordinatedAssessmentMode m = (CoordinatedAssessmentMode)obj;
+			return key != null && key.equals(m.getKey());
+		}
+		return false;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/model/SearchAssessmentModeParams.java b/src/main/java/org/olat/course/assessment/model/SearchAssessmentModeParams.java
new file mode 100644
index 0000000000000000000000000000000000000000..863545cd6618193a4579490df4540ee122be870c
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/model/SearchAssessmentModeParams.java
@@ -0,0 +1,59 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.model;
+
+import java.util.Date;
+
+/**
+ * 
+ * Initial date: 06.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class SearchAssessmentModeParams {
+	
+	private Date date;
+	private String idAndRefs;
+	private String name;
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getIdAndRefs() {
+		return idAndRefs;
+	}
+
+	public void setIdAndRefs(String id) {
+		this.idAndRefs = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminController.java
new file mode 100644
index 0000000000000000000000000000000000000000..66f61723515463e6cdf3dcc1c259ef64a5ccbd36
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminController.java
@@ -0,0 +1,66 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.ui;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.BasicController;
+
+/**
+ * 
+ * Initial date: 06.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AssessmentModeAdminController extends BasicController {
+	
+	private final VelocityContainer mainVC;
+	
+	private final AssessmentModeAdminListController modeListCtrl;
+	private final AssessmentModeAdminSettingsController settingsCtrl;
+	
+	public AssessmentModeAdminController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl);
+		
+		settingsCtrl = new AssessmentModeAdminSettingsController(ureq, wControl);
+		listenTo(settingsCtrl);
+		
+		modeListCtrl = new AssessmentModeAdminListController(ureq, wControl);
+		listenTo(modeListCtrl);
+		
+		mainVC = createVelocityContainer("admin");
+		mainVC.put("settings", settingsCtrl.getInitialComponent());
+		mainVC.put("list", modeListCtrl.getInitialComponent());
+		putInitialPanel(mainVC);
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+	
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		//
+	}
+}
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminListController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminListController.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ee6b6ad3e5076330870c2654073cb10596764f9
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminListController.java
@@ -0,0 +1,174 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.ui;
+
+import java.util.List;
+
+import org.olat.NewControllerFactory;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.form.flexible.FormItem;
+import org.olat.core.gui.components.form.flexible.FormItemContainer;
+import org.olat.core.gui.components.form.flexible.elements.DateChooser;
+import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FormLink;
+import org.olat.core.gui.components.form.flexible.elements.TextElement;
+import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
+import org.olat.core.gui.components.form.flexible.impl.FormEvent;
+import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiCellRenderer;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiCellRenderer;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer;
+import org.olat.core.gui.components.link.Link;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.course.CorruptedCourseException;
+import org.olat.course.assessment.AssessmentMode;
+import org.olat.course.assessment.AssessmentModeCoordinationService;
+import org.olat.course.assessment.AssessmentModeManager;
+import org.olat.course.assessment.model.SearchAssessmentModeParams;
+import org.olat.course.assessment.ui.AssessmentModeListModel.Cols;
+import org.olat.repository.RepositoryEntry;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Initial date: 06.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AssessmentModeAdminListController extends FormBasicController {
+
+	private DateChooser dateEl;
+	private TextElement idAndRefsEl, nameEl;
+	private FormLink searchButton;
+	private FlexiTableElement tableEl;
+	private AssessmentModeListModel model;
+	private SearchAssessmentModeParams params = new SearchAssessmentModeParams();
+	
+	@Autowired
+	private AssessmentModeManager assessmentModeMgr;
+	@Autowired
+	private AssessmentModeCoordinationService assessmentModeCoordinationService;
+	
+	public AssessmentModeAdminListController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl, "admin_search");
+		initForm(ureq);
+		loadModel();
+	}
+
+	@Override
+	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		//search form
+		FormLayoutContainer searchLeftForm = FormLayoutContainer.createDefaultFormLayout("left_1", getTranslator());
+		searchLeftForm.setRootForm(mainForm);
+		formLayout.add("left_1", searchLeftForm);
+		idAndRefsEl = uifactory.addTextElement("mode.id", "assessment.mode.id", 128, null, searchLeftForm);
+		nameEl = uifactory.addTextElement("mode.name", "assessment.mode.name", 128, null, searchLeftForm);
+		
+		FormLayoutContainer searchRightForm = FormLayoutContainer.createDefaultFormLayout("right_1", getTranslator());
+		searchRightForm.setRootForm(mainForm);
+		formLayout.add("right_1", searchRightForm);
+		dateEl = uifactory.addDateChooser("assessment.mode.date", null, searchRightForm);
+		dateEl.setDateChooserTimeEnabled(true);
+		
+		//search button
+		FormLayoutContainer searchButtons = FormLayoutContainer.createButtonLayout("button_layout", getTranslator());
+		searchButtons.setRootForm(mainForm);
+		formLayout.add("button_layout", searchButtons);
+		searchButton = uifactory.addFormLink("search", searchButtons, Link.BUTTON);
+		searchButton.setPrimary(true);
+
+		//add the table
+		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.status.i18nKey(), Cols.status.ordinal(),
+				true, Cols.status.name(), new ModeStatusCellRenderer()));
+		FlexiCellRenderer renderer = new StaticFlexiCellRenderer("select", new TextFlexiCellRenderer());
+		columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel(Cols.course.i18nKey(), Cols.course.ordinal(), "select",
+				true, Cols.course.name(), renderer));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.externalId.i18nKey(), Cols.externalId.ordinal(), true, Cols.externalId.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.externalRef.i18nKey(), Cols.externalRef.ordinal(), true, Cols.externalRef.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.name.i18nKey(), Cols.name.ordinal(), true, Cols.name.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.begin.i18nKey(), Cols.begin.ordinal(), true, Cols.begin.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.end.i18nKey(), Cols.end.ordinal(), true, Cols.end.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.leadTime.i18nKey(), Cols.leadTime.ordinal(),
+				true, Cols.leadTime.name(), new TimeCellRenderer(getTranslator())));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.followupTime.i18nKey(), Cols.followupTime.ordinal(),
+				true, Cols.followupTime.name(), new TimeCellRenderer(getTranslator())));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.target.i18nKey(), Cols.target.ordinal(),
+				true, Cols.target.name(), new TargetAudienceCellRenderer(getTranslator())));
+		
+		model = new AssessmentModeListModel(columnsModel, assessmentModeCoordinationService);
+		tableEl = uifactory.addTableElement(getWindowControl(), "table", model, 20, false, getTranslator(), formLayout);
+		tableEl.setMultiSelect(false);
+		tableEl.setAndLoadPersistedPreferences(ureq, "assessment-mode-admin");
+	}
+	
+	private void loadModel() {
+		List<AssessmentMode> modes = assessmentModeMgr.findAssessmentMode(params);
+		model.setObjects(modes);
+		tableEl.reloadData();
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
+		if(searchButton == source) {
+			params.setDate(dateEl.getDate());
+			params.setIdAndRefs(idAndRefsEl.getValue());
+			params.setName(nameEl.getValue());
+			loadModel();
+		} else if(tableEl == source) {
+			if(event instanceof SelectionEvent) {
+				SelectionEvent se = (SelectionEvent)event;
+				String cmd = se.getCommand();
+				AssessmentMode row = model.getObject(se.getIndex());
+				if("select".equals(cmd)) {
+					launch(ureq, row.getRepositoryEntry());
+				}
+			}
+			
+		}
+		super.formInnerEvent(ureq, source, event);
+	}
+
+	@Override
+	protected void formOK(UserRequest ureq) {
+		//
+	}
+	
+	private void launch(UserRequest ureq, RepositoryEntry entry) {
+		try {
+			String businessPath = "[RepositoryEntry:" + entry.getKey() + "]";
+			NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
+		} catch (CorruptedCourseException e) {
+			logError("Course corrupted: " + entry.getKey() + " (" + entry.getOlatResource().getResourceableId() + ")", e);
+			showError("cif.error.corrupted");
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminSettingsController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminSettingsController.java
new file mode 100644
index 0000000000000000000000000000000000000000..7b604ae5501a6af2ed849c040ed836a622bef815
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeAdminSettingsController.java
@@ -0,0 +1,83 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.ui;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.form.flexible.FormItem;
+import org.olat.core.gui.components.form.flexible.FormItemContainer;
+import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
+import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
+import org.olat.core.gui.components.form.flexible.impl.FormEvent;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.course.assessment.AssessmentModule;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Initial date: 06.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AssessmentModeAdminSettingsController extends FormBasicController {
+	
+	private static final String[] onKeys = new String[]{ "on" };
+	
+	private MultipleSelectionElement enableEl;
+	
+	@Autowired
+	private AssessmentModule assessmentModule;
+	
+	public AssessmentModeAdminSettingsController(UserRequest ureq, WindowControl wControl) {
+		super(ureq, wControl);
+		
+		initForm(ureq);
+	}
+
+	@Override
+	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		setFormTitle("assessment.mode.title");
+		
+		
+		String[] onValues = new String[]{ translate("assessment.mode.enabled.on") };
+		enableEl = uifactory.addCheckboxesHorizontal("modeenabled", "assessment.mode.enabled", formLayout, onKeys, onValues);
+		enableEl.select(onKeys[0], assessmentModule.isAssessmentModeEnabled());
+		enableEl.addActionListener(FormEvent.ONCHANGE);
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
+		if(enableEl == source) {
+			boolean enabled = enableEl.isAtLeastSelected(1);
+			assessmentModule.setAssessmentModeEnabled(enabled);
+		}
+		super.formInnerEvent(ureq, source, event);
+	}
+
+	@Override
+	protected void formOK(UserRequest ureq) {
+		//
+	}
+}
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java
index 03d4e0f9f68b6a9972cc18380f302e12202db0db..d0b161837c9f545b0d9885e9d9b08a0ff351ab17 100644
--- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java
@@ -145,17 +145,21 @@ public class AssessmentModeEditController extends FormBasicController {
 		}
 		setFormDescription("form.mode.description");
 		
+		Status status = assessmentMode.getStatus();
 		String name = assessmentMode.getName();
 		nameEl = uifactory.addTextElement("mode.name", "mode.name", 255, name, formLayout);
 		nameEl.setMandatory(true);
+		nameEl.setEnabled(status != Status.followup && status != Status.end);
 		
 		String desc = assessmentMode.getDescription();
 		descriptionEl = uifactory.addRichTextElementForStringData("mode.description", "mode.description",
 				desc, 6, -1, false, null, null, formLayout, ureq.getUserSession(), getWindowControl());
+		descriptionEl.setEnabled(status != Status.followup && status != Status.end);
 		
 		beginEl = uifactory.addDateChooser("mode.begin", assessmentMode.getBegin(), formLayout);
 		beginEl.setDateChooserTimeEnabled(true);
 		beginEl.setMandatory(true);
+		beginEl.setEnabled(status == Status.none || status == Status.leadtime);
 		
 		int leadTime = assessmentMode.getLeadTime();
 		if(leadTime < 0) {
@@ -163,10 +167,12 @@ public class AssessmentModeEditController extends FormBasicController {
 		}
 		leadTimeEl = uifactory.addIntegerElement("mode.leadTime", leadTime, formLayout);
 		leadTimeEl.setDisplaySize(3);
+		leadTimeEl.setEnabled(status == Status.none || status == Status.leadtime);
 		
 		endEl = uifactory.addDateChooser("mode.end", assessmentMode.getEnd(), formLayout);
 		endEl.setDateChooserTimeEnabled(true);
 		endEl.setMandatory(true);
+		endEl.setEnabled(status != Status.end);
 		
 		int followupTime = assessmentMode.getFollowupTime();
 		if(followupTime < 0) {
@@ -174,6 +180,7 @@ public class AssessmentModeEditController extends FormBasicController {
 		}
 		followupTimeEl = uifactory.addIntegerElement("mode.followupTime", followupTime, formLayout);
 		followupTimeEl.setDisplaySize(3);
+		followupTimeEl.setEnabled(status != Status.end);
 		
 		String[] startModeValues = new String[] {
 				translate("mode.beginend.automatic"), translate("mode.beginend.manual")
@@ -184,6 +191,7 @@ public class AssessmentModeEditController extends FormBasicController {
 		} else {
 			startModeEl.select(startModeKeys[0], true);
 		}
+		startModeEl.setEnabled(status != Status.end);
 		
 		String[] audienceKeys = new String[] {
 			AssessmentMode.Target.courseAndGroups.name(),
@@ -196,6 +204,7 @@ public class AssessmentModeEditController extends FormBasicController {
 			translate("target.groups")
 		};
 		targetEl = uifactory.addRadiosVertical("audience", "mode.target", formLayout, audienceKeys, audienceValues);
+		targetEl.setEnabled(status != Status.end);
 		Target target = assessmentMode.getTargetAudience();
 		if(target != null) {
 			for(String audienceKey:audienceKeys) {
@@ -214,7 +223,9 @@ public class AssessmentModeEditController extends FormBasicController {
 		formLayout.add(chooseGroupsCont);
 		
 		chooseGroupsButton = uifactory.addFormLink("choose.groups", chooseGroupsCont, Link.BUTTON);
+		chooseGroupsButton.setEnabled(status != Status.end);
 		chooseAreasButton = uifactory.addFormLink("choose.areas", chooseGroupsCont, Link.BUTTON);
+		chooseAreasButton.setEnabled(status != Status.end);
 
 		groupKeys = new ArrayList<>();
 		groupNames = new ArrayList<>();
@@ -238,6 +249,7 @@ public class AssessmentModeEditController extends FormBasicController {
 		courseElementsRestrictionEl = uifactory.addCheckboxesHorizontal("cer", "mode.course.element.restriction", formLayout, onKeys, onValues);
 		courseElementsRestrictionEl.addActionListener(FormEvent.ONCHANGE);
 		courseElementsRestrictionEl.select(onKeys[0], assessmentMode.isRestrictAccessElements());
+		courseElementsRestrictionEl.setEnabled(status != Status.end);
 		
 		String coursePage = velocity_root + "/choose_elements.html";
 		chooseElementsCont = FormLayoutContainer.createCustomFormLayout("chooseElements", getTranslator(), coursePage);
@@ -260,6 +272,7 @@ public class AssessmentModeEditController extends FormBasicController {
 		chooseElementsCont.getFormItemComponent().contextPut("elementNames", elementNames);
 		
 		chooseElementsButton = uifactory.addFormLink("choose.elements", chooseElementsCont, Link.BUTTON);
+		chooseElementsButton.setEnabled(status != Status.end);
 		
 		startElementKey = assessmentMode.getStartElement();
 		String startElementName = "";
@@ -268,32 +281,41 @@ public class AssessmentModeEditController extends FormBasicController {
 		}
 		startElementEl = uifactory.addStaticTextElement("mode.start.element", "mode.start.element", startElementName, formLayout);
 		chooseStartElementButton = uifactory.addFormLink("choose.start.element", formLayout, Link.BUTTON);
+		chooseStartElementButton.setEnabled(status != Status.end);
 
 		//ips
 		ipsEl = uifactory.addCheckboxesHorizontal("ips", "mode.ips", formLayout, onKeys, onValues);
 		ipsEl.select(onKeys[0], assessmentMode.isRestrictAccessIps());
 		ipsEl.addActionListener(FormEvent.ONCHANGE);
+		ipsEl.setEnabled(status != Status.end);
 		String ipList = assessmentMode.getIpList();
 		ipListEl = uifactory.addTextAreaElement("mode.ips.list", "mode.ips.list", 4096, 4, 60, false, ipList, formLayout);
 		ipListEl.setVisible(assessmentMode.isRestrictAccessIps());
+		ipListEl.setEnabled(status != Status.end);
 		
 		safeExamBrowserEl = uifactory.addCheckboxesHorizontal("safeexam", "mode.safeexambrowser", formLayout, onKeys, onValues);
 		safeExamBrowserEl.select(onKeys[0], assessmentMode.isSafeExamBrowser());
 		safeExamBrowserEl.addActionListener(FormEvent.ONCHANGE);
+		safeExamBrowserEl.setEnabled(status != Status.end);
 		String key = assessmentMode.getSafeExamBrowserKey();
 		safeExamBrowserKeyEl = uifactory.addTextAreaElement("safeexamkey", "mode.safeexambrowser.key", 4096, 6, 60, false, key, formLayout);
 		safeExamBrowserKeyEl.setVisible(assessmentMode.isSafeExamBrowser());
+		safeExamBrowserKeyEl.setEnabled(status != Status.end);
 		String hint = assessmentMode.getSafeExamBrowserHint();
 		safeExamBrowserHintEl = uifactory.addRichTextElementForStringData("safeexamhint", "mode.safeexambrowser.hint",
 				hint, 10, -1, false, null, null, formLayout, ureq.getUserSession(), getWindowControl());
 		safeExamBrowserHintEl.setVisible(assessmentMode.isSafeExamBrowser());
+		safeExamBrowserHintEl.setEnabled(status != Status.end);
 		
 		forCoachEl = uifactory.addCheckboxesHorizontal("forcoach", "mode.for.coach", formLayout, onKeys, onValues);
 		forCoachEl.select(onKeys[0], assessmentMode.isApplySettingsForCoach());
+		forCoachEl.setEnabled(status != Status.end);
 		
 		FormLayoutContainer buttonCont = FormLayoutContainer.createButtonLayout("button", getTranslator());
 		formLayout.add(buttonCont);
-		uifactory.addFormSubmitButton("save", buttonCont);
+		if(status != Status.end) {
+			uifactory.addFormSubmitButton("save", buttonCont);
+		}
 		uifactory.addFormCancelButton("cancel", buttonCont, ureq, getWindowControl());
 	}
 	
@@ -348,7 +370,7 @@ public class AssessmentModeEditController extends FormBasicController {
 				save(ureq, true);
 			}
 		} else if(cmc == source) {
-			cmc.deactivate();
+			cleanUp();
 		}
 		super.event(ureq, source, event);
 	}
@@ -417,7 +439,24 @@ public class AssessmentModeEditController extends FormBasicController {
 			targetEl.setErrorKey("form.legende.mandatory", null);
 			allOk &= false;
 		}
-
+		
+		safeExamBrowserKeyEl.clearError();
+		if(safeExamBrowserEl.isAtLeastSelected(1)) {
+			String value = safeExamBrowserKeyEl.getValue();
+			if(!StringHelper.containsNonWhitespace(value)) {
+				safeExamBrowserKeyEl.setErrorKey("form.legende.mandatory", null);
+				allOk &= false;
+			}
+		}
+		
+		ipListEl.clearError();
+		if(ipsEl.isAtLeastSelected(1)) {
+			String value = ipListEl.getValue();
+			if(!StringHelper.containsNonWhitespace(value)) {
+				ipListEl.setErrorKey("form.legende.mandatory", null);
+				allOk &= false;
+			}
+		}
 		return allOk & super.validateFormLogic(ureq);
 	}
 
@@ -614,19 +653,21 @@ public class AssessmentModeEditController extends FormBasicController {
 		listenTo(chooseElementsCtrl);
 		
 		cmc = new CloseableModalController(getWindowControl(), "close", chooseElementsCtrl.getInitialComponent(),
-				true, getTranslator().translate("popup.chooseelements"));
+				true, translate("popup.chooseelements"), false);
 		listenTo(cmc);
 		cmc.activate();
 	}
 	
 	private void doChooseStartElement(UserRequest ureq) {
 		if(chooseElementsCtrl != null) return;
-
-		chooseStartElementCtrl = new ChooseStartElementController(ureq, getWindowControl(), startElementKey, courseOres);
+		
+		List<String> allowedKeys = courseElementsRestrictionEl.isAtLeastSelected(1)
+				? new ArrayList<>(elementKeys) : null;
+		chooseStartElementCtrl = new ChooseStartElementController(ureq, getWindowControl(), startElementKey, allowedKeys, courseOres);
 		listenTo(chooseStartElementCtrl);
 		
-		cmc = new CloseableModalController(getWindowControl(), "close", chooseStartElementCtrl.getInitialComponent(),
-				true, getTranslator().translate("popup.choosestartelement"));
+		cmc = new CloseableModalController(getWindowControl(), null, chooseStartElementCtrl.getInitialComponent(),
+				true, translate("popup.choosestartelement"), false);
 		listenTo(cmc);
 		cmc.activate();
 	}
@@ -639,8 +680,8 @@ public class AssessmentModeEditController extends FormBasicController {
 		areaChooseCtrl = new AreaSelectionController(ureq, getWindowControl(), true, groupManager, areaKeys);
 		listenTo(areaChooseCtrl);
 		
-		cmc = new CloseableModalController(getWindowControl(), "close", areaChooseCtrl.getInitialComponent(),
-				true, getTranslator().translate("popup.chooseareas"));
+		cmc = new CloseableModalController(getWindowControl(), null, areaChooseCtrl.getInitialComponent(),
+				true, translate("popup.chooseareas"), false);
 		listenTo(cmc);
 		cmc.activate();
 	}
@@ -653,8 +694,8 @@ public class AssessmentModeEditController extends FormBasicController {
 		groupChooseCtrl = new GroupSelectionController(ureq, getWindowControl(), true, groupManager, groupKeys);
 		listenTo(groupChooseCtrl);
 
-		cmc = new CloseableModalController(getWindowControl(), "close", groupChooseCtrl.getInitialComponent(),
-				true, translate("popup.choosegroups"));
+		cmc = new CloseableModalController(getWindowControl(), null, groupChooseCtrl.getInitialComponent(),
+				true, translate("popup.choosegroups"), false);
 		listenTo(cmc);
 		cmc.activate();
 	}
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java
index 411aca0a86fe69becda602df7aee7c0a18cbc1ef..54aa783d45bc4829650cfe18d2e4ed6a9d87392b 100644
--- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java
@@ -136,9 +136,11 @@ public class AssessmentModeGuardController extends BasicController implements Ge
 	private void syncAssessmentModes(UserRequest ureq) {
 		List<ResourceGuard> modeWrappers = new ArrayList<ResourceGuard>();
 		for(TransientAssessmentMode mode:modes) {
-			ResourceGuard wrapper = syncAssessmentMode(ureq, mode);
-			if(wrapper != null) {
-				modeWrappers.add(wrapper);
+			if(mode != null) {
+				ResourceGuard wrapper = syncAssessmentMode(ureq, mode);
+				if(wrapper != null) {
+					modeWrappers.add(wrapper);
+				}
 			}
 		}
 		guards.setList(modeWrappers);
@@ -149,11 +151,13 @@ public class AssessmentModeGuardController extends BasicController implements Ge
 	private ResourceGuard syncAssessmentMode(UserRequest ureq, TransientAssessmentMode mode) {
 		Date now = new Date();
 		Date beginWithLeadTime = mode.getBeginWithLeadTime();
-		if(!mode.isManual() && beginWithLeadTime.after(now)) {
+		Date endWithFollowupTime = mode.getEndWithFollowupTime();
+		//check if the mode must not be guarded anymore
+		if(mode.isManual() && (Status.end.equals(mode.getStatus()) || Status.none.equals(mode.getStatus()))) {
 			return null;
-		} else if(mode.isManual() && (Status.end.equals(mode.getStatus()) || Status.none.equals(mode.getStatus()))) {
+		} else if(!mode.isManual() && (beginWithLeadTime.after(now) || now.after(endWithFollowupTime))) {
 			return null;
-		}
+		} 
 		
 		ResourceGuard guard = guards.getGuardFor(mode);
 		if(guard == null) {
@@ -352,6 +356,8 @@ public class AssessmentModeGuardController extends BasicController implements Ge
 		
 		boolean canContinue = guards.getSize() == 0;
 		if(canContinue) {
+			cmc.deactivate();
+			
 			fireEvent(ureq, new Event("continue"));
 			String businessPath = "[MyCoursesSite:0]";
 			NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
@@ -368,6 +374,8 @@ public class AssessmentModeGuardController extends BasicController implements Ge
 	 * @param mode
 	 */
 	private void launchAssessmentMode(UserRequest ureq, TransientAssessmentMode mode) {
+		cmc.deactivate();
+		
 		ureq.getUserSession().setAssessmentModes(null);
 		OLATResourceable resource = mode.getResource();
 		ureq.getUserSession().setLockResource(resource, mode);
@@ -409,9 +417,9 @@ public class AssessmentModeGuardController extends BasicController implements Ge
 			this.continueButton = continueButton;
 		}
 		
-		public void sync(String status, String errors, TransientAssessmentMode mode, Locale locale) {
-			this.errors = errors;
-			this.status = status;
+		public void sync(String newStatus, String newErrors, TransientAssessmentMode mode, Locale locale) {
+			errors = newErrors;
+			status = newStatus;
 			
 			reference = mode;
 			name = mode.getName();
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeListController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeListController.java
index a85203d887cbb1c97fe4e5d0b8387ef24ba96212..ca7c5f4b123dccb3499c19b567f49124f004caca 100644
--- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeListController.java
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeListController.java
@@ -50,6 +50,7 @@ import org.olat.core.util.StringHelper;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.event.GenericEventListener;
 import org.olat.course.assessment.AssessmentMode;
+import org.olat.course.assessment.AssessmentMode.Status;
 import org.olat.course.assessment.AssessmentModeCoordinationService;
 import org.olat.course.assessment.AssessmentModeManager;
 import org.olat.course.assessment.AssessmentModeNotificationEvent;
@@ -71,7 +72,7 @@ public class AssessmentModeListController extends FormBasicController implements
 	private AssessmentModeListModel model;
 	private final TooledStackedPanel toolbarPanel;
 
-	private DialogBoxController deleteDialogBox;
+	private DialogBoxController startDialogBox, stopDialogBox,deleteDialogBox;
 	private AssessmentModeEditController editCtrl;
 	
 	private final RepositoryEntry entry;
@@ -114,16 +115,16 @@ public class AssessmentModeListController extends FormBasicController implements
 		//add the table
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.status.i18nKey(), Cols.status.ordinal(),
-				new ModeStatusCellRenderer()));
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.name.i18nKey(), Cols.name.ordinal()));
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.begin.i18nKey(), Cols.begin.ordinal()));
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.end.i18nKey(), Cols.end.ordinal()));
+				true, Cols.status.name(), new ModeStatusCellRenderer()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.name.i18nKey(), Cols.name.ordinal(), true, Cols.name.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.begin.i18nKey(), Cols.begin.ordinal(), true, Cols.begin.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.end.i18nKey(), Cols.end.ordinal(), true, Cols.end.name()));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.leadTime.i18nKey(), Cols.leadTime.ordinal(),
-				new TimeCellRenderer(getTranslator())));
+				true, Cols.leadTime.name(), new TimeCellRenderer(getTranslator())));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.followupTime.i18nKey(), Cols.followupTime.ordinal(),
-				new TimeCellRenderer(getTranslator())));
+				true, Cols.followupTime.name(), new TimeCellRenderer(getTranslator())));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.target.i18nKey(), Cols.target.ordinal(),
-				new TargetAudienceCellRenderer(getTranslator())));
+				true, Cols.target.name(), new TargetAudienceCellRenderer(getTranslator())));
 		columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("start", Cols.start.ordinal(), "start",
 				new BooleanCellRenderer(new StaticFlexiCellRenderer(translate("start"), "start"), null)));
 		columnsModel.addFlexiColumnModel(new StaticFlexiColumnModel("stop", Cols.stop.ordinal(), "stop",
@@ -133,6 +134,7 @@ public class AssessmentModeListController extends FormBasicController implements
 		model = new AssessmentModeListModel(columnsModel, assessmentModeCoordinationService);
 		tableEl = uifactory.addTableElement(getWindowControl(), "table", model, 20, false, getTranslator(), formLayout);
 		tableEl.setMultiSelect(true);
+		tableEl.setSelectAllEnable(true);
 	}
 	
 	private void loadModel() {
@@ -161,11 +163,20 @@ public class AssessmentModeListController extends FormBasicController implements
 			removeAsListenerAndDispose(editCtrl);
 			editCtrl = null;
 		} else if(deleteDialogBox == source) {
-			if(DialogBoxUIFactory.isYesEvent(event)) {
+			if(DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event)) {
 				@SuppressWarnings("unchecked")
 				List<AssessmentMode> rows = (List<AssessmentMode>)deleteDialogBox.getUserObject();
 				doDelete(rows);
-				loadModel();
+			}
+		} else if(startDialogBox == source) {
+			if(DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event)) {
+				AssessmentMode row = (AssessmentMode)startDialogBox.getUserObject();
+				doStart(row);
+			}
+		} else if(stopDialogBox == source) {
+			if(DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event)) {
+				AssessmentMode row = (AssessmentMode)stopDialogBox.getUserObject();
+				doStop(row);
 			}
 		}
 		super.event(ureq, source, event);
@@ -208,9 +219,9 @@ public class AssessmentModeListController extends FormBasicController implements
 				if("edit".equals(cmd)) {
 					doEdit(ureq, row);
 				} else if("start".equals(cmd)) {
-					doStart(ureq, row);
+					doConfirmStart(ureq, row);
 				} else if("stop".equals(cmd)) {
-					doStop(ureq, row);
+					doConfirmStop(ureq, row);
 				}
 			}
 		}
@@ -232,37 +243,65 @@ public class AssessmentModeListController extends FormBasicController implements
 	
 	private void doConfirmDelete(UserRequest ureq, List<AssessmentMode> modeToDelete) {
 		StringBuilder sb = new StringBuilder();
+		boolean canDelete = true;
 		for(AssessmentMode mode:modeToDelete) {
 			if(sb.length() > 0) sb.append(", ");
 			sb.append(mode.getName());
+			
+			Status status = mode.getStatus();
+			if(status == Status.leadtime || status == Status.assessment || status == Status.followup) {
+				canDelete = false;
+			}
 		}
 		
-		String names = StringHelper.escapeHtml(sb.toString());
-		String title = translate("confirm.delete.title");
-		String text = translate("confirm.delete.text", names);
-		deleteDialogBox = activateYesNoDialog(ureq, title, text, deleteDialogBox);
-		deleteDialogBox.setUserObject(modeToDelete);
+		if(canDelete) {
+			String names = StringHelper.escapeHtml(sb.toString());
+			String title = translate("confirm.delete.title");
+			String text = translate("confirm.delete.text", names);
+			deleteDialogBox = activateYesNoDialog(ureq, title, text, deleteDialogBox);
+			deleteDialogBox.setUserObject(modeToDelete);
+		} else {
+			showWarning("error.in.assessment");
+		}
 	}
 	
 	private void doDelete(List<AssessmentMode> modesToDelete) {
 		for(AssessmentMode modeToDelete:modesToDelete) {
 			assessmentModeMgr.delete(modeToDelete);
 		}
+		loadModel();
+		tableEl.deselectAll();
 	}
 	
 	private void doEdit(UserRequest ureq, AssessmentMode mode) {
 		removeAsListenerAndDispose(editCtrl);
 		editCtrl = new AssessmentModeEditController(ureq, getWindowControl(), entry.getOlatResource(), mode);
 		listenTo(editCtrl);
-		toolbarPanel.pushController(translate("new.mode"), editCtrl);
+		
+		String title = translate("form.mode.title", new String[]{ mode.getName() });
+		toolbarPanel.pushController(title, editCtrl);
+	}
+	
+	private void doConfirmStart(UserRequest ureq, AssessmentMode mode) {
+		String title = translate("confirm.start.title");
+		String text = translate("confirm.start.text");
+		startDialogBox = activateYesNoDialog(ureq, title, text, startDialogBox);
+		startDialogBox.setUserObject(mode);
 	}
 
-	private void doStart(UserRequest ureq, AssessmentMode mode) {
+	private void doStart(AssessmentMode mode) {
 		assessmentModeCoordinationService.startAssessment(mode);
 		loadModel();
 	}
 	
-	private void doStop(UserRequest ureq, AssessmentMode mode) {
+	private void doConfirmStop(UserRequest ureq, AssessmentMode mode) {
+		String title = translate("confirm.stop.title");
+		String text = translate("confirm.stop.text");
+		stopDialogBox = activateYesNoDialog(ureq, title, text, stopDialogBox);
+		stopDialogBox.setUserObject(mode);
+	}
+	
+	private void doStop(AssessmentMode mode) {
 		assessmentModeCoordinationService.stopAssessment(mode);
 		loadModel();
 	}
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModel.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModel.java
index 80a51c7c7b21e5eb258cacb753c34765b3798ec6..f3a02a2c984cc1b44f5c7ef5e61527c4857bd700 100644
--- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModel.java
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModel.java
@@ -21,8 +21,10 @@ package org.olat.course.assessment.ui;
 
 import java.util.List;
 
+import org.olat.core.commons.persistence.SortKey;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel;
 import org.olat.course.assessment.AssessmentMode;
 import org.olat.course.assessment.AssessmentModeCoordinationService;
 import org.olat.course.assessment.model.TransientAssessmentMode;
@@ -33,7 +35,7 @@ import org.olat.course.assessment.model.TransientAssessmentMode;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  *
  */
-public class AssessmentModeListModel extends DefaultFlexiTableDataModel<AssessmentMode> {
+public class AssessmentModeListModel extends DefaultFlexiTableDataModel<AssessmentMode> implements SortableFlexiTableDataModel<AssessmentMode> {
 	
 	private final AssessmentModeCoordinationService coordinationService;
 	
@@ -50,8 +52,16 @@ public class AssessmentModeListModel extends DefaultFlexiTableDataModel<Assessme
 	@Override
 	public Object getValueAt(int row, int col) {
 		AssessmentMode mode = getObject(row);
+		return getValueAt(mode, col);
+	}
+		
+	@Override
+	public Object getValueAt(AssessmentMode mode, int col) {
 		switch(Cols.values()[col]) {
 			case status: return mode.getStatus();
+			case course: return mode.getRepositoryEntry().getDisplayname();
+			case externalId: return mode.getRepositoryEntry().getExternalId();
+			case externalRef: return mode.getRepositoryEntry().getExternalRef();
 			case name: return mode.getName();
 			case begin: return mode.getBegin();
 			case end: return mode.getEnd();
@@ -76,6 +86,14 @@ public class AssessmentModeListModel extends DefaultFlexiTableDataModel<Assessme
 		return null;
 	}
 	
+	@Override
+	public void sort(SortKey orderBy) {
+		if(orderBy != null) {
+			List<AssessmentMode> views = new AssessmentModeListModelSort(orderBy, this, null).sort();
+			super.setObjects(views);
+		}
+	}
+
 	public boolean updateModeStatus(TransientAssessmentMode modeToUpdate) {
 		boolean updated = false;
 		
@@ -94,6 +112,9 @@ public class AssessmentModeListModel extends DefaultFlexiTableDataModel<Assessme
 	
 	public enum Cols {
 		status("table.header.status"),
+		course("table.header.course"),
+		externalId("table.header.externalId"),
+		externalRef("table.header.externalRef"),
 		name("table.header.name"),
 		begin("table.header.begin"),
 		end("table.header.end"),
diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModelSort.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModelSort.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e30ade2a26e2c583f2a5f4ca20ce4b7884f4b2e
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeListModelSort.java
@@ -0,0 +1,73 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.ui;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Locale;
+
+import org.olat.core.commons.persistence.SortKey;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableModelDelegate;
+import org.olat.course.assessment.AssessmentMode;
+import org.olat.course.assessment.AssessmentMode.Status;
+import org.olat.course.assessment.ui.AssessmentModeListModel.Cols;
+
+/**
+ * 
+ * Initial date: 30.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AssessmentModeListModelSort extends SortableFlexiTableModelDelegate<AssessmentMode> {
+	
+	public AssessmentModeListModelSort(SortKey orderBy, SortableFlexiTableDataModel<AssessmentMode> tableModel, Locale locale) {
+		super(orderBy, tableModel, locale);
+	}
+
+	@Override
+	protected void sort(List<AssessmentMode> rows) {
+		int columnIndex = getColumnIndex();
+		Cols column = Cols.values()[columnIndex];
+		switch(column) {
+			case status: Collections.sort(rows, new StatusComparator()); break;
+			default: {
+				super.sort(rows);
+			}
+		}
+	}
+	
+	private static class StatusComparator implements Comparator<AssessmentMode> {
+		@Override
+		public int compare(AssessmentMode o1, AssessmentMode o2) {
+			Status s1 = o1.getStatus();
+			Status s2 = o2.getStatus();
+			
+			if(s1 == null) {
+				if(s2 == null) return 0;
+				return -1;
+			}
+			if(s2 == null) return 1;
+			
+			return s1.ordinal() - s2.ordinal();
+		}
+	}
+}
diff --git a/src/main/java/org/olat/course/assessment/ui/ChooseElementsController.java b/src/main/java/org/olat/course/assessment/ui/ChooseElementsController.java
index ae298eb54258f361f8a761a8d640a395c8099d37..34e37e4139f1b97bea0565990c607e9c33353451 100644
--- a/src/main/java/org/olat/course/assessment/ui/ChooseElementsController.java
+++ b/src/main/java/org/olat/course/assessment/ui/ChooseElementsController.java
@@ -31,6 +31,8 @@ import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.tree.MenuTreeItem;
+import org.olat.core.gui.components.tree.TreeModel;
+import org.olat.core.gui.components.tree.TreeNode;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
@@ -38,8 +40,6 @@ import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
-import org.olat.course.nodes.CourseNode;
-import org.olat.course.tree.CourseEditorTreeModel;
 
 /**
  * 
@@ -50,7 +50,7 @@ import org.olat.course.tree.CourseEditorTreeModel;
 public class ChooseElementsController extends FormBasicController {
 
 	private MenuTreeItem selectTree;
-	private CourseEditorTreeModel treeModel;
+	private TreeModel treeModel;
 	private FormLink selectAll, deselectAll;
 
 	private final OLATResourceable ores;
@@ -71,7 +71,7 @@ public class ChooseElementsController extends FormBasicController {
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		ICourse course = CourseFactory.loadCourse(ores);
-		treeModel = course.getEditorTreeModel();
+		treeModel = new CourseNodeSelectionTreeModel(course);
 		selectTree = uifactory.addTreeMultiselect("elements", null, formLayout, treeModel, this);
 		selectTree.setMultiSelect(true);
 		selectTree.setSelectedKeys(preSelectedKeys);
@@ -93,11 +93,11 @@ public class ChooseElementsController extends FormBasicController {
 		List<String> names = new ArrayList<>(selectedKeys.size());
 		for(String selectedKey:selectedKeys) {
 			
-			CourseNode node = treeModel.getCourseNode(selectedKey);
+			TreeNode node = treeModel.getNodeById(selectedKey);
 			if(node == null) {
 				//not published??
 			} else {
-				names.add(node.getShortTitle());
+				names.add(node.getTitle());
 			}
 		}
 		
diff --git a/src/main/java/org/olat/course/assessment/ui/ChooseStartElementController.java b/src/main/java/org/olat/course/assessment/ui/ChooseStartElementController.java
index 1b233aeddddb5d503ae826972db89b2358de2e0f..7391a04c21afeedbdf4f102000070c3cadc2de47 100644
--- a/src/main/java/org/olat/course/assessment/ui/ChooseStartElementController.java
+++ b/src/main/java/org/olat/course/assessment/ui/ChooseStartElementController.java
@@ -19,21 +19,25 @@
  */
 package org.olat.course.assessment.ui;
 
-import java.util.Collections;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
+import org.olat.core.gui.components.tree.GenericTreeModel;
 import org.olat.core.gui.components.tree.MenuTreeItem;
+import org.olat.core.gui.components.tree.TreeNode;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.util.nodes.INode;
 import org.olat.core.util.resource.OresHelper;
+import org.olat.core.util.tree.INodeFilter;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
-import org.olat.course.nodes.CourseNode;
-import org.olat.course.tree.CourseEditorTreeModel;
+import org.olat.course.Structure;
 
 /**
  * 
@@ -44,15 +48,18 @@ import org.olat.course.tree.CourseEditorTreeModel;
 public class ChooseStartElementController extends FormBasicController {
 
 	private MenuTreeItem selectTree;
-	private CourseEditorTreeModel treeModel;
+	private GenericTreeModel treeModel;
 
 	private final OLATResourceable ores;
 	private final String preSelectedKey;
+	private final List<String> elementKeys;
 
-	public ChooseStartElementController(UserRequest ureq, WindowControl wControl, String selectedKey, OLATResourceable ores) {
+	public ChooseStartElementController(UserRequest ureq, WindowControl wControl,
+			String selectedKey, List<String> elementKeys, OLATResourceable ores) {
 		super(ureq, wControl, "course_element");
 		this.ores = OresHelper.clone(ores);
 		preSelectedKey = selectedKey;
+		this.elementKeys = elementKeys;
 		initForm(ureq);
 	}
 	
@@ -64,9 +71,13 @@ public class ChooseStartElementController extends FormBasicController {
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		ICourse course = CourseFactory.loadCourse(ores);
-		treeModel = course.getEditorTreeModel();
+		treeModel = new CourseNodeSelectionTreeModel(course);
 		selectTree = uifactory.addTreeMultiselect("elements", null, formLayout, treeModel, this);
-		selectTree.setSelectedKeys(Collections.singletonList(preSelectedKey));
+		selectTree.setSelectedNodeId(preSelectedKey);
+		selectTree.setNoDirtyCheckOnClick(true);
+		if(elementKeys != null) {
+			selectTree.setFilter(new RestionctionsFilter(elementKeys, course));
+		}
 		
 		uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl());
 		uifactory.addFormSubmitButton("ok", formLayout);
@@ -80,11 +91,11 @@ public class ChooseStartElementController extends FormBasicController {
 		String selectedKey = getSelectedKey();
 		String name = null;
 
-		CourseNode node = treeModel.getCourseNode(selectedKey);
+		TreeNode node = treeModel.getNodeById(selectedKey);
 		if(node == null) {
 			//not published??
 		} else {
-			name = node.getShortTitle();
+			name = node.getTitle();
 		}
 		return name;
 	}
@@ -98,4 +109,24 @@ public class ChooseStartElementController extends FormBasicController {
 	protected void formCancelled(UserRequest ureq) {
 		fireEvent(ureq, Event.CANCELLED_EVENT);
 	}
+	
+	private class RestionctionsFilter implements INodeFilter {
+		
+		private final List<String> keysAndParents = new ArrayList<>();
+		
+		public RestionctionsFilter(List<String> keys, ICourse course) {
+			Structure runstructure = course.getRunStructure();
+			for(String nodeId:keys) {
+				//allow the parent line
+				for(INode courseNode = runstructure.getNode(nodeId); courseNode != null; courseNode = courseNode.getParent()) {
+					keysAndParents.add(courseNode.getIdent());
+				}
+			}
+		}
+
+		@Override
+		public boolean isVisible(INode node) {
+			return keysAndParents.contains(node.getIdent());
+		}	
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/ui/CourseNodeSelectionTreeModel.java b/src/main/java/org/olat/course/assessment/ui/CourseNodeSelectionTreeModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..b3ce1b3f80e87de76f2cfa4e0e8516fa57869e4a
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/CourseNodeSelectionTreeModel.java
@@ -0,0 +1,53 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.course.assessment.ui;
+
+import org.olat.core.gui.components.tree.GenericTreeModel;
+import org.olat.core.gui.components.tree.GenericTreeNode;
+import org.olat.core.gui.components.tree.TreeNode;
+import org.olat.course.ICourse;
+import org.olat.course.nodes.CourseNode;
+
+/**
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CourseNodeSelectionTreeModel extends GenericTreeModel {
+
+	private static final long serialVersionUID = 7708592865968524515L;
+
+	public CourseNodeSelectionTreeModel(ICourse course) {
+		TreeNode rootNode = buildTree(course.getRunStructure().getRootNode());
+		setRootNode(rootNode);
+	}
+
+	private TreeNode buildTree(CourseNode courseNode) {
+		GenericTreeNode node = new GenericTreeNode(courseNode.getIdent(), courseNode.getShortTitle(), courseNode);
+		node.setIconCssClass(("o_icon o_" + courseNode.getType() + "_icon").intern());
+		node.setAltText(courseNode.getLongTitle());
+		for (int i = 0; i < courseNode.getChildCount(); i++) {
+			CourseNode childNode = (CourseNode)courseNode.getChildAt(i);
+			node.addChild(buildTree(childNode));
+		}
+		return node;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/ui/_content/admin.html b/src/main/java/org/olat/course/assessment/ui/_content/admin.html
new file mode 100644
index 0000000000000000000000000000000000000000..d2d1c9ffd065c5bcaa60993dd40a94c2a26f4b27
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/_content/admin.html
@@ -0,0 +1,2 @@
+$r.render("settings")
+$r.render("list")
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/ui/_content/admin_search.html b/src/main/java/org/olat/course/assessment/ui/_content/admin_search.html
new file mode 100644
index 0000000000000000000000000000000000000000..3bc67413e3d9ae289d33c0224a1ab6f3976c448f
--- /dev/null
+++ b/src/main/java/org/olat/course/assessment/ui/_content/admin_search.html
@@ -0,0 +1,17 @@
+<fieldset class="o_form form-horizontal" role="form">
+	<legend>$r.translate("assessment.mode.admin.list")</legend> 
+	<div class="row">
+		<div class="col-md-6">
+			$r.render("left_1")
+		</div>
+		<div class="col-md-6">
+			$r.render("right_1")
+		</div>
+	</div>
+	<div class="row">
+		<div class="col-md-offset-3 col-md-9">
+			$r.render("button_layout")
+		</div>
+	</div>
+	$r.render("table")
+</fieldset>
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/assessment/ui/_content/choose_mode.html b/src/main/java/org/olat/course/assessment/ui/_content/choose_mode.html
index 4302cfa2e9d558a039d7f117d803c62b91ad0f07..4ca36921b9b82eee15cf2dd65a999667961f8eff 100644
--- a/src/main/java/org/olat/course/assessment/ui/_content/choose_mode.html
+++ b/src/main/java/org/olat/course/assessment/ui/_content/choose_mode.html
@@ -1,11 +1,16 @@
-<div class="o_info">$r.translate("current.mode.desc")</div>
+#if($guards.list.empty)
+	<div class="o_info">$r.translate("current.mode.end.info")</div>
+#else
+	<div class="o_info">$r.translate("current.mode.desc")</div>
+#end
+
 #foreach($mode in $guards.list)
 	<h2>$mode.name <small>$r.translate("current.mode.course", $mode.displayName)</small></h2>
 	<p><em>$r.translate("current.mode.datetimes", $mode.begin, $mode.end)</em>
-		#if(!$mode.leadTime.empty)
+		#if($mode.leadTime && !$mode.leadTime.empty)
 			<br/><em>$r.translate("current.mode.leadtime", $mode.leadTime)</em>
 		#end
-		#if(!$mode.followupTime.empty)
+		#if($mode.followupTime && !$mode.followupTime.empty)
 			<br/><em>$r.translate("current.mode.followuptime", $mode.followupTime)</em>
 		#end
 	</p>
diff --git a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties
index cbc90e6ebe2fe5f67203639bfe8be7bf78727a37..20c2e8229b20b0c7ea38d87764cdb8d6a34208a6 100644
--- a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties
@@ -1,19 +1,33 @@
 #Mon Mar 02 09:54:04 CET 2009
-add.mode=Pr\u00FCfungssetting erstellen
+admin.menu.title=Pr\u00FCfungsmodus
+admin.menu.title.alt=$\:admin.menu.title
+add.mode=Pr\u00FCfungskonfiguration erstellen
 areas=Lernbereich
 assessment.countdown=Die Pr\u00FCfung wird in {0} Minuten beendet.
+assessment.mode.title=Pr\u00FCfungsmodus Konfiguration
+assessment.mode.enabled=Pr\u00FCfungsmodus einschalten
+assessment.mode.enabled.on=ein
+assessment.mode.admin.list=Pr\u00FCfungsmodus
+assessment.mode.date=Datum
+assessment.mode.id=ID
+assessment.mode.name=Name
 choose.areas=Lernbereich ausw\u00E4hlen
 choose.elements=Kursbausteine ausw\u00E4hlen
 choose.groups=Gruppen ausw\u00E4hlen
 choose.start.element=Kursbaustein ausw\u00E4hlen
+cif.error.corrupted=$org.olat.repository\:cif.error.corrupted
 confirm.delete.title=Pr\u00FCfungsettings l\u00F6schen
 confirm.delete.text=Wollen Sie wirklich diese Pr\u00FCfungsettings "{0}" l\u00F6schen?
-confirm.status.change.title=Status von Pr\u00FCfungssettings wird ge\u00E4ndert
+confirm.start.title=Pr\u00FCfung starten
+confirm.start.text=Wollen Sie die Pr\u00FCfung jetzt starten?
+confirm.status.change.title=Status von Pr\u00FCfung wird ge\u00E4ndert
 confirm.status.change.none=Pr\u00FCfung wird als nicht gestartet gesetzt.
 confirm.status.change.leadtime=Pr\u00FCfung ist in Vorlaufzeit.
 confirm.status.change.assessment=Pr\u00FCfung wird gestartet.
 confirm.status.change.followup=Pr\u00FCfung ist in Nachlaufzeit.
 confirm.status.change.end=Pr\u00FCfung wird beendet.
+confirm.stop.title=Pr\u00FCfung beenden
+confirm.stop.text=Wollen Sie die Pr\u00FCfung jetzt beenden?
 current.mode=Aktuelle Pr\u00FCfung
 current.mode.continue=Zur\u00FCck zu OpenOLAT
 current.mode.desc=Im folgenden Kurs ist f\u00FCr den aktuellen Zeitraum eine Pr\u00FCfung f\u00FCr Sie vorgesehen. W\u00E4hrend dieser Pr\u00FCfung k\u00F6nnen keine anderen Funktionen in OpenOLAT verwendet werden:
@@ -25,17 +39,18 @@ current.mode.leadtime=Ab {0} Minuten vor Pr\u00FCfungsbeginn k\u00F6nnen keine a
 current.mode.followuptime=W\u00E4hrend {0} Minuten nach Pr\u00FCfungsende k\u00F6nnen keine andere Kurse ge\u00F6ffnet werden.
 current.mode.followuptime.info=Sie d\u00FCrfen noch nicht in OpenOLAT. Sie m\u00FCssen warten, bis die Nachlaufzeit der Pr\u00FCfung abgelaufen ist.
 current.mode.in=Die Pr\u00FCfung f\u00E4ngt in {0} Minuten an.
-delete.mode=Pr\u00FCfungssetting l\u00F6schen
+delete.mode=Pr\u00FCfungskonfiguration l\u00F6schen
 edit=Bearbeiten
 elements=Kursbausteine
-error.atleastone=Bitte w\u00E4hlen Sie mindestens ein Pr\u00FCfungssetting.
+error.atleastone=Bitte w\u00E4hlen Sie mindestens ein Pr\u00FCfungskonfiguration.
+error.in.assessment=Sie d\u00FCrfen kein Pr\u00FCfungen l\u00F6schen die gerade gestartet sind.
 error.ip.range=Sie sind nicht im richtigen Netzwerk.
 error.safe.exam=Bitte benutzen Sie den Safe Exam Browser.
 error.begin.after.end=Das Beginn-Datum muss vor dem Ende-Datum liegen.
 error.group.missing=Sie m\u00FCssen mindestens eine Gruppe ausw\u00E4hlen.
-form.mode.description=Erstellen Sie ein neues Pr\u00FCfungssetting, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
-form.mode.title=Pr\u00FCfungssetting {0}
-form.mode.title.add=Pr\u00FCfungssetting
+form.mode.description=Erstellen Sie eine neue Pr\u00FCfungskonfiguration, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
+form.mode.title=Pr\u00FCfung "{0}"
+form.mode.title.add=Pr\u00FCfung
 groups=Gruppe
 mode.begin=Beginn
 mode.beginend=Art des Beginns/Endes
@@ -48,7 +63,7 @@ mode.leadTime=Vorlaufzeit
 mode.name=Titel
 mode.ips=Einschr\u00E4nkung auf IP Adressen
 mode.ips.list=Zul\u00E4ssige IP Adressen
-mode.for.coach=Pr\u00FCfungssettings auch bei Betreuer anwenden
+mode.for.coach=Pr\u00FCfungskonfiguration auch bei Betreuer anwenden
 mode.description=Beschreibung
 mode.safeexambrowser=Safe Exam Browser verwenden
 mode.safeexambrowser.key=Safe Exam Browser Keys
@@ -56,8 +71,8 @@ mode.safeexambrowser.hint=Safe Exam Browser Hinweis
 mode.start.element=Startbaustein
 mode.target=Teilnehmer
 modes.title=Pr\u00FCfungsmodus
-modes.description=Erstellen Sie ein neues Pr\u00FCfungssetting, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
-new.mode=Neues Pr\u00FCfungssetting
+modes.description=Erstellen Sie eine neue Pr\u00FCfungskonfiguration, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
+new.mode=Neue Pr\u00FCfung
 popup.chooseareas=$\:choose.areas
 popup.choosegroups=$\:choose.groups
 popup.chooseelements=$\:choose.elements
@@ -66,9 +81,12 @@ start=Starten
 stop=Beenden
 table.header.name=Pr\u00FCfung
 table.header.begin=Von
+table.header.course=Kurs
 table.header.end=Bis
 table.header.followupTime=Nachlauf
 table.header.leadTime=Vorlauf
+table.header.externalId=$org.olat.repository\:table.header.externalid
+table.header.externalRef=$org.olat.repository\:table.header.externalref
 table.header.status=Status
 table.header.target=F\u00FCr
 target.courseAndGroups=Teilnehmer aus Kurs und Gruppen
diff --git a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties
index 88cd94609c457d55e0bd694399d70ada03acb762..5db6fec786f07925b2afc4327c207c6c523fd42f 100644
--- a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties
@@ -1 +1,82 @@
-#Mon Mar 02 09:54:04 CET 2009
+#Fri Feb 06 10:03:07 CET 2015
+add.mode=Create exam setting
+areas=Learning areas
+assessment.countdown=The exam will end in {0} minute(s)
+choose.areas=Select learning areas
+choose.elements=Select course element
+choose.groups=Select groups
+choose.start.element=Select course element
+cif.error.corrupted=$org.olat.repository\:cif.error.corrupted
+confirm.delete.text=Do you really want to delete these exam settings "{0}"
+confirm.delete.title=Delete exam setting
+confirm.start.text=Do you want to start the exam now?
+confirm.start.title=Start exam
+confirm.status.change.assessment=The exam will be started.
+confirm.status.change.end=The exam will be ended.
+confirm.status.change.followup=The exam is in follow-up time.
+confirm.status.change.leadtime=The exam is in preparation time.
+confirm.status.change.title=The state of the exam setting will be changed.
+confirm.stop.text=Do you want to end now the exam?
+confirm.stop.title=End the exam
+current.mode=Scheduled exam
+current.mode.continue=Back to OpenOLAT
+current.mode.course=in course "{0}"
+current.mode.datetimes=From {0} until / to {1}
+current.mode.desc=You currently have an exam scheduled in the course listed below. While this assessment is in effect, no other OpenOLAT functions can be accessed.
+current.mode.end.info=The exam is finished. You can now continue to work normally with OpenOLAT.
+current.mode.followuptime=For {0} minute(s) after the exam is finished, all access to other courses is equally disabled.
+current.mode.in=The exam starts in {0} minute(s)
+current.mode.leadtime={0} minute(s) before the exam starts, all access to other courses is disabled.
+current.mode.start=Start the exam
+delete.mode=Delete exam setting
+edit=Edit
+elements=Course elements
+error.atleastone=Please, choose at least one exam setting.
+error.begin.after.end=The start date must be before the end date.
+error.group.missing=You must choose at least one group.
+error.ip.range=You are not in the right network.
+error.safe.exam=Please, use the Safe Exam Browser.
+form.mode.description=Create a new exam setting in order to run this course or a single course elements in a safe mode with restricted options.
+form.mode.title=Exam setting {0}
+form.mode.title.add=Exam setting
+groups=Groups
+mode.begin=Start
+mode.beginend=Start / End mode
+mode.beginend.automatic=Automatic
+mode.beginend.manual=Manual
+mode.course.element.restriction=Restrict access to single course elements
+mode.description=Description
+mode.end=End
+mode.followupTime=Follow-up
+mode.for.coach=Apply exam setting for coach
+mode.ips=Limit to IP address
+mode.ips.list=Admissible IP addresses
+mode.leadTime=Prep time
+mode.name=Title
+mode.safeexambrowser=Use Safe Exam Browser
+mode.safeexambrowser.hint=Safe Exam Browser information
+mode.safeexambrowser.key=Safe Exam Browser Keys
+mode.start.element=First element shown
+mode.target=Participants
+modes.description=Create a new exam setting in order to run this course or single course elements in a safe mode with restricted options.
+modes.title=Assessment mode
+new.mode=New exam setting
+popup.chooseareas=$\:choose.areas
+popup.chooseelements=$\:choose.elements
+popup.choosegroups=$\:choose.groups
+popup.choosestartelement=Select course element
+start=Start
+stop=End
+table.header.begin=From
+table.header.end=To
+table.header.externalId=$org.olat.repository\:table.header.externalid
+table.header.externalRef=$org.olat.repository\:table.header.externalref
+table.header.followupTime=Follow-up
+table.header.leadTime=Prep time
+table.header.name=Exam
+table.header.status=Status
+table.header.target=For
+target.course=Course participants only
+target.courseAndGroups=Participants from course and groups
+target.groups=Group participants only
+time.formatted={0}m
diff --git a/src/main/java/org/olat/course/certificate/CertificatesManager.java b/src/main/java/org/olat/course/certificate/CertificatesManager.java
index 05ca721c746a31d406f497677d444dd36f35d38b..d56331cebba45075928b358f1f1318b2929919a7 100644
--- a/src/main/java/org/olat/course/certificate/CertificatesManager.java
+++ b/src/main/java/org/olat/course/certificate/CertificatesManager.java
@@ -59,6 +59,9 @@ public interface CertificatesManager {
 	
 	public void markPublisherNews(Identity ident, ICourse course);
 	
+	//repository maintenance
+	public int deleteRepositoryEntry(RepositoryEntry re);
+	
 	//templates management
 	public List<CertificateTemplate> getTemplates();
 	
diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
index ac73f7565e0e967b9b93a738647d1bb2fc39e1bd..acc66bef09ff8245e55b8269195242226c14e792 100644
--- a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
+++ b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
@@ -282,6 +282,16 @@ public class CertificatesManagerImpl implements CertificatesManager, MessageList
 		}
 	}
 	
+	@Override
+	public int deleteRepositoryEntry(RepositoryEntry re) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("update certificate set olatResource = null where olatResource.key=:resourceKey");
+		return dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString())
+				.setParameter("resourceKey", re.getOlatResource().getKey())
+				.executeUpdate();
+	}
+
 	@Override
 	public VFSLeaf getCertificateLeaf(Certificate certificate) {
 		VFSContainer cerContainer = getCertificateRootContainer();
diff --git a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementController.java b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementController.java
index af693b611f63c8b2eb7a88aa3ddf723f5e8ad877..784f7425cc664b5a004f570f5a28653353aa2a17 100644
--- a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementController.java
+++ b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementController.java
@@ -56,8 +56,6 @@ import org.olat.core.util.mail.ContactList;
 import org.olat.core.util.mail.ContactMessage;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.core.util.vfs.VFSContainer;
-import org.olat.course.CourseFactory;
-import org.olat.course.ICourse;
 import org.olat.course.assessment.EfficiencyStatement;
 import org.olat.course.assessment.EfficiencyStatementManager;
 import org.olat.course.assessment.IdentityAssessmentEditController;
@@ -66,6 +64,8 @@ import org.olat.course.assessment.portfolio.EfficiencyStatementArtefact;
 import org.olat.course.certificate.Certificate;
 import org.olat.course.certificate.CertificatesManager;
 import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupService;
+import org.olat.group.model.SearchBusinessGroupParams;
 import org.olat.modules.co.ContactFormController;
 import org.olat.portfolio.EPArtefactHandler;
 import org.olat.portfolio.PortfolioModule;
@@ -111,6 +111,8 @@ public class CertificateAndEfficiencyStatementController extends BasicController
 	private PortfolioModule portfolioModule;
 	@Autowired
 	private CertificatesManager certificatesManager;
+	@Autowired
+	private BusinessGroupService businessGroupService;
 	
 	/**
 	 * The constructor shows the efficiency statement given as parameter for the current user
@@ -152,8 +154,8 @@ public class CertificateAndEfficiencyStatementController extends BasicController
 		this.businessGroup = businessGroup;
 
 		if(businessGroup == null && courseRepo != null) {
-			ICourse course = CourseFactory.loadCourse(courseRepo.getOlatResource());
-			List<BusinessGroup> groups = course.getCourseEnvironment().getCourseGroupManager().getParticipatingBusinessGroups(statementOwner);
+			SearchBusinessGroupParams params = new SearchBusinessGroupParams(statementOwner, false, true);
+			List<BusinessGroup> groups = businessGroupService.findBusinessGroups(params, courseRepo, 0, -1);
 			if(groups.size() > 0) {
 				businessGroup = groups.get(0);
 			}
diff --git a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java
index d4fd095dbed9a3763a958e7ef9f0a97ab8f61f3d..574516190cf551e739bd2cf08285b18055cb8b49 100644
--- a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java
+++ b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListController.java
@@ -30,6 +30,7 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FormLink;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.form.flexible.impl.FormEvent;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiColumnModel;
@@ -40,6 +41,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTable
 import org.olat.core.gui.components.form.flexible.impl.elements.table.SelectionEvent;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiCellRenderer;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.StaticFlexiColumnModel;
+import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.stack.BreadcrumbPanel;
 import org.olat.core.gui.components.stack.BreadcrumbPanelAware;
 import org.olat.core.gui.control.Controller;
@@ -93,11 +95,13 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 	
 	private FlexiTableElement tableEl;
 	private BreadcrumbPanel stackPanel;
+	private FormLink coachingToolButton;
 	private CertificateAndEfficiencyStatementListModel tableModel;
 
 	private DialogBoxController confirmDeleteCtr;
 	private ArtefactWizzardStepsController ePFCollCtrl;
 	
+	private final boolean linkToCoachingTool;
 	private Identity assessedIdentity;
 	
 	@Autowired
@@ -112,13 +116,15 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 	private CertificatesManager certificatesManager;
 	
 	public CertificateAndEfficiencyStatementListController(UserRequest ureq, WindowControl wControl) {
-		this(ureq, wControl, ureq.getUserSession().getIdentity());
+		this(ureq, wControl, ureq.getUserSession().getIdentity(), false);
 	}
 	
-	public CertificateAndEfficiencyStatementListController(UserRequest ureq, WindowControl wControl, Identity assessedIdentity) {
-		super(ureq, wControl, LAYOUT_BAREBONE);
+	public CertificateAndEfficiencyStatementListController(UserRequest ureq, WindowControl wControl,
+			Identity assessedIdentity, boolean linkToCoachingTool) {
+		super(ureq, wControl, "cert_statement_list");
 		setTranslator(Util.createPackageTranslator(IdentityAssessmentEditController.class, getLocale(), getTranslator()));
 		this.assessedIdentity = assessedIdentity;
+		this.linkToCoachingTool = linkToCoachingTool;
 		
 		initForm(ureq);
 		
@@ -161,6 +167,10 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		if(linkToCoachingTool) {
+			coachingToolButton = uifactory.addFormLink("coaching.tool", formLayout, Link.BUTTON);
+		}
+		
 		FlexiTableColumnModel tableColumnModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
 		tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.displayName.i18n(), Cols.displayName.ordinal()));
 		tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.score.i18n(), Cols.score.ordinal()));
@@ -168,6 +178,7 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 				new PassedCellRenderer()));
 		tableColumnModel.addFlexiColumnModel(new StaticFlexiColumnModel("table.header.show",
 				translate("table.header.show"), CMD_SHOW));
+		tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.lastModified.i18n(), Cols.lastModified.ordinal()));
 		tableColumnModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.certificate.i18n(), Cols.certificate.ordinal(),
 				new DownloadCertificateCellRenderer(assessedIdentity)));
 		tableColumnModel.addFlexiColumnModel(new StaticFlexiColumnModel("table.header.launchcourse",
@@ -199,6 +210,7 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 			wrapper.setScore(efficiencyStatement.getScore());
 			wrapper.setEfficiencyStatementKey(efficiencyStatement.getKey());
 			wrapper.setResourceKey(efficiencyStatement.getArchivedResourceKey());
+			wrapper.setLastModified(efficiencyStatement.getLastModified());
 			
 			statments.add(wrapper);
 			resourceKeyToStatments.put(efficiencyStatement.getArchivedResourceKey(), wrapper);
@@ -247,6 +259,8 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 					doCollectArtefact(ureq, statement.getDisplayName(), statement.getEfficiencyStatementKey());
 				}
 			}
+		} else if(coachingToolButton == source) {
+			doLaunchCoachingTool(ureq);
 		}
 		super.formInnerEvent(ureq, source, event);
 	}
@@ -289,6 +303,11 @@ public class CertificateAndEfficiencyStatementListController extends FormBasicCo
 		tableEl.reset();
 		showInfo("info.efficiencyStatement.deleted");
 	}
+	
+	private void doLaunchCoachingTool(UserRequest ureq) {
+		String businessPath = "[CoachSite:0][search:0][Identity:" + assessedIdentity.getKey() + "]";
+		NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
+	}
 
 	private void doLaunchCourse(UserRequest ureq, Long resourceKey) {
 		RepositoryEntry entry = repositoryService.loadByResourceKey(resourceKey);
diff --git a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListModel.java b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListModel.java
index 01dc54944c9948274b9fe2051eb73f73e19a6f3c..6bd0fc6b3d2a99fa18d8169a7d9c2d828adcfa59 100644
--- a/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListModel.java
+++ b/src/main/java/org/olat/course/certificate/ui/CertificateAndEfficiencyStatementListModel.java
@@ -19,6 +19,8 @@
  */
 package org.olat.course.certificate.ui;
 
+import java.util.Date;
+
 import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFlexiTableDataModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.course.assessment.AssessmentHelper;
@@ -51,6 +53,7 @@ public class CertificateAndEfficiencyStatementListModel extends DefaultFlexiTabl
 				Float score = statement.getScore();
 				return AssessmentHelper.getRoundedScore(score);
 			case passed: return statement.getPassed();
+			case lastModified: return statement.getLastModified();
 			case certificate:
 				return statement.getCertificate();
 			case efficiencyStatement: return statement.getEfficiencyStatementKey();
@@ -63,6 +66,7 @@ public class CertificateAndEfficiencyStatementListModel extends DefaultFlexiTabl
 		displayName("table.header.course"),
 		score("table.header.score"),
 		passed("table.header.passed"),
+		lastModified("table.header.lastScoreDate"),
 		efficiencyStatement("table.header.certificate"),
 		certificate("table.header.certificate");
 		
@@ -81,6 +85,7 @@ public class CertificateAndEfficiencyStatementListModel extends DefaultFlexiTabl
 		
 		private Float score;
 		private Boolean passed;
+		private Date lastModified;
 		private String displayName;
 		
 		private Long resourceKey;
@@ -111,6 +116,14 @@ public class CertificateAndEfficiencyStatementListModel extends DefaultFlexiTabl
 			this.passed = passed;
 		}
 
+		public Date getLastModified() {
+			return lastModified;
+		}
+
+		public void setLastModified(Date lastModified) {
+			this.lastModified = lastModified;
+		}
+
 		public CertificateLight getCertificate() {
 			return certificate;
 		}
diff --git a/src/main/java/org/olat/course/certificate/ui/_content/cert_statement_list.html b/src/main/java/org/olat/course/certificate/ui/_content/cert_statement_list.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8d6e0e0c4c3b55aa7e4b5a1a954ff5528f0a200
--- /dev/null
+++ b/src/main/java/org/olat/course/certificate/ui/_content/cert_statement_list.html
@@ -0,0 +1,6 @@
+#if($r.available("coaching.tool"))
+<div class="o_button_group o_button_group_right">
+	$r.render("coaching.tool")
+</div>
+#end
+$r.render("certificates")
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
index c5e8eea6bf239069c2f464c1c49a56f5f9f18d12..a51dd1efaea967c033567afb2b6d6aef38f55ea0 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
@@ -4,6 +4,7 @@ admin.certificates.title=Zertifikate
 admin.certificates.description=Laden Sie PDF-Formulare als Vorlagen f\u00FCr OpenOLAT Kurszertifikate hoch.
 certificate=Zertifikate
 certificate.creationdate=Zertifikat ausgestellt am {0}
+coaching.tool=Coaching
 confirm.delete.title=Zertifikate l\u00F6schen
 confirm.delete.text=Wollen Sie dieses Zertifikat wirklich l\u00F6schen?
 table.header.certificate=Zertifikat
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
index 0d6590a45fd544602b7ad391f9184b0377ae6bcb..a8f42900937bfb0e747105ae5eae7d5e2b39a3f1 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
@@ -12,6 +12,7 @@ certificates.wizard.title=Create certificates
 certification.email.body=Congratulations\!\r\n\r\nYou have received a certification.\r\nPlease find attached the certificate to the course "{0}".
 certification.email.subject=You have received an OpenOLAT certification
 chelp.admin-certificates.title=Certificate configuration
+coaching.tool=Coaching
 choose.title=Select template
 confirm.certificate.deleted=The certificate from {0} was deleted.
 confirm.certificate.template.deleted=The template {0} has been deleted.
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_pt_BR.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c002cad2a4a04c3f69519d5bebcc56b111462257
--- /dev/null
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_pt_BR.properties
@@ -0,0 +1,62 @@
+#Sat Jan 24 15:30:08 CET 2015
+admin.certificates.description=Envie formul\u00E1rios em PDF como modelos para os certificados de cursos.
+admin.certificates.title=Certificados
+admin.menu.title=Certificados
+admin.menu.title.alt=Configura\u00E7\u00E3o de Certificados
+certificate=Certificados
+certificate.creationdate=Certificado emitido em {0}
+certificates.wizard.overview=Vis\u00E3o geral
+certificates.wizard.select=Selecionar usu\u00E1rio
+certificates.wizard.title=Criar certificados
+certification.email.body=Parab\u00E9ns\!\r\n\r\nVoc\u00EA recebeu uma certifica\u00E7\u00E3o.\r\nSegue em anexo o certificado para o curso "{0}".
+certification.email.subject=Voc\u00EA recebeu uma certifica\u00E7\u00E3o OpenOLAT
+chelp.admin-certificates.title=Configura\u00E7\u00E3o do Certificado
+choose.title=Selecionar modelo
+confirm.certificate.deleted=O certificado de {0} foi exclu\u00EDdo.
+confirm.certificate.template.deleted=O modelo {0} foi exclu\u00EDdo.
+confirm.certificate.text=O certificado j\u00E1 foi emitido e o per\u00EDodo de re-certifica\u00E7\u00E3o ainda n\u00E3o expirou. Voc\u00EA deseja criar um novo certificado de qualquer maneira?
+confirm.certificate.title=Criar certificado
+confirm.delete.certificate.text=Voc\u00EA realmente deseja excluir o certificado?
+confirm.delete.certificate.title=Excluir certificado
+confirm.delete.text=Voc\u00EA realmente deseja excluir esse certificado
+confirm.delete.title=Excluir certificados
+default.template=Modelo padr\u00E3o
+details.certificate=Certificado
+details.course.infos=Detalhes de desempenho
+download.button=Baixar certificado
+format=Formato
+generate.certificate=Criar certificado
+help.hover.admincertificates=Ajuda sobre a configura\u00E7\u00E3o de certificados
+landscape=Paisagem
+msg.certificate.pending=O certificado ser\u00E1 criado dentro dos pr\u00F3ximos segundos
+no.certificate=Nenhum certificado dispon\u00EDvel
+notifications.desc={0} recebeu um novo certificado
+notifications.header=Novos certificados para o curso "{0}".
+notifications.title=Novos Certificados no curso "{0}".
+options.certificates.title=Configura\u00E7\u00E3o dos comprovantes de conclus\u00E3o
+orientation=Orienta\u00E7\u00E3o
+pdf.certificates=Gerar certificado PDF
+pdf.certificates.auto=Automaticamente depois de passar no Curso
+pdf.certificates.manual=Manualmente pelo tutor
+pdf.certificates.none=N\u00E3o criar novo certificado
+pdf.certificates.template=Modelo de certificado
+portrait=Retrato
+preview=Amostra
+public.templates=Modelos
+recertification=Permitir re-certifica\u00E7\u00E3o
+recertification.day=Dia
+recertification.month=M\u00EAs
+recertification.week=Semana
+recertification.year=Ano
+replace=Substituir
+table.header.certificate=Certificado
+template.file=Arquivo
+template.name=Nome
+timelapse.after=ap\u00F3s
+upload=Enviar modelo
+upload.error.encrypted=O modelo n\u00E3o pode ser criptografado
+upload.error.no.phantomjs=PhantomJS n\u00E3o est\u00E1 no PATH. Voc\u00EA n\u00E3o pode usar modelos HTML.
+upload.error.noindex=O arquivo ZIP n\u00E3o inclui um arquivo "index.html".
+upload.error.simplefonts=A fonte usada nos campos n\u00E3o p\u00F4de ser encontrada. Por favor, use fontes padr\u00E3o, como Helvetica e o software Acrobat Pro para criar os campos do formul\u00E1rio.
+upload.title=Enviar modelo
+upload.unkown.error=O modelo n\u00E3o pode ser aberto.
diff --git a/src/main/java/org/olat/course/condition/ConditionEditController.java b/src/main/java/org/olat/course/condition/ConditionEditController.java
index 7a08ee39da3c6940e9c63e2916f37b8b99145abe..e75ff686f89989a8c632e55a68fdba7f882228d6 100644
--- a/src/main/java/org/olat/course/condition/ConditionEditController.java
+++ b/src/main/java/org/olat/course/condition/ConditionEditController.java
@@ -127,6 +127,7 @@ public class ConditionEditController extends BasicController {
 		// <OLATCE-91>
 		CourseEditorEnv courseEnv = euce.getCourseEditorEnv();
 		CourseNode courseNode = courseEnv.getNode(courseEnv.getCurrentCourseNodeId());
+		boolean isRootNode = courseEnv.getRootNodeId().equals(courseNode.getIdent());
 		if(showPasswordAccess && courseNode instanceof AbstractAccessableCourseNode){
 			AbstractAccessableCourseNode accessableCourseNode = (AbstractAccessableCourseNode)courseNode;
 			for(AdditionalCondition addCond : accessableCourseNode.getAdditionalConditions()){
@@ -134,12 +135,21 @@ public class ConditionEditController extends BasicController {
 					passwordCondition = (PasswordCondition) addCond;
 				}
 			}
-			if(passwordCondition == null) {
+			if ((passwordCondition == null) && (!isRootNode)) {
 				passwordCondition = new PasswordCondition();
 				accessableCourseNode.getAdditionalConditions().add(passwordCondition);
 			}
-			passwordConditionEditController = passwordCondition.getEditorComponent(ureq, wControl);
-			listenTo(passwordConditionEditController);
+			if ((passwordCondition != null) && (isRootNode)) {
+				String pass = passwordCondition.getPassword();
+				if ((pass == null) || (pass.length() == 0)) {
+					accessableCourseNode.getAdditionalConditions().remove(passwordCondition);
+					passwordCondition = null;
+				}
+			}
+			if (passwordCondition != null) {
+				passwordConditionEditController = passwordCondition.getEditorComponent(ureq, wControl);
+				listenTo(passwordConditionEditController);
+			}
 		}
 		// </OLATCE-91>
 		
diff --git a/src/main/java/org/olat/course/condition/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/condition/_i18n/LocalStrings_pt_BR.properties
index e0216ceb34f64c18702d835c6b882e0ff5456c67..244bb97a656748b395c51514fa89ac64c5da77a8 100644
--- a/src/main/java/org/olat/course/condition/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/condition/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Mon Apr 02 23:33:52 CEST 2012
+#Sat Jan 24 15:31:12 CET 2015
 apply=Aplicar
 choose=Selecionar
 command.activate.easyMode=Exibir modo simples
@@ -15,6 +15,7 @@ error.argtype.date=A fun\u00E7\u00E3o "{0}" tem que dar um tempo definido como e
 error.argtype.institutionalname=A "{0}" fun\u00E7\u00E3o deve conter um nome institucional
 error.argtype.outcome.undefined=O resultado vari\u00E1vel solicitado n\u00E3o existe no teste dado\!
 error.argtype.username=A fun\u00E7\u00E3o "{0}" deve conter um nome de usu\u00E1rio.
+error.divide.by.zero=A regra pode produzir erros "dividido por 0" .
 error.fewerargs=A fun\u00E7\u00E3o "{0}" tem menos argumentos do que especificado.
 error.fix=Criar
 error.illegal.operation.at=A opera\u00E7\u00E3o na posi\u00E7\u00E3o {0} n\u00E3o \u00E9 permitida, ver Ajuda para poss\u00EDveis opera\u00E7\u00F5es
diff --git a/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_pt_BR.properties
index 4893a885a357ee8a6af99fdcc6b77f7bbbb73db6..8935218d0294d5a4ea88d2fd53ad89d0ff41d5c0 100644
--- a/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/config/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Thu Aug 19 17:05:45 CEST 2010
+#Sat Jan 24 15:31:54 CET 2015
 chelp.cal1=Voc\u00EA pode decidir se usa um calend\u00E1rio em seu curso ou n\u00E3o.
 chelp.cal2=Seu calend\u00E1rio do curso te permite gravar eventos do curso a fim de lig\u00E1-los \u00E0 elementos de curso.
 chelp.cal3=O calend\u00E1rio de cursos pode ser apresentado por meio da caixa de ferramentas. Alternativamente ou adicionalmente, voc\u00EA pode encaixar o calend\u00E1rio em sua estrutura do curso. Basta usar o elemento de curso "Calend\u00E1rio".
diff --git a/src/main/java/org/olat/course/db/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/db/_i18n/LocalStrings_pt_BR.properties
index 8fb1f3674e1d8d3e1dadf19e4e019d966cc95ff8..939842731dd950e97d1df7c6a1f40f3b8d2dd34f 100644
--- a/src/main/java/org/olat/course/db/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/db/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Sep 03 14:30:40 CEST 2014
+#Sat Jan 24 15:32:09 CET 2015
 command.new_db=Criar novo banco de dados
 customDb.category=Nome
 customDb.create=Criar
diff --git a/src/main/java/org/olat/course/editor/CourseEditorEnv.java b/src/main/java/org/olat/course/editor/CourseEditorEnv.java
index f3771d80af5d8096ba000535a0004a1e0ccd04f7..04406f5dcebc24537e8b0d27b8568419177619e2 100644
--- a/src/main/java/org/olat/course/editor/CourseEditorEnv.java
+++ b/src/main/java/org/olat/course/editor/CourseEditorEnv.java
@@ -177,5 +177,11 @@ public interface CourseEditorEnv {
 	 */
 	public CourseNode getNode(String nodeId);
 	// </OLATCE-91>
+	
+	/**
+	 *
+	 * @return The ident of the course editor root node
+	 */
+	public String getRootNodeId();
 
 }
diff --git a/src/main/java/org/olat/course/editor/CourseEditorEnvImpl.java b/src/main/java/org/olat/course/editor/CourseEditorEnvImpl.java
index d88c4459fc283755f3e3c0a00dd9a52346af7669..a29fb8db01fcfe60b2439bcb02fe9ba89d0c6462 100644
--- a/src/main/java/org/olat/course/editor/CourseEditorEnvImpl.java
+++ b/src/main/java/org/olat/course/editor/CourseEditorEnvImpl.java
@@ -81,11 +81,11 @@ public class CourseEditorEnvImpl implements CourseEditorEnv {
 	 * {conditionexpression,conditionexpression,...}) TODO: do we really need the
 	 * information splitted up by category and condition expression?
 	 */
-	Map<String,List<ConditionExpression>> softRefs = new HashMap<String,List<ConditionExpression>>();
+	private Map<String,List<ConditionExpression>> softRefs = new HashMap<String,List<ConditionExpression>>();
 	/**
 	 * book keeping of (courseNodeId, StatusDescription)
 	 */
-	Map<String,List<StatusDescription>> statusDescs = new HashMap<String,List<StatusDescription>>();
+	private Map<String,List<StatusDescription>> statusDescs = new HashMap<String,List<StatusDescription>>();
 	/**
 	 * current active condition expression, it is activated by a call to
 	 * <code>validateConditionExpression(..)</code> the condition interpreter is
@@ -94,15 +94,15 @@ public class CourseEditorEnvImpl implements CourseEditorEnv {
 	 * <code>CourseEditorEnvImpl</code> to <code>pushError()</code> and
 	 * <code>addSoftReference()</code>.
 	 */
-	ConditionExpression currentConditionExpression = null;
+	private ConditionExpression currentConditionExpression = null;
 	/**
 	 * different organized info as in softRefs: (nodeId,{nodeid,nodeId,...})
 	 */
-	Map<String, Set<String>> nodeRefs = new HashMap<String, Set<String>>();
+	private Map<String, Set<String>> nodeRefs = new HashMap<String, Set<String>>();
 	/**
 	 * the condition interpreter for evaluating the condtion expressions.
 	 */
-	ConditionInterpreter ci = null;
+	private ConditionInterpreter ci = null;
 
 	public CourseEditorEnvImpl(CourseEditorTreeModel cetm, CourseGroupManager cgm, Locale editorLocale) {
 		this.cetm = cetm;
@@ -492,6 +492,10 @@ public class CourseEditorEnvImpl implements CourseEditorEnv {
 	public CourseGroupManager getCourseGroupManager() {
 		return cgm;
 	}
+	
+	public String getRootNodeId() {
+		return cetm.getRootNode().getIdent();
+	}
 
 
 }
diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java
index 4316d59f0a13d5be79d09cb3717f4e4400f28905..e994980326935398a2fedf26b3f5a6b636a9b325 100644
--- a/src/main/java/org/olat/course/editor/EditorMainController.java
+++ b/src/main/java/org/olat/course/editor/EditorMainController.java
@@ -87,6 +87,7 @@ import org.olat.core.util.resource.OresHelper;
 import org.olat.core.util.tree.TreeVisitor;
 import org.olat.core.util.tree.Visitor;
 import org.olat.core.util.vfs.VFSContainer;
+import org.olat.course.CorruptedCourseException;
 import org.olat.course.CourseFactory;
 import org.olat.course.DisposedCourseRestartController;
 import org.olat.course.ICourse;
@@ -338,10 +339,14 @@ public class EditorMainController extends MainLayoutBasicController implements G
 	@Override
 	public boolean requestForClose(UserRequest ureq) {
 		boolean immediateClose = true;
-		ICourse course = CourseFactory.loadCourse(ores.getResourceableId());
-		if(hasPublishableChanges(course)) {
-			doQuickPublish(ureq, course);
-			immediateClose = false;
+		try {
+			ICourse course = CourseFactory.loadCourse(ores.getResourceableId());
+			if(hasPublishableChanges(course)) {
+				doQuickPublish(ureq, course);
+				immediateClose = false;
+			}
+		} catch (CorruptedCourseException e) {
+			logError("", e);
 		}
 		return immediateClose;
 	}
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties
index 077cd7ccf3f8434fe3531f6d98e0c8df0388a36d..74762e08175f863a2c0281016246c1a5e4bcad92 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Sep 03 14:24:14 CEST 2014
+#Sat Jan 24 15:34:23 CET 2015
 access.form.label=Acesso ao curso inteiro tem
 access.legend=Modificar acesso ao curso inteiro
 alternative=Pesquisar por elemento de curso alternativo
@@ -450,6 +450,11 @@ pbl.intro.warning=Ao publicar elementos de curso apagados seus sub-elementos ser
 pbl.intro.warning.header=Importante
 pbl.nothing=Nenhuma modifica\u00E7\u00E3o a ser publicada. O curso est\u00E1 atualizado.
 pbl.nothing.button=Voltar ao editor
+pbl.quick.auto=Sim, automaticamente
+pbl.quick.description=H\u00E1 altera\u00E7\u00F5es n\u00E3o publicadas nesse curso. Voc\u00EA deseja publicar as altera\u00E7\u00F5es antes de fechar o editor?
+pbl.quick.manual=Sim, manualmente
+pbl.quick.no=N\u00E3o
+pbl.quick.title=Publicar altera\u00E7\u00F5es
 pbl.remind.catalog=No caso de voc\u00EA desbloquear o seu curso para usu\u00E1rios registrados ou visitantes n\u00E3o se esque\u00E7a de indicar isso no cat\u00E1logo sob o t\u00EDtulo correspondente.
 pbl.success=Modifica\u00E7\u00F5es selecionadas publicadas com sucesso.
 publish.access.header=Modifica\u00E7\u00E3o de acesso ao curso
diff --git a/src/main/java/org/olat/course/member/MembersOverviewController.java b/src/main/java/org/olat/course/member/MembersOverviewController.java
index 92f6bd6baabf7703b2729c17715be2c90c4c197e..81733df69f196ecb213dd8121c82419e3970e63a 100644
--- a/src/main/java/org/olat/course/member/MembersOverviewController.java
+++ b/src/main/java/org/olat/course/member/MembersOverviewController.java
@@ -312,7 +312,7 @@ public class MembersOverviewController extends BasicController implements Activa
 		MailPackage reMailing = new MailPackage(template, result, getWindowControl().getBusinessControl().getAsString(), template != null);
 		
 		List<RepositoryEntryPermissionChangeEvent> repoChanges = changes.generateRepositoryChanges(members);
-		repositoryManager.updateRepositoryEntryMembership(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, reMailing);
+		repositoryManager.updateRepositoryEntryMemberships(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, reMailing);
 
 		//commit all changes to the group memberships
 		List<BusinessGroupMembershipChange> allModifications = changes.generateBusinessGroupMembershipChange(members);
diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
index 0e8b193e73369a37313b2644434ef1364ba3ab12..a80bca7b23e756aecc04eeeab0a77ba19dc591df 100644
--- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java
@@ -64,6 +64,7 @@ import org.olat.course.run.userview.NodeEvaluation;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.course.statistic.StatisticResourceOption;
 import org.olat.course.statistic.StatisticResourceResult;
+import org.olat.ims.qti.QTI12ResultDetailsController;
 import org.olat.ims.qti.QTIResultManager;
 import org.olat.ims.qti.QTIResultSet;
 import org.olat.ims.qti.export.QTIExportFormatter;
@@ -82,6 +83,7 @@ import org.olat.repository.RepositoryManager;
 import org.olat.repository.handlers.RepositoryHandler;
 import org.olat.repository.handlers.RepositoryHandlerFactory;
 
+import de.bps.ims.qti.QTIResultDetailsController;
 import de.bps.onyx.plugin.OnyxExportManager;
 import de.bps.onyx.plugin.OnyxModule;
 
@@ -527,8 +529,15 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements As
 	 */
 	@Override
 	public Controller getDetailsEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel, UserCourseEnvironment userCourseEnvironment) {
-		return IQUIFactory.createIQTestDetailsEditController(userCourseEnvironment.getCourseEnvironment().getCourseResourceableId(), this.getIdent(),
-				userCourseEnvironment.getIdentityEnvironment().getIdentity(), this.getReferencedRepositoryEntry(), AssessmentInstance.QMD_ENTRY_TYPE_ASSESS, ureq, wControl);
+		RepositoryEntry ref = getReferencedRepositoryEntry();
+		Long courseResourceableId = userCourseEnvironment.getCourseEnvironment().getCourseResourceableId();
+		Identity assessedIdentity = userCourseEnvironment.getIdentityEnvironment().getIdentity();
+		boolean onyx = OnyxModule.isOnyxTest(ref.getOlatResource());
+		if(onyx) {
+			return new QTIResultDetailsController(courseResourceableId, getIdent(), assessedIdentity, ref, AssessmentInstance.QMD_ENTRY_TYPE_ASSESS, ureq, wControl);
+		} else {
+			return new QTI12ResultDetailsController(ureq, wControl, courseResourceableId, getIdent(), assessedIdentity, ref, AssessmentInstance.QMD_ENTRY_TYPE_ASSESS);
+		}
 	}
 
 	/**
diff --git a/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_pt_BR.properties
index 573e94803a6e060e3e638e3b793f08936d59ef30..72a27034eb36d32b238fb312274bccaaa996ca94 100644
--- a/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/basiclti/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Sat Jan 18 15:46:50 CET 2014
+#Sat Jan 24 15:34:56 CET 2015
 LTConfigForm.invalidurl=Por favor, indique uma URL v\u00E1lida.
 LTConfigForm.key=Chave
 LTConfigForm.key.example=Exemplo\: 12345
@@ -51,6 +51,7 @@ display.config.sendEmail=Enviar endere\u00E7o de e-mail ao fornecedor
 display.config.sendName=Enviar nome para fornecedor
 display.config.width=Mostrar largura
 display.config.window=Mostrar
+display.config.window.fullScreen=Mostrar apenas m\u00F3dulo, escondendo o LMS (iFrame)
 display.config.window.iframe=Incorporado ao curso (iFrame)
 display.config.window.window=Abrir em nova janela
 error.hostmissing.long=Na guia "conte\u00FAdo da p\u00E1gina" um host tem de ser configurado para a p\u00E1gina externa "{0}"
diff --git a/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_pt_BR.properties
index b65d964bd1e845210778235c728fbe9a7b4304e7..1d327c3cc77519269ba75de0c1528babc8a3b4d4 100644
--- a/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,7 @@
-#Fri Aug 20 22:41:15 CEST 2010
+#Sat Jan 24 15:39:07 CET 2015
+areaCoachesChoose=Selecionar \u00E1rea de aprendizado
+areaCreate=Criar \u00E1rea de aprendizado
+areaParticipantsChoose=Selecionar \u00E1rea de aprendizado
 chelp.ced-co.title=Configura\u00E7\u00E3o dos receptores
 chelp.co0=H\u00E1 duas possibilidades para enviar mensagens. Ou pela sele\u00E7\u00E3o de grupos e \u00E1reas de aprendizagem cujos membros voc\u00EA pretende enviar uma mensagem ou indicando o endere\u00E7o de e-mail de uma pessoa espec\u00EDfica.
 chelp.co0a=Ao marcar esta op\u00E7\u00E3o voc\u00EA define os grupos de estudo e as \u00E1reas de aprendizagem cujos membros (e/ou tutores) voc\u00EA gostaria de enviar uma mensagem.
@@ -14,6 +17,8 @@ condition.accessibility.title=Acesso
 create=Criar
 email.not.specified=Por favor, indique destinat\u00E1rio
 email.not.valid=Endere\u00E7o de e-mail inv\u00E1lido
+error.no.choice.specified=Selecionar pelo menos umas op\u00E7\u00E3o
+error.no.group.specified=Selecionar grupos/\u00E1reas
 error.norecipients.long=N\u00E3o h\u00E1 nenhum receptor definido para "{0}". Voc\u00EA pode especific\u00E1-los no guia "Receptor".
 error.norecipients.short=Receptores para "{0}" est\u00E3o faltando.
 error.notfound.name=O nome indicado ({1}) n\u00E3o p\u00F4de ser encontrado no grupo de gest\u00E3o do curso.
@@ -23,18 +28,31 @@ form.choose.coachesandpartips=Voc\u00EA tem que selecionar alguns participantes
 form.groupnames.wrong=Por favor, indique os t\u00EDtulos dos grupos de estudo separados por v\u00EDrgulas ou deixe este campo em branco.
 form.message.area=\u00C1reas de ensino
 form.message.chckbx.coaches=Instrutores
+form.message.chckbx.owners=Propriet\u00E1rios do Curso
 form.message.chckbx.partips=Participantes
+form.message.coaches.all=Todos os treinadores
+form.message.coaches.course=Apenas os treinadores do curso
+form.message.coaches.group=Apenas os treinadores do grupo
 form.message.example.area=Inscri\u00E7\u00E3o, Groupware I, Groupware II
 form.message.example.group=Vermelho, Verde, Azul
 form.message.group=Grupos de estudo
+form.message.participants.all=Todos participantes
+form.message.participants.course=Apenas participantes do curso
+form.message.participants.group=Apenas participantes do grupo
 form.noGroupsOrAreas=Pelo menos um grupo de estudo ou \u00E1rea de aprendizagem tem de ser indicado
+groupCoachesChoose=Selecionar grupo
+groupCreate=Criar grupo
+groupParticipantsChoose=Selecionar grupo
 header=Receptor
 help.hover.co=Ajuda a respeito da configura\u00E7\u00E3o dos receptores
 message.body=Corpo do texto 
 message.emailtoadresses=Para
 message.subject=Assunto
+message.want.coaches=Distribui\u00E7\u00E3o para treinadores
 message.want.email=Distribui\u00E7\u00E3o a endere\u00E7os de e-mail
 message.want.group=Distribui\u00E7\u00E3o aos membros do grupo ou tutores
+message.want.owners=Distribui\u00E7\u00E3o para propriet\u00E1rios
+message.want.participants=Distribui\u00E7\u00E3o para participantes
 no.recipents.specified=Selecione pelo menos uma categoria de destinat\u00E1rios
 pane.tab.accessibility=Acesso
 pane.tab.coconfig=Receptor
diff --git a/src/main/java/org/olat/course/nodes/cp/CPEditController.java b/src/main/java/org/olat/course/nodes/cp/CPEditController.java
index 8762d02b9b5e512d0c53e93db8155a0903b9fb22..c2b99c2076370dccc2180fafd946d78d40757f50 100644
--- a/src/main/java/org/olat/course/nodes/cp/CPEditController.java
+++ b/src/main/java/org/olat/course/nodes/cp/CPEditController.java
@@ -385,7 +385,7 @@ class CompMenuForm extends FormBasicController {
 
 	CompMenuForm(UserRequest ureq, WindowControl wControl, Boolean compMenuConfig) {
 		super(ureq, wControl);
-		compMenuConfig = compMenuConfig == null ? true:compMenuConfig.booleanValue();
+		this.compMenuConfig = compMenuConfig == null ? true:compMenuConfig.booleanValue();
 		initForm(ureq);
 	}
 
diff --git a/src/main/java/org/olat/course/nodes/en/EnrollmentManager.java b/src/main/java/org/olat/course/nodes/en/EnrollmentManager.java
index eb34f4559a7c9c933a01974d589beee953e0dcea..06da38432ac815d7123a481856c88a76b6ecc4aa 100644
--- a/src/main/java/org/olat/course/nodes/en/EnrollmentManager.java
+++ b/src/main/java/org/olat/course/nodes/en/EnrollmentManager.java
@@ -41,6 +41,7 @@ import org.olat.core.util.mail.MailContext;
 import org.olat.core.util.mail.MailContextImpl;
 import org.olat.core.util.mail.MailHelper;
 import org.olat.core.util.mail.MailManager;
+import org.olat.core.util.mail.MailPackage;
 import org.olat.core.util.mail.MailTemplate;
 import org.olat.core.util.mail.MailerResult;
 import org.olat.course.groupsandrights.CourseGroupManager;
@@ -95,7 +96,8 @@ public class EnrollmentManager extends BasicManager {
 			// and: why can't we just have a group here and a max participants count and an identity to enrol?
 			// the group was chosen, so why do we need the groupNames and areaNames here???
 
-			EnrollState state = businessGroupService.enroll(identity, roles, identity, group, null);
+			MailPackage doNotSendmailPackage = new MailPackage(false);
+			EnrollState state = businessGroupService.enroll(identity, roles, identity, group, doNotSendmailPackage);
 			if(state.isFailed()) {
 				enrollStatus.setErrorMessage(trans.translate(state.getI18nErrorMessage()));
 			} else {
@@ -119,7 +121,8 @@ public class EnrollmentManager extends BasicManager {
 		// 1. Remove group membership, fire events, do loggin etc.
 		// Remove participant. This will also check if a waiting-list with auto-close-ranks is configurated
 		// and move the users accordingly
-		businessGroupService.removeParticipants(identity, Collections.singletonList(identity), enrolledGroup, null);
+		MailPackage doNotSendmailPackage = new MailPackage(false);
+		businessGroupService.removeParticipants(identity, Collections.singletonList(identity), enrolledGroup, doNotSendmailPackage);
 		logInfo("doCancelEnrollment in group " + enrolledGroup, identity.getName());
 
 		logInfo("doCancelEnrollment in group " + enrolledGroup, identity.getName());
diff --git a/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_pt_BR.properties
index ba2b0d333127d7b39d18b049a77143acdbb563f7..1c8f11afb093b67538e11cb58a9b876990400a19 100644
--- a/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/feed/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Fri Aug 20 22:46:32 CEST 2010
+#Sat Jan 24 15:39:36 CET 2015
 chelp.feed.p1=Voc\u00EA vai ver isso se voc\u00EA n\u00E3o tiver selecionado algum conte\u00FAdo.
 chelp.feed.p2=Por favor, primeiro crie seus conte\u00FAdos nos recursos did\u00E1ticos. Em seguida, pressione o bot\u00E3o "Adicionar" para selecionar o conte\u00FAdo solicitado na pasta de armazenamento de recursos did\u00E1ticos.
 chelp.feed.p3=Ap\u00F3s adicionar o conte\u00FAdo seu t\u00EDtulo ser\u00E1 exibido como um link. Siga este link para obter a visualiza\u00E7\u00E3o.
@@ -15,4 +15,5 @@ help.hover.feed.r=Ajuda sobre a configura\u00E7\u00E3o de acesso como leitor
 help.hover.feed.rw=Ajuda sobre a configura\u00E7\u00E3o de acesso como o escritor
 pane.tab.access=Acesso
 peekview.allItemsLink=Todos itens
+peekview.error=$org.olat.modules.webFeed.ui\:feed.error
 title_blog=Blog
diff --git a/src/main/java/org/olat/course/nodes/iq/IQControllerCreator.java b/src/main/java/org/olat/course/nodes/iq/IQControllerCreator.java
index 31f5c2d57fba615224fed41a6c561ce2e824ff48..bf336a2d04ca607def421861cf4fe5d12bd20e08 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQControllerCreator.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQControllerCreator.java
@@ -29,14 +29,12 @@ import org.olat.core.gui.components.stack.BreadcrumbPanel;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.tabbable.TabbableController;
-import org.olat.core.id.Identity;
 import org.olat.course.ICourse;
 import org.olat.course.groupsandrights.CourseGroupManager;
 import org.olat.course.nodes.IQSELFCourseNode;
 import org.olat.course.nodes.IQSURVCourseNode;
 import org.olat.course.nodes.IQTESTCourseNode;
 import org.olat.course.run.userview.UserCourseEnvironment;
-import org.olat.repository.RepositoryEntry;
 
 public interface IQControllerCreator {
 
@@ -99,7 +97,4 @@ public interface IQControllerCreator {
 
 	public Controller createIQSurveyRunController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv,
 			IQSURVCourseNode courseNode);
-
-	public Controller createIQTestDetailsEditController(Long courseResourceableId, String ident, Identity identity,
-			RepositoryEntry referencedRepositoryEntry, String qmdEntryTypeAssess, UserRequest ureq, WindowControl wControl);
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java b/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java
index eeecc38de2ac89d8fae63e4cdc39ee6b543a95a4..84d29418f8c3b6e8544fbae4927bb81f0bcb68f2 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQControllerCreatorOlat.java
@@ -31,7 +31,6 @@ import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.messages.MessageUIFactory;
 import org.olat.core.gui.control.generic.tabbable.TabbableController;
 import org.olat.core.gui.translator.Translator;
-import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.Roles;
 import org.olat.core.util.Util;
@@ -43,15 +42,12 @@ import org.olat.course.nodes.IQSELFCourseNode;
 import org.olat.course.nodes.IQSURVCourseNode;
 import org.olat.course.nodes.IQTESTCourseNode;
 import org.olat.course.run.userview.UserCourseEnvironment;
-import org.olat.ims.qti.QTI12ResultDetailsController;
 import org.olat.ims.qti.fileresource.SurveyFileResource;
 import org.olat.ims.qti.fileresource.TestFileResource;
 import org.olat.modules.ModuleConfiguration;
 import org.olat.modules.iq.IQSecurityCallback;
 import org.olat.repository.RepositoryEntry;
 
-import de.bps.ims.qti.QTIResultDetailsController;
-import de.bps.onyx.plugin.OnyxModule;
 import de.bps.onyx.plugin.run.OnyxRunController;
 
 /**
@@ -217,15 +213,4 @@ public class IQControllerCreatorOlat implements IQControllerCreator {
 		}
 		return controller;
 	}
-
-	@Override
-	public Controller createIQTestDetailsEditController(Long courseResourceableId, String ident, Identity identity,
-			RepositoryEntry referencedRepositoryEntry, String qmdEntryTypeAssess, UserRequest ureq, WindowControl wControl) {
-		boolean onyx = OnyxModule.isOnyxTest(referencedRepositoryEntry.getOlatResource());
-		if(onyx) {
-			return new QTIResultDetailsController(courseResourceableId, ident, identity, referencedRepositoryEntry, qmdEntryTypeAssess, ureq, wControl);
-		} else {
-			return new QTI12ResultDetailsController(ureq, wControl, courseResourceableId, ident, identity, referencedRepositoryEntry, qmdEntryTypeAssess);
-		}
-	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/iq/IQUIFactory.java b/src/main/java/org/olat/course/nodes/iq/IQUIFactory.java
index 25c2838c704f1268f1d04653e0fc1e2ef8acb689..e6c086868382556f92f8745915e9e923939f53a2 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQUIFactory.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQUIFactory.java
@@ -29,14 +29,12 @@ import org.olat.core.gui.components.stack.BreadcrumbPanel;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.tabbable.TabbableController;
-import org.olat.core.id.Identity;
 import org.olat.course.ICourse;
 import org.olat.course.groupsandrights.CourseGroupManager;
 import org.olat.course.nodes.IQSELFCourseNode;
 import org.olat.course.nodes.IQSURVCourseNode;
 import org.olat.course.nodes.IQTESTCourseNode;
 import org.olat.course.run.userview.UserCourseEnvironment;
-import org.olat.repository.RepositoryEntry;
 
 /**
  * Description:<br>
@@ -96,10 +94,4 @@ public class IQUIFactory {
 			IQSURVCourseNode courseNode) {
 		return IQUIFactory.iqControllerCreator.createIQSurveyRunController(ureq, wControl, userCourseEnv, courseNode);
 	}
-
-	public static Controller createIQTestDetailsEditController(Long courseResourceableId, String ident, Identity identity,
-			RepositoryEntry referencedRepositoryEntry, String qmdEntryTypeAssess, UserRequest ureq, WindowControl wControl) {
-		return IQUIFactory.iqControllerCreator.createIQTestDetailsEditController(courseResourceableId, ident, identity,
-				referencedRepositoryEntry, qmdEntryTypeAssess, ureq, wControl);
-	}
 }
diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java
index 3beea71cd8ea1b362bf67d616f53e53465070a10..85b48c8f761f0a47f244f38fac5e039506123857 100644
--- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java
+++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditController.java
@@ -58,6 +58,7 @@ public class OpenMeetingsEditController extends ActivateableTabbableDefaultContr
 	public static final String CONFIG_ROOM_RECORDING = "roomRecording";
 	public static final String CONFIG_ROOM_COMMENT = "roomComment";
 	public static final String CONFIG_ROOM_TYPE = "roomType";
+	public static final String CONFIG_ROOM_AUDIO_ONLY = "roomAudioOnly";
 
 	private VelocityContainer editVc;
 	private ConditionEditController accessibilityCondContr;
@@ -123,6 +124,7 @@ public class OpenMeetingsEditController extends ActivateableTabbableDefaultContr
 					moduleConfiguration.set(CONFIG_ROOM_SIZE, new Long(room.getSize()));
 					moduleConfiguration.set(CONFIG_ROOM_MODERATION, new Boolean(room.isModerated()));
 					moduleConfiguration.set(CONFIG_ROOM_RECORDING, new Boolean(room.isRecordingAllowed()));
+					moduleConfiguration.set(CONFIG_ROOM_AUDIO_ONLY, new Boolean(room.isAudioOnly()));
 					moduleConfiguration.set(CONFIG_ROOM_COMMENT, room.getComment());
 					moduleConfiguration.set(CONFIG_ROOM_TYPE, new Long(room.getType()));
 				}
@@ -156,6 +158,9 @@ public class OpenMeetingsEditController extends ActivateableTabbableDefaultContr
 		if(moderated instanceof Boolean) {
 			room.setModerated(((Boolean)moderated).booleanValue());
 		}
+		else if (moderated == null) {
+			room.setModerated(true);
+		}
 		Object recording = moduleConfiguration.get(CONFIG_ROOM_RECORDING);
 		if(recording instanceof Boolean) {
 			room.setRecordingAllowed(((Boolean)recording).booleanValue());
@@ -169,6 +174,17 @@ public class OpenMeetingsEditController extends ActivateableTabbableDefaultContr
 		if(type instanceof Long) {
 			room.setType(((Long)type).longValue());
 		}
+		else if (type == null) {
+			room.setType(3);
+		}
+
+		Object isAudioOnly = moduleConfiguration.get(CONFIG_ROOM_AUDIO_ONLY);
+		if(isAudioOnly instanceof Boolean) {
+			room.setAudioOnly(((Boolean)isAudioOnly).booleanValue());
+		}
+		else if (isAudioOnly == null) {
+			room.setAudioOnly(true);
+		}
 		return room;
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java
index 1bfb55dec915fec33b22347c130c6fbac3e4e627..247c221ca82a5dfce8d4029a884cc02c9d60bdf2 100644
--- a/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java
+++ b/src/main/java/org/olat/course/nodes/openmeetings/OpenMeetingsEditFormController.java
@@ -54,6 +54,7 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 	private FormLink editLink;
 	private StaticTextElement roomNameEl, roomTypeEl, roomSizeEl;
 	private StaticTextElement moderationModeEl, roomCommentEl;
+	private StaticTextElement avModeEl;
 	private MultipleSelectionElement recordingEl;
 	private CloseableModalController cmc;
 	private OpenMeetingsRoomEditController editController;
@@ -107,6 +108,7 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 		String[] recordingValues = new String[]{ translate("room.recording.enabled") };
 		recordingEl = uifactory.addCheckboxesHorizontal("recording", "room.recording", formLayout, recordingKeys, recordingValues);
 		recordingEl.setEnabled(false);
+		avModeEl = uifactory.addStaticTextElement("avmode", "room.av.mode", "", formLayout);
 		roomCommentEl = uifactory.addStaticTextElement("room.comment", "room.comment", "", formLayout);
 
 		FormLayoutContainer buttonContainer = FormLayoutContainer.createButtonLayout("buttons", getTranslator());
@@ -145,6 +147,15 @@ public class OpenMeetingsEditFormController extends FormBasicController {
 		moderationModeEl.setVisible(hasRoom);
 		recordingEl.select(recordingKeys[0], hasRoom && room.isRecordingAllowed());
 		recordingEl.setVisible(hasRoom);
+		String avVal;
+		if(hasRoom) {
+			avVal = room.isAudioOnly() ? translate("room.av.audio") : translate("room.av.video");
+		} else {
+			avVal = "";
+		}
+		avModeEl.setValue(avVal);
+		avModeEl.setVisible(hasRoom);
+		if (hasRoom) avModeEl.setEnabled(false);
 		roomCommentEl.setValue(hasRoom ? room.getComment() : "");
 		roomCommentEl.setVisible(hasRoom);
 		editLink.setI18nKey(hasRoom ? "edit.room" : "create.room");
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/projectbroker/_i18n/LocalStrings_pt_BR.properties
index 5ac0a8a5dc7b608861e20b2f7582391580762c02..04ae1e79a4968f10ded568b47d2426334ecb2b59 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/projectbroker/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Sep 03 14:30:49 CEST 2014
+#Sat Jan 24 15:41:17 CET 2015
 ENROLLMENT_EVENT=Data de registro
 HANDOUT_EVENT=Vencimento
 account.manager.groupdescription=Administrador de $\:chelp.projectbroker.themenboerse <i>{0}</i>, criado automaticamente.
diff --git a/src/main/java/org/olat/course/nodes/sp/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/nodes/sp/_i18n/LocalStrings_pt_BR.properties
index a21abb65580109f8c48d7ab8f172d7e38825370b..61ba588d02c5c995c7829e9eefec2b3065b3d9f7 100644
--- a/src/main/java/org/olat/course/nodes/sp/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/nodes/sp/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,5 @@
-#Sat Aug 21 17:29:35 CEST 2010
+#Sat Jan 24 15:41:33 CET 2015
+allowCoachEdit=Permitir que treinadores editem a p\u00E1gina
 chelp.atten1=<b>$org.olat\:chelp.caution</b>\:
 chelp.ced-sp-choose.title=Selecionar um arquivo HTML da pasta de armazenamento
 chelp.ced-sp-multi.title=V\u00E1rias op\u00E7\u00F5es para selecionar arquivos 
@@ -48,6 +49,6 @@ file=Arquivo selecionado
 folder.displayname=Pasta de armazenamento
 header=Escolher p\u00E1gina HTML
 pane.tab.accessibility=Acesso
-pane.tab.spconfig=P\u00E1gina HTML
 pane.tab.layout=$org.olat.core.gui.control.generic.iframe\:option.delivery
+pane.tab.spconfig=P\u00E1gina HTML
 selectfile=Selecionar este arquivo
diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java
index bd0113d1c0b4edb8f1cb0d5ca9ccfd4ebbc6745b..10eec654cd75e610c8340f4761fdec6be4ec3b98 100644
--- a/src/main/java/org/olat/course/run/CourseRuntimeController.java
+++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java
@@ -56,6 +56,8 @@ import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.gui.control.generic.dtabs.DTab;
 import org.olat.core.gui.control.generic.dtabs.DTabs;
 import org.olat.core.gui.control.generic.messages.MessageUIFactory;
+import org.olat.core.gui.control.generic.modal.DialogBoxController;
+import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.gui.control.generic.popup.PopupBrowserWindow;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -68,6 +70,8 @@ import org.olat.core.util.StringHelper;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.event.GenericEventListener;
 import org.olat.core.util.event.MultiUserEvent;
+import org.olat.core.util.mail.MailPackage;
+import org.olat.core.util.mail.MailerResult;
 import org.olat.core.util.nodes.INode;
 import org.olat.core.util.prefs.Preferences;
 import org.olat.core.util.resource.OresHelper;
@@ -83,6 +87,7 @@ import org.olat.course.archiver.FullAccessArchiverCallback;
 import org.olat.course.area.CourseAreasController;
 import org.olat.course.assessment.AssessmentChangedEvent;
 import org.olat.course.assessment.AssessmentMainController;
+import org.olat.course.assessment.AssessmentModule;
 import org.olat.course.assessment.CoachingGroupAccessAssessmentCallback;
 import org.olat.course.assessment.EfficiencyStatementManager;
 import org.olat.course.assessment.FullAccessAssessmentCallback;
@@ -116,6 +121,7 @@ import org.olat.instantMessaging.InstantMessagingModule;
 import org.olat.instantMessaging.InstantMessagingService;
 import org.olat.instantMessaging.OpenInstantMessageEvent;
 import org.olat.note.NoteController;
+import org.olat.repository.LeavingStatusList;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryManagedFlag;
 import org.olat.repository.RepositoryManager;
@@ -147,7 +153,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		//settings
 		layoutLink, optionsLink, certificatesOptionsLink,
 		//my course
-		efficiencyStatementsLink, calendarLink, noteLink, chatLink,
+		efficiencyStatementsLink, calendarLink, noteLink, chatLink, leaveLink,
 		//glossary
 		openGlossaryLink, enableGlossaryLink,
 		//assessment
@@ -156,6 +162,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	private Dropdown myCourse, glossary;
 	
 	private CourseAreasController areasCtrl;
+	private DialogBoxController leaveDialogBox;
 	private ArchiverMainController archiverCtrl;
 	private CustomDBMainController databasesCtrl;
 	private FolderRunController courseFolderCtrl;
@@ -180,6 +187,8 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	@Autowired
 	private BusinessGroupService businessGroupService;
 	@Autowired
+	private AssessmentModule assessmentModule;
+	@Autowired
 	private EfficiencyStatementManager efficiencyStatementManager;
 	
 	public CourseRuntimeController(UserRequest ureq, WindowControl wControl,
@@ -449,6 +458,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 			assessmentModeLink = LinkFactory.createToolLink("assessment.mode.cmd", translate("command.assessment.mode"), this, "o_icon_assessment_mode");
 			assessmentModeLink.setElementCssClass("o_sel_course_assessment_mode");
 			assessmentModeLink.setEnabled(!managed);
+			assessmentModeLink.setVisible(assessmentModule.isAssessmentModeEnabled());
 			settings.addComponent(assessmentModeLink);
 			
 			catalogLink = LinkFactory.createToolLink("access.cmd", translate("command.catalog"), this, "o_icon_catalog");
@@ -555,6 +565,15 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 					myCourse.addComponent(link);
 				}
 			}
+			
+			if(repositoryService.isParticipantAllowedToLeave(getRepositoryEntry())
+					&& !assessmentLock
+					&& (uce.isParticipant() || !uce.getParticipatingGroups().isEmpty())) {
+				leaveLink = LinkFactory.createToolLink("sign.out", "leave", translate("sign.out"), this);
+				leaveLink.setIconLeftCSS("o_icon o_icon-fw o_icon_sign_out");
+				myCourse.addComponent(new Spacer("leaving-space"));
+				myCourse.addComponent(leaveLink);
+			}
 		}
 		if(myCourse.size() > 0) {
 			toolbarPanel.addTool(myCourse, Align.right);
@@ -568,8 +587,11 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		if (!assessmentLock && showInfos) {
 			detailsLink = LinkFactory.createToolLink("courseconfig",translate("command.courseconfig"), this, "o_icon_details");
 			toolbarPanel.addTool(detailsLink);
-		}		
-		if (!assessmentLock && !isGuestOnly && calendarModule.isEnabled() && calendarModule.isEnableCourseToolCalendar()) {
+		}
+		
+		boolean calendarIsEnabled =  !assessmentLock && !isGuestOnly && calendarModule.isEnabled()
+				&& calendarModule.isEnableCourseToolCalendar() && reSecurity.canLaunch();
+		if (calendarIsEnabled) {
 			calendarLink = LinkFactory.createToolLink("calendar",translate("command.calendar"), this, "o_icon_calendar");
 			calendarLink.setPopup(new LinkPopupSettings(950, 750, "cal"));
 			calendarLink.setVisible(cc.isCalendarEnabled());
@@ -592,7 +614,8 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		
 		//add group chat to toolbox
 		InstantMessagingModule imModule = CoreSpringFactory.getImpl(InstantMessagingModule.class);
-		boolean chatIsEnabled = !assessmentLock && !isGuestOnly && imModule.isEnabled() && imModule.isCourseEnabled();
+		boolean chatIsEnabled = !assessmentLock && !isGuestOnly && imModule.isEnabled()
+				&& imModule.isCourseEnabled() && reSecurity.canLaunch();
 		if(chatIsEnabled) {
 			chatLink = LinkFactory.createToolLink("chat",translate("command.coursechat"), this, "o_icon_chat");
 			chatLink.setVisible(CourseModule.isCourseChatEnabled() && cc.isChatEnabled());
@@ -688,6 +711,8 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 			launchPersonalNotes(ureq);
 		} else if(openGlossaryLink == source) {
 			launchGlossary(ureq);
+		} else if(leaveLink == source) {
+			doConfirmLeave(ureq);
 		} else if(source instanceof Link && "group".equals(((Link)source).getCommand())) {
 			BusinessGroupRef ref = (BusinessGroupRef)((Link)source).getUserObject();
 			launchGroup(ureq, ref.getKey());
@@ -727,7 +752,13 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 				initToolbar();
 				toolControllerDone(ureq);
 			}
-		} if(source == editorCtrl && source instanceof VetoableCloseController) {
+		} else if(source == leaveDialogBox) {
+			if (DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event)) {
+				doLeave(ureq);
+			}
+		}
+		
+		if(editorCtrl == source && source instanceof VetoableCloseController) {
 			if(event == Event.DONE_EVENT) {
 				if(delayedClose != null) {
 					switch(delayedClose) {
@@ -758,7 +789,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 					fireEvent(ureq, Event.DONE_EVENT);
 				}
 			}
-		}
+		} 
 		
 		super.event(ureq, source, event);
 	}
@@ -949,7 +980,34 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 			delayedClose = Delayed.catalog;
 		}
 	}
+	
+	private void doConfirmLeave(UserRequest ureq) {
+		String reName = StringHelper.escapeHtml(getRepositoryEntry().getDisplayname());
+		String title = translate("sign.out");
+		String text = translate("sign.out.dialog.text", reName);
+		leaveDialogBox = activateYesNoDialog(ureq, title, text, leaveDialogBox);
+	}
+	
+	private void doLeave(UserRequest ureq) {
+		MailerResult result = new MailerResult();
+		MailPackage reMailing = new MailPackage(result, getWindowControl().getBusinessControl().getAsString(), true);
+		//leave course
+		LeavingStatusList status = new LeavingStatusList();
+		repositoryManager.leave(getIdentity(), getRepositoryEntry(), status, reMailing);
+		//leave groups
+		businessGroupService.leave(getIdentity(), getRepositoryEntry(), status, reMailing);
+		
+		if(status.isWarningManagedGroup() || status.isWarningManagedCourse()) {
+			showWarning("sign.out.warning.managed");
+		} else if(status.isWarningGroupWithMultipleResources()) {
+			showWarning("sign.out.warning.mutiple.resources");
+		} else {
+			showInfo("sign.out.success", new String[]{ getRepositoryEntry().getDisplayname() });
+		}
 
+		doClose(ureq);
+	}
+	
 	private void doLayout(UserRequest ureq) {
 		if(delayedClose == Delayed.layout || requestForClose(ureq)) {
 			if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) {
diff --git a/src/main/java/org/olat/course/run/RunMainController.java b/src/main/java/org/olat/course/run/RunMainController.java
index 9f16fd7d80bd30b668cc6240f9215d3e9c54a380..6f5c396ad2ed31bcb1944bd0f9eb897855323b34 100644
--- a/src/main/java/org/olat/course/run/RunMainController.java
+++ b/src/main/java/org/olat/course/run/RunMainController.java
@@ -199,7 +199,7 @@ public class RunMainController extends MainLayoutBasicController implements Gene
 		uce.getScoreAccounting().evaluateAll();
 		
 		if(assessmentMode != null && assessmentMode.isRestrictAccessElements()) {
-			treeFilter = new AssessmentModeTreeFilter(assessmentMode);
+			treeFilter = new AssessmentModeTreeFilter(assessmentMode, uce.getCourseEnvironment().getRunStructure());
 		} else {
 			treeFilter = new VisibleTreeFilter();
 		}
diff --git a/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties
index 30c245be10e27158c1c8b4fcba3b4a0172a6a4bd..b85f52baa869c4b738cb8747a81aadd07ceca546 100644
--- a/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/run/_i18n/LocalStrings_de.properties
@@ -1,9 +1,9 @@
 #Mon Mar 02 09:54:04 CET 2009
 command.access=Zugangskonfiguration
-command.assessment.mode=Assessment mode
+command.assessment.mode=Pr\u00FCfungsmodus
 command.bookmark=Bookmark
 command.calendar=Kalender
-command.catalog=Katalogeinträge
+command.catalog=Katalogeintr\u00E4ge
 command.close=Kurs schliessen
 command.close.courseconfig=Einstellungen schliessen
 command.courseareas=Lernbereich
@@ -19,7 +19,7 @@ command.glossary.off.alt=Glossarbegriffe von Lerninhalt ausblenden
 command.glossary.on=ein
 command.glossary.on.alt=Glossarbegriffe in Lerninhalt einblenden
 command.layout=Layout
-command.next=Weiter zur nächsten Seite
+command.next=Weiter zur n\u00E4chsten Seite
 command.openarchiver=Datenarchivierung
 command.openassessment=Bewertungswerkzeug
 command.opendb=Kurs DB
@@ -35,7 +35,7 @@ command.options.certificates=Leistungnachweis
 command.personalnote=Notizen
 command.previous=Zur\u00FCck zur letzten Seite
 command.run=Kurs Laufzeitumgebung
-command.settings=Beschreibung ändern
+command.settings=Beschreibung \u00E4ndern
 course.closed = Dieser Kurs wurde beendet und wird nicht l\u00e4nger bearbeitet oder aktualisiert.
 course.disposed.command.restart=Den Kurs beenden und neu starten
 course.disposed.message=Bitte beenden Sie diesen Kurs und starten Sie ihn neu.
diff --git a/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java b/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java
index 6394a202d180924c54651b36c75c8f1d2e9034bc..750c7d4d9bb00de22c0d3ec9cedee84835ddd267 100644
--- a/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java
+++ b/src/main/java/org/olat/course/run/calendar/CourseLinkProviderController.java
@@ -77,17 +77,12 @@ public class CourseLinkProviderController extends FormBasicController implements
 		courseNodeTreeModel = new CourseNodeSelectionTreeModel(courses);
 
 		initForm(ureq);
-		
-		TreeNode rootNode = courseNodeTreeModel.getRootNode();
-		for(int i=rootNode.getChildCount(); i-->0; ) {
-			multiSelectTree.open((TreeNode)rootNode.getChildAt(i));
-		}
 	}
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		multiSelectTree = uifactory.addTreeMultiselect("seltree", null, formLayout, courseNodeTreeModel, this);
-		multiSelectTree.setRootVisible(false);
+		multiSelectTree.setRootVisible(availableCourses.size() == 1);
 		multiSelectTree.setMultiSelect(true);
 
 		saveButton = uifactory.addFormSubmitButton("ok", "cal.links.submit", formLayout);
@@ -164,8 +159,17 @@ public class CourseLinkProviderController extends FormBasicController implements
 				String nodeId = link.getId();
 				TreeNode node = courseNodeTreeModel.getNodeById(nodeId);
 				if(node == null) {
-					nodeId = availableCourses.get(0).getResourceableId() + "_" + nodeId;
-					node = courseNodeTreeModel.getNodeById(nodeId);
+					String fallBackNodeId = availableCourses.get(0).getResourceableId() + "_" + nodeId;
+					node = courseNodeTreeModel.getNodeById(fallBackNodeId);
+				}
+				if(node == null && nodeId.indexOf("_") < 0) {
+					//course selected -> map to root node
+					for(ICourse course: availableCourses) {
+						if(nodeId.equals(course.getResourceableId().toString())) {
+							String fallBackNodeId = course.getResourceableId() + "_" + course.getRunStructure().getRootNode().getIdent();
+							node = courseNodeTreeModel.getNodeById(fallBackNodeId);
+						}
+					}
 				}
 				if (node != null) {
 					node.setSelected(true);
@@ -209,21 +213,18 @@ public class CourseLinkProviderController extends FormBasicController implements
 		}
 		
 		private LinkTreeNode buildCourseTree(ICourse course) {
-			LinkTreeNode node = new LinkTreeNode(course.getCourseTitle(), course, null);
-			node.setAltText(course.getCourseTitle());
-			node.setIdent(course.getResourceableId().toString());
-			node.setIconCssClass("o_CourseModule_icon");
-
-			LinkTreeNode childNode = buildTree(course, course.getRunStructure().getRootNode());
-			node.addChild(childNode);
-			return node;
+			return buildTree(course, course.getRunStructure().getRootNode());
 		}
 
 		private LinkTreeNode buildTree(ICourse course, CourseNode courseNode) {
 			LinkTreeNode node = new LinkTreeNode(courseNode.getShortTitle(), course, courseNode);
 			node.setAltText(courseNode.getLongTitle());
 			node.setIdent(course.getResourceableId() + "_" + courseNode.getIdent());
-			node.setIconCssClass(("o_icon o_" + courseNode.getType() + "_icon").intern());
+			if(courseNode == course.getRunStructure().getRootNode()) {
+				node.setIconCssClass("o_CourseModule_icon");
+			} else {
+				node.setIconCssClass(("o_icon o_" + courseNode.getType() + "_icon").intern());
+			}
 			node.setUserObject(course);
 			for (int i = 0; i < courseNode.getChildCount(); i++) {
 				CourseNode childNode = (CourseNode)courseNode.getChildAt(i);
diff --git a/src/main/java/org/olat/course/run/userview/AssessmentModeTreeFilter.java b/src/main/java/org/olat/course/run/userview/AssessmentModeTreeFilter.java
index 46d7026195b24d1cd1532ad2b37a27a139d25159..ada79e28c2ded836e861476939770199318a34d8 100644
--- a/src/main/java/org/olat/course/run/userview/AssessmentModeTreeFilter.java
+++ b/src/main/java/org/olat/course/run/userview/AssessmentModeTreeFilter.java
@@ -23,6 +23,8 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.nodes.INode;
+import org.olat.course.Structure;
 import org.olat.course.assessment.AssessmentMode;
 import org.olat.course.nodes.CourseNode;
 
@@ -37,14 +39,17 @@ public class AssessmentModeTreeFilter implements TreeFilter {
 	private final boolean enable;
 	private final Set<String> nodeIds = new HashSet<>();
 	
-	public AssessmentModeTreeFilter(AssessmentMode mode) {
+	public AssessmentModeTreeFilter(AssessmentMode mode, Structure structure) {
 		String nodes = mode.getElementList();
 		if(StringHelper.containsNonWhitespace(nodes)) {
 			enable = true;
 			
 			String[] nodeIdArr = nodes.split(",");
 			for(String nodeId:nodeIdArr) {
-				nodeIds.add(nodeId);
+				//allow the parent line
+				for(INode courseNode = structure.getNode(nodeId); courseNode != null; courseNode = courseNode.getParent()) {
+					nodeIds.add(courseNode.getIdent());
+				}
 			}
 		} else {
 			enable = false;
@@ -55,5 +60,4 @@ public class AssessmentModeTreeFilter implements TreeFilter {
 	public boolean isVisible(CourseNode node) {
 		return !enable || nodeIds.contains(node.getIdent());
 	}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/group/BusinessGroupService.java b/src/main/java/org/olat/group/BusinessGroupService.java
index 2eb49b61e936b5001697466daa6f3294fcb3e88d..67d43fd7d11dfd4389ea2f122df713b10ecf6ee3 100644
--- a/src/main/java/org/olat/group/BusinessGroupService.java
+++ b/src/main/java/org/olat/group/BusinessGroupService.java
@@ -39,6 +39,7 @@ import org.olat.group.model.EnrollState;
 import org.olat.group.model.LeaveOption;
 import org.olat.group.model.MembershipModification;
 import org.olat.group.model.SearchBusinessGroupParams;
+import org.olat.repository.LeavingStatusList;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryRef;
 import org.olat.repository.RepositoryEntryShort;
@@ -295,7 +296,7 @@ public interface BusinessGroupService {
 	
 	public void addResourcesTo(List<BusinessGroup> groups, List<RepositoryEntry> resources);
 	
-	public void removeResourceFrom(List<BusinessGroup> group, RepositoryEntry re);
+	public void removeResourceFrom(List<BusinessGroup> group, RepositoryEntryRef re);
 	
 	public void removeResource(RepositoryEntryRef resource);
 	
@@ -348,6 +349,16 @@ public interface BusinessGroupService {
 	public int getPositionInWaitingListFor(Identity identity, BusinessGroup businessGroup);
 	
 	//memberships
+	/**
+	 * The method follow the business groups of the specified entry
+	 * and remove the participant membership of the group where
+	 * the entry is the only resource.
+	 * 
+	 * @param identity
+	 * @param entry
+	 */
+	public void leave(Identity identity, RepositoryEntry entry, LeavingStatusList status, MailPackage mailing);
+	
 	/**
 	 * Adds a user to a group as owner and does all the magic that needs to be
 	 * done: - add to security group (optional) - add to jabber roster - fire multi user event
diff --git a/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java b/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..1f6bcbdeda2ba0e715d48bacedaa1421404efc48
--- /dev/null
+++ b/src/main/java/org/olat/group/manager/BusinessGroupMembershipProcessor.java
@@ -0,0 +1,126 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.group.manager;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.olat.basesecurity.GroupRoles;
+import org.olat.basesecurity.IdentityRef;
+import org.olat.basesecurity.model.IdentityRefImpl;
+import org.olat.core.commons.services.notifications.NotificationsManager;
+import org.olat.core.gui.control.Event;
+import org.olat.core.util.coordinate.CoordinatorManager;
+import org.olat.core.util.event.GenericEventListener;
+import org.olat.core.util.resource.OresHelper;
+import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupRef;
+import org.olat.group.model.BGRepositoryEntryRelation;
+import org.olat.group.model.BusinessGroupRefImpl;
+import org.olat.group.model.BusinessGroupRelationModified;
+import org.olat.group.ui.edit.BusinessGroupModifiedEvent;
+import org.olat.repository.RepositoryEntryRef;
+import org.olat.repository.RepositoryManager;
+import org.olat.repository.manager.RepositoryEntryRelationDAO;
+import org.olat.repository.model.RepositoryEntryRefImpl;
+import org.olat.resource.OLATResource;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * process event related to membership removed from groups.
+ * 
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+@Service
+public class BusinessGroupMembershipProcessor implements InitializingBean, GenericEventListener {
+	
+	@Autowired
+	private CoordinatorManager coordinator;
+	@Autowired
+	private NotificationsManager notificationsManager;
+	@Autowired
+	private RepositoryManager repositoryManager;
+	@Autowired
+	private BusinessGroupRelationDAO businessGroupRelationDao;
+	@Autowired
+	private RepositoryEntryRelationDAO repositoryEntryRelationDao;
+
+	@Override
+	public void afterPropertiesSet() throws Exception {
+		coordinator.getCoordinator().getEventBus().registerFor(this, null, OresHelper.lookupType(BusinessGroup.class));
+	}
+
+	@Override
+	public void event(Event event) {
+		if(event instanceof BusinessGroupModifiedEvent) {
+			BusinessGroupModifiedEvent e = (BusinessGroupModifiedEvent)event;
+			if(BusinessGroupModifiedEvent.IDENTITY_REMOVED_EVENT.equals(e.getCommand())) {
+				processIdentityRemoved(e.getModifiedGroupKey(), e.getAffectedIdentityKey());
+			}
+		} else if(event instanceof BusinessGroupRelationModified) {
+			BusinessGroupRelationModified e = (BusinessGroupRelationModified)event;
+			if(BusinessGroupRelationModified.RESOURCE_REMOVED_EVENT.equals(e.getCommand())) {
+				processResourceRemoved(e.getGroupKey(), e.getRepositoryEntryKey());
+			}
+		}
+	}
+	
+	private void processResourceRemoved(Long groupKey, Long repoKey) {
+		BusinessGroupRef groupRef = new BusinessGroupRefImpl(groupKey);
+		RepositoryEntryRef entryRef = new RepositoryEntryRefImpl(repoKey);
+		OLATResource resource = repositoryManager.lookupRepositoryEntryResource(entryRef.getKey());
+
+		List<Long> memberKeys = businessGroupRelationDao
+			.getMemberKeys(Collections.singletonList(groupRef), GroupRoles.coach.name(), GroupRoles.participant.name());
+		for(Long memberKey:memberKeys) {
+			IdentityRef member = new IdentityRefImpl(memberKey);
+			List<String> remaingRoles = repositoryEntryRelationDao.getRoles(member, entryRef);
+			if(remaingRoles.isEmpty()) {
+				notificationsManager.unsubscribeAllForIdentityAndResId(member, resource.getResourceableId());
+			}
+		}
+	}
+	
+	private void processIdentityRemoved(Long groupKey, Long identityKey) {
+		IdentityRef identityRef = new IdentityRefImpl(identityKey);
+		BusinessGroupRef groupRef = new BusinessGroupRefImpl(groupKey);
+		
+		if(!businessGroupRelationDao.hasAnyRole(identityRef, groupRef)) {
+			notificationsManager.unsubscribeAllForIdentityAndResId(identityRef, groupRef.getKey());
+			
+			List<BGRepositoryEntryRelation> relations = businessGroupRelationDao
+					.findRelationToRepositoryEntries(Collections.singletonList(groupKey), 0, -1);
+			for(BGRepositoryEntryRelation relation:relations) {
+				Long repositoryEntryKey = relation.getRepositoryEntryKey();
+				RepositoryEntryRef entryRef = new RepositoryEntryRefImpl(repositoryEntryKey);
+				List<String> remaingRoles = repositoryEntryRelationDao.getRoles(identityRef, entryRef);
+				if(remaingRoles.isEmpty()) {
+					OLATResource resource = repositoryManager.lookupRepositoryEntryResource(entryRef.getKey());
+					notificationsManager.unsubscribeAllForIdentityAndResId(identityRef, resource.getResourceableId());
+				}
+			}
+		}
+	}
+}
diff --git a/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java b/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java
index 2ab194a79680556f7b803530c12e72ae4781ba05..3bc0fd280553298fd7f8580d4270e7da914cc10f 100644
--- a/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java
+++ b/src/main/java/org/olat/group/manager/BusinessGroupRelationDAO.java
@@ -117,7 +117,7 @@ public class BusinessGroupRelationDAO {
 				.getResultList();
 	}
 	
-	public int countRoles(BusinessGroup group, String... role) {
+	public int countRoles(BusinessGroupRef group, String... role) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select count(membership) from ").append(BusinessGroupImpl.class.getName()).append(" as bgroup ")
 		  .append(" inner join bgroup.baseGroup as baseGroup")
@@ -183,6 +183,20 @@ public class BusinessGroupRelationDAO {
 		return count == null ? false : count.intValue() > 0;
 	}
 	
+	public boolean hasAnyRole(IdentityRef identity, BusinessGroupRef group) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select count(membership) from ").append(BusinessGroupImpl.class.getName()).append(" as bgroup ")
+		  .append(" inner join bgroup.baseGroup as baseGroup")
+		  .append(" inner join baseGroup.members as membership")
+		  .append(" where bgroup.key=:businessGroupKey and membership.identity.key=:identityKey");
+
+		Number count = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), Number.class)
+				.setParameter("businessGroupKey", group.getKey())
+				.setParameter("identityKey", identity.getKey())
+				.getSingleResult();
+		return count == null ? false : count.intValue() > 0;
+	}
+	
 	public void touchMembership(IdentityRef identity, BusinessGroupRef group) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select membership from ").append(BusinessGroupImpl.class.getName()).append(" as bgroup ")
@@ -252,7 +266,7 @@ public class BusinessGroupRelationDAO {
 		return members;
 	}
 	
-	public void deleteRelation(BusinessGroup group, RepositoryEntry entry) {
+	public void deleteRelation(BusinessGroup group, RepositoryEntryRef entry) {
 		repositoryEntryRelationDao.removeRelation(group.getBaseGroup(), entry);
 	}
 	
diff --git a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
index 9ded82e7b7027ffad64d29d3dbb8c4c329cf8da5..ecb3cd915968336d05ce4f4aada8f8b1870d78c3 100644
--- a/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
+++ b/src/main/java/org/olat/group/manager/BusinessGroupServiceImpl.java
@@ -48,7 +48,6 @@ import org.olat.collaboration.CollaborationToolsFactory;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.services.notifications.NotificationsManager;
-import org.olat.core.commons.services.notifications.Subscriber;
 import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
 import org.olat.core.logging.DBRuntimeException;
@@ -71,7 +70,6 @@ import org.olat.core.util.resource.OLATResourceableJustBeforeDeletedEvent;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupAddResponse;
-import org.olat.group.BusinessGroupImpl;
 import org.olat.group.BusinessGroupManagedFlag;
 import org.olat.group.BusinessGroupMembership;
 import org.olat.group.BusinessGroupModule;
@@ -92,6 +90,7 @@ import org.olat.group.model.BusinessGroupMembershipChange;
 import org.olat.group.model.BusinessGroupMembershipImpl;
 import org.olat.group.model.BusinessGroupMembershipViewImpl;
 import org.olat.group.model.BusinessGroupMembershipsChanges;
+import org.olat.group.model.BusinessGroupRelationModified;
 import org.olat.group.model.EnrollState;
 import org.olat.group.model.IdentityGroupKey;
 import org.olat.group.model.LeaveOption;
@@ -102,6 +101,7 @@ import org.olat.group.right.BGRightsRole;
 import org.olat.group.ui.BGMailHelper;
 import org.olat.group.ui.edit.BusinessGroupModifiedEvent;
 import org.olat.properties.PropertyManager;
+import org.olat.repository.LeavingStatusList;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryRef;
 import org.olat.repository.RepositoryEntryRelationType;
@@ -803,6 +803,26 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 		return businessGroupRelationDAO.getMembersOf(resource, owner, attendee);
 	}
 
+	@Override
+	public void leave(Identity identity, RepositoryEntry entry, LeavingStatusList status, MailPackage mailing) {
+		SearchBusinessGroupParams params = new SearchBusinessGroupParams();
+		params.setIdentity(identity);
+		params.setAttendee(true);
+		List<BusinessGroup> groups = businessGroupDAO.findBusinessGroups(params, entry, 0, -1);
+		List<BusinessGroupModifiedEvent.Deferred> events = new ArrayList<BusinessGroupModifiedEvent.Deferred>();
+		for(BusinessGroup group:groups) {
+			if(BusinessGroupManagedFlag.isManaged(group, BusinessGroupManagedFlag.membersmanagement)) {
+				status.setWarningManagedGroup(true);
+			} else if(businessGroupRelationDAO.countResources(group) > 1) {
+				status.setWarningGroupWithMultipleResources(true);
+			} else {
+				removeParticipant(identity, identity, group, mailing, null);
+			}
+		}
+		dbInstance.commit();
+		BusinessGroupModifiedEvent.fireDeferredEvents(events);
+	}
+
 	@Override
 	public BusinessGroupAddResponse addOwners(Identity ureqIdentity, Roles ureqRoles, List<Identity> addIdentities,
 			BusinessGroup group, MailPackage mailing) {
@@ -994,9 +1014,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 
 		boolean removed = businessGroupRelationDAO.removeRole(identity, group, GroupRoles.participant.name());
 		if(removed) {
-			//remove subscriptions if user gets removed
-			removeSubscriptions(identity, group);
-			
 			// notify currently active users of this business group
 			BusinessGroupModifiedEvent.Deferred event = BusinessGroupModifiedEvent.createDeferredEvent(BusinessGroupModifiedEvent.IDENTITY_REMOVED_EVENT, group, identity);
 			if(events != null) {
@@ -1441,15 +1458,12 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 		
 		businessGroupRelationDAO.removeRole(identityToRemove, group, GroupRoles.coach.name());
 		
-		//remove subsciptions if user gets removed
-		removeSubscriptions(identityToRemove, group);
-		
 		// notify currently active users of this business group
 		BusinessGroupModifiedEvent.Deferred event;
 		if (identityToRemove.getKey().equals(ureqIdentity.getKey()) ) {
 			event = BusinessGroupModifiedEvent.createDeferredEvent(BusinessGroupModifiedEvent.MYSELF_ASOWNER_REMOVED_EVENT, group, identityToRemove);
 		} else {
-  		event = BusinessGroupModifiedEvent.createDeferredEvent(BusinessGroupModifiedEvent.IDENTITY_REMOVED_EVENT, group, identityToRemove);
+			event = BusinessGroupModifiedEvent.createDeferredEvent(BusinessGroupModifiedEvent.IDENTITY_REMOVED_EVENT, group, identityToRemove);
 		}
 		if(events != null) {
 			events.add(event);
@@ -1470,19 +1484,6 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 		BusinessGroupModifiedEvent.fireDeferredEvents(events);
 	}
 	
-	private void removeSubscriptions(Identity identity, BusinessGroup group) {
-		NotificationsManager notiMgr = NotificationsManager.getInstance();
-		List<Subscriber> l = notiMgr.getSubscribers(identity);
-		for (Iterator<Subscriber> iterator = l.iterator(); iterator.hasNext();) {
-			Subscriber subscriber = iterator.next();
-			Long resId = subscriber.getPublisher().getResId();
-			Long groupKey = group.getKey();
-			if (resId != null && groupKey != null && resId.equals(groupKey)) {
-				notiMgr.unsubscribe(subscriber);
-			}
-		}
-	}
-	
 	@Override
 	public boolean hasResources(BusinessGroup group) {
 		return businessGroupRelationDAO.countResources(group) > 0;
@@ -1618,29 +1619,34 @@ public class BusinessGroupServiceImpl implements BusinessGroupService, UserDataD
 	}
 
 	@Override
-	public void removeResourceFrom(List<BusinessGroup> groups, RepositoryEntry re) {
+	public void removeResourceFrom(List<BusinessGroup> groups, RepositoryEntryRef re) {
 		if(groups == null || groups.isEmpty()) {
 			return; // nothing to do
 		}
 		
+		List<BusinessGroupRelationModified> events = new ArrayList<BusinessGroupRelationModified>();
+		
 		int count = 0;
 		for(BusinessGroup group:groups) {
 			businessGroupRelationDAO.deleteRelation(group, re);
+			events.add(new BusinessGroupRelationModified(BusinessGroupRelationModified.RESOURCE_REMOVED_EVENT, group.getKey(), re.getKey()));
 			if(count++ % 20 == 0) {
 				dbInstance.commit();
 			}
 		}
 		dbInstance.commit();
+		
+		for(BusinessGroupRelationModified event:events) {
+			CoordinatorManager.getInstance().getCoordinator().getEventBus()
+				.fireEventToListenersOf(event, OresHelper.lookupType(BusinessGroup.class));
+		}
 	}
 	
 	@Override
-	public void removeResource(RepositoryEntryRef resource) {
+	public void removeResource(RepositoryEntryRef re) {
 		SearchBusinessGroupParams params = new SearchBusinessGroupParams();
-		List<BusinessGroup> groups = findBusinessGroups(params, resource, 0, -1);
-		for(BusinessGroup group:groups) {
-			repositoryEntryRelationDao.removeRelation(((BusinessGroupImpl)group).getBaseGroup(), resource);
-		}
-		dbInstance.commit();
+		List<BusinessGroup> groups = findBusinessGroups(params, re, 0, -1);
+		removeResourceFrom(groups, re);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/group/model/BusinessGroupRefImpl.java b/src/main/java/org/olat/group/model/BusinessGroupRefImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c1214e4bca0d55d047ad3d4b7ed4bf70659f909
--- /dev/null
+++ b/src/main/java/org/olat/group/model/BusinessGroupRefImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.group.model;
+
+import org.olat.group.BusinessGroupRef;
+
+/**
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public final class BusinessGroupRefImpl implements BusinessGroupRef {
+	
+	private final Long groupKey;
+	
+	public BusinessGroupRefImpl(Long groupKey) {
+		this.groupKey = groupKey;
+	}
+
+	@Override
+	public Long getKey() {
+		return groupKey;
+	}
+
+	@Override
+	public int hashCode() {
+		return groupKey == null ? 98376802 : groupKey.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		} else if(obj instanceof BusinessGroupRefImpl) {
+			BusinessGroupRefImpl ref = (BusinessGroupRefImpl)obj;
+			return groupKey != null && groupKey.equals(ref.groupKey);
+		}
+		return false;
+	}
+}
diff --git a/src/main/java/org/olat/group/model/BusinessGroupRelationModified.java b/src/main/java/org/olat/group/model/BusinessGroupRelationModified.java
new file mode 100644
index 0000000000000000000000000000000000000000..bedc18df7cdc2fd42aed5b2946e850dd26a89571
--- /dev/null
+++ b/src/main/java/org/olat/group/model/BusinessGroupRelationModified.java
@@ -0,0 +1,52 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.group.model;
+
+import org.olat.core.util.event.MultiUserEvent;
+
+/**
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class BusinessGroupRelationModified extends MultiUserEvent {
+
+	private static final long serialVersionUID = 4694938528412441148L;
+	
+	public static final String RESOURCE_REMOVED_EVENT = "resource.removed.event";
+	
+	private Long groupKey;
+	private Long repositoryEntryKey;
+	
+	public BusinessGroupRelationModified(String cmd, Long groupKey, Long repositoryEntryKey) {
+		super(cmd);
+		this.groupKey = groupKey;
+		this.repositoryEntryKey = repositoryEntryKey;
+	}
+
+	public Long getGroupKey() {
+		return groupKey;
+	}
+
+	public Long getRepositoryEntryKey() {
+		return repositoryEntryKey;
+	}
+}
diff --git a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties
index 605ee76ba9063264ebcb76511d1cf53f43072a42..0f78b98857f30fb2257da99417e7039cb1e38215 100644
--- a/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/group/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Thu Sep 05 14:36:56 CEST 2013
+#Fri Jan 23 22:07:25 CET 2015
 BuddyGroup=Grupo de projeto
 LearningGroup=Grupo de estudo
 RightGroup=Grupo de direitos
@@ -74,6 +74,10 @@ groupsPortlet.nogroups=Voc\u00EA n\u00E3o \u00E9 membro de nenhum grupo
 groupsPortlet.showAll=Exibir tudo
 groupsPortlet.title=Meus grupos
 help.hover.managed=$org.olat.admin.restapi\:help.hover.managed
+leaving.group=Os membros podem deixar grupo
+leaving.group.authors=Permitir sa\u00EDda do grupo por membros de grupos criados por autores
+leaving.group.learners=Permitir sa\u00EDda do grupo por membros de grupos criados por alunos
+leaving.group.override=Permitir que a configura\u00E7\u00E3o de sa\u00EDda do grupo seja alterada por autores
 mandatory.enrolment=Aplicar notifica\u00E7\u00E3o por e-mail quando convidado por
 mandatory.membership=Exigir aceita\u00E7\u00E3o da ades\u00E3o, quando convidados por
 membership.administrators=$\:enrolment.email.administrators
diff --git a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_pt_BR.properties
index fbdab88f47659ca0cee1f96ab06fa6d34d2add10..ea0b3e17307dab219d824107867406c5373c6ceb 100644
--- a/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/group/ui/edit/_i18n/LocalStrings_pt_BR.properties
@@ -1,5 +1,6 @@
-#Thu Sep 05 14:38:47 CEST 2013
+#Sat Jan 24 15:07:47 CET 2015
 add.member=$org.olat.group.ui.main\:add.member
+allow.leaving.group=Membros podem sair do grupo
 areachoice.no.areas.admin=Nenhuma \u00E1rea de ensino encontrada. Favor criar uma \u00E1rea de ensino dentro do seu grupo gestor.
 areachoice.no.areas.owner=Nenhuma \u00E1rea de ensino encontrada. Novas \u00E1reas de ensino somente podem ser criadas por usu\u00E1rios que tenham acesso ao grupo gestor.
 assessment=$org.olat.group.ui.main\:assessment
@@ -22,6 +23,7 @@ chelp.desc.learn9=Se voc\u00EA quer limitar o n\u00FAmero de seus participantes
 chelp.grp-Area-select-learn.title=Atribuindo grupos de estudo a uma \u00E1rea de ensino
 chelp.grp-assign.title=Atribuindo direitos a um grupo com os mesmos direitos
 chelp.grp-des.title=Descri\u00E7\u00E3o do $org.olat.group.ui\:LearningGroup
+chelp.grp-leaving.title=Configura\u00E7\u00E3o de filia\u00E7\u00E3o
 chelp.grp-member.title=$\:group.edit.tab.members de um $org.olat.group.ui\:LearningGroup
 chelp.grp-memberOwner.title=Os tutores dos grupos de estudo
 chelp.grp-memberParticipants.title=Os membros dos grupos de estudo
@@ -74,6 +76,7 @@ edit.member=$org.olat.group.ui.main\:edit.member
 edit.member.groups=$org.olat.group.ui.main\:edit.member.groups
 error.message.locked=Este grupo est\u00E1 sendo editado pelo usu\u00E1rio {0} ({1}) e est\u00E1 bloqueado. Favor tentar novamente mais tarde. 
 error.msg.send.no.rcps=$org.olat.modules.co\:error.msg.send.no.rcps
+fieldset.legend.allow.leaving=Configura\u00E7\u00E3o de filia\u00E7\u00E3o
 fieldset.legend.areas=\u00C1reas de ensino atribu\u00EDdas
 fieldset.legend.collabtools=Ferramentas de colabora\u00E7\u00E3o
 fieldset.legend.details=Detalhes
@@ -93,6 +96,7 @@ group.edit.tab.members=Membros
 group.edit.tab.resources=Cursos
 group.edit.tab.rights=Direitos
 group.edit.title=Editar grupo <i>{0}</i> 
+help.hover.allowLeaving=Ajuda para configura\u00E7\u00E3o de filia\u00E7\u00E3o
 help.hover.bgArea=Ajuda para assinalar \u00E1reas de ensino a um grupo de estudo
 help.hover.bgCollabTools=Ajuda para usar ferramentas de colabora\u00E7\u00E3o de um grupo de estudo 
 help.hover.bgDetail=Ajuda para descrever um grupo de estudo
diff --git a/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java b/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java
index 33e39333f92b6f586b539905fd201953961829a3..2fcb1cec311002599d59e72ef246a911e561ca76 100644
--- a/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java
+++ b/src/main/java/org/olat/group/ui/main/AbstractMemberListController.java
@@ -462,7 +462,7 @@ public abstract class AbstractMemberListController extends BasicController imple
 		MailPackage mailing = new MailPackage(sendMail);
 		if(repoEntry != null) {
 			List<RepositoryEntryPermissionChangeEvent> changes = Collections.singletonList((RepositoryEntryPermissionChangeEvent)e);
-			repositoryManager.updateRepositoryEntryMembership(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, changes, mailing);
+			repositoryManager.updateRepositoryEntryMemberships(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, changes, mailing);
 		}
 
 		businessGroupService.updateMemberships(getIdentity(), e.getGroupChanges(), mailing);
@@ -475,7 +475,7 @@ public abstract class AbstractMemberListController extends BasicController imple
 		MailPackage mailing = new MailPackage(sendMail);
 		if(repoEntry != null) {
 			List<RepositoryEntryPermissionChangeEvent> repoChanges = changes.generateRepositoryChanges(members);
-			repositoryManager.updateRepositoryEntryMembership(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, mailing);
+			repositoryManager.updateRepositoryEntryMemberships(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, mailing);
 		}
 
 		//commit all changes to the group memberships
diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties
index d71e4fa652659a79cca7669cbe8234b029d4a521..11c4e9eac8acb65afa4177444b968ad383ef37c6 100644
--- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Sep 03 14:30:06 CEST 2014
+#Fri Jan 23 22:13:07 CET 2015
 accept=Confirmar
 action=A\u00E7\u00E3o
 add.member=Adicionar membro
@@ -30,6 +30,7 @@ dedup.members.info4=Escolha se a exclus\u00E3o de membros ser\u00E1 feita por tr
 dedup.members.particpants=Participantes
 dedup.members.typ=Fun\u00E7\u00E3o
 deup.members=Excluir membros
+dialog.modal.bg.asktoleave.title=Solicita\u00E7\u00E3o para sair do grupo
 dialog.modal.bg.delete.text=Voc\u00EA realmente quer apagar o grupo de projeto "{0}" ?<p>
 dialog.modal.bg.delete.title=Excluir grupo?
 dialog.modal.bg.leave.text=Se voc\u00EA deixar o grupo de projeto "{0}" voc\u00EA n\u00E3o ter\u00E1 acesso. <br>Voc\u00EA realmente quer deixar este grupo de projeto?<p>
@@ -92,6 +93,8 @@ pending.reservations=<h4>Aceitar ades\u00E3o \u00E0 grupo e curso</ h4> Voc\u00E
 reject=Rejeitar
 remove.send.mail=Notifica\u00E7\u00E3o
 remove.send.mail.label=Enviar E-mail
+request.leaving.body=Caro treinador do grupo<br /><br />Por favor, remova-me deste grupo.<br /><br />Atenciosamente<br />{3} {4}<br /><br />Nome do grupo\: {0}<br />Grupo ID\: {1}<br />Grupo usado em curso\: {2}
+request.leaving.subject=Pedir para sair do grupo "{0}" (ID {1})
 reservation.coach=Como treinador
 role.group.participant=Membro de grupo
 role.group.tutor=Treinador de Grupo
diff --git a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java
index 329273a7f0b434d1c0acaf14c1bc8ef44e3496e1..5d23ab5eeeb31d460cfa4ca3276b489c979ca9dc 100644
--- a/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java
+++ b/src/main/java/org/olat/group/ui/run/BusinessGroupMainRunController.java
@@ -757,7 +757,7 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im
 		// 2. show participants if configured with Participants
 		if (businessGroup.isParticipantsVisibleIntern()) {
 			removeAsListenerAndDispose(gparticipantsC);
-			gparticipantsC = new GroupController(ureq, getWindowControl(), false, true, false, false, downloadAllowed, false, group, GroupRoles.participant.name());
+			gparticipantsC = new GroupController(ureq, getWindowControl(), false, true, true, false, downloadAllowed, false, group, GroupRoles.participant.name());
 			listenTo(gparticipantsC);
 			
 			membersVc.put("participants", gparticipantsC.getInitialComponent());
@@ -769,7 +769,7 @@ public class BusinessGroupMainRunController extends MainLayoutBasicController im
 		membersVc.contextPut("hasWaitingList", new Boolean(businessGroup.getWaitingListEnabled()) );
 		if (businessGroup.isWaitingListVisibleIntern()) {
 			removeAsListenerAndDispose(waitingListController);
-			waitingListController = new GroupController(ureq, getWindowControl(), false, true, false, false, downloadAllowed, false, group, GroupRoles.waiting.name());
+			waitingListController = new GroupController(ureq, getWindowControl(), false, true, true, false, downloadAllowed, false, group, GroupRoles.waiting.name());
 			listenTo(waitingListController);
 			membersVc.put("waitingList", waitingListController.getInitialComponent());
 			membersVc.contextPut("showWaitingList", Boolean.TRUE);
diff --git a/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties
index aa4095a6cc529d20f40799ae30573f54a58e63eb..7ff14523f53188b184a2173570d2375c57c9c3ed 100644
--- a/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/group/ui/run/_i18n/LocalStrings_pt_BR.properties
@@ -1,6 +1,7 @@
-#Thu Sep 05 15:04:40 CEST 2013
+#Fri Jan 23 22:14:13 CET 2015
 businessgroup.contact.bodytext=\n\n---\nIr imediatamente para o grupo {0} \: "{1}"
 businessgroup.contact.subject={0} \:
+group.access.denied=Voc\u00EA n\u00E3o tem as permiss\u00F5es necess\u00E1rias para acessar este grupo.
 group.deleted=$org.olat.group.ui\:group.deleted
 group.on.waitinglist=Voc\u00EA est\u00E1 na lista de espera desse grupos. Por favor seja paciente
 groupchat.not.available=$org.olat.instantMessaging.groupchat\:groupchat.not.available
diff --git a/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java b/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java
index 75864c0e707017a64cca8e75ef7cf57cb094433b..f0660329ac1cfdc4b4f381758848d3d1f1b3394d 100644
--- a/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java
+++ b/src/main/java/org/olat/gui/control/OlatDmzTopNavController.java
@@ -24,13 +24,12 @@
 */
 package org.olat.gui.control;
 
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.chiefcontrollers.LanguageChooserController;
 import org.olat.core.commons.contextHelp.ContextHelpModule;
 import org.olat.core.commons.controllers.impressum.ImpressumDmzMainController;
 import org.olat.core.commons.controllers.impressum.ImpressumInformations;
 import org.olat.core.commons.controllers.impressum.ImpressumModule;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.commons.services.help.HelpLinkSPI;
 import org.olat.core.commons.services.help.HelpModule;
 import org.olat.core.gui.UserRequest;
@@ -48,7 +47,7 @@ import org.olat.core.gui.control.generic.popup.PopupBrowserWindow;
 import org.olat.core.id.OLATResourceable;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class OlatDmzTopNavController extends BasicController implements TopNavController {
+public class OlatDmzTopNavController extends BasicController implements LockableController {
 	
 	private static final Boolean contextHelpEnabled = Boolean.valueOf(ContextHelpModule.isContextHelpEnabled());
 	private Link impressumLink;
@@ -72,23 +71,19 @@ public class OlatDmzTopNavController extends BasicController implements TopNavCo
 		impressumLink.setAjaxEnabled(false);
 		impressumLink.setTarget("_blank");
 
-		
 		// help on login page
 		vc.contextPut("isContextHelpEnabled", contextHelpEnabled);
 		if (helpModule.isHelpEnabled()) {
-			HelpModule helpModule = CoreSpringFactory.getImpl(HelpModule.class);
 			HelpLinkSPI provider = helpModule.getHelpProvider();
 			Component helpLink = provider.getHelpPageLink(ureq, translate("help.manual"), translate("help.manual"), "o_icon o_icon-wf o_icon_manual", null, "Login page");
 			vc.put("topnav.help", helpLink);
-
 		}
 
 		//choosing language 
 		languageChooserC = new LanguageChooserController(getWindowControl(), ureq, "_top_nav_dmz_lang_chooser");
 		//DOKU:pb:2008-01 listenTo(languageChooserC); not necessary as LanguageChooser sends a MultiUserEvent
 		//which is catched by the BaseFullWebappController. This one is then 
-		//responsible to recreate the GUI with the new Locale 
-		//
+		//responsible to recreate the GUI with the new Locale
 		vc.put("languageChooser", languageChooserC.getInitialComponent());
 		putInitialPanel(vc);		
 	}
@@ -117,6 +112,7 @@ public class OlatDmzTopNavController extends BasicController implements TopNavCo
 		}
 	}
 
+	@Override
 	protected void doDispose() {
 		if (languageChooserC != null) {
 			languageChooserC.dispose();
diff --git a/src/main/java/org/olat/gui/control/OlatFooterController.java b/src/main/java/org/olat/gui/control/OlatFooterController.java
index 82f607334fbb3f128a60c67d0e60d3eeb16af04f..eb5e0f772ce5e764a471bd6de6ddb322699b334c 100644
--- a/src/main/java/org/olat/gui/control/OlatFooterController.java
+++ b/src/main/java/org/olat/gui/control/OlatFooterController.java
@@ -32,6 +32,7 @@ import org.olat.core.commons.controllers.impressum.ImpressumInformations;
 import org.olat.core.commons.controllers.impressum.ImpressumMainController;
 import org.olat.core.commons.controllers.impressum.ImpressumModule;
 import org.olat.core.commons.fullWebApp.BaseFullWebappController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.Windows;
 import org.olat.core.gui.components.Component;
@@ -47,6 +48,7 @@ import org.olat.core.gui.control.creator.ControllerCreator;
 import org.olat.core.gui.control.generic.popup.PopupBrowserWindow;
 import org.olat.core.helpers.Settings;
 import org.olat.core.id.Identity;
+import org.olat.core.id.OLATResourceable;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 import org.olat.core.util.WebappHelper;
@@ -67,11 +69,14 @@ import org.springframework.beans.factory.annotation.Autowired;
  * 
  * @author patrickb
  */
-public class OlatFooterController extends BasicController { 
+public class OlatFooterController extends BasicController implements LockableController { 
 	
-	private Link impressumLink;
+	private final Link impressumLink;
 	private final VelocityContainer olatFootervc;
+	private ShareLinkController shareLinkCtr;
 	
+	@Autowired
+	private SocialModule socialModule;
 	@Autowired
 	private LayoutModule layoutModule;
 	@Autowired
@@ -92,11 +97,9 @@ public class OlatFooterController extends BasicController {
 		olatFootervc.put("userCounter", userCounter);
 
 		// share links
-		SocialModule socialModule = CoreSpringFactory.getImpl(SocialModule.class);
 		if (socialModule.isShareEnabled() && socialModule.getEnabledShareLinkButtons().size() > 0) {
-			Controller shareLinkCtr = new ShareLinkController(ureq, wControl);
-			listenTo(shareLinkCtr); // for auto-dispose
-			// push to view
+			shareLinkCtr = new ShareLinkController(ureq, wControl);
+			listenTo(shareLinkCtr);
 			olatFootervc.put("shareLink", shareLinkCtr.getInitialComponent());
 		}
 		
@@ -107,7 +110,6 @@ public class OlatFooterController extends BasicController {
 		impressumLink.setAjaxEnabled(false);
 		impressumLink.setTarget("_blank");
 
-
 		// Push information about user
 		if (!isGuest && ureq.getUserSession().isAuthenticated()) {
 			olatFootervc.contextPut("loggedIn", Boolean.TRUE);
@@ -138,6 +140,20 @@ public class OlatFooterController extends BasicController {
 		//
 	}
 
+	@Override
+	public void lockResource(OLATResourceable resource) {
+		if(shareLinkCtr != null) {
+			olatFootervc.remove(shareLinkCtr.getInitialComponent());
+		}
+	}
+
+	@Override
+	public void unlockResource() {
+		if(shareLinkCtr != null) {
+			olatFootervc.put("shareLink", shareLinkCtr.getInitialComponent());
+		}
+	}
+
 	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
 		if(impressumLink == source) {
@@ -147,6 +163,7 @@ public class OlatFooterController extends BasicController {
 	
 	protected void doOpenImpressum(UserRequest ureq) {
 		ControllerCreator impressumControllerCreator = new ControllerCreator() {
+			@Override
 			public Controller createController(UserRequest lureq, WindowControl lwControl) {
 				return new ImpressumMainController(lureq, lwControl);
 			}
@@ -159,5 +176,4 @@ public class OlatFooterController extends BasicController {
 		}
 		popupBrowserWindow.open(ureq);
 	}
-
 }
diff --git a/src/main/java/org/olat/gui/control/OlatGuestTopNavController.java b/src/main/java/org/olat/gui/control/OlatGuestTopNavController.java
index 054c6884a6b619b1068c49784e51ea8fc3c5110c..be0f8bd7c57711c5496b648df5a96361c2bbf8dc 100644
--- a/src/main/java/org/olat/gui/control/OlatGuestTopNavController.java
+++ b/src/main/java/org/olat/gui/control/OlatGuestTopNavController.java
@@ -31,7 +31,7 @@ import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.controllers.impressum.ImpressumInformations;
 import org.olat.core.commons.controllers.impressum.ImpressumMainController;
 import org.olat.core.commons.controllers.impressum.ImpressumModule;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.commons.services.help.HelpLinkSPI;
 import org.olat.core.commons.services.help.HelpModule;
 import org.olat.core.gui.UserRequest;
@@ -55,7 +55,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * 
  * @author patrickb
  */
-public class OlatGuestTopNavController extends BasicController implements TopNavController {
+public class OlatGuestTopNavController extends BasicController implements LockableController {
 
 	private Link loginLink, impressumLink;
 
diff --git a/src/main/java/org/olat/gui/control/OlatMinimalTopNavController.java b/src/main/java/org/olat/gui/control/OlatMinimalTopNavController.java
index c642fa2030ba51464bd1e861f70a18208f66e9f8..bc3769157b268f537fb2abbe871ff155a00cf21c 100644
--- a/src/main/java/org/olat/gui/control/OlatMinimalTopNavController.java
+++ b/src/main/java/org/olat/gui/control/OlatMinimalTopNavController.java
@@ -24,7 +24,7 @@
 */
 package org.olat.gui.control;
 
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.dispatcher.impl.StaticMediaDispatcher;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.Windows;
@@ -48,7 +48,7 @@ import org.olat.core.id.OLATResourceable;
  * Initial Date:  15.02.2008 <br>
  * @author patrickb
  */
-public class OlatMinimalTopNavController extends BasicController implements TopNavController {
+public class OlatMinimalTopNavController extends BasicController implements LockableController {
 
 	private final Link closeLink;
 
diff --git a/src/main/java/org/olat/gui/control/OlatTopNavController.java b/src/main/java/org/olat/gui/control/OlatTopNavController.java
index 4ec1c07a4eba90f3f8442cfd54ea4f112891f76a..a8248d0a310a5de8b8a43811839be0619262c557 100644
--- a/src/main/java/org/olat/gui/control/OlatTopNavController.java
+++ b/src/main/java/org/olat/gui/control/OlatTopNavController.java
@@ -27,7 +27,7 @@ import java.util.Set;
 import org.olat.admin.user.tools.UserTool;
 import org.olat.admin.user.tools.UserToolExtension;
 import org.olat.admin.user.tools.UserToolsModule;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.dispatcher.DispatcherModule;
 import org.olat.core.extensions.ExtManager;
 import org.olat.core.gui.UserRequest;
@@ -56,7 +56,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  *
  */
-public class OlatTopNavController extends BasicController implements TopNavController {
+public class OlatTopNavController extends BasicController implements LockableController {
 	
 	private Link loginLink;
 	private VelocityContainer topNavVC;
diff --git a/src/main/java/org/olat/gui/control/UserToolsMenuController.java b/src/main/java/org/olat/gui/control/UserToolsMenuController.java
index de9cb5434ee587120e3040b706f4ad9d1d8ae83f..28bb5b49b9ec78757543792279e2bb24bd738be7 100644
--- a/src/main/java/org/olat/gui/control/UserToolsMenuController.java
+++ b/src/main/java/org/olat/gui/control/UserToolsMenuController.java
@@ -29,7 +29,7 @@ import org.olat.admin.user.tools.UserToolCategory;
 import org.olat.admin.user.tools.UserToolExtension;
 import org.olat.admin.user.tools.UserToolsModule;
 import org.olat.basesecurity.AuthHelper;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.velocity.VelocityContainer;
@@ -48,7 +48,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  *
  */
-public class UserToolsMenuController extends BasicController implements TopNavController  {
+public class UserToolsMenuController extends BasicController implements LockableController  {
 
 	private static final String ACTION_LOGOUT = "logout";
 	
diff --git a/src/main/java/org/olat/gui/control/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/gui/control/_i18n/LocalStrings_pt_BR.properties
index ea14b4401e777ebb120939457d3bebd0f6a0cc42..e211a7eaf41c99fa4e26b8b9d84d5e0a107daec7 100644
--- a/src/main/java/org/olat/gui/control/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/gui/control/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Jul 30 16:13:40 CEST 2014
+#Fri Jan 23 22:14:18 CET 2015
 chelp.about.title=$org.olat.login\:chelp.about.title
 command.closeprinting=Fechar visualiza\u00E7\u00E3o de impress\u00E3o
 footer.ajax.hover=Modo AJAX est\u00E1 ativo, o que significa respostas r\u00E1pidas no OLAT.
@@ -18,6 +18,7 @@ topnav.logout=Sair do OLAT
 topnav.logout.alt=Sair do servidor OLAT
 topnav.my.menu.configurations=Configura\u00E7\u00E3o
 topnav.my.menu.label={0}
+topnav.my.menu.systems=Sistema
 topnav.my.menu.tools=Ferramentas pessoais
 topnav.permlink=Link aqui
 topnav.permlink.info=Link aqui via {0}
diff --git a/src/main/java/org/olat/ims/qti/QTI12ResultDetailsController.java b/src/main/java/org/olat/ims/qti/QTI12ResultDetailsController.java
index 4fb3dd1080914f7480f405d8dc72d227b54b2677..fc9f4619da6322ac7f73693a45225f2a16372146 100644
--- a/src/main/java/org/olat/ims/qti/QTI12ResultDetailsController.java
+++ b/src/main/java/org/olat/ims/qti/QTI12ResultDetailsController.java
@@ -42,7 +42,6 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
-import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
 import org.olat.core.gui.control.generic.modal.DialogBoxController;
 import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.id.Identity;
@@ -51,6 +50,7 @@ import org.olat.core.util.i18n.I18nModule;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
 import org.olat.course.assessment.AssessmentHelper;
+import org.olat.course.assessment.OpenSubDetailsEvent;
 import org.olat.course.nodes.AssessableCourseNode;
 import org.olat.course.run.scoring.ScoreEvaluation;
 import org.olat.course.run.userview.UserCourseEnvironment;
@@ -65,7 +65,6 @@ import org.olat.ims.qti.process.AssessmentFactory;
 import org.olat.ims.qti.process.AssessmentInstance;
 import org.olat.ims.qti.process.FilePersister;
 import org.olat.ims.qti.process.Persister;
-import org.olat.ims.qti.render.LocalizedXSLTransformer;
 import org.olat.modules.ModuleConfiguration;
 import org.olat.modules.iq.IQManager;
 import org.olat.modules.iq.IQRetrievedEvent;
@@ -89,12 +88,11 @@ public class QTI12ResultDetailsController extends BasicController {
 	private final IQManager iqm;
 	private final QTIResultManager qrm;
 	
-	private VelocityContainer main, details;
-	private QTIResultTableModel tableModel;
+	private VelocityContainer main;
 	private TableController tableCtr;
+	private QTIResultTableModel tableModel;
 	private DialogBoxController retrieveConfirmationCtr;
-	
-	private CloseableModalController cmc;
+	private QTI12XSLTResultDetailsController xsltDetailsCtr;
 	
 	/**
 	 * @param courseResourceableId
@@ -105,8 +103,8 @@ public class QTI12ResultDetailsController extends BasicController {
 	 * @param ureq
 	 * @param wControl
 	 */
-	public QTI12ResultDetailsController(UserRequest ureq, WindowControl wControl, Long courseResourceableId, String nodeIdent, Identity assessedIdentity,
-			RepositoryEntry re, String type) {
+	public QTI12ResultDetailsController(UserRequest ureq, WindowControl wControl, Long courseResourceableId, String nodeIdent,
+			Identity assessedIdentity, RepositoryEntry re, String type) {
 		super(ureq, wControl);
 		this.courseResourceableId = courseResourceableId;
 		this.nodeIdent = nodeIdent;
@@ -144,7 +142,6 @@ public class QTI12ResultDetailsController extends BasicController {
 	
 	private void init(UserRequest ureq) {
 		main = createVelocityContainer("qtires");
-		details = createVelocityContainer("qtires_details");
 		
 		boolean hasEssay = checkEssay();
 		main.contextPut("warningEssay", new Boolean(hasEssay));
@@ -192,18 +189,10 @@ public class QTI12ResultDetailsController extends BasicController {
 				QTIResultSet resultSet = tableModel.getObject(tEvent.getRowId());
 				
 				try {
-					Document doc = FilePersister.retreiveResultsReporting(assessedIdentity, type, resultSet.getAssessmentID());
-					if (doc == null) {
-						showInfo("error.resreporting.na");
-						return;
-					}
-					StringBuilder resultsHTML = LocalizedXSLTransformer.getInstance(ureq.getLocale()).renderResults(doc);
-					details.contextPut("reshtml", resultsHTML);
-					
-					removeAsListenerAndDispose(cmc);
-					cmc = new CloseableModalController(getWindowControl(), getTranslator().translate("close"), details);
-					listenTo(cmc);
-					cmc.activate();
+					removeAsListenerAndDispose(xsltDetailsCtr);
+					xsltDetailsCtr = new QTI12XSLTResultDetailsController(ureq, getWindowControl(), assessedIdentity, type, resultSet);
+					listenTo(xsltDetailsCtr);
+					fireEvent(ureq, new OpenSubDetailsEvent(xsltDetailsCtr));
 				} catch (Exception e) {
 					logError("", e);
 					showError("error.resreporting.na");
@@ -217,10 +206,6 @@ public class QTI12ResultDetailsController extends BasicController {
 					retrieveConfirmationCtr = activateYesNoDialog(ureq, title, text, retrieveConfirmationCtr);
 				}
 			}
-		} else if (source == cmc) {
-			updateTableModel();
-			removeAsListenerAndDispose(cmc);
-			cmc = null;
 		} else if (source == retrieveConfirmationCtr) {
 			if(DialogBoxUIFactory.isYesEvent(event)) {
 				if(tableModel.isTestRunning()) {
@@ -244,6 +229,7 @@ public class QTI12ResultDetailsController extends BasicController {
 	/**
 	 * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
 	 */
+	@Override
 	protected void doDispose() {
 		//
 	}
diff --git a/src/main/java/org/olat/ims/qti/QTI12XSLTResultDetailsController.java b/src/main/java/org/olat/ims/qti/QTI12XSLTResultDetailsController.java
new file mode 100644
index 0000000000000000000000000000000000000000..d667e728e360e19c4ad3c0270ceceac5b3eab952
--- /dev/null
+++ b/src/main/java/org/olat/ims/qti/QTI12XSLTResultDetailsController.java
@@ -0,0 +1,65 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.ims.qti;
+
+import org.dom4j.Document;
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.velocity.VelocityContainer;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.id.Identity;
+import org.olat.ims.qti.process.FilePersister;
+import org.olat.ims.qti.render.LocalizedXSLTransformer;
+
+/**
+ * 
+ * Initial date: 05.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class QTI12XSLTResultDetailsController extends BasicController {
+
+	public QTI12XSLTResultDetailsController(UserRequest ureq, WindowControl wControl,
+			Identity assessedIdentity, String type, QTIResultSet resultSet) {
+		super(ureq, wControl);
+		
+		VelocityContainer details = createVelocityContainer("qtires_details");
+		Document doc = FilePersister.retreiveResultsReporting(assessedIdentity, type, resultSet.getAssessmentID());
+		if (doc == null) {
+			showInfo("error.resreporting.na");
+			return;
+		}
+		StringBuilder resultsHTML = LocalizedXSLTransformer.getInstance(ureq.getLocale()).renderResults(doc);
+		details.contextPut("reshtml", resultsHTML);
+		putInitialPanel(details);
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void event(UserRequest ureq, Component source, Event event) {
+		//
+	}
+}
diff --git a/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java b/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java
index aabfa6a074c12af89e4fd06eff6b486d2df87e59..ea57e9b5a75005db7751ba0a90d33b7fabe1ff5c 100644
--- a/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java
+++ b/src/main/java/org/olat/ims/qti/editor/QTIEditorMainController.java
@@ -91,6 +91,7 @@ import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.callbacks.FullAccessWithQuotaCallback;
 import org.olat.core.util.vfs.callbacks.VFSSecurityCallback;
 import org.olat.core.util.xml.XStreamHelper;
+import org.olat.course.CorruptedCourseException;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
 import org.olat.course.nodes.CourseNode;
@@ -133,6 +134,7 @@ import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryService;
 import org.olat.resource.references.ReferenceImpl;
 import org.olat.user.UserManager;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * Description: <br>
@@ -254,24 +256,37 @@ public class QTIEditorMainController extends MainLayoutBasicController implement
 	private StepsMainRunController importTableWizard;
 	private InsertNodeController moveCtrl, copyCtrl, insertCtrl;
 
-	private final UserManager userManager;
-	private final QTIQPoolServiceProvider qtiQpoolServiceProvider;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private QTIResultManager qtiResultManager;
+	@Autowired
+	private RepositoryManager repositoryManager;
+	@Autowired
+	private QTIQPoolServiceProvider qtiQpoolServiceProvider;
 	
-	public QTIEditorMainController(List<ReferenceImpl> referencees, UserRequest ureq, WindowControl wControl, FileResource fileResource) {
+	public QTIEditorMainController(UserRequest ureq, WindowControl wControl, RepositoryEntry qtiEntry, List<ReferenceImpl> referencees, FileResource fileResource) {
 		super(ureq, wControl);
-		
-		qtiQpoolServiceProvider = (QTIQPoolServiceProvider)CoreSpringFactory.getBean("qtiPoolServiceProvider");
-		userManager = CoreSpringFactory.getImpl(UserManager.class);
 
 		for(Iterator<ReferenceImpl> iter = referencees.iterator(); iter.hasNext(); ) {
 			ReferenceImpl ref = iter.next();
 			if ("CourseModule".equals(ref.getSource().getResourceableTypeName())) {
-				ICourse course = CourseFactory.loadCourse(ref.getSource().getResourceableId());
-				CourseNode courseNode = course.getEditorTreeModel().getCourseNode(ref.getUserdata());
-				String repositorySoftKey = (String) courseNode.getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY);
-				Long repKey = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, true).getKey();
-				restrictedEdit = ((CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(course, null))
-						|| QTIResultManager.getInstance().countResults(course.getResourceableId(), courseNode.getIdent(), repKey) > 0) ? true : false;
+				try {
+					ICourse course = CourseFactory.loadCourse(ref.getSource().getResourceableId());
+					CourseNode courseNode = course.getEditorTreeModel().getCourseNode(ref.getUserdata());
+					String repositorySoftKey = (String) courseNode.getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY);
+					//check softly that the setting if ok
+					if(qtiEntry.getSoftkey().equals(repositorySoftKey)) {
+						restrictedEdit = ((CoordinatorManager.getInstance().getCoordinator().getLocker().isLocked(course, null))
+							|| qtiResultManager.countResults(course.getResourceableId(), courseNode.getIdent(), qtiEntry.getKey()) > 0) ? true : false;
+					} else {
+						logError("The course node soft key doesn't match the test/survey sotf key. Course resourceable id: "
+					      + course.getResourceableId() + " (" + course.getCourseTitle() + ") course node: " + courseNode.getIdent() + " (" + courseNode.getShortTitle() + " )"
+					      + " soft key of test/survey in course: " + repositorySoftKey + "  test/survey soft key: " + qtiEntry.getSoftkey(), null);
+					}
+				} catch(CorruptedCourseException e) {
+					logError("", e);
+				}
 			}
 			if(restrictedEdit) {
 				break;
@@ -1198,10 +1213,17 @@ public class QTIEditorMainController extends MainLayoutBasicController implement
 		for (Iterator<ReferenceImpl> iter = referencees.iterator(); iter.hasNext();) {
 			ReferenceImpl element = iter.next();
 			if ("CourseModule".equals(element.getSource().getResourceableTypeName())) {
-				ICourse course = CourseFactory.loadCourse(element.getSource().getResourceableId());
-				if(course == null) {
+				ICourse course = null;
+				try {
+					course = CourseFactory.loadCourse(element.getSource().getResourceableId());
+					if(course == null) {
+						continue;
+					}
+				} catch(CorruptedCourseException ex) {
+					logError("", ex);
 					continue;
 				}
+				
 				String courseTitle = course.getCourseTitle();
 				StringBuilder stakeHolders = new StringBuilder();
 				
diff --git a/src/main/java/org/olat/ims/qti/export/QTIWordExport.java b/src/main/java/org/olat/ims/qti/export/QTIWordExport.java
index 9e2eddccaa309552d6da423c5fb90883149de4d9..b99e7acdfde9001280f3b59a25fbb23d6b3ad34f 100644
--- a/src/main/java/org/olat/ims/qti/export/QTIWordExport.java
+++ b/src/main/java/org/olat/ims/qti/export/QTIWordExport.java
@@ -291,7 +291,7 @@ public class QTIWordExport implements MediaResource {
 		String title = section.getTitle();
 		document.appendHeading1(title, null);
 		String objectives = section.getObjectives();
-		document.appendText(objectives, true);
+		document.appendHtmlText(objectives, true);
 	}
 	
 	public static void renderAssessment(Assessment assessment, OpenXMLDocument document, Translator translator) {
diff --git a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_de.properties
index 3f0621175b58a620e236f7ec671a4584a174626f..7d33b79c8a457e97e7d3d622d314c43245bee201 100644
--- a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_de.properties
@@ -68,7 +68,7 @@ help.arch-test-csv=Informationen zu Trennzeichen und Dateinamenerweiterung
 item.duration=Dauer (s)
 item.positions=Pos
 item.score=Pkt
-item.score.long={0} Punkte
+item.score.long={0} Punkt(e)
 item.start=Start
 item.type.essay=Freitext
 item.type.fib=L\u00FCckentext
diff --git a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_en.properties
index 50f2173e743be5546fa007ecf1588ea1a5e830be..65db350f16cb1a5d7d6e5a08b92d3714e2e3915a 100644
--- a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_en.properties
@@ -74,7 +74,7 @@ item.type.mc=$org.olat.ims.qti.editor\:item.type.mc
 item.type.sc=$org.olat.ims.qti.editor\:item.type.sc
 info.alienitem=$org.olat.ims.qti.editor\:info.alienitem
 item.score=Score
-item.score.long={0} Point
+item.score.long={0} point(s)
 item.start=Start
 legend=Legend
 nodechoose.intro=Please select a test or questionnaire that should be analyzed in the following. You will find its archived results in your personal folder in the section private/archive/[course name]/[file name].
diff --git a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_fr.properties
index ebbcb536ebb2972dc1bbbd50b89e02e685c408f6..c841b2881615898d95786df85fbaa58579e1d541 100644
--- a/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/ims/qti/export/_i18n/LocalStrings_fr.properties
@@ -70,7 +70,7 @@ info.alienitem=$org.olat.ims.qti.editor\:info.alienitem
 item.duration=Dur\u00E9e (s)
 item.positions=Pos
 item.score=Pts
-item.score.long={0} Point
+item.score.long={0} point(s)
 item.start=D\u00E9marrage
 item.type.essay=Dissertation
 item.type.fib=Texte \u00E0 trous
diff --git a/src/main/java/org/olat/ims/qti/qpool/ItemFileResourceValidator.java b/src/main/java/org/olat/ims/qti/qpool/ItemFileResourceValidator.java
index d156d3217abde345e12c6f751266bfa01024b000..1d9fab8bb8a9935e560d128f0b5e19c38ba93780 100644
--- a/src/main/java/org/olat/ims/qti/qpool/ItemFileResourceValidator.java
+++ b/src/main/java/org/olat/ims/qti/qpool/ItemFileResourceValidator.java
@@ -37,9 +37,9 @@ import org.dom4j.io.SAXReader;
 import org.dom4j.io.SAXValidator;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
+import org.olat.core.util.io.ShieldInputStream;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.ims.resources.IMSEntityResolver;
-import org.olat.search.service.document.file.utils.ShieldInputStream;
 import org.xml.sax.Attributes;
 import org.xml.sax.ErrorHandler;
 import org.xml.sax.SAXException;
diff --git a/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java b/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java
index ba3b52ff81d1527c4cb4abd41750986dd0c0dc60..8bffea598ddcd81191fb3f8f779e6c48d99ef2d9 100644
--- a/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java
+++ b/src/main/java/org/olat/ims/qti/repository/handlers/QTISurveyHandler.java
@@ -172,11 +172,8 @@ public class QTISurveyHandler extends QTIHandler {
 		fr.overrideResourceableId(res.getResourceableId());
 		
 		//check if we can edit in restricted mode -> only typos 
-		ReferenceManager refM = ReferenceManager.getInstance();
-		List<ReferenceImpl> referencees = refM.getReferencesTo(res);
-		//String referencesSummary = refM.getReferencesToSummary(res, ureq.getLocale());
-		//boolean restrictedEdit = referencesSummary != null;
-		QTIEditorMainController editor =  new QTIEditorMainController(referencees,ureq, wControl, fr);
+		List<ReferenceImpl> referencees = ReferenceManager.getInstance().getReferencesTo(res);
+		QTIEditorMainController editor =  new QTIEditorMainController(ureq, wControl, re, referencees, fr);
 		if (editor.isLockedSuccessfully()) {
 			return editor;
 		} else {
diff --git a/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java b/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java
index a96e631b124eccd352320d11565dd9e6b0f0451a..f2ec2b249755c20a932e8e5a4110cf458849a789 100644
--- a/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java
+++ b/src/main/java/org/olat/ims/qti/repository/handlers/QTITestHandler.java
@@ -173,11 +173,8 @@ public class QTITestHandler extends QTIHandler {
 		fr.overrideResourceableId(res.getResourceableId());
 		
 		//check if we can edit in restricted mode -> only typos 
-		ReferenceManager refM = ReferenceManager.getInstance();
-		List<ReferenceImpl> referencees = refM.getReferencesTo(res);
-		//String referencesSummary = refM.getReferencesToSummary(res, ureq.getLocale());
-		//boolean restrictedEdit = referencesSummary != null;
-		QTIEditorMainController editor =  new QTIEditorMainController(referencees,ureq, wControl, fr);
+		List<ReferenceImpl> referencees = ReferenceManager.getInstance().getReferencesTo(res);
+		QTIEditorMainController editor =  new QTIEditorMainController(ureq, wControl, re, referencees, fr);
 		if (editor.isLockedSuccessfully()) {
 			return editor;
 		} else {
diff --git a/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java b/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java
index 5eed214d8cb2852593348dbf67122aeb2ad5a9e5..bc07ff0c839daccaf9860c17fa5841cb7ee173f1 100644
--- a/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java
+++ b/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java
@@ -28,6 +28,8 @@ import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 import javax.naming.directory.SearchResult;
 
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
 import org.olat.ldap.model.LDAPGroup;
 
 /**
@@ -37,6 +39,8 @@ import org.olat.ldap.model.LDAPGroup;
  *
  */
 public class LDAPGroupVisitor implements LDAPVisitor {
+	
+	private static final OLog log = Tracing.createLoggerFor(LDAPGroupVisitor.class);
 
 	private final List<LDAPGroup> groups = new ArrayList<LDAPGroup>();
 	
@@ -65,7 +69,7 @@ public class LDAPGroupVisitor implements LDAPVisitor {
 				}
 			}
 		} catch (NamingException e) {
-			e.printStackTrace();
+			log.error("", e);
 		}
 		group.setMembers(members);
 		groups.add(group);
diff --git a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
index 1b86a7b0471b48f3cc109c95f4f33fa2169bb4ad..9bef6542538a6dd6d29370ced6dbabb34c68bcd5 100644
--- a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
+++ b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java
@@ -1140,12 +1140,16 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, GenericEventListe
 		List<Identity> currentMembers = businessGroupRelationDao
 				.getMembers(businessGroup, GroupRoles.coach.name(), GroupRoles.participant.name());
 
+		int count = 0;
 		for(String member:members) {
 			LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors);
 			if(ldapUser != null) {
 				Identity identity = ldapUser.getCachedIdentity();
 				syncMembership(businessGroup, identity, ldapUser.isCoach());
 				currentMembers.remove(identity);
+				if(++count % 20 == 0) {
+					dbInstance.commitAndCloseSession();
+				}
 			}
 		}
 		
@@ -1153,6 +1157,9 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, GenericEventListe
 			List<String> roles = businessGroupRelationDao.getRoles(currentMember, businessGroup);
 			for(String role:roles) {
 				businessGroupRelationDao.removeRole(currentMember, businessGroup, role);
+				if(++count % 20 == 0) {
+					dbInstance.commitAndCloseSession();
+				}
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/login/AuthBFWCParts.java b/src/main/java/org/olat/login/AuthBFWCParts.java
index 11726e0d28054d1bd1bbad3db1b4ec45afe1ef8c..dd7e310d52348529fd82ca276c73b4f2b8d0f4c9 100644
--- a/src/main/java/org/olat/login/AuthBFWCParts.java
+++ b/src/main/java/org/olat/login/AuthBFWCParts.java
@@ -29,7 +29,7 @@ import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -53,14 +53,14 @@ public class AuthBFWCParts implements BaseFullWebappControllerParts {
 	 * @see org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts#createFooterController(org.olat.core.gui.UserRequest, org.olat.core.gui.control.WindowControl)
 	 */
 	@Override
-	public Controller createFooterController(UserRequest ureq, WindowControl wControl) {
+	public LockableController createFooterController(UserRequest ureq, WindowControl wControl) {
 		Controller footerCtr = null;
 		// ----------- footer, optional (e.g. for copyright, powerd by) ------------------
 		if (CoreSpringFactory.containsBean("fullWebApp.FooterControllerCreator")) {
 			ControllerCreator footerCreator = (ControllerCreator) CoreSpringFactory.getBean("fullWebApp.FooterControllerCreator");
 			footerCtr = footerCreator.createController(ureq, wControl);
 		}
-		return footerCtr;
+		return (LockableController)footerCtr;
 	}
 
 	/**
@@ -81,14 +81,14 @@ public class AuthBFWCParts implements BaseFullWebappControllerParts {
 	 * @see org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts#createTopNavController(org.olat.core.gui.UserRequest, org.olat.core.gui.control.WindowControl)
 	 */
 	@Override
-	public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl) {
+	public LockableController createTopNavController(UserRequest ureq, WindowControl wControl) {
 		Controller topnavCtr = null;
 		// ----------- topnav, optional (e.g. for imprint, logout) ------------------		
 		if (CoreSpringFactory.containsBean("fullWebApp.TopNavControllerCreator")) {
 			ControllerCreator topnavControllerCreator = (ControllerCreator) CoreSpringFactory.getBean("fullWebApp.TopNavControllerCreator");
 			topnavCtr = topnavControllerCreator.createController(ureq, wControl);
 		}
-		return (TopNavController)topnavCtr;
+		return (LockableController)topnavCtr;
 	}
 
 	/**
diff --git a/src/main/java/org/olat/login/DmzBFWCParts.java b/src/main/java/org/olat/login/DmzBFWCParts.java
index 5f04f4447d714562f9c648a2d79c147ffee63a3a..b76d908a60baa5b416e655766b1a3702c0b61e2d 100644
--- a/src/main/java/org/olat/login/DmzBFWCParts.java
+++ b/src/main/java/org/olat/login/DmzBFWCParts.java
@@ -28,7 +28,7 @@ import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -46,7 +46,7 @@ public class DmzBFWCParts implements BaseFullWebappControllerParts {
 	private boolean showTopNav = true; // default
 
 	@Override
-	public Controller createFooterController(UserRequest ureq, WindowControl wControl) {
+	public LockableController createFooterController(UserRequest ureq, WindowControl wControl) {
 		Controller footerCtr = null;
 		// ----------- footer, optional (e.g. for copyright, powered by) ------------------
 		if (CoreSpringFactory.containsBean("fullWebApp.DMZFooterControllerCreator")) {
@@ -55,7 +55,7 @@ public class DmzBFWCParts implements BaseFullWebappControllerParts {
 		} else {
 			footerCtr = new OlatFooterController(ureq,wControl);
 		}
-		return footerCtr;
+		return (LockableController)footerCtr;
 	}
 
 	@Override
@@ -70,12 +70,12 @@ public class DmzBFWCParts implements BaseFullWebappControllerParts {
 	}
 
 	@Override
-	public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl) {
+	public LockableController createTopNavController(UserRequest ureq, WindowControl wControl) {
 		if (showTopNav) {
-			TopNavController topNavCtr = null;
+			LockableController topNavCtr = null;
 			if (CoreSpringFactory.containsBean("fullWebApp.DMZTopNavControllerCreator")) {
 				ControllerCreator headerControllerCreator = (ControllerCreator)  CoreSpringFactory.getBean("fullWebApp.DMZTopNavControllerCreator");
-				topNavCtr = (TopNavController)headerControllerCreator.createController(ureq, wControl);
+				topNavCtr = (LockableController)headerControllerCreator.createController(ureq, wControl);
 			}
 			return topNavCtr;
 		} else {
diff --git a/src/main/java/org/olat/login/GuestBFWCParts.java b/src/main/java/org/olat/login/GuestBFWCParts.java
index adc2be7d853d638181e3622845126fea9e07a381..eb58f28bfc1093d46bce206be8e5b9d432755c04 100644
--- a/src/main/java/org/olat/login/GuestBFWCParts.java
+++ b/src/main/java/org/olat/login/GuestBFWCParts.java
@@ -29,7 +29,7 @@ import java.util.List;
 
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts;
-import org.olat.core.commons.fullWebApp.TopNavController;
+import org.olat.core.commons.fullWebApp.LockableController;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
@@ -55,7 +55,7 @@ public class GuestBFWCParts implements BaseFullWebappControllerParts {
 	 * @see org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts#createFooterController(org.olat.core.gui.UserRequest, org.olat.core.gui.control.WindowControl)
 	 */
 	@Override
-	public Controller createFooterController(UserRequest ureq, WindowControl wControl) {
+	public LockableController createFooterController(UserRequest ureq, WindowControl wControl) {
 		Controller footerCtr = null;
 		// ----------- footer, optional (e.g. for copyright, powered by) ------------------
 		if (CoreSpringFactory.containsBean("fullWebApp.GuestFooterControllerCreator")) {
@@ -64,7 +64,7 @@ public class GuestBFWCParts implements BaseFullWebappControllerParts {
 		} else {
 			footerCtr = new OlatFooterController(ureq,wControl);
 		}
-		return footerCtr;
+		return (LockableController)footerCtr;
 	}
 
 	/**
@@ -85,12 +85,12 @@ public class GuestBFWCParts implements BaseFullWebappControllerParts {
 	 * @see org.olat.core.commons.fullWebApp.BaseFullWebappControllerParts#createTopNavController(org.olat.core.gui.UserRequest, org.olat.core.gui.control.WindowControl)
 	 */
 	@Override
-	public TopNavController createTopNavController(UserRequest ureq, WindowControl wControl) {
+	public LockableController createTopNavController(UserRequest ureq, WindowControl wControl) {
 		if (showTopNav) {
-			TopNavController topNavCtr = null;
+			LockableController topNavCtr = null;
 			if (CoreSpringFactory.containsBean("fullWebApp.GuestTopNavControllerCreator")) {
 				ControllerCreator headerControllerCreator = (ControllerCreator)  CoreSpringFactory.getBean("fullWebApp.GuestTopNavControllerCreator");
-				topNavCtr = (TopNavController)headerControllerCreator.createController(ureq, wControl);
+				topNavCtr = (LockableController)headerControllerCreator.createController(ureq, wControl);
 			}
 			return topNavCtr;
 		} else {
diff --git a/src/main/java/org/olat/login/LoginAdminController.java b/src/main/java/org/olat/login/LoginAdminController.java
index 84fcaa83a5003c7c4ada00ff7d713f06d6b6d34a..2c4443927bab8d5fa22ce710c2b90e4fa96e7196 100644
--- a/src/main/java/org/olat/login/LoginAdminController.java
+++ b/src/main/java/org/olat/login/LoginAdminController.java
@@ -1,3 +1,22 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
 package org.olat.login;
 
 import org.olat.core.gui.UserRequest;
diff --git a/src/main/java/org/olat/modules/coach/CoachingService.java b/src/main/java/org/olat/modules/coach/CoachingService.java
index 13739b189e9a2c973512d07e642d36a5d235a2a8..e511af643a704eb08a8250770d10e239553b7d85 100644
--- a/src/main/java/org/olat/modules/coach/CoachingService.java
+++ b/src/main/java/org/olat/modules/coach/CoachingService.java
@@ -19,17 +19,15 @@
  */
 package org.olat.modules.coach;
 
-import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 
-import org.olat.basesecurity.IdentityRef;
 import org.olat.core.id.Identity;
 import org.olat.course.assessment.UserEfficiencyStatement;
 import org.olat.group.BusinessGroup;
 import org.olat.modules.coach.model.CourseStatEntry;
 import org.olat.modules.coach.model.EfficiencyStatementEntry;
 import org.olat.modules.coach.model.GroupStatEntry;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
 import org.olat.modules.coach.model.StudentStatEntry;
 import org.olat.repository.RepositoryEntry;
 
@@ -44,16 +42,15 @@ public interface CoachingService {
 
 	public boolean isCoach(Identity coach);
 	
-	public Map<Long, String> getIdentities(Collection<Long> identityNames);
 
-	public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student, int firstResult, int maxResults);
+	public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student);
 	
 	public List<StudentStatEntry> getStudentsStatistics(Identity coach);
 	
 	
-	public List<StudentStatEntry> getUsersStatistics(List<? extends IdentityRef> identities);
+	public List<StudentStatEntry> getUsersStatistics(SearchCoachedIdentityParams params);
 	
-	public List<RepositoryEntry> getUserCourses(Identity student, int firstResult, int maxResults);
+	public List<RepositoryEntry> getUserCourses(Identity student);
 	
 	
 	public List<CourseStatEntry> getCoursesStatistics(Identity coach);
diff --git a/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java b/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java
index d4107983b00c78a46b8118ea20ad99d2b39a8d7c..c448cac6db95fb155fc04426adbfbb746819e082 100644
--- a/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java
+++ b/src/main/java/org/olat/modules/coach/manager/CoachingDAO.java
@@ -19,26 +19,34 @@
  */
 package org.olat.modules.coach.manager;
 
+import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import javax.persistence.Query;
-import javax.persistence.TypedQuery;
 
+import org.olat.basesecurity.GroupRoles;
 import org.olat.basesecurity.IdentityRef;
 import org.olat.basesecurity.IdentityShort;
 import org.olat.core.commons.persistence.DB;
+import org.olat.core.commons.persistence.NativeQueryBuilder;
+import org.olat.core.commons.persistence.PersistenceHelper;
 import org.olat.core.id.Identity;
-import org.olat.core.manager.BasicManager;
+import org.olat.core.logging.OLog;
+import org.olat.core.logging.Tracing;
+import org.olat.core.util.StringHelper;
 import org.olat.course.assessment.UserEfficiencyStatement;
 import org.olat.course.assessment.model.UserEfficiencyStatementLight;
 import org.olat.modules.coach.model.CourseStatEntry;
-import org.olat.modules.coach.model.EfficiencyStatementCourseStatEntry;
 import org.olat.modules.coach.model.EfficiencyStatementEntry;
-import org.olat.modules.coach.model.EfficiencyStatementGroupStatEntry;
-import org.olat.modules.coach.model.EfficiencyStatementStudentStatEntry;
 import org.olat.modules.coach.model.GroupStatEntry;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
 import org.olat.modules.coach.model.StudentStatEntry;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
@@ -55,27 +63,42 @@ import org.springframework.stereotype.Service;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
 @Service
-public class CoachingDAO extends BasicManager {
+public class CoachingDAO {
+	
+	private static final OLog log = Tracing.createLoggerFor(CoachingDAO.class);
 
 	@Autowired
 	private DB dbInstance;
 	@Autowired
 	private RepositoryManager repositoryManager;
 
-	public boolean isCoach(Identity coach) {
-		try {
-			return repositoryManager.hasLearningResourcesAsTeacher(coach);
-		} catch (Exception e) {
-			logError("isCoach: ", e);
-			return false;
-		}
+	public boolean isCoach(IdentityRef coach) {
+		StringBuilder sb = new StringBuilder(1024);
+		sb.append("select v.key from ").append(RepositoryEntry.class.getName()).append(" v ")
+		  .append(" inner join v.olatResource as res on res.resName='CourseModule'")
+		  .append(" inner join v.groups as relGroup")
+		  .append(" inner join relGroup.group as baseGroup")
+		  .append(" inner join baseGroup.members as membership on membership.role in ('").append(GroupRoles.owner.name()).append("','").append(GroupRoles.coach.name()).append("')")
+		  .append(" where membership.identity.key=:identityKey")
+		  .append(" and (")
+		  .append("  (membership.role = 'coach' and (v.access>=3 or (v.access=").append(RepositoryEntry.ACC_OWNERS).append(" and v.membersOnly=true)))")
+		  .append("  or")
+		  .append("  (membership.role = 'owner' and v.access>=1)")
+		  .append(" )");
+		
+		List<Long> firstKey = dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), Long.class)
+				.setParameter("identityKey", coach.getKey())
+				.setFirstResult(0)
+				.setMaxResults(1)
+				.getResultList();
+		return firstKey.size() > 0;
 	}
 
 	public EfficiencyStatementEntry getEfficencyStatementEntry(UserEfficiencyStatement statement) {
 		RepositoryEntry re = repositoryManager.lookupRepositoryEntry(statement.getCourseRepoKey(), false);
 		Identity identity = statement.getIdentity();
-		EfficiencyStatementEntry entry = new EfficiencyStatementEntry(identity, re, statement);
-		return entry;
+		return new EfficiencyStatementEntry(identity, re, statement);
 	}
 
 	public List<EfficiencyStatementEntry> getEfficencyStatementEntriesAlt(List<Identity> students, List<RepositoryEntry> courses) {
@@ -127,10 +150,10 @@ public class CoachingDAO extends BasicManager {
 		sb.append("select statement from ").append(UserEfficiencyStatementLight.class.getName()).append(" as statement ")
 		  .append(" where statement.identity.key=:studentKey");
 
-		TypedQuery<UserEfficiencyStatement> dbQuery = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), UserEfficiencyStatement.class);
-		dbQuery.setParameter("studentKey", student.getKey());
-		List<UserEfficiencyStatement> props = dbQuery.getResultList();
-		return props;
+		return dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), UserEfficiencyStatement.class)
+				.setParameter("studentKey", student.getKey())
+				.getResultList();
 	}
 	
 	private UserEfficiencyStatement getUserEfficiencyStatementFor(Long studentKey, RepositoryEntry course, List<UserEfficiencyStatement> statements) {
@@ -150,221 +173,846 @@ public class CoachingDAO extends BasicManager {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select statement from ").append(UserEfficiencyStatementLight.class.getName()).append(" as statement ")
 		  .append(" where statement.identity.key in (:studentsKey) and statement.resource.key in (:courseResourcesKey)");
-
-		TypedQuery<UserEfficiencyStatement> dbQuery = dbInstance.getCurrentEntityManager().createQuery(sb.toString(), UserEfficiencyStatement.class);
 		
 		List<Long> coursesKey = new ArrayList<Long>();
 		for(RepositoryEntry course:courses) {
 			coursesKey.add(course.getOlatResource().getKey());
 		}
-		dbQuery.setParameter("courseResourcesKey",coursesKey);
-		dbQuery.setParameter("studentsKey", studentKeys);
 
-		List<UserEfficiencyStatement> props = dbQuery.getResultList();
-		return props;
+		return dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), UserEfficiencyStatement.class)
+				.setParameter("courseResourcesKey",coursesKey)
+				.setParameter("studentsKey", studentKeys).getResultList();
 	}
-
-	public List<GroupStatEntry> getGroupsStatistics(Identity coach) {
-		try {
-			StringBuilder query = new StringBuilder();
-			query.append("select s.groupKey, s.groupName, count(distinct s.repoKey), count(distinct s.studentKey), count(s.studentKey),")
-			     .append("sum(s.passed), sum(s.failed), sum(s.notAttempted), avg(s.score), count(s.initialLaunchKey) ")
-			     .append(" from ").append(EfficiencyStatementGroupStatEntry.class.getName()).append(" as s ")
-	             .append(" where s.tutorKey=:coachKey")
-	             .append(" group by s.groupKey, s.groupName");
+	
+	protected List<GroupStatEntry> getGroupsStatisticsNative(Identity coach) {
+		Map<Long,GroupStatEntry> map = new HashMap<>();
+		boolean hasGroups = getGroups(coach, map);
+		if(hasGroups) {
+			boolean hasCoachedGroups = getGroupsStatisticsInfosForCoach(coach, map);
+			boolean hasOwnedGroups = getGroupsStatisticsInfosForOwner(coach, map);
+			for(GroupStatEntry entry:map.values()) {
+				entry.getRepoIds().clear();
+				entry.setCountStudents(entry.getCountDistinctStudents() * entry.getCountCourses());
+			}
+			if(hasOwnedGroups) {
+				getGroupsStatisticsStatementForOwner(coach, map);
+			}
+			if(hasCoachedGroups) {
+				getGroupsStatisticsStatementForCoach(coach, map);
+			}
 			
-			Query dbQuery = dbInstance.getCurrentEntityManager().createQuery(query.toString());
-			dbQuery.setParameter("coachKey", coach.getKey());
-
-			@SuppressWarnings("unchecked")
-			List<Object[]> rawStats = dbQuery.getResultList();
-			List<GroupStatEntry> stats = new ArrayList<GroupStatEntry>();
-			for(Object[] rawStat:rawStats) {
-				GroupStatEntry entry = new GroupStatEntry();
-				entry.setGroupKey((Long)rawStat[0]);
-				entry.setGroupName((String)rawStat[1]);
-				entry.setCountCourses(((Number)rawStat[2]).intValue());
-				entry.setCountStudents(((Number)rawStat[3]).intValue());
-				entry.setCountStudents(((Number)rawStat[4]).intValue());
-				entry.setCountPassed(((Number)rawStat[5]).intValue());
-				entry.setCountFailed(((Number)rawStat[6]).intValue());
-				entry.setCountNotAttempted(((Number)rawStat[7]).intValue());
-				if(rawStat[8] != null) {
-					entry.setAverageScore(((Number)rawStat[8]).floatValue());
+			for(Iterator<Map.Entry<Long, GroupStatEntry>> it=map.entrySet().iterator(); it.hasNext() ; ) {
+				Map.Entry<Long, GroupStatEntry> entry = it.next();
+				GroupStatEntry groupEntry = entry.getValue();
+				if(groupEntry.getCountStudents() == 0) {
+					it.remove();
+				} else {
+					groupEntry.setRepoIds(null);
+					int attempted = groupEntry.getCountPassed() + groupEntry.getCountFailed();
+					groupEntry.setCountNotAttempted(groupEntry.getCountStudents() - attempted);
+					if(attempted > 0) {
+						float averageScore = (float)groupEntry.getSumScore() / attempted;
+						groupEntry.setAverageScore(averageScore);
+					}
 				}
-				entry.setInitialLaunch(((Number)rawStat[9]).intValue());
-				stats.add(entry);
 			}
-			return stats;
-		} catch (Exception e) {
-			logError("getGroupsStatistics takes (ms): ", e);
-			return Collections.emptyList();
 		}
+		return new ArrayList<>(map.values());
 	}
+	
+	private boolean getGroups(Identity coach, Map<Long,GroupStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select ")
+		  .append(" infos.group_id as grp_id, ")
+		  .append(" infos.fk_group_id as bgrp_id, ")
+		  .append(" infos.groupname as grp_name, ")
+		  .append(" (select count(sg_participant.fk_identity_id) from o_bs_group_member sg_participant ")
+		  .append("   where infos.fk_group_id = sg_participant.fk_group_id and sg_participant.g_role='participant' ")
+		  .append(" ) as num_of_participant ")
+		  .append(" from o_gp_business infos where infos.fk_group_id in ( select ")
+		  .append("   distinct togroup.fk_group_id ")
+		  .append("  from o_re_to_group togroup ")
+		  .append("  inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role = 'coach') ")
+		  .append("  inner join o_repositoryentry sg_re on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append("  inner join o_olatresource sg_res on (sg_res.resource_id = sg_re.fk_olatresource and sg_res.resname = 'CourseModule') ")
+		  .append("  where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("   sg_re.accesscode>=").append(RepositoryEntry.ACC_USERS)
+		  .append("   or ")
+		  .append("   (sg_re.accesscode=").append(RepositoryEntry.ACC_OWNERS).append(" and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(" ) or infos.fk_group_id in ( select ")
+		  .append("	  distinct togroup.fk_group_id ")
+		  .append("  from o_re_to_group togroup ")
+		  .append("  inner join o_repositoryentry sg_re on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append("  inner join o_olatresource sg_res on (sg_res.resource_id = sg_re.fk_olatresource and sg_res.resname = 'CourseModule') ")
+		  .append("  inner join o_re_to_group owngroup on (owngroup.r_defgroup=").appendTrue().append(" and owngroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append("  inner join o_bs_group_member sg_owner on (sg_owner.fk_group_id=owngroup.fk_group_id and sg_owner.g_role = 'owner') ")
+		  .append("  where togroup.r_defgroup=").appendFalse().append(" and sg_owner.fk_identity_id=:coachKey and sg_re.accesscode>=").append(RepositoryEntry.ACC_OWNERS)
+		  .append(" ) ");
 
-	public List<CourseStatEntry> getCoursesStatistics(Identity coach) {
-		//course has members or groups but not both, we can add without check
-		
-		StringBuilder query = new StringBuilder();
-		//                      0             1                    2                             3
-		query.append("select s.repoKey, s.repoDisplayName, count(distinct s.studentKey), count(s.studentKey),")
-		//                      4             5              6                 7                 8
-		     .append(" sum(s.passed), sum(s.failed), sum(s.notAttempted), avg(s.score), count(s.initialLaunchKey) ")
-		     .append(" from ").append(EfficiencyStatementCourseStatEntry.class.getName()).append(" as s ")
-             .append(" where s.tutorKey=:tutorKey")
-             .append(" group by s.repoKey, s.repoDisplayName");
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
 
-		List<Object[]> rawStats = dbInstance.getCurrentEntityManager()
-				.createQuery(query.toString(), Object[].class)
-				.setParameter("tutorKey", coach.getKey())
+		for(Object rawObject:rawList) {
+			Object[] rawStat = (Object[])rawObject;
+			Long groupKey = ((Number)rawStat[0]).longValue();
+			Long baseGroupKey = ((Number)rawStat[1]).longValue();
+			String title = (String)rawStat[2];
+			GroupStatEntry entry = new GroupStatEntry(groupKey, title);
+			entry.setCountDistinctStudents(((Number)rawStat[3]).intValue());
+			map.put(baseGroupKey, entry);
+		}
+		return rawList.size() > 0;
+	}
+	
+	private boolean getGroupsStatisticsInfosForCoach(Identity coach, Map<Long,GroupStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select ")
+		  .append("  togroup.fk_group_id as basegr_id, ")
+		  .append("  togroup.fk_entry_id as re_id, ")
+		  .append("  count(distinct pg_initial_launch.id) as pg_id ")
+		  .append(" from o_repositoryentry sg_re  ")
+		  .append(" inner join o_re_to_group togroup on (togroup.r_defgroup=").appendFalse().append(" and togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role = 'coach') ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" left join o_as_user_course_infos pg_initial_launch ")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id) ")
+		  .append(" where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("   (sg_re.accesscode >= ").append(RepositoryEntry.ACC_USERS).append(" and sg_coach.g_role = 'coach') ")//BAR
+		  .append("   or ")
+		  .append("   (sg_re.accesscode = ").append(RepositoryEntry.ACC_OWNERS).append(" and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(" group by togroup.fk_group_id, togroup.fk_entry_id ");
+		
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+		
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long baseGroupKey = ((Number)rawStats[0]).longValue();
+			GroupStatEntry entry = map.get(baseGroupKey);
+			if(entry != null) {
+				Long repoKey = ((Number)rawStats[1]).longValue();
+				if(!entry.getRepoIds().contains(repoKey)) {
+					int initalLaunch = ((Number)rawStats[2]).intValue();
+					entry.setInitialLaunch(initalLaunch + entry.getInitialLaunch());
+					entry.setCountCourses(entry.getCountCourses() + 1);
+					entry.getRepoIds().add(repoKey);
+				}
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	private boolean getGroupsStatisticsInfosForOwner(Identity coach, Map<Long,GroupStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select ")
+		  .append("  togroup.fk_group_id as basegr_id, ")
+		  .append("  togroup.fk_entry_id as re_id, ")
+		  .append("  count(distinct pg_initial_launch.id) as pg_id ")
+		  .append(" from o_repositoryentry sg_re  ")
+		  .append(" inner join o_re_to_group owngroup on (owngroup.r_defgroup=").appendTrue().append(" and owngroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_owner on (sg_owner.fk_group_id=owngroup.fk_group_id and sg_owner.g_role = 'owner') ")
+		  .append(" inner join o_re_to_group togroup on (togroup.r_defgroup=").appendFalse().append(" and togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" left join o_as_user_course_infos pg_initial_launch ")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id) ")
+		  .append(" where sg_owner.fk_identity_id=:coachKey and sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS)
+		  .append(" group by togroup.fk_group_id, togroup.fk_entry_id ");
+		
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+		
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long baseGroupKey = ((Number)rawStats[0]).longValue();
+			GroupStatEntry entry = map.get(baseGroupKey);
+			if(entry != null) {
+				Long repoKey = ((Number)rawStats[1]).longValue();
+				if(!entry.getRepoIds().contains(repoKey)) {
+					int initalLaunch = ((Number)rawStats[2]).intValue();
+					entry.setInitialLaunch(initalLaunch + entry.getInitialLaunch());
+					entry.setCountCourses(entry.getCountCourses() + 1);
+					entry.getRepoIds().add(repoKey);
+				}
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	private boolean getGroupsStatisticsStatementForCoach(Identity coach, Map<Long,GroupStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select")
+		  .append(" fin_statement.bgp_id,")
+		  .append(" fin_statement.re_id,")
+		  .append(" sum(case when fin_statement.passed=").appendTrue().append(" then 1 else 0 end) as num_of_passed,")
+		  .append(" sum(case when fin_statement.passed=").appendFalse().append(" then 1 else 0 end) as num_of_failed,")
+		  .append(" sum(fin_statement.score) as avg_score ")
+		  .append("from ( select ")
+		  .append("  distinct sg_statement.id as id,")
+		  .append("  togroup.fk_group_id as bgp_id,")
+		  .append("  togroup.fk_entry_id as re_id,")
+		  .append("  sg_statement.passed as passed,")
+		  .append("  sg_statement.score as score ")
+		  .append(" from o_repositoryentry sg_re ")
+		  .append(" inner join o_re_to_group togroup on (togroup.r_defgroup=").appendFalse().append(" and togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role = 'coach') ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" inner join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append(" where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("   (sg_re.accesscode >= ").append(RepositoryEntry.ACC_USERS).append(" and sg_coach.g_role = 'coach') ")//BAR
+		  .append("   or ")
+		  .append("   (sg_re.accesscode = ").append(RepositoryEntry.ACC_OWNERS).append(" and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(") ").appendAs().append(" fin_statement ")
+		  .append("group by fin_statement.bgp_id, fin_statement.re_id ");
+		
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
 				.getResultList();
 		
-		List<CourseStatEntry> stats = new ArrayList<CourseStatEntry>();
-		for(Object[] rawStat:rawStats) {
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long baseGroupKey = ((Number)rawStats[0]).longValue();
+			Long repoKey = ((Number)rawStats[1]).longValue();
+			GroupStatEntry entry = map.get(baseGroupKey);
+			if(entry != null && !entry.getRepoIds().contains(repoKey)) {
+				int passed = ((Number)rawStats[2]).intValue();
+				int failed = ((Number)rawStats[3]).intValue();
+				entry.setCountFailed(failed + entry.getCountFailed());
+				entry.setCountPassed(passed + entry.getCountPassed());
+				if(rawStats[4] != null) {
+					entry.setSumScore(entry.getSumScore() + ((Number)rawStats[4]).floatValue());
+				}
+				entry.getRepoIds().add(repoKey);
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	private boolean getGroupsStatisticsStatementForOwner(Identity coach, Map<Long,GroupStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select")
+		  .append(" fin_statement.bgp_id,")
+		  .append(" fin_statement.re_id,")
+		  .append(" sum(case when fin_statement.passed=").appendTrue().append(" then 1 else 0 end) as num_of_passed,")
+		  .append(" sum(case when fin_statement.passed=").appendFalse().append(" then 1 else 0 end) as num_of_failed,")
+		  .append(" sum(fin_statement.score) as avg_score ")
+		  .append("from ( select ")
+		  .append("  distinct sg_statement.id as id,")
+		  .append("  togroup.fk_group_id as bgp_id,")
+		  .append("  togroup.fk_entry_id as re_id,")
+		  .append("  sg_statement.passed as passed,")
+		  .append("  sg_statement.score as score ")
+		  .append(" from o_repositoryentry sg_re ")
+		  .append(" inner join o_re_to_group owngroup on (owngroup.r_defgroup=").appendTrue().append(" and owngroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_owner on (sg_owner.fk_group_id=owngroup.fk_group_id and sg_owner.g_role = 'owner') ")
+		  .append(" inner join o_re_to_group togroup on (togroup.r_defgroup=").appendFalse().append(" and togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" inner join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append(" where sg_owner.fk_identity_id=:coachKey and sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS)
+		  .append(") ").appendAs().append(" fin_statement ")
+		  .append("group by fin_statement.bgp_id, fin_statement.re_id ");
+		
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+		
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long baseGroupKey = ((Number)rawStats[0]).longValue();
+			Long repoKey = ((Number)rawStats[1]).longValue();
+			GroupStatEntry entry = map.get(baseGroupKey);
+			if(entry != null && !entry.getRepoIds().contains(repoKey)) {
+				int passed = ((Number)rawStats[2]).intValue();
+				int failed = ((Number)rawStats[3]).intValue();
+				entry.setCountFailed(failed + entry.getCountFailed());
+				entry.setCountPassed(passed + entry.getCountPassed());
+				if(rawStats[4] != null) {
+					entry.setSumScore(entry.getSumScore() + ((Number)rawStats[4]).floatValue());
+				}
+				entry.getRepoIds().add(repoKey);
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	protected List<CourseStatEntry> getCoursesStatisticsNative(Identity coach) {
+		Map<Long,CourseStatEntry> map = new HashMap<>();		
+		boolean hasCourses = getCourses(coach, map);
+		if(hasCourses) {
+			getCoursesStatisticsUserInfosForCoach(coach, map);
+			getCoursesStatisticsUserInfosForOwner(coach, map);
+			getCoursesStatisticsStatements(coach, map);
+			for(Iterator<Map.Entry<Long,CourseStatEntry>> it=map.entrySet().iterator(); it.hasNext(); ) {
+				CourseStatEntry entry = it.next().getValue();
+				if(entry.getCountStudents() == 0) {
+					it.remove();
+				} else {
+					int notAttempted = entry.getCountStudents() - entry.getCountPassed() - entry.getCountFailed();
+					entry.setCountNotAttempted(notAttempted);
+				}
+			}
+		}
+		return new ArrayList<>(map.values());
+	}
+	
+	private boolean getCourses(IdentityRef coach, Map<Long,CourseStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select v.key, v.displayname")
+		  .append(" from repositoryentry v")
+		  .append(" inner join v.olatResource as res")
+		  .append(" inner join v.groups as relGroup")
+		  .append(" inner join relGroup.group as baseGroup")
+		  .append(" inner join baseGroup.members as coach on coach.role in ('").append(GroupRoles.coach.name()).append("','").append(GroupRoles.owner.name()).append("')")
+		  .append(" where coach.identity.key=:coachKey and res.resName='CourseModule'")
+		  .append(" and ((v.access=1 and v.membersOnly=true) ")
+		  .append(" or (v.access >= ").append(RepositoryEntry.ACC_USERS).append(" and coach.role='").append(GroupRoles.coach.name()).append("')")
+		  .append(" or (v.access >= ").append(RepositoryEntry.ACC_OWNERS).append(" and coach.role='").append(GroupRoles.owner.name()).append("'))");
+
+		List<Object[]> rawList = dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), Object[].class)
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+
+		for(Object[] rawStat:rawList) {
 			CourseStatEntry entry = new CourseStatEntry();
-			entry.setRepoKey((Long)rawStat[0]);
+			entry.setRepoKey(((Number)rawStat[0]).longValue());
 			entry.setRepoDisplayName((String)rawStat[1]);
-			entry.setCountStudents(((Number)rawStat[2]).intValue());
-			entry.setCountDistinctStudents(((Number)rawStat[3]).intValue());
-			entry.setCountPassed(((Number)rawStat[4]).intValue());
-			entry.setCountFailed(((Number)rawStat[5]).intValue());
-			entry.setCountNotAttempted(((Number)rawStat[6]).intValue());
-			if(rawStat[7] != null) {
-				entry.setAverageScore(((Number)rawStat[7]).floatValue());
+			map.put(entry.getRepoKey(), entry);
+		}
+		return rawList.size() > 0;
+	}
+	
+	private boolean getCoursesStatisticsUserInfosForCoach(Identity coach, Map<Long,CourseStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select")
+		  .append("  sg_re.repositoryentry_id as re_id,")
+		  .append("  count(distinct sg_participant.fk_identity_id) as student_id,")
+		  .append("  count(distinct pg_initial_launch.id) as pg_id")
+		  .append(" from o_repositoryentry sg_re ")
+		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role = 'coach')")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')")
+		  .append(" left join o_as_user_course_infos pg_initial_launch")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)")
+		  .append(" where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("   (sg_re.accesscode >= ").append(RepositoryEntry.ACC_USERS).append(" and sg_coach.g_role = 'coach') ")//BAR
+		  .append("   or ")
+		  .append("   (sg_re.accesscode = ").append(RepositoryEntry.ACC_OWNERS).append(" and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(" group by sg_re.repositoryentry_id");
+
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+		
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long repoKey = ((Number)rawStats[0]).longValue();
+			CourseStatEntry entry = map.get(repoKey);
+			if(entry != null) {
+				entry.setCountStudents(((Number)rawStats[1]).intValue());
+				entry.setInitialLaunch(((Number)rawStats[2]).intValue());
 			}
-			if(rawStat[8] != null) {
-				entry.setInitialLaunch(((Number)rawStat[8]).intValue());
-			} else {
-				entry.setInitialLaunch(0);
+		}
+		return rawList.size() > 0;
+	}
+	
+	private boolean getCoursesStatisticsUserInfosForOwner(Identity coach, Map<Long,CourseStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select")
+		  .append("  sg_re.repositoryentry_id as re_id,")
+		  .append("  count(distinct sg_participant.fk_identity_id) as student_id,")
+		  .append("  count(distinct pg_initial_launch.id) as pg_id")
+		  .append(" from o_repositoryentry sg_re ")
+		  .append(" inner join o_re_to_group owngroup on (owngroup.fk_entry_id = sg_re.repositoryentry_id and owngroup.r_defgroup=").appendTrue().append(")")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=owngroup.fk_group_id and sg_coach.g_role = 'owner')")
+		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant')")
+		  .append(" left join o_as_user_course_infos pg_initial_launch")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)")
+		  .append(" where sg_coach.fk_identity_id=:coachKey and sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS)
+		  .append(" group by sg_re.repositoryentry_id");
+
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+		
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long repoKey = ((Number)rawStats[0]).longValue();
+			CourseStatEntry entry = map.get(repoKey);
+			if(entry != null) {
+				entry.setCountStudents(((Number)rawStats[1]).intValue());
+				entry.setInitialLaunch(((Number)rawStats[2]).intValue());
 			}
-			stats.add(entry);
 		}
-		return stats;
+		return rawList.size() > 0;
 	}
+	
+	private boolean getCoursesStatisticsStatements(Identity coach, Map<Long,CourseStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select ")
+		  .append(" fin_statement.course_repo_key, ")
+		  .append(" count(fin_statement.id), ")
+		  .append(" sum(case when fin_statement.passed=").appendTrue().append(" then 1 else 0 end) as num_of_passed, ")
+		  .append(" sum(case when fin_statement.passed=").appendFalse().append(" then 1 else 0 end) as num_of_failed, ")
+		  .append(" avg(fin_statement.score) ")
+		  .append("from o_as_eff_statement fin_statement ")
+		  .append("where fin_statement.id in ( select ")
+		  .append("  distinct sg_statement.id ")
+		  .append("	from o_repositoryentry sg_re ")
+		  .append("	inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach')) ")
+		  .append("	inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" inner join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append("	where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("   (sg_re.accesscode >= ").append(RepositoryEntry.ACC_USERS).append(" and sg_coach.g_role = 'coach') ")//BAR
+		  .append("   or ")
+		  .append("   (sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS).append(" and sg_coach.g_role = 'owner') ")//B
+		  .append("   or ")
+		  .append("   (sg_re.accesscode = ").append(RepositoryEntry.ACC_OWNERS).append(" and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(") or fin_statement.id in ( select ")
+		  .append("   distinct sg_statement.id ")
+		  .append(" from o_repositoryentry sg_re ")
+		  .append(" inner join o_re_to_group owngroup on (owngroup.fk_entry_id = sg_re.repositoryentry_id and owngroup.r_defgroup=").appendTrue().append(") ")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=owngroup.fk_group_id and sg_coach.g_role = 'owner') ")
+		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" inner join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append(" where sg_coach.fk_identity_id=:coachKey and sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS).append(") ")
+		  .append("group by fin_statement.course_repo_key ");
 
-	public List<StudentStatEntry> getStudentsStatistics(Identity coach) {
-		StringBuilder query = new StringBuilder();
-		//                     0          1                 2               3              4                             5
-		query.append("select s.studentKey, count(s.repoKey), sum(s.passed), sum(s.failed), sum(s.notAttempted), count(s.initialLaunchKey)")
-		     .append(" from ").append(EfficiencyStatementStudentStatEntry.class.getName()).append(" as s ")
-             .append(" where s.tutorKey=:coachKey")
-             .append(" group by s.studentKey");
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
 		
-		List<Object[]> rawStats = dbInstance.getCurrentEntityManager()
-				.createQuery(query.toString(), Object[].class)
+		for(Object rawObject:rawList) {
+			Object[] rawStats = (Object[])rawObject;
+			Long repoKey = ((Number)rawStats[0]).longValue();
+			CourseStatEntry entry = map.get(repoKey);
+			if(entry != null) {
+				int passed = ((Number)rawStats[2]).intValue();
+				int failed = ((Number)rawStats[3]).intValue();
+				entry.setCountFailed(failed);
+				entry.setCountPassed(passed);
+				if(rawStats[4] != null) {
+					entry.setAverageScore(((Number)rawStats[4]).floatValue());
+				}
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	protected List<StudentStatEntry> getStudentsStatisticsNative(Identity coach) {
+		Map<Long, StudentStatEntry> map = new HashMap<>();
+		boolean hasCoachedStudents = getStudentsStastisticInfosForCoach(coach, map);
+		boolean hasOwnedStudents = getStudentsStastisticInfosForOwner(coach, map);
+		if(hasOwnedStudents || hasCoachedStudents) {
+			for(StudentStatEntry entry:map.values()) {
+				entry.setCountRepo(entry.getRepoIds().size());
+				entry.setRepoIds(null);
+				entry.setInitialLaunch(entry.getLaunchIds().size());
+				entry.setLaunchIds(null);
+			}
+			getStudentsStatisticStatement(coach, map);
+			for(StudentStatEntry entry:map.values()) {
+				int notAttempted = entry.getCountRepo() - entry.getCountPassed() - entry.getCountFailed();
+				entry.setCountNotAttempted(notAttempted);
+			}
+		}
+		return new ArrayList<>(map.values());
+	}
+	
+	private boolean getStudentsStastisticInfosForCoach(IdentityRef coach, Map<Long, StudentStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select")
+		  .append("  sg_participant.fk_identity_id as part_id,")
+		  .append("  ").appendToArray("sg_re.repositoryentry_id").append(" as re_ids,")
+		  .append("  ").appendToArray("pg_initial_launch.id").append(" as pg_ids")
+		  .append(" from o_repositoryentry sg_re")
+		  .append(" inner join o_olatresource sg_res on (sg_res.resource_id = sg_re.fk_olatresource and sg_res.resname = 'CourseModule') ")
+		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)")
+		  .append(" inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role = 'coach')")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')")
+		  .append(" left join o_as_user_course_infos pg_initial_launch")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)")
+		  .append(" where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("   (sg_re.accesscode >= ").append(RepositoryEntry.ACC_USERS).append(" and sg_coach.g_role = 'coach') ")//BAR
+		  .append("   or ")
+		  .append("   (sg_re.accesscode = ").append(RepositoryEntry.ACC_OWNERS).append(" and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(" group by sg_participant.fk_identity_id");
+
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
 				.setParameter("coachKey", coach.getKey())
 				.getResultList();
 
-		List<StudentStatEntry> stats = new ArrayList<StudentStatEntry>();
-		for(Object[] rawStat:rawStats) {
-			StudentStatEntry entry = new StudentStatEntry();
-			entry.setStudentKey((Long)rawStat[0]);
-			entry.setCountRepo(((Number)rawStat[1]).intValue());
-			entry.setCountPassed(((Number)rawStat[2]).intValue());
-			entry.setCountFailed(((Number)rawStat[3]).intValue());
-			entry.setCountNotAttempted(((Number)rawStat[4]).intValue());
-			entry.setInitialLaunch(((Number)rawStat[5]).intValue());
-			stats.add(entry);
+		for(Object rawObject:rawList) {
+			Object[] rawStat = (Object[])rawObject;
+			StudentStatEntry entry = new StudentStatEntry(((Number)rawStat[0]).longValue());
+			appendArrayToSet(rawStat[1], entry.getRepoIds());
+			appendArrayToSet(rawStat[2], entry.getLaunchIds());
+			map.put(entry.getStudentKey(), entry);
 		}
-		return stats;
+		return rawList.size() > 0;
 	}
 	
-	public List<StudentStatEntry> getUsersStatistics(List<? extends IdentityRef> identities) {
-		if(identities == null || identities.isEmpty()) return Collections.emptyList();
+	private boolean getStudentsStastisticInfosForOwner(IdentityRef coach, Map<Long, StudentStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select")
+		  .append("  sg_participant.fk_identity_id as part_id,")
+		  .append("  ").appendToArray("sg_re.repositoryentry_id").append(" as re_ids,")
+		  .append("  ").appendToArray("pg_initial_launch.id").append(" as pg_ids")
+		  .append(" from o_repositoryentry sg_re")
+		  .append(" inner join o_olatresource sg_res on (sg_res.resource_id = sg_re.fk_olatresource and sg_res.resname = 'CourseModule')")
+		  .append(" inner join o_re_to_group owngroup on (owngroup.fk_entry_id = sg_re.repositoryentry_id and owngroup.r_defgroup=").appendTrue().append(")")
+		  .append(" inner join o_bs_group_member sg_owner on (sg_owner.fk_group_id=owngroup.fk_group_id and sg_owner.g_role = 'owner')")
+		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant')")
+		  .append(" left join o_as_user_course_infos pg_initial_launch")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)")
+		  .append(" where sg_owner.fk_identity_id=:coachKey and sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS)
+		  .append(" group by sg_participant.fk_identity_id");
 		
-		StringBuilder query = new StringBuilder();
-		//                     0          1                 2               3              4                             5
-		query.append("select s.studentKey, count(s.repoKey), sum(s.passed), sum(s.failed), sum(s.notAttempted), count(s.initialLaunchKey)")
-		     .append(" from coachstatisticsidentity as s ")
-             .append(" where s.studentKey in (:identitiesKey)")
-             .append(" group by s.studentKey");
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
+				.getResultList();
+
+		Map<Long,StudentStatEntry> stats = new HashMap<>();
+		for(Object rawObject:rawList) {
+			Object[] rawStat = (Object[])rawObject;
+			Long identityKey = ((Number)rawStat[0]).longValue();
+			StudentStatEntry entry;
+			if(map.containsKey(identityKey)) {
+				entry = map.get(identityKey);
+			} else {
+				entry = new StudentStatEntry(identityKey);
+				map.put(identityKey, entry);
+			}
+			appendArrayToSet(rawStat[1], entry.getRepoIds());
+			appendArrayToSet(rawStat[2], entry.getLaunchIds());
+			stats.put(entry.getStudentKey(), entry);
+		}
+		return rawList.size() > 0;
+	}
+	
+	/**
+	 * Catch null value, strings and blob
+	 * 
+	 * @param rawObject
+	 * @param ids
+	 */
+	private void appendArrayToSet(Object rawObject, Set<String> ids) {
+		String rawString = null;
+		if(rawObject instanceof String) {
+			rawString = (String)rawObject;
+		} else if(rawObject instanceof byte[]) {
+			try {
+				byte[] rawByteArr = (byte[])rawObject;
+				rawString = new String(rawByteArr, "UTF-8");
+			} catch (UnsupportedEncodingException e) {
+				log.error("", e);
+			}
+		} else if (rawObject != null) {
+			log.error("Unkown format: " + rawObject.getClass().getName() + " / " + rawObject);
+		}
 		
-		List<Long> identityKeys = getIdentityKeys(identities);
-		List<Object[]> rawStats = dbInstance.getCurrentEntityManager()
-				.createQuery(query.toString(), Object[].class)
-				.setParameter("identitiesKey", identityKeys)
+		if(StringHelper.containsNonWhitespace(rawString)) {
+			for(String launchId:rawString.split(",")) {
+				ids.add(launchId);
+			}
+		}
+	}
+	
+	private boolean getStudentsStatisticStatement(IdentityRef coach, Map<Long,StudentStatEntry> stats) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		sb.append("select ")
+		  .append(" fin_statement.fk_identity, ")
+		  .append("  count(fin_statement.id), ")
+		  .append("  sum(case when fin_statement.passed=").appendTrue().append(" then 1 else 0 end) as num_of_passed, ")
+		  .append("  sum(case when fin_statement.passed=").appendFalse().append(" then 1 else 0 end) as num_of_failed ")
+		  .append(" from o_as_eff_statement fin_statement ")
+		  .append(" where fin_statement.id in ( select ")
+		  .append("   distinct sg_statement.id as st_id ")
+		  .append("  from o_repositoryentry sg_re ")
+		  .append("  inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append("  inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role = 'coach') ")
+		  .append("  inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant') ")
+		  .append("  inner join o_as_eff_statement sg_statement ")
+		  .append("    on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append("  where sg_coach.fk_identity_id=:coachKey and ( ")
+		  .append("    (sg_re.accesscode>2 and sg_coach.g_role = 'coach') ")
+		  .append("    or ")
+		  .append("    (sg_re.accesscode=1 and sg_re.membersonly=").appendTrue().append(")) ")
+		  .append(" ) or fin_statement.id in ( select  ")
+		  .append("    distinct sg_statement.id as st_id ")
+		  .append("  from o_repositoryentry sg_re ")
+		  .append("  inner join o_re_to_group owngroup on (owngroup.fk_entry_id = sg_re.repositoryentry_id and owngroup.r_defgroup=").appendTrue().append(") ")
+		  .append("  inner join o_bs_group_member sg_owner on (sg_owner.fk_group_id=owngroup.fk_group_id and sg_owner.g_role = 'owner') ")
+		  .append("  inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append("  inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant') ")
+		  .append("  inner join o_as_eff_statement sg_statement ")
+		  .append("    on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append("  where sg_owner.fk_identity_id=:coachKey and sg_re.accesscode>=").append(RepositoryEntry.ACC_OWNERS).append(") ")
+		  .append(" group by fin_statement.fk_identity");
+
+		List<?> rawList = dbInstance.getCurrentEntityManager()
+				.createNativeQuery(sb.toString())
+				.setParameter("coachKey", coach.getKey())
 				.getResultList();
+		
+		for(Object rawObject:rawList) {
+			Object[] rawStat = (Object[])rawObject;
+			Long identityKey = ((Number)rawStat[0]).longValue();
+			StudentStatEntry entry = stats.get(identityKey);
+			if(entry != null) {
+				int passed = ((Number)rawStat[2]).intValue();
+				int failed = ((Number)rawStat[3]).intValue();
+				entry.setCountPassed(passed);
+				entry.setCountFailed(failed);
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	/**
+	 * Search all participants without restrictions on coach or owner relations.
+	 * 
+	 * @param params
+	 * @return The list of statistics
+	 */
+	protected List<StudentStatEntry> getUsersStatisticsNative(SearchCoachedIdentityParams params) {
+		Map<Long,StudentStatEntry> map = new HashMap<>();
+		boolean hasUsers = getUsersStatisticsInfos(params, map);
+		if(hasUsers) {
+			getUsersStatisticsStatements(params, map);
+		}
+		return new ArrayList<>(map.values());
+	}
+	
+	private boolean getUsersStatisticsInfos(SearchCoachedIdentityParams params, Map<Long, StudentStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		Map<String,Object> queryParams = new HashMap<>();
+		sb.append("select ")
+		  .append(" sg_participant.fk_identity_id as part_id, ")
+		  .append("  count(distinct sg_re.repositoryentry_id) as re_count, ")
+		  .append("  count(distinct pg_initial_launch.id) as pg_id ")
+		  .append("  from o_repositoryentry sg_re ")
+		  .append(" inner join o_olatresource sg_res on (sg_res.resource_id = sg_re.fk_olatresource and sg_res.resname = 'CourseModule')")
+		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" inner join o_bs_identity id_participant on (sg_participant.fk_identity_id = id_participant.id) ")
+		  .append(" left join o_as_user_course_infos pg_initial_launch ")
+		  .append("   on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = id_participant.id) ")
+		  .append(" where sg_re.accesscode >= ").append(RepositoryEntry.ACC_OWNERS).append(" ");
+		appendUsersStatisticsSearchParams(params, queryParams, sb)
+		  .append(" group by sg_participant.fk_identity_id ");
 
-		List<StudentStatEntry> stats = new ArrayList<StudentStatEntry>();
-		for(Object[] rawStat:rawStats) {
-			StudentStatEntry entry = new StudentStatEntry();
-			entry.setStudentKey((Long)rawStat[0]);
+		Query query = dbInstance.getCurrentEntityManager().createNativeQuery(sb.toString());
+		for(Map.Entry<String, Object> entry:queryParams.entrySet()) {
+			query.setParameter(entry.getKey(), entry.getValue());
+		}
+		
+		List<?> rawList = query.getResultList();
+		 
+		for(Object rawObject:rawList) {
+			Object[] rawStat = (Object[])rawObject;
+			Long identityKey = ((Number)rawStat[0]).longValue();
+			StudentStatEntry entry = new StudentStatEntry(identityKey);
 			entry.setCountRepo(((Number)rawStat[1]).intValue());
-			entry.setCountPassed(((Number)rawStat[2]).intValue());
-			entry.setCountFailed(((Number)rawStat[3]).intValue());
-			entry.setCountNotAttempted(((Number)rawStat[4]).intValue());
-			entry.setInitialLaunch(((Number)rawStat[5]).intValue());
-			stats.add(entry);
+			entry.setInitialLaunch(((Number)rawStat[2]).intValue());
+			map.put(identityKey, entry);
 		}
-		return stats;
+		return rawList.size() > 0;
 	}
 	
-	private List<Long> getIdentityKeys(List<? extends IdentityRef> identities) {
-		List<Long> identityKeys = new ArrayList<>(identities.size());
-		for(IdentityRef ref:identities) {
-			identityKeys.add(ref.getKey());
+	private boolean getUsersStatisticsStatements(SearchCoachedIdentityParams params, Map<Long,StudentStatEntry> map) {
+		NativeQueryBuilder sb = new NativeQueryBuilder(1024, dbInstance);
+		Map<String,Object> queryParams = new HashMap<>();
+		sb.append("select ")
+		  .append(" fin_statement.fk_identity, ")
+		  .append(" sum(case when fin_statement.passed=").appendTrue().append(" then 1 else 0 end) as num_of_passed, ")
+		  .append(" sum(case when fin_statement.passed=").appendFalse().append(" then 1 else 0 end) as num_of_failed ")
+		  .append("from o_as_eff_statement fin_statement ")
+		  .append("where fin_statement.id in ( select ")
+		  .append("  distinct sg_statement.id as st_id ")
+		  .append(" from o_repositoryentry sg_re ")
+ 		  .append(" inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id) ")
+		  .append(" inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant') ")
+		  .append(" inner join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource) ")
+		  .append(" inner join o_bs_identity id_participant on (sg_participant.fk_identity_id = id_participant.id) ")
+		  .append(" where  sg_re.accesscode>0 ");
+		appendUsersStatisticsSearchParams(params, queryParams, sb)
+		  .append(") ")
+		  .append("group by fin_statement.fk_identity ");
+		
+		Query query = dbInstance.getCurrentEntityManager().createNativeQuery(sb.toString());
+		for(Map.Entry<String, Object> entry:queryParams.entrySet()) {
+			query.setParameter(entry.getKey(), entry.getValue());
 		}
-		return identityKeys;
+		
+		List<?> rawList = query.getResultList();
+		for(Object rawObject:rawList) {
+			Object[] rawStat = (Object[])rawObject;
+			Long userKey = ((Number)rawStat[0]).longValue();
+			StudentStatEntry entry = map.get(userKey);
+			if(entry != null) {
+				int passed = ((Number)rawStat[1]).intValue();
+				int failed = ((Number)rawStat[2]).intValue();
+				entry.setCountPassed(passed);
+				entry.setCountFailed(failed);
+				int notAttempted = entry.getCountRepo() - passed - failed;
+				entry.setCountNotAttempted(notAttempted);
+			}
+		}
+		return rawList.size() > 0;
+	}
+	
+	private NativeQueryBuilder appendUsersStatisticsSearchParams(SearchCoachedIdentityParams params, Map<String,Object> queryParams, NativeQueryBuilder sb) {
+		if(params.getIdentityKey() != null) {
+			sb.append(" and id_participant.id like :identityKey");
+			queryParams.put("identityKey", params.getIdentityKey());
+		}
+		
+		if(StringHelper.containsNonWhitespace(params.getLogin())) {
+			String login = PersistenceHelper.makeFuzzyQueryString(params.getLogin());
+			if (login.contains("_") && dbInstance.isOracle()) {
+				//oracle needs special ESCAPE sequence to search for escaped strings
+				sb.append(" and lower(id_participant.name) like :login ESCAPE '\\'");
+			} else if (dbInstance.isMySQL()) {
+				sb.append(" and id_participant.name like :login");
+			} else {
+				sb.append(" and lower(id_participant.name) like :login");
+			}
+			queryParams.put("login", login);
+		}
+		
+		if(params.getUserProperties() != null && params.getUserProperties().size() > 0) {
+			Map<String,String> searchParams = new HashMap<>(params.getUserProperties());
+	
+			int count = 0;
+			for(Map.Entry<String, String> entry:searchParams.entrySet()) {
+				String propName = entry.getKey();
+				String propValue = entry.getValue();
+				String qName = "p_" + ++count;
+	
+				sb.append(" and exists (select user").append(qName).append(".propvalue from o_userproperty user").append(qName)
+				  .append("  where user").append(qName).append(".fk_user_id=id_participant.fk_user_id ")
+				  .append("  and user").append(qName).append(".propname='").append(propName).append("' ");
+				
+				if(dbInstance.isMySQL()) {
+					sb.append(" and user").append(qName).append(".propvalue like :").append(qName).append(") ");
+				} else {
+					sb.append(" and lower(user").append(qName).append(".propvalue) like :").append(qName).append(") ");
+					if(dbInstance.isOracle()) {
+						sb.append(" escape '\\'");
+					}
+				}
+				queryParams.put(qName, PersistenceHelper.makeFuzzyQueryString(propValue));
+			}
+		}
+		return sb;
 	}
 	
 	public List<Long> getStudents(Identity coach, RepositoryEntry entry) {
-		StringBuilder sb = new StringBuilder();
-		sb.append("select distinct(participant.identity.key) from repoentrytogroup as relGroup ")
+		StringBuilder sc = new StringBuilder();
+		sc.append("select distinct(participant.identity.key) from repositoryentry as re")
+		  .append(" inner join re.groups as ownedRelGroup on ownedRelGroup.defaultGroup=true")
+		  .append(" inner join ownedRelGroup.group as ownedGroup")
+		  .append(" inner join ownedGroup.members as owner on owner.role='owner'")
+		  .append(" inner join re.groups as relGroup")
 		  .append(" inner join relGroup.group as baseGroup")
-		  .append(" inner join baseGroup.members as coach on coach.role='coach'")
 		  .append(" inner join baseGroup.members as participant on participant.role='participant'")
-          .append(" where coach.identity.key=:coachKey and relGroup.entry.key=:repoKey");
+          .append(" where owner.identity.key=:coachKey and re.key=:repoKey");
 
-		return dbInstance.getCurrentEntityManager()
-				.createQuery(sb.toString(), Long.class)
+		List<Long> identityKeys = dbInstance.getCurrentEntityManager()
+				.createQuery(sc.toString(), Long.class)
 				.setParameter("coachKey", coach.getKey())
 				.setParameter("repoKey", entry.getKey())
 				.getResultList();
+		
+		//owner see all participants
+		if(identityKeys.isEmpty()) {
+			StringBuilder sb = new StringBuilder();
+			sb.append("select distinct(participant.identity.key) from repoentrytogroup as relGroup ")
+			  .append(" inner join relGroup.group as baseGroup")
+			  .append(" inner join baseGroup.members as coach on coach.role = 'coach'")
+			  .append(" inner join baseGroup.members as participant on participant.role='participant'")
+	          .append(" where coach.identity.key=:coachKey and relGroup.entry.key=:repoKey");
+	
+			identityKeys = dbInstance.getCurrentEntityManager()
+					.createQuery(sb.toString(), Long.class)
+					.setParameter("coachKey", coach.getKey())
+					.setParameter("repoKey", entry.getKey())
+					.getResultList();
+		}
+		return identityKeys;
 	}
 
-	public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student, int firstResult, int maxResults) {
+	public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student) {
 		StringBuilder sb = new StringBuilder();
-		sb.append("select distinct(re) from ").append(RepositoryEntry.class.getName()).append(" as re ")
+		sb.append("select re from ").append(RepositoryEntry.class.getName()).append(" as re ")
+		  .append(" inner join re.olatResource res on res.resName='CourseModule'")
 		  .append(" inner join re.groups as relGroup ")
 		  .append(" inner join relGroup.group as baseGroup")
 		  .append(" inner join baseGroup.members as coach on coach.role='coach'")
 		  .append(" inner join baseGroup.members as participant on participant.role='participant'")
-		  .append(" where coach.identity.key=:coachKey and participant.identity.key=:studentKey");
+		  .append(" where coach.identity.key=:coachKey and participant.identity.key=:studentKey")
+		  .append(" and (re.access >= ").append(RepositoryEntry.ACC_USERS)
+		  .append("  or (re.access = ").append(RepositoryEntry.ACC_OWNERS).append(" and re.membersOnly=true))");
 
-		TypedQuery<RepositoryEntry> dbQuery = dbInstance.getCurrentEntityManager()
+		List<RepositoryEntry> coachedEntries = dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(), RepositoryEntry.class)
 				.setParameter("coachKey", coach.getKey())
-				.setParameter("studentKey", student.getKey());
-		if(firstResult >= 0) {
-			dbQuery.setFirstResult(firstResult);
-		}
-		if(maxResults > 0) {
-			dbQuery.setMaxResults(maxResults);
-		}
+				.setParameter("studentKey", student.getKey())
+				.getResultList();
+		
+		StringBuilder sc = new StringBuilder();
+		sc.append("select re from ").append(RepositoryEntry.class.getName()).append(" as re ")
+		  .append(" inner join re.olatResource res on res.resName='CourseModule'")
+		  .append(" inner join re.groups as ownedRelGroup on ownedRelGroup.defaultGroup=true ")
+		  .append(" inner join ownedRelGroup.group as ownedGroup")
+		  .append(" inner join ownedGroup.members as owner on owner.role='owner'")
+		  .append(" inner join re.groups as relGroup")
+		  .append(" inner join relGroup.group as baseGroup")
+		  .append(" inner join baseGroup.members as participant on participant.role='participant'")
+		  .append(" where owner.identity.key=:coachKey and participant.identity.key=:studentKey")
+		  .append(" and re.access >= ").append(RepositoryEntry.ACC_OWNERS);
 
-		List<RepositoryEntry> courses = dbQuery.getResultList();
-		return courses;
+		List<RepositoryEntry> ownedEntries = dbInstance.getCurrentEntityManager()
+				.createQuery(sc.toString(), RepositoryEntry.class)
+				.setParameter("coachKey", coach.getKey())
+				.setParameter("studentKey", student.getKey())
+				.getResultList();
+		
+		Set<RepositoryEntry> uniqueRes = new HashSet<>(coachedEntries);
+		uniqueRes.addAll(ownedEntries);
+		return new ArrayList<>(uniqueRes);
 	}
 	
-	public List<RepositoryEntry> getUserCourses(IdentityRef student, int firstResult, int maxResults) {
+	public List<RepositoryEntry> getUserCourses(IdentityRef student) {
 		StringBuilder sb = new StringBuilder();
-		sb.append("select distinct(re) from ").append(RepositoryEntry.class.getName()).append(" as re ")
-		  .append(" inner join re.groups as relGroup ")
+		sb.append("select distinct(v) from ").append(RepositoryEntry.class.getName()).append(" as v ")
+		  .append(" inner join v.olatResource res on res.resName='CourseModule'")
+		  .append(" inner join v.groups as relGroup")
 		  .append(" inner join relGroup.group as baseGroup")
 		  .append(" inner join baseGroup.members as participant on participant.role='participant'")
-		  .append(" where participant.identity.key=:studentKey");
+		  .append(" where v.access >= ").append(RepositoryEntry.ACC_OWNERS).append(" and participant.identity.key=:studentKey");
 
-		TypedQuery<RepositoryEntry> dbQuery = dbInstance.getCurrentEntityManager()
+		return dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(), RepositoryEntry.class)
-				.setParameter("studentKey", student.getKey());
-		if(firstResult >= 0) {
-			dbQuery.setFirstResult(firstResult);
-		}
-		if(maxResults > 0) {
-			dbQuery.setMaxResults(maxResults);
-		}
-
-		List<RepositoryEntry> courses = dbQuery.getResultList();
-		return courses;
+				.setParameter("studentKey", student.getKey())
+				.getResultList();
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/coach/manager/CoachingServiceImpl.java b/src/main/java/org/olat/modules/coach/manager/CoachingServiceImpl.java
index 53cd7a5267c41103b5c702635a528b0078f93c77..0181eb68c5075cea8a543ea04e877e52ba83e5ed 100644
--- a/src/main/java/org/olat/modules/coach/manager/CoachingServiceImpl.java
+++ b/src/main/java/org/olat/modules/coach/manager/CoachingServiceImpl.java
@@ -19,15 +19,11 @@
  */
 package org.olat.modules.coach.manager;
 
-import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import org.olat.basesecurity.BaseSecurity;
 import org.olat.basesecurity.GroupRoles;
-import org.olat.basesecurity.IdentityRef;
 import org.olat.basesecurity.IdentityShort;
 import org.olat.core.id.Identity;
 import org.olat.course.assessment.UserEfficiencyStatement;
@@ -37,6 +33,7 @@ import org.olat.modules.coach.CoachingService;
 import org.olat.modules.coach.model.CourseStatEntry;
 import org.olat.modules.coach.model.EfficiencyStatementEntry;
 import org.olat.modules.coach.model.GroupStatEntry;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
 import org.olat.modules.coach.model.StudentStatEntry;
 import org.olat.repository.RepositoryEntry;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -68,47 +65,33 @@ public class CoachingServiceImpl implements CoachingService {
 	}
 
 	@Override
-	public Map<Long, String> getIdentities(Collection<Long> identityNames) {
-		Map<Long,String> identityMap = new HashMap<Long,String>();
-		
-		List<IdentityShort> identities = securityManager.findShortIdentitiesByKey(identityNames);
-		for(IdentityShort identity:identities) {
-			String fullName = identity.getFirstName()	+ " " + identity.getLastName();
-			identityMap.put(identity.getKey(), fullName);
-		}
-		return identityMap;
+	public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student) {
+		return coachingDao.getStudentsCourses(coach, student);
 	}
-
+	
 	@Override
-	public List<RepositoryEntry> getStudentsCourses(Identity coach, Identity student, int firstResult, int maxResults) {
-		return coachingDao.getStudentsCourses(coach, student, firstResult, maxResults);
+	public List<StudentStatEntry> getUsersStatistics(SearchCoachedIdentityParams params) {
+		return coachingDao.getUsersStatisticsNative(params);
 	}
 
 	@Override
 	public List<StudentStatEntry> getStudentsStatistics(Identity coach) {
-		return coachingDao.getStudentsStatistics(coach);
-	}
-	
-	
-
-	@Override
-	public List<StudentStatEntry> getUsersStatistics(List<? extends IdentityRef> identities) {
-		return coachingDao.getUsersStatistics(identities);
+		return coachingDao.getStudentsStatisticsNative(coach);
 	}
 
 	@Override
-	public List<RepositoryEntry> getUserCourses(Identity student, int firstResult, int maxResults) {
-		return coachingDao.getUserCourses(student, firstResult, maxResults);
+	public List<RepositoryEntry> getUserCourses(Identity student) {
+		return coachingDao.getUserCourses(student);
 	}
 
 	@Override
 	public List<CourseStatEntry> getCoursesStatistics(Identity coach) {
-		return coachingDao.getCoursesStatistics(coach);
+		return coachingDao.getCoursesStatisticsNative(coach);
 	}
 
 	@Override
 	public List<GroupStatEntry> getGroupsStatistics(Identity coach) {
-		return coachingDao.getGroupsStatistics(coach);
+		return coachingDao.getGroupsStatisticsNative(coach);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/coach/model/CourseStatEntry.java b/src/main/java/org/olat/modules/coach/model/CourseStatEntry.java
index 445b5d6b91580bf7d583aa1ab62339bdc92bf377..3bc1511b12042fd3237dc7ce374fe982b6d84841 100644
--- a/src/main/java/org/olat/modules/coach/model/CourseStatEntry.java
+++ b/src/main/java/org/olat/modules/coach/model/CourseStatEntry.java
@@ -30,13 +30,31 @@ public class CourseStatEntry {
 	private Long repoKey;
 	private String repoDisplayName;
 	private int countStudents;
-	private int countDistinctStudents;
 	private int countPassed;
 	private int countFailed;
 	private int countNotAttempted;
 	private Float averageScore;
 	private int initialLaunch;
 	
+	private double totalScore;
+	private int totalScoredStudents;
+	
+	public double getTotalScore() {
+		return totalScore;
+	}
+
+	public void setTotalScore(double totalScore) {
+		this.totalScore = totalScore;
+	}
+
+	public int getTotalScoredStudents() {
+		return totalScoredStudents;
+	}
+
+	public void setTotalScoredStudents(int totalScoredStudents) {
+		this.totalScoredStudents = totalScoredStudents;
+	}
+
 	public Long getRepoKey() {
 		return repoKey;
 	}
@@ -60,14 +78,6 @@ public class CourseStatEntry {
 	public void setCountStudents(int countStudents) {
 		this.countStudents = countStudents;
 	}
-	
-	public int getCountDistinctStudents() {
-		return countDistinctStudents;
-	}
-
-	public void setCountDistinctStudents(int countDistinctStudents) {
-		this.countDistinctStudents = countDistinctStudents;
-	}
 
 	public int getCountPassed() {
 		return countPassed;
@@ -108,23 +118,4 @@ public class CourseStatEntry {
 	public void setInitialLaunch(int initialLaunch) {
 		this.initialLaunch = initialLaunch;
 	}
-	
-	public void add(CourseStatEntry entry) {
-		countStudents += entry.getCountStudents();
-		countDistinctStudents += entry.getCountDistinctStudents();
-
-		float score1 = averageScore == null ? 0.0f : (averageScore * (countPassed + countFailed));
-		float score2 = entry.averageScore == null ? 0.0f : (entry.averageScore * (entry.countPassed + entry.countFailed));
-		float scores =  (score1 + score2);
-		if(scores <= 0.0f) {
-			averageScore = null;
-		} else {
-			averageScore = scores / (countPassed + countFailed + entry.countPassed + entry.countFailed);
-		}
-		
-		countPassed += entry.getCountPassed();
-		countFailed += entry.getCountFailed();
-		countNotAttempted += entry.getCountNotAttempted();
-		initialLaunch += entry.getInitialLaunch();
-	}
 }
diff --git a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementCourseStatEntry.java b/src/main/java/org/olat/modules/coach/model/EfficiencyStatementCourseStatEntry.java
deleted file mode 100644
index 3facf38ae050c4bba6a1e52ab5282d4e032849cd..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementCourseStatEntry.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.modules.coach.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-/**
- * 
- * Initial date: 28.02.2014<br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- *
- */
-@Entity
-@Table(name="o_as_eff_statement_courses_v")
-public class EfficiencyStatementCourseStatEntry {
-	
-	@Id
-	@Column(name="st_id", nullable=false, unique=true, insertable=false, updatable=false)
-	private Long statementKey;
-
-	@Column(name="re_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long repoKey;
-
-	@Column(name="re_name", nullable=false, unique=false, insertable=false, updatable=false)
-	private String repoDisplayName;
-	
-	@Column(name="tutor_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long tutorKey;
-	@Column(name="student_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long studentKey;
-
-	@Column(name="st_score", nullable=false, unique=false, insertable=false, updatable=false)
-	private Float score;
-	@Column(name="st_passed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int passed;
-	@Column(name="st_failed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int failed;
-	@Column(name="st_not_attempted", nullable=false, unique=false, insertable=false, updatable=false)
-	private int notAttempted;
-
-	@Column(name="pg_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long initialLaunchKey;
-
-	public Long getStatementKey() {
-		return statementKey;
-	}
-
-	public void setStatementKey(Long statementKey) {
-		this.statementKey = statementKey;
-	}
-
-	public Long getRepoKey() {
-		return repoKey;
-	}
-
-	public void setRepoKey(Long repoKey) {
-		this.repoKey = repoKey;
-	}
-
-	public String getRepoDisplayName() {
-		return repoDisplayName;
-	}
-
-	public void setRepoDisplayName(String repoDisplayName) {
-		this.repoDisplayName = repoDisplayName;
-	}
-
-	public Long getTutorKey() {
-		return tutorKey;
-	}
-
-	public void setTutorKey(Long tutorKey) {
-		this.tutorKey = tutorKey;
-	}
-
-	public Long getStudentKey() {
-		return studentKey;
-	}
-
-	public void setStudentKey(Long studentKey) {
-		this.studentKey = studentKey;
-	}
-
-	public Float getScore() {
-		return score;
-	}
-
-	public void setScore(Float score) {
-		this.score = score;
-	}
-
-	public int getPassed() {
-		return passed;
-	}
-
-	public void setPassed(int passed) {
-		this.passed = passed;
-	}
-
-	public int getFailed() {
-		return failed;
-	}
-
-	public void setFailed(int failed) {
-		this.failed = failed;
-	}
-
-	public int getNotAttempted() {
-		return notAttempted;
-	}
-
-	public void setNotAttempted(int notAttempted) {
-		this.notAttempted = notAttempted;
-	}
-
-	public Long getInitialLaunchKey() {
-		return initialLaunchKey;
-	}
-
-	public void setInitialLaunchKey(Long initialLaunchKey) {
-		this.initialLaunchKey = initialLaunchKey;
-	}
-}
diff --git a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementGroupStatEntry.java b/src/main/java/org/olat/modules/coach/model/EfficiencyStatementGroupStatEntry.java
deleted file mode 100644
index 6183d14ded7344852363bf70a6c8c3c898fe41fd..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementGroupStatEntry.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.modules.coach.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-import org.olat.core.commons.persistence.PersistentObject;
-
-/**
- * The object is immutable
- * 
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- */
-@Entity
-@Table(name="o_as_eff_statement_groups_v")
-public class EfficiencyStatementGroupStatEntry extends PersistentObject {
-
-	private static final long serialVersionUID = -5632894869497135693L;
-	
-	@Id
-	@Column(name="st_id", nullable=false, unique=true, insertable=false, updatable=false)
-	private Long statementKey;
-
-	@Column(name="re_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long repoKey;
-	@Column(name="re_name", nullable=false, unique=false, insertable=false, updatable=false)
-	private String repoDisplayName;
-
-	@Column(name="bg_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long groupKey;
-	@Column(name="bg_name", nullable=false, unique=false, insertable=false, updatable=false)
-	private String groupName;
-	
-	@Column(name="tutor_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long tutorKey;
-	@Column(name="student_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long studentKey;
-
-	@Column(name="st_score", nullable=false, unique=false, insertable=false, updatable=false)
-	private Float score;
-	@Column(name="st_passed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int passed;
-	@Column(name="st_failed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int failed;
-	@Column(name="st_not_attempted", nullable=false, unique=false, insertable=false, updatable=false)
-	private int notAttempted;
-
-	@Column(name="pg_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long initialLaunchKey;
-	
-	public Long getRepoKey() {
-		return repoKey;
-	}
-	
-	public void setRepoKey(Long repoKey) {
-		this.repoKey = repoKey;
-	}
-	
-	public Long getGroupKey() {
-		return groupKey;
-	}
-
-	public void setGroupKey(Long groupKey) {
-		this.groupKey = groupKey;
-	}
-
-	public Long getStatementKey() {
-		return statementKey;
-	}
-
-	public void setStatementKey(Long statementKey) {
-		this.statementKey = statementKey;
-	}
-
-	public Long getTutorKey() {
-		return tutorKey;
-	}
-
-	public void setTutorKey(Long tutorKey) {
-		this.tutorKey = tutorKey;
-	}
-
-	public Long getStudentKey() {
-		return studentKey;
-	}
-
-	public void setStudentKey(Long studentKey) {
-		this.studentKey = studentKey;
-	}
-
-	public String getRepoDisplayName() {
-		return repoDisplayName;
-	}
-	
-	public void setRepoDisplayName(String repoDisplayName) {
-		this.repoDisplayName = repoDisplayName;
-	}
-	
-
-
-	public String getGroupName() {
-		return groupName;
-	}
-
-	public void setGroupName(String groupName) {
-		this.groupName = groupName;
-	}
-	
-	public Float getScore() {
-		return score;
-	}
-
-	public void setScore(Float score) {
-		this.score = score;
-	}
-
-	public int getPassed() {
-		return passed;
-	}
-
-	public void setPassed(int passed) {
-		this.passed = passed;
-	}
-
-	public int getFailed() {
-		return failed;
-	}
-
-	public void setFailed(int failed) {
-		this.failed = failed;
-	}
-
-	public int getNotAttempted() {
-		return notAttempted;
-	}
-
-	public void setNotAttempted(int notAttempted) {
-		this.notAttempted = notAttempted;
-	}
-
-	public Long getInitialLaunchKey() {
-		return initialLaunchKey;
-	}
-
-	public void setInitialLaunchKey(Long initialLaunchKey) {
-		this.initialLaunchKey = initialLaunchKey;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-		sb.append("efficiencyStatementStatEntry[statementId=")
-		  .append(getKey()).append(":repositoryEntry=")
-		  .append(repoDisplayName).append(":tutorName=");
-		return sb.toString();
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if(this == obj) {
-			return true;
-		}
-		return false;
-	}
-
-	@Override
-	public int hashCode() {
-		return super.hashCode();
-	}
-	
-	
-}
diff --git a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementIdentityStatEntry.java b/src/main/java/org/olat/modules/coach/model/EfficiencyStatementIdentityStatEntry.java
deleted file mode 100644
index 030a97624804e211818e4ffb00a405ce1b268274..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementIdentityStatEntry.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.modules.coach.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-/**
- * 
- * Initial date: 28.02.2014<br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- *
- */
-@Entity(name="coachstatisticsidentity")
-@Table(name="o_as_eff_statement_identity_v")
-public class EfficiencyStatementIdentityStatEntry {
-	
-	@Id
-	@Column(name="st_id", nullable=false, unique=true, insertable=false, updatable=false)
-	private Long statementKey;
-
-	@Column(name="re_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long repoKey;
-	@Column(name="student_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long studentKey;
-
-	@Column(name="st_score", nullable=false, unique=false, insertable=false, updatable=false)
-	private Float score;
-	@Column(name="st_passed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int passed;
-	@Column(name="st_failed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int failed;
-	@Column(name="st_not_attempted", nullable=false, unique=false, insertable=false, updatable=false)
-	private int notAttempted;
-
-	@Column(name="pg_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long initialLaunchKey;
-
-	public Long getStatementKey() {
-		return statementKey;
-	}
-
-	public void setStatementKey(Long statementKey) {
-		this.statementKey = statementKey;
-	}
-
-	public Long getRepoKey() {
-		return repoKey;
-	}
-
-	public void setRepoKey(Long repoKey) {
-		this.repoKey = repoKey;
-	}
-
-	public Long getStudentKey() {
-		return studentKey;
-	}
-
-	public void setStudentKey(Long studentKey) {
-		this.studentKey = studentKey;
-	}
-
-	public Float getScore() {
-		return score;
-	}
-
-	public void setScore(Float score) {
-		this.score = score;
-	}
-
-	public int getPassed() {
-		return passed;
-	}
-
-	public void setPassed(int passed) {
-		this.passed = passed;
-	}
-
-	public int getFailed() {
-		return failed;
-	}
-
-	public void setFailed(int failed) {
-		this.failed = failed;
-	}
-
-	public int getNotAttempted() {
-		return notAttempted;
-	}
-
-	public void setNotAttempted(int notAttempted) {
-		this.notAttempted = notAttempted;
-	}
-
-	public Long getInitialLaunchKey() {
-		return initialLaunchKey;
-	}
-
-	public void setInitialLaunchKey(Long initialLaunchKey) {
-		this.initialLaunchKey = initialLaunchKey;
-	}
-}
diff --git a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementStudentStatEntry.java b/src/main/java/org/olat/modules/coach/model/EfficiencyStatementStudentStatEntry.java
deleted file mode 100644
index c617eafe67139987fa379992401f38371ca9f52a..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/modules/coach/model/EfficiencyStatementStudentStatEntry.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.modules.coach.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-/**
- * 
- * Initial date: 28.02.2014<br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- *
- */
-@Entity
-@Table(name="o_as_eff_statement_students_v")
-public class EfficiencyStatementStudentStatEntry {
-	
-	@Id
-	@Column(name="st_id", nullable=false, unique=true, insertable=false, updatable=false)
-	private Long statementKey;
-
-	@Column(name="re_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long repoKey;
-	@Column(name="tutor_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long tutorKey;
-	@Column(name="student_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long studentKey;
-
-	@Column(name="st_score", nullable=false, unique=false, insertable=false, updatable=false)
-	private Float score;
-	@Column(name="st_passed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int passed;
-	@Column(name="st_failed", nullable=false, unique=false, insertable=false, updatable=false)
-	private int failed;
-	@Column(name="st_not_attempted", nullable=false, unique=false, insertable=false, updatable=false)
-	private int notAttempted;
-
-	@Column(name="pg_id", nullable=false, unique=false, insertable=false, updatable=false)
-	private Long initialLaunchKey;
-
-	public Long getStatementKey() {
-		return statementKey;
-	}
-
-	public void setStatementKey(Long statementKey) {
-		this.statementKey = statementKey;
-	}
-
-	public Long getRepoKey() {
-		return repoKey;
-	}
-
-	public void setRepoKey(Long repoKey) {
-		this.repoKey = repoKey;
-	}
-
-	public Long getTutorKey() {
-		return tutorKey;
-	}
-
-	public void setTutorKey(Long tutorKey) {
-		this.tutorKey = tutorKey;
-	}
-
-	public Long getStudentKey() {
-		return studentKey;
-	}
-
-	public void setStudentKey(Long studentKey) {
-		this.studentKey = studentKey;
-	}
-
-	public Float getScore() {
-		return score;
-	}
-
-	public void setScore(Float score) {
-		this.score = score;
-	}
-
-	public int getPassed() {
-		return passed;
-	}
-
-	public void setPassed(int passed) {
-		this.passed = passed;
-	}
-
-	public int getFailed() {
-		return failed;
-	}
-
-	public void setFailed(int failed) {
-		this.failed = failed;
-	}
-
-	public int getNotAttempted() {
-		return notAttempted;
-	}
-
-	public void setNotAttempted(int notAttempted) {
-		this.notAttempted = notAttempted;
-	}
-
-	public Long getInitialLaunchKey() {
-		return initialLaunchKey;
-	}
-
-	public void setInitialLaunchKey(Long initialLaunchKey) {
-		this.initialLaunchKey = initialLaunchKey;
-	}
-}
diff --git a/src/main/java/org/olat/modules/coach/model/GroupStatEntry.java b/src/main/java/org/olat/modules/coach/model/GroupStatEntry.java
index c2ef33018c7017103ef1ecec8383b6c6cddb588e..cd84cc340d2d531a574b86a7c9b1c7b1374dc244 100644
--- a/src/main/java/org/olat/modules/coach/model/GroupStatEntry.java
+++ b/src/main/java/org/olat/modules/coach/model/GroupStatEntry.java
@@ -19,6 +19,9 @@
  */
 package org.olat.modules.coach.model;
 
+import java.util.HashSet;
+import java.util.Set;
+
 /**
  * 
  * Dummy bean to transport statistic values about group
@@ -26,31 +29,40 @@ package org.olat.modules.coach.model;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
 public class GroupStatEntry {
-	// s.repoKey, 
-	private Long groupKey;
-	private String groupName;
-	private int countCourses;
-	private int countStudents;
-	private int countPassed;
-	private int countFailed;
-	private int countNotAttempted;
+
+	private final Long groupKey;
+	private final String groupName;
+	private int countCourses = 0;
+	private int countStudents = 0;
+	private int countDistinctStudents = 0;
+	private int countPassed = 0;
+	private int countFailed = 0;
+	private int countNotAttempted = 0;
 	private Float averageScore;
-	private int initialLaunch;
+	private double sumScore = 0.0d;
+	private int initialLaunch = 0;
+	
+	private Set<Long> repoIds = new HashSet<>();
+	
+	public GroupStatEntry(Long groupKey, String groupName) {
+		this.groupKey = groupKey;
+		this.groupName = groupName;
+	}
 	
 	public Long getGroupKey() {
 		return groupKey;
 	}
 
-	public void setGroupKey(Long groupKey) {
-		this.groupKey = groupKey;
-	}
-
 	public String getGroupName() {
 		return groupName;
 	}
 
-	public void setGroupName(String groupName) {
-		this.groupName = groupName;
+	public Set<Long> getRepoIds() {
+		return repoIds;
+	}
+
+	public void setRepoIds(Set<Long> repoIds) {
+		this.repoIds = repoIds;
 	}
 
 	public int getCountCourses() {
@@ -70,11 +82,11 @@ public class GroupStatEntry {
 	}
 	
 	public int getCountDistinctStudents() {
-		return countStudents;
+		return countDistinctStudents;
 	}
 	
-	public void setCountDistinctStudents(int countStudents) {
-		this.countStudents = countStudents;
+	public void setCountDistinctStudents(int countDistinctStudents) {
+		this.countDistinctStudents = countDistinctStudents;
 	}
 	
 	public int getCountPassed() {
@@ -109,6 +121,14 @@ public class GroupStatEntry {
 		this.averageScore = averageScore;
 	}
 
+	public double getSumScore() {
+		return sumScore;
+	}
+
+	public void setSumScore(double sumScore) {
+		this.sumScore = sumScore;
+	}
+
 	public int getInitialLaunch() {
 		return initialLaunch;
 	}
diff --git a/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java b/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java
new file mode 100644
index 0000000000000000000000000000000000000000..70cb0e1d48489edb3c06a8db48fca84bda83e17e
--- /dev/null
+++ b/src/main/java/org/olat/modules/coach/model/SearchCoachedIdentityParams.java
@@ -0,0 +1,59 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.coach.model;
+
+import java.util.Map;
+
+/**
+ * 
+ * Initial date: 02.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class SearchCoachedIdentityParams {
+	
+	private String login;
+	private Long identityKey;
+	private Map<String,String> userProperties;
+	
+	public String getLogin() {
+		return login;
+	}
+	
+	public void setLogin(String login) {
+		this.login = login;
+	}
+	
+	public Long getIdentityKey() {
+		return identityKey;
+	}
+
+	public void setIdentityKey(Long identityKey) {
+		this.identityKey = identityKey;
+	}
+
+	public Map<String, String> getUserProperties() {
+		return userProperties;
+	}
+	
+	public void setUserProperties(Map<String, String> userProperties) {
+		this.userProperties = userProperties;
+	}
+}
diff --git a/src/main/java/org/olat/modules/coach/model/StudentStatEntry.java b/src/main/java/org/olat/modules/coach/model/StudentStatEntry.java
index 852cfa93a66a239be52fe630dc92f8eafe966151..1f481a6fc864bcb50a8eb7963351d19661d361dc 100644
--- a/src/main/java/org/olat/modules/coach/model/StudentStatEntry.java
+++ b/src/main/java/org/olat/modules/coach/model/StudentStatEntry.java
@@ -19,6 +19,9 @@
  */
 package org.olat.modules.coach.model;
 
+import java.util.HashSet;
+import java.util.Set;
+
 
 /**
  * 
@@ -28,26 +31,25 @@ package org.olat.modules.coach.model;
  */
 public class StudentStatEntry {
 	
-	private Long studentKey;
-	private int countRepo;
-	private int countPassed;
-	private int countFailed;
-	private int countNotAttempted;
-	private int initialLaunch;
+	private final Long studentKey;
+	private int countRepo = 0;
+	private int countPassed = 0;
+	private int countFailed = 0;
+	private int countNotAttempted = 0;
+	private int initialLaunch = 0;
+	
+	private Set<String> repoIds = new HashSet<>();
+	private Set<String> launchIds = new HashSet<>();
 	
 	
-	public StudentStatEntry() {
-		//
+	public StudentStatEntry(Long studentKey) {
+		this.studentKey = studentKey;
 	}
 
 	public Long getStudentKey() {
 		return studentKey;
 	}
 	
-	public void setStudentKey(Long studentKey) {
-		this.studentKey = studentKey;
-	}
-	
 	public int getCountRepo() {
 		return countRepo;
 	}
@@ -56,6 +58,22 @@ public class StudentStatEntry {
 		this.countRepo = countRepo;
 	}
 
+	public Set<String> getRepoIds() {
+		return repoIds;
+	}
+
+	public void setRepoIds(Set<String> repoIds) {
+		this.repoIds = repoIds;
+	}
+
+	public Set<String> getLaunchIds() {
+		return launchIds;
+	}
+
+	public void setLaunchIds(Set<String> launchIds) {
+		this.launchIds = launchIds;
+	}
+
 	public int getCountPassed() {
 		return countPassed;
 	}
@@ -87,12 +105,4 @@ public class StudentStatEntry {
 	public void setInitialLaunch(int initialLaunch) {
 		this.initialLaunch = initialLaunch;
 	}
-	
-	public void add(StudentStatEntry entry) {
-		countRepo += entry.getCountRepo();
-		countPassed += entry.getCountPassed();
-		countFailed += entry.getCountFailed();
-		countNotAttempted += entry.getCountNotAttempted();
-		initialLaunch += entry.getInitialLaunch();
-	}
 }
diff --git a/src/main/java/org/olat/modules/coach/site/CoachSiteDef.java b/src/main/java/org/olat/modules/coach/site/CoachSiteDef.java
index f93c9a047ba4fd84c55ce1c7a862eb5deb91cdcb..327d422ce77ec7919f91e20d835d4a1e79a16d6a 100644
--- a/src/main/java/org/olat/modules/coach/site/CoachSiteDef.java
+++ b/src/main/java/org/olat/modules/coach/site/CoachSiteDef.java
@@ -47,7 +47,9 @@ public class CoachSiteDef extends AbstractSiteDefinition implements SiteDefiniti
 				|| (!ureq.getUserSession().getRoles().isGuestOnly()
 				&& !ureq.getUserSession().getRoles().isInvitee())) {
 			CoachingService coachingService = CoreSpringFactory.getImpl(CoachingService.class);
-			if(coachingService.isCoach(ureq.getIdentity())) {
+			if(ureq.getUserSession().getRoles().isOLATAdmin() 
+					|| ureq.getUserSession().getRoles().isUserManager()
+					|| coachingService.isCoach(ureq.getIdentity())) {
 				return new CoachSite(this, ureq.getLocale());
 			}
 		}
diff --git a/src/main/java/org/olat/modules/coach/ui/CourseListController.java b/src/main/java/org/olat/modules/coach/ui/CourseListController.java
index 27d4f274d1b1c3d839d88af4788f8b5cecbab5d5..7fdf1fd1e5aa5576c382d5564f422f6dda662978 100644
--- a/src/main/java/org/olat/modules/coach/ui/CourseListController.java
+++ b/src/main/java/org/olat/modules/coach/ui/CourseListController.java
@@ -21,7 +21,6 @@ package org.olat.modules.coach.ui;
 
 import java.util.List;
 
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.panel.Panel;
@@ -44,10 +43,10 @@ import org.olat.core.id.context.StateEntry;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.modules.coach.CoachingService;
 import org.olat.modules.coach.model.CourseStatEntry;
+import org.olat.modules.coach.ui.CoursesTableDataModel.Columns;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
-
-import org.olat.modules.coach.ui.CoursesTableDataModel.Columns;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -68,14 +67,13 @@ public class CourseListController extends BasicController implements Activateabl
 	
 	private boolean hasChanged = false;
 	
-	private final CoachingService coachingService;
-	private final RepositoryManager repositoryManager;
+	@Autowired
+	private CoachingService coachingService;
+	@Autowired
+	private RepositoryManager repositoryManager;
 	
 	public CourseListController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
-		
-		coachingService = CoreSpringFactory.getImpl(CoachingService.class);
-		repositoryManager = CoreSpringFactory.getImpl(RepositoryManager.class);
 
 		TableGuiConfiguration tableConfig = new TableGuiConfiguration();
 		tableConfig.setTableEmptyMessage(translate("error.no.found"));
diff --git a/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java b/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java
index ed5743b4d1f284db308c4167ec50a08402111c37..93cd51221c65947f5f2f1bc8d6093d0f9571f09a 100644
--- a/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java
+++ b/src/main/java/org/olat/modules/coach/ui/CoursesTableDataModel.java
@@ -63,12 +63,12 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> {
 				return c.getRepoDisplayName();
 			}
 			case countStudents: {
-				return new Integer(c.getCountDistinctStudents());
+				return new Integer(c.getCountStudents());
 			}
 			case initialLaunch: {
-				int count = c.getCountDistinctStudents();
+				int count = c.getCountStudents();
 				if(count == 0) {
-					return new LightedValue("", Light.grey);
+					return new LightedValue(null, Light.grey);
 				}
 
 				int launch = c.getInitialLaunch();
@@ -78,10 +78,10 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> {
 				} else if (launch == 0) {
 					light = Light.red;
 				}
-				return new LightedValue(Integer.toString(launch), light);
+				return new LightedValue(launch, light);
 			}
 			case countPassed: {
-				int numOfStudents = c.getCountDistinctStudents();
+				int numOfStudents = c.getCountStudents();
 				if(numOfStudents == 0) {
 					return numOfStudents;
 				}
@@ -92,9 +92,9 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> {
 				return val;
 			}
 			case countPassedLight: {
-				int count = c.getCountDistinctStudents();
+				int count = c.getCountStudents();
 				if(count == 0) {
-					return new LightedValue("", Light.grey);
+					return new LightedValue(null, Light.grey);
 				}
 				
 				int passed = c.getCountPassed();
@@ -104,7 +104,7 @@ public class CoursesTableDataModel implements TableDataModel<CourseStatEntry> {
 				} else if (passed == 0) {
 					light = Light.red;
 				}
-				return new LightedValue(Integer.toString(c.getCountPassed()), light);
+				return new LightedValue(c.getCountPassed(), light);
 			}
 			case averageScore: return c.getAverageScore();
 		}
diff --git a/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java b/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java
index 586ccd980c3f86db427eb98db15240e4985713a2..ec75f7985a6fe3ebef926f025686738494a2a25c 100644
--- a/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java
+++ b/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java
@@ -23,7 +23,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.olat.basesecurity.BaseSecurity;
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
@@ -40,6 +39,7 @@ import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.id.Identity;
 import org.olat.core.id.context.ContextEntry;
 import org.olat.core.id.context.StateEntry;
+import org.olat.course.CorruptedCourseException;
 import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
 import org.olat.course.assessment.EfficiencyStatement;
@@ -49,6 +49,7 @@ import org.olat.course.assessment.UserEfficiencyStatement;
 import org.olat.course.certificate.ui.CertificateAndEfficiencyStatementController;
 import org.olat.modules.coach.model.EfficiencyStatementEntry;
 import org.olat.repository.RepositoryEntry;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -62,8 +63,8 @@ import org.olat.repository.RepositoryEntry;
 public class EfficiencyStatementDetailsController extends BasicController implements Activateable2 {
 	
 	private final VelocityContainer mainVC;
-	private final SegmentViewComponent segmentView;
-	private final Link efficiencyStatementLink, assessmentLink;
+	private SegmentViewComponent segmentView;
+	private Link assessmentLink,  efficiencyStatementLink;
 	
 	private boolean hasChanged;
 	private EfficiencyStatementEntry statementEntry;
@@ -72,40 +73,41 @@ public class EfficiencyStatementDetailsController extends BasicController implem
 	
 	private final Identity assessedIdentity;
 	
-	private final BaseSecurity securityManager;
-	private final EfficiencyStatementManager efficiencyStatementManager;
+	@Autowired
+	private BaseSecurity securityManager;
+	@Autowired
+	private EfficiencyStatementManager efficiencyStatementManager;
 	
 	public EfficiencyStatementDetailsController(UserRequest ureq, WindowControl wControl,
 			EfficiencyStatementEntry statementEntry) {
 		super(ureq, wControl);
-		
-		efficiencyStatementManager = EfficiencyStatementManager.getInstance();
-		securityManager = CoreSpringFactory.getImpl(BaseSecurity.class);
 
 		mainVC = createVelocityContainer("efficiency_details");
 		this.statementEntry = statementEntry;
 
-		segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this);
-		efficiencyStatementLink = LinkFactory.createLink("details.statement", mainVC, this);
-		segmentView.addSegment(efficiencyStatementLink, true);
-		
-		assessmentLink = LinkFactory.createLink("details.assessment", mainVC, this);
-		segmentView.addSegment(assessmentLink, false);
-
 		RepositoryEntry entry = statementEntry.getCourse();
 		assessedIdentity = securityManager.loadIdentityByKey(statementEntry.getStudentKey());
 		statementCtrl = createEfficiencyStatementController(ureq);
 		listenTo(statementCtrl);
+		mainVC.put("segmentCmp", statementCtrl.getInitialComponent());
 		
-		if(entry == null) {
-			assessmentLink.setEnabled(false);
-		} else {
-			ICourse course = CourseFactory.loadCourse(entry.getOlatResource());
-			assessmentCtrl = new IdentityAssessmentEditController(wControl, ureq, null, assessedIdentity, course, true, false);
-			listenTo(assessmentCtrl);
+		if(entry != null) {
+			try {
+				ICourse course = CourseFactory.loadCourse(entry.getOlatResource());
+				assessmentCtrl = new IdentityAssessmentEditController(wControl, ureq, null, assessedIdentity, course, true, false);
+				listenTo(assessmentCtrl);
+				
+				segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this);
+				efficiencyStatementLink = LinkFactory.createLink("details.statement", mainVC, this);
+				segmentView.addSegment(efficiencyStatementLink, true);
+				
+				assessmentLink = LinkFactory.createLink("details.assessment", mainVC, this);
+				segmentView.addSegment(assessmentLink, false);
+			} catch(CorruptedCourseException e) {
+				logError("", e);
+			}
 		}
 
-		mainVC.put("segmentCmp", statementCtrl.getInitialComponent());
 		putInitialPanel(mainVC);
 	}
 	
@@ -117,6 +119,11 @@ public class EfficiencyStatementDetailsController extends BasicController implem
 	protected void doDispose() {
 		//
 	}
+	
+	@Override
+	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
+		//
+	}
 
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
@@ -136,7 +143,7 @@ public class EfficiencyStatementDetailsController extends BasicController implem
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if(source == segmentView && event instanceof SegmentViewEvent) {
 			SegmentViewEvent sve = (SegmentViewEvent)event;
-			if(efficiencyStatementLink.getComponentName().equals(sve.getComponentName())) {
+			if(efficiencyStatementLink != null && efficiencyStatementLink.getComponentName().equals(sve.getComponentName())) {
 				if(hasChanged) {
 					//reload
 					removeAsListenerAndDispose(statementCtrl);
@@ -145,16 +152,11 @@ public class EfficiencyStatementDetailsController extends BasicController implem
 					hasChanged = false;
 				}
 				mainVC.put("segmentCmp", statementCtrl.getInitialComponent());
-			} else if(assessmentLink.getComponentName().equals(sve.getComponentName())) {
+			} else if(assessmentLink != null && assessmentLink.getComponentName().equals(sve.getComponentName())) {
 				mainVC.put("segmentCmp", assessmentCtrl.getInitialComponent());
 			}
 		}
 	}
-
-	@Override
-	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
-		//
-	}
 	
 	private CertificateAndEfficiencyStatementController createEfficiencyStatementController(UserRequest ureq) {
 		RepositoryEntry entry = statementEntry.getCourse();
@@ -167,7 +169,6 @@ public class EfficiencyStatementDetailsController extends BasicController implem
 	}
 	
 	private void efficiencyStatementChanged() {
-		Identity assessedIdentity = securityManager.loadIdentityByKey(statementEntry.getStudentKey());
 		List<Identity> assessedIdentityList = Collections.singletonList(assessedIdentity);
 		RepositoryEntry re = statementEntry.getCourse();
 		efficiencyStatementManager.updateEfficiencyStatements(re.getOlatResource(), assessedIdentityList);
diff --git a/src/main/java/org/olat/modules/coach/ui/GroupController.java b/src/main/java/org/olat/modules/coach/ui/GroupController.java
index 70db4ab54557243152d40dced9d14bd76a421189..d028587c4654366616eb9a34f5cd6a43429cde2a 100644
--- a/src/main/java/org/olat/modules/coach/ui/GroupController.java
+++ b/src/main/java/org/olat/modules/coach/ui/GroupController.java
@@ -249,8 +249,8 @@ public class GroupController extends BasicController implements Activateable2, G
 			if(event instanceof TableEvent) {
 				TableEvent e = (TableEvent) event;
 				if("select".equals(e.getActionId())) {
-					EfficiencyStatementEntry entry = (EfficiencyStatementEntry)tableCtr.getTableDataModel().getObject(e.getRowId());
-					selectDetails(ureq, entry);
+					EfficiencyStatementEntry row = (EfficiencyStatementEntry)tableCtr.getTableDataModel().getObject(e.getRowId());
+					selectDetails(ureq, row);
 				}
 			}
 		} else if (source == toolbar) {
@@ -284,9 +284,9 @@ public class GroupController extends BasicController implements Activateable2, G
 		if("Identity".equals(ores.getResourceableTypeName())) {
 			Long identityKey = ores.getResourceableId();
 			for(int i=tableCtr.getRowCount(); i-->0; ) {
-				EfficiencyStatementEntry entry = (EfficiencyStatementEntry)tableCtr.getTableDataModel().getObject(i);
-				if(identityKey.equals(entry.getStudentKey())) {
-					selectDetails(ureq, entry);
+				EfficiencyStatementEntry row = (EfficiencyStatementEntry)tableCtr.getTableDataModel().getObject(i);
+				if(identityKey.equals(row.getStudentKey())) {
+					selectDetails(ureq, row);
 					statementCtrl.activate(ureq, entries.subList(1, entries.size()), ce.getTransientState());
 					break;
 				}
@@ -340,18 +340,18 @@ public class GroupController extends BasicController implements Activateable2, G
 		addToHistory(ureq);
 	}
 	
-	private void selectDetails(UserRequest ureq, EfficiencyStatementEntry entry) {
+	private void selectDetails(UserRequest ureq, EfficiencyStatementEntry statementEntry) {
 		removeAsListenerAndDispose(statementCtrl);
 		
-		OLATResourceable ores = OresHelper.createOLATResourceableInstance(Identity.class, entry.getStudentKey());
+		OLATResourceable ores = OresHelper.createOLATResourceableInstance(Identity.class, statementEntry.getStudentKey());
 		WindowControl bwControl = addToHistory(ureq, ores, null);
-		statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry);
+		statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, statementEntry);
 		listenTo(statementCtrl);
 		mainVC.put("efficiencyDetails", statementCtrl.getInitialComponent());
 		
-		int index = tableCtr.getIndexOfSortedObject(entry) + 1;
+		int index = tableCtr.getIndexOfSortedObject(statementEntry) + 1;
 		String details = translate("students.details", new String[]{
-				entry.getStudentFullName(), String.valueOf(index), String.valueOf(tableCtr.getRowCount())
+				statementEntry.getStudentFullName(), String.valueOf(index), String.valueOf(tableCtr.getRowCount())
 		});
 		detailsCmp.setText(details);
 		setDetailsToolbarVisible(true);
diff --git a/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java b/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java
index 387cc67de9317320d365f5c4d4ab7721316a9eb4..9856d658e602c56d75a839f31f07fa1ac9c4876b 100644
--- a/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java
+++ b/src/main/java/org/olat/modules/coach/ui/GroupsTableDataModel.java
@@ -72,7 +72,7 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> {
 			case initialLaunch: {
 				int count = g.getCountCourses() * g.getCountStudents();
 				if(count == 0) {
-					return new LightedValue("", Light.grey);
+					return new LightedValue(null, Light.grey);
 				}
 
 				int launch = g.getInitialLaunch();
@@ -82,11 +82,11 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> {
 				} else if (launch == 0) {
 					light = Light.red;
 				}
-				return new LightedValue(Integer.toString(launch), light);
+				return new LightedValue(launch, light);
 			}
 			case countPassed: {
 				if(numOfStudents == 0) {
-					return new LightedValue("", Light.grey);
+					return numOfStudents;
 				}
 				
 				ProgressValue val = new ProgressValue();
@@ -96,7 +96,7 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> {
 			}
 			case countPassedLight: {
 				if(numOfStudents == 0) {
-					return new LightedValue("", Light.grey);
+					return new LightedValue(null, Light.grey);
 				}
 				
 				int passed = g.getCountPassed();
@@ -106,7 +106,7 @@ public class GroupsTableDataModel implements TableDataModel<GroupStatEntry> {
 				} else if (passed == 0) {
 					light = Light.red;
 				}
-				return new LightedValue(Integer.toString(passed), light);
+				return new LightedValue(passed, light);
 			}
 			case averageScore: return g.getAverageScore();
 			case statistics: {
diff --git a/src/main/java/org/olat/modules/coach/ui/LightedValue.java b/src/main/java/org/olat/modules/coach/ui/LightedValue.java
index 659ebf578d1bd2b64cbc7ce3e013654a1ac156cb..10c62ae15c5c2561e189878fd317f17fdc22a3fd 100644
--- a/src/main/java/org/olat/modules/coach/ui/LightedValue.java
+++ b/src/main/java/org/olat/modules/coach/ui/LightedValue.java
@@ -23,23 +23,43 @@ package org.olat.modules.coach.ui;
  * 
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
-public class LightedValue {
+public class LightedValue implements Comparable<LightedValue> {
 	
-	private final String value;
+	private final Integer value;
 	private final Light light;
 	
-	public LightedValue(String value, Light light) {
+	public LightedValue(Integer value, Light light) {
 		this.value = value;
 		this.light = light;
 	}
 
 	public String getValue() {
-		return value;
+		return value == null ? "" : Integer.toString(value.intValue());
 	}
 
 	public Light getLight() {
 		return light;
 	}
+	
+	@Override
+	public int compareTo(LightedValue o) {
+		int color1 = light == null ? 0 : light.ordinal();
+		int color2 = o.light == null ? 0 : o.light.ordinal();
+		if(color1 < color2) {
+			return -1;
+		} else if(color2 < color1) {
+			return 1;
+		}
+		
+		int val1 = value == null ? 0 : value.intValue();
+		int val2 = o.value == null ? 0 : o.value.intValue();
+		if(val2 < val1) {
+			return -1;
+		} else if(val1 < val2) {
+			return 1;
+		}
+		return 0;
+	}
 
 	public enum Light {
 		grey,
diff --git a/src/main/java/org/olat/modules/coach/ui/ProgressValue.java b/src/main/java/org/olat/modules/coach/ui/ProgressValue.java
index 4852904626d0a08ce0af21720fe25fe36b49b6c6..e1175473e16aea7816fa3ead67ebcaacf7857a39 100644
--- a/src/main/java/org/olat/modules/coach/ui/ProgressValue.java
+++ b/src/main/java/org/olat/modules/coach/ui/ProgressValue.java
@@ -42,8 +42,7 @@ public class ProgressValue implements Comparable<ProgressValue> {
 	}
 	
 	public int getGreenPerCent() {
-		int green = Math.round(100.0f * ((float)getGreen() / (float)getTotal()));
-		return green;
+		return Math.round(100.0f * ((float)getGreen() / (float)getTotal()));
 	}
 	
 	public void setGreen(int green) {
diff --git a/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java b/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java
index 2b99c208f4412a9ae837d1b90404bf0647b61bba..8186cb1d8a1c376071439a1e7d4b37492c80141e 100644
--- a/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java
+++ b/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java
@@ -219,8 +219,8 @@ public class StudentCoursesController extends BasicController implements Activat
 	}
 	
 	private List<EfficiencyStatementEntry> loadModel() {
-		List<RepositoryEntry> courses = fullAccess ? coachingService.getUserCourses(student, 0, -1)
-				: coachingService.getStudentsCourses(getIdentity(), student, 0, -1);
+		List<RepositoryEntry> courses = fullAccess ? coachingService.getUserCourses(student)
+				: coachingService.getStudentsCourses(getIdentity(), student);
 		List<EfficiencyStatementEntry> statements = coachingService.getEfficencyStatements(student, courses);
 		
 		List<CertificateLight> certificates = certificatesManager.getLastCertificates(student);
diff --git a/src/main/java/org/olat/modules/coach/ui/StudentListController.java b/src/main/java/org/olat/modules/coach/ui/StudentListController.java
index 987f4fa195622ce807119f7b9ae3acbccb99025f..924874c41539fb15e01143362d9c629d7f19ecde 100644
--- a/src/main/java/org/olat/modules/coach/ui/StudentListController.java
+++ b/src/main/java/org/olat/modules/coach/ui/StudentListController.java
@@ -50,6 +50,7 @@ import org.olat.core.util.resource.OresHelper;
 import org.olat.modules.coach.CoachingService;
 import org.olat.modules.coach.model.StudentStatEntry;
 import org.olat.modules.coach.ui.StudentsTableDataModel.Columns;
+import org.olat.user.UserManager;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -72,6 +73,9 @@ public class StudentListController extends BasicController implements Activateab
 	private boolean hasChanged;
 	
 	private final Map<Long,String> identityFullNameMap= new HashMap<Long,String>();
+	
+	@Autowired
+	private UserManager userManager;
 	@Autowired
 	private BaseSecurity securityManager;
 	@Autowired
@@ -111,14 +115,14 @@ public class StudentListController extends BasicController implements Activateab
 	
 	private void loadModel() {
 		List<StudentStatEntry> students = coachingService.getStudentsStatistics(getIdentity());
-		Set<Long> studentNames = new HashSet<Long>();
+		Set<Long> identityKeys = new HashSet<Long>();
 		for(StudentStatEntry student:students) {
 			if(!identityFullNameMap.containsKey(student.getStudentKey())) {
-				studentNames.add(student.getStudentKey());
+				identityKeys.add(student.getStudentKey());
 			}
 		}
-		if(!studentNames.isEmpty()) {
-			Map<Long,String> newIdentityFullNameMap = coachingService.getIdentities(studentNames);
+		if(!identityKeys.isEmpty()) {
+			Map<Long,String> newIdentityFullNameMap = userManager.getUserDisplayNamesByKey(identityKeys);
 			identityFullNameMap.putAll(newIdentityFullNameMap);
 		}
 		TableDataModel<StudentStatEntry> model = new StudentsTableDataModel(students, identityFullNameMap);
diff --git a/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java b/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java
index 8e38e2f06446604a027c661c717c6d98e7741fde..4a4b5c9b24e044a8e27b5b0463f603300598586d 100644
--- a/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java
+++ b/src/main/java/org/olat/modules/coach/ui/StudentsTableDataModel.java
@@ -84,7 +84,7 @@ public class StudentsTableDataModel implements TableDataModel<StudentStatEntry>
 				} else if (launched == 0) {
 					light = Light.red;
 				}
-				return new LightedValue(Integer.toString(launched), light);
+				return new LightedValue(launched, light);
 			}
 			case countPassed: {
 				if(countRepo == 0) {
@@ -107,7 +107,7 @@ public class StudentsTableDataModel implements TableDataModel<StudentStatEntry>
 				} else if (passed == 0) {
 					light = Light.red;
 				}
-				return new LightedValue(Integer.toString(passed), light);
+				return new LightedValue(passed, light);
 			}
 		}
 		return null;
diff --git a/src/main/java/org/olat/modules/coach/ui/UserListController.java b/src/main/java/org/olat/modules/coach/ui/UserListController.java
index c477da66c58a6602e0b593a7e3779fa69bd1bd5e..0eda524ca0e50c4ba6f43e811de53bd2e5e83ffd 100644
--- a/src/main/java/org/olat/modules/coach/ui/UserListController.java
+++ b/src/main/java/org/olat/modules/coach/ui/UserListController.java
@@ -25,7 +25,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.IdentityRef;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
@@ -46,13 +45,14 @@ import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
-import org.olat.core.id.UserConstants;
 import org.olat.core.id.context.ContextEntry;
 import org.olat.core.id.context.StateEntry;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.modules.coach.CoachingService;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
 import org.olat.modules.coach.model.StudentStatEntry;
 import org.olat.modules.coach.ui.StudentsTableDataModel.Columns;
+import org.olat.user.UserManager;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -70,9 +70,11 @@ public class UserListController extends BasicController implements Activateable2
 	private StudentCoursesController studentCtrl;
 	
 	private boolean hasChanged;
-	private List<IdentityRef> identityRefs;
+	private SearchCoachedIdentityParams searchParams;
 	private final Map<Long,String> identityFullNameMap = new HashMap<Long,String>();
 	
+	@Autowired
+	private UserManager userManager;
 	@Autowired
 	private BaseSecurity securityManager;
 	@Autowired
@@ -110,6 +112,10 @@ public class UserListController extends BasicController implements Activateable2
 		//
 	}
 	
+	public int size() {
+		return tableCtr.getRowCount();
+	}
+	
 	private void reloadModel() {
 		if(hasChanged) {
 			loadModel();
@@ -118,19 +124,26 @@ public class UserListController extends BasicController implements Activateable2
 	}
 	
 	private void loadModel() {
-		List<StudentStatEntry> stats = coachingService.getUsersStatistics(identityRefs);
+		List<StudentStatEntry> stats = coachingService.getUsersStatistics(searchParams);
+		
+		List<Long> identityKeys = new ArrayList<>(stats.size());
+		for(StudentStatEntry entry:stats) {
+			Long identityKey = entry.getStudentKey();
+			if(!identityFullNameMap.containsKey(identityKey)) {
+				identityKeys.add(identityKey);
+			}
+		}
+		Map<Long,String> maps = userManager.getUserDisplayNamesByKey(identityKeys);
+		if(maps.size() > 0) {
+			identityFullNameMap.putAll(maps);
+		}
+		
 		TableDataModel<StudentStatEntry> model = new StudentsTableDataModel(stats, identityFullNameMap);
 		tableCtr.setTableDataModel(model);
 	}
 
-	public void loadModel(List<Identity> identities) {
-		List<IdentityRef> refs = new ArrayList<>(identities.size());
-		for(Identity identity:identities) {
-			String fullName = identity.getUser().getProperty(UserConstants.FIRSTNAME, getLocale()) + " " + identity.getUser().getProperty(UserConstants.LASTNAME, getLocale());
-			identityFullNameMap.put(identity.getKey(), fullName);
-			refs.add(new IdentityRefImpl(identity.getKey()));
-		}
-		identityRefs = refs;
+	public void search(SearchCoachedIdentityParams searchParameters) {
+		this.searchParams = searchParameters;
 		loadModel();
 	}
 
@@ -174,6 +187,13 @@ public class UserListController extends BasicController implements Activateable2
 		//do nothing
 	}
 	
+	protected void selectUniqueStudent(UserRequest ureq) {
+		if(tableCtr.getRowCount() > 0) {
+			StudentStatEntry studentStat = (StudentStatEntry)tableCtr.getTableDataModel().getObject(0);
+			selectStudent(ureq, studentStat);
+		}
+	}
+	
 	protected void previousStudent(UserRequest ureq) {
 		StudentStatEntry currentEntry = studentCtrl.getEntry();
 		int previousIndex = tableCtr.getIndexOfSortedObject(currentEntry) - 1;
@@ -206,17 +226,4 @@ public class UserListController extends BasicController implements Activateable2
 		listenTo(studentCtrl);
 		content.setContent(studentCtrl.getInitialComponent());
 	}
-	
-	private static class IdentityRefImpl implements IdentityRef {
-		private final Long key;
-		
-		public IdentityRefImpl(Long key) {
-			this.key = key;
-		}
-		
-		@Override
-		public Long getKey() {
-			return key;
-		}
-	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/coach/ui/UserSearchController.java b/src/main/java/org/olat/modules/coach/ui/UserSearchController.java
index 41fa0af3bf0bcedf74a833704736bb6f518e0efd..f00a7f4513ba181c76954e26c6a22368610b6b74 100644
--- a/src/main/java/org/olat/modules/coach/ui/UserSearchController.java
+++ b/src/main/java/org/olat/modules/coach/ui/UserSearchController.java
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.olat.basesecurity.BaseSecurity;
-import org.olat.basesecurity.SearchIdentityParams;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.panel.StackedPanel;
@@ -31,8 +30,11 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
-import org.olat.core.id.Identity;
+import org.olat.core.gui.control.generic.dtabs.Activateable2;
+import org.olat.core.id.context.ContextEntry;
+import org.olat.core.id.context.StateEntry;
 import org.olat.modules.coach.CoachingService;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -41,7 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  *
  */
-public class UserSearchController extends BasicController {
+public class UserSearchController extends BasicController implements Activateable2 {
 	
 	private final UserSearchForm searchForm;
 	private final UserListController userListCtrl;
@@ -74,6 +76,17 @@ public class UserSearchController extends BasicController {
 		//
 	}
 
+	@Override
+	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
+		if(entries == null || entries.isEmpty()) return;
+		
+		ContextEntry entry = entries.get(0);
+		if("Identity".equalsIgnoreCase(entry.getOLATResourceable().getResourceableTypeName())) {
+			Long identityKey = entry.getOLATResourceable().getResourceableId();
+			doSearchByIdentityKey(ureq, identityKey);
+		}
+	}
+
 	@Override
 	protected void event(UserRequest ureq, Controller source, Event event) {
 		if(searchForm == source) {
@@ -88,23 +101,24 @@ public class UserSearchController extends BasicController {
 		super.event(ureq, source, event);
 	}
 	
+	private void doSearchByIdentityKey(UserRequest ureq, Long identityKey) {
+		SearchCoachedIdentityParams params = new SearchCoachedIdentityParams();
+		params.setIdentityKey(identityKey);
+		userListCtrl.search(params);
+		mainPanel.pushContent(userListCtrl.getInitialComponent());
+		if(userListCtrl.size() == 1) {
+			userListCtrl.selectUniqueStudent(ureq);
+		}
+	}
+	
 	private void doSearch() {
 		String login = searchForm.getLogin();
 		Map<String,String> searchProps = searchForm.getSearchProperties();
 		
-		SearchIdentityParams params = new SearchIdentityParams();
+		SearchCoachedIdentityParams params = new SearchCoachedIdentityParams();
 		params.setLogin(login);
 		params.setUserProperties(searchProps);
-		params.setUserPropertiesAsIntersectionSearch(true);
-		params.setStatus(Identity.STATUS_VISIBLE_LIMIT);
-		
-		long count = securityManager.countIdentitiesByPowerSearch(params);
-		if(count > 501) {
-			showWarning("error.search.form.too.many");
-		} else {
-			List<Identity> identities = securityManager.getIdentitiesByPowerSearch(params, 0, 501);
-			userListCtrl.loadModel(identities);
-			mainPanel.pushContent(userListCtrl.getInitialComponent());
-		}
+		userListCtrl.search(params);
+		mainPanel.pushContent(userListCtrl.getInitialComponent());
 	}
 }
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/coach/ui/_content/efficiency_details.html b/src/main/java/org/olat/modules/coach/ui/_content/efficiency_details.html
index 9ff4dd926a6b594d85191c90dfd90c53aed8bf73..68aded09baafdff1e55944fdc6471d435e744d96 100644
--- a/src/main/java/org/olat/modules/coach/ui/_content/efficiency_details.html
+++ b/src/main/java/org/olat/modules/coach/ui/_content/efficiency_details.html
@@ -1,4 +1,6 @@
-$r.render("segments")
+#if($r.available("segments"))
+	$r.render("segments")
+#end
 #if($r.available("segmentCmp"))
 	$r.render("segmentCmp")
 #end
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_pt_BR.properties
index ccfb4aa7563293079634be6f059e28635dc8762a..1c31acc2a4cd1900270eb1e970cb0304a1a0c4d5 100644
--- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Jul 30 23:23:00 CEST 2014
+#Sat Jan 24 15:07:57 CET 2015
 assessment.open=Avalia\u00E7\u00E3o
 chelp.coaching.intro=Se voc\u00EA est\u00E1 treinando um grupo de estudo ou um curso, e o mesmo possui um comprovante de conclus\u00E3o, a ferramenta de Coaching ir\u00E1 aparecer na barra de navega\u00E7\u00E3o superior. A ferramenta de Coaching concede uma vis\u00E3o abrangente da situa\u00E7\u00E3o dos alunos nos cursos.\r\n<br/>Use a navega\u00E7\u00E3o no menu para examinar informa\u00E7\u00F5es sobre a aprendizagem dos usu\u00E1rios\: individualmente, por grupos ou por cursos. A barra de progresso indica se um usu\u00E1rio, grupo ou curso cumpriu todas as avalia\u00E7\u00F5es exigidas ou se algo est\u00E1 faltando e os usu\u00E1rios n\u00E3o passaram nas avalia\u00E7\u00F5es. Na vis\u00E3o de lista, use a ordem das colunas para ordenar por usu\u00E1rios que precisam de mais aten\u00E7\u00E3o.\r\n<br />Uma vez na vis\u00E3o por usu\u00E1rio voc\u00EA pode usar a seta de navega\u00E7\u00E3o para percorrer os seus usu\u00E1rios e simplificar a navega\u00E7\u00E3o. Na vista de detalhes de usu\u00E1rios voc\u00EA vai ver os comprovantes de conclus\u00E3o deles, como eles mesmos v\u00EAem. Alterne para a exibi\u00E7\u00E3o de ferramenta de avalia\u00E7\u00E3o para ajustar a pontua\u00E7\u00E3o usu\u00E1rios ou para deixar-lhe um coment\u00E1rio.
 chelp.coaching.title=Ferramenta Coaching
@@ -13,6 +13,8 @@ courses.menu.title.alt=Meu curso
 details.assessment=Ferramenta de avalia\u00E7\u00E3o
 details.statement=Comprovante de conclus\u00E3o
 error.no.found=N\u00E3o encontrado
+error.search.form.notempty=$org.olat.admin.user\:error.search.form.notempty
+error.search.form.too.many=Muitos resultados de pesquisa. Por favor, restrinja a sua pesquisa
 group.name=Grupo
 groups.menu.title=Meu grupo
 groups.menu.title.alt=Meu grupo
@@ -35,6 +37,10 @@ previous=Anterior
 previous.course=$\:previous
 previous.group=$\:previous
 previous.student=$\:previous
+search=Pesquisa
+search.form.login=Usu\u00E1rio
+search.menu.title=Buscar Usu\u00E1rio
+search.menu.title.alt=Buscar usu\u00E1rio
 site.title=Coaching
 site.title.alt=Coaching
 statement.select=Confirma\u00E7\u00E3o
@@ -44,6 +50,7 @@ students.menu.title=Meus alunos
 students.menu.title.alt=Meus estudantes
 table.action.show=$org.olat.course.assessment\:table.action.show
 table.header.averageScore=M\u00E9dia
+table.header.certificate=Certificado
 table.header.countCourses=\# Cursos
 table.header.countStudents=\# Membros
 table.header.course.name=Cursos
diff --git a/src/main/java/org/olat/modules/cp/CPDisplayController.java b/src/main/java/org/olat/modules/cp/CPDisplayController.java
index 1e5362e92264288b7ed26e31b8b08e174b0247f3..a7a65abe92d27c15b84101843d77ab3146ac118b 100644
--- a/src/main/java/org/olat/modules/cp/CPDisplayController.java
+++ b/src/main/java/org/olat/modules/cp/CPDisplayController.java
@@ -128,7 +128,7 @@ public class CPDisplayController extends BasicController implements Activateable
 		//TODO:gs:a
 		//may add an additional config for disabling, enabling IFrame style or not in CP mode
 		//but always disable IFrame display when in screenreader mode (no matter whether style gets ugly)
-		cpContentCtr = new IFrameDisplayController(ureq, getWindowControl(),rootContainer, null, ores, deliveryOptions, false);
+		cpContentCtr = new IFrameDisplayController(ureq, getWindowControl(),rootContainer, null, ores, deliveryOptions, true);
 		cpContentCtr.setAllowDownload(true);
 		listenTo(cpContentCtr);
 		myContent.put("cpContent", cpContentCtr.getInitialComponent());
diff --git a/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java b/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java
index 102272be5ca6af5a09381758775e185355db49fd..37667f76a44434e5d98ea948083a9bcf6495b0ca 100644
--- a/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java
+++ b/src/main/java/org/olat/modules/openmeetings/manager/OpenMeetingsManagerImpl.java
@@ -347,6 +347,8 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel
 			if(omRoom != null) {
 				room.setComment(omRoom.getComment());
 				room.setModerated(omRoom.isIsModeratedRoom());
+				room.setRecordingAllowed(omRoom.isAllowRecording());
+				room.setAudioOnly(omRoom.isIsAudioOnly());
 				room.setName(omRoom.getName());
 				room.setRoomId(omRoom.getRoomsId());
 				room.setSize(omRoom.getNumberOfPartizipants());
@@ -478,7 +480,7 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel
 			long returned = roomWs.addRoomWithModerationAndRecordingFlags(sid,
 					room.getName(), room.getType(), room.getComment(), room.getSize(), false, false,
 					false, 0, room.isModerated(), getOpenOLATExternalType(), true,
-					false, false, room.isRecordingAllowed());
+					room.isAudioOnly(), false, room.isRecordingAllowed());
 			if(returned >= 0) {
 				room.setRoomId(returned);
 				log.audit("Room created");
@@ -511,8 +513,9 @@ public class OpenMeetingsManagerImpl implements OpenMeetingsManager, UserDataDel
 		try {
 			String sid = adminLogin();
 			RoomServicePortType roomWs = getRoomWebService();
-			long returned = roomWs.updateRoomWithModeration(sid, room.getRoomId(),
-					room.getName(), room.getType(), room.getComment(), room.getSize(), false, false, false, 0, room.isModerated());
+			long returned = roomWs.updateRoomWithModerationQuestionsAudioTypeAndHideOptions(sid, room.getRoomId(), 
+					room.getName(), room.getType(), room.getComment(), room.getSize(), false, false, false, 0, room.isModerated(), 
+					false, room.isAudioOnly(), false, false, false, false, false, false, false);
 			if(returned >= 0) {
 				log.audit("Room updated");
 				openMeetingsDao.updateReference(group, ores, subIdentifier, room);
diff --git a/src/main/java/org/olat/modules/openmeetings/model/OpenMeetingsRoom.java b/src/main/java/org/olat/modules/openmeetings/model/OpenMeetingsRoom.java
index fc94d6b9235085bd0034acdd3b7e5cc2ded86490..c5d4aac68d64a8ca0cd914f249695a1f89481719 100644
--- a/src/main/java/org/olat/modules/openmeetings/model/OpenMeetingsRoom.java
+++ b/src/main/java/org/olat/modules/openmeetings/model/OpenMeetingsRoom.java
@@ -34,6 +34,7 @@ public class OpenMeetingsRoom {
 	private long type;
 	private long size;
 	private boolean moderated;
+	private boolean audioOnly;
 	private boolean recordingAllowed;
 	private boolean closed;
 	
@@ -97,6 +98,14 @@ public class OpenMeetingsRoom {
 		this.moderated = moderated;
 	}
 	
+	public boolean isAudioOnly() {
+		return audioOnly;
+	}
+	
+	public void setAudioOnly(boolean audioOnly) {
+		this.audioOnly = audioOnly;
+	}
+	
 	public boolean isRecordingAllowed() {
 		return recordingAllowed;
 	}
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java
index 93bdf3200acff5f11d55cc12b260a778d21bfedf..74dad50dcba66c55e8f07a3c2899552eb48ec8c3 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java
+++ b/src/main/java/org/olat/modules/openmeetings/ui/OpenMeetingsRoomEditController.java
@@ -53,6 +53,7 @@ public class OpenMeetingsRoomEditController extends FormBasicController {
 	private TextElement roomNameEl;
 	private SingleSelection roomTypeEl;
 	private SingleSelection roomSizeEl;
+	private SingleSelection avModeEl;
 	private SingleSelection moderationModeEl;
 	private MultipleSelectionElement recordingEl;
 	private TextElement commentEl;
@@ -61,6 +62,7 @@ public class OpenMeetingsRoomEditController extends FormBasicController {
 	private final String[] roomSizes;
 	private final String[] moderationModeKeys;
 	private final String[] recordingKeys = {"xx"};
+	private final String[] avModeKeys;
 
 	private final BusinessGroup group;
 	private final OLATResourceable ores;
@@ -85,6 +87,7 @@ public class OpenMeetingsRoomEditController extends FormBasicController {
 				RoomType.conference.typeStr(), RoomType.restricted.typeStr(), RoomType.interview.typeStr()
 		};
 		moderationModeKeys = new String[]{"yes", "no"};
+		avModeKeys = new String[]{"audio", "video"};
 		
 		openMeetingsManager = CoreSpringFactory.getImpl(OpenMeetingsManager.class);
 		try {
@@ -178,6 +181,16 @@ public class OpenMeetingsRoomEditController extends FormBasicController {
 		} else if(defaultSettings != null) {
 			recordingEl.select(recordingKeys[0], defaultSettings.isRecordingAllowed());
 		}
+		String[] avModeValues = new String[]{ translate("room.av.audio"), translate("room.av.video") };
+		avModeEl = uifactory.addDropdownSingleselect("avmode", "room.av.mode", formLayout, avModeKeys, avModeValues, null);
+		if(room != null) {
+			String key = room.isAudioOnly() ? avModeKeys[0] : avModeKeys[1];
+			avModeEl.select(key, true);
+			avModeEl.setEnabled(false);
+		} else if(defaultSettings != null) {
+			String key = defaultSettings.isAudioOnly() ? avModeKeys[0] : avModeKeys[1];
+			avModeEl.select(key, true);
+		}
 
 		String comment = room == null ? (defaultSettings == null ? null : defaultSettings.getComment()) : room.getComment();
 		commentEl = uifactory.addRichTextElementForStringData("roomcomment", "room.comment", comment == null ? "" : comment,
@@ -211,6 +224,7 @@ public class OpenMeetingsRoomEditController extends FormBasicController {
 				room.setSize(16l);
 			}
 		}
+		room.setAudioOnly(avModeEl.isOneSelected() && avModeEl.isSelected(0));
 		if(roomTypeEl.isOneSelected()) {
 			String type = roomTypeEl.getSelectedKey();
 			long roomType = Long.parseLong(type);
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties
index 902a45f3f7ba4ad7e04ca1d44b3f715fc1658d38..3889bb58680df5138ccd4bb703d4396f9a114ea7 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties
@@ -5,62 +5,62 @@ check.ok=Der Verbindungstest war erfolgreich, Sie k\u00F6nnen OpenMeetings nun b
 check.nok=Der Verbindungstest war nicht erfolgreich. Bitte pr\u00FCfen Sie die Server URL, der Benutzername und das Passwort des Systembenutzers!
 enabled=eingeschaltet
 error.-10=Benutzername nicht gefunden
-error.-11=Ungültiges Passwort
+error.-11=Ung\u00FCltiges Passwort
 error.-12=Erfolgreich ausgeloggt
 error.-13=Das Passwort und/oder der Loginname sind zu kurz
 error.-14=Registration ausgeschaltet
 error.-15=Dieser Benutzername wird bereits verwendet
 error.-16=Systemfehler, bitte kontaktieren Sie den Systemadministrator
 error.-17=Diese Emailadresse ist bereits registriert
-error.-18=Ihr Benutzerkonto wurde erstellt, Sie können Sich nun anmelden.
-error.-19=Ungültige Emailadresse
-error.-2=Bitte geben Sie entweder einen Benutzernamen oder eine Emailadresse ein
-error.-20=Dieser Dateiname ist bereits verwendet, bitte wählen Sie einen anderen Dateinamen
+error.-18=Ihr Benutzerkonto wurde erstellt, Sie k\u00F6nnen Sich nun anmelden.
+error.-19=Ung\u00FCltige E-Mailadresse
+error.-2=Bitte geben Sie entweder einen Benutzernamen oder eine E-Mailadresse ein
+error.-20=Dieser Dateiname wird bereits verwendet, bitte w\u00E4hlen Sie einen anderen Dateinamen
 error.-21=Dateiname zu kurz
 error.-22=Adresse konnte nicht gespeichert werden
-error.-23=Der Benutzer wurde erstellt, muss nun aber zu einer Benutzergruppe hinzugefügt werden damit mit diesem Benutzer eingeloggt werden kann
-error.-24=Kein Feld gefunden für diese ID
+error.-23=Der Benutzer wurde erstellt, muss nun aber zu einer Benutzergruppe hinzugef\u00FCgt werden damit mit diesem Benutzer eingeloggt werden kann
+error.-24=Kein Feld gefunden f\u00FCr diese ID
 error.-25=Keine Beschriftung gefunden
 error.-26=Authentifizierung als Administrator erforderlich
-error.-27=Ungültige Beschriftungs ID
-error.-28=Sie haben die Beschriftung gelöscht
-error.-29=Ungültige Beschriftungs ID
-error.-3=Es ist kein Benutzer mit diesem Benutzername verknüpft
-error.-30=Dieser Raum ist vollständig belegt
-error.-31=Für diesen Einlade-Code ist keine Einladung verfügbar
+error.-27=Ung\u00FCltige Beschriftungs ID
+error.-28=Sie haben die Beschriftung gel\u00F6scht
+error.-29=Ung\u00FCltige Beschriftungs ID
+error.-3=Es ist kein Benutzer mit diesem Benutzername verkn\u00FCpft
+error.-30=Dieser Raum ist vollst\u00E4ndig belegt
+error.-31=F\u00FCr diesen Einlade-Code ist keine Einladung verf\u00FCgbar
 error.-32=Diese Einladung ist bereis verwendet
-error.-33=Dieser Einladecode ist ungültig
-error.-34=Ungültiges Passwort
+error.-33=Dieser Einladecode ist ung\u00FCltig
+error.-34=Ung\u00FCltiges Passwort
 error.-35=Dieser Benutzer ist bereits in dieser Benutzergruppe
-error.-36=Diese Methode kann nur von einem Administrator ausgeführt werden
-error.-37=Für diese ID ist keine Sitzung vorhanden
-error.-38=Sie können Ihren eigenes Benutzerkonto nicht löschen
-error.-39=Dies ist ein Administrator oder Moderator Konto. Dieses Konto kann nur im Administrationspanel geändert werden
+error.-36=Diese Methode kann nur von einem Administrator ausgef\u00FChrt werden
+error.-37=F\u00FCr diese ID ist keine Sitzung vorhanden
+error.-38=Sie k\u00F6nnen Ihren eigenes Benutzerkonto nicht l\u00F6schen
+error.-39=Dies ist ein Administrator oder Moderator Konto. Dieses Konto kann nur im Administrationspanel ge\u00E4ndert werden
 error.-4=Eine Email mit einem speziellen Link wurde an Ihre Emailadresse versendet. 
 error.-40=Sie haben Sich erfolgreich registriert. Eine Email mit einem Verifizierungscode wurde an Ihre Emailadresse gesendet. 
-error.-41=Ihr Konto ist nicht aktiviert. Bitte verwenden Sie den Link in der Email die während der Registration versendet wurde.
+error.-41=Ihr Konto ist nicht aktiviert. Bitte verwenden Sie den Link in der Email die w\u00E4hrend der Registration versendet wurde.
 error.-42=Diese Sitzung wurde bereits verwendet
-error.-43=Sie müssen Ihr Passwort erneut eingeben um die SIP Daten zu erzeugen
+error.-43=Sie m\u00FCssen Ihr Passwort erneut eingeben um die SIP Daten zu erzeugen
 error.-44=Diese Emailadresse wird bereits von einem anderen Benutzer verwendet
-error.-45=Dieser Benutzer ist bereits in Ihrer Kontaktliste oder hat die Einladung für Ihre Kontaktliste nicht beantwortet
+error.-45=Dieser Benutzer ist bereits in Ihrer Kontaktliste oder hat die Einladung f\u00FCr Ihre Kontaktliste nicht beantwortet
 error.-46=Dieser Benutzer ist bereits gesperrt
-error.-47=Dieser Benutzer ist bereits bestätigt
-error.-48=Dieser Benutzer Kontakt Hash ist ungültig
+error.-47=Dieser Benutzer ist bereits best\u00E4tigt
+error.-48=Dieser Benutzer Kontakt Hash ist ung\u00FCltig
 error.-49=Dierse Kontakt existiert nicht
 error.-5=Kein Benutzer gefunden
-error.-50=Ihr Einladecode ist nicht gültig. Der Code ist nur gültig während der angegebenen Datums und Zeit\:
+error.-50=Ihr Einladecode ist nicht g\u00FCltig. Der Code ist nur g\u00FCltig w\u00E4hrend der angegebenen Datums und Zeit\:
 error.-51=Bitte geben Sie ein Passwort ein
-error.-52=Sie benötigen ein Konto mit Benutzer, Moderator oder Aministrator Rechten
+error.-52=Sie ben\u00F6tigen ein Konto mit Benutzer, Moderator oder Aministrator Rechten
 error.-53=Bitte geben Sie eine Emailadresse ein
 error.-54=Sie haben zuwenig Rechte um Ihnen oder anderen exklusives Audio zuzuweisen. Bitte beantragen Sie die entsprechenden Rechte vom Moderator.
 error.-55=Ping erfolglos, der Server konnte nicht gefunden werden
 error.-56=Ping erfolglos, es wurden mehrere Server gefunden
-error.-6=Die eingegeben Passwörter stimmen nicht überein
-error.-7=Passwort oder der Benutzername zu kurz, die minimale Länge beträgt\:
-error.-8=Das Passwort ist aktiviert. Sie können Sich nun anmelden.
-error.-9=Es wurde keine Emailadresse gefunden. Stellen Sie sicher, dass Sie die selbe Emailadresse verwenden die mit Ihrem Konto verknüpft ist. 
+error.-6=Die eingegeben Passw\u00F6rter stimmen nicht \u00FCberein
+error.-7=Passwort oder der Benutzername zu kurz, die minimale L\u00E4nge betr\u00E4gt\:
+error.-8=Das Passwort ist aktiviert. Sie k\u00F6nnen Sich nun anmelden.
+error.-9=Es wurde keine Emailadresse gefunden. Stellen Sie sicher, dass Sie die selbe Emailadresse verwenden die mit Ihrem Konto verkn\u00FCpft ist. 
 error.notAvailable=Der Server ist nicht verf\u00FCgbar,
-error.unkown=Unerwartet Fehler
+error.unkown=Unerwarteter Fehler
 error.noroom.short=Der Raum ist noch nicht konfiguiert in "{0}".
 error.noroom.long=Der Raum ist noch nicht konfiguiert in "{0}".
 delete=L\u00F6schen
@@ -69,7 +69,7 @@ delete.ok=Der Raum w\u00FCrde erfolgreich gel\u00F6scht.
 delete.nok=Der Raum konnte nicht gel\u00F6scht werden.
 download=Herunterladen
 edit.room=Raumeinstellungen
-edit.room.desc=Ändern Sie die Konfigurationsparameter des Raumes wie z.B. Raumtyp oder verfügbare Anzahl Plätze. 
+edit.room.desc=Ändern Sie die Konfigurationsparameter des Raumes wie z.B. Raumtyp oder verf\u00FCgbare Anzahl Pl\u00E4tze. 
 kickout=Sitzung beenden
 kickout.ok=Der Benutzer wurde erfolgreich entfernt.
 kickout.nok=Der Benutzer konnte nicht entfernt werden.
@@ -84,15 +84,15 @@ recording.remove=M\u00F6chten Sie wirklich die Aufzeichnung "{0}" l\u00F6schen?
 recordings=Aufzeichnungen
 recordings.empty=Dieser Raum hat noch keine Aufzeichnung
 rooms.title=R\u00E4ume
-room.closed.explanation=Der Raum wurde vom Betreuer dieser Sitzung temporär geschlossen. Bitte versuchen Sie es später noch einmal oder wenden Sie sich an Ihren Betreuer. 
+room.closed.explanation=Der Raum wurde vom Betreuer dieser Sitzung tempor\u00E4r geschlossen. Bitte versuchen Sie es sp\u00E4ter noch einmal oder wenden Sie sich an Ihren Betreuer. 
 room.comment=Beschreibung
-room.comment.desc=In der Beschreibung können Sie die Inhalte der Sitzung und das Zielpublikum beschreiben. 
+room.comment.desc=In der Beschreibung k\u00F6nnen Sie die Inhalte der Sitzung und das Zielpublikum beschreiben. 
 room.members=Teilnehmerverwaltung
-room.members.desc=Anzeige aller Benutzer die sich aktuell im Raum befinden. Wählen sie den Link "$\:kickout" um die Sitzung für einen bestimmten Benutzer sofort zu beenden. 
+room.members.desc=Anzeige aller Benutzer die sich aktuell im Raum befinden. W\u00E4hlen sie den Link "$\:kickout" um die Sitzung f\u00FCr einen bestimmten Benutzer sofort zu beenden. 
 room.name=Raumname
 room.name.desc=Der Name des Sitzungszimmer wie es in dem Raum angezeigt werden soll
 room.type=Typ
-room.type.desc=Art der Sitzung. Dies beeinflusst die zur Verfügung stehenden Werkzeuge und Moderationsrechte in dem Sitzungszimmer. Konferenzen sind für eher kleinere Benutzerzahlen gedacht bei denen alle Teilnehmer gleichberechtigt mit Videosignal auftreten und alle Werkzeuge bedienen können. Ein Webinar auf der anderen Seite entspricht einer Frontalvorlesung mit einem Vortragenden mit Videosignal und vielen Zuhörern. Ein Interview ist eine Sitzung bei der eine Person interviewt und das Gespräch aufgezeichnet wird. 
+room.type.desc=Art der Sitzung. Dies beeinflusst die zur Verf\u00FCgung stehenden Werkzeuge und Moderationsrechte in dem Sitzungszimmer. Konferenzen sind f\u00FCr eher kleinere Benutzerzahlen gedacht bei denen alle Teilnehmer gleichberechtigt mit Videosignal auftreten und alle Werkzeuge bedienen k\u00F6nnen. Ein Webinar auf der anderen Seite entspricht einer Frontalvorlesung mit einem Vortragenden mit Videosignal und vielen Zuh\u00F6rern. Ein Interview ist eine Sitzung bei der eine Person interviewt und das Gespr\u00E4ch aufgezeichnet wird. 
 room.type.conference=Conference (1 - 25 Benutzer)
 room.type.audience=Audience
 room.type.restricted=Webinar (1 - 150 Benutzer)
@@ -100,24 +100,24 @@ room.type.interview=Interview (1:1 meeting with recording)
 room.moderation.mode=Moderation
 room.moderation.yes=Moderator notwendig
 room.moderation.no=Ohne Moderation
-room.moderation.mode.desc=Falls in der Administration freigeschaltet kann mit dieser Option die Anwesenheit eines Moderators erzwungen werden. Nicht-Moderatoren können in dem Raum keine Aktionen durchführen bis ein Moderator den Raum betritt. Als Moderatoren gelten in Kursen die Kursautoren sowie die Betreuer des Kurses, bei Gruppen sind dies die Gruppenbetreuer.
-room.size=Sitzplätze
-room.size.desc=Die Anzahl der Sitzplätze limitiert die verfügbaren Plätze des Sitzungsraumes. Sind alle Plätze belegt können keine neuen Benutzer zu der Sitzung hinzustossen.
+room.moderation.mode.desc=Falls in der Administration freigeschaltet kann mit dieser Option die Anwesenheit eines Moderators erzwungen werden. Nicht-Moderatoren k\u00F6nnen in dem Raum keine Aktionen durchf\u00FChren bis ein Moderator den Raum betritt. Als Moderatoren gelten in Kursen die Kursautoren sowie die Betreuer des Kurses, bei Gruppen sind dies die Gruppenbetreuer.
+room.size=Sitzpl\u00E4tze
+room.size.desc=Die Anzahl der Sitzpl\u00E4tze limitiert die verf\u00FCgbaren Pl\u00E4tze des Sitzungsraumes. Sind alle Pl\u00E4tze belegt k\u00F6nnen keine neuen Benutzer zu der Sitzung hinzustossen.
 room.recording=Aufzeichnung
 room.recording.enabled=erlauben
-room.recording.desc=Mit dieser Option können Sie die Aufzeichnung der Sitzung als Film erlauben. Nach der Sitzung wird der Film automatisch konvertiert und bereitgestellt.
+room.recording.desc=Mit dieser Option k\u00F6nnen Sie die Aufzeichnung der Sitzung als Film erlauben. Nach der Sitzung wird der Film automatisch konvertiert und bereitgestellt.
 room.resource=Ressourcen
 room.numOfUsers=# Teilnehmer
 room.infos=Detailinformationen
 room.recording=Aufzeichnung
-room.actions=Schaltfläche
+room.actions=Schaltfl\u00E4che
 room.actions.desc=Beschreibung
 start.room=Sitzungsraum betreten
 start.room.guest=Sitzungsraum als Gast betreten
-start.hint=Wählen Sie die Schaltfläche "$\:start.room" um an der Sitzung teilzunehmen. Falls vorhanden können Sie die Aufzeichnungen von früheren Sitzungen ansehen. Wählen sie hierzu die Schaltfläche "$\:recordings"
-open.room=Raum öffnen
-open.room.desc=Der Raum kann temporär geschlossen und wieder geöffnet werden. Diese Aktion löscht keine Daten im Raum und kann beliebig oft wiederholt werden. Dies ist z.B. sinnvoll um den Raum vorzubereiten und dann zu schliessen um ihn kurz vor Verwendung wieder zu öffnen. 
-close.room=Raum temporär schliessen
+start.hint=W\u00E4hlen Sie die Schaltfl\u00E4che "$\:start.room" um an der Sitzung teilzunehmen. Falls vorhanden k\u00F6nnen Sie die Aufzeichnungen von fr\u00FCheren Sitzungen ansehen. W\u00E4hlen sie hierzu die Schaltfl\u00E4che "$\:recordings"
+open.room=Raum \u00F6ffnen
+open.room.desc=Der Raum kann tempor\u00E4r geschlossen und wieder ge\u00F6ffnet werden. Diese Aktion l\u00F6scht keine Daten im Raum und kann beliebig oft wiederholt werden. Dies ist z.B. sinnvoll um den Raum vorzubereiten und dann zu schliessen um ihn kurz vor Verwendung wieder zu \u00F6ffnen. 
+close.room=Raum tempor\u00E4r schliessen
 room.raw.title=Detailinformationen
 guest.room=Teilnehmer Informationen
 first.name=Vorname
@@ -135,25 +135,28 @@ administration.title=Administration
 
 help.hover.openmeetings=Hilfe zur Verwendung und Konfiguration eines Apache OpenMeetings Servers
 chelp.module.title=Apache OpenMeetings: Konfiguration des OpenMeetings Servers
-chelp.openmeetings.intro=OpenMeetings ist virtuelles Klassenzimmer und eine Kommunikationslösung zur unterstützung synchroner Konferenzen und Sitzungen. OpenMeetings ist eine Open Source Software und wird kostenlos unter der Apache 2.0 Open Source Lizenz vertrieben. Die Hauptfunktionen sind die Audio- und Videoübertragung, Meetingaufzeichnung, Chat, Desktop-Sharing, File-Sharing, Whiteboard sowie Umfragen. 
+chelp.openmeetings.intro=OpenMeetings ist virtuelles Klassenzimmer und eine Kommunikationsl\u00F6sung zur unterst\u00FCtzung synchroner Konferenzen und Sitzungen. OpenMeetings ist eine Open Source Software und wird kostenlos unter der Apache 2.0 Open Source Lizenz vertrieben. Die Hauptfunktionen sind die Audio- und Video\u00FCbertragung, Meetingaufzeichnung, Chat, Desktop-Sharing, File-Sharing, Whiteboard sowie Umfragen. 
 chelp.openmeetings.url=Weitere Informationen zu Apache OpenMeetings finden Sie unter der URL 
-chelp.openmeetings.module=In der OpenOLAT Systemadministraton können Sie das OpenMeetings module konfigurieren und die Funktionalität freischalten. Wenn das Modul eingeschaltet und die Verbindungsparameter zum OpenMeetingssserver korrekt sind können in OpenOLAT an den folgenden Stellen OpenMeetings Räume erzeugt und genutzt werden: 
+chelp.openmeetings.module=In der OpenOLAT Systemadministraton k\u00F6nnen Sie das OpenMeetings module konfigurieren und die Funktionalit\u00E4t freischalten. Wenn das Modul eingeschaltet und die Verbindungsparameter zum OpenMeetingssserver korrekt sind k\u00F6nnen in OpenOLAT an den folgenden Stellen OpenMeetings R\u00E4ume erzeugt und genutzt werden: 
 chelp.openmeetings.course=In Kursen mit dem Kursbaustein OpenMeetings. Jeder Kursbaustein erzeugt einen entsprechenden Raum auf dem OpenMeetings Server.
-chelp.openmeetings.group=In Gruppen mit dem Gruppenwerkzeut OpenMeetings. Jede Gruppe hat ihren eigenen OpenMeetings Raum zur Verfügung. 
-chelp.openmeetings.config=Um das OpenMeetings Modul zu konfigurieren geben Sie in dem Administrationsmodul die Adresse des OpenMeetings Server ein und fügen einen gültigen Benutzername und Passwort hinzu den Sie zuvor auf dem OpenMeetings Server erstellt haben. Der Benutzer muss Adminstrationsrechte besitzen. Speichern Sie die Daten anschliessen und drücken Sie die Schaltfläche "$:check" um die Verbindungsdaten zu überprüfen. 
-chelp.openmeetings.ext=Das Feld "$:openolat.externaltype" wird automatisch erzeugt und kann nicht verändert werden. Es wird für die Zuordnung von Räumen zum OpenOLAT System von OpenMeetings verwendet. 
+chelp.openmeetings.group=In Gruppen mit dem Gruppenwerkzeut OpenMeetings. Jede Gruppe hat ihren eigenen OpenMeetings Raum zur Verf\u00FCgung. 
+chelp.openmeetings.config=Um das OpenMeetings Modul zu konfigurieren geben Sie in dem Administrationsmodul die Adresse des OpenMeetings Server ein und f\u00FCgen einen g\u00FCltigen Benutzername und Passwort hinzu den Sie zuvor auf dem OpenMeetings Server erstellt haben. Der Benutzer muss Adminstrationsrechte besitzen. Speichern Sie die Daten anschliessen und dr\u00FCcken Sie die Schaltfl\u00E4che "$:check" um die Verbindungsdaten zu \u00FCberpr\u00FCfen. 
+chelp.openmeetings.ext=Das Feld "$:openolat.externaltype" wird automatisch erzeugt und kann nicht ver\u00E4ndert werden. Es wird f\u00FCr die Zuordnung von R\u00E4umen zum OpenOLAT System von OpenMeetings verwendet. 
 
 help.hover.openmeetings.room=Hilfe zur Konfiguration eines OpenMeeting Raumes 
 chelp.room.title=Apache OpenMeetings: Konfiguration eines Sitzungsraumes
-chelp.openmeetings.room=Ist das OpenMeetings Module in der Systemadministration konfiguriert und eingeschaltet, so können in OpenOLAT an den folgenden Stellen OpenMeetings Räume erzeugt und genutzt werden: 
-chelp.openmeetings.room.config=Um OpenMeetings Sitzungsräume zu konfigurieren stehen Ihnen folgende Parameter zur Verfügung:
+chelp.openmeetings.room=Ist das OpenMeetings Module in der Systemadministration konfiguriert und eingeschaltet, so k\u00F6nnen in OpenOLAT an den folgenden Stellen OpenMeetings R\u00E4ume erzeugt und genutzt werden: 
+chelp.openmeetings.room.config=Um OpenMeetings Sitzungsr\u00E4ume zu konfigurieren stehen Ihnen folgende Parameter zur Verf\u00FCgung:
 chelp.openmeetings.room.options=Parameter
 chelp.openmeetings.room.values=Werte
 chelp.openmeetings.room.desc=Beschreibung
 chelp.openmeetings.room.text=Text
-chelp.openmeetings.room.create=Haben Sie die Konfigurationen des Raumes angepasst können Sie den Raum speichern. Die Konfiguration kann zu einem späteren Zeitpunkt angepasst werden.
+chelp.openmeetings.room.create=Haben Sie die Konfigurationen des Raumes angepasst k\u00F6nnen Sie den Raum speichern. Die Konfiguration kann zu einem sp\u00E4teren Zeitpunkt angepasst werden.
 
 help.hover.openmeetings.room_admin=Hilfe zur Administration eines OpenMeeting Raumes 
 chelp.room_admin.title=Apache OpenMeetings: Administration eines Sitzungsraumes
-chelp.openmeetings.admin=Wählen sie die folgenden Aktionen um einen bestehenden OpenMeetings Raum zu administrieren:
+chelp.openmeetings.admin=W\u00E4hlen sie die folgenden Aktionen um einen bestehenden OpenMeetings Raum zu administrieren:
 
+room.av.mode=Audio/Video
+room.av.audio=Nur Audio
+room.av.video=Audio und Video
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties
index 64d801242f98f62e77ff1b0caa827181331ee290..2f79715a4331c9d677df391adeb4a9a4be4ccd00 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties
@@ -154,3 +154,7 @@ users=Users
 users.description=The participant list displays a list of users that are currently in the meeting room. You can terminate the meeting session for each user at any time.
 users.empty=The room is still empty
 view=View
+
+room.av.mode=Audio/Video
+room.av.audio=Audio only
+room.av.video=Audio and Video
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties
index e68f0cd54e5120eb1302d4262923943feeff0d00..99909e2198e520f6f8426c0c5d33d4aff5c28fd5 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties
@@ -154,3 +154,7 @@ users=Utilisateur
 users.description=La liste des participants affiche une liste d'utilisateurs pr\u00E9sentement dans la salle de r\u00E9union. Vous pouvez mettre fin \u00E0 la session d'un utilisateur \u00E0 tout moment.
 users.empty=La salle est vide.
 view=Regarder
+
+room.av.mode=Audio/Video
+room.av.audio=Seulement Audio
+room.av.video=Audio et Video
diff --git a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_pt_BR.properties
index 50faf45d7ed6142e319be5cf3f8f6fca7028c57b..b55613fd63d4ea47a2020c30d3771586dc9692e5 100644
--- a/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Thu May 22 16:50:13 CEST 2014
+#Fri Jan 23 22:15:57 CET 2015
 add=+
 add.to.list=Adicionar \u00E0 lista
 applications=Aplica\u00E7\u00F5es
@@ -80,6 +80,7 @@ help.hover.new-collection=Ajuda sobre a cria\u00E7\u00E3o de novas listas
 help.hover.removeitem=Ajuda sobre a remo\u00E7\u00E3o de itens
 help.hover.sharegroup=Ajuda sobre o compartilhamento com grupos
 help.hover.sharepool=Ajuda sobre o compartilhamento com reservat\u00F3rios
+import.excellike=Importa\u00E7\u00E3o Excel via copia & cola
 import.failed=Perguntas n\u00E3o foram importadas.
 import.file=Importar arquivo
 import.item=Importar
@@ -109,7 +110,7 @@ lifecycle.status.unavailable=Indispon\u00EDvel
 lifecycle.version=Vers\u00E3o
 list=Listas
 manage.owners=Autores
-mark=<i class="o_icon o_icon_bookmark_header o_icon-lg" title="Favorito"> </i>s
+mark=<i class\="o_icon o_icon_bookmark_header o_icon-lg" title\="Favorito"> </i>s
 menu.admin=Administra\u00E7\u00E3o
 menu.admin.alt=Administra\u00E7\u00E3o
 menu.admin.levels=N\u00EDvel
@@ -166,7 +167,7 @@ question.stdevDifficulty=Desvio padr\u00E3o
 question.stdevDifficulty.example=$\:question.difficulty.example
 question.type=Tipo
 question.usage=Usado em testes
-quickview=<i class='o_icon o_icon_quickview'> </i>
+quickview=<i class\='o_icon o_icon_quickview'> </i>
 rating=Classifica\u00E7\u00E3o
 remove=-
 rename.collection=Renomear lista
diff --git a/src/main/java/org/olat/modules/scorm/ScormDirectoryHelper.java b/src/main/java/org/olat/modules/scorm/ScormDirectoryHelper.java
index 886785f780b792c1c4808e86dbd5de04ed778a9d..d1f96c466b28210499c836f528a44042d33e0625 100644
--- a/src/main/java/org/olat/modules/scorm/ScormDirectoryHelper.java
+++ b/src/main/java/org/olat/modules/scorm/ScormDirectoryHelper.java
@@ -40,7 +40,11 @@ public class ScormDirectoryHelper {
  */
 	public static VFSContainer getScormRootFolder() {
 		VFSContainer canonicalRoot = new LocalFolderImpl(new File(FolderConfig.getCanonicalRoot()));
-		return (VFSContainer)canonicalRoot.resolve("scorm");
+		VFSContainer scormContainer = (VFSContainer)canonicalRoot.resolve("scorm");
+		if (scormContainer == null) {
+			scormContainer = canonicalRoot.createChildContainer("scorm");
+		}
+		return scormContainer;
 	}
 	
 	/**
diff --git a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties
index 1593c301ca1fcf06acd4b20042fa7cfe520e88ad..64a8963f24ab4f3d7f6d65ea4f79bcf9798d7a74 100644
--- a/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/vitero/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,4 +1,4 @@
-#Wed Jul 30 16:51:09 CEST 2014
+#Fri Jan 23 22:16:37 CET 2015
 admin.menu.title=vitero
 admin.menu.title.alt=Configura\u00E7\u00E3o de servidores vitero
 available.places=Existam {0} lugares dispon\u00EDveis para esta reuni\u00E3o
@@ -29,3 +29,4 @@ chelp.ced-vitero-config.title=$\:help.hover.vitero
 chelp.module.title=Vitero\: Configura\u00E7\u00E3o
 chelp.module1=A fim de ser capaz de usar o sistema Vitero voc\u00EA precisa ter uma licen\u00E7a Vitero e adicionar as informa\u00E7\u00F5es de acesso para a API do servi\u00E7o web Vitero na \u00E1rea de administra\u00E7\u00E3o.
 chelp.module2=Com o "$\:option.olatTimeZone", voc\u00EA pode definir o fuso hor\u00E1rio do seu sistema OLAT. Isso permite a sincroniza\u00E7\u00E3o da agenda de reuni\u00F5es com o sistema Vitero.
+chelp.module3=As informa\u00E7\u00F5es a seguir devem ser obtidos por seu vitero ou administrador OLAT\: ""$\:option.baseurl", "$\:option.adminlogin", "$\:option.adminpassword" e "$\:option.customerId".
diff --git a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_pt_BR.properties
index 99e3a13f77d21f14c0a19cb697fc229f0a3d59cb..7891cfcbe16c9d6e8704b806bb958575926cc7a3 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_pt_BR.properties
@@ -1,6 +1,7 @@
-#Mon Apr 02 17:44:27 CEST 2012
+#Fri Jan 23 22:17:07 CET 2015
 ULLimitExceeded=$org.olat.core.commons.modules.bc\:ULLimitExceeded
 feed.author=Autor
+feed.error=Infelizmente, o "Feed" n\u00E3o pode ser exibido devido a um erro inesperado.
 feed.file.label=Imagem
 feed.form.description=Descri\u00E7\u00E3o
 feed.form.feedurl=Feed URL
diff --git a/src/main/java/org/olat/modules/wiki/WikiMainController.java b/src/main/java/org/olat/modules/wiki/WikiMainController.java
index 5315bd17a985c84d47a98522c2d459525e4ecf5a..3edb4982faa81839e4d73b8e598694fe3331dd6f 100644
--- a/src/main/java/org/olat/modules/wiki/WikiMainController.java
+++ b/src/main/java/org/olat/modules/wiki/WikiMainController.java
@@ -161,7 +161,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 	private StackedPanel mainPanel;
 
 	private Dropdown wikiMenuDropdown, navigationDropdown, breadcrumpDropdown;
-	private GenericTreeNode navigationNode, navMainPageNode, navAZNode, navChangesNode, wikiMenuNode;
+	private GenericTreeNode navMainPageNode, navAZNode, navChangesNode, wikiMenuNode;
 	
 	public static final String ACTION_COMPARE = "compare";
 	public static final String ACTION_SHOW = "view.version";
@@ -391,22 +391,10 @@ public class WikiMainController extends BasicController implements CloneableCont
 		GenericTreeNode rootNode = new GenericTreeNode(root);
 		wikiMenuModel.setRootNode(rootNode);
 
-		//Navigation
-		String navItem = "nav-item-" + resId;
-		navigationNode = new GenericTreeNode(navItem, translate("navigation.navigation"), navItem);
-		rootNode.addChild(navigationNode);
-		
+		//Index
 		String navMainItem = "nav-main-item-" + resId;
 		navMainPageNode = new GenericTreeNode(navMainItem, translate("navigation.mainpage"), navMainItem);
-		navigationNode.addChild(navMainPageNode);
-		
-		String navAZItem = "nav-az-item-" + resId;
-		navAZNode = new GenericTreeNode(navAZItem, translate("navigation.a-z"), navAZItem);
-		navigationNode.addChild(navAZNode);
-		
-		String navChangesItem = "nav-changes-item-" + resId;
-		navChangesNode = new GenericTreeNode(navChangesItem, translate("navigation.changes"), navChangesItem);
-		navigationNode.addChild(navChangesNode);
+		rootNode.addChild(navMainPageNode);
 		
 		//Wiki-Menu
 		String wikiMenuTitle = translate("navigation.menu");
@@ -414,6 +402,14 @@ public class WikiMainController extends BasicController implements CloneableCont
 		wikiMenuNode = new GenericTreeNode(wikiMenuItem, wikiMenuTitle, wikiMenuItem);
 		rootNode.addChild(wikiMenuNode);
 		
+		String navAZItem = "nav-az-item-" + resId;
+		navAZNode = new GenericTreeNode(navAZItem, translate("navigation.a-z"), navAZItem);
+		rootNode.addChild(navAZNode);
+		
+		String navChangesItem = "nav-changes-item-" + resId;
+		navChangesNode = new GenericTreeNode(navChangesItem, translate("navigation.changes"), navChangesItem);
+		rootNode.addChild(navChangesNode);
+
 		updateWikiMenu(wiki);
 		
 		navigationDropdown.setVisible(false);
@@ -484,6 +480,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 		}
 	}
 
+	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
 	
 		String command = event.getCommand();
@@ -830,17 +827,19 @@ public class WikiMainController extends BasicController implements CloneableCont
 				openLastChangesPage(ureq, wiki);
 			} else if(navMainPageNode.getIdent().equals(nodeId)) {
 				page = openIndexPage(ureq, wiki);
-			} else if(navigationNode.getIdent().equals(nodeId)) {
-				page = openIndexPage(ureq, wiki);
 			} else if(wikiMenuNode.getIdent().equals(nodeId)) {
-				openPage(ureq, WikiPage.WIKI_MENU_PAGE, wiki);
+				page = openPage(ureq, WikiPage.WIKI_MENU_PAGE, wiki);
 			} else {
 				TreeNode node = wikiMenuModel.getNodeById(nodeId);
 				if(node != null && node.getUserObject() instanceof String) {
 					String link = (String)node.getUserObject();
-					openPage(ureq, link, wiki);
+					page = openPage(ureq, link, wiki);
 				}
 			}
+			
+			if(page != null) {
+				this.pageId = page.getPageId();
+			}
 		} else if (source == versioningTableCtr) {
 			/*************************************************************************
 			 * history table events
@@ -1145,7 +1144,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 		} else {
 			clearPortfolioLink();
 		}
-		//fxdiff BAKS-7, FXOLAT-160 Resume function
+		
 		OLATResourceable pageRes = OresHelper.createOLATResourceableInstanceWithoutCheck("path=" + page.getPageName(), 0l);
 		addToHistory(ureq, pageRes, null);
 	}
diff --git a/src/main/java/org/olat/modules/wiki/_content/edit.html b/src/main/java/org/olat/modules/wiki/_content/edit.html
index de1531536a5d88a0191f3773575949528ef72fd4..6459be4813570be5482eb10a3312192cb1765e33 100644
--- a/src/main/java/org/olat/modules/wiki/_content/edit.html
+++ b/src/main/java/org/olat/modules/wiki/_content/edit.html
@@ -40,22 +40,32 @@
 		</div>
 		#if($linkList.size() > 0)	
 		<div class="btn-group">
-  			<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">$r.translateInAttribute("link.insert") <span class="caret"></span></button>
-  			<ul class="dropdown-menu" role="menu">
+  			<button id="wiki-button-link-insert" type="button" class="btn btn-default dropdown-toggle">$r.translateInAttribute("link.insert") <span class="caret"></span></button>
+  			<div id="wiki-list-link-insert" class="hide"><ul class="o_dropdown list-unstyled">
   				#foreach($link in $linkList)
   					<li><a href="#" onclick="javascript:insertTags('[[',']]','$link')">$link</a></li>
 				#end
-  			</ul>
+  			</ul></div>
+  			<script type='text/javascript'>
+			/* <![CDATA[ */
+			jQuery(function() { o_popover('wiki-button-link-insert','wiki-list-link-insert'); });
+			/* ]]> */
+			</script>
 		</div>
 		#end
 		#if($fileList.size() > 0)
 		<div class="btn-group">
-			<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">$r.translateInAttribute("media.insert") <span class="caret"></span></button>
-  			<ul class="dropdown-menu" role="menu">
+			<button id="wiki-button-media-insert" type="button" class="btn btn-default dropdown-toggle">$r.translateInAttribute("media.insert") <span class="caret"></span></button>
+  			<div id="wiki-list-media-insert" class="hide"><ul class="o_dropdown list-unstyled" role="menu">
   				#foreach($file in $fileList)
   					<li><a href="#" onclick="javascript:insertMediaTag('$r.escapeHtml($file.getName())')">$r.escapeHtml($file.getName())</a></li>
 				#end
-  			</ul>
+  			</ul></div>
+  			<script type='text/javascript'>
+			/* <![CDATA[ */
+			jQuery(function() { o_popover('wiki-button-media-insert','wiki-list-media-insert'); });
+			/* ]]> */
+			</script>
 		</div>
 		#end
 	</div>
diff --git a/src/main/java/org/olat/repository/LeavingStatusList.java b/src/main/java/org/olat/repository/LeavingStatusList.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1fae3326f15729b732901e543feeb8549d57b02
--- /dev/null
+++ b/src/main/java/org/olat/repository/LeavingStatusList.java
@@ -0,0 +1,58 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository;
+
+/**
+ * 
+ * Initial date: 28.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class LeavingStatusList {
+	
+	private boolean warningManagedCourse;
+	private boolean warningManagedGroup;
+	private boolean warningGroupWithMultipleResources;
+	
+	public boolean isWarningManagedCourse() {
+		return warningManagedCourse;
+	}
+	
+	public void setWarningManagedCourse(boolean warningManagedCourse) {
+		this.warningManagedCourse = warningManagedCourse;
+	}
+	
+	public boolean isWarningManagedGroup() {
+		return warningManagedGroup;
+	}
+	
+	public void setWarningManagedGroup(boolean warningManagedGroup) {
+		this.warningManagedGroup = warningManagedGroup;
+	}
+	
+	public boolean isWarningGroupWithMultipleResources() {
+		return warningGroupWithMultipleResources;
+	}
+	
+	public void setWarningGroupWithMultipleResources(
+			boolean warningGroupWithMultipleResources) {
+		this.warningGroupWithMultipleResources = warningGroupWithMultipleResources;
+	}
+}
diff --git a/src/main/java/org/olat/repository/RepositoryEntry.java b/src/main/java/org/olat/repository/RepositoryEntry.java
index b4689ba12a7da851e5cdbb9fdf5e87713416cc6b..26c6549909ff9c76e21f70ae6f0a2c921e86c9ad 100644
--- a/src/main/java/org/olat/repository/RepositoryEntry.java
+++ b/src/main/java/org/olat/repository/RepositoryEntry.java
@@ -51,6 +51,7 @@ import org.olat.core.id.Persistable;
 import org.olat.core.logging.AssertException;
 import org.olat.core.util.CodeHelper;
 import org.olat.core.util.Formatter;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.repository.model.RepositoryEntryLifecycle;
 import org.olat.repository.model.RepositoryEntryStatistics;
@@ -164,6 +165,8 @@ public class RepositoryEntry implements CreateInfo, Persistable , RepositoryEntr
 	private boolean membersOnly;
 	@Column(name="statuscode", nullable=false, insertable=true, updatable=true)
 	private int statusCode;
+	@Column(name="allowToLeave", nullable=true, insertable=true, updatable=true)
+	private String allowToLeave;
 
 	
 	/**
@@ -425,7 +428,35 @@ public class RepositoryEntry implements CreateInfo, Persistable , RepositoryEntr
 	public void setMembersOnly(boolean membersOnly) {
 		this.membersOnly = membersOnly;
 	}
+
+	public String getAllowToLeave() {
+		return allowToLeave;
+	}
+
+	public void setAllowToLeave(String allowToLeave) {
+		this.allowToLeave = allowToLeave;
+	}
 	
+	public RepositoryEntryAllowToLeaveOptions getAllowToLeaveOption() {
+		RepositoryEntryAllowToLeaveOptions setting;
+		if(StringHelper.containsNonWhitespace(allowToLeave)) {
+			setting = RepositoryEntryAllowToLeaveOptions.valueOf(allowToLeave);
+		} else if(RepositoryEntryManagedFlag.isManaged(this, RepositoryEntryManagedFlag.membersmanagement)) {
+			setting = RepositoryEntryAllowToLeaveOptions.never;
+		} else {
+			setting = RepositoryEntryAllowToLeaveOptions.atAnyTime;
+		}
+		return setting;
+	}
+
+	public void setAllowToLeaveOption(RepositoryEntryAllowToLeaveOptions setting) {
+		if(setting == null) {
+			allowToLeave = null;
+		} else {
+			allowToLeave = setting.name();
+		}
+	}
+
 	/**
 	 * @return Returns the displayname.
 	 */
diff --git a/src/main/java/org/olat/repository/RepositoryEntryAllowToLeaveOptions.java b/src/main/java/org/olat/repository/RepositoryEntryAllowToLeaveOptions.java
new file mode 100644
index 0000000000000000000000000000000000000000..c81df1047260d4e76b2b58d6f8d54ac73569276b
--- /dev/null
+++ b/src/main/java/org/olat/repository/RepositoryEntryAllowToLeaveOptions.java
@@ -0,0 +1,34 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository;
+
+/**
+ * 
+ * Initial date: 28.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public enum RepositoryEntryAllowToLeaveOptions {
+	
+	atAnyTime,
+	afterEndDate,
+	never
+
+}
diff --git a/src/main/java/org/olat/repository/RepositoryEntryImportExport.java b/src/main/java/org/olat/repository/RepositoryEntryImportExport.java
index f5200bcd9041210259755fa2a64c6746ea40d7c6..1adfc80378930622f21be8a3fb30ee388de415cc 100644
--- a/src/main/java/org/olat/repository/RepositoryEntryImportExport.java
+++ b/src/main/java/org/olat/repository/RepositoryEntryImportExport.java
@@ -35,6 +35,8 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardOpenOption;
 
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.io.IOUtils;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.media.MediaResource;
@@ -43,6 +45,7 @@ import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.io.HttpServletResponseOutputStream;
 import org.olat.core.util.vfs.LocalFileImpl;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSLeaf;
@@ -161,14 +164,22 @@ public class RepositoryEntryImportExport {
 		// export resource
 		RepositoryHandler rh = RepositoryHandlerFactory.getInstance().getRepositoryHandler(re);
 		MediaResource mr = rh.getAsMediaResource(re.getOlatResource(), false);
+		
 		FileOutputStream fOut = null;
 		try {
 			fOut = new FileOutputStream(new File(baseDirectory, CONTENT_FILE));
-			IOUtils.copy(mr.getInputStream(), fOut);
+			InputStream in = mr.getInputStream();
+			if(in == null) {
+				HttpServletResponse hres = new HttpServletResponseOutputStream(fOut);
+				mr.prepare(hres);	
+			} else {
+				IOUtils.copy(mr.getInputStream(), fOut);
+			}
+			fOut.flush();
 		} catch (IOException fnfe) {
 			return false;
 		} finally {
-			FileUtils.closeSafely(fOut);
+			IOUtils.closeQuietly(fOut);
 			mr.release();
 		}
 		return true;
diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java
index ec33076b3d5ad67157c217f24d93dc3ce6f3ebfa..8cfadd46551881a590b757705adaa04669b8b77b 100644
--- a/src/main/java/org/olat/repository/RepositoryManager.java
+++ b/src/main/java/org/olat/repository/RepositoryManager.java
@@ -54,6 +54,7 @@ import org.olat.core.commons.persistence.PersistenceHelper;
 import org.olat.core.commons.services.image.ImageService;
 import org.olat.core.commons.services.image.Size;
 import org.olat.core.commons.services.mark.impl.MarkImpl;
+import org.olat.core.commons.services.notifications.NotificationsManager;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -66,7 +67,11 @@ import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
 import org.olat.core.manager.BasicManager;
 import org.olat.core.util.FileUtils;
 import org.olat.core.util.StringHelper;
+import org.olat.core.util.coordinate.CoordinatorManager;
+import org.olat.core.util.event.EventBus;
+import org.olat.core.util.event.MultiUserEvent;
 import org.olat.core.util.mail.MailPackage;
+import org.olat.core.util.resource.OresHelper;
 import org.olat.core.util.vfs.LocalFolderImpl;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
@@ -77,6 +82,7 @@ import org.olat.group.GroupLoggingAction;
 import org.olat.repository.manager.RepositoryEntryRelationDAO;
 import org.olat.repository.model.RepositoryEntryLifecycle;
 import org.olat.repository.model.RepositoryEntryMembership;
+import org.olat.repository.model.RepositoryEntryMembershipModifiedEvent;
 import org.olat.repository.model.RepositoryEntryPermissionChangeEvent;
 import org.olat.repository.model.RepositoryEntrySecurity;
 import org.olat.repository.model.RepositoryEntryShortImpl;
@@ -123,6 +129,8 @@ public class RepositoryManager extends BasicManager {
 	private ACReservationDAO reservationDao;
 	@Autowired
 	private LifeFullIndexer lifeIndexer;
+	@Autowired
+	private NotificationsManager notificationsManager;
 
 	/**
 	 * @return Singleton.
@@ -666,6 +674,19 @@ public class RepositoryManager extends BasicManager {
 		return updatedRe;
 	}
 	
+	public RepositoryEntry setLeaveSetting(final RepositoryEntry re,
+			RepositoryEntryAllowToLeaveOptions setting) {
+		RepositoryEntry reloadedRe = loadForUpdate(re);
+		reloadedRe.setAllowToLeaveOption(setting);
+		RepositoryEntry updatedRe = dbInstance.getCurrentEntityManager().merge(reloadedRe);
+		updatedRe.getStatistics().getLaunchCounter();
+		if(updatedRe.getLifecycle() != null) {
+			updatedRe.getLifecycle().getKey();
+		}
+		dbInstance.commit();
+		return updatedRe;
+	} 
+	
 	/**
 	 * This method doesn't update empty and null values! ( Reserved to unit tests
 	 * and REST API)
@@ -698,6 +719,9 @@ public class RepositoryManager extends BasicManager {
 		}
 		if(StringHelper.containsNonWhitespace(managedFlags)) {
 			reloadedRe.setManagedFlagsString(managedFlags);
+			if(RepositoryEntryManagedFlag.isManaged(reloadedRe, RepositoryEntryManagedFlag.membersmanagement)) {
+				reloadedRe.setAllowToLeaveOption(RepositoryEntryAllowToLeaveOptions.never);
+			}
 		}
 		
 		RepositoryEntryLifecycle cycleToDelete = null;
@@ -805,21 +829,6 @@ public class RepositoryManager extends BasicManager {
 		     .append(" where v.access > 0 and (")
 		     .append("   membership.identity.key=:editorKey and membership.role='").append(GroupRoles.owner.name()).append("'")
 		     .append(" )");
-		/*
-		 //TODO groups match policy
-		     .append(" and ((")
-		     .append("  ownerGroup in (select ownerSgmsi.securityGroup from ").append(SecurityGroupMembershipImpl.class.getName()).append(" ownerSgmsi where ownerSgmsi.identity.key=:editorKey)")
-		     .append(" ) or (")
-		     .append("  reResource in (select groupRelation.resource from ").append(BGResourceRelation.class.getName()).append(" as groupRelation, ")
-		     .append("    ").append(SecurityGroupMembershipImpl.class.getName()).append(" as sgmsi,")
-		     .append("    ").append(PolicyImpl.class.getName()).append(" as poi,")
-		     .append("    ").append(OLATResourceImpl.class.getName()).append(" as ori")
-		     .append("     where sgmsi.identity.key = :editorKey and sgmsi.securityGroup = poi.securityGroup")
-		     .append("     and poi.permission = 'bgr.editor' and poi.olatResource = ori")
-		     .append("     and groupRelation.resource=ori")
-		     .append("  )")
-		     .append(" ))");
-		*/
 		
 		if(resourceTypes != null && resourceTypes.length > 0) {
 			query.append(" and reResource.resName in (:resnames)");
@@ -1184,7 +1193,7 @@ public class RepositoryManager extends BasicManager {
 	 * @param roles
 	 * @return
 	 */
-	public static boolean appendAccessSubSelects(StringBuilder sb, Identity identity, Roles roles) {
+	public static boolean appendAccessSubSelects(StringBuilder sb, IdentityRef identity, Roles roles) {
 		sb.append("(v.access >= ");
 		if (roles.isAuthor()) {
 			sb.append(RepositoryEntry.ACC_OWNERS_AUTHORS);
@@ -1414,6 +1423,26 @@ public class RepositoryManager extends BasicManager {
 		return dbQuery;
 	}
 	
+	/**
+	 * Leave the course, commit to the database and send events
+	 * 
+	 * @param identity
+	 * @param re
+	 * @param status
+	 * @param mailing
+	 */
+	public void leave(Identity identity, RepositoryEntry re, LeavingStatusList status, MailPackage mailing) {
+		if(RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.membersmanagement)) {
+			status.setWarningManagedCourse(true);
+		} else {
+			List<RepositoryEntryMembershipModifiedEvent> deferredEvents = new ArrayList<>();
+			removeParticipant(identity, identity, re, mailing, true);
+			deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(identity, re));
+			dbInstance.commit();
+			sendDeferredEvents(deferredEvents, re);
+		}
+	}
+	
 	/**
 	 * add provided list of identities as owners to the repo entry. silently ignore
 	 * if some identities were already owners before.
@@ -1452,20 +1481,39 @@ public class RepositoryManager extends BasicManager {
 	 * @param logger
 	 */
 	public void removeOwners(Identity ureqIdentity, List<Identity> removeIdentities, RepositoryEntry re){
-    for (Identity identity : removeIdentities) {
-    	repositoryEntryRelationDao.removeRole(identity, re, GroupRoles.owner.name());
+		List<RepositoryEntryMembershipModifiedEvent> deferredEvents = new ArrayList<>();
+		
+		for (Identity identity : removeIdentities) {
+			removeOwner(ureqIdentity, identity, re);
+			deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(identity, re));
+		}
+		
+		dbInstance.commit();
+		sendDeferredEvents(deferredEvents, re);
+	}
+	
+	private void sendDeferredEvents(List<? extends MultiUserEvent> events, OLATResourceable ores) {
+		EventBus eventBus = CoordinatorManager.getInstance().getCoordinator().getEventBus();
+		for(MultiUserEvent event:events) {
+			eventBus.fireEventToListenersOf(event, ores);
+			eventBus.fireEventToListenersOf(event, OresHelper.lookupType(RepositoryEntry.class));
+		}
+	}
+	
+	private void removeOwner(Identity ureqIdentity, Identity identity, RepositoryEntry re) {
+		repositoryEntryRelationDao.removeRole(identity, re, GroupRoles.owner.name());
 
-			ActionType actionType = ThreadLocalUserActivityLogger.getStickyActionType();
-			ThreadLocalUserActivityLogger.setStickyActionType(ActionType.admin);
-			try{
-				ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OWNER_REMOVED, getClass(),
-						LoggingResourceable.wrap(re, OlatResourceableType.genRepoEntry), LoggingResourceable.wrap(identity));
-			} finally {
-				ThreadLocalUserActivityLogger.setStickyActionType(actionType);
-			}
-			logAudit("Identity(.key):" + ureqIdentity.getKey() + " removed identity '" + identity.getName()
-					+ "' from repositoryentry with key " + re.getKey());
-    }
+
+		ActionType actionType = ThreadLocalUserActivityLogger.getStickyActionType();
+		ThreadLocalUserActivityLogger.setStickyActionType(ActionType.admin);
+		try{
+			ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OWNER_REMOVED, getClass(),
+					LoggingResourceable.wrap(re, OlatResourceableType.genRepoEntry), LoggingResourceable.wrap(identity));
+		} finally {
+			ThreadLocalUserActivityLogger.setStickyActionType(actionType);
+		}
+		logAudit("Identity(.key):" + ureqIdentity.getKey() + " removed identity '" + identity.getName()
+				+ "' from repositoryentry with key " + re.getKey());
 	}
 	
 	public void acceptPendingParticipation(Identity ureqIdentity, Identity identityToAdd, OLATResource resource, ResourceReservation reservation) {
@@ -1558,21 +1606,29 @@ public class RepositoryManager extends BasicManager {
 	 * @param re
 	 * @param logger
 	 */
-	public void removeTutors(Identity ureqIdentity, List<Identity> removeIdentities, RepositoryEntry re){
+	public void removeTutors(Identity ureqIdentity, List<Identity> removeIdentities, RepositoryEntry re) {
+		List<RepositoryEntryMembershipModifiedEvent> deferredEvents = new ArrayList<>();
 		for (Identity identity : removeIdentities) {
-			repositoryEntryRelationDao.removeRole(identity, re, GroupRoles.coach.name());
-    	
-			ActionType actionType = ThreadLocalUserActivityLogger.getStickyActionType();
-			ThreadLocalUserActivityLogger.setStickyActionType(ActionType.admin);
-			try{
-				ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OWNER_REMOVED, getClass(),
-						LoggingResourceable.wrap(re, OlatResourceableType.genRepoEntry), LoggingResourceable.wrap(identity));
-			} finally {
-				ThreadLocalUserActivityLogger.setStickyActionType(actionType);
-			}
-			logAudit("Identity(.key):" + ureqIdentity.getKey() + " removed identity '" + identity.getName()
-					+ "' from repositoryentry with key " + re.getKey());
+			removeTutor(ureqIdentity, identity, re);
+			deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(identity, re));
+		}
+		dbInstance.commit();
+		sendDeferredEvents(deferredEvents, re);
+	}
+	
+	private void removeTutor(Identity ureqIdentity, Identity identity, RepositoryEntry re) {
+		repositoryEntryRelationDao.removeRole(identity, re, GroupRoles.coach.name());
+		
+		ActionType actionType = ThreadLocalUserActivityLogger.getStickyActionType();
+		ThreadLocalUserActivityLogger.setStickyActionType(ActionType.admin);
+		try{
+			ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OWNER_REMOVED, getClass(),
+					LoggingResourceable.wrap(re, OlatResourceableType.genRepoEntry), LoggingResourceable.wrap(identity));
+		} finally {
+			ThreadLocalUserActivityLogger.setStickyActionType(actionType);
 		}
+		logAudit("Identity(.key):" + ureqIdentity.getKey() + " removed identity '" + identity.getName()
+				+ "' from repositoryentry with key " + re.getKey());
 	}
 	
 	/**
@@ -1649,24 +1705,32 @@ public class RepositoryManager extends BasicManager {
 	 * @param logger
 	 */
 	public void removeParticipants(Identity ureqIdentity, List<Identity> removeIdentities, RepositoryEntry re, MailPackage mailing, boolean sendMail) {
+		List<RepositoryEntryMembershipModifiedEvent> deferredEvents = new ArrayList<>();
 		for (Identity identity : removeIdentities) {
-			repositoryEntryRelationDao.removeRole(identity, re, GroupRoles.participant.name());
-
-			if(sendMail) {
-				RepositoryMailing.sendEmail(ureqIdentity, identity, re, RepositoryMailing.Type.removeParticipant, mailing);
-			}
+			removeParticipant(ureqIdentity, identity, re, mailing, sendMail);
+			deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(identity, re));
+		}
+		dbInstance.commit();
+		sendDeferredEvents(deferredEvents, re);
+	}
+	
+	private void removeParticipant(Identity ureqIdentity, Identity identity, RepositoryEntry re, MailPackage mailing, boolean sendMail) {
+		repositoryEntryRelationDao.removeRole(identity, re, GroupRoles.participant.name());
+		
+		if(sendMail) {
+			RepositoryMailing.sendEmail(ureqIdentity, identity, re, RepositoryMailing.Type.removeParticipant, mailing);
+		}
 
-			ActionType actionType = ThreadLocalUserActivityLogger.getStickyActionType();
-			ThreadLocalUserActivityLogger.setStickyActionType(ActionType.admin);
-			try{
-				ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OWNER_REMOVED, getClass(),
-						LoggingResourceable.wrap(re, OlatResourceableType.genRepoEntry), LoggingResourceable.wrap(identity));
-			} finally {
-				ThreadLocalUserActivityLogger.setStickyActionType(actionType);
-			}
-			logAudit("Identity(.key):" + ureqIdentity.getKey() + " removed identity '" + identity.getName()
-					+ "' from repositoryentry with key " + re.getKey());
+		ActionType actionType = ThreadLocalUserActivityLogger.getStickyActionType();
+		ThreadLocalUserActivityLogger.setStickyActionType(ActionType.admin);
+		try{
+			ThreadLocalUserActivityLogger.log(GroupLoggingAction.GROUP_OWNER_REMOVED, getClass(),
+					LoggingResourceable.wrap(re, OlatResourceableType.genRepoEntry), LoggingResourceable.wrap(identity));
+		} finally {
+			ThreadLocalUserActivityLogger.setStickyActionType(actionType);
 		}
+		logAudit("Identity(.key):" + ureqIdentity.getKey() + " removed identity '" + identity.getName()
+				+ "' from repositoryentry with key " + re.getKey());
 	}
 	
 	/**
@@ -1697,6 +1761,14 @@ public class RepositoryManager extends BasicManager {
 		}
 
 		boolean allOk = repositoryEntryRelationDao.removeMembers(re, members);
+		if (allOk) {
+			List<RepositoryEntryMembershipModifiedEvent> deferredEvents = new ArrayList<>();
+			for(Identity identity:members) {
+				deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(identity, re));
+			}
+			dbInstance.commit();
+			sendDeferredEvents(deferredEvents, re);
+		}
 		if (allOk) {
 			// do logging - not optimal but 
 			StringBuilder sb = new StringBuilder();
@@ -2112,31 +2184,46 @@ public class RepositoryManager extends BasicManager {
 		return entries;
 	}
 	
-	public void updateRepositoryEntryMembership(Identity ureqIdentity, Roles ureqRoles, RepositoryEntry re,
+	public void updateRepositoryEntryMemberships(Identity ureqIdentity, Roles ureqRoles, RepositoryEntry re,
 			List<RepositoryEntryPermissionChangeEvent> changes, MailPackage mailing) {
+
+		List<RepositoryEntryMembershipModifiedEvent> deferredEvents = new ArrayList<>();
 		for(RepositoryEntryPermissionChangeEvent e:changes) {
-			if(e.getRepoOwner() != null) {
-				if(e.getRepoOwner().booleanValue()) {
-					addOwners(ureqIdentity, new IdentitiesAddEvent(e.getMember()), re);
-				} else {
-					removeOwners(ureqIdentity, Collections.singletonList(e.getMember()), re);
-				}
+			updateRepositoryEntryMembership(ureqIdentity, ureqRoles, re, e, mailing, deferredEvents);
+		}
+
+		dbInstance.commit();
+		sendDeferredEvents(deferredEvents, re);
+	}
+	
+	private void updateRepositoryEntryMembership(Identity ureqIdentity, Roles ureqRoles, RepositoryEntry re,
+			RepositoryEntryPermissionChangeEvent changes, MailPackage mailing,
+			List<RepositoryEntryMembershipModifiedEvent> deferredEvents) {
+		
+		if(changes.getRepoOwner() != null) {
+			if(changes.getRepoOwner().booleanValue()) {
+				addOwners(ureqIdentity, new IdentitiesAddEvent(changes.getMember()), re);
+			} else {
+				removeOwner(ureqIdentity, changes.getMember(), re);
+				deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(changes.getMember(), re));
 			}
-			
-			if(e.getRepoTutor() != null) {
-				if(e.getRepoTutor().booleanValue()) {
-					addTutors(ureqIdentity, ureqRoles, new IdentitiesAddEvent(e.getMember()), re, mailing);
-				} else {
-					removeTutors(ureqIdentity, Collections.singletonList(e.getMember()), re);
-				}
+		}
+		
+		if(changes.getRepoTutor() != null) {
+			if(changes.getRepoTutor().booleanValue()) {
+				addTutors(ureqIdentity, ureqRoles, new IdentitiesAddEvent(changes.getMember()), re, mailing);
+			} else {
+				removeTutor(ureqIdentity, changes.getMember(), re);
+				deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(changes.getMember(), re));
 			}
-			
-			if(e.getRepoParticipant() != null) {
-				if(e.getRepoParticipant().booleanValue()) {
-					addParticipants(ureqIdentity, ureqRoles, new IdentitiesAddEvent(e.getMember()), re, mailing);
-				} else {
-					removeParticipants(ureqIdentity, Collections.singletonList(e.getMember()), re, mailing, true);
-				}
+		}
+		
+		if(changes.getRepoParticipant() != null) {
+			if(changes.getRepoParticipant().booleanValue()) {
+				addParticipants(ureqIdentity, ureqRoles, new IdentitiesAddEvent(changes.getMember()), re, mailing);
+			} else {
+				removeParticipant(ureqIdentity, changes.getMember(), re, mailing, true);
+				deferredEvents.add(RepositoryEntryMembershipModifiedEvent.removed(changes.getMember(), re));
 			}
 		}
 	}
diff --git a/src/main/java/org/olat/repository/RepositoryService.java b/src/main/java/org/olat/repository/RepositoryService.java
index 8c7aa2737609d66c4f369a2dfe6d0bba2bf46452..8250193508083f0b26540978ad75e74905bc2fcb 100644
--- a/src/main/java/org/olat/repository/RepositoryService.java
+++ b/src/main/java/org/olat/repository/RepositoryService.java
@@ -100,6 +100,12 @@ public interface RepositoryService {
 	
 	public int countMembers(RepositoryEntryRef re, String... roles);
 	
+	/**
+	 * @param re The repository entry
+	 * @return True if the configuration allowed user to leave the entry right now
+	 */
+	public boolean isParticipantAllowedToLeave(RepositoryEntry re);
+	
 	/**
 	 * Return the primary keys of the authors
 	 */
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
index ff12a47503561b452ff66fa3b25065535dfd33f5..ae9f6dbb7868ff49ac160387354e152bb87dce9f 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
@@ -463,6 +463,11 @@ rentry.publish.authors=f\u00FCr Autoren
 rentry.publish.course.desc=Definieren Sie in diesem Formular ob andere Autoren diesen Kurs als Vorlage verwenden oder exportieren d\u00FCrfen und ob der Kurs f\u00FCr die Endbenutzer freigegeben ist. Die Besitzer der Kurses haben jederzeit Zugang zu dem Kurs. 
 rentry.publish.other.desc=Hinweis\: Sie m\u00FCssen Ressourcen f\u00FCr Benutzer nicht freigeben um diese in einem Kurs verwenden zu k\u00F6nnen. Es wird empfohlen nur Kurse direkt als Lernressourcen freizugeben und andere Ressourcen stattdessen in Kurse einzubinden. Die Freigabe f\u00FCr Autoren erm\u00F6glicht es anderen Autoren Ressourcen von Ihnen zu verwenden ohne selbst Besitzer dieser Ressourcen zu sein.  
 rentry.publish.users=f\u00FCr Benutzer
+rentry.leaving.title=Mitglieder Konfiguration
+rentry.leave.option=Teilnehmer k\u00F6nnen Kurs verlassen
+rentry.leave.atanytime=Jederzeit
+rentry.leave.afterenddate=Nach Enddatum
+rentry.leave.never=Nie
 repo.login=Login
 repository.admin.title=Repository Einstellungen
 repositoryentry.not.existing=Diese Ressource ist nicht mehr verf\u00FCgbar.
@@ -510,6 +515,11 @@ security.disabled.title=Lernressource nicht verf\u00FCgbar
 settings.editor=Beschreibung \u00E4ndern
 sf.notconfigured=Kein Ressourcenordner ausgew\u00E4hlt
 sf.resourcetitle=Gew\u00E4hlter Ressourcenordner
+sign.out=Kurs verlassen
+sign.out.dialog.text=Wollen Sie aus dem Kurs "{0}" austreten?
+sign.out.success=Sie sind erfolgreich aus dem Kurs "{0} ausgetreten.
+sign.out.warning.managed=Sie konnten diesen Kurs nicht verlassen weil Sie aus einer oder mehreren Gruppen nicht austreten d\u00FCrfen.
+sign.out.warning.mutiple.resources=Sie konnten diesen Kurs nicht verlassen weil Sie Mitglied von einer oder mehreren Gruppen sind, die mit anderen Kursen verkn\u00FCpft sind.
 start=starten
 start.with.type={0} starten
 status.closed=Beendet (Geschlossen)
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
index a72fcb8330dab31deb09a301fab5850c6a1e895c..54d43f0f8a60465faa86de7d0ad9546ed6de30bc 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -453,6 +453,11 @@ referencableSearch.title=Search for referenceable learning resources
 references=Referenced resources
 references.expl=import and link
 remove=Remove
+rentry.leaving.title=Membership configuration
+rentry.leave.option=Members allow to leave course
+rentry.leave.atanytime=At any time
+rentry.leave.afterenddate=After course end date
+rentry.leave.never=Never
 rentry.movie=Teaser movie (mp4)
 rentry.movie.example=Optimal aspect ratio\: {0}
 rentry.pic=Cover image (jpg, png, gif)
@@ -510,6 +515,11 @@ security.disabled.title=Learning resource disabled
 settings.editor=Change description
 sf.notconfigured=No resource folder selected
 sf.resourcetitle=Selected resource folder
+sign.out=Leave course
+sign.out.dialog.text=Do you want to leave this course "{0}"?
+sign.out.success=You successfully left the course "{0}".
+sign.out.warning.managed=You could not leave this course since you are member of at least one other group you are not allowed to leave.
+sign.out.warning.mutiple.resources=You could not leave this course since you are member in at least one other group that is linked to at least on other course.
 start=start
 start.with.type=Start {0}
 status.closed=Finished (closed)
diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java
index 06bcb5134c79bba156374c04f350425f66921352..8cf392740e5ce4e6b74eedce008a20b2f2754765 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java
@@ -201,9 +201,14 @@ public class RepositoryEntryAuthorQueries {
 		
 		Long id = null;
 		String refs = null;
+		String fuzzyRefs = null;
 		if(StringHelper.containsNonWhitespace(params.getIdAndRefs())) {
 			refs = params.getIdAndRefs();
-			sb.append(" and (v.externalId=:ref or v.externalRef=:ref or v.softkey=:ref");
+			fuzzyRefs = PersistenceHelper.makeFuzzyQueryString(refs);
+			sb.append(" and (v.externalId=:ref or ");
+			PersistenceHelper.appendFuzzyLike(sb, "v.externalRef", "fuzzyRefs", dbInstance.getDbVendor());
+			sb.append(" or v.softkey=:ref");
+
 			if(StringHelper.isLong(refs)) {
 				try {
 					id = Long.parseLong(refs);
@@ -221,7 +226,9 @@ public class RepositoryEntryAuthorQueries {
 		String quickText = null;
 		if(StringHelper.containsNonWhitespace(params.getIdRefsAndTitle())) {
 			quickRefs = params.getIdRefsAndTitle();
-			sb.append(" and (v.externalId=:quickRef or v.externalRef=:quickRef or v.softkey=:quickRef or ");
+			sb.append(" and (v.externalId=:quickRef or ");
+			PersistenceHelper.appendFuzzyLike(sb, "v.externalRef", "quickText", dbInstance.getDbVendor());
+			sb.append(" or v.softkey=:quickRef or ");
 			quickText = PersistenceHelper.makeFuzzyQueryString(quickRefs);
 			PersistenceHelper.appendFuzzyLike(sb, "v.displayname", "quickText", dbInstance.getDbVendor());
 			if(StringHelper.isLong(quickRefs)) {
@@ -253,6 +260,9 @@ public class RepositoryEntryAuthorQueries {
 		if(refs != null) {
 			dbQuery.setParameter("ref", refs);
 		}
+		if(fuzzyRefs != null) {
+			dbQuery.setParameter("fuzzyRefs", fuzzyRefs);
+		}
 		
 		if(quickId != null) {
 			dbQuery.setParameter("quickVKey", quickId);
diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryMembershipProcessor.java b/src/main/java/org/olat/repository/manager/RepositoryEntryMembershipProcessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..03169c542f617752b9af7bd64c62b885189e67fe
--- /dev/null
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryMembershipProcessor.java
@@ -0,0 +1,89 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.manager;
+
+import java.util.List;
+
+import org.olat.basesecurity.IdentityRef;
+import org.olat.basesecurity.model.IdentityRefImpl;
+import org.olat.core.commons.services.notifications.NotificationsManager;
+import org.olat.core.gui.control.Event;
+import org.olat.core.util.coordinate.CoordinatorManager;
+import org.olat.core.util.event.GenericEventListener;
+import org.olat.core.util.resource.OresHelper;
+import org.olat.group.manager.BusinessGroupRelationDAO;
+import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryEntryRef;
+import org.olat.repository.RepositoryManager;
+import org.olat.repository.model.RepositoryEntryMembershipModifiedEvent;
+import org.olat.repository.model.RepositoryEntryRefImpl;
+import org.olat.resource.OLATResource;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 
+ * Process the removed membership of repository entries.
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+@Service
+public class RepositoryEntryMembershipProcessor implements InitializingBean, GenericEventListener {
+	
+	@Autowired
+	private CoordinatorManager coordinator;
+	@Autowired
+	private NotificationsManager notificationsManager;
+	@Autowired
+	private RepositoryManager repositoryManager;
+	@Autowired
+	private BusinessGroupRelationDAO businessGroupRelationDao;
+	@Autowired
+	private RepositoryEntryRelationDAO repositoryEntryRelationDao;
+	
+	@Override
+	public void afterPropertiesSet() throws Exception {
+		coordinator.getCoordinator().getEventBus().registerFor(this, null, OresHelper.lookupType(RepositoryEntry.class));
+	}
+
+	@Override
+	public void event(Event event) {
+		if(event instanceof RepositoryEntryMembershipModifiedEvent) {
+			RepositoryEntryMembershipModifiedEvent e = (RepositoryEntryMembershipModifiedEvent)event;
+			if(RepositoryEntryMembershipModifiedEvent.IDENTITY_REMOVED.equals(e.getCommand())) {
+				processIdentityRemoved(e.getRepositoryEntryKey(), e.getIdentityKey());
+			}
+		}
+	}
+	
+	private void processIdentityRemoved(Long repoKey, Long identityKey) {
+		IdentityRef identity = new IdentityRefImpl(identityKey);
+		RepositoryEntryRef re = new RepositoryEntryRefImpl(repoKey);
+		
+		List<String> remainingRoles = repositoryEntryRelationDao.getRoles(identity, re);
+		if(remainingRoles.isEmpty()) {
+			OLATResource resource = repositoryManager.lookupRepositoryEntryResource(repoKey);
+			notificationsManager.unsubscribeAllForIdentityAndResId(identity, resource.getResourceableId());
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
index 79fd1cb0609bc965c1a53fc434f8e3f5c71ae4b4..86e5b4dfc1d949b2e4dbb0e24d3b0139b52dcffe 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
@@ -20,6 +20,7 @@
 package org.olat.repository.manager;
 
 import java.io.File;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
@@ -51,9 +52,11 @@ import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.course.assessment.manager.UserCourseInformationsManager;
+import org.olat.course.certificate.CertificatesManager;
 import org.olat.repository.ErrorList;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryAuthorView;
+import org.olat.repository.RepositoryEntryAllowToLeaveOptions;
 import org.olat.repository.RepositoryEntryMyView;
 import org.olat.repository.RepositoryEntryRef;
 import org.olat.repository.RepositoryEntryRelationType;
@@ -61,6 +64,7 @@ import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryService;
 import org.olat.repository.handlers.RepositoryHandler;
 import org.olat.repository.handlers.RepositoryHandlerFactory;
+import org.olat.repository.model.RepositoryEntryLifecycle;
 import org.olat.repository.model.RepositoryEntryStatistics;
 import org.olat.repository.model.RepositoryEntryToGroupRelation;
 import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams;
@@ -107,6 +111,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 	@Autowired
 	private OLATResourceManager resourceManager;
 	@Autowired
+	private CertificatesManager certificatesManager;
+	@Autowired
 	private UserCourseInformationsManager userCourseInformationsManager;
 
 	@Autowired
@@ -146,6 +152,7 @@ public class RepositoryServiceImpl implements RepositoryService {
 		re.setDisplayname(displayname);
 		re.setResourcename(StringHelper.containsNonWhitespace(resourceName) ? resourceName : "-");
 		re.setDescription(description == null ? "" : description);
+		re.setAllowToLeaveOption(RepositoryEntryAllowToLeaveOptions.atAnyTime);
 		if(resource == null) {
 			OLATResourceable ores = OresHelper.createOLATResourceableInstance("RepositoryEntry", CodeHelper.getForeverUniqueID());
 			resource = resourceManager.createAndPersistOLATResourceInstance(ores);
@@ -268,6 +275,7 @@ public class RepositoryServiceImpl implements RepositoryService {
 		return null;
 	}
 	
+	@Override
 	public ErrorList delete(RepositoryEntry entry, Identity identity, Roles roles, Locale locale) {
 		ErrorList errors = new ErrorList();
 		
@@ -284,10 +292,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 			return errors;
 		}
 
-		// start transaction
-		// delete entry picture
-		
 		userCourseInformationsManager.deleteUserCourseInformations(entry);
+		certificatesManager.deleteRepositoryEntry(entry);
 		
 		// delete all bookmarks referencing deleted entry
 		CoreSpringFactory.getImpl(MarkManager.class).deleteMarks(entry);
@@ -375,6 +381,35 @@ public class RepositoryServiceImpl implements RepositoryService {
 		return reToGroupDao.hasRole(identity, re, roles);
 	}
 
+	@Override
+	public boolean isParticipantAllowedToLeave(RepositoryEntry re) {
+		boolean allowed = false;
+		RepositoryEntryAllowToLeaveOptions setting = re.getAllowToLeaveOption();
+		if(setting == RepositoryEntryAllowToLeaveOptions.atAnyTime) {
+			allowed = true;
+		} else if(setting == RepositoryEntryAllowToLeaveOptions.afterEndDate) {
+			RepositoryEntryLifecycle lifecycle = re.getLifecycle();
+			if(lifecycle == null || lifecycle.getValidTo() == null) {
+				allowed = false;
+			} else {
+				Calendar cal = Calendar.getInstance();
+				cal.set(Calendar.HOUR, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+				Date now = cal.getTime();
+				if(now.compareTo(lifecycle.getValidTo()) >= 0) {
+					allowed = true;
+				} else {
+					allowed = false;
+				}
+			}
+		} else {
+			allowed = false;
+		}
+		return allowed;
+	}
+
 	@Override
 	public boolean isMember(IdentityRef identity, RepositoryEntryRef entry) {
 		return reToGroupDao.isMember(identity, entry);
diff --git a/src/main/java/org/olat/repository/model/RepositoryEntryMembershipModifiedEvent.java b/src/main/java/org/olat/repository/model/RepositoryEntryMembershipModifiedEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..a41033967ec6fd7ca7855e3d8e9c5e4e1803bbbf
--- /dev/null
+++ b/src/main/java/org/olat/repository/model/RepositoryEntryMembershipModifiedEvent.java
@@ -0,0 +1,63 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.model;
+
+import org.olat.basesecurity.IdentityRef;
+import org.olat.core.util.event.MultiUserEvent;
+import org.olat.repository.RepositoryEntryRef;
+
+/**
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class RepositoryEntryMembershipModifiedEvent extends MultiUserEvent {
+
+	private static final long serialVersionUID = -8624039692057985920L;
+	
+	public static final String IDENTITY_REMOVED = "identity.removed.re";
+	private Long identityKey;
+	private Long repositoryEntryKey;
+
+	
+	/**
+	 * @param command one of the class constants
+	 * @param group
+	 * @param identity
+	 */
+	public RepositoryEntryMembershipModifiedEvent(String command, Long identityKey, Long repositoryEntryKey) {
+		super(command);
+		this.identityKey = identityKey;
+		this.repositoryEntryKey = repositoryEntryKey;
+	}
+
+	public Long getIdentityKey() {
+		return identityKey;
+	}
+
+	public Long getRepositoryEntryKey() {
+		return repositoryEntryKey;
+	}
+	
+	public static RepositoryEntryMembershipModifiedEvent removed(IdentityRef identity, RepositoryEntryRef re) {
+		return new RepositoryEntryMembershipModifiedEvent(IDENTITY_REMOVED, identity.getKey(), re.getKey());
+	}
+}
diff --git a/src/main/java/org/olat/repository/model/RepositoryEntryRefImpl.java b/src/main/java/org/olat/repository/model/RepositoryEntryRefImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..ad010fe21dd6d1dc74e498e420997de769b2a5e6
--- /dev/null
+++ b/src/main/java/org/olat/repository/model/RepositoryEntryRefImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.model;
+
+import org.olat.repository.RepositoryEntryRef;
+
+/**
+ * 
+ * Initial date: 09.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class RepositoryEntryRefImpl implements RepositoryEntryRef {
+	
+	private final Long repoKey;
+	
+	public RepositoryEntryRefImpl(Long repoKey) {
+		this.repoKey = repoKey;
+	}
+
+	@Override
+	public Long getKey() {
+		return repoKey;
+	}
+
+	@Override
+	public int hashCode() {
+		return repoKey == null ? -635465 : repoKey.hashCode();
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+		if(this == obj) {
+			return true;
+		} else if (obj instanceof RepositoryEntryRefImpl) {
+			RepositoryEntryRefImpl ref = (RepositoryEntryRefImpl)obj;
+			return repoKey != null && repoKey.equals(ref.getKey());
+		}
+		return false;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/model/RepositoryEntryToGroupRelation.java b/src/main/java/org/olat/repository/model/RepositoryEntryToGroupRelation.java
index 543aedf8a4d4e8f1b262d06b07bb6345e2616af3..05e971af34edb461a6ee6c66b9a7fbda47758f1c 100644
--- a/src/main/java/org/olat/repository/model/RepositoryEntryToGroupRelation.java
+++ b/src/main/java/org/olat/repository/model/RepositoryEntryToGroupRelation.java
@@ -52,8 +52,6 @@ import org.olat.repository.RepositoryEntry;
 	@NamedQuery(name="relationByRepositoryEntryAndGroup",query="select rel from repoentrytogroup as rel where rel.entry.key=:repoKey and rel.group.key=:groupKey"),
 	@NamedQuery(name="relationByRepositoryEntry", query="select rel from repoentrytogroup as rel where rel.entry.key=:repoKey"),
 	@NamedQuery(name="relationByGroup", query="select rel from repoentrytogroup as rel where rel.group.key=:groupKey")
-	
-	
 })
 public class RepositoryEntryToGroupRelation implements Persistable {
 
diff --git a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
index 9885798b7d7f18b3f5d8a885ebd19f24b2cfdd05..9296017bf87906c51a11d273b1ff7e278017ccfd 100644
--- a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
+++ b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
@@ -68,6 +68,7 @@ import org.olat.core.util.resource.OresHelper;
 import org.olat.course.CourseModule;
 import org.olat.course.assessment.AssessmentMode;
 import org.olat.course.assessment.AssessmentModeManager;
+import org.olat.course.assessment.AssessmentModule;
 import org.olat.course.assessment.model.TransientAssessmentMode;
 import org.olat.course.run.RunMainController;
 import org.olat.repository.ErrorList;
@@ -90,6 +91,7 @@ import org.olat.repository.ui.author.RepositoryEditDescriptionController;
 import org.olat.repository.ui.author.RepositoryMembersController;
 import org.olat.repository.ui.author.wizard.CloseResourceCallback;
 import org.olat.repository.ui.author.wizard.Close_1_ExplanationStep;
+import org.olat.repository.ui.list.LeavingEvent;
 import org.olat.repository.ui.list.RepositoryEntryDetailsController;
 import org.olat.resource.OLATResource;
 import org.olat.resource.accesscontrol.ACService;
@@ -161,6 +163,8 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 	@Autowired
 	protected MarkManager markManager;
 	@Autowired
+	private AssessmentModule assessmentModule;
+	@Autowired
 	protected RepositoryModule repositoryModule;
 	@Autowired
 	private RepositoryService repositoryService;
@@ -539,6 +543,10 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 			if(event == Event.CHANGED_EVENT) {
 				re = descriptionCtrl.getEntry();
 			}
+		} else if(detailsCtrl == source) {
+			if(event instanceof LeavingEvent) {
+				doClose(ureq);
+			}
 		} else if(closeCtrl == source) {
 			if(event == Event.CANCELLED_EVENT || event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
 				getWindowControl().pop();
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java
index 03948121ca80f4139f0b14bda28a2cbd2f46a3f3..5f25c07f9ec369ab11a25c3e84c4f3ad33281534 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java
@@ -30,6 +30,7 @@ import org.olat.core.util.Util;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.event.MultiUserEvent;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryEntryAllowToLeaveOptions;
 import org.olat.repository.RepositoryEntryManagedFlag;
 import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryService;
@@ -51,6 +52,7 @@ public class AuthoringEditAccessController extends BasicController {
 	private VelocityContainer editproptabpubVC;
 	
 	private AuthoringEntryPublishController propPupForm;
+	private final AuthoringEditAllowToLeaveOptionController leaveForm;
 	private AccessConfigurationController acCtr;
 	
 	private RepositoryEntry entry;
@@ -67,6 +69,10 @@ public class AuthoringEditAccessController extends BasicController {
 		propPupForm = new AuthoringEntryPublishController(ureq, wControl, entry);
 		listenTo(propPupForm);
 		editproptabpubVC.put("proppupform", propPupForm.getInitialComponent());
+		
+		leaveForm = new AuthoringEditAllowToLeaveOptionController(ureq, wControl, entry);
+		listenTo(leaveForm);
+		editproptabpubVC.put("leaveform", leaveForm.getInitialComponent());
 
 		boolean managedBookings = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.bookings);
 		acCtr = new AccessConfigurationController(ureq, getWindowControl(), entry.getOlatResource(), entry.getDisplayname(), true, !managedBookings);
@@ -125,6 +131,15 @@ public class AuthoringEditAccessController extends BasicController {
 				CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(modifiedEvent, entry);			
 				fireEvent(ureq, Event.CHANGED_EVENT);
 			}
+		} else if(source == leaveForm) {
+			if (event == Event.DONE_EVENT) {
+				RepositoryEntryAllowToLeaveOptions leaveSetting = leaveForm.getSelectedLeaveSetting();
+				entry = repositoryManager.setLeaveSetting(entry, leaveSetting);	
+
+				MultiUserEvent modifiedEvent = new EntryChangedEvent(entry, getIdentity(), Change.modifiedAccess);
+				CoordinatorManager.getInstance().getCoordinator().getEventBus().fireEventToListenersOf(modifiedEvent, entry);	
+				fireEvent(ureq, Event.CHANGED_EVENT);
+			}
 		}
 	}
 }
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEditAllowToLeaveOptionController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEditAllowToLeaveOptionController.java
new file mode 100644
index 0000000000000000000000000000000000000000..04998ff6a8cd22a963d1168313a309ded6cdf241
--- /dev/null
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEditAllowToLeaveOptionController.java
@@ -0,0 +1,112 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.ui.author;
+
+import org.olat.core.gui.UserRequest;
+import org.olat.core.gui.components.form.flexible.FormItemContainer;
+import org.olat.core.gui.components.form.flexible.elements.SingleSelection;
+import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
+import org.olat.core.gui.control.Controller;
+import org.olat.core.gui.control.Event;
+import org.olat.core.gui.control.WindowControl;
+import org.olat.core.util.Util;
+import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryEntryAllowToLeaveOptions;
+import org.olat.repository.RepositoryEntryManagedFlag;
+import org.olat.repository.RepositoryService;
+
+/**
+ * 
+ * Initial date: 28.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class AuthoringEditAllowToLeaveOptionController extends FormBasicController {
+	
+	private static final String[] leaveKeys = new String[]{
+		RepositoryEntryAllowToLeaveOptions.atAnyTime.name(),
+		RepositoryEntryAllowToLeaveOptions.afterEndDate.name(),
+		RepositoryEntryAllowToLeaveOptions.never.name()
+	};
+	
+	private SingleSelection leaveEl;
+	
+	private RepositoryEntry entry;
+	
+	public AuthoringEditAllowToLeaveOptionController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry) {
+		super(ureq, wControl);
+		setTranslator(Util.createPackageTranslator(RepositoryService.class, getLocale(), getTranslator()));
+		this.entry = entry;
+		initForm(ureq);
+	}
+
+	@Override
+	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		setFormTitle("rentry.leaving.title");
+		
+		String[] leaveValues = new String[]{
+				translate("rentry.leave.atanytime"),
+				translate("rentry.leave.afterenddate"),
+				translate("rentry.leave.never")
+		};
+		
+		final boolean managedLeaving = RepositoryEntryManagedFlag.isManaged(entry, RepositoryEntryManagedFlag.membersmanagement);
+		leaveEl = uifactory.addDropdownSingleselect("entry.leave", "rentry.leave.option", formLayout, leaveKeys, leaveValues, null);
+		boolean found = false;
+		for(String leaveKey:leaveKeys) {
+			if(leaveKey.equals(entry.getAllowToLeaveOption().name())) {
+				leaveEl.select(leaveKey, true);
+				found = true;
+			}
+		}
+		if(!found) {
+			if(managedLeaving) {
+				leaveEl.select(RepositoryEntryAllowToLeaveOptions.never.name(), true);
+			} else {
+				leaveEl.select(RepositoryEntryAllowToLeaveOptions.atAnyTime.name(), true);
+			}
+		}
+		leaveEl.setEnabled(!managedLeaving);
+		
+		if(!managedLeaving) {
+			uifactory.addFormSubmitButton("submit", formLayout);
+		}
+	}
+	
+	public RepositoryEntryAllowToLeaveOptions getSelectedLeaveSetting() {
+		RepositoryEntryAllowToLeaveOptions setting;
+		if(leaveEl.isOneSelected()) {
+			setting = RepositoryEntryAllowToLeaveOptions.valueOf(leaveEl.getSelectedKey());
+		} else {
+			setting = RepositoryEntryAllowToLeaveOptions.atAnyTime;
+		}
+		return setting;
+	}
+	
+	@Override
+	protected void doDispose() {
+		//
+	}
+
+	@Override
+	protected void formOK(UserRequest ureq) {
+		fireEvent(ureq, Event.DONE_EVENT);
+	}
+}
diff --git a/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java b/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java
index 5911cfda18d65782ceb1d9a9e22aa9ec4e7854e9..417ccba510d4ed6181e321347c75c90e7c865212 100644
--- a/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java
+++ b/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java
@@ -167,7 +167,7 @@ public class RepositoryMembersController extends AbstractMemberListController {
 		MailerResult result = new MailerResult();
 		MailPackage reMailing = new MailPackage(template, result, getWindowControl().getBusinessControl().getAsString(), template != null);
 		List<RepositoryEntryPermissionChangeEvent> repoChanges = changes.generateRepositoryChanges(members);
-		repositoryManager.updateRepositoryEntryMembership(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, reMailing);
+		repositoryManager.updateRepositoryEntryMemberships(getIdentity(), ureq.getUserSession().getRoles(), repoEntry, repoChanges, reMailing);
 
 		//commit all changes to the group memberships
 		List<BusinessGroupMembershipChange> allModifications = changes.generateBusinessGroupMembershipChange(members);
diff --git a/src/main/java/org/olat/repository/ui/author/_content/editproptabpub.html b/src/main/java/org/olat/repository/ui/author/_content/editproptabpub.html
index c3351c8c19ffe0d1ff945ab79c313136a60e15d8..f0298d51389faaf032673573bf724ae9001e1f1e 100644
--- a/src/main/java/org/olat/repository/ui/author/_content/editproptabpub.html
+++ b/src/main/java/org/olat/repository/ui/author/_content/editproptabpub.html
@@ -6,7 +6,9 @@ $r.render("proppupform")
 	$r.translate("cif.access.users_guests.warning")
 </div>
 #end
-
+#if($r.available("leaveform"))
+	$r.render("leaveform")
+#end
 #if($r.available("accesscontrol"))
 	$r.render("accesscontrol")
 #end
diff --git a/src/main/java/org/olat/repository/ui/list/LeavingEvent.java b/src/main/java/org/olat/repository/ui/list/LeavingEvent.java
new file mode 100644
index 0000000000000000000000000000000000000000..1adb6b38c89b9e2871ad3712c67c1df571c2c2da
--- /dev/null
+++ b/src/main/java/org/olat/repository/ui/list/LeavingEvent.java
@@ -0,0 +1,38 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.ui.list;
+
+import org.olat.core.gui.control.Event;
+
+/**
+ * 
+ * Initial date: 28.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class LeavingEvent extends Event {
+
+	private static final long serialVersionUID = -12672894980545992L;
+
+	public LeavingEvent() {
+		super("leaving");
+	}
+
+}
diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java
index b260245238ff2f12c2184c151645944da758b41a..6c5022937682a21010639ed3edd593573e9e1606 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryDetailsController.java
@@ -26,6 +26,8 @@ import java.util.Map;
 
 import org.olat.NewControllerFactory;
 import org.olat.admin.restapi.RestapiAdminController;
+import org.olat.basesecurity.GroupRoles;
+import org.olat.core.commons.persistence.DBFactory;
 import org.olat.core.commons.services.commentAndRating.CommentAndRatingDefaultSecurityCallback;
 import org.olat.core.commons.services.commentAndRating.CommentAndRatingSecurityCallback;
 import org.olat.core.commons.services.commentAndRating.manager.UserRatingsDAO;
@@ -47,6 +49,8 @@ import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
+import org.olat.core.gui.control.generic.modal.DialogBoxController;
+import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.helpers.Settings;
 import org.olat.core.id.OLATResourceable;
 import org.olat.core.id.Roles;
@@ -56,6 +60,8 @@ import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.filter.FilterFactory;
+import org.olat.core.util.mail.MailPackage;
+import org.olat.core.util.mail.MailerResult;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.core.util.vfs.VFSContainer;
 import org.olat.core.util.vfs.VFSContainerMapper;
@@ -71,8 +77,10 @@ import org.olat.group.BusinessGroupService;
 import org.olat.group.model.SearchBusinessGroupParams;
 import org.olat.login.LoginModule;
 import org.olat.repository.CatalogEntry;
+import org.olat.repository.LeavingStatusList;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryRef;
+import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryModule;
 import org.olat.repository.RepositoryService;
 import org.olat.repository.handlers.RepositoryHandler;
@@ -102,10 +110,11 @@ import org.springframework.beans.factory.annotation.Autowired;
  */
 public class RepositoryEntryDetailsController extends FormBasicController {
 	
-	protected FormLink markLink, commentsLink, startLink;
+	protected FormLink markLink, commentsLink, startLink, leaveLink;
 	private RatingWithAverageFormItem ratingEl;
 	
 	private CloseableModalController cmc;
+	private DialogBoxController leaveDialogBox;
 	private UserCommentsController commentsCtrl;
 	
 	protected RepositoryEntry entry;
@@ -129,6 +138,8 @@ public class RepositoryEntryDetailsController extends FormBasicController {
 	@Autowired
 	protected RepositoryModule repositoryModule;
 	@Autowired
+	protected RepositoryManager repositoryManager;
+	@Autowired
 	protected RepositoryService repositoryService;
 	@Autowired
 	protected BusinessGroupService businessGroupService;
@@ -286,9 +297,12 @@ public class RepositoryEntryDetailsController extends FormBasicController {
 			}
 			
 			//load memberships
-			boolean isMember = repositoryService.isMember(getIdentity(), entry);
+			List<String> memberRoles = repositoryService.getRoles(getIdentity(), entry);
             List<Long> authorKeys = repositoryService.getAuthors(entry);
             boolean isAuthor = false;
+            boolean isMember = memberRoles.contains(GroupRoles.owner.name())
+            		|| memberRoles.contains(GroupRoles.coach.name())
+            		|| memberRoles.contains(GroupRoles.participant.name());
 			if (isMember) {
 				isAuthor = authorKeys.contains(getIdentity().getKey());
 				layoutCont.contextPut("isEntryAuthor", new Boolean(isAuthor));
@@ -297,6 +311,11 @@ public class RepositoryEntryDetailsController extends FormBasicController {
             Roles roles = ureq.getUserSession().getRoles();
 			layoutCont.contextPut("roles", roles);
 
+			if(memberRoles.contains(GroupRoles.participant.name()) && repositoryService.isParticipantAllowedToLeave(entry)) {
+				leaveLink = uifactory.addFormLink("sign.out", "leave", "sign.out", null, formLayout, Link.LINK);
+				leaveLink.setIconLeftCSS("o_icon o_icon_sign_out");
+			}
+
 			//access control
 			String accessI18n = null;
 			List<PriceMethod> types = new ArrayList<PriceMethod>();
@@ -344,7 +363,7 @@ public class RepositoryEntryDetailsController extends FormBasicController {
 				} else {
 					String linkText = translate("start.with.type", translate(entry.getOlatResource().getResourceableTypeName()));
 					startLink = uifactory.addFormLink("start", "start", linkText, null, layoutCont, Link.BUTTON + Link.NONTRANSLATED);
-					startLink.setEnabled(false);
+					//startLink.setEnabled(false);
 					startLink.setElementCssClass("o_start btn-block");
 					startLink.setVisible(!guestOnly);
 				}
@@ -478,6 +497,11 @@ public class RepositoryEntryDetailsController extends FormBasicController {
 				updateComments(commentsCtrl.getNumOfComments());
 			}
 			cleanUp();
+		} else if(leaveDialogBox == source) {
+			if (DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event)) {
+				doLeave();
+				fireEvent(ureq, new LeavingEvent());
+			}
 		}
 		super.event(ureq, source, event);
 	}
@@ -519,6 +543,8 @@ public class RepositoryEntryDetailsController extends FormBasicController {
 			} else if("owner".equals(cmd)) {
 				Long ownerKey = (Long)link.getUserObject();
 				doOpenVisitCard(ureq, ownerKey);
+			} else if("leave".equals(cmd)) {
+				doConfirmLeave(ureq);
 			}
 		} else if(ratingEl == source && event instanceof RatingFormEvent) {
 			RatingFormEvent ratingEvent = (RatingFormEvent)event;
@@ -527,6 +553,32 @@ public class RepositoryEntryDetailsController extends FormBasicController {
 		super.formInnerEvent(ureq, source, event);
 	}
 	
+	protected void doConfirmLeave(UserRequest ureq) {
+		String reName = StringHelper.escapeHtml(entry.getDisplayname());
+		String title = translate("sign.out");
+		String text = translate("sign.out.dialog.text", reName);
+		leaveDialogBox = activateYesNoDialog(ureq, title, text, leaveDialogBox);
+	}
+	
+	protected void doLeave() {
+		MailerResult result = new MailerResult();
+		MailPackage reMailing = new MailPackage(result, getWindowControl().getBusinessControl().getAsString(), true);
+		LeavingStatusList status = new LeavingStatusList();
+		//leave course
+		repositoryManager.leave(getIdentity(), entry, status, reMailing);
+		//leave groups
+		businessGroupService.leave(getIdentity(), entry, status, reMailing);
+		DBFactory.getInstance().commit();//make sur all changes are committed
+		
+		if(status.isWarningManagedGroup() || status.isWarningManagedCourse()) {
+			showWarning("sign.out.warning.managed");
+		} else if(status.isWarningGroupWithMultipleResources()) {
+			showWarning("sign.out.warning.mutiple.resources");
+		} else {
+			showInfo("sign.out.success", new String[]{ entry.getDisplayname() });
+		}
+	}
+	
 	protected void doStart(UserRequest ureq) {
 		try {
 			String businessPath = "[RepositoryEntry:" + entry.getKey() + "]";
diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
index 20db06f33df28d0595318a69f9ff023533c62bf5..8ffa3b7d23bb0da7a419c2ed305bb13f8c03b9d0 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
@@ -430,6 +430,11 @@ public class RepositoryEntryListController extends FormBasicController
 				searchParams.setAuthor(null);
 				searchParams.setText(null);
 			}
+		} else if(detailsCtrl == source) {
+			if(event instanceof LeavingEvent) {
+				stackPanel.popUpToController(this);
+				tableEl.reset();
+			}
 		}
 		super.event(ureq, source, event);
 	}
diff --git a/src/main/java/org/olat/repository/ui/list/_content/details.html b/src/main/java/org/olat/repository/ui/list/_content/details.html
index 4e007909b3968bf66e5f577e62ab1bb99b058311..4eb2190e5414db2c0714756c044b6bc136a4e879 100644
--- a/src/main/java/org/olat/repository/ui/list/_content/details.html
+++ b/src/main/java/org/olat/repository/ui/list/_content/details.html
@@ -144,6 +144,12 @@
 							</td>
 						</tr>
 						#end
+						#if($r.available("sign.out"))
+						<tr class="o_signout">					
+							<th></th>
+							<td>$r.render("sign.out")</td>
+						</tr>
+						#end
 					</tbody>
 					</table>
 				</div>
diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/AccessRefusedController.java b/src/main/java/org/olat/resource/accesscontrol/ui/AccessRefusedController.java
index 453fce22d2580efb4441a1a807848211e9e40282..d1ff4fb5baf45ddd81236fc2077e4e2dd457f30a 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/AccessRefusedController.java
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/AccessRefusedController.java
@@ -42,7 +42,6 @@ public class AccessRefusedController extends BasicController {
 		VelocityContainer mainVC = createVelocityContainer("access_refused");
 		StackedPanel contentP = new SimpleStackedPanel("");
 		contentP.setContent(mainVC);
-		wControl.setWarning(translate("course.closed"));
 		putInitialPanel(contentP);
 	}
 
diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/_content/access_refused.html b/src/main/java/org/olat/resource/accesscontrol/ui/_content/access_refused.html
index 1d30b18ccb78240205ea1c58fff55cc1badead2b..23d2604a889fd7a6ecd071ef516b2ade6c4998ad 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/_content/access_refused.html
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/_content/access_refused.html
@@ -3,7 +3,7 @@
 		<h3>
 			<i class="o_icon o_icon-fw o_icon_booking"> </i>$r.translate("access.title")
 		</h3>
-		<p class="o_info clearfix">
+		<p class="o_warning clearfix">
 			$r.translate("access.refused.desc")
 		</p>
 	</div>
diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_de.properties
index 5ff2119391e0bfb2b0f78ef67f55044d7a852c64..43d1900b1d352cd175db0536213e5da335126c06 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_de.properties
@@ -33,7 +33,7 @@ access.token.desc=Diese Ressource ist mit einem Zugangscode gesch
 access.button=Buchen
 access.free.title=Freie Ressource 
 access.free.desc=Diese Ressource ist für Sie frei verfügbar. Wählen Sie die Schaltfläche "$:access.button" um sich für den Zugang zu registrieren.
-access.refused.desc=Diese Ressource kann zur Zeit nicht gebucht werden. Bitte versuchen Sie es später noch einmal oder kontaktieren Sie den Besitzer dieser Ressource.
+access.refused.desc=Diese Ressource kann zur Zeit nicht gebucht werden. Bitte kontaktieren Sie den Besitzer dieser Ressource.
 cmd.title=Zugangskontrolle
 cmd.close=Schliessen
 members.name=Name
@@ -117,4 +117,5 @@ chelp.accesscontrol_group.method.free=$:chelp.accesscontrol.method.free
 chelp.accesscontrol_group.method.token=$:chelp.accesscontrol.method.token
 chelp.accesscontrol_group.dates=$:chelp.accesscontrol.dates
 chelp.accesscontrol_group.manual=$:chelp.accesscontrol.manual
-chelp.accesscontrol_group.delete=$:chelp.accesscontrol.deletecourse.closed=$org.olat.course.run\:course.closed
+chelp.accesscontrol_group.delete=$:chelp.accesscontrol.delete
+course.closed=$org.olat.course.run\:course.closed
\ No newline at end of file
diff --git a/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties
index b3f83d59e2749a7ff2408a55eb526571ec3c567c..20f3e7e5ce0d8394981f85f49a081dc1fb9210fb 100644
--- a/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/resource/accesscontrol/ui/_i18n/LocalStrings_en.properties
@@ -15,7 +15,7 @@ access.free.desc=This resource is freely available for you. Press the button "$\
 access.free.title=Free resource
 access.info.price.noVat={0}
 access.info.price.vat={0} (incl. {1}% VAT)
-access.refused.desc=This resource is currently available for booking. Please try again later or contact the owner of this resource.
+access.refused.desc=This resource is currently not available for booking. Please contact the owner of this resource.
 access.title=Book resource
 access.token.desc=This resource is protected with an access code. Enter the access code and press the button "$\:access.button" to register for access. The access code can be obtained from the operator of this resource.
 access.token.title=Protected resource
diff --git a/src/main/java/org/olat/restapi/repository/course/CourseWebService.java b/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
index f93ab74f3a0d98a8661d50c3050f23d85faf8e78..bbbc5321908dc535041307c90da832b866ddf7b4 100644
--- a/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CourseWebService.java
@@ -86,6 +86,7 @@ import org.olat.restapi.security.RestSecurityHelper;
 import org.olat.restapi.support.ObjectFactory;
 import org.olat.restapi.support.vo.CourseConfigVO;
 import org.olat.restapi.support.vo.CourseVO;
+import org.olat.restapi.support.vo.OlatResourceVO;
 import org.olat.user.restapi.UserVO;
 import org.olat.user.restapi.UserVOFactory;
 
@@ -207,6 +208,17 @@ public class CourseWebService {
 		return Response.ok(vo).build();
 	}
 	
+	@GET
+	@Path("resource")
+	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+	public Response getOlatResource(@Context HttpServletRequest request) {
+		if(!isAuthor(request)) {
+			return Response.serverError().status(Status.UNAUTHORIZED).build();
+		}
+		OlatResourceVO vo = new OlatResourceVO(course);
+		return Response.ok(vo).build();
+	}
+	
 	/**
 	 * Export the course
 	 * @response.representation.200.mediaType application/zip
@@ -359,9 +371,9 @@ public class CourseWebService {
 			return Response.serverError().status(Status.UNAUTHORIZED).build();
 		}
 
-		ICourse course = CourseFactory.openCourseEditSession(courseId);
+		ICourse editedCourse = CourseFactory.openCourseEditSession(courseId);
 		//change course config
-		CourseConfig courseConfig = course.getCourseEnvironment().getCourseConfig();
+		CourseConfig courseConfig = editedCourse.getCourseEnvironment().getCourseConfig();
 		if(calendar != null) {
 			courseConfig.setCalendarEnabled(calendar.booleanValue());
 		}
@@ -381,10 +393,10 @@ public class CourseWebService {
 			courseConfig.setSharedFolderSoftkey(sharedFolderSoftkey);
 		}
 
-		CourseFactory.setCourseConfig(course.getResourceableId(), courseConfig);
-		CourseFactory.closeCourseEditSession(course.getResourceableId(),true);
+		CourseFactory.setCourseConfig(editedCourse.getResourceableId(), courseConfig);
+		CourseFactory.closeCourseEditSession(editedCourse.getResourceableId(),true);
 		
-		CourseConfigVO vo = ObjectFactory.getConfig(course);
+		CourseConfigVO vo = ObjectFactory.getConfig(editedCourse);
 		return Response.ok(vo).build();
 	}
 	
@@ -464,8 +476,6 @@ public class CourseWebService {
 		
 		RepositoryManager rm = RepositoryManager.getInstance();
 		RepositoryEntry repositoryEntry = rm.lookupRepositoryEntry(course, true);
-
-
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
 		List<Identity> owners = repositoryService.getMembers(repositoryEntry, GroupRoles.owner.name());
 		
@@ -477,6 +487,68 @@ public class CourseWebService {
 		return Response.ok(authors).build();
 	}
 	
+	/**
+	 * Get all coaches of the course (don't follow the groups)
+	 * @response.representation.200.qname {http://www.example.com}userVO
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc The array of coaches
+	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
+	 * @response.representation.404.doc The course not found
+	 * @param httpRequest The HTTP request
+	 * @return It returns an array of <code>UserVO</code>
+	 */
+	@GET
+	@Path("tutors")
+	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+	public Response getTutors(@Context HttpServletRequest httpRequest) {
+		if (!isAuthorEditor(course, httpRequest)) {
+			return Response.serverError().status(Status.UNAUTHORIZED).build();
+		}
+		
+		RepositoryManager rm = RepositoryManager.getInstance();
+		RepositoryEntry repositoryEntry = rm.lookupRepositoryEntry(course, true);
+		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
+		List<Identity> coachList = repositoryService.getMembers(repositoryEntry, GroupRoles.coach.name());
+		
+		int count = 0;
+		UserVO[] coaches = new UserVO[coachList.size()];
+		for(Identity coach:coachList) {
+			coaches[count++] = UserVOFactory.get(coach);
+		}
+		return Response.ok(coaches).build();
+	}
+	
+	/**
+	 * Get all participants of the course (don't follow the groups)
+	 * @response.representation.200.qname {http://www.example.com}userVO
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc The array of participants
+	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
+	 * @response.representation.404.doc The course not found
+	 * @param httpRequest The HTTP request
+	 * @return It returns an array of <code>UserVO</code>
+	 */
+	@GET
+	@Path("participants")
+	@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+	public Response getParticipants(@Context HttpServletRequest httpRequest) {
+		if (!isAuthorEditor(course, httpRequest)) {
+			return Response.serverError().status(Status.UNAUTHORIZED).build();
+		}
+		
+		RepositoryManager rm = RepositoryManager.getInstance();
+		RepositoryEntry repositoryEntry = rm.lookupRepositoryEntry(course, true);
+		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
+		List<Identity> participantList = repositoryService.getMembers(repositoryEntry, GroupRoles.participant.name());
+		
+		int count = 0;
+		UserVO[] participants = new UserVO[participantList.size()];
+		for(Identity participant:participantList) {
+			participants[count++] = UserVOFactory.get(participant);
+		}
+		return Response.ok(participants).build();
+	}
+	
 	/**
 	 * Get this specific author and owner of the course
 	 * @response.representation.200.qname {http://www.example.com}userVO
diff --git a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
index eafc888f7f11a0ceb3e6c148c4a82e917f4abe07..13654edc543726e99a641389aa4fafb7f74465b2 100644
--- a/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
+++ b/src/main/java/org/olat/restapi/repository/course/CoursesWebService.java
@@ -67,6 +67,8 @@ import org.olat.course.config.CourseConfig;
 import org.olat.course.nodes.CourseNode;
 import org.olat.course.tree.CourseEditorTreeNode;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryEntryAllowToLeaveOptions;
+import org.olat.repository.RepositoryEntryManagedFlag;
 import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryService;
 import org.olat.repository.handlers.RepositoryHandler;
@@ -444,6 +446,8 @@ public class CoursesWebService {
 			} else {
 				preparedEntry.setAccess(access);
 			}
+			preparedEntry.setAllowToLeaveOption(src.getAllowToLeaveOption());
+
 			repositoryService.update(preparedEntry);
 			
 			// copy image if available
@@ -520,6 +524,11 @@ public class CoursesWebService {
 		addedEntry.setExternalId(externalId);
 		addedEntry.setExternalRef(externalRef);
 		addedEntry.setManagedFlagsString(managedFlags);
+		if(RepositoryEntryManagedFlag.isManaged(addedEntry, RepositoryEntryManagedFlag.membersmanagement)) {
+			addedEntry.setAllowToLeaveOption(RepositoryEntryAllowToLeaveOptions.never);
+		} else {
+			addedEntry.setAllowToLeaveOption(RepositoryEntryAllowToLeaveOptions.atAnyTime);//default
+		}
 		return addedEntry;//!!!no update at this point
 	}
 	
diff --git a/src/main/java/org/olat/restapi/support/vo/OlatResourceVO.java b/src/main/java/org/olat/restapi/support/vo/OlatResourceVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..7a8feca979cd5ac275b8d4ef5f071a516481ca58
--- /dev/null
+++ b/src/main/java/org/olat/restapi/support/vo/OlatResourceVO.java
@@ -0,0 +1,96 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.restapi.support.vo;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.olat.course.ICourse;
+import org.olat.resource.OLATResource;
+
+/**
+ * 
+ * Initial date: 01.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement(name = "olatResourceVO")
+public class OlatResourceVO {
+	
+	private Long key;
+	private Long resourceableId;
+	private String resourceableTypeName;
+	
+	public OlatResourceVO() {
+		//
+	}
+	
+	public OlatResourceVO(ICourse course) {
+		OLATResource resource = course.getCourseEnvironment().getCourseGroupManager()
+				.getCourseEntry().getOlatResource();
+		
+		key = resource.getKey();
+		resourceableId = resource.getResourceableId();
+		resourceableTypeName = resource.getResourceableTypeName();
+	}
+	
+	public Long getKey() {
+		return key;
+	}
+	
+	public void setKey(Long key) {
+		this.key = key;
+	}
+
+	public Long getResourceableId() {
+		return resourceableId;
+	}
+
+	public void setResourceableId(Long resourceableId) {
+		this.resourceableId = resourceableId;
+	}
+
+	public String getResourceableTypeName() {
+		return resourceableTypeName;
+	}
+
+	public void setResourceableTypeName(String resourceableTypeName) {
+		this.resourceableTypeName = resourceableTypeName;
+	}
+
+	@Override
+	public String toString() {
+		return "OlatResourceVO[key=" + key + ":name=" + resourceableTypeName + "]";
+	}
+	
+	@Override
+	public boolean equals(Object obj) {
+		if(obj == this) {
+			return true;
+		}
+		if(obj instanceof OlatResourceVO) {
+			OlatResourceVO vo = (OlatResourceVO)obj;
+			return key != null && key.equals(vo.key);
+		}
+		return false;
+	}
+}
diff --git a/src/main/java/org/olat/restapi/system/IndexerWebService.java b/src/main/java/org/olat/restapi/system/IndexerWebService.java
index b3b3067fb5a62bc5e2551ba89bb538dea487d002..ad614a5cf1ddd415904efa8c5b485750f2c0c7de 100644
--- a/src/main/java/org/olat/restapi/system/IndexerWebService.java
+++ b/src/main/java/org/olat/restapi/system/IndexerWebService.java
@@ -131,7 +131,7 @@ public class IndexerWebService {
 			stats.setDocumentQueueSize(fStatus.getDocumentQueueSize());
 			stats.setRunningFolderIndexerCount(fStatus.getNumberRunningFolderIndexer());
 			stats.setAvailableFolderIndexerCount(fStatus.getNumberAvailableFolderIndexer());
-			stats.setLastFullIndexTime(fStatus.getLastFullIndexTime());
+			stats.setLastFullIndexTime(fStatus.getLastFullIndexDateString());
 			stats.setStatus(status.getStatus());
 		} else {
 			stats.setStatus("disabled");
diff --git a/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java b/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java
index 15c893850c6999b2565e20e510f925728bbe3d57..0f24a425001c8747def534751dcb6a749a78fa3f 100644
--- a/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java
+++ b/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java
@@ -55,17 +55,17 @@ import org.olat.restapi.system.vo.UserStatisticsVO;
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
 public class OpenOLATStatisticsWebService implements Sampler {
-	
+
 	private final IndexerWebService indexerWebService = new IndexerWebService();
-	
+
 	/**
 	 * Return the statistics about OpenOLAT, users count, courses count... 
 	 * @response.representation.200.qname {http://www.example.com}releaseVO
-   * @response.representation.200.mediaType application/xml, application/json
-   * @response.representation.200.doc The verison of the instance
-   * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_STATSVO}
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc The verison of the instance
+	 * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_STATSVO}
 	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
-   * @param request The HTTP request
+	 * @param request The HTTP request
 	 * @return The statistics about OpenOLAT
 	 */
 	@GET
@@ -78,15 +78,15 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		stats.setIndexerStatistics(indexerWebService.getIndexerStatistics());
 		return Response.ok(stats).build();
 	}
-	
+
 	/**
 	 * Return the statistics about OpenOLAT users
 	 * @response.representation.200.qname {http://www.example.com}releaseVO
-   * @response.representation.200.mediaType application/xml, application/json
-   * @response.representation.200.doc The verison of the instance
-   * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_USERSSTATSVO}
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc The verison of the instance
+	 * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_USERSSTATSVO}
 	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
-   * @param request The HTTP request
+	 * @param request The HTTP request
 	 * @return The statistics about OpenOLAT users
 	 */
 	@GET
@@ -96,15 +96,15 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		UserStatisticsVO stats = getUserStatisticsVO();
 		return Response.ok(stats).build();
 	}
-	
+
 	/**
 	 * Return the statistics about the repository, courses count, published courses... 
 	 * @response.representation.200.qname {http://www.example.com}releaseVO
-   * @response.representation.200.mediaType application/xml, application/json
-   * @response.representation.200.doc The verison of the instance
-   * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_REPOSTATSVO}
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc The verison of the instance
+	 * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_REPOSTATSVO}
 	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
-   * @param request The HTTP request
+	 * @param request The HTTP request
 	 * @return The statistics about the repository
 	 */
 	@GET
@@ -114,15 +114,15 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		RepositoryStatisticsVO stats = getRepositoryStatisticsVO();
 		return Response.ok(stats).build();
 	}
-	
+
 	/**
 	 * Return the statistics about the indexer
 	 * @response.representation.200.qname {http://www.example.com}releaseVO
-   * @response.representation.200.mediaType application/xml, application/json
-   * @response.representation.200.doc The verison of the instance
-   * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_INDEXERSTATSVO}
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc The verison of the instance
+	 * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_OO_INDEXERSTATSVO}
 	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
-   * @param request The HTTP request
+	 * @param request The HTTP request
 	 * @return The statistics about the indexer
 	 */
 	@Path("indexer")
@@ -133,11 +133,11 @@ public class OpenOLATStatisticsWebService implements Sampler {
 	/**
 	 * Return some statistics about session.
 	 * @response.representation.200.qname {http://www.example.com}sessionVO
-   * @response.representation.200.mediaType application/xml, application/json
-   * @response.representation.200.doc A short summary about sessions
-   * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_SESSIONVO}
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc A short summary about sessions
+	 * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_SESSIONVO}
 	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
-   * @param request The HTTP request
+	 * @param request The HTTP request
 	 * @return The statistics about sessions
 	 */
 	@GET
@@ -147,15 +147,15 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		SessionsVO vo = getSessionsVO();
 		return Response.ok(vo).build();
 	}
-	
+
 	/**
 	 * Return some statistics about long running tasks.
 	 * @response.representation.200.qname {http://www.example.com}taskVOes
-   * @response.representation.200.mediaType application/xml, application/json
-   * @response.representation.200.doc A short summary about sessions
-   * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_SESSIONVO}
+	 * @response.representation.200.mediaType application/xml, application/json
+	 * @response.representation.200.doc A short summary about sessions
+	 * @response.representation.200.example {@link org.olat.restapi.system.vo.Examples#SAMPLE_SESSIONVO}
 	 * @response.representation.401.doc The roles of the authenticated user are not sufficient
-   * @param request The HTTP request
+	 * @param request The HTTP request
 	 * @return The statistics about sessions
 	 */
 	@GET
@@ -165,7 +165,7 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		TasksVO vo = getTasksVO();
 		return Response.ok(vo).build();
 	}
-	
+
 	private UserStatisticsVO getUserStatisticsVO() {
 		UserStatisticsVO stats = new UserStatisticsVO();
 		BaseSecurity securityManager = CoreSpringFactory.getImpl(BaseSecurity.class);
@@ -173,25 +173,25 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		// activeUserCount="88" // registered and activated identities, same as in GUI
 		long countActiveUsers = securityManager.countIdentitiesByPowerSearch(null, null, false, null, null, null, null, null, null, null, Constants.USERSTATUS_ACTIVE);
 		stats.setActiveUserCount(countActiveUsers);
-		
-		// active last week
+
+		// active last day
 		Calendar lastDay = Calendar.getInstance();
 		lastDay.add(Calendar.DATE, -1);
 		long activeUserCountDay = securityManager.countUniqueUserLoginsSince(lastDay.getTime());
 		stats.setActiveUserCountLastDay(activeUserCountDay);
-		
+
 		// active last week
 		Calendar lastWeek = Calendar.getInstance();
 		lastWeek.add(Calendar.DATE, -7);
 		long activeUserCountWeek = securityManager.countUniqueUserLoginsSince(lastWeek.getTime());
 		stats.setActiveUserCountLastWeek(activeUserCountWeek);
-		
+
 		// active last month
 		Calendar lastMonth = Calendar.getInstance();
 		lastMonth.add(Calendar.MONTH, -1);
 		long activeUserCountMonth = securityManager.countUniqueUserLoginsSince(lastMonth.getTime());
 		stats.setActiveUserCountLastMonth(activeUserCountMonth);
-		
+
 		// active last 6 month
 		Calendar last6Month = Calendar.getInstance();
 		last6Month.add(Calendar.MONTH, -6);
@@ -201,14 +201,14 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		// externalUserCount="12" // EP invite identities, later maybe also used in courses for MOOCS, external experts etc)
 		long invitationsCount = CoreSpringFactory.getImpl(InvitationDAO.class).countInvitations();
 		stats.setExternalUserCount(invitationsCount);
-		
+
 		// blockedUserCount="0" // identities in login blocked state
 		long blockedUserCount = securityManager.countIdentitiesByPowerSearch(null, null, true, null, null, null, null, null, null, null, Identity.STATUS_LOGIN_DENIED);	
 		stats.setBlockedUserCount(blockedUserCount);
 		// deletedUserCount="943" // deleted identities
 		long deletedUserCount = securityManager.countIdentitiesByPowerSearch(null, null, true, null, null, null, null, null, null, null, Identity.STATUS_DELETED);	
 		stats.setDeletedUserCount(deletedUserCount);
-		
+
 		// totalUserCount="1043" // Sum of all above
 		long countUsers = securityManager.countIdentitiesByPowerSearch(null, null, false, null, null, null, null, null, null, null, null);
 		stats.setTotalUserCount(countUsers);
@@ -218,7 +218,7 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		stats.setTotalGroupCount(countGroups);
 		return stats;
 	}
-	
+
 	private RepositoryStatisticsVO getRepositoryStatisticsVO() {
 		RepositoryStatisticsVO stats = new RepositoryStatisticsVO();
 		RepositoryManager repoMgr = CoreSpringFactory.getImpl(RepositoryManager.class);
@@ -228,7 +228,7 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		stats.setPublishedCoursesCount(publishedCourses);
 		return stats;
 	}
-	
+
 	private TasksVO getTasksVO() {
 		TasksVO tasks = new TasksVO();
 		List<String> longRunningTaskList = WorkThreadInformations.getLongRunningTasks();
@@ -236,7 +236,7 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		tasks.setLongRunningTasks(longRunningTasks);
 		return tasks;
 	}
-	
+
 	private SessionsVO getSessionsVO() {
 		SessionsVO vo = new SessionsVO();
 
@@ -270,7 +270,7 @@ public class OpenOLATStatisticsWebService implements Sampler {
 				}
 			}
 		}
-		
+
 		vo.setAuthenticatedCount(authenticatedcount);
 		vo.setSecureAuthenticatedCount(secureAuthenticatedCount);
 		vo.setWebdavCount(webdavcount);
@@ -291,10 +291,10 @@ public class OpenOLATStatisticsWebService implements Sampler {
 		vo.setConcurrentDispatchThreads(sessionStatsManager.getConcurrentCounter());	
 		return vo;
 	}
-	
-  @Override
+
+	@Override
 	public void takeSample() {
-  	SessionStatsManager manager = CoreSpringFactory.getImpl(SessionStatsManager.class);
+		SessionStatsManager manager = CoreSpringFactory.getImpl(SessionStatsManager.class);
 		if(manager != null) {//check if the manager is loaded
 			manager.takeSample();
 		}
diff --git a/src/main/java/org/olat/search/service/document/file/ExcelOOXMLDocument.java b/src/main/java/org/olat/search/service/document/file/ExcelOOXMLDocument.java
index bcdc48d6404b5ce47db501dec73c93d433d0bea5..29f7d7b872dc13941b4176ce7ff6aa7853e908a1 100644
--- a/src/main/java/org/olat/search/service/document/file/ExcelOOXMLDocument.java
+++ b/src/main/java/org/olat/search/service/document/file/ExcelOOXMLDocument.java
@@ -31,9 +31,9 @@ import org.olat.core.gui.util.CSSHelper;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
+import org.olat.core.util.io.ShieldInputStream;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.search.service.SearchResourceContext;
-import org.olat.search.service.document.file.utils.ShieldInputStream;
 import org.olat.search.service.document.file.utils.SlicedDocument;
 import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
diff --git a/src/main/java/org/olat/search/service/document/file/OpenDocument.java b/src/main/java/org/olat/search/service/document/file/OpenDocument.java
index 15943ead5ff9c4be60a922c43cc291e9cbf46e71..5dc2ae635e9a3705eeb78941f33a810eecb70d17 100644
--- a/src/main/java/org/olat/search/service/document/file/OpenDocument.java
+++ b/src/main/java/org/olat/search/service/document/file/OpenDocument.java
@@ -30,9 +30,9 @@ import org.olat.core.gui.util.CSSHelper;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
+import org.olat.core.util.io.ShieldInputStream;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.search.service.SearchResourceContext;
-import org.olat.search.service.document.file.utils.ShieldInputStream;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.DefaultHandler;
diff --git a/src/main/java/org/olat/search/service/document/file/PowerPointOOXMLDocument.java b/src/main/java/org/olat/search/service/document/file/PowerPointOOXMLDocument.java
index 1dbea4935b579711ea125433dd52c2658bf3e091..2212ea257337169098a6fb3845b7b56e52df2d92 100644
--- a/src/main/java/org/olat/search/service/document/file/PowerPointOOXMLDocument.java
+++ b/src/main/java/org/olat/search/service/document/file/PowerPointOOXMLDocument.java
@@ -29,9 +29,9 @@ import org.olat.core.gui.util.CSSHelper;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
+import org.olat.core.util.io.ShieldInputStream;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.search.service.SearchResourceContext;
-import org.olat.search.service.document.file.utils.ShieldInputStream;
 import org.olat.search.service.document.file.utils.SlicedDocument;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
diff --git a/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java b/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java
index da0e2b1771e57dad940cf6f21ce955195cf9c88b..4e82911f5b728fa2cdfa616145a741519a76c1c9 100644
--- a/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java
+++ b/src/main/java/org/olat/search/service/document/file/WordOOXMLDocument.java
@@ -29,9 +29,9 @@ import org.olat.core.gui.util.CSSHelper;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
+import org.olat.core.util.io.ShieldInputStream;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.search.service.SearchResourceContext;
-import org.olat.search.service.document.file.utils.ShieldInputStream;
 import org.olat.search.service.document.file.utils.SlicedDocument;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
diff --git a/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java b/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java
index 6381d19687fef674083860125b82ec23201ca988..57cf3c244695eadd4b9d1f2941cc5553c1795b51 100644
--- a/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java
+++ b/src/main/java/org/olat/search/service/indexer/FullIndexerStatus.java
@@ -75,14 +75,22 @@ public class FullIndexerStatus {
 	/**
 	 * @return Returns the lastFullIndexTime.
 	 */
-	public String getLastFullIndexTime() {
-		if (lastFullIndexTime != 0) {
+	public String getLastFullIndexDateString() {
+		if (lastFullIndexTime > 0) {
 			return new Date(lastFullIndexTime).toString();
 		} else {
 			// not finished yet
 			return "-";
 		}
 	}
+	
+	public long getLastFullIndexTime() {
+		return lastFullIndexTime;
+	}
+	
+	public void setLastFullIndexTime(long time) {
+		lastFullIndexTime = time;
+	}
 
 	/**
 	 * @return Returns the status.
@@ -116,7 +124,7 @@ public class FullIndexerStatus {
    * reset full-index document-counter and all document-counters. 
    */
 	public void indexingStarted() {
-		this.fullIndexStartedAt = System.currentTimeMillis();
+		fullIndexStartedAt = System.currentTimeMillis();
 		setStatus(STATUS_RUNNING);
 		setDocumentCount(0);//Reset FullIndex-DocumentCounter
 		resetAllDocumentCounters();
@@ -138,8 +146,8 @@ public class FullIndexerStatus {
    * Indexing finished. Set end time, calculate duration and set status to 'finished'. 
    */
 	public void indexingFinished() {
-		this.lastFullIndexTime = System.currentTimeMillis();
-		indexingTime = this.lastFullIndexTime - this.fullIndexStartedAt;
+		lastFullIndexTime = System.currentTimeMillis();
+		indexingTime = lastFullIndexTime - fullIndexStartedAt;
 		setStatus(STATUS_FINISHED);
 	}
 
diff --git a/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java b/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java
index 7506fd6bce8bf8b24ccf6d8fe391f5cff3c32c96..05b6e422d7906e57b8efc4e42f9432ce29cb81b1 100644
--- a/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/OlatFullIndexer.java
@@ -27,10 +27,17 @@ package org.olat.search.service.indexer;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.nio.file.attribute.FileTime;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
+import java.util.concurrent.atomic.AtomicLong;
 
 import org.apache.lucene.LucenePackage;
 import org.apache.lucene.analysis.Analyzer;
@@ -65,6 +72,7 @@ public class OlatFullIndexer {
 	private static final int MAX_SIZE_QUEUE = 500;
 	private int numberIndexWriter = 5;
 
+	private String  indexPath;
 	private String  tempIndexPath;
 
 	/**
@@ -116,17 +124,45 @@ public class OlatFullIndexer {
 		this.index = index;
 		this.mainIndexer = mainIndexer;
 		this.coordinatorManager = coordinatorManager;
+		indexPath = searchModuleConfig.getFullIndexPath();
 		tempIndexPath = searchModuleConfig.getFullTempIndexPath();
 		indexInterval = searchModuleConfig.getIndexInterval();
 		numberIndexWriter = searchModuleConfig.getNumberIndexWriter();
 		documentsPerInterval = searchModuleConfig.getDocumentsPerInterval();
 		ramBufferSizeMB = searchModuleConfig.getRAMBufferSizeMB();
-		fullIndexerStatus = new FullIndexerStatus(numberIndexWriter);    
+		fullIndexerStatus = new FullIndexerStatus(numberIndexWriter);
 		stopIndexing = true;
 		documentQueue = new Vector<Document>();
+		initStatus();
 		resetDocumentCounters();
 	}
 	
+	private void initStatus() {
+		File indexDir = new File(indexPath);
+		if (indexDir.exists()) {
+			final AtomicLong last = new AtomicLong(1);
+			try {
+				Files.walkFileTree(indexDir.toPath(), new SimpleFileVisitor<Path>(){
+					public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+						if(attrs.isRegularFile()) {
+							FileTime time = attrs.lastModifiedTime();
+							long timeInMillis = time.toMillis();
+							if(timeInMillis > 0 && last.longValue() < timeInMillis) {
+								last.set(timeInMillis);
+							}
+						}
+				        return FileVisitResult.CONTINUE;
+					}
+				});
+			} catch (IOException e) {
+				log.error("", e);
+			}
+			fullIndexerStatus.setLastFullIndexTime(last.get());
+		} else {
+			fullIndexerStatus.setLastFullIndexTime(1);
+		}
+	}
+	
 	/**
 	 * Start full indexer thread.
 	 */
@@ -267,7 +303,7 @@ public class OlatFullIndexer {
 	 */
 	public void run() {
 		try {
-		  //TODO: Workround : does not start immediately
+			//TODO: Workround : does not start immediately
 			Thread.sleep(10000);
 
 			log.info("full indexing starts... Lucene-version:" + LucenePackage.get().getImplementationVersion());
@@ -286,7 +322,7 @@ public class OlatFullIndexer {
 			log.info("full indexing summary: started:           "+status.getFullIndexStartedAt());
 			log.info("full indexing summary: counter:           "+status.getDocumentCount());
 			log.info("full indexing summary: index.per.minute:  "+status.getIndexPerMinute());
-			log.info("full indexing summary: finished:          "+status.getLastFullIndexTime());
+			log.info("full indexing summary: finished:          "+status.getLastFullIndexDateString());
 			log.info("full indexing summary: time:              "+status.getIndexingTime()+" ms");
 			log.info("full indexing summary: size:              "+status.getIndexSize());
 			
@@ -446,7 +482,7 @@ public class OlatFullIndexer {
 	}
 	
 	private void resetDocumentCounters() {
-    documentCounters = new Hashtable<String,Integer>();
-    fileTypeCounters = new Hashtable<String,Integer>();		
+		documentCounters = new Hashtable<String,Integer>();
+		fileTypeCounters = new Hashtable<String,Integer>();		
 	}
 }
diff --git a/src/main/java/org/olat/search/service/indexer/repository/CourseIndexer.java b/src/main/java/org/olat/search/service/indexer/repository/CourseIndexer.java
index c70dc3b01fc2ea98fa32650e9586d5fec18ac802..b6c1d1f2cc680845b13139b1b2dd4188c04a14a7 100644
--- a/src/main/java/org/olat/search/service/indexer/repository/CourseIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/repository/CourseIndexer.java
@@ -204,7 +204,7 @@ public class CourseIndexer extends AbstractHierarchicalIndexer {
 			return courseNodeIndexer.checkAccess(bcContextEntry, businessControl, identity, roles)
 					&& super.checkAccess(bcContextEntry, businessControl, identity, roles);		
 		} else {
-  		return false;
+			return false;
 		}
 	}
 	
diff --git a/src/main/java/org/olat/search/service/indexer/repository/RepositoryIndexer.java b/src/main/java/org/olat/search/service/indexer/repository/RepositoryIndexer.java
index 5e53127789c8cc6fb64dd598b8f81276f0693158..e5fb4ce58473ee74221c2f4f0bed592a09593b23 100644
--- a/src/main/java/org/olat/search/service/indexer/repository/RepositoryIndexer.java
+++ b/src/main/java/org/olat/search/service/indexer/repository/RepositoryIndexer.java
@@ -30,6 +30,7 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.lucene.document.Document;
+import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
@@ -42,6 +43,11 @@ import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 import org.olat.repository.manager.RepositoryEntryDocumentFactory;
 import org.olat.repository.model.SearchRepositoryEntryParameters;
+import org.olat.resource.accesscontrol.ACService;
+import org.olat.resource.accesscontrol.AccessResult;
+import org.olat.resource.accesscontrol.model.OfferAccess;
+import org.olat.resource.accesscontrol.provider.free.FreeAccessHandler;
+import org.olat.resource.accesscontrol.provider.paypal.PaypalAccessHandler;
 import org.olat.search.SearchModule;
 import org.olat.search.service.SearchResourceContext;
 import org.olat.search.service.indexer.AbstractHierarchicalIndexer;
@@ -199,6 +205,25 @@ public class RepositoryIndexer extends AbstractHierarchicalIndexer {
 			boolean isAllowedToLaunch = false;
 			if (!isOwner) {
 				isAllowedToLaunch = repositoryManager.isAllowedToLaunch(identity, roles, repositoryEntry);
+				if(isAllowedToLaunch) {
+					List<ContextEntry> entries = businessControl.getEntriesDownTheControls();
+					if(entries.size() > 1) {
+						boolean hasAccess = false;
+						ACService acService = CoreSpringFactory.getImpl(ACService.class);
+						AccessResult acResult = acService.isAccessible(repositoryEntry, identity, false); 
+						if (acResult.isAccessible()) {
+							hasAccess = true;
+						} else if (!acResult.getAvailableMethods().isEmpty()) {
+							for(OfferAccess offer:acResult.getAvailableMethods()) {
+								String type = offer.getMethod().getType();
+								if (type.equals(FreeAccessHandler.METHOD_TYPE) || type.equals(PaypalAccessHandler.METHOD_TYPE)) {
+									hasAccess = true;
+								}
+							}
+						}
+						isAllowedToLaunch = hasAccess;
+					}
+				}
 			}
 			if (debug) logDebug("isOwner=" + isOwner + "  isAllowedToLaunch=" + isAllowedToLaunch);
 			if (isOwner || isAllowedToLaunch) {
diff --git a/src/main/java/org/olat/social/shareLink/ShareLinkController.java b/src/main/java/org/olat/social/shareLink/ShareLinkController.java
index a3896fb5bb80df9372eee8e6bc8bc4af4288c099..bf2ef1706e3b03e6821066c4937a7b519e485824 100644
--- a/src/main/java/org/olat/social/shareLink/ShareLinkController.java
+++ b/src/main/java/org/olat/social/shareLink/ShareLinkController.java
@@ -60,7 +60,7 @@ import org.olat.social.SocialModule;
  */
 
 public class ShareLinkController extends BasicController {
-	private VelocityContainer shareLinkVC;
+	private final VelocityContainer shareLinkVC;
 	
 	/**
 	 * Standard constructor for the share link controller
@@ -70,22 +70,17 @@ public class ShareLinkController extends BasicController {
 	public ShareLinkController(UserRequest ureq, WindowControl wControl) {
 		super(ureq, wControl);
 		// For simplicity we use only one velocity template
-		this.shareLinkVC = createVelocityContainer("shareLink");
+		shareLinkVC = createVelocityContainer("shareLink");
 		// Add the OpenOLAT base URL from the config
 		shareLinkVC.contextPut("baseURL", Settings.getServerContextPathURI());
 		// Load configured share link buttons from the SocialModule configuration
 		SocialModule socialModule = (SocialModule) CoreSpringFactory.getBean("socialModule");
-		this.shareLinkVC.contextPut("shareLinks", socialModule.getEnabledShareLinkButtons());
+		shareLinkVC.contextPut("shareLinks", socialModule.getEnabledShareLinkButtons());
 		// Tell if user is logged in
-		this.shareLinkVC.contextPut("isUser", ureq.getUserSession().isAuthenticated() && !ureq.getUserSession().getRoles().isGuestOnly());
-		//
-		putInitialPanel(this.shareLinkVC);
+		shareLinkVC.contextPut("isUser", ureq.getUserSession().isAuthenticated() && !ureq.getUserSession().getRoles().isGuestOnly());
+		putInitialPanel(shareLinkVC);
 	}
 
-
-	/* (non-Javadoc)
-	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest, org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
-	 */
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if (source == shareLinkVC && event.getCommand().equals("setLandingPage") && ureq.getUserSession().isAuthenticated()) {
@@ -107,12 +102,8 @@ public class ShareLinkController extends BasicController {
 		}
 	}
 
-	/* (non-Javadoc)
-	 * @see org.olat.core.gui.control.DefaultController#doDispose()
-	 */
 	@Override
 	protected void doDispose() {
 		// nothing to do
 	}
-
 }
diff --git a/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java b/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java
index 5e8ad5840626a66e2cd20214efdd0f8089e4d4f2..567339390f09122b1f1f3a9c5b8a33359b033019 100644
--- a/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java
+++ b/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java
@@ -64,6 +64,17 @@ public class GenderPropertyHandler extends AbstractUserPropertyHandler {
 		return values;
 	}
 
+	@Override
+	public void setUserProperty(User user, String value) {
+		if(value != null) {
+			if("m".equals(value)) {
+				value = "male";
+			} else if("f".equals(value)) {
+				value = "female";
+			}	
+		}
+		super.setUserProperty(user, value);
+	}
 
 	/**
 	 * @see org.olat.user.AbstractUserPropertyHandler#getUserProperty(org.olat.core.id.User, java.util.Locale)
diff --git a/src/main/resources/database/mysql/alter_10_1_0_to_10_2_0.sql b/src/main/resources/database/mysql/alter_10_1_0_to_10_2_0.sql
index f05ab0887e85da604ca63795d53def2a79247716..71ab8aefa04bfc277019b22c777e4fff7df6de94 100644
--- a/src/main/resources/database/mysql/alter_10_1_0_to_10_2_0.sql
+++ b/src/main/resources/database/mysql/alter_10_1_0_to_10_2_0.sql
@@ -53,3 +53,17 @@ alter table o_as_mode_course_to_group add constraint as_modetogroup_mode_idx for
 
 alter table o_as_mode_course_to_area add constraint as_modetoarea_area_idx foreign key (fk_area_id) references o_gp_bgarea (area_id);
 alter table o_as_mode_course_to_area add constraint as_modetoarea_mode_idx foreign key (fk_assessment_mode_id) references o_as_mode_course (id);
+
+
+alter table o_repositoryentry add column allowtoleave varchar(16);
+
+-- refactoring coaching (maybe test views)
+drop view if exists o_as_eff_statement_members_strict_v;
+drop view if exists o_as_eff_statement_grouped_v;
+drop view if exists o_as_eff_statement_members_v;
+drop view if exists o_as_eff_statement_identities_v;
+-- real ones
+drop view if exists o_as_eff_statement_identity_v;
+drop view if exists o_as_eff_statement_students_v;
+drop view if exists o_as_eff_statement_courses_v;
+drop view if exists o_as_eff_statement_groups_v;
diff --git a/src/main/resources/database/mysql/refreshViews.sql b/src/main/resources/database/mysql/refreshViews.sql
index 236663c1d2f7163e4ed2a0671b0f250c48dfe466..636bc6e409e504d0ccf1a87d65398410a41a5d48 100644
--- a/src/main/resources/database/mysql/refreshViews.sql
+++ b/src/main/resources/database/mysql/refreshViews.sql
@@ -1,3 +1,14 @@
+-- drop unused views
+drop view if exists o_as_eff_statement_members_strict_v;
+drop view if exists o_as_eff_statement_grouped_v;
+drop view if exists o_as_eff_statement_members_v;
+drop view if exists o_as_eff_statement_identities_v;
+drop view if exists o_as_eff_statement_identity_v;
+drop view if exists o_as_eff_statement_students_v;
+drop view if exists o_as_eff_statement_courses_v;
+drop view if exists o_as_eff_statement_groups_v;
+
+
 -- user view
 create or replace view o_bs_identity_short_v as (
    select
@@ -200,95 +211,6 @@ create or replace view o_gp_contactext_v as (
       (bgroup.participantsintern=true and bg_member.g_role='participant')
 );
 
--- coaching
-create or replace view o_as_eff_statement_identity_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create or replace view o_as_eff_statement_students_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create or replace view o_as_eff_statement_courses_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create or replace view o_as_eff_statement_groups_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_bg.group_id as bg_id,
-      sg_bg.groupname as bg_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_gp_business as sg_bg on (sg_bg.fk_group_id=togroup.fk_group_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_bg.group_id, sg_bg.groupname,
-      sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
 -- instant messaging
 create or replace view o_im_roster_entry_v as (
    select
diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql
index 9e51ec27b10d70baf8cc7826a54a109f49d31521..2b23c942a732d8f1c7b2f6da0f4e1f8c90de1348 100644
--- a/src/main/resources/database/mysql/setupDatabase.sql
+++ b/src/main/resources/database/mysql/setupDatabase.sql
@@ -318,6 +318,7 @@ create table if not exists o_repositoryentry (
    accesscode integer not null default 0,
    membersonly bit default 0,
    statuscode integer,
+   allowtoleave varchar(16),
    canlaunch bit not null,
    candownload bit not null,
    cancopy bit not null,
@@ -1567,94 +1568,6 @@ create view o_gp_contactext_v as (
       (bgroup.participantsintern=true and bg_member.g_role='participant')
 );
 
--- coaching
-create or replace view o_as_eff_statement_identity_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create or replace view o_as_eff_statement_students_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create or replace view o_as_eff_statement_courses_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create or replace view o_as_eff_statement_groups_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_bg.group_id as bg_id,
-      sg_bg.groupname as bg_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_gp_business as sg_bg on (sg_bg.fk_group_id=togroup.fk_group_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_bg.group_id, sg_bg.groupname,
-      sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
 
 -- instant messaging
 create or replace view o_im_roster_entry_v as (
diff --git a/src/main/resources/database/oracle/alter_10_1_0_to_10_2_0.sql b/src/main/resources/database/oracle/alter_10_1_0_to_10_2_0.sql
index 2ca62b1b02cba70c07ac09aa5c9c86bf1a693dc4..d0dcb35f39b8733bbd9b553a9b91d1ee68887e1c 100644
--- a/src/main/resources/database/oracle/alter_10_1_0_to_10_2_0.sql
+++ b/src/main/resources/database/oracle/alter_10_1_0_to_10_2_0.sql
@@ -53,3 +53,12 @@ alter table o_as_mode_course_to_area add constraint as_modetoarea_mode_idx forei
 create index idx_as_modetoarea_area_idx on o_as_mode_course_to_area (fk_area_id);
 create index idx_as_modetoarea_mode_idx on o_as_mode_course_to_area (fk_assessment_mode_id);
 
+
+alter table o_repositoryentry add allowtoleave varchar2(16 char);
+
+
+-- refactoring coaching
+drop view o_as_eff_statement_identity_v;
+drop view o_as_eff_statement_students_v;
+drop view o_as_eff_statement_courses_v;
+drop view o_as_eff_statement_groups_v;
\ No newline at end of file
diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql
index 60e3fac26a4d7f6b1f8888358256654b8c33745f..687497f4af938c142c85990198960229ae97622b 100644
--- a/src/main/resources/database/oracle/setupDatabase.sql
+++ b/src/main/resources/database/oracle/setupDatabase.sql
@@ -371,6 +371,7 @@ CREATE TABLE o_repositoryentry (
   accesscode number(11) NOT NULL,
   membersonly number default 0,
   statuscode number(11),
+  allowtoleave varchar2(16 char),
   canlaunch number NOT NULL,
   candownload number NOT NULL,
   cancopy number NOT NULL,
@@ -1619,93 +1620,6 @@ create view o_gp_contactext_v as (
       (bgroup.participantsintern>0 and bg_member.g_role='participant')
 );
 
-create view o_as_eff_statement_identity_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = 1 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry sg_re
-   inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_participant.fk_identity_id,
-      sg_statement.passed, sg_statement.id, sg_statement.score, pg_initial_launch.id
-);
-
-create view o_as_eff_statement_students_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed > 0 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry sg_re
-   inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.passed, sg_statement.id, sg_statement.score, pg_initial_launch.id
-);
-
-create view o_as_eff_statement_courses_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed > 0 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry sg_re
-   inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.passed, sg_statement.id, sg_statement.score, pg_initial_launch.id
-);
-
-create view o_as_eff_statement_groups_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_bg.group_id as bg_id,
-      sg_bg.groupname as bg_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed > 0 then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = 0 then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry sg_re
-   inner join o_re_to_group togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_gp_business sg_bg on (sg_bg.fk_group_id=togroup.fk_group_id)
-   inner join o_bs_group_member sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_bg.group_id, sg_bg.groupname,
-      sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.passed, sg_statement.id, sg_statement.score, pg_initial_launch.id
-);
 
 create or replace view o_im_roster_entry_v as (
    select
diff --git a/src/main/resources/database/postgresql/alter_10_1_0_to_10_2_0.sql b/src/main/resources/database/postgresql/alter_10_1_0_to_10_2_0.sql
index 8d5c7b8a926b769504b7193535d173b15e0519d5..768a4c5520c6b646acaf91474c3d7cd31bef0263 100644
--- a/src/main/resources/database/postgresql/alter_10_1_0_to_10_2_0.sql
+++ b/src/main/resources/database/postgresql/alter_10_1_0_to_10_2_0.sql
@@ -53,3 +53,11 @@ alter table o_as_mode_course_to_area add constraint as_modetoarea_mode_idx forei
 create index idx_as_modetoarea_area_idx on o_as_mode_course_to_area (fk_area_id);
 create index idx_as_modetoarea_mode_idx on o_as_mode_course_to_area (fk_assessment_mode_id);
 
+
+alter table o_repositoryentry add column allowtoleave varchar(16);
+
+-- refactoring coaching
+drop view if exists o_as_eff_statement_identity_v;
+drop view if exists o_as_eff_statement_students_v;
+drop view if exists o_as_eff_statement_courses_v;
+drop view if exists o_as_eff_statement_groups_v;
\ No newline at end of file
diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql
index 6db989b954d23e786fb11724e3f5272909eeb2f9..d23214d2bd3886cc4c9f38137161e39c2e1e0a16 100644
--- a/src/main/resources/database/postgresql/setupDatabase.sql
+++ b/src/main/resources/database/postgresql/setupDatabase.sql
@@ -316,6 +316,7 @@ create table o_repositoryentry (
    accesscode int4 not null,
    membersonly boolean default false,
    statuscode int4,
+   allowtoleave varchar(16),
    canlaunch bool not null,
    candownload bool not null,
    cancopy bool not null,
@@ -1568,94 +1569,6 @@ create view o_gp_contactext_v as (
       (bgroup.participantsintern=true and bg_member.g_role='participant')
 );
 
--- coaching
-create view o_as_eff_statement_identity_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = true then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = false then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=togroup.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create view o_as_eff_statement_students_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = true then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = false then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create view o_as_eff_statement_courses_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = true then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = false then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
-
-create view o_as_eff_statement_groups_v as (
-   select
-      sg_re.repositoryentry_id as re_id,
-      sg_re.displayname as re_name,
-      sg_bg.group_id as bg_id,
-      sg_bg.groupname as bg_name,
-      sg_coach.fk_identity_id as tutor_id,
-      sg_participant.fk_identity_id as student_id,
-      sg_statement.id as st_id,
-      (case when sg_statement.passed = true then 1 else 0 end) as st_passed,
-      (case when sg_statement.passed = false then 1 else 0 end) as st_failed,
-      (case when sg_statement.passed is null then 1 else 0 end) as st_not_attempted,
-      sg_statement.score as st_score,
-      pg_initial_launch.id as pg_id
-   from o_repositoryentry as sg_re
-   inner join o_re_to_group as togroup on (togroup.fk_entry_id = sg_re.repositoryentry_id)
-   inner join o_gp_business as sg_bg on (sg_bg.fk_group_id=togroup.fk_group_id)
-   inner join o_bs_group_member as sg_coach on (sg_coach.fk_group_id=togroup.fk_group_id and sg_coach.g_role in ('owner','coach'))
-   inner join o_bs_group_member as sg_participant on (sg_participant.fk_group_id=sg_coach.fk_group_id and sg_participant.g_role='participant')
-   left join o_as_eff_statement as sg_statement on (sg_statement.fk_identity = sg_participant.fk_identity_id and sg_statement.fk_resource_id = sg_re.fk_olatresource)
-   left join o_as_user_course_infos as pg_initial_launch on (pg_initial_launch.fk_resource_id = sg_re.fk_olatresource and pg_initial_launch.fk_identity = sg_participant.fk_identity_id)
-   group by sg_re.repositoryentry_id, sg_re.displayname, sg_bg.group_id, sg_bg.groupname,
-      sg_coach.fk_identity_id, sg_participant.fk_identity_id,
-      sg_statement.id, sg_statement.passed, sg_statement.score, pg_initial_launch.id
-);
 
 -- instant messaging
 create or replace view o_im_roster_entry_v as (
diff --git a/src/main/resources/serviceconfig/olat.properties b/src/main/resources/serviceconfig/olat.properties
index 356b5c36ebeb8683b118f974e9a55e853500a515..4725f40e2d29c4d3a80c5b633b096977df3f5789 100644
--- a/src/main/resources/serviceconfig/olat.properties
+++ b/src/main/resources/serviceconfig/olat.properties
@@ -266,8 +266,14 @@ group.managed=false
 group.managed.values=true,false
 
 ####################################################
-# assessmentplugin config
+# assessment config
 ####################################################
+
+# enable / disable the course assessment mode
+assessment.mode=enabled
+assessment.mode.values=enabled,disabled
+
+####
 # Olat -> default assessmentplugin
 # Onyx -> The Onyx-Testplayer (onyxassessmentplugin) can be downloaded at http://www.olat.de/onyx. 
 # 		  The Testplayer is one element of the Onyx-Testsuite and has been designed, 
diff --git a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.js b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.js
index ddbab0bc8775c14847b362dd278cbe0b48422d1c..bbf8b733ba00deabf80582f2df97dc633ac89c99 100644
--- a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.js
+++ b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.js
@@ -14,7 +14,7 @@
 				author : 'frentix GmbH',
 				authorurl : 'http://www.frentix.com',
 				infourl : 'http://www.frentix.com',
-				version : '2.1.1'
+				version : '2.2'
 			};
 		},
 
@@ -56,7 +56,7 @@
 				s += getStr(null, 'starttime');
 				s += getBool(null, 'autostart');
 				s += getBool(null, 'repeat');
-				s += getBool(null, 'controlbar');
+				s += 'controlbar:true,';
 				s += getStr(null, 'provider');
 				s += getStr(null, 'width');
 				s += getStr(null, 'height');
@@ -74,7 +74,6 @@
 					setStr(pl, null, 'starttime');
 					setBool(pl, null, 'autostart');
 					setBool(pl, null, 'repeat');
-					setBool(pl, null, 'controlbar');
 					setStr(pl, null, 'provider');
 					setStr(pl, null, 'width');
 					setStr(pl, null, 'height');
@@ -296,8 +295,7 @@
 					    	items: [
 					    	    { name: 'starttime', type: 'textbox', checked: true, label: translator().translate('olatmovieviewer.starttime')},
 					    	    { name: 'autostart', type: 'checkbox', checked: false, label: translator().translate('olatmovieviewer.autostart'), text:''},
-					    	    { name: 'repeat', type: 'checkbox', checked: false, label: translator().translate('olatmovieviewer.repeat'), text:''},
-					    	    { name: 'controlbar', type: 'checkbox', checked: false, label: translator().translate('olatmovieviewer.controlbar'), text:''}
+					    	    { name: 'repeat', type: 'checkbox', checked: false, label: translator().translate('olatmovieviewer.repeat'), text:''}
 					    	]
 					    }],
 					onSubmit: insertVideo
@@ -329,7 +327,7 @@
 				pl += 'starttime:' + settingsArr[4] + ',';
 				pl += 'autostart:' + settingsArr[8] + ',';
 				pl += 'repeat:' + settingsArr[9] + ',';
-				pl += 'controlbar:' + settingsArr[10] + ',';
+				pl += 'controlbar:true,';
 				pl += 'provider:' + settingsArr[6] + ',';
 				pl += 'width:' + (settingsArr[2] - playerOffsetWidth) + ',';
 				pl += 'height:' + (settingsArr[3] - playerOffsetHeight);
@@ -347,7 +345,7 @@
 				var starttime = typeof(p.starttime) != "undefined" ? '"' + p.starttime + '"' : 0;
 				var autostart = typeof(p.autostart) != "undefined" ? p.autostart : 'false';
 				var repeat = typeof(p.repeat) != "undefined" ? p.repeat : 'false';
-				var controlbar = typeof(p.controlbar) != "undefined" ? p.controlbar : 'true';
+				var controlbar = 'true';
 				var provider = typeof(p.provider) != "undefined" ? '"' + p.provider + '"' : 'undefined';
 				var streamer = typeof(p.streamer) != "undefined" ? '"' + p.streamer + '"' : 'undefined';
 				var domIdentity = typeof(p.domIdentity) != "undefined" ? p.domIdentity : getNextDomId();
@@ -357,7 +355,12 @@
 				h += '<script type="text/javascript" defer="defer">';
 				h += 'BPlayer.insertPlayer("' + p.address + '","' + domIdentity + '",' + playerWidth + ',' + playerHeight + ',' + starttime + ',0,' + provider + ',' + streamer +',' + autostart + ',' + repeat + ',' + controlbar + ');';
 				h += '</script>';
-				var node = ed.dom.create("span", {id:domIdentity,name:domIdentity,"class":"olatFlashMovieViewer",style:'display:block;border:solid 1px #000; width:' + playerWidth + 'px; height:' + playerHeight + 'px;'},h);
+				var node = ed.dom.create("span", {
+					id:domIdentity,
+					name:domIdentity,
+					"class":"olatFlashMovieViewer",
+					"style":'display:block;border:solid 1px #000; width:' + playerWidth + 'px; height:' + playerHeight + 'px;'
+				},h);
 				return node;
 			};
 
@@ -443,10 +446,18 @@
 					} catch (exception) {
 						movieSettings = {};
 					}
-					var imgNode = ed.dom.create("img", {id:movieSettings.domIdentity,name:movieSettings.domIdentity,"class":"mceItemOlatMovieViewer", src:imgUrl, title:movieSettingsString});
+
+					var imgNode = ed.dom.create("img", {
+						id:movieSettings.domIdentity,
+						name:movieSettings.domIdentity,
+						"class":"mceItemOlatMovieViewer",
+						src:imgUrl,
+						title:movieSettingsString
+					});
 					//for ie8
 					imgNode.width = typeof(movieSettings.width) == 'undefined' ? 320 : movieSettings.width;
 					imgNode.height = typeof(movieSettings.height) == 'undefined' ? 240 : movieSettings.height;
+					imgNode.style = 'width:' + imgNode.width + 'px; height:' + imgNode.height + 'px;'
 					//  ...and replace the div by the new img.
 					ed.dom.replace(imgNode, node, false);
 			    });
diff --git a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.min.js b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.min.js
index d32257df21fd4ae05d663aabd4760633ea6fc6c8..58a33695a73a26f0cd61b22dc4a9c545f47f9020 100644
--- a/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.min.js
+++ b/src/main/webapp/static/js/tinymce4/tinymce/plugins/olatmovieviewer/plugin.min.js
@@ -1 +1 @@
-(function(){tinymce.create("org.olat.core.gui.components.form.flexible.impl.elements.richText.plugins.olatmovieviewer",{getInfo:function(){return{longname:"OpenOLATMovieViewer",author:"frentix GmbH",authorurl:"http://www.frentix.com",infourl:"http://www.frentix.com",version:"2.1.1"}},createControl:function(n,cm){return null},init:function(ed,url){var cachedTrans;function translator(){if(cachedTrans){return cachedTrans}var mainWin=o_getMainWin();if(mainWin){cachedTrans=jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale,"org.olat.core.gui.components.form.flexible.impl.elements.richText.plugins.olatmovieviewer")}else{cachedTrans={translate:function(key){return key}}}return cachedTrans}function serializeParameters(){var d=document,f=d.forms[0],s="";s+=getStr(null,"domIdentity");s+=getStr(null,"address");s+=getStr(null,"streamer");s+=getStr(null,"starttime");s+=getBool(null,"autostart");s+=getBool(null,"repeat");s+=getBool(null,"controlbar");s+=getStr(null,"provider");s+=getStr(null,"width");s+=getStr(null,"height");s=s.length>0?s.substring(0,s.length-1):s;return s}function deserializeParameters(pl,fe){if(pl!=""){pl=eval(pl);setStr(pl,null,"domIdentity");setStr(pl,null,"address");setStr(pl,null,"streamer");setStr(pl,null,"starttime");setBool(pl,null,"autostart");setBool(pl,null,"repeat");setBool(pl,null,"controlbar");setStr(pl,null,"provider");setStr(pl,null,"width");setStr(pl,null,"height");if((val=top.tinymce.activeEditor.dom.getAttrib(fe,"width"))!=""){pl.width=val}if((val=top.tinymce.activeEditor.dom.getAttrib(fe,"height"))!=""){pl.height=val}oldWidth=pl.width?parseInt(pl.width):0;oldHeight=pl.height?parseInt(pl.height):0}else{oldWidth=oldHeight=0;var domIdentity=getNextDomId();var defaultPl="x={domIdentity:'"+domIdentity+"',address:'',starttime:'00:00:00.000',autostart:false,repeat:false,controlbar:true};";deserializeParameters(defaultPl)}}function getNextDomId(){var count=0;var domIdentity="olatFlashMovieViewer";var placeHolders=top.tinymce.activeEditor.dom.select("img.mceItemOlatMovieViewer");do{domIdentity="olatFlashMovieViewer"+(count++);if(count>20){break}}while(domIdInUse(domIdentity,placeHolders));return domIdentity}function domIdInUse(domIdentity,placeHolders){for(var i=0;i<placeHolders.length;i++){if(placeHolders[i].title!=undefined&&placeHolders[i].title.indexOf(domIdentity)>0){return true}}return false}function getBool(p,n,d,tv,fv){var ctrl=win.find("#"+n)[0];var v=ctrl.checked();tv=typeof(tv)=="undefined"?"true":"'"+jsEncode(tv)+"'";fv=typeof(fv)=="undefined"?"false":"'"+jsEncode(fv)+"'";return(v==d)?"":n+(v?":"+tv+",":":"+fv+",")}function getStr(p,n,d){var ctrl=win.find("#"+n)[0];var v=ctrl.value();return((n==d||v=="")?"":n+":'"+jsEncode(v)+"',")}function getInt(p,n,d){var ctrl=win.find("#"+n)[0];var v=ctrl.value();return((n==d||v=="")?"":n+":"+v.replace(/[^0-9]+/g,"")+",")}function setBool(pl,p,n){if(typeof(pl[n])=="undefined"){return}var checked=(pl[n]=="true"||pl[n]==true?true:false);win.find("#"+n)[0].checked(checked)}function setStr(pl,p,n){if(typeof(pl[n])=="undefined"){return}win.find("#"+n)[0].value(pl[n])}function jsEncode(s){s=s.replace(new RegExp("\\\\","g"),"\\\\");s=s.replace(new RegExp('"',"g"),'\\"');s=s.replace(new RegExp("'","g"),"\\'");return s}function generatePreview(){var attribs=serializeParameters();var pl=eval("x={"+attribs+"}");_getEmbed(pl);if(pl.provider=="rtmp"||pl.provider=="http"){win.find("#streamer")[0].visible()}else{win.find("#streamer")[0].hide()}return}function _getEmbed(p){var playerSrc=top.tinymce.activeEditor.getParam("olatmovieviewer_movieViewerUrl");var playerOffsetHeight=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetHeight");var playerOffsetWidth=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetWidth");var playerWidth=typeof(p.width)!="undefined"?(parseInt(p.width)+parseInt(playerOffsetWidth)):"320";var playerHeight=typeof(p.height)!="undefined"?(parseInt(p.height)+parseInt(playerOffsetHeight)):"240";var start=typeof(p.starttime)!="undefined"?p.starttime:"00:00:00.000";var autostart=typeof(p.autostart)!="undefined"?p.autostart:false;var repeat=typeof(p.repeat)!="undefined"?p.repeat:false;var controlbar=typeof(p.controlbar)!="undefined"?p.controlbar:true;var provider=typeof(p.provider)!="undefined"?p.provider:undefined;var streamer=typeof(p.streamer)!="undefined"?p.streamer:undefined;var domIdentity=typeof(p.domIdentity)!="undefined"?p.domIdentity:getNextDomId();var maxHeight=400;var maxWidth=560;if(playerHeight>maxHeight||playerWidth>maxWidth){var thumbRatio=maxWidth/maxHeight;var imageRatio=playerWidth/playerHeight;if(thumbRatio<imageRatio){playerHeight=(maxWidth/imageRatio);playerWidth=maxWidth}else{playerWidth=(maxHeight*imageRatio);playerHeight=maxHeight}}var videoUrl=p.address;if(p.address!=undefined){if(p.address.indexOf("://")<0&&((provider!="rtmp"&&provider!="http")||((provider=="rtmp"||provider=="http")&&(streamer==undefined||streamer.length==0)))){videoUrl=top.tinymce.activeEditor.documentBaseURI.toAbsolute(p.address)}}if(p.address!=undefined&&p.address!=null&&p.address.length>0){BPlayer.insertPlayer(videoUrl,"prev_container",playerWidth,playerHeight,start,0,provider,streamer,autostart,repeat,controlbar)}}function buildProviderList(){var targetListItems=[{text:translator().translate("olatmovieviewer.video"),value:"video"},{text:translator().translate("olatmovieviewer.sound"),value:"sound"},{text:translator().translate("olatmovieviewer.youtube"),value:"youtube"},{text:translator().translate("olatmovieviewer.http"),value:"http"},{text:translator().translate("olatmovieviewer.rtmp"),value:"rtmp"}];return targetListItems}function insertVideo(){var attribs=serializeParameters();var f=eval("x={"+attribs+"}");f.width=f.width==""?100:f.width;f.height=f.height==""?100:f.height;var fe=ed.selection.getNode();if(fe!=null&&fe!="undefined"&&/mceItemOlatMovieViewer/.test(ed.dom.getAttrib(fe,"class"))){if(fe.width!=f.width.value||fe.height!=f.width.height){ed.execCommand("mceRepaint")}fe.title=serializeParameters();fe.width=f.width;fe.height=f.height;fe.style.width=f.width+(f.width.indexOf("%")==-1?"px":"");fe.style.height=f.height+(f.height.indexOf("%")==-1?"px":"")}else{var newDomId=getNextDomId();var titleAttr="domIdentity:'"+newDomId+"',"+serializeParameters();var h='<img id="'+newDomId+'"';h+=' class="mceItemOlatMovieViewer" src="'+ed.getParam("olatmovieviewer_transparentImage")+'"';h+=' title="'+titleAttr+'"';h+=' width="'+f.width+'" height="'+f.height+'" />';ed.execCommand("mceInsertContent",false,h)}}function showDialog(){win=ed.windowManager.open({title:"Movies",bodyType:"tabpanel",body:[{title:translator().translate("olatmovieviewer.general"),type:"form",items:[{name:"provider",type:"listbox",label:translator().translate("olatmovieviewer.provider"),values:buildProviderList()},{name:"streamer",type:"textbox",label:translator().translate("olatmovieviewer.streamer")},{name:"address",type:"filepicker",filetype:"flashplayer",label:translator().translate("olatmovieviewer.address")},{type:"container",label:translator().translate("olatmovieviewer.size"),layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:generatePreview},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:generatePreview}]},{name:"preview",type:"panel",label:"",minHeight:320,html:'<div id="prev" name="prev"><div id="prev_container" name="prev_container">&nbsp;</div></div>'},{name:"domIdentity",type:"textbox",hidden:true}]},{title:"Advanced",type:"form",items:[{name:"starttime",type:"textbox",checked:true,label:translator().translate("olatmovieviewer.starttime")},{name:"autostart",type:"checkbox",checked:false,label:translator().translate("olatmovieviewer.autostart"),text:""},{name:"repeat",type:"checkbox",checked:false,label:translator().translate("olatmovieviewer.repeat"),text:""},{name:"controlbar",type:"checkbox",checked:false,label:translator().translate("olatmovieviewer.controlbar"),text:""}]}],onSubmit:insertVideo});var fe=ed.selection.getNode();if(/mceItemOlatMovieViewer/.test(ed.dom.getAttrib(fe,"class"))){var pl="x={"+ed.dom.getAttrib(fe,"title")+"};";deserializeParameters(pl,fe);setTimeout(generatePreview,500)}}function parseBPlayerScript(editor,script){if(script==null||script==undefined){return""}var startMark="BPlayer.insertPlayer(";var start=script.indexOf(startMark);var end=script.indexOf(");");if(start<0||end<0){return""}var playerOffsetHeight=editor.getParam("olatmovieviewer_playerOffsetHeight");var playerOffsetWidth=editor.getParam("olatmovieviewer_playerOffsetWidth");var params=script.substring(start+startMark.length,end);var settingsArr=params.split(",");var pl="domIdentity:"+settingsArr[1]+",";pl+="address:"+settingsArr[0]+",";pl+="streamer:"+settingsArr[7]+",";pl+="starttime:"+settingsArr[4]+",";pl+="autostart:"+settingsArr[8]+",";pl+="repeat:"+settingsArr[9]+",";pl+="controlbar:"+settingsArr[10]+",";pl+="provider:"+settingsArr[6]+",";pl+="width:"+(settingsArr[2]-playerOffsetWidth)+",";pl+="height:"+(settingsArr[3]-playerOffsetHeight);return pl}function getPlayerHtmlNode(editor,p){var h="",n,l="";var playerOffsetHeight=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetHeight");var playerOffsetWidth=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetWidth");var playerWidth=typeof(p.width)!="undefined"?(parseInt(p.width)+parseInt(playerOffsetWidth)):"";var playerHeight=typeof(p.height)!="undefined"?(parseInt(p.height)+parseInt(playerOffsetHeight)):"";var starttime=typeof(p.starttime)!="undefined"?'"'+p.starttime+'"':0;var autostart=typeof(p.autostart)!="undefined"?p.autostart:"false";var repeat=typeof(p.repeat)!="undefined"?p.repeat:"false";var controlbar=typeof(p.controlbar)!="undefined"?p.controlbar:"true";var provider=typeof(p.provider)!="undefined"?'"'+p.provider+'"':"undefined";var streamer=typeof(p.streamer)!="undefined"?'"'+p.streamer+'"':"undefined";var domIdentity=typeof(p.domIdentity)!="undefined"?p.domIdentity:getNextDomId();var playerScriptUrl=top.tinymce.activeEditor.getParam("olatmovieviewer_playerScript");var h='<script src="'+playerScriptUrl+'" type="text/javascript"><\/script>';h+='<script type="text/javascript" defer="defer">';h+='BPlayer.insertPlayer("'+p.address+'","'+domIdentity+'",'+playerWidth+","+playerHeight+","+starttime+",0,"+provider+","+streamer+","+autostart+","+repeat+","+controlbar+");";h+="<\/script>";var node=ed.dom.create("span",{id:domIdentity,name:domIdentity,"class":"olatFlashMovieViewer",style:"display:block;border:solid 1px #000; width:"+playerWidth+"px; height:"+playerHeight+"px;"},h);return node}ed.addButton("olatmovieviewer",{title:translator().translate("olatmovieviewer.desc"),image:url+"/images/movieviewer.gif",onclick:showDialog,onPostRender:function(){var ctrl=this;ed.on("NodeChange",function(e){var test=(e.element.nodeName=="IMG")&&(/mceItemOlatMovieViewer/.test(ed.dom.getAttrib(e.element,"class")));ctrl.active(test);if(test){e.preventDefault(true);e.stopImmediatePropagation()}})}});ed.addMenuItem("olatmovieviewer",{text:translator().translate("olatmovieviewer.desc"),image:url+"/images/movieviewer.gif",onclick:showDialog,});ed.on("init",function(){if(ed.settings.content_css!==false){ed.dom.loadCSS(url+"/css/content.css")}});ed.on("PreProcess",function(editor){tinymce.each(ed.dom.select("img.mceItemOlatMovieViewer"),function(node){var movieSettingsString=node.title;movieSettingsString=movieSettingsString.replace(/&(#39|apos);/g,"'");movieSettingsString=movieSettingsString.replace(/&#quot;/g,'"');var movieSettings;try{movieSettings=eval("x={"+movieSettingsString+"}")}catch(exception){movieSettings={}}var playerNode=getPlayerHtmlNode(ed,movieSettings);ed.dom.replace(playerNode,node,false)})});ed.on("BeforeSetContent",function(e){if(e.content.indexOf("--omvs::")>0){var imgUrl=top.tinymce.activeEditor.getParam("olatmovieviewer_transparentImage");e.content=e.content.replace(/\n/gi,"");var widthMatch=e.content.match(/(?:<!--omvs::.*?width:')([0-9]+)(?:'.*?<!--omve-->)/i);var width=((widthMatch!=null)&&(widthMatch.length==2))?parseInt(widthMatch[1]):320;var heightMatch=e.content.match(/(?:<!--omvs::.*?height:')([0-9]+)(?:'.*?<!--omve-->)/i);var height=((heightMatch!=null)&&(heightMatch.length==2))?parseInt(heightMatch[1]):240;e.content=e.content.replace(/<!--omvs::(.*?)-->(.*?)<!--omve-->/gi,'<img class="mceItemOlatMovieViewer" alt="" src="'+imgUrl+'" title="$1" width="'+width+'" height="'+height+'"/>')}});ed.on("SetContent",function(e){var imgUrl=ed.getParam("olatmovieviewer_transparentImage");tinymce.each(ed.dom.select("div.olatFlashMovieViewer,span.olatFlashMovieViewer"),function(node){var movieSettingsString=parseBPlayerScript(ed,node.innerHTML);var movieSettings;try{movieSettings=eval("x={"+movieSettingsString+"}")}catch(exception){movieSettings={}}var imgNode=ed.dom.create("img",{id:movieSettings.domIdentity,name:movieSettings.domIdentity,"class":"mceItemOlatMovieViewer",src:imgUrl,title:movieSettingsString});imgNode.width=typeof(movieSettings.width)=="undefined"?320:movieSettings.width;imgNode.height=typeof(movieSettings.height)=="undefined"?240:movieSettings.height;ed.dom.replace(imgNode,node,false)})})}});tinymce.PluginManager.add("olatmovieviewer",org.olat.core.gui.components.form.flexible.impl.elements.richText.plugins.olatmovieviewer)})();
\ No newline at end of file
+(function(){tinymce.create("org.olat.core.gui.components.form.flexible.impl.elements.richText.plugins.olatmovieviewer",{getInfo:function(){return{longname:"OpenOLATMovieViewer",author:"frentix GmbH",authorurl:"http://www.frentix.com",infourl:"http://www.frentix.com",version:"2.2"}},createControl:function(n,cm){return null},init:function(ed,url){var cachedTrans;function translator(){if(cachedTrans){return cachedTrans}var mainWin=o_getMainWin();if(mainWin){cachedTrans=jQuery(document).ooTranslator().getTranslator(mainWin.o_info.locale,"org.olat.core.gui.components.form.flexible.impl.elements.richText.plugins.olatmovieviewer")}else{cachedTrans={translate:function(key){return key}}}return cachedTrans}function serializeParameters(){var d=document,f=d.forms[0],s="";s+=getStr(null,"domIdentity");s+=getStr(null,"address");s+=getStr(null,"streamer");s+=getStr(null,"starttime");s+=getBool(null,"autostart");s+=getBool(null,"repeat");s+="controlbar:true,";s+=getStr(null,"provider");s+=getStr(null,"width");s+=getStr(null,"height");s=s.length>0?s.substring(0,s.length-1):s;return s}function deserializeParameters(pl,fe){if(pl!=""){pl=eval(pl);setStr(pl,null,"domIdentity");setStr(pl,null,"address");setStr(pl,null,"streamer");setStr(pl,null,"starttime");setBool(pl,null,"autostart");setBool(pl,null,"repeat");setStr(pl,null,"provider");setStr(pl,null,"width");setStr(pl,null,"height");if((val=top.tinymce.activeEditor.dom.getAttrib(fe,"width"))!=""){pl.width=val}if((val=top.tinymce.activeEditor.dom.getAttrib(fe,"height"))!=""){pl.height=val}oldWidth=pl.width?parseInt(pl.width):0;oldHeight=pl.height?parseInt(pl.height):0}else{oldWidth=oldHeight=0;var domIdentity=getNextDomId();var defaultPl="x={domIdentity:'"+domIdentity+"',address:'',starttime:'00:00:00.000',autostart:false,repeat:false,controlbar:true};";deserializeParameters(defaultPl)}}function getNextDomId(){var count=0;var domIdentity="olatFlashMovieViewer";var placeHolders=top.tinymce.activeEditor.dom.select("img.mceItemOlatMovieViewer");do{domIdentity="olatFlashMovieViewer"+(count++);if(count>20){break}}while(domIdInUse(domIdentity,placeHolders));return domIdentity}function domIdInUse(domIdentity,placeHolders){for(var i=0;i<placeHolders.length;i++){if(placeHolders[i].title!=undefined&&placeHolders[i].title.indexOf(domIdentity)>0){return true}}return false}function getBool(p,n,d,tv,fv){var ctrl=win.find("#"+n)[0];var v=ctrl.checked();tv=typeof(tv)=="undefined"?"true":"'"+jsEncode(tv)+"'";fv=typeof(fv)=="undefined"?"false":"'"+jsEncode(fv)+"'";return(v==d)?"":n+(v?":"+tv+",":":"+fv+",")}function getStr(p,n,d){var ctrl=win.find("#"+n)[0];var v=ctrl.value();return((n==d||v=="")?"":n+":'"+jsEncode(v)+"',")}function getInt(p,n,d){var ctrl=win.find("#"+n)[0];var v=ctrl.value();return((n==d||v=="")?"":n+":"+v.replace(/[^0-9]+/g,"")+",")}function setBool(pl,p,n){if(typeof(pl[n])=="undefined"){return}var checked=(pl[n]=="true"||pl[n]==true?true:false);win.find("#"+n)[0].checked(checked)}function setStr(pl,p,n){if(typeof(pl[n])=="undefined"){return}win.find("#"+n)[0].value(pl[n])}function jsEncode(s){s=s.replace(new RegExp("\\\\","g"),"\\\\");s=s.replace(new RegExp('"',"g"),'\\"');s=s.replace(new RegExp("'","g"),"\\'");return s}function generatePreview(){var attribs=serializeParameters();var pl=eval("x={"+attribs+"}");_getEmbed(pl);if(pl.provider=="rtmp"||pl.provider=="http"){win.find("#streamer")[0].visible()}else{win.find("#streamer")[0].hide()}return}function _getEmbed(p){var playerSrc=top.tinymce.activeEditor.getParam("olatmovieviewer_movieViewerUrl");var playerOffsetHeight=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetHeight");var playerOffsetWidth=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetWidth");var playerWidth=typeof(p.width)!="undefined"?(parseInt(p.width)+parseInt(playerOffsetWidth)):"320";var playerHeight=typeof(p.height)!="undefined"?(parseInt(p.height)+parseInt(playerOffsetHeight)):"240";var start=typeof(p.starttime)!="undefined"?p.starttime:"00:00:00.000";var autostart=typeof(p.autostart)!="undefined"?p.autostart:false;var repeat=typeof(p.repeat)!="undefined"?p.repeat:false;var controlbar=typeof(p.controlbar)!="undefined"?p.controlbar:true;var provider=typeof(p.provider)!="undefined"?p.provider:undefined;var streamer=typeof(p.streamer)!="undefined"?p.streamer:undefined;var domIdentity=typeof(p.domIdentity)!="undefined"?p.domIdentity:getNextDomId();var maxHeight=400;var maxWidth=560;if(playerHeight>maxHeight||playerWidth>maxWidth){var thumbRatio=maxWidth/maxHeight;var imageRatio=playerWidth/playerHeight;if(thumbRatio<imageRatio){playerHeight=(maxWidth/imageRatio);playerWidth=maxWidth}else{playerWidth=(maxHeight*imageRatio);playerHeight=maxHeight}}var videoUrl=p.address;if(p.address!=undefined){if(p.address.indexOf("://")<0&&((provider!="rtmp"&&provider!="http")||((provider=="rtmp"||provider=="http")&&(streamer==undefined||streamer.length==0)))){videoUrl=top.tinymce.activeEditor.documentBaseURI.toAbsolute(p.address)}}if(p.address!=undefined&&p.address!=null&&p.address.length>0){BPlayer.insertPlayer(videoUrl,"prev_container",playerWidth,playerHeight,start,0,provider,streamer,autostart,repeat,controlbar)}}function buildProviderList(){var targetListItems=[{text:translator().translate("olatmovieviewer.video"),value:"video"},{text:translator().translate("olatmovieviewer.sound"),value:"sound"},{text:translator().translate("olatmovieviewer.youtube"),value:"youtube"},{text:translator().translate("olatmovieviewer.http"),value:"http"},{text:translator().translate("olatmovieviewer.rtmp"),value:"rtmp"}];return targetListItems}function insertVideo(){var attribs=serializeParameters();var f=eval("x={"+attribs+"}");f.width=f.width==""?100:f.width;f.height=f.height==""?100:f.height;var fe=ed.selection.getNode();if(fe!=null&&fe!="undefined"&&/mceItemOlatMovieViewer/.test(ed.dom.getAttrib(fe,"class"))){if(fe.width!=f.width.value||fe.height!=f.width.height){ed.execCommand("mceRepaint")}fe.title=serializeParameters();fe.width=f.width;fe.height=f.height;fe.style.width=f.width+(f.width.indexOf("%")==-1?"px":"");fe.style.height=f.height+(f.height.indexOf("%")==-1?"px":"")}else{var newDomId=getNextDomId();var titleAttr="domIdentity:'"+newDomId+"',"+serializeParameters();var h='<img id="'+newDomId+'"';h+=' class="mceItemOlatMovieViewer" src="'+ed.getParam("olatmovieviewer_transparentImage")+'"';h+=' title="'+titleAttr+'"';h+=' width="'+f.width+'" height="'+f.height+'" />';ed.execCommand("mceInsertContent",false,h)}}function showDialog(){win=ed.windowManager.open({title:"Movies",bodyType:"tabpanel",body:[{title:translator().translate("olatmovieviewer.general"),type:"form",items:[{name:"provider",type:"listbox",label:translator().translate("olatmovieviewer.provider"),values:buildProviderList()},{name:"streamer",type:"textbox",label:translator().translate("olatmovieviewer.streamer")},{name:"address",type:"filepicker",filetype:"flashplayer",label:translator().translate("olatmovieviewer.address")},{type:"container",label:translator().translate("olatmovieviewer.size"),layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:generatePreview},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:generatePreview}]},{name:"preview",type:"panel",label:"",minHeight:320,html:'<div id="prev" name="prev"><div id="prev_container" name="prev_container">&nbsp;</div></div>'},{name:"domIdentity",type:"textbox",hidden:true}]},{title:"Advanced",type:"form",items:[{name:"starttime",type:"textbox",checked:true,label:translator().translate("olatmovieviewer.starttime")},{name:"autostart",type:"checkbox",checked:false,label:translator().translate("olatmovieviewer.autostart"),text:""},{name:"repeat",type:"checkbox",checked:false,label:translator().translate("olatmovieviewer.repeat"),text:""}]}],onSubmit:insertVideo});var fe=ed.selection.getNode();if(/mceItemOlatMovieViewer/.test(ed.dom.getAttrib(fe,"class"))){var pl="x={"+ed.dom.getAttrib(fe,"title")+"};";deserializeParameters(pl,fe);setTimeout(generatePreview,500)}}function parseBPlayerScript(editor,script){if(script==null||script==undefined){return""}var startMark="BPlayer.insertPlayer(";var start=script.indexOf(startMark);var end=script.indexOf(");");if(start<0||end<0){return""}var playerOffsetHeight=editor.getParam("olatmovieviewer_playerOffsetHeight");var playerOffsetWidth=editor.getParam("olatmovieviewer_playerOffsetWidth");var params=script.substring(start+startMark.length,end);var settingsArr=params.split(",");var pl="domIdentity:"+settingsArr[1]+",";pl+="address:"+settingsArr[0]+",";pl+="streamer:"+settingsArr[7]+",";pl+="starttime:"+settingsArr[4]+",";pl+="autostart:"+settingsArr[8]+",";pl+="repeat:"+settingsArr[9]+",";pl+="controlbar:true,";pl+="provider:"+settingsArr[6]+",";pl+="width:"+(settingsArr[2]-playerOffsetWidth)+",";pl+="height:"+(settingsArr[3]-playerOffsetHeight);return pl}function getPlayerHtmlNode(editor,p){var h="",n,l="";var playerOffsetHeight=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetHeight");var playerOffsetWidth=top.tinymce.activeEditor.getParam("olatmovieviewer_playerOffsetWidth");var playerWidth=typeof(p.width)!="undefined"?(parseInt(p.width)+parseInt(playerOffsetWidth)):"";var playerHeight=typeof(p.height)!="undefined"?(parseInt(p.height)+parseInt(playerOffsetHeight)):"";var starttime=typeof(p.starttime)!="undefined"?'"'+p.starttime+'"':0;var autostart=typeof(p.autostart)!="undefined"?p.autostart:"false";var repeat=typeof(p.repeat)!="undefined"?p.repeat:"false";var controlbar="true";var provider=typeof(p.provider)!="undefined"?'"'+p.provider+'"':"undefined";var streamer=typeof(p.streamer)!="undefined"?'"'+p.streamer+'"':"undefined";var domIdentity=typeof(p.domIdentity)!="undefined"?p.domIdentity:getNextDomId();var playerScriptUrl=top.tinymce.activeEditor.getParam("olatmovieviewer_playerScript");var h='<script src="'+playerScriptUrl+'" type="text/javascript"><\/script>';h+='<script type="text/javascript" defer="defer">';h+='BPlayer.insertPlayer("'+p.address+'","'+domIdentity+'",'+playerWidth+","+playerHeight+","+starttime+",0,"+provider+","+streamer+","+autostart+","+repeat+","+controlbar+");";h+="<\/script>";var node=ed.dom.create("span",{id:domIdentity,name:domIdentity,"class":"olatFlashMovieViewer",style:"display:block;border:solid 1px #000; width:"+playerWidth+"px; height:"+playerHeight+"px;"},h);return node}ed.addButton("olatmovieviewer",{title:translator().translate("olatmovieviewer.desc"),image:url+"/images/movieviewer.gif",onclick:showDialog,onPostRender:function(){var ctrl=this;ed.on("NodeChange",function(e){var test=(e.element.nodeName=="IMG")&&(/mceItemOlatMovieViewer/.test(ed.dom.getAttrib(e.element,"class")));ctrl.active(test);if(test){e.preventDefault(true);e.stopImmediatePropagation()}})}});ed.addMenuItem("olatmovieviewer",{text:translator().translate("olatmovieviewer.desc"),image:url+"/images/movieviewer.gif",onclick:showDialog,});ed.on("init",function(){if(ed.settings.content_css!==false){ed.dom.loadCSS(url+"/css/content.css")}});ed.on("PreProcess",function(editor){tinymce.each(ed.dom.select("img.mceItemOlatMovieViewer"),function(node){var movieSettingsString=node.title;movieSettingsString=movieSettingsString.replace(/&(#39|apos);/g,"'");movieSettingsString=movieSettingsString.replace(/&#quot;/g,'"');var movieSettings;try{movieSettings=eval("x={"+movieSettingsString+"}")}catch(exception){movieSettings={}}var playerNode=getPlayerHtmlNode(ed,movieSettings);ed.dom.replace(playerNode,node,false)})});ed.on("BeforeSetContent",function(e){if(e.content.indexOf("--omvs::")>0){var imgUrl=top.tinymce.activeEditor.getParam("olatmovieviewer_transparentImage");e.content=e.content.replace(/\n/gi,"");var widthMatch=e.content.match(/(?:<!--omvs::.*?width:')([0-9]+)(?:'.*?<!--omve-->)/i);var width=((widthMatch!=null)&&(widthMatch.length==2))?parseInt(widthMatch[1]):320;var heightMatch=e.content.match(/(?:<!--omvs::.*?height:')([0-9]+)(?:'.*?<!--omve-->)/i);var height=((heightMatch!=null)&&(heightMatch.length==2))?parseInt(heightMatch[1]):240;e.content=e.content.replace(/<!--omvs::(.*?)-->(.*?)<!--omve-->/gi,'<img class="mceItemOlatMovieViewer" alt="" src="'+imgUrl+'" title="$1" width="'+width+'" height="'+height+'"/>')}});ed.on("SetContent",function(e){var imgUrl=ed.getParam("olatmovieviewer_transparentImage");tinymce.each(ed.dom.select("div.olatFlashMovieViewer,span.olatFlashMovieViewer"),function(node){var movieSettingsString=parseBPlayerScript(ed,node.innerHTML);var movieSettings;try{movieSettings=eval("x={"+movieSettingsString+"}")}catch(exception){movieSettings={}}var imgNode=ed.dom.create("img",{id:movieSettings.domIdentity,name:movieSettings.domIdentity,"class":"mceItemOlatMovieViewer",src:imgUrl,title:movieSettingsString});imgNode.width=typeof(movieSettings.width)=="undefined"?320:movieSettings.width;imgNode.height=typeof(movieSettings.height)=="undefined"?240:movieSettings.height;imgNode.style="width:"+imgNode.width+"px; height:"+imgNode.height+"px;";ed.dom.replace(imgNode,node,false)})})}});tinymce.PluginManager.add("olatmovieviewer",org.olat.core.gui.components.form.flexible.impl.elements.richText.plugins.olatmovieviewer)})();
\ No newline at end of file
diff --git a/src/main/webapp/static/movie/README b/src/main/webapp/static/movie/README
new file mode 100644
index 0000000000000000000000000000000000000000..34aa7872f556f615dbb98befde3982a98bc09eef
--- /dev/null
+++ b/src/main/webapp/static/movie/README
@@ -0,0 +1,6 @@
+The main library is MediaElement.js, there is a fallback the JWPlayer for some
+rtmp streams.
+
+mediaelement-and-player.min.js is slightly modified. At the beginning of the
+file, search for "audio/mp3","audio/m4a" and after add "audio/aac" to support
+AAC files
\ No newline at end of file
diff --git a/src/main/webapp/static/movie/player.js b/src/main/webapp/static/movie/player.js
index c24830e308c7a2d037892cc4ec72083a3da0a703..6e1e6b17ae21b821837973e22248b5606d323dc8 100644
--- a/src/main/webapp/static/movie/player.js
+++ b/src/main/webapp/static/movie/player.js
@@ -123,6 +123,7 @@ var BPlayer = {
 	insertHTML5MediaElementPlayerWorker: function(domId, config) {
 		var mediaElementBaseUrl = BPlayer.mediaElementBaseUrl();
 		var meConfig = {
+			loop: config.repeat,
 			pluginPath: mediaElementBaseUrl,
 			flashName: 'flashmediaelement.swf',
 			silverlightName: 'silverlightmediaelement.xap',
@@ -210,10 +211,17 @@ var BPlayer = {
 			if(config.width) {
 				meConfig.audioWidth = config.width;
 			}
-			content = "<audio id='" + mediaDomId + "' controls='controls' type='" +mimeType + "' src='" + config.file + "'></audio>";
+			content = "<audio id='" + mediaDomId + "' controls='controls'";
+			if(typeof config.repeat != 'undefined' && config.repeat) {
+				content += " loop='loop'";
+			}
+			content += " type='" +mimeType + "' src='" + config.file + "'></audio>";
 		} else {
 			//controls are mandatory for Safari at least
 			content = "<video id='" + mediaDomId + "' controls='controls' preload='none'";
+			if(typeof config.repeat != 'undefined' && config.repeat) {
+				content += " loop='loop'";
+			}
 			var objContent = "<object id='" + objectDomId + "' type='application/x-shockwave-flash'";
 			if(typeof config.height != 'undefined') {
 				content += " height='" + config.height + "'";
diff --git a/src/main/webapp/static/themes/light/_modules.scss b/src/main/webapp/static/themes/light/_modules.scss
index 0e9041e7a778ec6500802bbd6bbc8dee72e41aef..6e4c79f4a8cb2424bda687535fe35198514f82c6 100644
--- a/src/main/webapp/static/themes/light/_modules.scss
+++ b/src/main/webapp/static/themes/light/_modules.scss
@@ -18,6 +18,8 @@
 @import "modules/mixins";
 @import "modules/helpers";
 @import "modules/type";
+@import "modules/content_embedded";  /* add all styles that are created by html editor but can also be rendered in 
+   										main window, not in iframe (e.g. forum post, blog entry) */
 
 /* general layout */
 @import "modules/layout";
diff --git a/src/main/webapp/static/themes/light/content.css b/src/main/webapp/static/themes/light/content.css
index dc97f8ab946ad8eb4644fe47969e34c2a570f4f8..eb3326a78a9dad859ff884ffd237199b5b289287 100644
--- a/src/main/webapp/static/themes/light/content.css
+++ b/src/main/webapp/static/themes/light/content.css
@@ -24,5 +24,5 @@
  * ========================================================
 **//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}
 small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}
-abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_block_bottom,.o_block,.o_button_group,.o_header_with_buttons{margin-bottom:1em}.o_block_top,.o_block,.o_button_group{margin-top:1em}.o_block_large_bottom,.o_block_large{margin-bottom:2em}.o_block_large_top,.o_block_large{margin-top:2em}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:12px}.o_small,.b_small,p.b_small,div.b_small{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:18px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,.o_disabled:focus,.b_disabled:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video{display:inline-block;max-width:100%;height:auto}.o_image,img{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_info,.b_info,p.b_info,div.b_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info h5,.b_info h2,.b_info h3,.b_info h4,.b_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note h5,.b_note h2,.b_note h3,.b_note h4,.b_note h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important h5,.b_important h2,.b_important h3,.b_important h4,.b_important h5{color:#f4d000}.o_success,.b_success,p.b_success,div.b_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success h5,.b_success h2,.b_success h3,.b_success h4,.b_success h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning h5,.b_warning h2,.b_warning h3,.b_warning h4,.b_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error h5,.b_error h2,.b_error h3,.b_error h4,.b_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
-#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}h1{color:#337ab7}h2{color:#337ab7}h3{color:#337ab7}h4{color:#337ab7}h5{color:#337ab7}h5{color:#337ab7}hr{border-top:1px solid #eee}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:1px 5px;border:1px solid #777}table.b_grid th{background:#eee}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:1px 5px;border:1px solid #777}table.b_border th{background:#eee}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:1px 5px;border:0}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#337ab7}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f08e"}a.b_link_mailto{color:#337ab7}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f003"}a.b_link_forward{color:#337ab7}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f064"}img.b_float_left{clear:both;float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{clear:both;float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}
+abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_block_bottom,.o_block,.o_button_group,.o_header_with_buttons{margin-bottom:1em}.o_block_top,.o_block,.o_button_group{margin-top:1em}.o_block_large_bottom,.o_block_large{margin-bottom:2em}.o_block_large_top,.o_block_large{margin-top:2em}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:12px}.o_small,.b_small,p.b_small,div.b_small{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:18px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,.o_disabled:focus,.b_disabled:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.b_video{display:inline-block;max-width:100%;height:auto}.o_image,img,.b_image{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_info,.b_info,p.b_info,div.b_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info h5,.b_info h2,.b_info h3,.b_info h4,.b_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note h5,.b_note h2,.b_note h3,.b_note h4,.b_note h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important h5,.b_important h2,.b_important h3,.b_important h4,.b_important h5{color:#f4d000}.o_success,.b_success,p.b_success,div.b_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success h5,.b_success h2,.b_success h3,.b_success h4,.b_success h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning h5,.b_warning h2,.b_warning h3,.b_warning h4,.b_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error h5,.b_error h2,.b_error h3,.b_error h4,.b_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
+#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}h1{color:#337ab7}h2{color:#337ab7}h3{color:#337ab7}h4{color:#337ab7}h5{color:#337ab7}h5{color:#337ab7}hr{border-top:1px solid #eee}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:1px 5px;border:1px solid #777}table.b_grid th{background:#eee}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:1px 5px;border:1px solid #777}table.b_border th{background:#eee}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:1px 5px;border:0}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#337ab7}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f08e"}a.b_link_mailto{color:#337ab7}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f003"}a.b_link_forward{color:#337ab7}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f064"}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}
diff --git a/src/main/webapp/static/themes/light/content.css.map b/src/main/webapp/static/themes/light/content.css.map
index b89f27e12094875d7f5815f2fadaf796e9f59ff2..0f737af55f505293b291f6eeb0ad7db31622e611 100644
--- a/src/main/webapp/static/themes/light/content.css.map
+++ b/src/main/webapp/static/themes/light/content.css.map
@@ -1,7 +1,7 @@
 {
 "version": 3,
-"mappings": "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",
-"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","modules/_helpers.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","modules/_dialog.scss","modules/_mixins.scss","modules/_emoticons.scss","modules/_content.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../font-awesome/scss/_variables.scss","modules/_print.scss"],
+"mappings": "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",
+"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","modules/_helpers.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","modules/_dialog.scss","modules/_mixins.scss","modules/_emoticons.scss","modules/_content.scss","modules/_content_embedded.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../font-awesome/scss/_variables.scss","modules/_print.scss"],
 "names": [],
 "file": "content.css"
 }
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/light/modules/_content.scss b/src/main/webapp/static/themes/light/modules/_content.scss
index b42a9803f651099e2efcfc58c153d3da4ec01d73..e468cdaeedf686e817f819f6a41b1b3da917f052 100644
--- a/src/main/webapp/static/themes/light/modules/_content.scss
+++ b/src/main/webapp/static/themes/light/modules/_content.scss
@@ -66,206 +66,6 @@ hr {
 
 /* 2) OpenOLAT specific styles /* 
 
-/* content boxes */
-.b_info, p.b_info, div.b_info{ 
-	@extend %o_info;
-}
-
-.b_note, p.b_note, div.b_note { 
-	@extend %o_note;
-}
-
-.b_important, p.b_important, div.b_important { 
-	@extend %o_important;
-}
-
-.b_success, p.b_success, div.b_success { 
-	@extend %o_success;
-}
-
-.b_warning, p.b_warning, div.b_warning { 
-	@extend %o_warning;
-}
-
-.b_error, p.b_error, div.b_error { 
-	@extend %o_error;
-}
-
-.b_border_box, p.b_border_box, div.b_border_box { 
-	border: 1px solid $o-content-border-box-border; 
-	padding: $o-content-border-box-padding;
-	@include border-top-radius($o-content-border-box-radius); 
-	@include border-bottom-radius($o-content-border-box-radius); 
-}
-
-.b_copy_code, p.b_copy_code, div.b_copy_code, code, pre { 
-	@extend %o_copy_code;
-}
-div.b_scrollblock { 
-	@extend %o_scrollblock;
-}
-
-/* nice table formatting */
-table {
-	td {
-		vertical-align: top;	
-	}
-	&.b_grid {
-		width: 99.5%; 
-		background: transparent;
-		border-collapse: separate;
-		td, th { 
-			padding: $padding-xs-vertical $padding-xs-horizontal;
-			border: 1px solid $o-content-table-border;
-		}
-		th {
-			background: $gray-lighter;
-		}	
-	}
-	&.b_border {
-		width: 99.5%; 
-		background: transparent;
-		border-collapse: collapse;
-		td, th { 
-			padding: $padding-xs-vertical $padding-xs-horizontal;
-			border: 1px solid $o-content-table-border;
-		}	
-		th {
-			background: $gray-lighter;
-		}	
-	}
-	&.b_borderless {
-		width: 99.5%; 
-		background: transparent;
-		border-collapse: separate;
-		td, th { 
-			padding: $padding-xs-vertical $padding-xs-horizontal;
-			border: 0;
-		}
-	}
-	&.b_full { 
-		width: 99.5%; 
-	}
-	&.b_middle {
-		background: transparent;
-		td {
-			vertical-align: middle;			
-		}	
-	}
-}
-
-/* font styles  */
-.b_selected, p.b_selected, div.b_selected { 
-	@extend %o_selected;
-}	
-.b_dimmed, p.b_dimmed, div.b_dimmed { 
-	@extend %o_dimmed;
-}
-.b_disabled, p.b_disabled, div.b_disabled { 
-	@extend %o_disabled;
-}
-.b_deleted, p.b_deleted, div.b_deleted { 
-	@extend %o_deleted;
-}	
-
-/* font sizes relative to parent object */
-.b_xsmall, p.b_xsmall, div.b_xsmall { 
-	@extend %o_xsmall;
-}
-.b_small, p.b_small, div.b_small { 
-	@extend %o_small;
-}
-.b_large, p.b_large, div.b_large { 
-	@extend %o_large;
-}
-.b_xlarge, p.b_xlarge, div.b_xlarge  { 
-	@extend %o_xlarge;
-}
-
-/* text alignment: normal flow in a LTR language is left, in a RTL language it is right */
-.b_align_normal { 
-	text-align: left; 
-}
-.b_align_center { 
-	text-align: center; 
-}
-.b_align_inverse { 
-	text-align: right; 
-}
-.b_align_justified {
-	text-align:justify
-}
-
-/* special links */
-a.b_link_extern {
-	color: $o-content-link-color; /* need seomething for tiny */
-	&:before { 
-		@include o-make-icon(); 
-		padding-right: 0.5em;
-		content: $fa-var-external-link;
-	}
-}
-a.b_link_mailto { 
-	color: $o-content-link-color; /* need seomething for tiny */
-	&:before { 
-		@include o-make-icon(); 
-		padding-right: 0.5em;
-		content: $fa-var-envelope-o;
-		
-	}
-}
-a.b_link_forward { 
-	color: $o-content-link-color; /* need seomething for tiny */
-	&:before { 
-		@include o-make-icon(); 
-		padding-right: 0.5em;
-		content: $fa-var-share ;
-		
-	}
-}
-
-/* image styles */
-img {
-	/* responsive fixes */
-	@extend %o_image;
-} 
-img.b_float_left {
-	clear: both;
-	float: left; 
-	margin: 0 2em 2em 0;
-}
-img.b_float_left_clear {
-	clear: both;
-	margin: 0 2em 2em 0;
-	display: block;
-}
-img.b_float_right {
-	clear: both;
-	float: right; 
-	margin: 0 0 2em 2em;
-}
-img.b_float_right_clear { 
-	clear: both;
-	display: block; 
-	margin: 0 0 2em auto;
-}
-img.b_centered {
-	clear: both;
-	display: block; 
-	margin: 0 auto 2em auto;
-}
-img.b_circle {
-	border-radius: 50%;
-}
-img.b_with_border {
-	border: 1px solid $o-content-border-img-border; 
-	padding: $o-content-border-img-padding;
-	@include border-top-radius($o-content-border-img-radius); 
-	@include border-bottom-radius($o-content-border-img-radius); 
-}
-
-/* float clear classes */
-.b_clear_float, p.b_clear_float, div.b_clear_float { 
-	clear: both;
-}
-
+/* add all styles that are created by html editor but can also be rendered in 
+   main window, not in iframe (e.g. forum post, blog entry) */
+@import "content_embedded";
diff --git a/src/main/webapp/static/themes/light/modules/_content_embedded.scss b/src/main/webapp/static/themes/light/modules/_content_embedded.scss
new file mode 100644
index 0000000000000000000000000000000000000000..a55209177fd6d38906552b493d9f300b04bbbd2e
--- /dev/null
+++ b/src/main/webapp/static/themes/light/modules/_content_embedded.scss
@@ -0,0 +1,211 @@
+/* content styles that can be embedded in content iframe but also appear inline, e.g. in a forum post */
+
+
+/* content boxes */
+.b_info, p.b_info, div.b_info{ 
+	@extend %o_info;
+}
+
+.b_note, p.b_note, div.b_note { 
+	@extend %o_note;
+}
+
+.b_important, p.b_important, div.b_important { 
+	@extend %o_important;
+}
+
+.b_success, p.b_success, div.b_success { 
+	@extend %o_success;
+}
+
+.b_warning, p.b_warning, div.b_warning { 
+	@extend %o_warning;
+}
+
+.b_error, p.b_error, div.b_error { 
+	@extend %o_error;
+}
+
+.b_border_box, p.b_border_box, div.b_border_box { 
+	border: 1px solid $o-content-border-box-border; 
+	padding: $o-content-border-box-padding;
+	@include border-top-radius($o-content-border-box-radius); 
+	@include border-bottom-radius($o-content-border-box-radius); 
+}
+
+.b_copy_code, p.b_copy_code, div.b_copy_code, code, pre { 
+	@extend %o_copy_code;
+}
+div.b_scrollblock { 
+	@extend %o_scrollblock;
+}
+
+/* nice table formatting */
+table {
+	td {
+		vertical-align: top;	
+	}
+	&.b_grid {
+		width: 99.5%; 
+		background: transparent;
+		border-collapse: separate;
+		td, th { 
+			padding: $padding-xs-vertical $padding-xs-horizontal;
+			border: 1px solid $o-content-table-border;
+		}
+		th {
+			background: $gray-lighter;
+		}	
+	}
+	&.b_border {
+		width: 99.5%; 
+		background: transparent;
+		border-collapse: collapse;
+		td, th { 
+			padding: $padding-xs-vertical $padding-xs-horizontal;
+			border: 1px solid $o-content-table-border;
+		}	
+		th {
+			background: $gray-lighter;
+		}	
+	}
+	&.b_borderless {
+		width: 99.5%; 
+		background: transparent;
+		border-collapse: separate;
+		td, th { 
+			padding: $padding-xs-vertical $padding-xs-horizontal;
+			border: 0;
+		}
+	}
+	&.b_full { 
+		width: 99.5%; 
+	}
+	&.b_middle {
+		background: transparent;
+		td {
+			vertical-align: middle;			
+		}	
+	}
+}
+
+/* font styles  */
+.b_selected, p.b_selected, div.b_selected { 
+	@extend %o_selected;
+}	
+.b_dimmed, p.b_dimmed, div.b_dimmed { 
+	@extend %o_dimmed;
+}
+.b_disabled, p.b_disabled, div.b_disabled { 
+	@extend %o_disabled;
+}
+.b_deleted, p.b_deleted, div.b_deleted { 
+	@extend %o_deleted;
+}	
+
+/* font sizes relative to parent object */
+.b_xsmall, p.b_xsmall, div.b_xsmall { 
+	@extend %o_xsmall;
+}
+.b_small, p.b_small, div.b_small { 
+	@extend %o_small;
+}
+.b_large, p.b_large, div.b_large { 
+	@extend %o_large;
+}
+.b_xlarge, p.b_xlarge, div.b_xlarge  { 
+	@extend %o_xlarge;
+}
+
+/* text alignment: normal flow in a LTR language is left, in a RTL language it is right */
+.b_align_normal { 
+	text-align: left; 
+}
+.b_align_center { 
+	text-align: center; 
+}
+.b_align_inverse { 
+	text-align: right; 
+}
+.b_align_justified {
+	text-align:justify
+}
+
+/* special links */
+a.b_link_extern {
+	color: $o-content-link-color; /* need seomething for tiny */
+	&:before { 
+		@include o-make-icon(); 
+		padding-right: 0.5em;
+		content: $fa-var-external-link;
+	}
+}
+a.b_link_mailto { 
+	color: $o-content-link-color; /* need seomething for tiny */
+	&:before { 
+		@include o-make-icon(); 
+		padding-right: 0.5em;
+		content: $fa-var-envelope-o;
+		
+	}
+}
+a.b_link_forward { 
+	color: $o-content-link-color; /* need seomething for tiny */
+	&:before { 
+		@include o-make-icon(); 
+		padding-right: 0.5em;
+		content: $fa-var-share ;
+		
+	}
+}
+
+/* image and video styles */
+img {
+	/* responsive fixes */
+	@extend %o_image;
+} 
+img.b_float_left {
+	float: left; 
+	margin: 0 2em 2em 0;
+}
+img.b_float_left_clear {
+	clear: both;
+	margin: 0 2em 2em 0;
+	display: block;
+}
+img.b_float_right {
+	float: right; 
+	margin: 0 0 2em 2em;
+}
+img.b_float_right_clear { 
+	clear: both;
+	display: block; 
+	margin: 0 0 2em auto;
+}
+img.b_centered {
+	clear: both;
+	display: block; 
+	margin: 0 auto 2em auto;
+}
+img.b_circle {
+	border-radius: 50%;
+}
+img.b_with_border {
+	border: 1px solid $o-content-border-img-border; 
+	padding: $o-content-border-img-padding;
+	@include border-top-radius($o-content-border-img-radius); 
+	@include border-bottom-radius($o-content-border-img-radius); 
+}
+.b_image {
+	/* responsive fixes */
+	@extend %o_image;
+} 
+.b_video {
+	/* responsive fixes */
+	@extend %o_video;
+} 
+
+/* float clear classes */
+.b_clear_float, p.b_clear_float, div.b_clear_float { 
+	clear: both;
+}
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/light/modules/_course.scss b/src/main/webapp/static/themes/light/modules/_course.scss
index 9aad606256af2bb87dc197779e0ee68dd555b778..05c13505ccd7dcdde6fdf247880b5133bd80dfb7 100644
--- a/src/main/webapp/static/themes/light/modules/_course.scss
+++ b/src/main/webapp/static/themes/light/modules/_course.scss
@@ -120,6 +120,31 @@
 	}
 }
 
+/* link list course element */
+.o_ll_container {
+	h5 {
+		margin-bottom: 5px;
+		a.o_desc {
+			color: $o-content-h5-color;	
+			small {
+				display: none;
+			}
+	
+			&:hover {
+				color: darken($o-content-h5-color,10%);				
+				text-decoration: none;
+				small {
+					color: darken($o-content-dimmed-color,10%);				
+					display: inline;
+				}
+			}		
+		}
+	}
+	div.o_comment {
+		color: $o-content-dimmed-color;
+	}
+}
+
 /* statistics */
 .o_course_stats .o_desc {
 	@extend %o_note
diff --git a/src/main/webapp/static/themes/light/modules/_icons.scss b/src/main/webapp/static/themes/light/modules/_icons.scss
index 6aebfda428c46b34ccd0b341724424f3db25044b..71bf4b3ab14973d747d7e53583cf6d1bae9b165f 100644
--- a/src/main/webapp/static/themes/light/modules/_icons.scss
+++ b/src/main/webapp/static/themes/light/modules/_icons.scss
@@ -195,6 +195,7 @@ $fa-css-prefix: "o_icon" !default;
 .o_icon_share:before { content: $fa-var-share;}
 .o_icon_show_more:before { content: $fa-var-toggle-down; }
 .o_icon_show_less:before { content: $fa-var-toggle-up; }
+.o_icon_sign_out:before { content: $fa-var-sign-out; }
 .o_icon_spacer:before { content: $fa-var-arrows-h; }
 .o_icon_split:before { content: $fa-var-unlink;}
 .o_icon_sort:before { content: $fa-var-sort;}
diff --git a/src/main/webapp/static/themes/light/modules/_rating_and_comments.scss b/src/main/webapp/static/themes/light/modules/_rating_and_comments.scss
index f28da6743629669c96294395e2e00a0afe1ba474..95c4b0719a620f9f07ebae302a245e11157d430b 100644
--- a/src/main/webapp/static/themes/light/modules/_rating_and_comments.scss
+++ b/src/main/webapp/static/themes/light/modules/_rating_and_comments.scss
@@ -48,6 +48,11 @@
 		.o_comment { 
 			@extend %o_small;
 		}
+		/* a reply to a comment */		
+		.o_comment_wrapper {
+			margin-left: $padding-large-horizontal; 		
+		}
+		
 	}
 } 
 
diff --git a/src/main/webapp/static/themes/light/modules/_various_modules.scss b/src/main/webapp/static/themes/light/modules/_various_modules.scss
index 60c90032ac931c6d96d80a939be07650a817f098..1875f5a18117eb7e3f0d0e8519db8c3753072a53 100644
--- a/src/main/webapp/static/themes/light/modules/_various_modules.scss
+++ b/src/main/webapp/static/themes/light/modules/_various_modules.scss
@@ -367,6 +367,9 @@ ul.o_certificates li {
 			}
 		}
 	}
+	.o_content {
+		@include clearfix();
+	}
 }
 
 /* Glossary */
diff --git a/src/main/webapp/static/themes/light/theme.css b/src/main/webapp/static/themes/light/theme.css
index 5b82ca60c3e06fdc90f2c1c597b5983e36ee7485..438458322dcf7b290398bf8ba680e9d1540c4410 100644
--- a/src/main/webapp/static/themes/light/theme.css
+++ b/src/main/webapp/static/themes/light/theme.css
@@ -58,15 +58,15 @@ fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%
 @media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}
 .visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}
 .visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}
-@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.eot?#iefix4yacgg") format("embedded-opentype"),url("../light/fonts/openolat/openolat.woff?4yacgg") format("woff"),url("../light/fonts/openolat/openolat.ttf?4yacgg") format("truetype"),url("../light/fonts/openolat/openolat.svg?4yacgg#openolat") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_accessibility:before{content:"\f193"}.o_icon_actions:before{content:"\f085"}.o_icon_archive_tool:before{content:"\f019"}.o_icon_assessment_mode:before{content:"\f044"}.o_icon_assessment_tool:before{content:"\f091"}.o_icon_attempt_limit:before{content:"\f021"}.o_icon_accept:before{content:"\f00c";color:#5cb85c}.o_icon_add:before{content:"\f055"}.o_icon_add_search:before{content:"\f00e"}.o_icon_audio:before{content:"\f028"}.o_icon_back:before{content:"\f053"}.o_icon_back_history:before{content:"\f1da"}.o_icon_bold:before{content:"\f032"}.o_icon_booking:before{content:"\f07a"}.o_icon_bookmark:before{content:"\f02e";color:#bc2d0c}.o_icon_bookmark_add:before{content:"\f097"}.o_icon_bookmark_header:before{content:"\f02e"}.o_icon_browse:before{content:"\f00e"}.o_icon_browsercheck:before{content:"\f164"}.o_icon_busy:before{content:"\f110"}.o_icon_calendar:before{content:"\f073"}.o_icon_calendar_enabled:before{content:"\f05d"}.o_icon_calendar_disabled:before{content:"\f10c"}.o_icon_calendar:before{content:"\f073"}.o_icon_caret:before{content:"\f0d7"}.o_icon_caret_right:before{content:"\f0da"}.o_icon_catalog:before{content:"\f0e8"}.o_icon_catalog_sub:before{content:"\f07b"}.o_icon_certificate:before{content:"\f0a3"}.o_icon_chat:before{content:"\f0e5"}.o_icon_check:before{content:"\f00c"}.o_icon_check_off:before{content:"\f096"}.o_icon_check_on:before{content:"\f046"}.o_icon_checkbox:before{content:"\f096"}.o_icon_checkbox_checked:before{content:"\f14a"}.o_icon_cleanup:before{content:"\f0f9"}.o_icon_close:before{content:"\f00d"}.o_icon_close_resource:before{content:"\f011"}.o_icon_close_tab:before{content:"\f00d"}.o_icon_close_tool:before{content:"\f00d"}.o_icon_close_tree:before{content:"\f0d7"}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before{content:"\f0d7"}.o_icon_code:before{content:"\f121"}.o_icon_color_picker:before{content:"\f043"}.o_icon_copy:before{content:"\f0c5"}.o_icon_courseareas:before{content:"\f1db"}.o_icon_coursedb:before{content:"\f1c0"}.o_icon_courseeditor:before{content:"\f044"}.o_icon_coursefolder:before{content:"\f114"}.o_icon_courserun:before{content:"\f1b2"}.o_icon_comments:before{content:"\f086"}.o_icon_comments_none:before{content:"\f0e5"}.o_icon_content_popup:before{content:"\f08e"}.o_icon_correct_answer:before{content:"\f00c";color:#5cb85c}.o_icon_customize:before{content:"\f013"}.o_icon_delete_item:before{content:"\f1f8"}.o_icon_delete:before{content:"\f056";color:#A87E7E}.o_icon_details:before{content:"\f0eb"}.o_icon_dev:before{content:"\f188"}.o_icon_disabled:before{content:"\f10c"}.o_icon_download:before{content:"\f019"}.o_icon_edit:before{content:"\f044"}.o_icon_edit_file:before{content:"\f044"}.o_icon_edit_metadata:before{content:"\f013"}.o_icon_enabled:before{content:"\f111"}.o_icon_enlarge:before{content:"\f00e"}.o_icon_eportfolio_add:before{content:"\f12e"}.o_icon_eportfolio_link:before{content:"\f12e"}.o_icon_error:before{content:"\f06a";color:#d9534f}.o_icon_expenditure:before{content:"\f017"}.o_icon_export:before{content:"\f045"}.o_icon_external_link:before{content:"\f08e"}.o_icon_failed:before{content:"\f057"}.o_icon_filter:before{content:"\f0b0"}.o_icon_group:before,.o_BusinessGroup_icon:before{content:"\f0c0"}.o_icon_header:before{content:"\f1dc"}.o_icon_help:before{content:"\f059";cursor:help}.o_icon_home:before{content:"\f015"}.o_icon_impress:before{content:"\f05a"}.o_icon_important:before{content:"\f071";color:#f0ad4e}.o_icon_import:before{content:"\f093"}.o_icon_info:before{content:"\f05a";color:#5bc0de}.o_icon_info_msg:before{content:"\f06a";color:#d9534f}.o_icon_inline_editable:before{content:"\f044"}.o_icon_institution:before{content:"\f19c"}.o_icon_italic:before{content:"\f033"}.o_icon_landingpage:before{content:"\f140"}.o_icon_language:before{content:"\f0ac"}.o_icon_layout:before{content:"\f1c5"}.o_icon_link:before{content:"\f0c1"}.o_icon_link_extern:before{content:"\f08e"}.o_icon_list:before{content:"\f03a"}.o_icon_list_num :before{content:"\f0cb"}.o_icon_lifecycle:before{content:"\f073"}.o_icon_locked:before{content:"\f023"}.o_icon_login:before{content:"\f090"}.o_icon_logout:before{content:"\f08b"}.o_icon_mandatory:before{content:"\f069";color:#f0ad4e}.o_icon_managed:before{content:"\f079";color:#777}.o_icon_manual:before{content:"\f02d";cursor:help}.o_icon_mail:before{content:"\f003"}.o_icon_math:before{content:"\f198"}.o_icon_membersmanagement:before{content:"\f0c0"}.o_icon_menuhandel:before{content:"\f0c9"}.o_icon_message:before{content:"\f0e0"}.o_icon_move:before{content:"\f047"}.o_icon_move_down:before{content:"\f103"}.o_icon_move_left:before{content:"\f100"}.o_icon_move_right:before{content:"\f101"}.o_icon_move_up:before{content:"\f102"}.o_icon_new:before{content:"\f069";color:#5cb85c}.o_icon_new_document:before{content:"\f15c"}.o_icon_new_folder:before{content:"\f07b"}.o_icon_news:before{content:"\f05a"}.o_icon_next:before{content:"\f138"}.o_icon_next_page:before{content:"\f101"}.o_icon_next_toolbar:before{content:"\f0da"}.o_icon_node_after:before{content:"\f175"}.o_icon_node_before:before{content:"\f176"}.o_icon_node_under:before{content:"\f112"}.o_icon_notes:before{content:"\f1e8"}.o_icon_notification:before{content:"\f09e"}.o_icon_open_tree:before{content:"\f0da"}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before{content:"\f0da"}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:"\f205"}.o_icon_pageing:before{content:"\f141"}.o_icon_passed:before{content:"\f058"}.o_icon_password:before{content:"\f023"}.o_icon_pending:before{content:"\f110"}.o_icon_phone:before{content:"\f095"}.o_icon_post:before{content:"\f0e5"}.o_icon_preview:before{content:"\f06e"}.o_icon_previous:before{content:"\f137"}.o_icon_previous_page:before{content:"\f100"}.o_icon_previous_toolbar:before{content:"\f0d9"}.o_icon_print:before{content:"\f02f"}.o_icon_private:before{content:"\f02f"}.o_icon_provider_adfs:before{content:"\f17a"}.o_icon_provider_facebook:before{content:"\f09a"}.o_icon_provider_google:before{content:"\f0d5"}.o_icon_provider_guest:before{content:"\f1ae"}.o_icon_provider_ldap:before{content:"\f19c"}.o_icon_provider_linkedin:before{content:"\f0e1"}.o_icon_provider_oauth:before{content:"\f0c2"}.o_icon_provider_shibboleth:before{content:"\f19c"}.o_icon_provider_twitter:before{content:"\f099"}.o_icon_publish:before{content:"\f064"}.o_icon_qrcode:before{content:"\f029"}.o_icon_quickview:before{content:"\f06e"}.o_icon_radio_off:before{content:"\f10c"}.o_icon_radio_on:before{content:"\f05d"}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:"\f005"}.o_icon_rating_off:before{content:"\f006"}.o_icon_read:before{content:"\f10c"}.o_icon_readonly:before{content:"\f044";color:red}.o_icon_readwrite:before{content:"\f044"}.o_icon_recycle:before{content:"\f1b8"}.o_icon_refresh:before{content:"\f021"}.o_icon_reject:before{content:"\f00d";color:#d9534f}.o_icon_remove:before{content:"\f00d"}.o_icon_replace:before{content:"\f0c5"}.o_icon_reply:before{content:"\f112"}.o_icon_reply_with_quote:before{content:"\f122"}.o_icon_response_feedback:before{content:"\f021"}.o_icon_review:before{content:"\f06e"}.o_icon_rss:before{content:"\f09e"}.o_icon_rss_unsubscribe:before{content:"\f09e";color:#996633}.o_icon_search:before{content:"\f002"}.o_icon_settings:before{content:"\f085"}.o_icon_share:before{content:"\f064"}.o_icon_show_more:before{content:"\f150"}.o_icon_show_less:before{content:"\f151"}.o_icon_spacer:before{content:"\f07e"}.o_icon_split:before{content:"\f127"}.o_icon_sort:before{content:"\f0dc"}.o_icon_sort_asc:before{content:"\f0de"}.o_icon_sort_desc:before{content:"\f0dd"}.o_icon_sort_menu:before{content:"\f160"}.o_icon_start:before{content:"\f054"}.o_icon_status_available:before{content:"\f111";color:#063}.o_icon_status_chat:before{content:"\f075"}.o_icon_status_dnd:before{content:"\f192";color:#cc3}.o_icon_status_unavailable:before{content:"\f05c";color:#963}.o_icon_statistics_tool:before{content:"\f080"}.o_icon_table:before{content:"\f0ce"}.o_icon_table_large:before{content:"\f009"}.o_icon_tags:before{content:"\f02c"}.o_icon_timelimit:before{content:"\f1e2"}.o_icon_toggle:before{content:"\f111"}.o_icon_to_read:before{content:"\f111"}.o_icon_tool:before{content:"\f013"}.o_icon_tools:before{content:"\f0ad"}.o_icon_top:before{content:"\f077"}.o_icon_translation_item:before{content:"\f1c9"}.o_icon_translation_package:before{content:"\f115"}.o_icon_user:before{content:"\f007"}.o_icon_user_vip:before{content:"\f19d"}.o_icon_user_anonymous:before{content:"\f128"}.o_icon_upload:before{content:"\f093"}.o_icon_version:before{content:"\f1da"}.o_icon_video:before{content:"\f008"}.o_icon_warn:before{content:"\f071";color:#f0ad4e}.o_icon_wizard:before{content:"\f0d0"}.o_CourseModule_icon:before,.o_course_icon:before{content:"\f1b2"}.o_EPStructuredMapTemplate_icon:before{content:"\f12e"}.o_FileResource-BLOG_icon:before{content:"\f0a1"}.o_FileResource-IMSCP_icon:before{content:"\f187"}.o_FileResource-PODCAST_icon:before{content:"\f03d"}.o_FileResource-SHAREDFOLDER:before{content:"\f08e"}.o_FileResource-SCORMCP_icon:before{content:"\f187"}.o_FileResource-SURVEY_icon:before{content:"\f11a"}.o_FileResource-TEST_icon:before{content:"\f044"}.o_FileResource-WIKI_icon:before{content:"\f0ac"}.o_FileResource-SHAREDFOLDER_icon:before{content:"\f115"}.o_FileResource-GLOSSARY_icon:before{content:"\f19d"}.o_FileResource-PDF_icon:before{content:"\f1c1"}.o_FileResource-XLS_icon:before{content:"\f1c3"}.o_FileResource-PPT_icon:before{content:"\f1c4"}.o_FileResource-DOC_icon:before{content:"\f1c2"}.o_FileResource-ANIM_icon:before{content:"\f1c8"}.o_FileResource-IMAGE_icon:before{content:"\f1c5"}.o_FileResource-SOUND_icon:before{content:"\f1c7"}.o_FileResource-MOVIE_icon:before{content:"\f1c8"}.o_FileResource-FILE_icon:before{content:"\f016"}.o_CourseModule_icon_closed:before{content:"\f05e"}.o_sp_icon:before{content:"\f0f6"}.o_st_icon:before{content:"\f1b3"}.o_tu_icon:before{content:"\f08e"}.o_bc_icon:before{content:"\f115"}.o_lti_icon:before{content:"\f08e"}.o_cp_icon:before{content:"\f187"}.o_cp_item:before{content:"\f0f6"}.o_scorm_icon:before{content:"\f187"}.o_en_icon:before{content:"\f090"}.o_fo_icon:before{content:"\f0e6"}.o_co_icon:before{content:"\f003"}.o_infomsg_icon:before{content:"\f05a"}.o_cal_icon:before{content:"\f073"}.o_wiki_icon:before{content:"\f0ac"}.o_podcast_icon:before{content:"\f03d"}.o_blog_icon:before{content:"\f0a1"}.o_ep_icon:before{content:"\f12e"}.o_iqtest_icon:before{content:"\f044"}.o_iqself_icon:before{content:"\f044"}.o_iqsurv_icon:before{content:"\f11a"}.o_ta_icon:before{content:"\f0ae"}.o_ms_icon:before{content:"\f087"}.o_dialog_icon:before{content:"\f0c5"}.o_projectbroker_icon:before{content:"\f10c"}.o_ll_icon:before{content:"\f0c1"}.o_den_icon:before{content:"\f133"}.o_cmembers_icon:before{content:"\f0c0"}.o_cl_icon:before{content:"\f046"}.o_vc_icon:before{content:"\f108"}.o_vitero_icon:before{content:"\f108"}.o_openmeetings_icon:before{content:"\f108"}.o_portlet_infomsg_icon:before{content:"\f05a"}.o_portlet_quickstart_icon:before{content:"\f1d9"}.o_portlet_bookmark_icon:before{content:"\f02e"}.o_portlet_groups_icon:before{content:"\f0c0"}.o_portlet_notes_icon:before{content:"\f1e8"}.o_portlet_noti_icon:before{content:"\f09e"}.o_portlet_eff_icon:before{content:"\f0a3"}.o_portlet_repository_student_icon:before{content:"\f1b3"}.o_portlet_repository_teacher_icon:before{content:"\f19d"}.o_portlet_iframe_icon:before{content:"\f005"}.o_portlet_sysinfo_icon:before{content:"\f0e4"}.o_portlet_dyk_icon:before{content:"\f0eb"}.o_portlet_infomessages_icon:before{content:"\f0e5"}.o_portlet_cal_icon:before{content:"\f073"}.o_portlet_institutions_icon:before{content:"\f19c"}.o_portlet_links_icon:before{content:"\f0c1"}.o_portlet_shibboleth_icon:before{content:"\f090"}.o_icon_qpool:before{content:"\f19c"}.o_icon_pool_private:before{content:"\f096"}.o_icon_pool_public:before{content:"\f046"}.o_icon_pool_my_items:before{content:"\f007"}.o_icon_pool_favorits:before{content:"\f02e"}.o_icon_pool_collection:before{content:"\f03a"}.o_icon_pool_pool:before{content:"\f1e1"}.o_icon_pool_share:before{content:"\f0c0"}.o_forum_message_icon:before{content:"\f0e5"}.o_calendar_icon:before{content:"\f073"}.o_forum_status_thread_icon:before{content:"\f0e6"}.o_forum_status_sticky_closed_icon:before{content:"\f05e"}.o_forum_status_sticky_icon:before{content:"\f086"}.o_forum_status_closed_icon:before{content:"\f05e";color:#a94442}.o_forum_status_opened_icon:before{content:"\f05e";color:#3c763d}.o_forum_status_hidden_icon:before{content:"\f070";color:#a94442}.o_forum_status_visible_icon:before{content:"\f06e";color:#3c763d}.o_mi_qpool_import:before{content:"\f1c0"}.o_mi_qtisection:before{content:"\f1b3"}.o_mi_qtisc:before{content:"\f192"}.o_mi_qtimc:before{content:"\f046"}.o_mi_qtikprim:before{content:"\f14a"}.o_mi_qtifib:before{content:"\f141"}.o_mi_qtiessay:before{content:"\f036"}.o_as_mode_leadtime:before{content:"\f017"}.o_as_mode_assessment:before{content:"\f04b"}.o_as_mode_followup:before{content:"\f05e"}.o_as_mode_closed:before{content:'-'}.o_black_led:before{content:"\f111";color:#337ab7}.o_green_led:before{content:"\f111";color:#5cb85c}.o_yellow_led:before{content:"\f111";color:#f0ad4e}.o_red_led:before{content:"\f111";color:#d9534f}.o_ac_token_icon:before{content:"\f084"}.o_ac_free_icon:before{content:"\f06b"}.o_ac_group_icon:before{content:"\f0c0"}.o_ac_membersonly_icon:before{content:"\f023"}.o_ac_paypal_icon:before{content:"\f1f4"}.o_ac_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_status_new_icon:before{content:"\f069";color:#337ab7}.o_ac_status_succes_icon:before{content:"\f00c";color:#5cb85c}.o_ac_status_waiting_icon:before{content:"\f017";color:#337ab7}.o_ac_order_status_new_icon:before{content:"\f069";color:#337ab7}.o_ac_order_status_prepayment_icon:before{content:"\f0d6";color:#5bc0de}.o_ac_order_status_payed_icon:before{content:"\f00c";color:#5cb85c}.o_ac_order_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_order_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_order_status_warning_icon:before{content:"\f12a";color:#f0ad4e}.o_scorm_org:before{content:"\f187"}.o_scorm_item:before{content:"\f016"}.o_scorm_completed:before,.o_scorm_passed:before{content:"\f058"}.o_scorm_failed:before{content:"\f071"}.o_scorm_incomplete:before{content:"\f071"}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:"\f058"}.o_midwarn:before{content:"\f071"}.o_midlock:before{content:"\f023"}.o_miderr:before{content:"\f071"}.o_middel:before{content:"\f12d"}.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_filetype_folder:before{content:"\f114"}.o_filetype_folder_open:before{content:"\f115"}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:"\f1c9"}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:"\f0f6"}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon_share_social:before{content:"\f14d"}.o_icon_apple:before{content:"\f179"}.o_icon_facebook:before{content:"\f082"}.o_icon_twitter:before{content:"\f081"}.o_icon_google:before{content:"\f0d4"}.o_icon_delicious:before{content:"\f1a5"}.o_icon_digg:before{content:"\f1a6"}.o_icon_mailto:before{content:"\f199"}.o_icon_link:before{content:"\f0c1"}.o_icon_yahoo:before{content:"\f19e"}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall{font-size:12px}.o_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry{font-size:12px}.o_large{font-size:18px}.o_xlarge{font-size:18px}.o_disabled{color:#777 !important;cursor:default}.o_disabled:hover{color:#777 !important}.o_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected{font-weight:bold}.o_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_login .o_login_register:hover,.o_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video{display:inline-block;max-width:100%;height:auto}.o_image{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}h1{color:#337ab7}h2{color:#337ab7}h3{color:#337ab7}h4,.o_cal .fc-header-title h2{color:#337ab7}h5{color:#337ab7}h5{color:#337ab7}fieldset legend{color:#333}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#337ab7}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}
+@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.eot?#iefix4yacgg") format("embedded-opentype"),url("../light/fonts/openolat/openolat.woff?4yacgg") format("woff"),url("../light/fonts/openolat/openolat.ttf?4yacgg") format("truetype"),url("../light/fonts/openolat/openolat.svg?4yacgg#openolat") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_accessibility:before{content:"\f193"}.o_icon_actions:before{content:"\f085"}.o_icon_archive_tool:before{content:"\f019"}.o_icon_assessment_mode:before{content:"\f044"}.o_icon_assessment_tool:before{content:"\f091"}.o_icon_attempt_limit:before{content:"\f021"}.o_icon_accept:before{content:"\f00c";color:#5cb85c}.o_icon_add:before{content:"\f055"}.o_icon_add_search:before{content:"\f00e"}.o_icon_audio:before{content:"\f028"}.o_icon_back:before{content:"\f053"}.o_icon_back_history:before{content:"\f1da"}.o_icon_bold:before{content:"\f032"}.o_icon_booking:before{content:"\f07a"}.o_icon_bookmark:before{content:"\f02e";color:#bc2d0c}.o_icon_bookmark_add:before{content:"\f097"}.o_icon_bookmark_header:before{content:"\f02e"}.o_icon_browse:before{content:"\f00e"}.o_icon_browsercheck:before{content:"\f164"}.o_icon_busy:before{content:"\f110"}.o_icon_calendar:before{content:"\f073"}.o_icon_calendar_enabled:before{content:"\f05d"}.o_icon_calendar_disabled:before{content:"\f10c"}.o_icon_calendar:before{content:"\f073"}.o_icon_caret:before{content:"\f0d7"}.o_icon_caret_right:before{content:"\f0da"}.o_icon_catalog:before{content:"\f0e8"}.o_icon_catalog_sub:before{content:"\f07b"}.o_icon_certificate:before{content:"\f0a3"}.o_icon_chat:before{content:"\f0e5"}.o_icon_check:before{content:"\f00c"}.o_icon_check_off:before{content:"\f096"}.o_icon_check_on:before{content:"\f046"}.o_icon_checkbox:before{content:"\f096"}.o_icon_checkbox_checked:before{content:"\f14a"}.o_icon_cleanup:before{content:"\f0f9"}.o_icon_close:before{content:"\f00d"}.o_icon_close_resource:before{content:"\f011"}.o_icon_close_tab:before{content:"\f00d"}.o_icon_close_tool:before{content:"\f00d"}.o_icon_close_tree:before{content:"\f0d7"}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before{content:"\f0d7"}.o_icon_code:before{content:"\f121"}.o_icon_color_picker:before{content:"\f043"}.o_icon_copy:before{content:"\f0c5"}.o_icon_courseareas:before{content:"\f1db"}.o_icon_coursedb:before{content:"\f1c0"}.o_icon_courseeditor:before{content:"\f044"}.o_icon_coursefolder:before{content:"\f114"}.o_icon_courserun:before{content:"\f1b2"}.o_icon_comments:before{content:"\f086"}.o_icon_comments_none:before{content:"\f0e5"}.o_icon_content_popup:before{content:"\f08e"}.o_icon_correct_answer:before{content:"\f00c";color:#5cb85c}.o_icon_customize:before{content:"\f013"}.o_icon_delete_item:before{content:"\f1f8"}.o_icon_delete:before{content:"\f056";color:#A87E7E}.o_icon_details:before{content:"\f0eb"}.o_icon_dev:before{content:"\f188"}.o_icon_disabled:before{content:"\f10c"}.o_icon_download:before{content:"\f019"}.o_icon_edit:before{content:"\f044"}.o_icon_edit_file:before{content:"\f044"}.o_icon_edit_metadata:before{content:"\f013"}.o_icon_enabled:before{content:"\f111"}.o_icon_enlarge:before{content:"\f00e"}.o_icon_eportfolio_add:before{content:"\f12e"}.o_icon_eportfolio_link:before{content:"\f12e"}.o_icon_error:before{content:"\f06a";color:#d9534f}.o_icon_expenditure:before{content:"\f017"}.o_icon_export:before{content:"\f045"}.o_icon_external_link:before{content:"\f08e"}.o_icon_failed:before{content:"\f057"}.o_icon_filter:before{content:"\f0b0"}.o_icon_group:before,.o_BusinessGroup_icon:before{content:"\f0c0"}.o_icon_header:before{content:"\f1dc"}.o_icon_help:before{content:"\f059";cursor:help}.o_icon_home:before{content:"\f015"}.o_icon_impress:before{content:"\f05a"}.o_icon_important:before{content:"\f071";color:#f0ad4e}.o_icon_import:before{content:"\f093"}.o_icon_info:before{content:"\f05a";color:#5bc0de}.o_icon_info_msg:before{content:"\f06a";color:#d9534f}.o_icon_inline_editable:before{content:"\f044"}.o_icon_institution:before{content:"\f19c"}.o_icon_italic:before{content:"\f033"}.o_icon_landingpage:before{content:"\f140"}.o_icon_language:before{content:"\f0ac"}.o_icon_layout:before{content:"\f1c5"}.o_icon_link:before{content:"\f0c1"}.o_icon_link_extern:before{content:"\f08e"}.o_icon_list:before{content:"\f03a"}.o_icon_list_num :before{content:"\f0cb"}.o_icon_lifecycle:before{content:"\f073"}.o_icon_locked:before{content:"\f023"}.o_icon_login:before{content:"\f090"}.o_icon_logout:before{content:"\f08b"}.o_icon_mandatory:before{content:"\f069";color:#f0ad4e}.o_icon_managed:before{content:"\f079";color:#777}.o_icon_manual:before{content:"\f02d";cursor:help}.o_icon_mail:before{content:"\f003"}.o_icon_math:before{content:"\f198"}.o_icon_membersmanagement:before{content:"\f0c0"}.o_icon_menuhandel:before{content:"\f0c9"}.o_icon_message:before{content:"\f0e0"}.o_icon_move:before{content:"\f047"}.o_icon_move_down:before{content:"\f103"}.o_icon_move_left:before{content:"\f100"}.o_icon_move_right:before{content:"\f101"}.o_icon_move_up:before{content:"\f102"}.o_icon_new:before{content:"\f069";color:#5cb85c}.o_icon_new_document:before{content:"\f15c"}.o_icon_new_folder:before{content:"\f07b"}.o_icon_news:before{content:"\f05a"}.o_icon_next:before{content:"\f138"}.o_icon_next_page:before{content:"\f101"}.o_icon_next_toolbar:before{content:"\f0da"}.o_icon_node_after:before{content:"\f175"}.o_icon_node_before:before{content:"\f176"}.o_icon_node_under:before{content:"\f112"}.o_icon_notes:before{content:"\f1e8"}.o_icon_notification:before{content:"\f09e"}.o_icon_open_tree:before{content:"\f0da"}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before{content:"\f0da"}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:"\f205"}.o_icon_pageing:before{content:"\f141"}.o_icon_passed:before{content:"\f058"}.o_icon_password:before{content:"\f023"}.o_icon_pending:before{content:"\f110"}.o_icon_phone:before{content:"\f095"}.o_icon_post:before{content:"\f0e5"}.o_icon_preview:before{content:"\f06e"}.o_icon_previous:before{content:"\f137"}.o_icon_previous_page:before{content:"\f100"}.o_icon_previous_toolbar:before{content:"\f0d9"}.o_icon_print:before{content:"\f02f"}.o_icon_private:before{content:"\f02f"}.o_icon_provider_adfs:before{content:"\f17a"}.o_icon_provider_facebook:before{content:"\f09a"}.o_icon_provider_google:before{content:"\f0d5"}.o_icon_provider_guest:before{content:"\f1ae"}.o_icon_provider_ldap:before{content:"\f19c"}.o_icon_provider_linkedin:before{content:"\f0e1"}.o_icon_provider_oauth:before{content:"\f0c2"}.o_icon_provider_shibboleth:before{content:"\f19c"}.o_icon_provider_twitter:before{content:"\f099"}.o_icon_publish:before{content:"\f064"}.o_icon_qrcode:before{content:"\f029"}.o_icon_quickview:before{content:"\f06e"}.o_icon_radio_off:before{content:"\f10c"}.o_icon_radio_on:before{content:"\f05d"}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:"\f005"}.o_icon_rating_off:before{content:"\f006"}.o_icon_read:before{content:"\f10c"}.o_icon_readonly:before{content:"\f044";color:red}.o_icon_readwrite:before{content:"\f044"}.o_icon_recycle:before{content:"\f1b8"}.o_icon_refresh:before{content:"\f021"}.o_icon_reject:before{content:"\f00d";color:#d9534f}.o_icon_remove:before{content:"\f00d"}.o_icon_replace:before{content:"\f0c5"}.o_icon_reply:before{content:"\f112"}.o_icon_reply_with_quote:before{content:"\f122"}.o_icon_response_feedback:before{content:"\f021"}.o_icon_review:before{content:"\f06e"}.o_icon_rss:before{content:"\f09e"}.o_icon_rss_unsubscribe:before{content:"\f09e";color:#996633}.o_icon_search:before{content:"\f002"}.o_icon_settings:before{content:"\f085"}.o_icon_share:before{content:"\f064"}.o_icon_show_more:before{content:"\f150"}.o_icon_show_less:before{content:"\f151"}.o_icon_sign_out:before{content:"\f08b"}.o_icon_spacer:before{content:"\f07e"}.o_icon_split:before{content:"\f127"}.o_icon_sort:before{content:"\f0dc"}.o_icon_sort_asc:before{content:"\f0de"}.o_icon_sort_desc:before{content:"\f0dd"}.o_icon_sort_menu:before{content:"\f160"}.o_icon_start:before{content:"\f054"}.o_icon_status_available:before{content:"\f111";color:#063}.o_icon_status_chat:before{content:"\f075"}.o_icon_status_dnd:before{content:"\f192";color:#cc3}.o_icon_status_unavailable:before{content:"\f05c";color:#963}.o_icon_statistics_tool:before{content:"\f080"}.o_icon_table:before{content:"\f0ce"}.o_icon_table_large:before{content:"\f009"}.o_icon_tags:before{content:"\f02c"}.o_icon_timelimit:before{content:"\f1e2"}.o_icon_toggle:before{content:"\f111"}.o_icon_to_read:before{content:"\f111"}.o_icon_tool:before{content:"\f013"}.o_icon_tools:before{content:"\f0ad"}.o_icon_top:before{content:"\f077"}.o_icon_translation_item:before{content:"\f1c9"}.o_icon_translation_package:before{content:"\f115"}.o_icon_user:before{content:"\f007"}.o_icon_user_vip:before{content:"\f19d"}.o_icon_user_anonymous:before{content:"\f128"}.o_icon_upload:before{content:"\f093"}.o_icon_version:before{content:"\f1da"}.o_icon_video:before{content:"\f008"}.o_icon_warn:before{content:"\f071";color:#f0ad4e}.o_icon_wizard:before{content:"\f0d0"}.o_CourseModule_icon:before,.o_course_icon:before{content:"\f1b2"}.o_EPStructuredMapTemplate_icon:before{content:"\f12e"}.o_FileResource-BLOG_icon:before{content:"\f0a1"}.o_FileResource-IMSCP_icon:before{content:"\f187"}.o_FileResource-PODCAST_icon:before{content:"\f03d"}.o_FileResource-SHAREDFOLDER:before{content:"\f08e"}.o_FileResource-SCORMCP_icon:before{content:"\f187"}.o_FileResource-SURVEY_icon:before{content:"\f11a"}.o_FileResource-TEST_icon:before{content:"\f044"}.o_FileResource-WIKI_icon:before{content:"\f0ac"}.o_FileResource-SHAREDFOLDER_icon:before{content:"\f115"}.o_FileResource-GLOSSARY_icon:before{content:"\f19d"}.o_FileResource-PDF_icon:before{content:"\f1c1"}.o_FileResource-XLS_icon:before{content:"\f1c3"}.o_FileResource-PPT_icon:before{content:"\f1c4"}.o_FileResource-DOC_icon:before{content:"\f1c2"}.o_FileResource-ANIM_icon:before{content:"\f1c8"}.o_FileResource-IMAGE_icon:before{content:"\f1c5"}.o_FileResource-SOUND_icon:before{content:"\f1c7"}.o_FileResource-MOVIE_icon:before{content:"\f1c8"}.o_FileResource-FILE_icon:before{content:"\f016"}.o_CourseModule_icon_closed:before{content:"\f05e"}.o_sp_icon:before{content:"\f0f6"}.o_st_icon:before{content:"\f1b3"}.o_tu_icon:before{content:"\f08e"}.o_bc_icon:before{content:"\f115"}.o_lti_icon:before{content:"\f08e"}.o_cp_icon:before{content:"\f187"}.o_cp_item:before{content:"\f0f6"}.o_scorm_icon:before{content:"\f187"}.o_en_icon:before{content:"\f090"}.o_fo_icon:before{content:"\f0e6"}.o_co_icon:before{content:"\f003"}.o_infomsg_icon:before{content:"\f05a"}.o_cal_icon:before{content:"\f073"}.o_wiki_icon:before{content:"\f0ac"}.o_podcast_icon:before{content:"\f03d"}.o_blog_icon:before{content:"\f0a1"}.o_ep_icon:before{content:"\f12e"}.o_iqtest_icon:before{content:"\f044"}.o_iqself_icon:before{content:"\f044"}.o_iqsurv_icon:before{content:"\f11a"}.o_ta_icon:before{content:"\f0ae"}.o_ms_icon:before{content:"\f087"}.o_dialog_icon:before{content:"\f0c5"}.o_projectbroker_icon:before{content:"\f10c"}.o_ll_icon:before{content:"\f0c1"}.o_den_icon:before{content:"\f133"}.o_cmembers_icon:before{content:"\f0c0"}.o_cl_icon:before{content:"\f046"}.o_vc_icon:before{content:"\f108"}.o_vitero_icon:before{content:"\f108"}.o_openmeetings_icon:before{content:"\f108"}.o_portlet_infomsg_icon:before{content:"\f05a"}.o_portlet_quickstart_icon:before{content:"\f1d9"}.o_portlet_bookmark_icon:before{content:"\f02e"}.o_portlet_groups_icon:before{content:"\f0c0"}.o_portlet_notes_icon:before{content:"\f1e8"}.o_portlet_noti_icon:before{content:"\f09e"}.o_portlet_eff_icon:before{content:"\f0a3"}.o_portlet_repository_student_icon:before{content:"\f1b3"}.o_portlet_repository_teacher_icon:before{content:"\f19d"}.o_portlet_iframe_icon:before{content:"\f005"}.o_portlet_sysinfo_icon:before{content:"\f0e4"}.o_portlet_dyk_icon:before{content:"\f0eb"}.o_portlet_infomessages_icon:before{content:"\f0e5"}.o_portlet_cal_icon:before{content:"\f073"}.o_portlet_institutions_icon:before{content:"\f19c"}.o_portlet_links_icon:before{content:"\f0c1"}.o_portlet_shibboleth_icon:before{content:"\f090"}.o_icon_qpool:before{content:"\f19c"}.o_icon_pool_private:before{content:"\f096"}.o_icon_pool_public:before{content:"\f046"}.o_icon_pool_my_items:before{content:"\f007"}.o_icon_pool_favorits:before{content:"\f02e"}.o_icon_pool_collection:before{content:"\f03a"}.o_icon_pool_pool:before{content:"\f1e1"}.o_icon_pool_share:before{content:"\f0c0"}.o_forum_message_icon:before{content:"\f0e5"}.o_calendar_icon:before{content:"\f073"}.o_forum_status_thread_icon:before{content:"\f0e6"}.o_forum_status_sticky_closed_icon:before{content:"\f05e"}.o_forum_status_sticky_icon:before{content:"\f086"}.o_forum_status_closed_icon:before{content:"\f05e";color:#a94442}.o_forum_status_opened_icon:before{content:"\f05e";color:#3c763d}.o_forum_status_hidden_icon:before{content:"\f070";color:#a94442}.o_forum_status_visible_icon:before{content:"\f06e";color:#3c763d}.o_mi_qpool_import:before{content:"\f1c0"}.o_mi_qtisection:before{content:"\f1b3"}.o_mi_qtisc:before{content:"\f192"}.o_mi_qtimc:before{content:"\f046"}.o_mi_qtikprim:before{content:"\f14a"}.o_mi_qtifib:before{content:"\f141"}.o_mi_qtiessay:before{content:"\f036"}.o_as_mode_leadtime:before{content:"\f017"}.o_as_mode_assessment:before{content:"\f04b"}.o_as_mode_followup:before{content:"\f05e"}.o_as_mode_closed:before{content:'-'}.o_black_led:before{content:"\f111";color:#337ab7}.o_green_led:before{content:"\f111";color:#5cb85c}.o_yellow_led:before{content:"\f111";color:#f0ad4e}.o_red_led:before{content:"\f111";color:#d9534f}.o_ac_token_icon:before{content:"\f084"}.o_ac_free_icon:before{content:"\f06b"}.o_ac_group_icon:before{content:"\f0c0"}.o_ac_membersonly_icon:before{content:"\f023"}.o_ac_paypal_icon:before{content:"\f1f4"}.o_ac_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_status_new_icon:before{content:"\f069";color:#337ab7}.o_ac_status_succes_icon:before{content:"\f00c";color:#5cb85c}.o_ac_status_waiting_icon:before{content:"\f017";color:#337ab7}.o_ac_order_status_new_icon:before{content:"\f069";color:#337ab7}.o_ac_order_status_prepayment_icon:before{content:"\f0d6";color:#5bc0de}.o_ac_order_status_payed_icon:before{content:"\f00c";color:#5cb85c}.o_ac_order_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_order_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_order_status_warning_icon:before{content:"\f12a";color:#f0ad4e}.o_scorm_org:before{content:"\f187"}.o_scorm_item:before{content:"\f016"}.o_scorm_completed:before,.o_scorm_passed:before{content:"\f058"}.o_scorm_failed:before{content:"\f071"}.o_scorm_incomplete:before{content:"\f071"}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:"\f058"}.o_midwarn:before{content:"\f071"}.o_midlock:before{content:"\f023"}.o_miderr:before{content:"\f071"}.o_middel:before{content:"\f12d"}.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_filetype_folder:before{content:"\f114"}.o_filetype_folder_open:before{content:"\f115"}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:"\f1c9"}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:"\f0f6"}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon_share_social:before{content:"\f14d"}.o_icon_apple:before{content:"\f179"}.o_icon_facebook:before{content:"\f082"}.o_icon_twitter:before{content:"\f081"}.o_icon_google:before{content:"\f0d4"}.o_icon_delicious:before{content:"\f1a5"}.o_icon_digg:before{content:"\f1a6"}.o_icon_mailto:before{content:"\f199"}.o_icon_link:before{content:"\f0c1"}.o_icon_yahoo:before{content:"\f19e"}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:12px}.o_small,.b_small,p.b_small,div.b_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:18px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_login .o_login_register:hover,.o_disabled:focus,.b_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.b_video{display:inline-block;max-width:100%;height:auto}.o_image,img,.b_image{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}h1{color:#337ab7}h2{color:#337ab7}h3{color:#337ab7}h4,.o_cal .fc-header-title h2{color:#337ab7}h5{color:#337ab7}h5{color:#337ab7}fieldset legend{color:#333}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:1px 5px;border:1px solid #777}table.b_grid th{background:#eee}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:1px 5px;border:1px solid #777}table.b_border th{background:#eee}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:1px 5px;border:0}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#337ab7}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f08e"}a.b_link_mailto{color:#337ab7}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f003"}a.b_link_forward{color:#337ab7}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f064"}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#337ab7}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}
 #o_back_wrapper,#o_preview_wrapper{margin-top:10px}#o_back_wrapper.o_toolbar .o_breadcrumb .breadcrumb,#o_preview_wrapper.o_toolbar .o_breadcrumb .breadcrumb{font-size:14px}#o_footer_wrapper{position:absolute;bottom:0;width:100%;height:70px;overflow:hidden;background-color:#f5f5f5;color:#999;line-height:16px;font-size:12px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_container{position:relative;padding-top:10px;min-height:70px;background:#f5f5f5;z-index:1}#o_footer_user{position:absolute;left:15px;top:10px;z-index:1}#o_footer_user #o_counter{white-space:nowrap}#o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_version{position:absolute;right:15px;top:10px;text-align:right;z-index:1}@media (max-width: 767px){#o_footer_version{padding-top:10px;text-align:left}}
 #o_footer_powered{position:absolute;top:30px;right:15px;z-index:1}#o_footer_powered img{opacity:0.6;filter:alpha(opacity=60)}#o_footer_powered img:hover{opacity:1;filter:alpha(opacity=100)}#o_footer_impressum{position:absolute;top:10px;width:100%;text-align:center;z-index:-1}#o_footer_impressum i{display:none}#o_footer_textline{position:absolute;top:30px;width:100%;text-align:center;z-index:-1}#o_share{margin-top:10px}#o_share a{opacity:0.6;filter:alpha(opacity=60)}#o_share a:hover{opacity:1;filter:alpha(opacity=100)}#o_share a,#o_share_social_container a{color:#999;margin:0 0.25em 0 0}#o_share a:hover,#o_share_social_container a:hover{color:#000}@media (max-width: 767px){#o_counter,#o_footer_version,#o_share{display:none}#o_footer_impressum{top:30px;text-align:left}#o_footer_textline{top:50px;text-align:left}#o_footer_powered{top:10px}#o_footer_powered a:after{content:"\221E";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px}#o_footer_powered img{display:none}}#o_navbar_wrapper{z-index:4;border-top:1px solid #e7e7e7;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}#o_navbar_wrapper #o_navbar_container{position:relative}a.o_disabled.navbar-text{margin:0}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid #e7e7e7;background-color:#f8f8f8}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar .o_navbar_tabs li{max-width:150px}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs li a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_navbar .o_navbar_tabs .o_icon-fw{position:absolute;top:15px;left:0.5em;padding-top:3px;width:1em;height:1em;display:none}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#d9534f}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#c9302c}.o_navbar .o_custom_navbar-brand{background-position:5px 0;background-repeat:no-repeat;height:50px;width:120px}.o_navbar #o_navbar_langchooser{color:#777;padding:7px 15px}.o_navbar #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools_permanent #o_navbar_print a,.o_navbar #o_navbar_tools_permanent #o_navbar_impress a,.o_navbar #o_navbar_tools_permanent #o_navbar_help a{color:#777;padding-right:0}.o_navbar #o_navbar_tools_permanent #o_navbar_login a{color:#f0ad4e}.o_navbar .o_navbar_tools>#o_navbar_tools_permanent>li>a>span{display:none}@media (min-width: 768px){.o_navbar .o_navbar_tools li.o_portrait>a>span{display:inline}}.o_navbar #o_navbar_tools_personal .o_navbar_tool a,.o_navbar #o_navbar_tools_permanent .o_navbar_tool a{padding-right:5px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu a{padding-left:45px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .dropdown-menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .dropdown-menu a{padding-left:15px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .o_portrait,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .o_portrait{position:absolute;left:7px;top:10px}.o_navbar #o_navbar_tools_personal .o_logout,.o_navbar #o_navbar_tools_permanent .o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px;right:10px}.o_navbar.o_navbar-offcanvas .o_navbar-right a{padding:3px 20px;color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-right a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:focus{color:#c9302c}.o_navbar.o_navbar-offcanvas .o_navbar-right a .o_icon-lg{font-size:1.0em;vertical-align:baseline}.o_navbar.o_navbar-offcanvas .o_navbar-right .divider{height:1px;margin:9px 0;overflow:hidden;background-color:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-header{padding-left:15px}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#9d9d9d;font-size:14px;border:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu .divider{background:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a{color:#9d9d9d;text-shadow:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav a:focus{background-color:transparent;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:focus{background-color:#090909;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link{color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}#o_navbar_impress a span,#o_navbar_search_opener a span{display:none}body.o_dmz #o_navbar_print a span,body.o_dmz #o_navbar_impress a span,body.o_dmz #o_navbar_help a span,body.o_dmz #o_navbar_search_opener a span{display:inline}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;font-size:18px;line-height:20px;height:50px;color:#777}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none;color:#5e5e5e;background-color:transparent}.o_navbar-toggle{position:relative;margin-right:15px;margin-left:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;border:1px solid #ddd;border-radius:4px;background-color:transparent;background-image:none}.o_navbar-toggle:hover,.o_navbar-toggle:focus{outline:none;background-color:#ddd}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;background-color:#888}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}#o_navbar_left-toggle{float:left}#o_navbar_right-toggle{float:right}.o_navbar-link{color:#777}.o_navbar-link:hover{color:#333}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;color:#777}.o_navbar-nav>li>a:hover,.o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-nav>.active>a,.o_navbar-nav>.active>a:hover,.o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-nav>.disabled>a,.o_navbar-nav>.disabled>a:hover,.o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-nav>.open>a,.o_navbar-nav>.open>a:hover,.o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}
 .o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px;color:#777}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_dropdown_tab{position:relative}.o_dropdown_tab>a:first-child{padding-right:30px}.o_dropdown_tab>a:first-child .o_icon-fw{display:none;position:absolute;top:0;left:10px;padding-top:3px;line-height:20px}.o_dropdown_tab>a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_dropdown_tab .o_navbar_tab_close{position:absolute;top:0px;right:10px;padding-left:0px;padding-right:0px;color:#d9534f;background-color:inherit}.o_dropdown_tab .o_navbar_tab_close:focus,.o_dropdown_tab .o_navbar_tab_close:hover{color:#c9302c;background-color:inherit}#o_navbar_more .dropdown-menu .divider:last-child{display:none}@media (min-width: 768px){#o_navbar_more .dropdown-menu{max-width:300px}}@media (max-width: 767px){#o_navbar_more>li{position:inherit}#o_navbar_more .dropdown-menu{left:0px;right:0px}#o_navbar_more .dropdown-menu a,#o_navbar_more .dropdown-menu i{line-height:30px}#o_navbar_more .dropdown-menu .o_navbar_tab_close{line-height:inherit}}.o_body_popup #o_topnav_printview{display:inline-block}.o_body_popup #o_topnav_close{float:right}.o_body_popup #o_topnav_close span{display:block}.o_body_popup #o_navbar_tools_permanent li>a{background-color:transparent}.o_toolbar{position:relative;margin-bottom:20px;margin-top:-10px;border:1px solid #e7e7e7}.o_toolbar:before,.o_toolbar:after{content:" ";display:table}.o_toolbar:after{clear:both}@media (min-width: 768px){.o_toolbar{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}}.o_toolbar .o_breadcrumb:before,.o_toolbar .o_breadcrumb:after{content:" ";display:table}.o_toolbar .o_breadcrumb:after{clear:both}.o_toolbar .o_breadcrumb .breadcrumb{margin-bottom:0;padding:5px 9px;font-size:11px;line-height:15px;border-radius:0;background:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a span{display:none}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close:before{content:none}.o_toolbar .o_tools_container{text-align:center;min-height:37px;position:realtive;background-color:#f8f8f8;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:1px solid #e7e7e7}.o_toolbar .o_tools_container:before,.o_toolbar .o_tools_container:after{content:" ";display:table}.o_toolbar .o_tools_container:after{clear:both}@media (max-width: 991px){.o_toolbar .o_tools_container{min-height:35px}}@media (max-width: 767px){.o_toolbar .o_tools_container{min-height:22px;text-align:left}}.o_toolbar .o_tools_container a{color:#777;display:inline-block}.o_toolbar .o_tools_container a:hover{color:#333}.o_toolbar .o_tools_container a.o_disabled{color:#aaa !important}.o_toolbar .o_tools_container a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tools_container a.active{color:#337ab7;background-color:transparent}.o_toolbar .o_tools_container .dropdown-menu a{display:block}.o_toolbar .o_tools_container .dropdown-menu a.active{color:#337ab7;background-color:transparent}.o_toolbar .o_tools{margin-top:8px;margin-bottom:5px}.o_toolbar .o_tool,.o_toolbar .o_text{position:relative;margin:0 10px}.o_toolbar .o_tool:first-child,.o_toolbar .o_text:first-child{margin-left:0}.o_toolbar .o_tool:last-child,.o_toolbar .o_text:last-child{margin-right:0}.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:18px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:block;font-size:12px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{position:absolute;right:50%;top:-18px;margin-right:-12px;font-size:13px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:16px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{font-size:11px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{top:-16.5px;margin-right:-11px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:20px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:none}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{display:block;position:relative;top:0;left:0;margin-right:0}}.o_toolbar .o_tool .o_chelp,.o_toolbar .o_text .o_chelp{position:relative;top:-1em;vertical-align:top}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{padding:0;margin-top:5px;border:1px solid #ccc;background-color:#eee}.o_toolbar .o_tool_next a,.o_toolbar .o_tool_previous a{color:#777}.o_toolbar .o_tool_next a:hover,.o_toolbar .o_tool_previous a:hover{color:#333}.o_toolbar .o_tool_next a.o_disabled,.o_toolbar .o_tool_previous a.o_disabled{color:#aaa !important}.o_toolbar .o_tool_next a.o_disabled:hover,.o_toolbar .o_tool_previous a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:21px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:4px}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:18px}}@media (max-width: 767px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:0}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:20px}}.o_toolbar .o_tool_previous{margin-left:10px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-right:0}.o_toolbar .o_tool_next{border-bottom-right-radius:4px;border-top-right-radius:4px}.o_toolbar .o_tool_dropdown{margin:0 10px}.o_toolbar .o_tool_dropdown:first-child{margin-left:0}.o_toolbar .o_tool_dropdown:last-child{margin-right:0}.o_toolbar .o_tool_dropdown a.dropdown-toggle{position:relative}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:18px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span{display:block;font-size:12px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{position:absolute;right:50%;top:4px;margin-right:-20px;font-size:14px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:16px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span,.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{font-size:11px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{top:4px;margin-right:-18px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown a.dropdown-toggle{padding:0 10px 0 5px}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:20px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span{display:none}}.o_toolbar .o_tool_dropdown .dropdown-menu{text-align:left}.o_toolbar .o_tools_left{float:left}.o_toolbar .o_tools_right{float:right}.o_toolbar .o_tools_right_edge{float:right}@media (max-width: 991px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tool span{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 5px}}@media (max-width: 767px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools .o_chelp{top:0;vertical-align:top}.o_toolbar .o_tools_center{float:left}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 0;position:static}.o_toolbar .o_tool_dropdown .dropdown-menu{left:0px;right:0px}.o_toolbar .o_tool_dropdown .dropdown-menu a,.o_toolbar .o_tool_dropdown .dropdown-menu i{line-height:30px}.o_toolbar .o_tool_dropdown .dropdown-menu .o_navbar_tab_close{line-height:inherit}}
-body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-m-transition:all .25s ease-in-out;transition:all .25s ease-in-out}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5{color:#777}.o_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5{color:#31708f}.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#f4d000}.o_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5{color:#3c763d}.o_warning,.o_form .o_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.o_form .o_warning h2,.o_form .o_warning h3,.o_form .o_warning h4,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,.o_form .o_warning h5{color:#8a6d3b}.o_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
+body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-m-transition:all .25s ease-in-out;transition:all .25s ease-in-out}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.b_info,p.b_info,div.b_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.b_info h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.b_info h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.b_info h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.b_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_info h2,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.b_info h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5{color:#777}.o_note,.b_note,p.b_note,div.b_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.b_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.b_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.b_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.b_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.b_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.b_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.b_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.b_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.b_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.b_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#f4d000}.o_success,.b_success,p.b_success,div.b_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5,.b_success h2,.b_success h3,.b_success h4,.b_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_success h2,.b_success h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning,.o_form .o_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.b_warning h2,.o_form .o_warning h2,.b_warning h3,.o_form .o_warning h3,.b_warning h4,.o_form .o_warning h4,.b_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_warning h2,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,.b_warning h5,.o_form .o_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5,.b_error h2,.b_error h3,.b_error h4,.b_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_error h2,.b_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
 #o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4,.modal .modal-header .o_cal .fc-header-title h2,.o_cal .fc-header-title .modal .modal-header h2{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.o_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_tree a{color:#777;background-color:none}.o_tree a:hover,.o_tree a:focus{color:#333}.o_tree .o_tree_link{background-color:none}.o_tree .o_tree_link:hover,.o_tree .o_tree_link:focus{background-color:#f8f8f8}.o_tree .o_tree_link:first-child{background-color:transparent}.o_tree .o_tree_link:last-child:hover,.o_tree .o_tree_link:last-child:focus{background-color:#f8f8f8}.o_tree .o_insertion_point>a>span{padding:5px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_insertion_source>a>span.o_tree_item,.o_tree .o_insertion_source>a>span.o_dnd_item{border-bottom:solid #f90 4px;background-color:#fefbf6}.o_tree ul{margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0;white-space:nowrap}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div.popover{position:absolute;left:auto;right:0}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:10px;left:-4px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:10px;left:11px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:10px;left:26px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:10px;left:41px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:10px;left:56px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:10px;left:71px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:10px;left:86px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:10px;left:101px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:10px;left:116px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:10px;left:131px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:10px;left:146px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:10px;left:161px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div span.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_tree ul li div span.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_tree ul li div span.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_tree ul li div span.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_tree ul li div span.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_tree ul li div span.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_tree ul li div span.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_tree ul li div span.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_tree ul li div span.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_tree ul li div span.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_tree ul li div span.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_tree ul li div span.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul span.o_tree_link>input[type=checkbox]{margin-right:5px}.o_tree ul li .badge{position:absolute;font-size:70%}.o_tree ul li .badge:before{content:none}.o_tree ul li .badge.o_badge_1{top:3px;right:1px}.o_tree ul li .badge.o_badge_2{bottom:3px;right:1px}.o_tree ul li .badge.o_badge_3{top:3px;right:25px}.o_tree ul li .badge.o_badge_4{bottom:3px;right:25px}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li .active.o_tree_link{background-color:none;font-weight:bold}.o_tree ul li .active.o_tree_link a{color:#337ab7}.o_tree ul li .active.o_tree_link:hover,.o_tree ul li .active.o_tree_link:focus{background-color:#eee}.o_tree ul li .active.o_tree_link:hover a,.o_tree ul li .active.o_tree_link:focus a{color:#23527c}.o_tree ul li .active_parent.o_tree_link{font-weight:bold}.o_tree ul li .active_parent.o_tree_link a{color:#777}.o_tree ul li .active_parent.o_tree_link a:hover,.o_tree ul li .active_parent.o_tree_link a:focus{color:#333}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l0{left:6px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l1{left:21px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l2{left:36px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l3{left:51px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l4{left:66px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l5{left:81px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l6{left:96px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l7{left:111px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l8{left:126px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l9{left:141px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l10{left:156px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l11{left:171px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l0{padding:10px 2px 10px 20px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l1{padding:10px 2px 10px 35px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l2{padding:10px 2px 10px 50px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l3{padding:10px 2px 10px 65px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l4{padding:10px 2px 10px 80px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l5{padding:10px 2px 10px 95px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l6{padding:10px 2px 10px 110px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l7{padding:10px 2px 10px 125px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l8{padding:10px 2px 10px 140px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l9{padding:10px 2px 10px 155px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l10{padding:10px 2px 10px 170px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l11{padding:10px 2px 10px 185px}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{opacity:0.4;filter:alpha(opacity=40);background-color:yellow}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:3px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../light/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_offcanvas .o_tree{border:0}.o_selection_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_selection_tree ul{margin:0;padding:0;list-style-type:none}.o_selection_tree li{margin:0;padding:0;white-space:nowrap}.o_selection_tree li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_selection_tree li>div>span.o_tree_l0,.o_selection_tree li>div>div.checkbox.o_tree_l0,.o_selection_tree li>div>div.radio.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_selection_tree li>div>span.o_tree_l1,.o_selection_tree li>div>div.checkbox.o_tree_l1,.o_selection_tree li>div>div.radio.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_selection_tree li>div>span.o_tree_l2,.o_selection_tree li>div>div.checkbox.o_tree_l2,.o_selection_tree li>div>div.radio.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_selection_tree li>div>span.o_tree_l3,.o_selection_tree li>div>div.checkbox.o_tree_l3,.o_selection_tree li>div>div.radio.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_selection_tree li>div>span.o_tree_l4,.o_selection_tree li>div>div.checkbox.o_tree_l4,.o_selection_tree li>div>div.radio.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_selection_tree li>div>span.o_tree_l5,.o_selection_tree li>div>div.checkbox.o_tree_l5,.o_selection_tree li>div>div.radio.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_selection_tree li>div>span.o_tree_l6,.o_selection_tree li>div>div.checkbox.o_tree_l6,.o_selection_tree li>div>div.radio.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_selection_tree li>div>span.o_tree_l7,.o_selection_tree li>div>div.checkbox.o_tree_l7,.o_selection_tree li>div>div.radio.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_selection_tree li>div>span.o_tree_l8,.o_selection_tree li>div>div.checkbox.o_tree_l8,.o_selection_tree li>div>div.radio.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_selection_tree li>div>span.o_tree_l9,.o_selection_tree li>div>div.checkbox.o_tree_l9,.o_selection_tree li>div>div.radio.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_selection_tree li>div>span.o_tree_l10,.o_selection_tree li>div>div.checkbox.o_tree_l10,.o_selection_tree li>div>div.radio.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_selection_tree li>div>span.o_tree_l11,.o_selection_tree li>div>div.checkbox.o_tree_l11,.o_selection_tree li>div>div.radio.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_breadcrumb .o_breadcrumb_close a span{display:none}.o_breadcrumb .o_breadcrumb_close:before{content:none}.o_form .o_icon_mandatory{position:relative;right:0;line-height:inherit;margin-left:0.25em}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form hr.o_spacer_noline{border-top:1px solid transparent}.o_form .form-group.o_omit_margin{margin-bottom:0}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_date.form-inline .form-group,.o_form .o_date.o_navbar-form .form-group{margin-left:0}.o_form input.o_date_ms{width:3em}.o_form .o_date.form-inline .o_date_ms.form-group,.o_form .o_date.o_navbar-form .o_date_ms.form-group{margin-left:25px}.o_form .has-feedback .o_date.form-inline .form-control.o_date_ms,.o_form .has-feedback .o_date.o_navbar-form .form-control.o_date_ms{padding-right:0}.o_form .o_form_element.form-inline .o_form_element.form-group,.o_form .o_form_element.o_navbar-form .o_form_element.form-group{margin-left:25px}.o_form .input-group.o_date_picker{width:16em}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;left:0;z-index:2;opacity:0;filter:alpha(opacity=0)}.o_choice_checkrow,.o_choice_textrow{vertical-align:text-top;padding-bottom:2px}.o_choice_textrow{padding-left:1em}.o_togglecheck a{white-space:nowrap}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_dirty{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_button_dirty:hover,.o_button_dirty:focus,.o_button_dirty.focus,.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{background-image:none}.o_button_dirty.disabled,.o_button_dirty.disabled:hover,.o_button_dirty.disabled:focus,.o_button_dirty.disabled.focus,.o_button_dirty.disabled:active,.o_button_dirty.disabled.active,.o_button_dirty[disabled],.o_button_dirty[disabled]:hover,.o_button_dirty[disabled]:focus,.o_button_dirty[disabled].focus,.o_button_dirty[disabled]:active,.o_button_dirty[disabled].active,fieldset[disabled] .o_button_dirty,fieldset[disabled] .o_button_dirty:hover,fieldset[disabled] .o_button_dirty:focus,fieldset[disabled] .o_button_dirty.focus,fieldset[disabled] .o_button_dirty:active,fieldset[disabled] .o_button_dirty.active{background-color:#f0ad4e;border-color:#eea236}.o_button_dirty .badge{color:#f0ad4e;background-color:#fff}.o_button_toggle{border:1px solid #777;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 0;margin:0}.o_button_toggle i{color:#777;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;color:#777;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 0 0 0.5em}.o_button_toggle.o_on i{color:#337ab7;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper.o_table_flexi .table td ul{margin:0}.o_table_wrapper.o_table_edit table tbody{border-top:solid #f90 4px;background-color:#fefbf6}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper .o_table_rows_infos{float:left;padding-left:0;padding-right:20px;margin:20px 0}.o_table_wrapper .o_row_selected td{background-color:#dff0d8 !important}.o_table_wrapper .o_table{margin-bottom:0}.o_table_wrapper .o_marked{font-weight:bold}.o_table_wrapper .table{margin-bottom:0}.o_table_wrapper th{color:#333}@media (max-width: 767px){.o_table_wrapper .o_table_rows_infos{clear:both}}a.o_orderby,a.o_orderby:hover{color:#333;text-decoration:none}a.o_orderby.o_orderby_asc,a.o_orderby.o_orderby_desc,a.o_orderby:hover.o_orderby_asc,a.o_orderby:hover.o_orderby_desc{border-bottom:1px solid #ddd}.o_table_row_count{padding-top:6px;padding-bottom:6px;vertical-align:middle}.o_table_row_details td{background-color:white !important}.o_table_config{font-size:12px}.o_table_buttons{text-align:center}.o_table_buttons input{margin-right:1em}.o_table_buttons input:last-child{margin-right:0}.o_table_tools{margin-left:6px}.o_table_tools_indications{margin-left:10px;padding-top:3px;font-size:66%}.o_table_count{max-width:20em;float:left;padding:0 15px}.o_info .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient .o_im_messages{float:left}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{float:left;position:relative;padding:15px 3px}#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_message{padding-left:15px}#o_navbar_imclient #o_im_summary .badge{color:#fff;background-color:#777}#o_navbar_imclient #o_im_status li>a>span{display:inline}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}#o_navbar_imclient #o_im_message a:hover,#o_navbar_imclient #o_im_message a:focus{text-decoration:none}#o_navbar_imclient #o_im_message .o_icon_message{color:#d9534f}#o_navbar_imclient #o_im_message .o_icon_message:hover{color:#f4c37d}.o_im_load_history{margin-bottom:6px}.o_im_load_history .o_label{font-size:12px;padding-right:0.5em;line-height:1.5em;color:#777}.o_im_chat_history{height:170px;font-size:90%;border:1px solid #eee;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_im_message_group{padding:3px 3px 3px 40px;min-height:40px;position:relative;border-top:1px solid #eee;background:#fff}.o_im_message_group.o_odd{background:#f4f4f4}.o_im_message_group .o_portrait{position:absolute;top:3px;left:3px}.o_im_message_group .o_im_from{color:#777;font-size:12px;font-weight:bold}.o_im_message_group .o_im_from:hover{color:#5e5e5e}.o_im_message_group div.o_im_body{padding:3px 0 3px 0;font-size:12px}.o_im_message_group div.o_im_body .o_date{float:right;color:#777;font-size:9px}.o_groupchat_roster{font-size:12px}.o_groupchat_roster li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.o_groupchat_roster li.o_vip{color:#3c763d}.o_groupchat_roster li.o_anonymous{color:#31708f}.o_im_buddieslist .o_im_buddieslist_toggler .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_im_buddieslist ul{font-size:12px}.o_im_buddieslist ul ul{padding-left:1em}.o_im_buddieslist ul a{color:#337ab7}.o_im_buddieslist ul a:hover{color:#23527c}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}option.o_with_flag{padding-left:23px;min-height:16px;background-repeat:no-repeat;background-position:2px 50%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_flag_sk{background-image:url("../light/images/flags/sk.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_icon:hover{color:#337ab7}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:1em}.o_rating .o_rating_explanation{font-size:12px;color:#777}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}}
-.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#64a0d3}.d3chart .bar_default{fill:#337ab7}.d3chart .bar_default_dark{fill:#23527c}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#5cb85c;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}
+.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_comments .o_comment_wrapper .o_comment_wrapper{margin-left:16px}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#64a0d3}.d3chart .bar_default{fill:#337ab7}.d3chart .bar_default_dark{fill:#23527c}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#5cb85c;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}
 .o_quote_wrapper,.b_quote_wrapper{position:relative;margin:10px 0}.o_quote_author,.b_quote_author{color:#777;font-size:12px}.o_quote_author:before,.b_quote_author:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f10e";font-size:21px;padding-right:0.5em}blockquote.o_quote,blockquote.b_quote{color:#555;font-size:12px;margin-top:6px;padding:0 12px}a.o_chelp{display:inline-block;padding:1px 3px;text-align:center;vertical-align:middle;white-space:nowrap;font-size:10px;font-weight:normal;line-height:15px;color:#fff;background-color:#337ab7;border:1px solid #2e6da4;border-radius:2px;cursor:help;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.o_chelp:active,a.o_chelp:hover,a.o_chelp:focus{text-decoration:none;color:#fff;background-color:#2a6598;border-color:#204d74}a.o_chelp i{font-size:10px !important}.o_chelp_wrapper{position:relative;float:right;display:inline-block;line-height:1em}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:10px;right:37px}.o_content_popup{position:absolute;top:10px;right:12px}.o_module_cp_wrapper .o_tools{position:absolute;top:10px;right:12px;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}ul.o_dropdown{margin:-5px -14px}ul.o_dropdown .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}ul.o_dropdown>li>a{display:block;padding:5px 14px;clear:both;font-weight:normal;line-height:1.42857;color:#333;background:#fff;white-space:nowrap}ul.o_dropdown>li>a:hover,ul.o_dropdown>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.badge.o_scorm_completed{background-color:#3c763d}.badge.o_scorm_failed{background-color:#a94442}.badge.o_scorm_incomplete{background-color:#8a6d3b}.badge.o_scorm_not_attempted{background:none}.o_bc_meta h5,.o_bc_meta .o_author,.o_bc_meta .o_comment,.tooltip h5,.tooltip .o_author,.tooltip .o_comment{color:#fff;margin:5px 0}.o_bc_meta .o_thumbnail,.tooltip .o_thumbnail{width:200px;height:200px;background-color:#fff;margin:0 -5px}.o_htmleditor .o_metadata{border:1px solid #999;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom:0;background:#eee;position:relative;top:1px;padding:5px}.o_htmleditor .o_metadata #o_filename{float:left}.o_htmleditor .o_metadata .o_lastmodified{float:right;color:#777;line-height:1.42857}.o_htmleditor #o_save{margin-top:10px;text-align:center}.o_htmleditor #o_save input{margin-right:1em}.o_htmleditor #o_save input:last-child{margin-right:0}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_context{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_date{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px;float:right;color:#777}.o_noti .o_label{color:#777;cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}}
-.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#337ab7;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#333}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription form{margin-top:6px}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_segments_content{margin-top:20px}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}.tt-input{width:400px}.tt-dropdown-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fff;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.42857}.tt-suggestion.tt-cursor{color:#fff;background-color:#337ab7}.tt-suggestion p{margin:0}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_highlight{font-weight:bold}.o_search_result_context{color:#3c763d}.o_search_result_excerpt{color:#555}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}@media (max-width: 767px){.o_search_result_details{display:none}}
+.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#337ab7;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#333}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription form{margin-top:6px}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_feed .o_content:before,.o_feed .o_content:after{content:" ";display:table}.o_feed .o_content:after{clear:both}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_segments_content{margin-top:20px}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}.tt-input{width:400px}.tt-dropdown-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fff;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.42857}.tt-suggestion.tt-cursor{color:#fff;background-color:#337ab7}.tt-suggestion p{margin:0}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_highlight{font-weight:bold}.o_search_result_context{color:#3c763d}.o_search_result_excerpt{color:#555}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}@media (max-width: 767px){.o_search_result_details{display:none}}
 .wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#333;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#333}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#fff !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#fff !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#fff !important}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#fff !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#fff !important}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_colorchooser_selected:before{content:"\f00c"}#o_cal_colorchooser div{border:1px solid #337ab7;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.fc-button{color:#333;background-color:#fff;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fff;border-color:#ccc}.fc-button .badge{color:#fff;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active .badge{color:#337ab7;background-color:#fff}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #337ab7;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #337ab7;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#286090}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#337ab7}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #337ab7;border-bottom:1px solid #337ab7}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#337ab7}.o_catalog .o_level .o_meta .o_title a:hover{color:#286090}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #337ab7;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #337ab7;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #337ab7;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #337ab7;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#286090}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}
 .o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start,.o_repo_details .o_book{margin:2em 0}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}
-.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#337ab7}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("../light/images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("../light/images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#337ab7}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#337ab7}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #337ab7 !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #2e6da4;background:#337ab7;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}
+.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#337ab7}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#286090;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#337ab7}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("../light/images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("../light/images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#337ab7}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#337ab7}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #337ab7 !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #2e6da4;background:#337ab7;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}
diff --git a/src/main/webapp/static/themes/light/theme.css.map b/src/main/webapp/static/themes/light/theme.css.map
index 18079a3552430372f79d718dd92ed7bb99cc7bab..4002f1f3d8e16a0312094a2b3e09b58dedc0f378 100644
--- a/src/main/webapp/static/themes/light/theme.css.map
+++ b/src/main/webapp/static/themes/light/theme.css.map
@@ -1,7 +1,7 @@
 {
 "version": 3,
-"mappings": "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",
-"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../bootstrap/stylesheets/bootstrap/_code.scss","../../bootstrap/stylesheets/bootstrap/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss","../../bootstrap/stylesheets/bootstrap/_tables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_table-row.scss","../../bootstrap/stylesheets/bootstrap/_forms.scss","../../bootstrap/stylesheets/bootstrap/mixins/_forms.scss","../../bootstrap/stylesheets/bootstrap/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../../bootstrap/stylesheets/bootstrap/_component-animations.scss","../../bootstrap/stylesheets/bootstrap/_dropdowns.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss","../../bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss","../../bootstrap/stylesheets/bootstrap/_button-groups.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../bootstrap/stylesheets/bootstrap/_input-groups.scss","../../bootstrap/stylesheets/bootstrap/_navs.scss","../../bootstrap/stylesheets/bootstrap/_navbar.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../bootstrap/stylesheets/bootstrap/_breadcrumbs.scss","../../bootstrap/stylesheets/bootstrap/_pagination.scss","../../bootstrap/stylesheets/bootstrap/mixins/_pagination.scss","../../bootstrap/stylesheets/bootstrap/_pager.scss","../../bootstrap/stylesheets/bootstrap/_labels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_labels.scss","../../bootstrap/stylesheets/bootstrap/_badges.scss","../../bootstrap/stylesheets/bootstrap/_jumbotron.scss","../../bootstrap/stylesheets/bootstrap/_thumbnails.scss","../../bootstrap/stylesheets/bootstrap/_alerts.scss","../../bootstrap/stylesheets/bootstrap/mixins/_alerts.scss","../../bootstrap/stylesheets/bootstrap/_progress-bars.scss","../../bootstrap/stylesheets/bootstrap/mixins/_gradients.scss","../../bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss","../../bootstrap/stylesheets/bootstrap/_media.scss","../../bootstrap/stylesheets/bootstrap/_list-group.scss","../../bootstrap/stylesheets/bootstrap/mixins/_list-group.scss","../../bootstrap/stylesheets/bootstrap/_panels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_panels.scss","../../bootstrap/stylesheets/bootstrap/_responsive-embed.scss","../../bootstrap/stylesheets/bootstrap/_wells.scss","../../bootstrap/stylesheets/bootstrap/_close.scss","../../bootstrap/stylesheets/bootstrap/_modals.scss","../../bootstrap/stylesheets/bootstrap/_tooltip.scss","../../bootstrap/stylesheets/bootstrap/_popovers.scss","../../bootstrap/stylesheets/bootstrap/_utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_center-block.scss","../../bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss","../../bootstrap/stylesheets/bootstrap/_responsive-utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss","modules/_bootstrap.scss","modules/_fonts.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../../font-awesome/scss/_larger.scss","../../font-awesome/scss/_fixed-width.scss","../../font-awesome/scss/_list.scss","../../font-awesome/scss/_variables.scss","../../font-awesome/scss/_bordered-pulled.scss","../../font-awesome/scss/_spinning.scss","../../font-awesome/scss/_rotated-flipped.scss","../../font-awesome/scss/_mixins.scss","../../font-awesome/scss/_stacked.scss","modules/_icons.scss","modules/_emoticons.scss","modules/_helpers.scss","modules/_type.scss","modules/_layout.scss","modules/_main.scss","modules/_footer.scss","modules/_navbar.scss","modules/_toolbar.scss","modules/_offcanvas.scss","modules/_dialog.scss","modules/_mixins.scss","modules/_tree.scss","modules/_breadcrumb.scss","modules/_form.scss","modules/_table.scss","modules/_im.scss","modules/_flags.scss","modules/_rating_and_comments.scss","modules/_chart.scss","modules/_forum.scss","modules/_various_modules.scss","modules/_autocomplete.scss","modules/_search.scss","modules/_wizard.scss","modules/_cal.scss","modules/_coursesite.scss","modules/_repository.scss","modules/_course.scss","modules/_qti.scss","modules/_devel.scss","modules/_wiki.scss","modules/_portfolio.scss","modules/_portfoliomaps/_epmst_default.scss","modules/_portfoliomaps/_mixins.scss","modules/_portfoliomaps/_epmst_comic.scss","modules/_portfoliomaps/_epmst_leather.scss","modules/_portfoliomaps/_epmst_green.scss","modules/_portfoliomaps/_epmst_green2.scss","modules/_portfoliomaps/_epmst_green3.scss","modules/_portfoliomaps/_epmst_green4.scss","modules/_portfoliomaps/_epmst_red.scss","modules/_portfoliomaps/_epmst_red2.scss","modules/_portfoliomaps/_epmst_red3.scss","modules/_portfoliomaps/_epmst_red4.scss","modules/_portfoliomaps/_epmst_blue.scss","modules/_portfoliomaps/_epmst_blue2.scss","modules/_portfoliomaps/_epmst_blue3.scss","modules/_portfoliomaps/_epmst_blue4.scss","modules/_admin.scss","modules/_dmz.scss","modules/_portal.scss","modules/_library.scss","modules/_translationtool.scss","modules/_user.scss","modules/_members.scss","modules/_thirdparty.scss","modules/_print.scss","_patches.scss"],
+"mappings": "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",
+"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../bootstrap/stylesheets/bootstrap/_code.scss","../../bootstrap/stylesheets/bootstrap/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss","../../bootstrap/stylesheets/bootstrap/_tables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_table-row.scss","../../bootstrap/stylesheets/bootstrap/_forms.scss","../../bootstrap/stylesheets/bootstrap/mixins/_forms.scss","../../bootstrap/stylesheets/bootstrap/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../../bootstrap/stylesheets/bootstrap/_component-animations.scss","../../bootstrap/stylesheets/bootstrap/_dropdowns.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss","../../bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss","../../bootstrap/stylesheets/bootstrap/_button-groups.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../bootstrap/stylesheets/bootstrap/_input-groups.scss","../../bootstrap/stylesheets/bootstrap/_navs.scss","../../bootstrap/stylesheets/bootstrap/_navbar.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../bootstrap/stylesheets/bootstrap/_breadcrumbs.scss","../../bootstrap/stylesheets/bootstrap/_pagination.scss","../../bootstrap/stylesheets/bootstrap/mixins/_pagination.scss","../../bootstrap/stylesheets/bootstrap/_pager.scss","../../bootstrap/stylesheets/bootstrap/_labels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_labels.scss","../../bootstrap/stylesheets/bootstrap/_badges.scss","../../bootstrap/stylesheets/bootstrap/_jumbotron.scss","../../bootstrap/stylesheets/bootstrap/_thumbnails.scss","../../bootstrap/stylesheets/bootstrap/_alerts.scss","../../bootstrap/stylesheets/bootstrap/mixins/_alerts.scss","../../bootstrap/stylesheets/bootstrap/_progress-bars.scss","../../bootstrap/stylesheets/bootstrap/mixins/_gradients.scss","../../bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss","../../bootstrap/stylesheets/bootstrap/_media.scss","../../bootstrap/stylesheets/bootstrap/_list-group.scss","../../bootstrap/stylesheets/bootstrap/mixins/_list-group.scss","../../bootstrap/stylesheets/bootstrap/_panels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_panels.scss","../../bootstrap/stylesheets/bootstrap/_responsive-embed.scss","../../bootstrap/stylesheets/bootstrap/_wells.scss","../../bootstrap/stylesheets/bootstrap/_close.scss","../../bootstrap/stylesheets/bootstrap/_modals.scss","../../bootstrap/stylesheets/bootstrap/_tooltip.scss","../../bootstrap/stylesheets/bootstrap/_popovers.scss","../../bootstrap/stylesheets/bootstrap/_utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_center-block.scss","../../bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss","../../bootstrap/stylesheets/bootstrap/_responsive-utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss","modules/_bootstrap.scss","modules/_fonts.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../../font-awesome/scss/_larger.scss","../../font-awesome/scss/_fixed-width.scss","../../font-awesome/scss/_list.scss","../../font-awesome/scss/_variables.scss","../../font-awesome/scss/_bordered-pulled.scss","../../font-awesome/scss/_spinning.scss","../../font-awesome/scss/_rotated-flipped.scss","../../font-awesome/scss/_mixins.scss","../../font-awesome/scss/_stacked.scss","modules/_icons.scss","modules/_emoticons.scss","modules/_helpers.scss","modules/_type.scss","modules/_content_embedded.scss","modules/_mixins.scss","modules/_layout.scss","modules/_main.scss","modules/_footer.scss","modules/_navbar.scss","modules/_toolbar.scss","modules/_offcanvas.scss","modules/_dialog.scss","modules/_tree.scss","modules/_breadcrumb.scss","modules/_form.scss","modules/_table.scss","modules/_im.scss","modules/_flags.scss","modules/_rating_and_comments.scss","modules/_chart.scss","modules/_forum.scss","modules/_various_modules.scss","modules/_autocomplete.scss","modules/_search.scss","modules/_wizard.scss","modules/_cal.scss","modules/_coursesite.scss","modules/_repository.scss","modules/_course.scss","modules/_qti.scss","modules/_devel.scss","modules/_wiki.scss","modules/_portfolio.scss","modules/_portfoliomaps/_epmst_default.scss","modules/_portfoliomaps/_mixins.scss","modules/_portfoliomaps/_epmst_comic.scss","modules/_portfoliomaps/_epmst_leather.scss","modules/_portfoliomaps/_epmst_green.scss","modules/_portfoliomaps/_epmst_green2.scss","modules/_portfoliomaps/_epmst_green3.scss","modules/_portfoliomaps/_epmst_green4.scss","modules/_portfoliomaps/_epmst_red.scss","modules/_portfoliomaps/_epmst_red2.scss","modules/_portfoliomaps/_epmst_red3.scss","modules/_portfoliomaps/_epmst_red4.scss","modules/_portfoliomaps/_epmst_blue.scss","modules/_portfoliomaps/_epmst_blue2.scss","modules/_portfoliomaps/_epmst_blue3.scss","modules/_portfoliomaps/_epmst_blue4.scss","modules/_admin.scss","modules/_dmz.scss","modules/_portal.scss","modules/_library.scss","modules/_translationtool.scss","modules/_user.scss","modules/_members.scss","modules/_thirdparty.scss","modules/_print.scss","_patches.scss"],
 "names": [],
 "file": "theme.css"
 }
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/light/theme_ie_completions.css b/src/main/webapp/static/themes/light/theme_ie_completions.css
index 3a8764a57b40ae34f7a47ee3862b07d4c86eca30..ba1b653bc6481be27d14c02d4507868ca4c7e5e7 100644
--- a/src/main/webapp/static/themes/light/theme_ie_completions.css
+++ b/src/main/webapp/static/themes/light/theme_ie_completions.css
@@ -1,3 +1,4 @@
-.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active .badge{color:#337ab7;background-color:#fff}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #337ab7;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #337ab7;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#286090}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#337ab7}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #337ab7;border-bottom:1px solid #337ab7}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#337ab7}.o_catalog .o_level .o_meta .o_title a:hover{color:#286090}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #337ab7;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #337ab7;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #337ab7;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #337ab7;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#286090}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}
+.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_segments_content{margin-top:20px}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}.tt-input{width:400px}.tt-dropdown-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fff;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.42857}.tt-suggestion.tt-cursor{color:#fff;background-color:#337ab7}.tt-suggestion p{margin:0}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_highlight{font-weight:bold}.o_search_result_context{color:#3c763d}.o_search_result_excerpt{color:#555}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}@media (max-width: 767px){.o_search_result_details{display:none}}
+.wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#333;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#333}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#fff !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#fff !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#fff !important}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#fff !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#fff !important}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_colorchooser_selected:before{content:"\f00c"}#o_cal_colorchooser div{border:1px solid #337ab7;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.fc-button{color:#333;background-color:#fff;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fff;border-color:#ccc}.fc-button .badge{color:#fff;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#337ab7;border-color:#2e6da4}.fc-button.fc-state-active .badge{color:#337ab7;background-color:#fff}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #337ab7;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #337ab7;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#337ab7;border-color:#2e6da4}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#337ab7;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#337ab7}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#286090}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#337ab7}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #337ab7;border-bottom:1px solid #337ab7}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#337ab7}.o_catalog .o_level .o_meta .o_title a:hover{color:#286090}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #337ab7;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #337ab7;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #337ab7;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #337ab7;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#337ab7;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#286090}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}
 .o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start,.o_repo_details .o_book{margin:2em 0}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}
-.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#337ab7}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("../light/images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("../light/images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#337ab7}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#337ab7}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #337ab7 !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #2e6da4;background:#337ab7;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}
\ No newline at end of file
+.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#337ab7}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#286090;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#337ab7}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("../light/images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("../light/images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#337ab7}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#337ab7}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #337ab7 !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#337ab7;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #2e6da4;background:#337ab7;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/openolat/content.css b/src/main/webapp/static/themes/openolat/content.css
index 640686a8aebbdc44eb8eed11fb0a49fbb0fa768d..34a50a2fc65748cd7fffd4792c1c061d9ba662ca 100644
--- a/src/main/webapp/static/themes/openolat/content.css
+++ b/src/main/webapp/static/themes/openolat/content.css
@@ -24,5 +24,5 @@
  * ========================================================
 **//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#3b678a;text-decoration:none}a:hover,a:focus{color:#243f54;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}
 small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#3b678a}a.text-primary:hover{color:#2c4c66}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#3b678a}a.bg-primary:hover{background-color:#2c4c66}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}
-abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_block_bottom,.o_block,.o_button_group,.o_header_with_buttons{margin-bottom:1em}.o_block_top,.o_block,.o_button_group{margin-top:1em}.o_block_large_bottom,.o_block_large{margin-bottom:2em}.o_block_large_top,.o_block_large{margin-top:2em}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:12px}.o_small,.b_small,p.b_small,div.b_small{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:18px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,.o_disabled:focus,.b_disabled:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video{display:inline-block;max-width:100%;height:auto}.o_image,img{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_info,.b_info,p.b_info,div.b_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info h5,.b_info h2,.b_info h3,.b_info h4,.b_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note h5,.b_note h2,.b_note h3,.b_note h4,.b_note h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important h5,.b_important h2,.b_important h3,.b_important h4,.b_important h5{color:#f4d000}.o_success,.b_success,p.b_success,div.b_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success h5,.b_success h2,.b_success h3,.b_success h4,.b_success h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning h5,.b_warning h2,.b_warning h3,.b_warning h4,.b_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error h5,.b_error h2,.b_error h3,.b_error h4,.b_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
-#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}a{color:#3b678a;text-decoration:none}a:hover,a:focus{color:#243f54;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}h1{color:#3b678a}h2{color:#3b678a}h3{color:#3b678a}h4{color:#3b678a}h5{color:#3b678a}h5{color:#3b678a}hr{border-top:1px solid #eee}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:1px 5px;border:1px solid #777}table.b_grid th{background:#eee}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:1px 5px;border:1px solid #777}table.b_border th{background:#eee}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:1px 5px;border:0}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#3b678a}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f08e"}a.b_link_mailto{color:#3b678a}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f003"}a.b_link_forward{color:#3b678a}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f064"}img.b_float_left{clear:both;float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{clear:both;float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}
+abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_block_bottom,.o_block,.o_button_group,.o_header_with_buttons{margin-bottom:1em}.o_block_top,.o_block,.o_button_group{margin-top:1em}.o_block_large_bottom,.o_block_large{margin-bottom:2em}.o_block_large_top,.o_block_large{margin-top:2em}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:12px}.o_small,.b_small,p.b_small,div.b_small{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:18px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,.o_disabled:focus,.b_disabled:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.b_video{display:inline-block;max-width:100%;height:auto}.o_image,img,.b_image{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.o_info,.b_info,p.b_info,div.b_info{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info h5,.b_info h2,.b_info h3,.b_info h4,.b_info h5{color:#777}.o_note,.b_note,p.b_note,div.b_note{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note h5,.b_note h2,.b_note h3,.b_note h4,.b_note h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important h5,.b_important h2,.b_important h3,.b_important h4,.b_important h5{color:#f4d000}.o_success,.b_success,p.b_success,div.b_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success h5,.b_success h2,.b_success h3,.b_success h4,.b_success h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning h5,.b_warning h2,.b_warning h3,.b_warning h4,.b_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error h5,.b_error h2,.b_error h3,.b_error h4,.b_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
+#o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857;color:#333;background-color:#fff}a{color:#3b678a;text-decoration:none}a:hover,a:focus{color:#243f54;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}h1{color:#3b678a}h2{color:#3b678a}h3{color:#3b678a}h4{color:#3b678a}h5{color:#3b678a}h5{color:#3b678a}hr{border-top:1px solid #eee}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:1px 5px;border:1px solid #777}table.b_grid th{background:#eee}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:1px 5px;border:1px solid #777}table.b_border th{background:#eee}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:1px 5px;border:0}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#3b678a}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f08e"}a.b_link_mailto{color:#3b678a}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f003"}a.b_link_forward{color:#3b678a}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f064"}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}
diff --git a/src/main/webapp/static/themes/openolat/content.css.map b/src/main/webapp/static/themes/openolat/content.css.map
index a3c5edc4ca4b854b12b6723c698c942028bf0cf9..dda3aaa63f5ca4e04f33180f0a926b3be18a2ea4 100644
--- a/src/main/webapp/static/themes/openolat/content.css.map
+++ b/src/main/webapp/static/themes/openolat/content.css.map
@@ -1,7 +1,7 @@
 {
 "version": 3,
-"mappings": "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",
-"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../light/_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../light/modules/_helpers.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../light/modules/_dialog.scss","../light/modules/_mixins.scss","../light/modules/_emoticons.scss","../light/modules/_content.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../font-awesome/scss/_variables.scss","../light/modules/_print.scss"],
+"mappings": "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",
+"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../light/_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../light/modules/_helpers.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../light/modules/_dialog.scss","../light/modules/_mixins.scss","../light/modules/_emoticons.scss","../light/modules/_content.scss","../light/modules/_content_embedded.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../font-awesome/scss/_variables.scss","../light/modules/_print.scss"],
 "names": [],
 "file": "content.css"
 }
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/openolat/theme.css b/src/main/webapp/static/themes/openolat/theme.css
index f037ef3abf0e1e38b4de73c9f54f54426f5c3512..e579bf38d99861e7b2d889bde003e42a5df174ed 100644
--- a/src/main/webapp/static/themes/openolat/theme.css
+++ b/src/main/webapp/static/themes/openolat/theme.css
@@ -58,15 +58,15 @@ fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%
 @media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}
 .visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}
 .visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}
-@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.eot?#iefix4yacgg") format("embedded-opentype"),url("../light/fonts/openolat/openolat.woff?4yacgg") format("woff"),url("../light/fonts/openolat/openolat.ttf?4yacgg") format("truetype"),url("../light/fonts/openolat/openolat.svg?4yacgg#openolat") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_accessibility:before{content:"\f193"}.o_icon_actions:before{content:"\f085"}.o_icon_archive_tool:before{content:"\f019"}.o_icon_assessment_mode:before{content:"\f044"}.o_icon_assessment_tool:before{content:"\f091"}.o_icon_attempt_limit:before{content:"\f021"}.o_icon_accept:before{content:"\f00c";color:#5cb85c}.o_icon_add:before{content:"\f055"}.o_icon_add_search:before{content:"\f00e"}.o_icon_audio:before{content:"\f028"}.o_icon_back:before{content:"\f053"}.o_icon_back_history:before{content:"\f1da"}.o_icon_bold:before{content:"\f032"}.o_icon_booking:before{content:"\f07a"}.o_icon_bookmark:before{content:"\f02e";color:#bc2d0c}.o_icon_bookmark_add:before{content:"\f097"}.o_icon_bookmark_header:before{content:"\f02e"}.o_icon_browse:before{content:"\f00e"}.o_icon_browsercheck:before{content:"\f164"}.o_icon_busy:before{content:"\f110"}.o_icon_calendar:before{content:"\f073"}.o_icon_calendar_enabled:before{content:"\f05d"}.o_icon_calendar_disabled:before{content:"\f10c"}.o_icon_calendar:before{content:"\f073"}.o_icon_caret:before{content:"\f0d7"}.o_icon_caret_right:before{content:"\f0da"}.o_icon_catalog:before{content:"\f0e8"}.o_icon_catalog_sub:before{content:"\f07b"}.o_icon_certificate:before{content:"\f0a3"}.o_icon_chat:before{content:"\f0e5"}.o_icon_check:before{content:"\f00c"}.o_icon_check_off:before{content:"\f096"}.o_icon_check_on:before{content:"\f046"}.o_icon_checkbox:before{content:"\f096"}.o_icon_checkbox_checked:before{content:"\f14a"}.o_icon_cleanup:before{content:"\f0f9"}.o_icon_close:before{content:"\f00d"}.o_icon_close_resource:before{content:"\f011"}.o_icon_close_tab:before{content:"\f00d"}.o_icon_close_tool:before{content:"\f00d"}.o_icon_close_tree:before{content:"\f0d7"}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before{content:"\f0d7"}.o_icon_code:before{content:"\f121"}.o_icon_color_picker:before{content:"\f043"}.o_icon_copy:before{content:"\f0c5"}.o_icon_courseareas:before{content:"\f1db"}.o_icon_coursedb:before{content:"\f1c0"}.o_icon_courseeditor:before{content:"\f044"}.o_icon_coursefolder:before{content:"\f114"}.o_icon_courserun:before{content:"\f1b2"}.o_icon_comments:before{content:"\f086"}.o_icon_comments_none:before{content:"\f0e5"}.o_icon_content_popup:before{content:"\f08e"}.o_icon_correct_answer:before{content:"\f00c";color:#5cb85c}.o_icon_customize:before{content:"\f013"}.o_icon_delete_item:before{content:"\f1f8"}.o_icon_delete:before{content:"\f056";color:#A87E7E}.o_icon_details:before{content:"\f0eb"}.o_icon_dev:before{content:"\f188"}.o_icon_disabled:before{content:"\f10c"}.o_icon_download:before{content:"\f019"}.o_icon_edit:before{content:"\f044"}.o_icon_edit_file:before{content:"\f044"}.o_icon_edit_metadata:before{content:"\f013"}.o_icon_enabled:before{content:"\f111"}.o_icon_enlarge:before{content:"\f00e"}.o_icon_eportfolio_add:before{content:"\f12e"}.o_icon_eportfolio_link:before{content:"\f12e"}.o_icon_error:before{content:"\f06a";color:#d9534f}.o_icon_expenditure:before{content:"\f017"}.o_icon_export:before{content:"\f045"}.o_icon_external_link:before{content:"\f08e"}.o_icon_failed:before{content:"\f057"}.o_icon_filter:before{content:"\f0b0"}.o_icon_group:before,.o_BusinessGroup_icon:before{content:"\f0c0"}.o_icon_header:before{content:"\f1dc"}.o_icon_help:before{content:"\f059";cursor:help}.o_icon_home:before{content:"\f015"}.o_icon_impress:before{content:"\f05a"}.o_icon_important:before{content:"\f071";color:#f0ad4e}.o_icon_import:before{content:"\f093"}.o_icon_info:before{content:"\f05a";color:#5bc0de}.o_icon_info_msg:before{content:"\f06a";color:#d9534f}.o_icon_inline_editable:before{content:"\f044"}.o_icon_institution:before{content:"\f19c"}.o_icon_italic:before{content:"\f033"}.o_icon_landingpage:before{content:"\f140"}.o_icon_language:before{content:"\f0ac"}.o_icon_layout:before{content:"\f1c5"}.o_icon_link:before{content:"\f0c1"}.o_icon_link_extern:before{content:"\f08e"}.o_icon_list:before{content:"\f03a"}.o_icon_list_num :before{content:"\f0cb"}.o_icon_lifecycle:before{content:"\f073"}.o_icon_locked:before{content:"\f023"}.o_icon_login:before{content:"\f090"}.o_icon_logout:before{content:"\f08b"}.o_icon_mandatory:before{content:"\f069";color:#f0ad4e}.o_icon_managed:before{content:"\f079";color:#777}.o_icon_manual:before{content:"\f02d";cursor:help}.o_icon_mail:before{content:"\f003"}.o_icon_math:before{content:"\f198"}.o_icon_membersmanagement:before{content:"\f0c0"}.o_icon_menuhandel:before{content:"\f0c9"}.o_icon_message:before{content:"\f0e0"}.o_icon_move:before{content:"\f047"}.o_icon_move_down:before{content:"\f103"}.o_icon_move_left:before{content:"\f100"}.o_icon_move_right:before{content:"\f101"}.o_icon_move_up:before{content:"\f102"}.o_icon_new:before{content:"\f069";color:#5cb85c}.o_icon_new_document:before{content:"\f15c"}.o_icon_new_folder:before{content:"\f07b"}.o_icon_news:before{content:"\f05a"}.o_icon_next:before{content:"\f138"}.o_icon_next_page:before{content:"\f101"}.o_icon_next_toolbar:before{content:"\f0da"}.o_icon_node_after:before{content:"\f175"}.o_icon_node_before:before{content:"\f176"}.o_icon_node_under:before{content:"\f112"}.o_icon_notes:before{content:"\f1e8"}.o_icon_notification:before{content:"\f09e"}.o_icon_open_tree:before{content:"\f0da"}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before{content:"\f0da"}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:"\f205"}.o_icon_pageing:before{content:"\f141"}.o_icon_passed:before{content:"\f058"}.o_icon_password:before{content:"\f023"}.o_icon_pending:before{content:"\f110"}.o_icon_phone:before{content:"\f095"}.o_icon_post:before{content:"\f0e5"}.o_icon_preview:before{content:"\f06e"}.o_icon_previous:before{content:"\f137"}.o_icon_previous_page:before{content:"\f100"}.o_icon_previous_toolbar:before{content:"\f0d9"}.o_icon_print:before{content:"\f02f"}.o_icon_private:before{content:"\f02f"}.o_icon_provider_adfs:before{content:"\f17a"}.o_icon_provider_facebook:before{content:"\f09a"}.o_icon_provider_google:before{content:"\f0d5"}.o_icon_provider_guest:before{content:"\f1ae"}.o_icon_provider_ldap:before{content:"\f19c"}.o_icon_provider_linkedin:before{content:"\f0e1"}.o_icon_provider_oauth:before{content:"\f0c2"}.o_icon_provider_shibboleth:before{content:"\f19c"}.o_icon_provider_twitter:before{content:"\f099"}.o_icon_publish:before{content:"\f064"}.o_icon_qrcode:before{content:"\f029"}.o_icon_quickview:before{content:"\f06e"}.o_icon_radio_off:before{content:"\f10c"}.o_icon_radio_on:before{content:"\f05d"}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:"\f005"}.o_icon_rating_off:before{content:"\f006"}.o_icon_read:before{content:"\f10c"}.o_icon_readonly:before{content:"\f044";color:red}.o_icon_readwrite:before{content:"\f044"}.o_icon_recycle:before{content:"\f1b8"}.o_icon_refresh:before{content:"\f021"}.o_icon_reject:before{content:"\f00d";color:#d9534f}.o_icon_remove:before{content:"\f00d"}.o_icon_replace:before{content:"\f0c5"}.o_icon_reply:before{content:"\f112"}.o_icon_reply_with_quote:before{content:"\f122"}.o_icon_response_feedback:before{content:"\f021"}.o_icon_review:before{content:"\f06e"}.o_icon_rss:before{content:"\f09e"}.o_icon_rss_unsubscribe:before{content:"\f09e";color:#996633}.o_icon_search:before{content:"\f002"}.o_icon_settings:before{content:"\f085"}.o_icon_share:before{content:"\f064"}.o_icon_show_more:before{content:"\f150"}.o_icon_show_less:before{content:"\f151"}.o_icon_spacer:before{content:"\f07e"}.o_icon_split:before{content:"\f127"}.o_icon_sort:before{content:"\f0dc"}.o_icon_sort_asc:before{content:"\f0de"}.o_icon_sort_desc:before{content:"\f0dd"}.o_icon_sort_menu:before{content:"\f160"}.o_icon_start:before{content:"\f054"}.o_icon_status_available:before{content:"\f111";color:#063}.o_icon_status_chat:before{content:"\f075"}.o_icon_status_dnd:before{content:"\f192";color:#cc3}.o_icon_status_unavailable:before{content:"\f05c";color:#963}.o_icon_statistics_tool:before{content:"\f080"}.o_icon_table:before{content:"\f0ce"}.o_icon_table_large:before{content:"\f009"}.o_icon_tags:before{content:"\f02c"}.o_icon_timelimit:before{content:"\f1e2"}.o_icon_toggle:before{content:"\f111"}.o_icon_to_read:before{content:"\f111"}.o_icon_tool:before{content:"\f013"}.o_icon_tools:before{content:"\f0ad"}.o_icon_top:before{content:"\f077"}.o_icon_translation_item:before{content:"\f1c9"}.o_icon_translation_package:before{content:"\f115"}.o_icon_user:before{content:"\f007"}.o_icon_user_vip:before{content:"\f19d"}.o_icon_user_anonymous:before{content:"\f128"}.o_icon_upload:before{content:"\f093"}.o_icon_version:before{content:"\f1da"}.o_icon_video:before{content:"\f008"}.o_icon_warn:before{content:"\f071";color:#f0ad4e}.o_icon_wizard:before{content:"\f0d0"}.o_CourseModule_icon:before,.o_course_icon:before{content:"\f1b2"}.o_EPStructuredMapTemplate_icon:before{content:"\f12e"}.o_FileResource-BLOG_icon:before{content:"\f0a1"}.o_FileResource-IMSCP_icon:before{content:"\f187"}.o_FileResource-PODCAST_icon:before{content:"\f03d"}.o_FileResource-SHAREDFOLDER:before{content:"\f08e"}.o_FileResource-SCORMCP_icon:before{content:"\f187"}.o_FileResource-SURVEY_icon:before{content:"\f11a"}.o_FileResource-TEST_icon:before{content:"\f044"}.o_FileResource-WIKI_icon:before{content:"\f0ac"}.o_FileResource-SHAREDFOLDER_icon:before{content:"\f115"}.o_FileResource-GLOSSARY_icon:before{content:"\f19d"}.o_FileResource-PDF_icon:before{content:"\f1c1"}.o_FileResource-XLS_icon:before{content:"\f1c3"}.o_FileResource-PPT_icon:before{content:"\f1c4"}.o_FileResource-DOC_icon:before{content:"\f1c2"}.o_FileResource-ANIM_icon:before{content:"\f1c8"}.o_FileResource-IMAGE_icon:before{content:"\f1c5"}.o_FileResource-SOUND_icon:before{content:"\f1c7"}.o_FileResource-MOVIE_icon:before{content:"\f1c8"}.o_FileResource-FILE_icon:before{content:"\f016"}.o_CourseModule_icon_closed:before{content:"\f05e"}.o_sp_icon:before{content:"\f0f6"}.o_st_icon:before{content:"\f1b3"}.o_tu_icon:before{content:"\f08e"}.o_bc_icon:before{content:"\f115"}.o_lti_icon:before{content:"\f08e"}.o_cp_icon:before{content:"\f187"}.o_cp_item:before{content:"\f0f6"}.o_scorm_icon:before{content:"\f187"}.o_en_icon:before{content:"\f090"}.o_fo_icon:before{content:"\f0e6"}.o_co_icon:before{content:"\f003"}.o_infomsg_icon:before{content:"\f05a"}.o_cal_icon:before{content:"\f073"}.o_wiki_icon:before{content:"\f0ac"}.o_podcast_icon:before{content:"\f03d"}.o_blog_icon:before{content:"\f0a1"}.o_ep_icon:before{content:"\f12e"}.o_iqtest_icon:before{content:"\f044"}.o_iqself_icon:before{content:"\f044"}.o_iqsurv_icon:before{content:"\f11a"}.o_ta_icon:before{content:"\f0ae"}.o_ms_icon:before{content:"\f087"}.o_dialog_icon:before{content:"\f0c5"}.o_projectbroker_icon:before{content:"\f10c"}.o_ll_icon:before{content:"\f0c1"}.o_den_icon:before{content:"\f133"}.o_cmembers_icon:before{content:"\f0c0"}.o_cl_icon:before{content:"\f046"}.o_vc_icon:before{content:"\f108"}.o_vitero_icon:before{content:"\f108"}.o_openmeetings_icon:before{content:"\f108"}.o_portlet_infomsg_icon:before{content:"\f05a"}.o_portlet_quickstart_icon:before{content:"\f1d9"}.o_portlet_bookmark_icon:before{content:"\f02e"}.o_portlet_groups_icon:before{content:"\f0c0"}.o_portlet_notes_icon:before{content:"\f1e8"}.o_portlet_noti_icon:before{content:"\f09e"}.o_portlet_eff_icon:before{content:"\f0a3"}.o_portlet_repository_student_icon:before{content:"\f1b3"}.o_portlet_repository_teacher_icon:before{content:"\f19d"}.o_portlet_iframe_icon:before{content:"\f005"}.o_portlet_sysinfo_icon:before{content:"\f0e4"}.o_portlet_dyk_icon:before{content:"\f0eb"}.o_portlet_infomessages_icon:before{content:"\f0e5"}.o_portlet_cal_icon:before{content:"\f073"}.o_portlet_institutions_icon:before{content:"\f19c"}.o_portlet_links_icon:before{content:"\f0c1"}.o_portlet_shibboleth_icon:before{content:"\f090"}.o_icon_qpool:before{content:"\f19c"}.o_icon_pool_private:before{content:"\f096"}.o_icon_pool_public:before{content:"\f046"}.o_icon_pool_my_items:before{content:"\f007"}.o_icon_pool_favorits:before{content:"\f02e"}.o_icon_pool_collection:before{content:"\f03a"}.o_icon_pool_pool:before{content:"\f1e1"}.o_icon_pool_share:before{content:"\f0c0"}.o_forum_message_icon:before{content:"\f0e5"}.o_calendar_icon:before{content:"\f073"}.o_forum_status_thread_icon:before{content:"\f0e6"}.o_forum_status_sticky_closed_icon:before{content:"\f05e"}.o_forum_status_sticky_icon:before{content:"\f086"}.o_forum_status_closed_icon:before{content:"\f05e";color:#a94442}.o_forum_status_opened_icon:before{content:"\f05e";color:#3c763d}.o_forum_status_hidden_icon:before{content:"\f070";color:#a94442}.o_forum_status_visible_icon:before{content:"\f06e";color:#3c763d}.o_mi_qpool_import:before{content:"\f1c0"}.o_mi_qtisection:before{content:"\f1b3"}.o_mi_qtisc:before{content:"\f192"}.o_mi_qtimc:before{content:"\f046"}.o_mi_qtikprim:before{content:"\f14a"}.o_mi_qtifib:before{content:"\f141"}.o_mi_qtiessay:before{content:"\f036"}.o_as_mode_leadtime:before{content:"\f017"}.o_as_mode_assessment:before{content:"\f04b"}.o_as_mode_followup:before{content:"\f05e"}.o_as_mode_closed:before{content:'-'}.o_black_led:before{content:"\f111";color:#3b678a}.o_green_led:before{content:"\f111";color:#5cb85c}.o_yellow_led:before{content:"\f111";color:#f0ad4e}.o_red_led:before{content:"\f111";color:#d9534f}.o_ac_token_icon:before{content:"\f084"}.o_ac_free_icon:before{content:"\f06b"}.o_ac_group_icon:before{content:"\f0c0"}.o_ac_membersonly_icon:before{content:"\f023"}.o_ac_paypal_icon:before{content:"\f1f4"}.o_ac_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_status_new_icon:before{content:"\f069";color:#3b678a}.o_ac_status_succes_icon:before{content:"\f00c";color:#5cb85c}.o_ac_status_waiting_icon:before{content:"\f017";color:#3b678a}.o_ac_order_status_new_icon:before{content:"\f069";color:#3b678a}.o_ac_order_status_prepayment_icon:before{content:"\f0d6";color:#5bc0de}.o_ac_order_status_payed_icon:before{content:"\f00c";color:#5cb85c}.o_ac_order_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_order_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_order_status_warning_icon:before{content:"\f12a";color:#f0ad4e}.o_scorm_org:before{content:"\f187"}.o_scorm_item:before{content:"\f016"}.o_scorm_completed:before,.o_scorm_passed:before{content:"\f058"}.o_scorm_failed:before{content:"\f071"}.o_scorm_incomplete:before{content:"\f071"}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:"\f058"}.o_midwarn:before{content:"\f071"}.o_midlock:before{content:"\f023"}.o_miderr:before{content:"\f071"}.o_middel:before{content:"\f12d"}.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_filetype_folder:before{content:"\f114"}.o_filetype_folder_open:before{content:"\f115"}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:"\f1c9"}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:"\f0f6"}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon_share_social:before{content:"\f14d"}.o_icon_apple:before{content:"\f179"}.o_icon_facebook:before{content:"\f082"}.o_icon_twitter:before{content:"\f081"}.o_icon_google:before{content:"\f0d4"}.o_icon_delicious:before{content:"\f1a5"}.o_icon_digg:before{content:"\f1a6"}.o_icon_mailto:before{content:"\f199"}.o_icon_link:before{content:"\f0c1"}.o_icon_yahoo:before{content:"\f19e"}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall{font-size:12px}.o_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry{font-size:12px}.o_large{font-size:18px}.o_xlarge{font-size:18px}.o_disabled{color:#777 !important;cursor:default}.o_disabled:hover{color:#777 !important}.o_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected{font-weight:bold}.o_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_login .o_login_register:hover,.o_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video{display:inline-block;max-width:100%;height:auto}.o_image{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}h1{color:#3b678a}h2{color:#3b678a}h3{color:#3b678a}h4,.o_cal .fc-header-title h2{color:#3b678a}h5{color:#3b678a}h5{color:#3b678a}fieldset legend{color:#333}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#3b678a}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}
+@media print{.hidden-print{display:none !important}}body .modal{position:absolute;overflow:visible}body div.tooltip-inner{max-width:400px}body div.popover{max-width:450px}body .modal-body.alert{border-radius:0}body .progress{margin-bottom:0}.panel-body:nth-child(n+2){border-top:1px solid #ddd}#o_ajax_busy_backdrop{bottom:0;z-index:1020}.form-control-feedback{top:10px}.form-horizontal .has-feedback .form-control-feedback{top:10px}.btn.btn-primary.o_disabled{color:#fff !important}body .progress-bar[aria-valuenow="1"],body .progress-bar[aria-valuenow="2"]{min-width:1px}@font-face{font-family:'openolat';src:url("../light/fonts/openolat/openolat.eot?4yacgg");src:url("../light/fonts/openolat/openolat.eot?#iefix4yacgg") format("embedded-opentype"),url("../light/fonts/openolat/openolat.woff?4yacgg") format("woff"),url("../light/fonts/openolat/openolat.ttf?4yacgg") format("truetype"),url("../light/fonts/openolat/openolat.svg?4yacgg#openolat") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:'FontAwesome';src:url("../../font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0");src:url("../../font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"),url("../../font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"),url("../../font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"),url("../../font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.o_icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_icon-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.o_icon-2x{font-size:2em}.o_icon-3x{font-size:3em}.o_icon-4x{font-size:4em}.o_icon-5x{font-size:5em}.o_icon-fw{width:1.28571em;text-align:center}.o_icon-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.o_icon-ul>li{position:relative}.o_icon-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.o_icon-li.o_icon-lg{left:-1.85714em}.o_icon-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.o_icon.pull-left{margin-right:.3em}.o_icon.pull-right{margin-left:.3em}.o_icon-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.o_icon-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.o_icon-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.o_icon-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.o_icon-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.o_icon-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .o_icon-rotate-90,:root .o_icon-rotate-180,:root .o_icon-rotate-270,:root .o_icon-flip-horizontal,:root .o_icon-flip-vertical{filter:none}.o_icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.o_icon-stack-1x,.o_icon-stack-2x{position:absolute;left:0;width:100%;text-align:center}.o_icon-stack-1x{line-height:inherit}.o_icon-stack-2x{font-size:2em}.o_icon-inverse{color:#fff}.o_icon_accessibility:before{content:"\f193"}.o_icon_actions:before{content:"\f085"}.o_icon_archive_tool:before{content:"\f019"}.o_icon_assessment_mode:before{content:"\f044"}.o_icon_assessment_tool:before{content:"\f091"}.o_icon_attempt_limit:before{content:"\f021"}.o_icon_accept:before{content:"\f00c";color:#5cb85c}.o_icon_add:before{content:"\f055"}.o_icon_add_search:before{content:"\f00e"}.o_icon_audio:before{content:"\f028"}.o_icon_back:before{content:"\f053"}.o_icon_back_history:before{content:"\f1da"}.o_icon_bold:before{content:"\f032"}.o_icon_booking:before{content:"\f07a"}.o_icon_bookmark:before{content:"\f02e";color:#bc2d0c}.o_icon_bookmark_add:before{content:"\f097"}.o_icon_bookmark_header:before{content:"\f02e"}.o_icon_browse:before{content:"\f00e"}.o_icon_browsercheck:before{content:"\f164"}.o_icon_busy:before{content:"\f110"}.o_icon_calendar:before{content:"\f073"}.o_icon_calendar_enabled:before{content:"\f05d"}.o_icon_calendar_disabled:before{content:"\f10c"}.o_icon_calendar:before{content:"\f073"}.o_icon_caret:before{content:"\f0d7"}.o_icon_caret_right:before{content:"\f0da"}.o_icon_catalog:before{content:"\f0e8"}.o_icon_catalog_sub:before{content:"\f07b"}.o_icon_certificate:before{content:"\f0a3"}.o_icon_chat:before{content:"\f0e5"}.o_icon_check:before{content:"\f00c"}.o_icon_check_off:before{content:"\f096"}.o_icon_check_on:before{content:"\f046"}.o_icon_checkbox:before{content:"\f096"}.o_icon_checkbox_checked:before{content:"\f14a"}.o_icon_cleanup:before{content:"\f0f9"}.o_icon_close:before{content:"\f00d"}.o_icon_close_resource:before{content:"\f011"}.o_icon_close_tab:before{content:"\f00d"}.o_icon_close_tool:before{content:"\f00d"}.o_icon_close_tree:before{content:"\f0d7"}.o_icon_close_togglebox:before,.o_togglebox_wrapper .o_opener.o_in i:before{content:"\f0d7"}.o_icon_code:before{content:"\f121"}.o_icon_color_picker:before{content:"\f043"}.o_icon_copy:before{content:"\f0c5"}.o_icon_courseareas:before{content:"\f1db"}.o_icon_coursedb:before{content:"\f1c0"}.o_icon_courseeditor:before{content:"\f044"}.o_icon_coursefolder:before{content:"\f114"}.o_icon_courserun:before{content:"\f1b2"}.o_icon_comments:before{content:"\f086"}.o_icon_comments_none:before{content:"\f0e5"}.o_icon_content_popup:before{content:"\f08e"}.o_icon_correct_answer:before{content:"\f00c";color:#5cb85c}.o_icon_customize:before{content:"\f013"}.o_icon_delete_item:before{content:"\f1f8"}.o_icon_delete:before{content:"\f056";color:#A87E7E}.o_icon_details:before{content:"\f0eb"}.o_icon_dev:before{content:"\f188"}.o_icon_disabled:before{content:"\f10c"}.o_icon_download:before{content:"\f019"}.o_icon_edit:before{content:"\f044"}.o_icon_edit_file:before{content:"\f044"}.o_icon_edit_metadata:before{content:"\f013"}.o_icon_enabled:before{content:"\f111"}.o_icon_enlarge:before{content:"\f00e"}.o_icon_eportfolio_add:before{content:"\f12e"}.o_icon_eportfolio_link:before{content:"\f12e"}.o_icon_error:before{content:"\f06a";color:#d9534f}.o_icon_expenditure:before{content:"\f017"}.o_icon_export:before{content:"\f045"}.o_icon_external_link:before{content:"\f08e"}.o_icon_failed:before{content:"\f057"}.o_icon_filter:before{content:"\f0b0"}.o_icon_group:before,.o_BusinessGroup_icon:before{content:"\f0c0"}.o_icon_header:before{content:"\f1dc"}.o_icon_help:before{content:"\f059";cursor:help}.o_icon_home:before{content:"\f015"}.o_icon_impress:before{content:"\f05a"}.o_icon_important:before{content:"\f071";color:#f0ad4e}.o_icon_import:before{content:"\f093"}.o_icon_info:before{content:"\f05a";color:#5bc0de}.o_icon_info_msg:before{content:"\f06a";color:#d9534f}.o_icon_inline_editable:before{content:"\f044"}.o_icon_institution:before{content:"\f19c"}.o_icon_italic:before{content:"\f033"}.o_icon_landingpage:before{content:"\f140"}.o_icon_language:before{content:"\f0ac"}.o_icon_layout:before{content:"\f1c5"}.o_icon_link:before{content:"\f0c1"}.o_icon_link_extern:before{content:"\f08e"}.o_icon_list:before{content:"\f03a"}.o_icon_list_num :before{content:"\f0cb"}.o_icon_lifecycle:before{content:"\f073"}.o_icon_locked:before{content:"\f023"}.o_icon_login:before{content:"\f090"}.o_icon_logout:before{content:"\f08b"}.o_icon_mandatory:before{content:"\f069";color:#f0ad4e}.o_icon_managed:before{content:"\f079";color:#777}.o_icon_manual:before{content:"\f02d";cursor:help}.o_icon_mail:before{content:"\f003"}.o_icon_math:before{content:"\f198"}.o_icon_membersmanagement:before{content:"\f0c0"}.o_icon_menuhandel:before{content:"\f0c9"}.o_icon_message:before{content:"\f0e0"}.o_icon_move:before{content:"\f047"}.o_icon_move_down:before{content:"\f103"}.o_icon_move_left:before{content:"\f100"}.o_icon_move_right:before{content:"\f101"}.o_icon_move_up:before{content:"\f102"}.o_icon_new:before{content:"\f069";color:#5cb85c}.o_icon_new_document:before{content:"\f15c"}.o_icon_new_folder:before{content:"\f07b"}.o_icon_news:before{content:"\f05a"}.o_icon_next:before{content:"\f138"}.o_icon_next_page:before{content:"\f101"}.o_icon_next_toolbar:before{content:"\f0da"}.o_icon_node_after:before{content:"\f175"}.o_icon_node_before:before{content:"\f176"}.o_icon_node_under:before{content:"\f112"}.o_icon_notes:before{content:"\f1e8"}.o_icon_notification:before{content:"\f09e"}.o_icon_open_tree:before{content:"\f0da"}.o_icon_open_togglebox:before,.o_togglebox_wrapper .o_opener i:before{content:"\f0da"}.o_icon_openolat:before,.o_icon_provider_olat:before{content:"\E600";font-family:openolat;font-size:10px}.o_icon_options:before{content:"\f205"}.o_icon_pageing:before{content:"\f141"}.o_icon_passed:before{content:"\f058"}.o_icon_password:before{content:"\f023"}.o_icon_pending:before{content:"\f110"}.o_icon_phone:before{content:"\f095"}.o_icon_post:before{content:"\f0e5"}.o_icon_preview:before{content:"\f06e"}.o_icon_previous:before{content:"\f137"}.o_icon_previous_page:before{content:"\f100"}.o_icon_previous_toolbar:before{content:"\f0d9"}.o_icon_print:before{content:"\f02f"}.o_icon_private:before{content:"\f02f"}.o_icon_provider_adfs:before{content:"\f17a"}.o_icon_provider_facebook:before{content:"\f09a"}.o_icon_provider_google:before{content:"\f0d5"}.o_icon_provider_guest:before{content:"\f1ae"}.o_icon_provider_ldap:before{content:"\f19c"}.o_icon_provider_linkedin:before{content:"\f0e1"}.o_icon_provider_oauth:before{content:"\f0c2"}.o_icon_provider_shibboleth:before{content:"\f19c"}.o_icon_provider_twitter:before{content:"\f099"}.o_icon_publish:before{content:"\f064"}.o_icon_qrcode:before{content:"\f029"}.o_icon_quickview:before{content:"\f06e"}.o_icon_radio_off:before{content:"\f10c"}.o_icon_radio_on:before{content:"\f05d"}.o_icon_rating_on:before,.o_rating .o_rating_items.o_enabled .o_icon:hover:before{content:"\f005"}.o_icon_rating_off:before{content:"\f006"}.o_icon_read:before{content:"\f10c"}.o_icon_readonly:before{content:"\f044";color:red}.o_icon_readwrite:before{content:"\f044"}.o_icon_recycle:before{content:"\f1b8"}.o_icon_refresh:before{content:"\f021"}.o_icon_reject:before{content:"\f00d";color:#d9534f}.o_icon_remove:before{content:"\f00d"}.o_icon_replace:before{content:"\f0c5"}.o_icon_reply:before{content:"\f112"}.o_icon_reply_with_quote:before{content:"\f122"}.o_icon_response_feedback:before{content:"\f021"}.o_icon_review:before{content:"\f06e"}.o_icon_rss:before{content:"\f09e"}.o_icon_rss_unsubscribe:before{content:"\f09e";color:#996633}.o_icon_search:before{content:"\f002"}.o_icon_settings:before{content:"\f085"}.o_icon_share:before{content:"\f064"}.o_icon_show_more:before{content:"\f150"}.o_icon_show_less:before{content:"\f151"}.o_icon_sign_out:before{content:"\f08b"}.o_icon_spacer:before{content:"\f07e"}.o_icon_split:before{content:"\f127"}.o_icon_sort:before{content:"\f0dc"}.o_icon_sort_asc:before{content:"\f0de"}.o_icon_sort_desc:before{content:"\f0dd"}.o_icon_sort_menu:before{content:"\f160"}.o_icon_start:before{content:"\f054"}.o_icon_status_available:before{content:"\f111";color:#063}.o_icon_status_chat:before{content:"\f075"}.o_icon_status_dnd:before{content:"\f192";color:#cc3}.o_icon_status_unavailable:before{content:"\f05c";color:#963}.o_icon_statistics_tool:before{content:"\f080"}.o_icon_table:before{content:"\f0ce"}.o_icon_table_large:before{content:"\f009"}.o_icon_tags:before{content:"\f02c"}.o_icon_timelimit:before{content:"\f1e2"}.o_icon_toggle:before{content:"\f111"}.o_icon_to_read:before{content:"\f111"}.o_icon_tool:before{content:"\f013"}.o_icon_tools:before{content:"\f0ad"}.o_icon_top:before{content:"\f077"}.o_icon_translation_item:before{content:"\f1c9"}.o_icon_translation_package:before{content:"\f115"}.o_icon_user:before{content:"\f007"}.o_icon_user_vip:before{content:"\f19d"}.o_icon_user_anonymous:before{content:"\f128"}.o_icon_upload:before{content:"\f093"}.o_icon_version:before{content:"\f1da"}.o_icon_video:before{content:"\f008"}.o_icon_warn:before{content:"\f071";color:#f0ad4e}.o_icon_wizard:before{content:"\f0d0"}.o_CourseModule_icon:before,.o_course_icon:before{content:"\f1b2"}.o_EPStructuredMapTemplate_icon:before{content:"\f12e"}.o_FileResource-BLOG_icon:before{content:"\f0a1"}.o_FileResource-IMSCP_icon:before{content:"\f187"}.o_FileResource-PODCAST_icon:before{content:"\f03d"}.o_FileResource-SHAREDFOLDER:before{content:"\f08e"}.o_FileResource-SCORMCP_icon:before{content:"\f187"}.o_FileResource-SURVEY_icon:before{content:"\f11a"}.o_FileResource-TEST_icon:before{content:"\f044"}.o_FileResource-WIKI_icon:before{content:"\f0ac"}.o_FileResource-SHAREDFOLDER_icon:before{content:"\f115"}.o_FileResource-GLOSSARY_icon:before{content:"\f19d"}.o_FileResource-PDF_icon:before{content:"\f1c1"}.o_FileResource-XLS_icon:before{content:"\f1c3"}.o_FileResource-PPT_icon:before{content:"\f1c4"}.o_FileResource-DOC_icon:before{content:"\f1c2"}.o_FileResource-ANIM_icon:before{content:"\f1c8"}.o_FileResource-IMAGE_icon:before{content:"\f1c5"}.o_FileResource-SOUND_icon:before{content:"\f1c7"}.o_FileResource-MOVIE_icon:before{content:"\f1c8"}.o_FileResource-FILE_icon:before{content:"\f016"}.o_CourseModule_icon_closed:before{content:"\f05e"}.o_sp_icon:before{content:"\f0f6"}.o_st_icon:before{content:"\f1b3"}.o_tu_icon:before{content:"\f08e"}.o_bc_icon:before{content:"\f115"}.o_lti_icon:before{content:"\f08e"}.o_cp_icon:before{content:"\f187"}.o_cp_item:before{content:"\f0f6"}.o_scorm_icon:before{content:"\f187"}.o_en_icon:before{content:"\f090"}.o_fo_icon:before{content:"\f0e6"}.o_co_icon:before{content:"\f003"}.o_infomsg_icon:before{content:"\f05a"}.o_cal_icon:before{content:"\f073"}.o_wiki_icon:before{content:"\f0ac"}.o_podcast_icon:before{content:"\f03d"}.o_blog_icon:before{content:"\f0a1"}.o_ep_icon:before{content:"\f12e"}.o_iqtest_icon:before{content:"\f044"}.o_iqself_icon:before{content:"\f044"}.o_iqsurv_icon:before{content:"\f11a"}.o_ta_icon:before{content:"\f0ae"}.o_ms_icon:before{content:"\f087"}.o_dialog_icon:before{content:"\f0c5"}.o_projectbroker_icon:before{content:"\f10c"}.o_ll_icon:before{content:"\f0c1"}.o_den_icon:before{content:"\f133"}.o_cmembers_icon:before{content:"\f0c0"}.o_cl_icon:before{content:"\f046"}.o_vc_icon:before{content:"\f108"}.o_vitero_icon:before{content:"\f108"}.o_openmeetings_icon:before{content:"\f108"}.o_portlet_infomsg_icon:before{content:"\f05a"}.o_portlet_quickstart_icon:before{content:"\f1d9"}.o_portlet_bookmark_icon:before{content:"\f02e"}.o_portlet_groups_icon:before{content:"\f0c0"}.o_portlet_notes_icon:before{content:"\f1e8"}.o_portlet_noti_icon:before{content:"\f09e"}.o_portlet_eff_icon:before{content:"\f0a3"}.o_portlet_repository_student_icon:before{content:"\f1b3"}.o_portlet_repository_teacher_icon:before{content:"\f19d"}.o_portlet_iframe_icon:before{content:"\f005"}.o_portlet_sysinfo_icon:before{content:"\f0e4"}.o_portlet_dyk_icon:before{content:"\f0eb"}.o_portlet_infomessages_icon:before{content:"\f0e5"}.o_portlet_cal_icon:before{content:"\f073"}.o_portlet_institutions_icon:before{content:"\f19c"}.o_portlet_links_icon:before{content:"\f0c1"}.o_portlet_shibboleth_icon:before{content:"\f090"}.o_icon_qpool:before{content:"\f19c"}.o_icon_pool_private:before{content:"\f096"}.o_icon_pool_public:before{content:"\f046"}.o_icon_pool_my_items:before{content:"\f007"}.o_icon_pool_favorits:before{content:"\f02e"}.o_icon_pool_collection:before{content:"\f03a"}.o_icon_pool_pool:before{content:"\f1e1"}.o_icon_pool_share:before{content:"\f0c0"}.o_forum_message_icon:before{content:"\f0e5"}.o_calendar_icon:before{content:"\f073"}.o_forum_status_thread_icon:before{content:"\f0e6"}.o_forum_status_sticky_closed_icon:before{content:"\f05e"}.o_forum_status_sticky_icon:before{content:"\f086"}.o_forum_status_closed_icon:before{content:"\f05e";color:#a94442}.o_forum_status_opened_icon:before{content:"\f05e";color:#3c763d}.o_forum_status_hidden_icon:before{content:"\f070";color:#a94442}.o_forum_status_visible_icon:before{content:"\f06e";color:#3c763d}.o_mi_qpool_import:before{content:"\f1c0"}.o_mi_qtisection:before{content:"\f1b3"}.o_mi_qtisc:before{content:"\f192"}.o_mi_qtimc:before{content:"\f046"}.o_mi_qtikprim:before{content:"\f14a"}.o_mi_qtifib:before{content:"\f141"}.o_mi_qtiessay:before{content:"\f036"}.o_as_mode_leadtime:before{content:"\f017"}.o_as_mode_assessment:before{content:"\f04b"}.o_as_mode_followup:before{content:"\f05e"}.o_as_mode_closed:before{content:'-'}.o_black_led:before{content:"\f111";color:#3b678a}.o_green_led:before{content:"\f111";color:#5cb85c}.o_yellow_led:before{content:"\f111";color:#f0ad4e}.o_red_led:before{content:"\f111";color:#d9534f}.o_ac_token_icon:before{content:"\f084"}.o_ac_free_icon:before{content:"\f06b"}.o_ac_group_icon:before{content:"\f0c0"}.o_ac_membersonly_icon:before{content:"\f023"}.o_ac_paypal_icon:before{content:"\f1f4"}.o_ac_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_status_new_icon:before{content:"\f069";color:#3b678a}.o_ac_status_succes_icon:before{content:"\f00c";color:#5cb85c}.o_ac_status_waiting_icon:before{content:"\f017";color:#3b678a}.o_ac_order_status_new_icon:before{content:"\f069";color:#3b678a}.o_ac_order_status_prepayment_icon:before{content:"\f0d6";color:#5bc0de}.o_ac_order_status_payed_icon:before{content:"\f00c";color:#5cb85c}.o_ac_order_status_canceled_icon:before{content:"\f068";color:#f0ad4e}.o_ac_order_status_error_icon:before{content:"\f00d";color:#d9534f}.o_ac_order_status_warning_icon:before{content:"\f12a";color:#f0ad4e}.o_scorm_org:before{content:"\f187"}.o_scorm_item:before{content:"\f016"}.o_scorm_completed:before,.o_scorm_passed:before{content:"\f058"}.o_scorm_failed:before{content:"\f071"}.o_scorm_incomplete:before{content:"\f071"}.o_scorm_not_attempted:before{background:none}.o_midpub:before{content:"\f058"}.o_midwarn:before{content:"\f071"}.o_midlock:before{content:"\f023"}.o_miderr:before{content:"\f071"}.o_middel:before{content:"\f12d"}.o_filetype_file:before,.o_filetype_ico:before{content:"\f016"}.o_filetype_folder:before{content:"\f114"}.o_filetype_folder_open:before{content:"\f115"}.o_filetype_zip:before,.o_filetype_gz:before,.o_filetype_tar:before,.o_filetype_tgz:before{content:"\f1c6"}.o_filetype_css:before,.o_filetype_js:before,.o_filetype_java:before,.o_filetype_numbers:before,.o_filetype_ods:before,.o_filetype_xml:before,.o_filetype_xsl:before{content:"\f1c9"}.o_filetype_bat_icon:before,.o_filetype_bat:before,.o_filetype_exe:before,.o_filetype_app:before,.o_filetype_sh:before{content:"\f1c9"}.o_filetype_xls:before,.o_filetype_xlsx:before{content:"\f1c3"}.o_filetype_png:before,.o_filetype_tiff:before,.o_filetype_webp:before,.o_filetype_gif:before,.o_filetype_ico:before,.o_filetype_jpeg:before,.o_filetype_bmp:before,.o_filetype_odg:before,.o_filetype_eps:before,.o_filetype_jpg:before{content:"\f1c5"}.o_filetype_psd:before,.o_filetype_avi:before,.o_filetype_dvi:before,.o_filetype_mp4:before,.o_filetype_m4v:before,.o_filetype_webm:before,.o_filetype_ogg:before,.o_filetype_video:before,.o_filetype_mov:before,.o_filetype_mpeg:before,.o_filetype_mpg:before,.o_filetype_qt:before,.o_filetype_ra:before,.o_filetype_ram:before,.o_filetype_swf:before,.o_filetype_flv:before{content:"\f1c8"}.o_filetype_midi:before,.o_filetype_audio:before,.o_filetype_mp3:before,.o_filetype_m3u:before,.o_filetype_wav:before{content:"\f1c7"}.o_filetype_ps:before,.o_filetype_pdf:before{content:"\f1c1"}.o_filetype_key:before,.o_filetype_odp:before,.o_filetype_ppt:before,.o_filetype_pptx:before{content:"\f1c4"}.o_filetype_odf:before,.o_filetype_rtf:before,.o_filetype_readme:before,.o_filetype_README:before,.o_filetype_log:before,.o_filetype_txt:before,.o_filetype_htm:before,.o_filetype_html:before{content:"\f0f6"}.o_filetype_odt:before,.o_filetype_pages:before,.o_filetype_doc:before,.o_filetype_docx:before{content:"\f1c2"}.o_icon_share_social:before{content:"\f14d"}.o_icon_apple:before{content:"\f179"}.o_icon_facebook:before{content:"\f082"}.o_icon_twitter:before{content:"\f081"}.o_icon_google:before{content:"\f0d4"}.o_icon_delicious:before{content:"\f1a5"}.o_icon_digg:before{content:"\f1a6"}.o_icon_mailto:before{content:"\f199"}.o_icon_link:before{content:"\f0c1"}.o_icon_yahoo:before{content:"\f19e"}a.o_icon:hover,a.o_icon:focus{text-decoration:none}img.o_emoticons_angel{background:url(../light/images/emoticons/smiley-angel.png);width:16px;height:16px}img.o_emoticons_angry{background:url(../light/images/emoticons/smiley-mad.png);width:16px;height:16px}img.o_emoticons_blushing{background:url(../light/images/emoticons/smiley-red.png);width:16px;height:16px}img.o_emoticons_confused{background:url(../light/images/emoticons/smiley-confuse.png);width:16px;height:16px}img.o_emoticons_cool{background:url(../light/images/emoticons/smiley-cool.png);width:16px;height:16px}img.o_emoticons_cry{background:url(../light/images/emoticons/smiley-cry.png);width:16px;height:16px}img.o_emoticons_devil{background:url(../light/images/emoticons/smiley-evil.png);width:16px;height:16px}img.o_emoticons_grin{background:url(../light/images/emoticons/smiley-grin.png);width:16px;height:16px}img.o_emoticons_kiss{background:url(../light/images/emoticons/smiley-kiss.png);width:16px;height:16px}img.o_emoticons_ohoh{background:url(../light/images/emoticons/smiley-eek.png);width:16px;height:16px}img.o_emoticons_sad{background:url(../light/images/emoticons/smiley-sad.png);width:16px;height:16px}img.o_emoticons_sick{background:url(../light/images/emoticons/smiley-sad-blue.png);width:16px;height:16px}img.o_emoticons_smile{background:url(../light/images/emoticons/smiley.png);width:16px;height:16px}img.o_emoticons_tongue{background:url(../light/images/emoticons/smiley-razz.png);width:16px;height:16px}img.o_emoticons_ugly{background:url(../light/images/emoticons/smiley-money.png);width:16px;height:16px}img.o_emoticons_weird{background:url(../light/images/emoticons/smiley-nerd.png);width:16px;height:16px}img.o_emoticons_wink{background:url(../light/images/emoticons/smiley-wink.png);width:16px;height:16px}img.o_emoticons_worried{background:url(../light/images/emoticons/smiley-roll-blue.png);width:16px;height:16px}img.o_emoticons_up{background:url(../light/images/emoticons/thumb-up.png);width:16px;height:16px}img.o_emoticons_down{background:url(../light/images/emoticons/thumb.png);width:16px;height:16px}.o_block_bottom,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry,.o_header_with_buttons,.o_search_result{margin-bottom:1em}.o_block_top,.o_block,.o_button_group,.o_block_with_datecomp .o_content,.o_course_run .o_toc .o_entry{margin-top:1em}.o_block_large_bottom,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-bottom:2em}.o_block_large_top,.o_block_large,.o_block_with_datecomp,.o_login .o_login_footer_wrapper,.o_portlet{margin-top:2em}.o_scrollblock,div.b_scrollblock{overflow-x:auto;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_button_group{text-align:center}.o_button_group a,.o_button_group input,.o_button_group button,.o_button_group .btn-group{margin-right:5px;margin-bottom:0.5em}.o_button_group a:last-child,.o_button_group input:last-child,.o_button_group button:last-child,.o_button_group .btn-group:last-child{margin-right:0}.o_button_group .btn-group a,.o_button_group .btn-group input,.o_button_group .btn-group button{margin-right:0;margin-bottom:0}.o_button_group .dropdown-menu{text-align:left}.o_button_group_left{text-align:left}.o_button_group_right{text-align:right}.o_button_group_top{margin-top:0}.o_header_with_buttons:before,.o_header_with_buttons:after{content:" ";display:table}.o_header_with_buttons:after{clear:both}.o_header_with_buttons h1,.o_header_with_buttons h3,.o_header_with_buttons h4,.o_header_with_buttons .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_header_with_buttons h2{display:inline-block}.o_header_with_buttons .o_button_group{margin-top:10px;margin-bottom:0;float:right}.panel-heading.o_header_with_buttons{margin-bottom:0}.o_xsmall,.b_xsmall,p.b_xsmall,div.b_xsmall{font-size:12px}.o_small,.b_small,p.b_small,div.b_small,.o_comments .o_comment_wrapper h5,.o_comments .o_comment_wrapper .o_comment,.o_bc_meta,.tooltip,.o_htmleditor .o_metadata .o_lastmodified,.o_noti,.o_block_with_datecomp .o_meta,.o_togglebox_wrapper div.o_togglebox_content .o_hide,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label,.o_course_run .o_toc .o_entry{font-size:12px}.o_large,.b_large,p.b_large,div.b_large{font-size:18px}.o_xlarge,.b_xlarge,p.b_xlarge,div.b_xlarge{font-size:18px}.o_disabled,.b_disabled,p.b_disabled,div.b_disabled{color:#777 !important;cursor:default}.o_disabled:hover,.b_disabled:hover{color:#777 !important}.o_dimmed,.b_dimmed,p.b_dimmed,div.b_dimmed{opacity:0.4;filter:alpha(opacity=40)}.o_selected,.b_selected,p.b_selected,div.b_selected{font-weight:bold}.o_deleted,.b_deleted,p.b_deleted,div.b_deleted{text-decoration:line-through}.o_clickable{cursor:pointer}.o_ochre{color:#c8a959}.o_blue{color:#12223F}.o_undecorated:hover,.o_undecorated:focus,.o_disabled:hover,.b_disabled:hover,#o_main_wrapper #o_toplink:hover,#o_footer_powered a:hover,#o_share a:hover,#o_share_social_container a:hover,.o_toolbar .o_tools_container a:hover,.o_button_toggle:hover,.o_im_message_group .o_im_from:hover,.o_noti .o_label:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover,.o_catalog .o_level .o_meta .o_title a:hover,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover,.o_repo_details .o_social .o_comments:hover,.o_login .o_login_register:hover,.o_disabled:focus,.b_disabled:focus,#o_main_wrapper #o_toplink:focus,#o_footer_powered a:focus,#o_share a:focus,#o_share_social_container a:focus,.o_toolbar .o_tools_container a:focus,.o_button_toggle:focus,.o_im_message_group .o_im_from:focus,.o_noti .o_label:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_comments:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:focus,.o_catalog .o_level .o_meta .o_title a:focus,.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:focus,.o_repo_details .o_social .o_comments:focus,.o_login .o_login_register:focus{text-decoration:none}.o_copy_code,.b_copy_code,p.b_copy_code,div.b_copy_code,code,pre{overflow-x:auto;overflow-y:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.o_nowrap{white-space:nowrap}.o_titled_wrapper .o_content{margin-top:20px}.o_video,.b_video{display:inline-block;max-width:100%;height:auto}.o_image,img,.b_image{display:inline-block;max-width:100%;height:auto}.o_with_hyphens{-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}h1{color:#3b678a}h2{color:#3b678a}h3{color:#3b678a}h4,.o_cal .fc-header-title h2{color:#3b678a}h5{color:#3b678a}h5{color:#3b678a}fieldset legend{color:#333}.b_border_box,p.b_border_box,div.b_border_box{border:1px solid #777;padding:1em;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}table td{vertical-align:top}table.b_grid{width:99.5%;background:transparent;border-collapse:separate}table.b_grid td,table.b_grid th{padding:1px 5px;border:1px solid #777}table.b_grid th{background:#eee}table.b_border{width:99.5%;background:transparent;border-collapse:collapse}table.b_border td,table.b_border th{padding:1px 5px;border:1px solid #777}table.b_border th{background:#eee}table.b_borderless{width:99.5%;background:transparent;border-collapse:separate}table.b_borderless td,table.b_borderless th{padding:1px 5px;border:0}table.b_full{width:99.5%}table.b_middle{background:transparent}table.b_middle td{vertical-align:middle}.b_align_normal{text-align:left}.b_align_center{text-align:center}.b_align_inverse{text-align:right}.b_align_justified{text-align:justify}a.b_link_extern{color:#3b678a}a.b_link_extern:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f08e"}a.b_link_mailto{color:#3b678a}a.b_link_mailto:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f003"}a.b_link_forward{color:#3b678a}a.b_link_forward:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-right:0.5em;content:"\f064"}img.b_float_left{float:left;margin:0 2em 2em 0}img.b_float_left_clear{clear:both;margin:0 2em 2em 0;display:block}img.b_float_right{float:right;margin:0 0 2em 2em}img.b_float_right_clear{clear:both;display:block;margin:0 0 2em auto}img.b_centered{clear:both;display:block;margin:0 auto 2em auto}img.b_circle{border-radius:50%}img.b_with_border{border:1px solid #ddd;padding:3px;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.b_clear_float,p.b_clear_float,div.b_clear_float{clear:both}html{position:relative;min-height:100%}body{min-height:100%;margin-bottom:80px}#o_main_wrapper{background:#fff;z-index:3}#o_main_wrapper #o_main_container{background:#fff}#o_main_wrapper #o_main_container #o_main_left{float:left;z-index:2;position:relative;background:#fff}#o_main_wrapper #o_main_container #o_main_left #o_main_left_content{padding:0 0 0 15px}#o_main_wrapper #o_main_container #o_main_left #o_main_left_toggle{position:absolute;display:none;right:0;top:70px;margin-right:-30px;font-size:25px;line-height:35px;text-align:center;width:30px;height:35px;z-index:3;border:1px solid #ddd;border-left:none;border-bottom-right-radius:4px;border-top-right-radius:4px;background-color:#fbfbfb;-webkit-box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);box-shadow:2px 0px 4px 1px rgba(0,0,0,0.15);color:#3b678a}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas{background:#fbfbfb;-webkit-box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);box-shadow:0px 0px 6px 1px rgba(0,0,0,0.2);min-width:250px}#o_main_wrapper #o_main_container #o_main_left.o_offcanvas #o_main_left_content{padding:0 0 0 0}#o_main_wrapper #o_main_container #o_main_right{float:right;z-index:2;position:relative;background:inherit}#o_main_wrapper #o_main_container #o_main_right #o_main_right_content{padding:0 15px 0 0}#o_main_wrapper #o_main_container #o_main_center{position:relative;z-index:1;background:inherit}#o_main_wrapper #o_main_container #o_main_center h2:first-child{margin-top:0}@media screen and (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center{margin-left:0 !important}}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:0 15px}#o_main_wrapper #o_main_container #o_main_center #o_main_center_content #o_main_center_content_inner{padding-bottom:15px}#o_main_wrapper #o_toplink{position:absolute;bottom:0;right:15px;text-align:center;z-index:3}@media (max-width: 767px){#o_main_wrapper #o_main_container #o_main_center #o_main_center_content{padding:15px}}
 #o_back_wrapper,#o_preview_wrapper{margin-top:10px}#o_back_wrapper.o_toolbar .o_breadcrumb .breadcrumb,#o_preview_wrapper.o_toolbar .o_breadcrumb .breadcrumb{font-size:14px}#o_footer_wrapper{position:absolute;bottom:0;width:100%;height:70px;overflow:hidden;background-color:#f5f5f5;color:#999;line-height:16px;font-size:12px}#o_footer_wrapper a{color:#999}#o_footer_wrapper a:hover{color:#000}#o_footer_container{position:relative;padding-top:10px;min-height:70px;background:#f5f5f5;z-index:1}#o_footer_user{position:absolute;left:15px;top:10px;z-index:1}#o_footer_user #o_counter{white-space:nowrap}#o_footer_user #o_username{white-space:nowrap;margin-right:1em}#o_footer_version{position:absolute;right:15px;top:10px;text-align:right;z-index:1}@media (max-width: 767px){#o_footer_version{padding-top:10px;text-align:left}}
 #o_footer_powered{position:absolute;top:30px;right:15px;z-index:1}#o_footer_powered img{opacity:0.6;filter:alpha(opacity=60)}#o_footer_powered img:hover{opacity:1;filter:alpha(opacity=100)}#o_footer_impressum{position:absolute;top:10px;width:100%;text-align:center;z-index:-1}#o_footer_impressum i{display:none}#o_footer_textline{position:absolute;top:30px;width:100%;text-align:center;z-index:-1}#o_share{margin-top:10px}#o_share a{opacity:0.6;filter:alpha(opacity=60)}#o_share a:hover{opacity:1;filter:alpha(opacity=100)}#o_share a,#o_share_social_container a{color:#999;margin:0 0.25em 0 0}#o_share a:hover,#o_share_social_container a:hover{color:#000}@media (max-width: 767px){#o_counter,#o_footer_version,#o_share{display:none}#o_footer_impressum{top:30px;text-align:left}#o_footer_textline{top:50px;text-align:left}#o_footer_powered{top:10px}#o_footer_powered a:after{content:"\221E";font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:14px}#o_footer_powered img{display:none}}#o_navbar_wrapper{z-index:4;border-top:1px solid #e7e7e7;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}#o_navbar_wrapper #o_navbar_container{position:relative}a.o_disabled.navbar-text{margin:0}.o_navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid #e7e7e7;background-color:#f8f8f8}.o_navbar:before,.o_navbar:after{content:" ";display:table}.o_navbar:after{clear:both}.o_navbar .o_navbar_tabs li{max-width:150px}.o_navbar .o_navbar_tabs li a{padding-right:30px}.o_navbar .o_navbar_tabs li a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_navbar .o_navbar_tabs .o_icon-fw{position:absolute;top:15px;left:0.5em;padding-top:3px;width:1em;height:1em;display:none}.o_navbar .o_navbar_tabs .o_navbar_tab_close{position:absolute;top:15px;right:0.5em;padding:0;width:1em;height:1em}.o_navbar .o_navbar_tabs .o_navbar_tab_close i:before{color:#d9534f}.o_navbar .o_navbar_tabs .o_navbar_tab_close:hover i:before{color:#c9302c}.o_navbar .o_custom_navbar-brand{background-position:5px 0;background-repeat:no-repeat;height:50px;width:120px}.o_navbar #o_navbar_langchooser{color:#777;padding:7px 15px}.o_navbar #o_navbar_langchooser form span+div{display:inline}.o_navbar #o_navbar_tools_permanent #o_navbar_print a,.o_navbar #o_navbar_tools_permanent #o_navbar_impress a,.o_navbar #o_navbar_tools_permanent #o_navbar_help a{color:#777;padding-right:0}.o_navbar #o_navbar_tools_permanent #o_navbar_login a{color:#f0ad4e}.o_navbar .o_navbar_tools>#o_navbar_tools_permanent>li>a>span{display:none}@media (min-width: 768px){.o_navbar .o_navbar_tools li.o_portrait>a>span{display:inline}}.o_navbar #o_navbar_tools_personal .o_navbar_tool a,.o_navbar #o_navbar_tools_permanent .o_navbar_tool a{padding-right:5px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu a{padding-left:45px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .dropdown-menu a,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .dropdown-menu a{padding-left:15px}.o_navbar #o_navbar_tools_personal #o_navbar_my_menu .o_portrait,.o_navbar #o_navbar_tools_permanent #o_navbar_my_menu .o_portrait{position:absolute;left:7px;top:10px}.o_navbar #o_navbar_tools_personal .o_logout,.o_navbar #o_navbar_tools_permanent .o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar_tab_close{top:10px;right:10px}.o_navbar.o_navbar-offcanvas .o_navbar-right a{padding:3px 20px;color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-right a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a:focus{color:#fff;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout{color:#d9534f}.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:hover,.o_navbar.o_navbar-offcanvas .o_navbar-right a.o_logout:focus{color:#c9302c}.o_navbar.o_navbar-offcanvas .o_navbar-right a .o_icon-lg{font-size:1.0em;vertical-align:baseline}.o_navbar.o_navbar-offcanvas .o_navbar-right .divider{height:1px;margin:9px 0;overflow:hidden;background-color:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-header{padding-left:15px}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-toggle{display:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu{box-shadow:none;position:relative;top:0;left:0;display:block;float:none;background-color:#222;color:#9d9d9d;font-size:14px;border:none}.o_navbar.o_navbar-offcanvas .o_navbar-right .dropdown-menu .divider{background:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a{color:#9d9d9d;text-shadow:none}.o_navbar.o_navbar-offcanvas .o_navbar-nav a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav a:focus{background-color:transparent;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .active a:focus{background-color:#090909;color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link{color:#9d9d9d}.o_navbar.o_navbar-offcanvas .o_navbar-nav .o_navbar-link:hover{color:#fff}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a{color:#777}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:hover,.o_navbar.o_navbar-offcanvas .o_navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}#o_navbar_impress a span,#o_navbar_search_opener a span{display:none}body.o_dmz #o_navbar_print a span,body.o_dmz #o_navbar_impress a span,body.o_dmz #o_navbar_help a span,body.o_dmz #o_navbar_search_opener a span{display:inline}.o_navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;-webkit-overflow-scrolling:touch}.o_navbar-collapse:before,.o_navbar-collapse:after{content:" ";display:table}.o_navbar-collapse:after{clear:both}.o_navbar-collapse.o_collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.o_navbar-offcanvas .o_navbar-collapse{width:auto;box-shadow:none;margin-top:10px;margin-right:-15px;margin-left:-15px}.o_navbar-brand{float:left;font-size:18px;line-height:20px;height:50px;color:#777}.o_navbar-brand:hover,.o_navbar-brand:focus{text-decoration:none;color:#5e5e5e;background-color:transparent}.o_navbar-toggle{position:relative;margin-right:15px;margin-left:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;border:1px solid #ddd;border-radius:4px;background-color:transparent;background-image:none}.o_navbar-toggle:hover,.o_navbar-toggle:focus{outline:none;background-color:#ddd}.o_navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;background-color:#888}.o_navbar-toggle .icon-bar+.icon-bar{margin-top:4px}#o_navbar_left-toggle{float:left}#o_navbar_right-toggle{float:right}.o_navbar-link{color:#777}.o_navbar-link:hover{color:#333}.o_navbar-nav{margin:7.5px -15px}.o_navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px;color:#777}.o_navbar-nav>li>a:hover,.o_navbar-nav>li>a:focus{color:#333;background-color:transparent}.o_navbar-nav>.active>a,.o_navbar-nav>.active>a:hover,.o_navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.o_navbar-nav>.disabled>a,.o_navbar-nav>.disabled>a:hover,.o_navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.o_navbar-nav>.open>a,.o_navbar-nav>.open>a:hover,.o_navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}.o_collapse .o_navbar-nav{float:left;margin:0}.o_collapse .o_navbar-nav>li{float:left}.o_collapse .o_navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.o_collapse .o_navbar-nav.o_navbar-right:last-child{margin-right:-15px}.o_collapse.o_navbar-collapse .o_navbar-left{float:left !important}.o_collapse.o_navbar-collapse .o_navbar-right{float:right !important}.o_navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (max-width: 767px){.o_navbar-form .form-group{margin-bottom:5px}}
 .o_collapse .o_navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.o_collapse .o_navbar-form.o_navbar-right:last-child{margin-right:-15px}.o_navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.o_navbar-fixed-bottom .o_navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.o_navbar-btn{margin-top:8px;margin-bottom:8px}.o_navbar-btn.btn-sm,.btn-group-sm>.o_navbar-btn.btn{margin-top:10px;margin-bottom:10px}.o_navbar-btn.btn-xs,.btn-group-xs>.o_navbar-btn.btn{margin-top:14px;margin-bottom:14px}.o_navbar-text{margin-top:15px;margin-bottom:15px;color:#777}.o_collapse .o_navbar-text{float:left;margin-left:15px;margin-right:15px}.o_collapse .o_navbar-text.o_navbar-right:last-child{margin-right:0}.o_dropdown_tab{position:relative}.o_dropdown_tab>a:first-child{padding-right:30px}.o_dropdown_tab>a:first-child .o_icon-fw{display:none;position:absolute;top:0;left:10px;padding-top:3px;line-height:20px}.o_dropdown_tab>a:first-child span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.o_dropdown_tab .o_navbar_tab_close{position:absolute;top:0px;right:10px;padding-left:0px;padding-right:0px;color:#d9534f;background-color:inherit}.o_dropdown_tab .o_navbar_tab_close:focus,.o_dropdown_tab .o_navbar_tab_close:hover{color:#c9302c;background-color:inherit}#o_navbar_more .dropdown-menu .divider:last-child{display:none}@media (min-width: 768px){#o_navbar_more .dropdown-menu{max-width:300px}}@media (max-width: 767px){#o_navbar_more>li{position:inherit}#o_navbar_more .dropdown-menu{left:0px;right:0px}#o_navbar_more .dropdown-menu a,#o_navbar_more .dropdown-menu i{line-height:30px}#o_navbar_more .dropdown-menu .o_navbar_tab_close{line-height:inherit}}.o_body_popup #o_topnav_printview{display:inline-block}.o_body_popup #o_topnav_close{float:right}.o_body_popup #o_topnav_close span{display:block}.o_body_popup #o_navbar_tools_permanent li>a{background-color:transparent}.o_toolbar{position:relative;margin-bottom:20px;margin-top:-10px;border:1px solid #e7e7e7}.o_toolbar:before,.o_toolbar:after{content:" ";display:table}.o_toolbar:after{clear:both}@media (min-width: 768px){.o_toolbar{border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}}.o_toolbar .o_breadcrumb:before,.o_toolbar .o_breadcrumb:after{content:" ";display:table}.o_toolbar .o_breadcrumb:after{clear:both}.o_toolbar .o_breadcrumb .breadcrumb{margin-bottom:0;padding:5px 9px;font-size:11px;line-height:15px;border-radius:0;background:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close a span{display:none}.o_toolbar .o_breadcrumb .breadcrumb .o_breadcrumb_close:before{content:none}.o_toolbar .o_tools_container{text-align:center;min-height:37px;position:realtive;background-color:#f8f8f8;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:1px solid #e7e7e7}.o_toolbar .o_tools_container:before,.o_toolbar .o_tools_container:after{content:" ";display:table}.o_toolbar .o_tools_container:after{clear:both}@media (max-width: 991px){.o_toolbar .o_tools_container{min-height:35px}}@media (max-width: 767px){.o_toolbar .o_tools_container{min-height:22px;text-align:left}}.o_toolbar .o_tools_container a{color:#777;display:inline-block}.o_toolbar .o_tools_container a:hover{color:#333}.o_toolbar .o_tools_container a.o_disabled{color:#aaa !important}.o_toolbar .o_tools_container a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tools_container a.active{color:#3b678a;background-color:transparent}.o_toolbar .o_tools_container .dropdown-menu a{display:block}.o_toolbar .o_tools_container .dropdown-menu a.active{color:#3b678a;background-color:transparent}.o_toolbar .o_tools{margin-top:8px;margin-bottom:5px}.o_toolbar .o_tool,.o_toolbar .o_text{position:relative;margin:0 10px}.o_toolbar .o_tool:first-child,.o_toolbar .o_text:first-child{margin-left:0}.o_toolbar .o_tool:last-child,.o_toolbar .o_text:last-child{margin-right:0}.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:18px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:block;font-size:12px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{position:absolute;right:50%;top:-18px;margin-right:-12px;font-size:13px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:16px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{font-size:11px}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{top:-16.5px;margin-right:-11px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool a i,.o_toolbar .o_tool .o_disabled i,.o_toolbar .o_text a i,.o_toolbar .o_text .o_disabled i{font-size:20px}.o_toolbar .o_tool a span,.o_toolbar .o_tool .o_disabled span,.o_toolbar .o_text a span,.o_toolbar .o_text .o_disabled span{display:none}.o_toolbar .o_tool a span.badge,.o_toolbar .o_tool .o_disabled span.badge,.o_toolbar .o_text a span.badge,.o_toolbar .o_text .o_disabled span.badge{display:block;position:relative;top:0;left:0;margin-right:0}}.o_toolbar .o_tool .o_chelp,.o_toolbar .o_text .o_chelp{position:relative;top:-1em;vertical-align:top}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{padding:0;margin-top:5px;border:1px solid #ccc;background-color:#eee}.o_toolbar .o_tool_next a,.o_toolbar .o_tool_previous a{color:#777}.o_toolbar .o_tool_next a:hover,.o_toolbar .o_tool_previous a:hover{color:#333}.o_toolbar .o_tool_next a.o_disabled,.o_toolbar .o_tool_previous a.o_disabled{color:#aaa !important}.o_toolbar .o_tool_next a.o_disabled:hover,.o_toolbar .o_tool_previous a.o_disabled:hover{color:#aaa !important}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:21px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:4px}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:18px}}@media (max-width: 767px){.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{margin-top:0}.o_toolbar .o_tool_next i,.o_toolbar .o_tool_previous i{font-size:20px}}.o_toolbar .o_tool_previous{margin-left:10px;border-bottom-left-radius:4px;border-top-left-radius:4px;border-right:0}.o_toolbar .o_tool_next{border-bottom-right-radius:4px;border-top-right-radius:4px}.o_toolbar .o_tool_dropdown{margin:0 10px}.o_toolbar .o_tool_dropdown:first-child{margin-left:0}.o_toolbar .o_tool_dropdown:last-child{margin-right:0}.o_toolbar .o_tool_dropdown a.dropdown-toggle{position:relative}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:18px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span{display:block;font-size:12px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{position:absolute;right:50%;top:4px;margin-right:-20px;font-size:14px}@media (min-width: 767px) and (max-width: 991px){.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:16px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span,.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{font-size:11px}.o_toolbar .o_tool_dropdown a.dropdown-toggle .o_icon_caret{top:4px;margin-right:-18px;font-size:12px}}@media (max-width: 767px){.o_toolbar .o_tool_dropdown a.dropdown-toggle{padding:0 10px 0 5px}.o_toolbar .o_tool_dropdown a.dropdown-toggle i{font-size:20px}.o_toolbar .o_tool_dropdown a.dropdown-toggle span{display:none}}.o_toolbar .o_tool_dropdown .dropdown-menu{text-align:left}.o_toolbar .o_tools_left{float:left}.o_toolbar .o_tools_right{float:right}.o_toolbar .o_tools_right_edge{float:right}@media (max-width: 991px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tool span{max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 5px}}@media (max-width: 767px){.o_toolbar .o_tools{margin-top:6px;margin-bottom:4px}.o_toolbar .o_tools .o_chelp{top:0;vertical-align:top}.o_toolbar .o_tools_center{float:left}.o_toolbar .o_tool,.o_toolbar .o_text,.o_toolbar .o_tool_dropdown{margin:0 0;position:static}.o_toolbar .o_tool_dropdown .dropdown-menu{left:0px;right:0px}.o_toolbar .o_tool_dropdown .dropdown-menu a,.o_toolbar .o_tool_dropdown .dropdown-menu i{line-height:30px}.o_toolbar .o_tool_dropdown .dropdown-menu .o_navbar_tab_close{line-height:inherit}}
-body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-m-transition:all .25s ease-in-out;transition:all .25s ease-in-out}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5{color:#777}.o_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5{color:#31708f}.o_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#f4d000}.o_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5{color:#3c763d}.o_warning,.o_form .o_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.o_form .o_warning h2,.o_form .o_warning h3,.o_form .o_warning h4,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,.o_form .o_warning h5{color:#8a6d3b}.o_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
+body{overflow-x:hidden}.o_container_offcanvas{position:relative;max-width:1324px;-webkit-transition:all .25s ease-in-out;-moz-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;-m-transition:all .25s ease-in-out;transition:all .25s ease-in-out}#o_offcanvas_right{position:absolute;top:0;right:-250px;width:250px;padding:15px 15px;background-color:#222;color:#9d9d9d;border:1px solid #090909;-webkit-box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);box-shadow:0px 0px 4px 3px rgba(0,0,0,0.25);min-height:100%;z-index:10;display:none}#o_offcanvas_right:before,#o_offcanvas_right:after{content:" ";display:table}#o_offcanvas_right:after{clear:both}@media screen and (max-width: 767px){.row-offcanvas{position:relative;-webkit-transition:all .25s ease-out;-moz-transition:all .25s ease-out;transition:all .25s ease-out}.row-offcanvas-right{right:0}.row-offcanvas-right .sidebar-offcanvas{right:-50%}.row-offcanvas-right.active{right:50%}.row-offcanvas-left{left:0}.row-offcanvas-left .sidebar-offcanvas{left:-50%}.row-offcanvas-left.active{left:50%}.sidebar-offcanvas{position:absolute;top:0;width:50%}}.o_info,.b_info,p.b_info,div.b_info,.o_form .o_info,.o_togglebox_wrapper div.o_togglebox_content,div.o_qti_item_itemfeedback{margin:20px 0;padding:20px;border-left:3px solid #777;background-color:#eee}.o_info h2,.o_info h3,.o_info h4,.o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_info h2,.o_info h5,.b_info h2,.o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback h2,.b_info h3,.o_form .o_info h3,.o_togglebox_wrapper div.o_togglebox_content h3,div.o_qti_item_itemfeedback h3,.b_info h4,.o_form .o_info h4,.o_togglebox_wrapper div.o_togglebox_content h4,div.o_qti_item_itemfeedback h4,.b_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_info h2,.o_form .o_info .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_info h2,.o_togglebox_wrapper div.o_togglebox_content .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_togglebox_wrapper div.o_togglebox_content h2,div.o_qti_item_itemfeedback .o_cal .fc-header-title h2,.o_cal .fc-header-title div.o_qti_item_itemfeedback h2,.b_info h5,.o_form .o_info h5,.o_togglebox_wrapper div.o_togglebox_content h5,div.o_qti_item_itemfeedback h5{color:#777}.o_note,.b_note,p.b_note,div.b_note,.o_form .o_desc,.o_course_run .o_statusinfo,.o_course_stats .o_desc{margin:20px 0;padding:20px;border-left:3px solid #31708f;background-color:#d9edf7}.o_note h2,.o_note h3,.o_note h4,.o_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_note h2,.o_note h5,.b_note h2,.o_form .o_desc h2,.o_course_run .o_statusinfo h2,.o_course_stats .o_desc h2,.b_note h3,.o_form .o_desc h3,.o_course_run .o_statusinfo h3,.o_course_stats .o_desc h3,.b_note h4,.o_form .o_desc h4,.o_course_run .o_statusinfo h4,.o_course_stats .o_desc h4,.b_note .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_note h2,.o_form .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_desc h2,.o_course_run .o_statusinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_statusinfo h2,.o_course_stats .o_desc .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_stats .o_desc h2,.b_note h5,.o_form .o_desc h5,.o_course_run .o_statusinfo h5,.o_course_stats .o_desc h5{color:#31708f}.o_important,.b_important,p.b_important,div.b_important,.o_bc_empty,.o_course_run .o_no_scoreinfo{margin:20px 0;padding:20px;border-left:3px solid #f4d000;background-color:#fff1a4}.o_important h2,.o_important h3,.o_important h4,.o_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_important h2,.o_important h5,.b_important h2,.o_bc_empty h2,.o_course_run .o_no_scoreinfo h2,.b_important h3,.o_bc_empty h3,.o_course_run .o_no_scoreinfo h3,.b_important h4,.o_bc_empty h4,.o_course_run .o_no_scoreinfo h4,.b_important .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_important h2,.o_bc_empty .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_bc_empty h2,.o_course_run .o_no_scoreinfo .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_course_run .o_no_scoreinfo h2,.b_important h5,.o_bc_empty h5,.o_course_run .o_no_scoreinfo h5{color:#f4d000}.o_success,.b_success,p.b_success,div.b_success{margin:20px 0;padding:20px;border-left:3px solid #3c763d;background-color:#dff0d8}.o_success h2,.o_success h3,.o_success h4,.o_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_success h2,.o_success h5,.b_success h2,.b_success h3,.b_success h4,.b_success .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_success h2,.b_success h5{color:#3c763d}.o_warning,.b_warning,p.b_warning,div.b_warning,.o_form .o_warning{margin:20px 0;padding:20px;border-left:3px solid #8a6d3b;background-color:#fcf8e3}.o_warning h2,.o_warning h3,.o_warning h4,.o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_warning h2,.o_warning h5,.b_warning h2,.o_form .o_warning h2,.b_warning h3,.o_form .o_warning h3,.b_warning h4,.o_form .o_warning h4,.b_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_warning h2,.o_form .o_warning .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_form .o_warning h2,.b_warning h5,.o_form .o_warning h5{color:#8a6d3b}.o_error,.b_error,p.b_error,div.b_error{margin:20px 0;padding:20px;border-left:3px solid #a94442;background-color:#f2dede}.o_error h2,.o_error h3,.o_error h4,.o_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_error h2,.o_error h5,.b_error h2,.b_error h3,.b_error h4,.b_error .o_cal .fc-header-title h2,.o_cal .fc-header-title .b_error h2,.b_error h5{color:#a94442}div.o_callout_overlay{position:fixed;top:0;left:0;width:100%;height:100%;zoom:1;background:#000;opacity:0;filter:alpha(opacity=0)}.o_alert_info{position:fixed;top:-100%;left:0;display:none;z-index:2000;width:100%;text-align:center}.o_alert_info .alert{position:relative;width:auto;margin:0 auto;text-align:left;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.o_alert_info .alert .o_icon_close{float:right;color:#777}.o_alert_info .alert .o_icon_close:hover{color:#555}@media (min-width: 768px){.o_alert_info .alert{width:600px}}
 #o_msg_sticky,#o_msg_sticky_preview{position:relative;color:#a94442;background-color:#f2dede;border:1px solid #ebccd1;padding:10px 16px 10px 60px;min-height:40px;margin:-20px 0 20px 0}#o_msg_sticky .o_icon_info_msg,#o_msg_sticky_preview .o_icon_info_msg{position:absolute;left:10px;top:5px;font-size:40px}#o_msg_sticky.o_msg_sticky_fullscreen,#o_msg_sticky_preview.o_msg_sticky_fullscreen{margin-top:0}@media (min-width: 768px){.modal .o_modal_fullwidth{width:90%}}@media (min-width: 992px){.modal .o_modal_fullwidth{width:80%}}.modal .modal-header h4,.modal .modal-header .o_cal .fc-header-title h2,.o_cal .fc-header-title .modal .modal-header h2{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}.o_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_tree a{color:#777;background-color:none}.o_tree a:hover,.o_tree a:focus{color:#333}.o_tree .o_tree_link{background-color:none}.o_tree .o_tree_link:hover,.o_tree .o_tree_link:focus{background-color:#f8f8f8}.o_tree .o_tree_link:first-child{background-color:transparent}.o_tree .o_tree_link:last-child:hover,.o_tree .o_tree_link:last-child:focus{background-color:#f8f8f8}.o_tree .o_insertion_point>a>span{padding:5px;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.o_tree .o_insertion_source>a>span.o_tree_item,.o_tree .o_insertion_source>a>span.o_dnd_item{border-bottom:solid #f90 4px;background-color:#fefbf6}.o_tree ul{margin:0;padding:0;list-style-type:none}.o_tree ul li{margin:0;padding:0;white-space:nowrap}.o_tree ul li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_tree ul li div.popover{position:absolute;left:auto;right:0}.o_tree ul li div a.o_tree_oc_l0{position:absolute;top:10px;left:-4px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l0,.o_tree ul .o_tree_level_close.b_tree_oc_l0{z-index:10}.o_tree ul li div a.o_tree_oc_l1{position:absolute;top:10px;left:11px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l1,.o_tree ul .o_tree_level_close.b_tree_oc_l1{z-index:10}.o_tree ul li div a.o_tree_oc_l2{position:absolute;top:10px;left:26px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l2,.o_tree ul .o_tree_level_close.b_tree_oc_l2{z-index:10}.o_tree ul li div a.o_tree_oc_l3{position:absolute;top:10px;left:41px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l3,.o_tree ul .o_tree_level_close.b_tree_oc_l3{z-index:10}.o_tree ul li div a.o_tree_oc_l4{position:absolute;top:10px;left:56px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l4,.o_tree ul .o_tree_level_close.b_tree_oc_l4{z-index:10}.o_tree ul li div a.o_tree_oc_l5{position:absolute;top:10px;left:71px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l5,.o_tree ul .o_tree_level_close.b_tree_oc_l5{z-index:10}.o_tree ul li div a.o_tree_oc_l6{position:absolute;top:10px;left:86px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l6,.o_tree ul .o_tree_level_close.b_tree_oc_l6{z-index:10}.o_tree ul li div a.o_tree_oc_l7{position:absolute;top:10px;left:101px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l7,.o_tree ul .o_tree_level_close.b_tree_oc_l7{z-index:10}.o_tree ul li div a.o_tree_oc_l8{position:absolute;top:10px;left:116px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l8,.o_tree ul .o_tree_level_close.b_tree_oc_l8{z-index:10}.o_tree ul li div a.o_tree_oc_l9{position:absolute;top:10px;left:131px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l9,.o_tree ul .o_tree_level_close.b_tree_oc_l9{z-index:10}.o_tree ul li div a.o_tree_oc_l10{position:absolute;top:10px;left:146px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l10,.o_tree ul .o_tree_level_close.b_tree_oc_l10{z-index:10}.o_tree ul li div a.o_tree_oc_l11{position:absolute;top:10px;left:161px;z-index:9}.o_tree ul .o_tree_level_open.b_tree_oc_l11,.o_tree ul .o_tree_level_close.b_tree_oc_l11{z-index:10}.o_tree ul li div span.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_tree ul li div span.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_tree ul li div span.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_tree ul li div span.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_tree ul li div span.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_tree ul li div span.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_tree ul li div span.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_tree ul li div span.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_tree ul li div span.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_tree ul li div span.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_tree ul li div span.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_tree ul li div span.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_tree ul span.o_tree_leaf{display:none}.o_tree ul span.o_tree_link>input[type=checkbox]{margin-right:5px}.o_tree ul li .badge{position:absolute;font-size:70%}.o_tree ul li .badge:before{content:none}.o_tree ul li .badge.o_badge_1{top:3px;right:1px}.o_tree ul li .badge.o_badge_2{bottom:3px;right:1px}.o_tree ul li .badge.o_badge_3{top:3px;right:25px}.o_tree ul li .badge.o_badge_4{bottom:3px;right:25px}.o_tree ul li div.o_dnd_sibling{margin:0;padding:0;border-bottom:none}.o_tree ul li .active.o_tree_link{background-color:none;font-weight:bold}.o_tree ul li .active.o_tree_link a{color:#3b678a}.o_tree ul li .active.o_tree_link:hover,.o_tree ul li .active.o_tree_link:focus{background-color:#eee}.o_tree ul li .active.o_tree_link:hover a,.o_tree ul li .active.o_tree_link:focus a{color:#243f54}.o_tree ul li .active_parent.o_tree_link{font-weight:bold}.o_tree ul li .active_parent.o_tree_link a{color:#777}.o_tree ul li .active_parent.o_tree_link a:hover,.o_tree ul li .active_parent.o_tree_link a:focus{color:#333}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l0{left:6px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l1{left:21px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l2{left:36px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l3{left:51px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l4{left:66px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l5{left:81px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l6{left:96px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l7{left:111px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l8{left:126px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l9{left:141px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l10{left:156px}.o_tree.o_tree_root_hidden ul li div .o_tree_oc_l11{left:171px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l0{padding:10px 2px 10px 20px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l1{padding:10px 2px 10px 35px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l2{padding:10px 2px 10px 50px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l3{padding:10px 2px 10px 65px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l4{padding:10px 2px 10px 80px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l5{padding:10px 2px 10px 95px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l6{padding:10px 2px 10px 110px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l7{padding:10px 2px 10px 125px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l8{padding:10px 2px 10px 140px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l9{padding:10px 2px 10px 155px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l10{padding:10px 2px 10px 170px}.o_tree.o_tree_root_hidden ul li div span.o_tree_l11{padding:10px 2px 10px 185px}.o_tree .o_dnd_item{cursor:move;z-index:100}.o_tree .o_dnd_proxy{opacity:0.4;filter:alpha(opacity=40);background-color:yellow}.o_tree .o_dnd_item.o_dnd_over{background-color:#ffff60}.o_tree .o_dnd_sibling{height:3px;width:100%}.o_tree .o_dnd_sibling.o_dnd_over{background:transparent url(../light/images/arrow_dd.png) top left no-repeat}.o_tree .o_dnd_l1{margin-left:0 !important}.o_tree .o_dnd_l2{margin-left:1em !important}.o_tree .o_dnd_l3{margin-left:2em !important}.o_tree .o_dnd_l4{margin-left:3em !important}.o_tree .o_dnd_l5{margin-left:4em !important}.o_tree .o_dnd_l6{margin-left:5em !important}.o_tree .o_dnd_l7{margin-left:6em !important}.o_tree .o_dnd_l8{margin-left:7em !important}.o_tree .o_dnd_l9{margin-left:8em !important}.o_tree .o_dnd_l10{margin-left:9em !important}.o_tree .o_dnd_l11{margin-left:10em !important}.o_offcanvas .o_tree{border:0}.o_selection_tree{position:relative;display:block;background-color:none;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;overflow:hidden;font-size:14px}.o_selection_tree ul{margin:0;padding:0;list-style-type:none}.o_selection_tree li{margin:0;padding:0;white-space:nowrap}.o_selection_tree li div{position:relative;margin-bottom:-1px;border-bottom:1px solid #ddd}.o_selection_tree li>div>span.o_tree_l0,.o_selection_tree li>div>div.checkbox.o_tree_l0,.o_selection_tree li>div>div.radio.o_tree_l0{display:block;padding:10px 2px 10px 10px;z-index:9}.o_selection_tree li>div>span.o_tree_l1,.o_selection_tree li>div>div.checkbox.o_tree_l1,.o_selection_tree li>div>div.radio.o_tree_l1{display:block;padding:10px 2px 10px 25px;z-index:9}.o_selection_tree li>div>span.o_tree_l2,.o_selection_tree li>div>div.checkbox.o_tree_l2,.o_selection_tree li>div>div.radio.o_tree_l2{display:block;padding:10px 2px 10px 40px;z-index:9}.o_selection_tree li>div>span.o_tree_l3,.o_selection_tree li>div>div.checkbox.o_tree_l3,.o_selection_tree li>div>div.radio.o_tree_l3{display:block;padding:10px 2px 10px 55px;z-index:9}.o_selection_tree li>div>span.o_tree_l4,.o_selection_tree li>div>div.checkbox.o_tree_l4,.o_selection_tree li>div>div.radio.o_tree_l4{display:block;padding:10px 2px 10px 70px;z-index:9}.o_selection_tree li>div>span.o_tree_l5,.o_selection_tree li>div>div.checkbox.o_tree_l5,.o_selection_tree li>div>div.radio.o_tree_l5{display:block;padding:10px 2px 10px 85px;z-index:9}.o_selection_tree li>div>span.o_tree_l6,.o_selection_tree li>div>div.checkbox.o_tree_l6,.o_selection_tree li>div>div.radio.o_tree_l6{display:block;padding:10px 2px 10px 100px;z-index:9}.o_selection_tree li>div>span.o_tree_l7,.o_selection_tree li>div>div.checkbox.o_tree_l7,.o_selection_tree li>div>div.radio.o_tree_l7{display:block;padding:10px 2px 10px 115px;z-index:9}.o_selection_tree li>div>span.o_tree_l8,.o_selection_tree li>div>div.checkbox.o_tree_l8,.o_selection_tree li>div>div.radio.o_tree_l8{display:block;padding:10px 2px 10px 130px;z-index:9}.o_selection_tree li>div>span.o_tree_l9,.o_selection_tree li>div>div.checkbox.o_tree_l9,.o_selection_tree li>div>div.radio.o_tree_l9{display:block;padding:10px 2px 10px 145px;z-index:9}.o_selection_tree li>div>span.o_tree_l10,.o_selection_tree li>div>div.checkbox.o_tree_l10,.o_selection_tree li>div>div.radio.o_tree_l10{display:block;padding:10px 2px 10px 160px;z-index:9}.o_selection_tree li>div>span.o_tree_l11,.o_selection_tree li>div>div.checkbox.o_tree_l11,.o_selection_tree li>div>div.radio.o_tree_l11{display:block;padding:10px 2px 10px 175px;z-index:9}.o_breadcrumb{position:relative}.o_breadcrumb .o_breadcrumb_close{float:right;position:relative;margin:0 0 0 15px;vertical-align:middle}.o_breadcrumb .o_breadcrumb_close a{line-height:15px;color:#d9534f}.o_breadcrumb .o_breadcrumb_close a:hover{color:#b52b27}.o_breadcrumb .o_breadcrumb_close a i{font-size:16px}.o_breadcrumb .o_breadcrumb_close a span{display:none}.o_breadcrumb .o_breadcrumb_close:before{content:none}.o_form .o_icon_mandatory{position:relative;right:0;line-height:inherit;margin-left:0.25em}.o_form .o_error{margin-top:1px;margin-bottom:0;padding:10px}.o_form hr.o_spacer_noline{border-top:1px solid transparent}.o_form .form-group.o_omit_margin{margin-bottom:0}.o_form .o_date{position:relative;padding-right:34px}.o_form .o_date.form-inline .form-group,.o_form .o_date.o_navbar-form .form-group{margin-left:0}.o_form input.o_date_ms{width:3em}.o_form .o_date.form-inline .o_date_ms.form-group,.o_form .o_date.o_navbar-form .o_date_ms.form-group{margin-left:25px}.o_form .has-feedback .o_date.form-inline .form-control.o_date_ms,.o_form .has-feedback .o_date.o_navbar-form .form-control.o_date_ms{padding-right:0}.o_form .o_form_element.form-inline .o_form_element.form-group,.o_form .o_form_element.o_navbar-form .o_form_element.form-group{margin-left:25px}.o_form .input-group.o_date_picker{width:16em}.o_form .o_filepreview{margin-bottom:10px}.o_form .o_fileinput{cursor:pointer;position:relative}.o_form .o_fileinput .o_fakechooser{position:relative;z-index:1}.o_form .o_fileinput .o_realchooser{position:absolute;top:0;left:0;z-index:2;opacity:0;filter:alpha(opacity=0)}.o_choice_checkrow,.o_choice_textrow{vertical-align:text-top;padding-bottom:2px}.o_choice_textrow{padding-left:1em}.o_togglecheck a{white-space:nowrap}.o_catalog .o_catalog_delete_img{position:relative;top:-0.5em}.o_button_dirty{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_button_dirty:hover,.o_button_dirty:focus,.o_button_dirty.focus,.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_button_dirty:active,.o_button_dirty.active,.open>.o_button_dirty.dropdown-toggle{background-image:none}.o_button_dirty.disabled,.o_button_dirty.disabled:hover,.o_button_dirty.disabled:focus,.o_button_dirty.disabled.focus,.o_button_dirty.disabled:active,.o_button_dirty.disabled.active,.o_button_dirty[disabled],.o_button_dirty[disabled]:hover,.o_button_dirty[disabled]:focus,.o_button_dirty[disabled].focus,.o_button_dirty[disabled]:active,.o_button_dirty[disabled].active,fieldset[disabled] .o_button_dirty,fieldset[disabled] .o_button_dirty:hover,fieldset[disabled] .o_button_dirty:focus,fieldset[disabled] .o_button_dirty.focus,fieldset[disabled] .o_button_dirty:active,fieldset[disabled] .o_button_dirty.active{background-color:#f0ad4e;border-color:#eea236}.o_button_dirty .badge{color:#f0ad4e;background-color:#fff}.o_button_toggle{border:1px solid #777;border-top-right-radius:9px;border-top-left-radius:9px;border-bottom-right-radius:9px;border-bottom-left-radius:9px;background:#eee;display:inline-block;height:18px;line-height:16px;font-size:16px;text-align:left;padding:0 0.5em 0 0;margin:0}.o_button_toggle i{color:#777;text-shadow:1px 0 2px rgba(0,0,0,0.25)}.o_button_toggle span{line-height:16px;vertical-align:top;font-size:60%;color:#777;text-transform:uppercase}.o_button_toggle.o_on{text-align:right;padding:0 0 0 0.5em}.o_button_toggle.o_on i{color:#3b678a;text-shadow:-1px 0 2px rgba(0,0,0,0.25)}.o_table_wrapper{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.o_table_wrapper.o_table_flexi .o_table_body{margin-top:20px}.o_table_wrapper.o_table_flexi .table{margin-top:20px}.o_table_wrapper.o_table_flexi .table td ul{margin:0}.o_table_wrapper.o_table_edit table tbody{border-top:solid #f90 4px;background-color:#fefbf6}.o_table_wrapper .o_table_search{max-width:50em}.o_table_wrapper .o_table_footer .o_table_pagination{text-align:center}.o_table_wrapper .o_table_rows_infos{float:left;padding-left:0;padding-right:20px;margin:20px 0}.o_table_wrapper .o_row_selected td{background-color:#dff0d8 !important}.o_table_wrapper .o_table{margin-bottom:0}.o_table_wrapper .o_marked{font-weight:bold}.o_table_wrapper .table{margin-bottom:0}.o_table_wrapper th{color:#333}@media (max-width: 767px){.o_table_wrapper .o_table_rows_infos{clear:both}}a.o_orderby,a.o_orderby:hover{color:#333;text-decoration:none}a.o_orderby.o_orderby_asc,a.o_orderby.o_orderby_desc,a.o_orderby:hover.o_orderby_asc,a.o_orderby:hover.o_orderby_desc{border-bottom:1px solid #ddd}.o_table_row_count{padding-top:6px;padding-bottom:6px;vertical-align:middle}.o_table_row_details td{background-color:white !important}.o_table_config{font-size:12px}.o_table_buttons{text-align:center}.o_table_buttons input{margin-right:1em}.o_table_buttons input:last-child{margin-right:0}.o_table_tools{margin-left:6px}.o_table_tools_indications{margin-left:10px;padding-top:3px;font-size:66%}.o_table_count{max-width:20em;float:left;padding:0 15px}.o_info .table-bordered td,o_note .table-bordered td,o_important .table-bordered td,o_warning .table-bordered td,o_error .table-bordered td{border-color:#333}.panel .o_table_layout{border-top:1px solid #ddd;padding-top:6px}.panel .o_table_count{padding:0 15px}#o_navbar_imclient .o_im_messages{float:left}#o_navbar_imclient #o_im_message,#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_summary{float:left;position:relative;padding:15px 3px}#o_navbar_imclient #o_im_status,#o_navbar_imclient #o_im_message{padding-left:15px}#o_navbar_imclient #o_im_summary .badge{color:#fff;background-color:#777}#o_navbar_imclient #o_im_status li>a>span{display:inline}#o_navbar_imclient #o_im_status div.o_chelp_wrapper{right:0.5em}#o_navbar_imclient #o_im_message a:hover,#o_navbar_imclient #o_im_message a:focus{text-decoration:none}#o_navbar_imclient #o_im_message .o_icon_message{color:#d9534f}#o_navbar_imclient #o_im_message .o_icon_message:hover{color:#f4c37d}.o_im_load_history{margin-bottom:6px}.o_im_load_history .o_label{font-size:12px;padding-right:0.5em;line-height:1.5em;color:#777}.o_im_chat_history{height:170px;font-size:90%;border:1px solid #eee;margin:0 0 1em 0;overflow:scroll;overflow-x:auto}.o_im_message_group{padding:3px 3px 3px 40px;min-height:40px;position:relative;border-top:1px solid #eee;background:#fff}.o_im_message_group.o_odd{background:#f4f4f4}.o_im_message_group .o_portrait{position:absolute;top:3px;left:3px}.o_im_message_group .o_im_from{color:#777;font-size:12px;font-weight:bold}.o_im_message_group .o_im_from:hover{color:#5e5e5e}.o_im_message_group div.o_im_body{padding:3px 0 3px 0;font-size:12px}.o_im_message_group div.o_im_body .o_date{float:right;color:#777;font-size:9px}.o_groupchat_roster{font-size:12px}.o_groupchat_roster li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.o_groupchat_roster li.o_vip{color:#3c763d}.o_groupchat_roster li.o_anonymous{color:#31708f}.o_im_buddieslist .o_im_buddieslist_toggler .btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_im_buddieslist ul{font-size:12px}.o_im_buddieslist ul ul{padding-left:1em}.o_im_buddieslist ul a{color:#3b678a}.o_im_buddieslist ul a:hover{color:#243f54}.o_flag{position:relative;top:1px;display:inline-block;line-height:1;width:16px;height:16px;background-repeat:no-repeat;background-position:0 100%}option.o_with_flag{padding-left:23px;min-height:16px;background-repeat:no-repeat;background-position:2px 50%}.o_flag_en{background-image:url("../light/images/flags/gb.png")}.o_flag_de{background-image:url("../light/images/flags/de.png")}.o_flag_fr{background-image:url("../light/images/flags/fr.png")}.o_flag_it{background-image:url("../light/images/flags/it.png")}.o_flag_es{background-image:url("../light/images/flags/es.png")}.o_flag_da{background-image:url("../light/images/flags/dk.png")}.o_flag_cs{background-image:url("../light/images/flags/cz.png")}.o_flag_el{background-image:url("../light/images/flags/gr.png")}.o_flag_ee{background-image:url("../light/images/flags/ee.png")}.o_flag_ru{background-image:url("../light/images/flags/ru.png")}.o_flag_pl{background-image:url("../light/images/flags/pl.png")}.o_flag_zh_CN{background-image:url("../light/images/flags/cn.png")}.o_flag_zh_TW{background-image:url("../light/images/flags/tw.png")}.o_flag_lt{background-image:url("../light/images/flags/lt.png")}.o_flag_fa{background-image:url("../light/images/flags/ir.png")}.o_flag_pt_PT{background-image:url("../light/images/flags/pt.png")}.o_flag_pt_BR{background-image:url("../light/images/flags/br.png")}.o_flag_tr{background-image:url("../light/images/flags/tr.png")}.o_flag_hu{background-image:url("../light/images/flags/hu.png")}.o_flag_sq{background-image:url("../light/images/flags/al.png")}.o_flag_in{background-image:url("../light/images/flags/id.png")}.o_flag_ar{background-image:url("../light/images/flags/eg.png")}.o_flag_rm{background-image:url("../light/images/flags/rm.png")}.o_flag_af{background-image:url("../light/images/flags/za.png")}.o_flag_vi{background-image:url("../light/images/flags/vn.png")}.o_flag_mn{background-image:url("../light/images/flags/mn.png")}.o_flag_iw{background-image:url("../light/images/flags/il.png")}.o_flag_ko{background-image:url("../light/images/flags/kr.png")}.o_flag_nl_NL{background-image:url("../light/images/flags/nl.png")}.o_flag_jp{background-image:url("../light/images/flags/jp.png")}.o_flag_nb_NO{background-image:url("../light/images/flags/no.png")}.o_flag_et_EE{background-image:url("../light/images/flags/ee.png")}.o_flag_bg{background-image:url("../light/images/flags/bg.png")}.o_flag_hi_IN_ASIA{background-image:url("../light/images/flags/in.png")}.o_flag_ar_LB{background-image:url("../light/images/flags/lb.png")}.o_flag_gl_ES{background-image:url("../light/images/flags/galicia.png")}.o_flag_sk{background-image:url("../light/images/flags/sk.png")}.o_rating .o_rating_title{font-size:12px}.o_rating .o_rating_items{white-space:nowrap}.o_rating .o_rating_items .o_icon{color:#f0ad4e}.o_rating .o_rating_items .o_icon:hover{color:#3b678a}.o_rating .o_rating_items .o_legend{margin-left:1em;font-size:12px;line-height:1em}.o_rating .o_rating_explanation{font-size:12px;color:#777}@media (max-width: 991px){.o_rating .o_rating_title,.o_rating .o_rating_explanation{display:none}}
-.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#598eb8}.d3chart .bar_default{fill:#3b678a}.d3chart .bar_default_dark{fill:#243f54}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#5cb85c;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}
+.o_comments .o_comment_wrapper .o_avatar{float:left;margin:0 1em 0 0}.o_comments .o_comment_wrapper .o_reply,.o_comments .o_comment_wrapper .o_delete{float:right}.o_comments .o_comment_wrapper .o_comment_wrapper{margin-left:16px}.o_ratings_and_comments .o_rating_wrapper{vertical-align:middle;display:inline-block}.o_ratings_and_comments a.o_comments{margin-left:10px;position:relative;top:0.1em}.d3chart .bar{shape-rendering:crispEdges}.d3chart .bar_default_light{fill:#598eb8}.d3chart .bar_default{fill:#3b678a}.d3chart .bar_default_dark{fill:#243f54}.d3chart .axis{font:12px sans-serif}.d3chart .axis path,.d3chart .axis line{fill:none;stroke:#000;shape-rendering:crispEdges}.o_forum_peekview .o_quote_wrapper,.o_forum_peekview .b_quote_wrapper{display:none}.o_forum_thread_sticky{font-weight:bold}.o_forum_switch{font-size:12px}.o_forum_toolbar{margin-bottom:6px;float:left}.o_forum_fulltextsearch{float:right}@media (max-width: 767px){.o_forum_fulltextsearch{float:left}}.o_forum .o_mark,.o_forum .o_ep_collect{float:right;position:relative;width:2em;margin-left:12px}.o_forum .o_portrait{float:left;margin-right:16px}.o_forum .o_portrait_avatar{width:70px;height:70px}.o_forum .o_newindicator{font-size:10px;color:#5cb85c;text-transform:uppercase;padding-left:1em;vertical-align:text-top;white-space:nowrap}.o_forum .o_author,.o_forum .o_date{display:inline-block;color:#777}.o_forum .o_date{font-size:12px}.o_forum .o_modified{color:#8a6d3b;font-size:12px;font-style:italic}.o_forum .o_forum_message{margin-bottom:20px;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_forum .o_forum_message_new{-webkit-box-shadow:0 1px 10px rgba(92,184,92,0.3);box-shadow:0 1px 10px rgba(92,184,92,0.3)}.o_forum .o_forum_message_highlight{-webkit-box-shadow:0 1px 10px rgba(240,173,78,0.5);box-shadow:0 1px 10px rgba(240,173,78,0.5)}.o_forum .o_forum_message_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:3px;border-top-left-radius:3px}.o_forum .o_forum_message_title{margin-top:0}.o_forum .o_forum_message_body{padding:10px 15px}.o_forum .o_forum_message_attachments{border-top:1px solid #ddd;padding:10px 15px;font-size:12px;background-color:#f7f7f9}.o_forum .o_attachment{position:relative;max-width:250px;vertical-align:top;margin:6px 12px 10px 0}.o_forum .o_attachment img{margin-top:6px}.o_forum .o_filename{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_forum .o_icon_enlarge{position:absolute;left:1em;bottom:1em;text-shadow:1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff}@media (min-width: 768px) and (max-width: 991px){.o_forum .o_attachments{font-size:10px}.o_forum .o_attachment{max-width:200px}.o_forum .o_attachment img{max-width:150px}.o_forum .o_filename{max-width:200px}}@media (max-width: 767px){.o_forum .o_attachments{font-size:9px}.o_forum .o_attachment{max-width:150px}.o_forum .o_attachment img{max-width:100px}.o_forum .o_filename{max-width:150px}}
 .o_quote_wrapper,.b_quote_wrapper{position:relative;margin:10px 0}.o_quote_author,.b_quote_author{color:#777;font-size:12px}.o_quote_author:before,.b_quote_author:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f10e";font-size:21px;padding-right:0.5em}blockquote.o_quote,blockquote.b_quote{color:#555;font-size:12px;margin-top:6px;padding:0 12px}a.o_chelp{display:inline-block;padding:1px 3px;text-align:center;vertical-align:middle;white-space:nowrap;font-size:10px;font-weight:normal;line-height:15px;color:#fff;background-color:#3b678a;border:1px solid #335a78;border-radius:2px;cursor:help;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}a.o_chelp:active,a.o_chelp:hover,a.o_chelp:focus{text-decoration:none;color:#fff;background-color:#2f526d;border-color:#213a4d}a.o_chelp i{font-size:10px !important}.o_chelp_wrapper{position:relative;float:right;display:inline-block;line-height:1em}.o_iframedisplay iframe{width:100%}.o_singlepage .o_edit{position:absolute;top:10px;right:37px}.o_content_popup{position:absolute;top:10px;right:12px}.o_module_cp_wrapper .o_tools{position:absolute;top:10px;right:12px;text-align:right;vertical-align:middle}.o_module_cp_wrapper .o_tools .o_search_wrapper{display:inline-block;position:relative;top:-2px}ul.o_dropdown{margin:-5px -14px}ul.o_dropdown .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}ul.o_dropdown>li>a{display:block;padding:5px 14px;clear:both;font-weight:normal;line-height:1.42857;color:#333;background:#fff;white-space:nowrap}ul.o_dropdown>li>a:hover,ul.o_dropdown>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.badge.o_scorm_completed{background-color:#3c763d}.badge.o_scorm_failed{background-color:#a94442}.badge.o_scorm_incomplete{background-color:#8a6d3b}.badge.o_scorm_not_attempted{background:none}.o_bc_meta h5,.o_bc_meta .o_author,.o_bc_meta .o_comment,.tooltip h5,.tooltip .o_author,.tooltip .o_comment{color:#fff;margin:5px 0}.o_bc_meta .o_thumbnail,.tooltip .o_thumbnail{width:200px;height:200px;background-color:#fff;margin:0 -5px}.o_htmleditor .o_metadata{border:1px solid #999;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom:0;background:#eee;position:relative;top:1px;padding:5px}.o_htmleditor .o_metadata #o_filename{float:left}.o_htmleditor .o_metadata .o_lastmodified{float:right;color:#777;line-height:1.42857}.o_htmleditor #o_save{margin-top:10px;text-align:center}.o_htmleditor #o_save input{margin-right:1em}.o_htmleditor #o_save input:last-child{margin-right:0}.o_notifications_news_wrapper .o_notifications_news_subscription{margin:10px 0}.o_notifications_news_wrapper .o_notifications_news_subscription h4 i,.o_notifications_news_wrapper .o_notifications_news_subscription .o_cal .fc-header-title h2 i,.o_cal .fc-header-title .o_notifications_news_wrapper .o_notifications_news_subscription h2 i{display:none}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_context{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content{margin-left:1.5em;position:relative}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_icon{position:absolute;left:-1.5em;line-height:1.5em;top:0}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_content .o_date{color:#777}.o_notifications_news_wrapper .o_notifications_news_subscription .o_notifications_news_url{margin-left:1.5em}.o_noti{margin:6px 0 6px 12px;float:right;color:#777}.o_noti .o_label{color:#777;cursor:help}@media (max-width: 767px){.o_noti .o_label span{display:none}}
-.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#3b678a;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#333}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription form{margin-top:6px}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_segments_content{margin-top:20px}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}.tt-input{width:400px}.tt-dropdown-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fff;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.42857}.tt-suggestion.tt-cursor{color:#fff;background-color:#3b678a}.tt-suggestion p{margin:0}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_highlight{font-weight:bold}.o_search_result_context{color:#3c763d}.o_search_result_excerpt{color:#555}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}@media (max-width: 767px){.o_search_result_details{display:none}}
+.panel-body .o_noti{margin:0}.o_portrait{display:inline-block}.o_portrait img{border-radius:50%;border:none;background-color:#eee;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.o_portrait_name{margin-top:6px}.o_portrait_avatar,.o_portrait_dummy,.o_portrait_dummy_female_big,.o_portrait_dummy_male_big,.o_portrait_anonymous{width:100px;height:100px}.o_portrait_dummy{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_dummy_female_big{background-image:url("../light/images/portrait/dummy_female_big.png")}.o_portrait_dummy_male_big{background-image:url("../light/images/portrait/dummy_male_big.png")}.o_portrait_anonymous{background-image:url("../light/images/portrait/dummy.png")}.o_portrait_avatar_small,.o_portrait_dummy_small,.o_portrait_dummy_female_small,.o_portrait_dummy_male_small,.o_portrait_anonymous_small{width:30px;height:30px}.o_portrait_dummy_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_portrait_dummy_female_small{background-image:url("../light/images/portrait/dummy_female_small.png")}.o_portrait_dummy_male_small{background-image:url("../light/images/portrait/dummy_male_small.png")}.o_portrait_anonymous_small{background-image:url("../light/images/portrait/dummy_small.png")}.o_datecomp{position:relative;width:40px;height:52px;border:1px solid #555;margin-right:12px;text-align:center;vertical-align:middle}.o_datecomp div.o_year{position:absolute;left:0;width:100%;top:-20px;height:20px;line-height:20px;font-size:10px}.o_datecomp div.o_month{height:20px;line-height:20px;font-size:12px;background-color:#3b678a;color:#fff}.o_datecomp div.o_day{height:30px;line-height:30px;font-size:18px;border-top:1px solid #555;background-color:#fff;color:#333}.o_block_with_datecomp .o_head{position:relative;padding-left:52px}.o_block_with_datecomp .o_datecomp{position:absolute;top:0.2em;left:0}.o_block_with_datecomp .o_title{margin-top:0}.o_block_with_datecomp .o_meta{color:#777}.o_block_with_datecomp .o_content{border-left:5px solid #eee;padding:0 20px}.o_block_with_datecomp .o_block_footer{padding-left:25px}ul.o_certificates li{padding:5px 0}ul.o_certificates li a.o_sel_certificate_delete{padding-left:2em}.o_cal_toptoolbar{margin-bottom:6px}.o_cal_toptoolbar .o_cal_toptoolbar_sub,.o_cal_toptoolbar .o_cal_toptoolbar_help{float:left;margin-right:12px}.o_feed .o_date,.o_feed .o_author{color:#777}.o_feed .o_subscription a{margin-right:1.5em}.o_feed .o_subscription form{margin-top:6px}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper{float:left}.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_title,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_rating_explanation,.o_feed .o_blog_posts .o_ratings_and_comments .o_rating_wrapper .o_legend{display:none}.o_feed .o_blog_posts .o_ratings_and_comments a.o_comments span{display:none}.o_feed .o_content:before,.o_feed .o_content:after{content:" ";display:table}.o_feed .o_content:after{clear:both}.o_glossary .o_register{text-align:center}.o_glossary .o_meta{font-size:90%;color:#777;font-style:italic}.o_glossary dl dt:first-letter{font-size:21px}.o_glossary dl dt small{color:#777}.o_tm_glossary{border-bottom:1px dotted #666699 !important}.o_tm_yellow{background-color:#FFFF66}.o_tm_blue{background-color:#33FFFF}.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_segments_content{margin-top:20px}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}.tt-input{width:400px}.tt-dropdown-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fff;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.42857}.tt-suggestion.tt-cursor{color:#fff;background-color:#3b678a}.tt-suggestion p{margin:0}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_highlight{font-weight:bold}.o_search_result_context{color:#3c763d}.o_search_result_excerpt{color:#555}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}@media (max-width: 767px){.o_search_result_details{display:none}}
 .wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#333;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#333}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#fff !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#fff !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#fff !important}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#fff !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#fff !important}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_colorchooser_selected:before{content:"\f00c"}#o_cal_colorchooser div{border:1px solid #3b678a;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.fc-button{color:#333;background-color:#fff;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fff;border-color:#ccc}.fc-button .badge{color:#fff;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#3b678a;border-color:#335a78}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#2c4c66;border-color:#213a4d}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#3b678a;border-color:#335a78}.fc-button.fc-state-active .badge{color:#3b678a;background-color:#fff}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #3b678a;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #3b678a}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #3b678a;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#3b678a;border-color:#335a78}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#2c4c66;border-color:#213a4d}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#3b678a;border-color:#335a78}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#3b678a;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#3b678a}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#2c4c66}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#3b678a}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #3b678a;border-bottom:1px solid #3b678a}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#3b678a}.o_catalog .o_level .o_meta .o_title a:hover{color:#2c4c66}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #3b678a;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #3b678a;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #3b678a;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #3b678a;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#3b678a;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#2c4c66}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}
 .o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start,.o_repo_details .o_book{margin:2em 0}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}
-.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#3b678a}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#3b678a}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#3b678a}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #3b678a !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #335a78;background:#3b678a;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-default.active,.btn-primary:active,.btn-primary.active,.btn-success:active,.btn-success.active,.btn-info:active,.btn-info.active,.btn-warning:active,.btn-warning.active,.btn-danger:active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:-o-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE0E0E0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #29475f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF29475F', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#264258}.btn-primary:hover,.btn-primary:focus{background-color:#29475f;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#29475f;border-color:#264258}.btn-primary:disabled,.btn-primary[disabled]{background-color:#29475f;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #419641 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF2AABD2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC12E2A', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0);background-color:#335a78}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDBDBDB', endColorstr='#FFE2E2E2', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:-o-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:linear-gradient(to bottom, #3c3c3c 0%, #222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3C3C3C', endColorstr='#FF222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:-o-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:linear-gradient(to bottom, #090909 0%, #0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF090909', endColorstr='#FF0F0F0F', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width: 767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFC8E5BC', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFB9DEF0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFF8EFC0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFE7C3C3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF5F5F5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #2c4c66 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF2C4C66', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF449D44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF31B0D5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEC971F', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC9302C', GradientType=0)}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #2c4c66;background-image:-webkit-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #30536f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF30536F', GradientType=0);border-color:#30536f}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFD0E9C6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFC4E3F3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFFAF2CC', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFEBCCCC', GradientType=0)}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFE8E8E8', endColorstr='#FFF5F5F5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}.o_button_dirty{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.o_button_dirty:active,.o_button_dirty.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.o_button_dirty:hover,.o_button_dirty:focus{background-color:#eb9316;background-position:0 -15px}.o_button_dirty:active,.o_button_dirty.active{background-color:#eb9316;border-color:#e38d13}.o_button_dirty:disabled,.o_button_dirty[disabled]{background-color:#eb9316;background-image:none}.btn-default.btn-success,.btn-default.btn-info,.btn-default.btn-warning,.btn-default.btn-danger,.btn-default.btn-primary,.btn-default.o_button_dirty{text-shadow:none}.o_navbar.o_navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF3F3F3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a.o_navbar_tab_close{background:none;-webkit-box-shadow:none;box-shadow:none}.o_navbar-brand,.o_navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.o_navbar-offcanvas .dropdown-menu>li>a:hover,.o_navbar-offcanvas .dropdown-menu>li>a:focus{background-image:none}.o_toolbar{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_toolbar .o_breadcrumb .breadcrumb{background-image:-webkit-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #fff 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF5F5F5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tools_container{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{background-image:-webkit-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #fff 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE2E2E2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next :hover,.o_toolbar .o_tool_previous :hover{background-color:#e2e2e2}.o_tree{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_navbar-brand{padding:15px 15px;font-size:28px;color:#3b678a !important}.o_navbar-brand:after{content:"\E600";font-family:openolat}
+.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#3b678a}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#2c4c66;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#3b678a}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#3b678a}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#3b678a}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #3b678a !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #335a78;background:#3b678a;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-default.active,.btn-primary:active,.btn-primary.active,.btn-success:active,.btn-success.active,.btn-info:active,.btn-info.active,.btn-warning:active,.btn-warning.active,.btn-danger:active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:-o-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE0E0E0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #29475f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF29475F', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#264258}.btn-primary:hover,.btn-primary:focus{background-color:#29475f;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#29475f;border-color:#264258}.btn-primary:disabled,.btn-primary[disabled]{background-color:#29475f;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #419641 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF2AABD2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC12E2A', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0);background-color:#335a78}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDBDBDB', endColorstr='#FFE2E2E2', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:-o-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:linear-gradient(to bottom, #3c3c3c 0%, #222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3C3C3C', endColorstr='#FF222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:-o-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:linear-gradient(to bottom, #090909 0%, #0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF090909', endColorstr='#FF0F0F0F', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width: 767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFC8E5BC', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFB9DEF0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFF8EFC0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFE7C3C3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF5F5F5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #2c4c66 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF2C4C66', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF449D44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF31B0D5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEC971F', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC9302C', GradientType=0)}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #2c4c66;background-image:-webkit-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #30536f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF30536F', GradientType=0);border-color:#30536f}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFD0E9C6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFC4E3F3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFFAF2CC', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFEBCCCC', GradientType=0)}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFE8E8E8', endColorstr='#FFF5F5F5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}.o_button_dirty{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.o_button_dirty:active,.o_button_dirty.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.o_button_dirty:hover,.o_button_dirty:focus{background-color:#eb9316;background-position:0 -15px}.o_button_dirty:active,.o_button_dirty.active{background-color:#eb9316;border-color:#e38d13}.o_button_dirty:disabled,.o_button_dirty[disabled]{background-color:#eb9316;background-image:none}.btn-default.btn-success,.btn-default.btn-info,.btn-default.btn-warning,.btn-default.btn-danger,.btn-default.btn-primary,.btn-default.o_button_dirty{text-shadow:none}.o_navbar.o_navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF3F3F3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a.o_navbar_tab_close{background:none;-webkit-box-shadow:none;box-shadow:none}.o_navbar-brand,.o_navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.o_navbar-offcanvas .dropdown-menu>li>a:hover,.o_navbar-offcanvas .dropdown-menu>li>a:focus{background-image:none}.o_toolbar{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_toolbar .o_breadcrumb .breadcrumb{background-image:-webkit-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #fff 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF5F5F5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tools_container{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{background-image:-webkit-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #fff 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE2E2E2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next :hover,.o_toolbar .o_tool_previous :hover{background-color:#e2e2e2}.o_tree{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_navbar-brand{padding:15px 15px;font-size:28px;color:#3b678a !important}.o_navbar-brand:after{content:"\E600";font-family:openolat}
diff --git a/src/main/webapp/static/themes/openolat/theme.css.map b/src/main/webapp/static/themes/openolat/theme.css.map
index 986b2be1f46d0d192b5056f310c88e1202838713..f4b174b67799c65e13750a7ef0143f971b63cc3a 100644
--- a/src/main/webapp/static/themes/openolat/theme.css.map
+++ b/src/main/webapp/static/themes/openolat/theme.css.map
@@ -1,7 +1,7 @@
 {
 "version": 3,
-"mappings": "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",
-"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../light/_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../bootstrap/stylesheets/bootstrap/_code.scss","../../bootstrap/stylesheets/bootstrap/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss","../../bootstrap/stylesheets/bootstrap/_tables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_table-row.scss","../../bootstrap/stylesheets/bootstrap/_forms.scss","../../bootstrap/stylesheets/bootstrap/mixins/_forms.scss","../../bootstrap/stylesheets/bootstrap/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../../bootstrap/stylesheets/bootstrap/_component-animations.scss","../../bootstrap/stylesheets/bootstrap/_dropdowns.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss","../../bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss","../../bootstrap/stylesheets/bootstrap/_button-groups.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../bootstrap/stylesheets/bootstrap/_input-groups.scss","../../bootstrap/stylesheets/bootstrap/_navs.scss","../../bootstrap/stylesheets/bootstrap/_navbar.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../bootstrap/stylesheets/bootstrap/_breadcrumbs.scss","../../bootstrap/stylesheets/bootstrap/_pagination.scss","../../bootstrap/stylesheets/bootstrap/mixins/_pagination.scss","../../bootstrap/stylesheets/bootstrap/_pager.scss","../../bootstrap/stylesheets/bootstrap/_labels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_labels.scss","../../bootstrap/stylesheets/bootstrap/_badges.scss","../../bootstrap/stylesheets/bootstrap/_jumbotron.scss","../../bootstrap/stylesheets/bootstrap/_thumbnails.scss","../../bootstrap/stylesheets/bootstrap/_alerts.scss","../../bootstrap/stylesheets/bootstrap/mixins/_alerts.scss","../../bootstrap/stylesheets/bootstrap/_progress-bars.scss","../../bootstrap/stylesheets/bootstrap/mixins/_gradients.scss","../../bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss","../../bootstrap/stylesheets/bootstrap/_media.scss","../../bootstrap/stylesheets/bootstrap/_list-group.scss","../../bootstrap/stylesheets/bootstrap/mixins/_list-group.scss","../../bootstrap/stylesheets/bootstrap/_panels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_panels.scss","../../bootstrap/stylesheets/bootstrap/_responsive-embed.scss","../../bootstrap/stylesheets/bootstrap/_wells.scss","../../bootstrap/stylesheets/bootstrap/_close.scss","../../bootstrap/stylesheets/bootstrap/_modals.scss","../../bootstrap/stylesheets/bootstrap/_tooltip.scss","../../bootstrap/stylesheets/bootstrap/_popovers.scss","../../bootstrap/stylesheets/bootstrap/_utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_center-block.scss","../../bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss","../../bootstrap/stylesheets/bootstrap/_responsive-utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss","../light/modules/_bootstrap.scss","../light/modules/_fonts.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../../font-awesome/scss/_larger.scss","../../font-awesome/scss/_fixed-width.scss","../../font-awesome/scss/_list.scss","../../font-awesome/scss/_variables.scss","../../font-awesome/scss/_bordered-pulled.scss","../../font-awesome/scss/_spinning.scss","../../font-awesome/scss/_rotated-flipped.scss","../../font-awesome/scss/_mixins.scss","../../font-awesome/scss/_stacked.scss","../light/modules/_icons.scss","../light/modules/_emoticons.scss","../light/modules/_helpers.scss","../light/modules/_type.scss","../light/modules/_layout.scss","../light/modules/_main.scss","../light/modules/_footer.scss","../light/modules/_navbar.scss","../light/modules/_toolbar.scss","../light/modules/_offcanvas.scss","../light/modules/_dialog.scss","../light/modules/_mixins.scss","../light/modules/_tree.scss","../light/modules/_breadcrumb.scss","../light/modules/_form.scss","../light/modules/_table.scss","../light/modules/_im.scss","../light/modules/_flags.scss","../light/modules/_rating_and_comments.scss","../light/modules/_chart.scss","../light/modules/_forum.scss","../light/modules/_various_modules.scss","../light/modules/_autocomplete.scss","../light/modules/_search.scss","../light/modules/_wizard.scss","../light/modules/_cal.scss","../light/modules/_coursesite.scss","../light/modules/_repository.scss","../light/modules/_course.scss","../light/modules/_qti.scss","../light/modules/_devel.scss","../light/modules/_wiki.scss","../light/modules/_portfolio.scss","../light/modules/_portfoliomaps/_epmst_default.scss","../light/modules/_portfoliomaps/_mixins.scss","../light/modules/_portfoliomaps/_epmst_comic.scss","../light/modules/_portfoliomaps/_epmst_leather.scss","../light/modules/_portfoliomaps/_epmst_green.scss","../light/modules/_portfoliomaps/_epmst_green2.scss","../light/modules/_portfoliomaps/_epmst_green3.scss","../light/modules/_portfoliomaps/_epmst_green4.scss","../light/modules/_portfoliomaps/_epmst_red.scss","../light/modules/_portfoliomaps/_epmst_red2.scss","../light/modules/_portfoliomaps/_epmst_red3.scss","../light/modules/_portfoliomaps/_epmst_red4.scss","../light/modules/_portfoliomaps/_epmst_blue.scss","../light/modules/_portfoliomaps/_epmst_blue2.scss","../light/modules/_portfoliomaps/_epmst_blue3.scss","../light/modules/_portfoliomaps/_epmst_blue4.scss","../light/modules/_admin.scss","../light/modules/_dmz.scss","../light/modules/_portal.scss","../light/modules/_library.scss","../light/modules/_translationtool.scss","../light/modules/_user.scss","../light/modules/_members.scss","../light/modules/_thirdparty.scss","../light/modules/_print.scss","../light/_patches.scss","../../bootstrap/stylesheets/bootstrap/_theme.scss","../light/styles/_realistic.scss","_openolat_theme.scss"],
+"mappings": "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",
+"sources": ["../../bootstrap/stylesheets/bootstrap/_normalize.scss","../../bootstrap/stylesheets/bootstrap/_print.scss","../../bootstrap/stylesheets/bootstrap/_scaffolding.scss","../../bootstrap/stylesheets/bootstrap/mixins/_vendor-prefixes.scss","../light/_config.scss","../../bootstrap/stylesheets/bootstrap/_variables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_tab-focus.scss","../../bootstrap/stylesheets/bootstrap/mixins/_image.scss","../../bootstrap/stylesheets/bootstrap/_type.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-emphasis.scss","../../bootstrap/stylesheets/bootstrap/mixins/_background-variant.scss","../../bootstrap/stylesheets/bootstrap/mixins/_clearfix.scss","../../bootstrap/stylesheets/bootstrap/mixins/_text-overflow.scss","../../bootstrap/stylesheets/bootstrap/_code.scss","../../bootstrap/stylesheets/bootstrap/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid.scss","../../bootstrap/stylesheets/bootstrap/mixins/_grid-framework.scss","../../bootstrap/stylesheets/bootstrap/_tables.scss","../../bootstrap/stylesheets/bootstrap/mixins/_table-row.scss","../../bootstrap/stylesheets/bootstrap/_forms.scss","../../bootstrap/stylesheets/bootstrap/mixins/_forms.scss","../../bootstrap/stylesheets/bootstrap/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_buttons.scss","../../bootstrap/stylesheets/bootstrap/mixins/_opacity.scss","../../bootstrap/stylesheets/bootstrap/_component-animations.scss","../../bootstrap/stylesheets/bootstrap/_dropdowns.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-divider.scss","../../bootstrap/stylesheets/bootstrap/mixins/_reset-filter.scss","../../bootstrap/stylesheets/bootstrap/_button-groups.scss","../../bootstrap/stylesheets/bootstrap/mixins/_border-radius.scss","../../bootstrap/stylesheets/bootstrap/_input-groups.scss","../../bootstrap/stylesheets/bootstrap/_navs.scss","../../bootstrap/stylesheets/bootstrap/_navbar.scss","../../bootstrap/stylesheets/bootstrap/mixins/_nav-vertical-align.scss","../../bootstrap/stylesheets/bootstrap/_breadcrumbs.scss","../../bootstrap/stylesheets/bootstrap/_pagination.scss","../../bootstrap/stylesheets/bootstrap/mixins/_pagination.scss","../../bootstrap/stylesheets/bootstrap/_pager.scss","../../bootstrap/stylesheets/bootstrap/_labels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_labels.scss","../../bootstrap/stylesheets/bootstrap/_badges.scss","../../bootstrap/stylesheets/bootstrap/_jumbotron.scss","../../bootstrap/stylesheets/bootstrap/_thumbnails.scss","../../bootstrap/stylesheets/bootstrap/_alerts.scss","../../bootstrap/stylesheets/bootstrap/mixins/_alerts.scss","../../bootstrap/stylesheets/bootstrap/_progress-bars.scss","../../bootstrap/stylesheets/bootstrap/mixins/_gradients.scss","../../bootstrap/stylesheets/bootstrap/mixins/_progress-bar.scss","../../bootstrap/stylesheets/bootstrap/_media.scss","../../bootstrap/stylesheets/bootstrap/_list-group.scss","../../bootstrap/stylesheets/bootstrap/mixins/_list-group.scss","../../bootstrap/stylesheets/bootstrap/_panels.scss","../../bootstrap/stylesheets/bootstrap/mixins/_panels.scss","../../bootstrap/stylesheets/bootstrap/_responsive-embed.scss","../../bootstrap/stylesheets/bootstrap/_wells.scss","../../bootstrap/stylesheets/bootstrap/_close.scss","../../bootstrap/stylesheets/bootstrap/_modals.scss","../../bootstrap/stylesheets/bootstrap/_tooltip.scss","../../bootstrap/stylesheets/bootstrap/_popovers.scss","../../bootstrap/stylesheets/bootstrap/_utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_center-block.scss","../../bootstrap/stylesheets/bootstrap/mixins/_hide-text.scss","../../bootstrap/stylesheets/bootstrap/_responsive-utilities.scss","../../bootstrap/stylesheets/bootstrap/mixins/_responsive-visibility.scss","../light/modules/_bootstrap.scss","../light/modules/_fonts.scss","../../font-awesome/scss/_path.scss","../../font-awesome/scss/_core.scss","../../font-awesome/scss/_larger.scss","../../font-awesome/scss/_fixed-width.scss","../../font-awesome/scss/_list.scss","../../font-awesome/scss/_variables.scss","../../font-awesome/scss/_bordered-pulled.scss","../../font-awesome/scss/_spinning.scss","../../font-awesome/scss/_rotated-flipped.scss","../../font-awesome/scss/_mixins.scss","../../font-awesome/scss/_stacked.scss","../light/modules/_icons.scss","../light/modules/_emoticons.scss","../light/modules/_helpers.scss","../light/modules/_type.scss","../light/modules/_content_embedded.scss","../light/modules/_mixins.scss","../light/modules/_layout.scss","../light/modules/_main.scss","../light/modules/_footer.scss","../light/modules/_navbar.scss","../light/modules/_toolbar.scss","../light/modules/_offcanvas.scss","../light/modules/_dialog.scss","../light/modules/_tree.scss","../light/modules/_breadcrumb.scss","../light/modules/_form.scss","../light/modules/_table.scss","../light/modules/_im.scss","../light/modules/_flags.scss","../light/modules/_rating_and_comments.scss","../light/modules/_chart.scss","../light/modules/_forum.scss","../light/modules/_various_modules.scss","../light/modules/_autocomplete.scss","../light/modules/_search.scss","../light/modules/_wizard.scss","../light/modules/_cal.scss","../light/modules/_coursesite.scss","../light/modules/_repository.scss","../light/modules/_course.scss","../light/modules/_qti.scss","../light/modules/_devel.scss","../light/modules/_wiki.scss","../light/modules/_portfolio.scss","../light/modules/_portfoliomaps/_epmst_default.scss","../light/modules/_portfoliomaps/_mixins.scss","../light/modules/_portfoliomaps/_epmst_comic.scss","../light/modules/_portfoliomaps/_epmst_leather.scss","../light/modules/_portfoliomaps/_epmst_green.scss","../light/modules/_portfoliomaps/_epmst_green2.scss","../light/modules/_portfoliomaps/_epmst_green3.scss","../light/modules/_portfoliomaps/_epmst_green4.scss","../light/modules/_portfoliomaps/_epmst_red.scss","../light/modules/_portfoliomaps/_epmst_red2.scss","../light/modules/_portfoliomaps/_epmst_red3.scss","../light/modules/_portfoliomaps/_epmst_red4.scss","../light/modules/_portfoliomaps/_epmst_blue.scss","../light/modules/_portfoliomaps/_epmst_blue2.scss","../light/modules/_portfoliomaps/_epmst_blue3.scss","../light/modules/_portfoliomaps/_epmst_blue4.scss","../light/modules/_admin.scss","../light/modules/_dmz.scss","../light/modules/_portal.scss","../light/modules/_library.scss","../light/modules/_translationtool.scss","../light/modules/_user.scss","../light/modules/_members.scss","../light/modules/_thirdparty.scss","../light/modules/_print.scss","../light/_patches.scss","../../bootstrap/stylesheets/bootstrap/_theme.scss","../light/styles/_realistic.scss","_openolat_theme.scss"],
 "names": [],
 "file": "theme.css"
 }
\ No newline at end of file
diff --git a/src/main/webapp/static/themes/openolat/theme_ie_completions.css b/src/main/webapp/static/themes/openolat/theme_ie_completions.css
index 8891982ab28566d12d6b57e9e60e2236353685d6..fcdea0c42eb581f38629c32a5567dbcaceb591ed 100644
--- a/src/main/webapp/static/themes/openolat/theme_ie_completions.css
+++ b/src/main/webapp/static/themes/openolat/theme_ie_completions.css
@@ -1,3 +1,4 @@
-.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#3b678a;border-color:#335a78}.fc-button.fc-state-active .badge{color:#3b678a;background-color:#fff}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #3b678a;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #3b678a}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #3b678a;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#3b678a;border-color:#335a78}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#2c4c66;border-color:#213a4d}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#3b678a;border-color:#335a78}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#3b678a;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#3b678a}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#2c4c66}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#3b678a}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #3b678a;border-bottom:1px solid #3b678a}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#3b678a}.o_catalog .o_level .o_meta .o_title a:hover{color:#2c4c66}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #3b678a;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #3b678a;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #3b678a;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #3b678a;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#3b678a;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#2c4c66}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}
+.o_tm_red{background-color:#FF3333}.o_tm_green{background-color:#99FF00}.o_segments_content{margin-top:20px}.o_tabbed_pane .o_tabbed_pane_content{padding:20px 0 6px 0}.o_togglebox_wrapper .o_opener{position:relative;left:-0.5em}.o_togglebox_wrapper div.o_togglebox_content{position:relative;margin:0}.o_togglebox_wrapper div.o_togglebox_content .o_hide{position:absolute;bottom:0.5em;right:1em}.o_toolboxes ul{margin:0 0 1.5em 0;padding:0 0 0 1.5em}.o_qrcode{width:256px;height:256px}#o_ajax_busy{position:absolute;left:50%;top:20em;margin-left:-2.5em;height:5em;width:5em;color:#fff;z-index:1201;display:none}#o_body.o_ajax_busy{cursor:busy}.o_exception .o_visual{position:relative;background-image:url("../light/images/lion-500x333.jpg");filter:grayscale(50%);-webkit-filter:grayscale(50%);-moz-filter:grayscale(50%);-ms-filter:grayscale(50%);-o-filter:grayscale(50%);width:500px;height:333px;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;margin:0 0 10px 16px}@media (min-width: 768px) and (max-width: 991px){.o_exception .o_visual{width:375px;height:249px}}@media (min-width: 500px) and (max-width: 767px){.o_exception .o_visual{width:250px;height:166px}}@media (max-width: 500px){.o_exception .o_visual{background-size:cover}}.o_exception .jumbotron h1,.o_exception .o_repo_details .o_lead h1,.o_repo_details .o_exception .o_lead h1{color:#d9534f}.tt-input{width:400px}.tt-dropdown-menu{width:400px;margin-top:6px;padding:0 0 0;color:#555;background-color:#fff;border:1px solid #66afe9;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;-webkit-box-shadow:0 0 8px rgba(102,175,233,0.6);box-shadow:0 0 8px rgba(102,175,233,0.6)}.tt-suggestion{padding:6px 12px;font-size:14px;line-height:1.42857}.tt-suggestion.tt-cursor{color:#fff;background-color:#3b678a}.tt-suggestion p{margin:0}.o_search_link_extended,.o_search_link_simple{margin-top:12px;display:inline-block}.o_search_results_stats{color:#777;padding-left:1.5em}.o_search_highlight{margin-left:12px;font-size:12px}.o_search_result_title h4,.o_search_result_title .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_search_result_title h2{display:inline-block;margin-right:12px;margin-bottom:6px}.o_search_result_highlight{font-weight:bold}.o_search_result_context{color:#3c763d}.o_search_result_excerpt{color:#555}.o_search_result_details .o_togglebox_wrapper.o_block{margin-top:0;margin-bottom:0}.o_search_result_details .o_togglebox_wrapper .o_togglebox_content{color:#777;font-size:12px;background:#fff;padding:6px 12px}@media (max-width: 767px){.o_search_result_details{display:none}}
+.wizard{border:1px solid #d4d4d4;border-radius:2px;background-color:#f9f9f9;position:relative;overflow:hidden;margin-bottom:15px}.wizard ul{list-style:none outside none;padding:0;margin:0;width:4000px}.wizard ul li{float:left;margin:0;padding:0 20px 0 30px;height:46px;line-height:46px;position:relative;background:#ededed;color:#333;font-size:16px;cursor:default}.wizard ul li .chevron{border:24px solid transparent;border-left:14px solid #d4d4d4;border-right:0;display:block;position:absolute;right:-14px;top:0;z-index:1}.wizard ul li .chevron:before{border:24px solid transparent;border-left:14px solid #ededed;border-right:0;content:"";display:block;position:absolute;right:1px;top:-24px}.wizard ul li.active{background:#f1f6fc;color:#333}.wizard ul li.active .chevron:before{border-left:14px solid #f1f6fc}.wizard ul li .badge{margin-right:8px}.wizard ul li:first-child{border-radius:4px 0 0 4px;padding-left:20px}.o_cal_orange{background:#ffc266;border-color:#ff9900;color:#5D5D5D}.o_cal_orange .o_cal_wv_event_header{background:#ff9900}.o_cal_orange a{color:#5d5d5d !important}.o_cal_green{background:#66c266;border-color:#009900;color:#FFF}.o_cal_green .o_cal_wv_event_header{background:#009900}.o_cal_green a{color:#fff !important}.o_cal_blue{background:#4d6e9f;border-color:#2e5894;color:#FFF}.o_cal_blue .o_cal_wv_event_header{background:#2e5894}.o_cal_blue a{color:#fff !important}.o_cal_yellow{background:#ffe066;border-color:#ffcc00;color:#5D5D5D}.o_cal_yellow .o_cal_wv_event_header{background:#ffcc00}.o_cal_yellow a{color:#5d5d5d !important}.o_cal_red{background:#c26666;border-color:#990000;color:#FFF}.o_cal_red .o_cal_wv_event_header{background:#990000}.o_cal_red a{color:#fff !important}.o_cal_rebeccapurple{background:#663399;border-color:#663399;color:#FFF}.o_cal_rebeccapurple .o_cal_wv_event_header{background:#663399}.o_cal_rebeccapurple a{color:#fff !important}.o_cal_grey{background:#DDDAAA;border-color:#5D5D5D;color:#FFF}.o_cal_grey .o_cal_wv_event_header{background:#5D5D5D}.o_cal_grey a{color:#fff !important}.o_cal_config_enabled,.o_cal_config_disabled{position:relative;float:left;display:inline}.o_cal_config_calendar{margin:0 5px;padding:1px 6px 1px 4px;position:relative;width:200px;overflow:hidden;float:left;display:inline}.o_cal_colorchooser_selected:before{content:"\f00c"}#o_cal_colorchooser div{border:1px solid #3b678a;margin:5px;display:inline-block}#o_cal_colorchooser div:hover{border:1px solid #333}#o_cal_colorchooser a{width:20px;height:20px;display:inline-block}.fc-button{color:#333;background-color:#fff;border-color:#ccc}.fc-button:hover,.fc-button:focus,.fc-button.focus,.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.fc-button:active,.fc-button.active,.open>.fc-button.dropdown-toggle{background-image:none}.fc-button.disabled,.fc-button.disabled:hover,.fc-button.disabled:focus,.fc-button.disabled.focus,.fc-button.disabled:active,.fc-button.disabled.active,.fc-button[disabled],.fc-button[disabled]:hover,.fc-button[disabled]:focus,.fc-button[disabled].focus,.fc-button[disabled]:active,.fc-button[disabled].active,fieldset[disabled] .fc-button,fieldset[disabled] .fc-button:hover,fieldset[disabled] .fc-button:focus,fieldset[disabled] .fc-button.focus,fieldset[disabled] .fc-button:active,fieldset[disabled] .fc-button.active{background-color:#fff;border-color:#ccc}.fc-button .badge{color:#fff;background-color:#333}.fc-button.fc-state-default{text-shadow:none}.fc-button.fc-state-active{color:#fff;background-color:#3b678a;border-color:#335a78}.fc-button.fc-state-active:hover,.fc-button.fc-state-active:focus,.fc-button.fc-state-active.focus,.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{color:#fff;background-color:#2c4c66;border-color:#213a4d}.fc-button.fc-state-active:active,.fc-button.fc-state-active.active,.open>.fc-button.fc-state-active.dropdown-toggle{background-image:none}.fc-button.fc-state-active.disabled,.fc-button.fc-state-active.disabled:hover,.fc-button.fc-state-active.disabled:focus,.fc-button.fc-state-active.disabled.focus,.fc-button.fc-state-active.disabled:active,.fc-button.fc-state-active.disabled.active,.fc-button.fc-state-active[disabled],.fc-button.fc-state-active[disabled]:hover,.fc-button.fc-state-active[disabled]:focus,.fc-button.fc-state-active[disabled].focus,.fc-button.fc-state-active[disabled]:active,.fc-button.fc-state-active[disabled].active,fieldset[disabled] .fc-button.fc-state-active,fieldset[disabled] .fc-button.fc-state-active:hover,fieldset[disabled] .fc-button.fc-state-active:focus,fieldset[disabled] .fc-button.fc-state-active.focus,fieldset[disabled] .fc-button.fc-state-active:active,fieldset[disabled] .fc-button.fc-state-active.active{background-color:#3b678a;border-color:#335a78}.fc-button.fc-state-active .badge{color:#3b678a;background-color:#fff}.o_visual{position:absolute;top:0;left:0;overflow:hidden;height:120px;width:180px;vertical-align:middle}@media (min-width: 768px) and (max-width: 991px){.o_visual{height:80px;width:120px}}@media (max-width: 767px){.o_visual{height:50px;width:75px}}.o_visual img{width:100%;height:auto}.o_visual .o_visual_not_available{width:100%;height:100%;background-image:url("../light/images/no_preview.png");background-repeat:no-repeat;background-position:50% 50%;background-size:contain}.o_coursetable.o_rendertype_custom .o_table_row{position:relative;border:1px solid #3b678a;margin-bottom:10px}.o_coursetable.o_rendertype_custom .o_table_row .o_visual{border-right:1px solid #3b678a}.o_coursetable.o_rendertype_custom .o_table_row .o_access{position:absolute;top:0;right:0;height:120px;width:180px;overflow:hidden;border-left:1px solid #3b678a;padding-top:0.25em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_state,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{padding:0 1em;height:20px;line-height:20px;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score{position:relative;left:2px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score .o_label{color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social{position:absolute;width:100%;bottom:32px;height:20px;padding-left:1em}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_title,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating o_rating_legend,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_social .o_rating .o_rating_explanation{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings{padding:0 0 0 1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_label{margin-bottom:1em;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_bookings .o_methods{color:#5bc0de}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{position:absolute;display:block;bottom:0;width:90px;height:30px;line-height:30px;text-align:center}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{right:0}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start{color:#fff;background-color:#3b678a;border-color:#335a78}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{color:#fff;background-color:#2c4c66;border-color:#213a4d}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start.active{background-color:#3b678a;border-color:#335a78}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start .badge{color:#3b678a;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book{color:#fff;background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book.active{background-color:#f0ad4e;border-color:#eea236}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book .badge{color:#f0ad4e;background-color:#fff}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:90px;color:#fff;background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active,.open>.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.dropdown-toggle{background-image:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.disabled.active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled],.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:hover,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].focus,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled]:active,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details[disabled].active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:hover,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.focus,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details:active,fieldset[disabled] .o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details.active{background-color:#5cb85c;border-color:#4cae4c}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details .badge{color:#5cb85c;background-color:#fff}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{height:80px;width:120px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_score,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_comments,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_label{display:none}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_start,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_book,.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{width:60px}.o_coursetable.o_rendertype_custom .o_table_row .o_access .o_details{right:60px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_access{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:120px;margin:0 180px 0 180px;position:relative;padding:1em 0.5em 0.25em 1em;overflow:hidden}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{display:block;color:#3b678a}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a:hover{color:#2c4c66}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author{margin-top:0.5em;line-height:1em;font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle{position:absolute;top:5px;right:40px;font-size:90%;line-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active{color:#3c763d}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle.o_active:hover{color:#2b542c}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{margin-top:0.5em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark{position:absolute;top:-1px;right:15px}@media (min-width: 768px) and (max-width: 991px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:80px;margin:0 120px}}@media (max-width: 767px){.o_coursetable.o_rendertype_custom .o_table_row .o_meta{height:50px;margin:0 0 0 75px;padding:0 0 0 1em}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title{line-height:50px}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_title a{border-right:37px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_author,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_bookmark,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_lifecycle,.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_desc{display:none}}.o_coursetable.o_rendertype_custom .o_table_row .o_meta .o_go_xs{position:absolute;top:0;right:0;padding:0 1em;height:50px;width:37px;line-height:50px;color:#fff;background-color:#3b678a}.o_coursetable.o_rendertype_classic .o_rating_explanation{display:none}.o_coursetable.o_rendertype_classic .o_start,.o_coursetable.o_rendertype_classic .o_book{white-space:nowrap}.o_coursetable.o_rendertype_classic .o_repoentry_type{color:#555}.o_coursetable.o_rendertype_classic .o_repoentry_ac{color:#555}.o_catalog .o_level{position:relative;margin-bottom:10px;padding:0;border-top:1px solid #3b678a;border-bottom:1px solid #3b678a}.o_catalog .o_level .o_visual{height:180px}.o_catalog .o_level .o_meta{position:relative;min-height:180px;height:180px;overflow:hidden;margin:0 0 0 180px;padding:1em 0.5em 0.5em 2em}.o_catalog .o_level .o_meta .o_title{margin:0}.o_catalog .o_level .o_meta .o_title a{display:block;color:#3b678a}.o_catalog .o_level .o_meta .o_title a:hover{color:#2c4c66}.o_catalog .o_level .o_meta .o_desc{padding:1em 0 0.5em 0}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_level .o_visual{height:120px}.o_catalog .o_level .o_meta{min-height:120px;height:120px;margin:0 0 0 120px}}@media (max-width: 767px){.o_catalog .o_level .o_visual{height:75px}.o_catalog .o_level .o_meta{min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_level .o_meta .o_title{line-height:75px}.o_catalog .o_level .o_meta .o_desc{display:none}}.o_catalog .o_sublevels_list .o_sublevel{position:relative;border:1px solid #3b678a;margin-bottom:10px}.o_catalog .o_sublevels_list .o_sublevel .o_visual{height:75px;width:75px}.o_catalog .o_sublevels_list .o_sublevel .o_title{margin:0}.o_catalog .o_sublevels_list .o_sublevel .o_meta{border-left:1px solid #3b678a;min-height:75px;height:75px;margin:0 0 0 75px;padding:0 0 0 1em}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_title{line-height:75px}.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_desc{display:none}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a{font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels_list .o_sublevel .o_meta h4.o_title>a>i,.o_catalog .o_sublevels_list .o_sublevel .o_meta .o_cal .fc-header-title h2.o_title>a>i,.o_cal .fc-header-title .o_catalog .o_sublevels_list .o_sublevel .o_meta h2.o_title>a>i{display:none}.o_catalog .o_sublevels{position:relative;margin-bottom:20px}.o_catalog .o_sublevels:before,.o_catalog .o_sublevels:after{content:" ";display:table}.o_catalog .o_sublevels:after{clear:both}.o_catalog .o_sublevels .o_sublevel{position:relative;float:left;margin:0 20px 20px 0;width:180px}.o_catalog .o_sublevels .o_sublevel:last-child{margin-right:0}.o_catalog .o_sublevels .o_sublevel .o_visual{border:1px solid #3b678a;position:relative;height:180px}.o_catalog .o_sublevels .o_sublevel .o_meta{position:absolute;left:0;bottom:0;width:100%;border:1px solid #3b678a;border-top:0;background-color:rgba(255,255,255,0.8)}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title{margin:0;text-align:center;line-height:2em;height:2em;width:100%;overflow:hidden}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a{display:block;color:#3b678a;font-family:inherit;font-weight:inherit}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a:hover{color:#2c4c66}.o_catalog .o_sublevels .o_sublevel .o_meta .o_title a>i{display:none}@media (min-width: 768px) and (max-width: 991px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 10px 10px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (max-width: 767px){.o_catalog .o_sublevels .o_sublevel{width:120px;margin:0 1px 1px 0}.o_catalog .o_sublevels .o_sublevel .o_visual{height:120px;width:120px}.o_catalog .o_sublevels .o_sublevel .o_title{font-size:90%}}@media (min-width: 768px){.o_catalog .o_sublevels_list,.o_catalog .o_sublevels_compact{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2;columns:2}}
 .o_repo_details{position:relative}.o_repo_details .o_lead{margin-bottom:10px}.o_repo_details .o_lead .o_author{margin-top:0.5em;margin-bottom:1em;font-size:120%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#3c763d}.o_repo_details .o_lead .o_media{float:right;margin-left:2em;margin-bottom:2em}.o_repo_details .o_lead h1 i{display:none}.o_repo_details .o_overview i{margin-right:0.5em}.o_repo_details .o_overview div{margin-bottom:0.25em}.o_repo_details .o_start,.o_repo_details .o_book{margin:2em 0}.o_repo_details .o_social:before,.o_repo_details .o_social:after{content:" ";display:table}.o_repo_details .o_social:after{clear:both}.o_repo_details .o_social .o_rating_wrapper{float:left}.o_repo_details .o_social .o_comments{margin-left:1em}@media (max-width: 767px){.o_repo_details .o_lead p{font-size:16px}.o_repo_details .o_lead .o_media{margin-left:0;float:none;text-align:center}}@media (max-width: 613px){.o_repo_details .o_subcolumn{width:100%}}
-.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#3b678a}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#3b678a}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#3b678a}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #3b678a !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #335a78;background:#3b678a;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-default.active,.btn-primary:active,.btn-primary.active,.btn-success:active,.btn-success.active,.btn-info:active,.btn-info.active,.btn-warning:active,.btn-warning.active,.btn-danger:active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:-o-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE0E0E0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #29475f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF29475F', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#264258}.btn-primary:hover,.btn-primary:focus{background-color:#29475f;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#29475f;border-color:#264258}.btn-primary:disabled,.btn-primary[disabled]{background-color:#29475f;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #419641 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF2AABD2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC12E2A', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0);background-color:#335a78}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDBDBDB', endColorstr='#FFE2E2E2', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:-o-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:linear-gradient(to bottom, #3c3c3c 0%, #222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3C3C3C', endColorstr='#FF222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:-o-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:linear-gradient(to bottom, #090909 0%, #0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF090909', endColorstr='#FF0F0F0F', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width: 767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFC8E5BC', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFB9DEF0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFF8EFC0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFE7C3C3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF5F5F5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #2c4c66 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF2C4C66', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF449D44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF31B0D5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEC971F', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC9302C', GradientType=0)}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #2c4c66;background-image:-webkit-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #30536f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF30536F', GradientType=0);border-color:#30536f}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFD0E9C6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFC4E3F3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFFAF2CC', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFEBCCCC', GradientType=0)}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFE8E8E8', endColorstr='#FFF5F5F5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}.o_button_dirty{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.o_button_dirty:active,.o_button_dirty.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.o_button_dirty:hover,.o_button_dirty:focus{background-color:#eb9316;background-position:0 -15px}.o_button_dirty:active,.o_button_dirty.active{background-color:#eb9316;border-color:#e38d13}.o_button_dirty:disabled,.o_button_dirty[disabled]{background-color:#eb9316;background-image:none}.btn-default.btn-success,.btn-default.btn-info,.btn-default.btn-warning,.btn-default.btn-danger,.btn-default.btn-primary,.btn-default.o_button_dirty{text-shadow:none}.o_navbar.o_navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF3F3F3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a.o_navbar_tab_close{background:none;-webkit-box-shadow:none;box-shadow:none}.o_navbar-brand,.o_navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.o_navbar-offcanvas .dropdown-menu>li>a:hover,.o_navbar-offcanvas .dropdown-menu>li>a:focus{background-image:none}.o_toolbar{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_toolbar .o_breadcrumb .breadcrumb{background-image:-webkit-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #fff 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF5F5F5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tools_container{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{background-image:-webkit-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #fff 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE2E2E2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next :hover,.o_toolbar .o_tool_previous :hover{background-color:#e2e2e2}.o_tree{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_navbar-brand{padding:15px 15px;font-size:28px;color:#3b678a !important}.o_navbar-brand:after{content:"\E600";font-family:openolat}
\ No newline at end of file
+.o_ac_configuration span.o_ac_infos{font-weight:normal;color:grey}.badge.o_midpub{background-color:#3c763d}.badge.o_midwarn{background-color:#8a6d3b}.badge.o_midlock{background-color:#31708f}.badge.o_miderr{background-color:#a94442}.badge.o_middel{background-color:#777}.o_course_editor_legend .badge{font-size:80%}.o_course_editor_legend .badge:before{content:none}.o_passed{color:#3c763d;font-weight:bold}.o_passed a:hover{color:#2b542c}.o_passed th{color:#333}.o_failed{color:#a94442;font-weight:bold}.o_failed a:hover{color:#66512c}.o_failed th{color:#333}.o_unknown{color:#8a6d3b;font-weight:bold}.o_unknown a:hover{color:#66512c}.o_unknown th{color:#333}.o_noinfo{color:#777}.o_course_run .o_toc .o_entry .o_shorttitle{border-bottom:1px solid #777}.o_course_run .o_toc .o_entry .o_displaytitle{margin-top:5px;color:#777}.o_course_run .o_toc .o_entry .o_objectives{margin-top:10px;font-style:italic}.o_course_run.o_titled_wrapper>h2 i{display:none}.o_tree.o_course_menu div.o_tree_l0>a:first-child{background-color:none}.o_st_peekview ul li{margin-bottom:0.5em}.o_cl_line{margin-bottom:10px;padding-bottom:5px}.o_cl_line.o_even{background-color:#f9f9f9}.o_ll_container h5{margin-bottom:5px}.o_ll_container h5 a.o_desc{color:#3b678a}.o_ll_container h5 a.o_desc small{display:none}.o_ll_container h5 a.o_desc:hover{color:#2c4c66;text-decoration:none}.o_ll_container h5 a.o_desc:hover small{color:#5e5e5e;display:inline}.o_ll_container div.o_comment{color:#777}.o_cmembers .o_cmember{margin:12px 0}.o_cmembers .o_cmember .o_portrait{margin-right:10px}.o_cmembers .o_cmember .o_portrait img{width:50px;height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper{line-height:50px}.o_cmembers .o_cmember .o_cmember_info_wrapper .o_mail{margin-left:6px}table.table.o_qti_item_kprim>thead>tr>th,table.table.o_qti_item_kprim>tbody>tr>td{border:none}td.o_qti_item_kprim_input,th.o_qti_item_kprim_input{text-align:center}td.o_qti_item_kprim_input .radio,th.o_qti_item_kprim_input .radio{display:inline}div.o_qti_menu_section,div.o_qti_menu_section_clickable,div.o_qti_menu_section_active{margin-top:10px}div.o_qti_menu_item a,div.o_qti_menu_section a{text-decoration:none}div.o_qti_menu_item{padding:.1em}div.o_qti_menu_item_active{padding:.1em;font-weight:bold}div.o_qti_item_itemfeedback{background-color:#ffffff;border-color:#000000}div.o_qti_item_choice_option_flow{display:inline-block;padding:.5em;border:1px solid transparent}.d3chart .bar_green{fill:#5cb85c}.d3chart .bar_red{fill:#d9534f}.d3chart .bar_grey{fill:lightgrey}div.o_qti_statistics ul{list-style-type:none;padding:0;margin:0;font-size:90%}div.o_qti_statistics ul strong{font-weight:normal}div.o_qti_statistics ul li{padding-left:48px;margin-left:0;margin-bottom:10px}div.o_qti_statistics ul li.o_qti_statistics-ncorrect:before{font-size:125%;content:'\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-correct:before{font-size:125%;content:'\2713\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kplus:before{font-size:125%;content:'\2713\00A0\2A2F\00A0\00A0'}div.o_qti_statistics ul li.o_qti_statistics-kminus:before{font-size:125%;content:'\2A2F\00A0\2713\00A0\00A0'}div.o_qti_statistics ul li img{vertical-align:top}div.o_qti_statistics table.o_qti_statistics_figures tr{float:left}div.o_qti_statistics table.o_qti_statistics_figures tr:nth-child(2n+1){clear:left;padding-right:20px}div.o_qti_statistics table.o_qti_statistics_figures td{width:200px;padding-left:0}div.o_qti_statistics table.o_qti_statistics_figures td+td{width:100px}div.o_qti_statistics .o_qti_statistics_answer{background:#F5F5F5;padding:1px 2px;width:90%}div.o_qti_statistics div.o_qti_statistics_legend{padding-top:10px;width:470px;border:1px solid #ddd;border-radius:4px}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_green{background-color:#9dd53a}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_red{background-color:#f85032}div.o_qti_statistics div.o_qti_statistics_legend ul li .bar_grey{background-color:lightgrey}div.o_qti_metadatas .panel-body{border-top:none}.o_qti_menu_item_attempts:after,.o_qti_menu_item_attempts_marked:after{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.o_qti_menu_item_attempts:after{content:"\f11d"}.o_qti_menu_item_attempts_marked:after{content:"\f024";color:#3b678a}.onyx_iframe{width:100%;height:100%;border:none;min-height:60em}.o_qti_print div.o_qti_statistics{width:680px}@media print{div.o_qti_statistics{width:680px}}#o_dev_tool #o_dev_tool_mode{width:1em;height:1em;float:left;border:1px solid #000;margin-right:5px}a.o_dev{position:absolute;left:0;top:0;z-index:4000;background:#f0ad4e;border:1px solid #d59645;border-top:none;border-left:none;border-radius:0 0 4px 0;color:#fff}a.o_dev:hover{color:#d9534f}.o_dev_w{margin:1px}.o_dev_w .o_dev_h{color:#000;font-size:8px;line-height:10px;margin:0}.o_dev_w .o_dev_h span{background:#f4c37d;border:1px solid #f0ad4e;border-bottom:0}.o_dev_w .o_dev_c{position:relative;border:1px dotted #eee}.o_dev_w .o_dev_c .o_dev_i{position:absolute;top:0px;left:24px;height:auto;width:auto;padding:5px;border:1px solid black;display:none;margin:0px;z-index:999;font-size:11px;background-color:#BBF}.o_dev_w.o_dev_m>.o_dev_c{border:1px solid #f0ad4e;margin:0px;background-color:#f8e9d4}.o_wikimod_nav .o_noti{margin:0}.o_wikimod_editform_wrapper{margin-top:30px}.o_wiki-file-deleted{text-decoration:line-through}.o_ep_icon_map:before{content:"\f0b1"}.o_ep_icon_collection:before{content:"\f0b1"}.o_ep_icon_page:before{content:"\f016"}.o_ep_icon_struct:before{content:"\f1b3"}.o_ep_icon_liveblog:before{content:"\f0a1"}.o_artefact_closed:before{content:"\f023"}.o_portfolio_toc .o_ep_link{float:right;margin-right:0px}.o_portfolio_toc .o_ep_commentlink{float:right;margin-right:10%}.o_portfolio_toc li.level1{font-size:1.2em;margin:1.2em 0 0.2em 0;border-bottom:1px solid #ddd}.o_portfolio_toc li.level2{padding-left:20px;font-size:1.1em;border-bottom:1px dotted #ddd}.o_portfolio_toc li.level3{padding-left:40px}.o_eportfolio_page .o_eportfolio_structure>h5{border-bottom:1px solid #ddd;margin-top:1.2em}.o_eportfolio_maps .panel{font-family:'Century Gothic', 'Apple Gothic', sans-serif;box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .panel-heading{padding:5px 10px}.o_eportfolio_maps h4,.o_eportfolio_maps .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps h2{padding:11px 15px;background:rgba(255,255,230,0.7) none;border-radius:6px}.o_eportfolio_maps .table>tbody>tr>td{border-top:none}.o_eportfolio_maps .panel-body{border-top:none}.o_eportfolio_maps .panel>.panel-body+.table{border-top:none}.panel-footer .o_ep_options{display:inline-block}.o_eportfolio_map{padding:0 20px 2px 3px;border-radius:6px 10px 6px 0;font-family:'Century Gothic', 'Apple Gothic', sans-serif}.o_map_header{padding-left:5px}.o_eportfolio_map ul.nav-tabs li:not(.active) a{background-color:rgba(240,240,240,0.7);border-radius:4px 4px 0 0}.o_eportfolio_edit{border-radius:4px 4px 0 0}.o_ep_actualpage,.o_eportfolio_edit{padding:15px;background-color:#fff}.o_ep_content{margin-top:15px}.o_ep_filter .o_date.form-inline .form-group,.o_ep_filter .o_date.o_navbar-form .form-group{margin-left:8px}.o_eportfolio_share_policy_wrapper{border:1px solid #ddd;border-radius:4px}.o_eportfolio_share_header{padding:10px 15px;border-bottom:1px solid #ddd;background-color:#f5f5f5}.o_eportfolio_share_policy{padding:10px 15px}.o_map-default{background:#fafafa;background:#fafafa -webkit-gradient(linear, 37% 20%, 53% 100%, from(#fafafa), to(#efefef));background:#fafafa -moz-linear-gradient(43% 71% 101deg, #efefef, #fafafa);background:#fafafa -o-linear-gradient(#fafafa, #efefef);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#fafafa', EndColorStr='#efefef');border:1px solid #efefef;border-left:3px solid rgba(188,188,188,0.8)}.o_eportfolio_maps .o_map-default h4,.o_eportfolio_maps .o_map-default .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-default h2{color:#444;background:none}.o_eportfolio_maps .o_map-default .panel-body,.o_eportfolio_maps .o_map-default td,.o_eportfolio_maps .o_map-default a{color:#000}.o_map-comic{background:#a2c3e8 none;font-family:'Comic Sans MS', 'Comic Sans', fantasy;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_map-leather{background-color:#957352;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(248,248,248,0.7)), color-stop(100%, rgba(193,193,193,0.5))),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-webkit-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-moz-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-ms-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:-o-linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");background-image:linear-gradient(top, rgba(248,248,248,0.7), rgba(193,193,193,0.5)),url("../light/images/portfolio/white-leather-tile.jpg");font-family:Palatino, Georgia, serif;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-leather h4,.o_eportfolio_maps .o_map-leather .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-leather h2{background:rgba(243,230,225,0.3) none}.o_eportfolio_maps .o_map-leather .panel-body,.o_eportfolio_maps .o_map-leather td{color:#333}.o_eportfolio_maps .o_map-leather a{color:#fad9a4}.o_eportfolio_map.o_map-leather .o_map_header h4,.o_eportfolio_map.o_map-leather .o_map_header .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_map.o_map-leather .o_map_header h2,.o_eportfolio_map.o_map-leather .o_map_header p,.o_eportfolio_map.o_map-leather .o_map_header a,.o_eportfolio_map.o_map-leather .o_map_header span,.o_eportfolio_map.o_map-leather .o_map_header label{color:#333}.o_map-epmst-green{background-color:#ecf69a;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-green h4,.o_eportfolio_maps .o_map-epmst-green .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green h2{color:#444}.o_eportfolio_maps .o_map-epmst-green .panel-body,.o_eportfolio_maps .o_map-epmst-green td,.o_eportfolio_maps .o_map-epmst-green a{color:#000}.o_map-epmst-green2{background:#99e44d;background:#99e44d -webkit-gradient(linear, 37% 20%, 53% 100%, from(#99e44d), to(#cbf1a5));background:#99e44d -moz-linear-gradient(43% 71% 101deg, #cbf1a5, #99e44d);background:#99e44d -o-linear-gradient(#99e44d, #cbf1a5);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#99e44d', EndColorStr='#cbf1a5');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green2 h4,.o_eportfolio_maps .o_map-epmst-green2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green2 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green2 .panel-body,.o_eportfolio_maps .o_map-epmst-green2 td,.o_eportfolio_maps .o_map-epmst-green2 a{color:#000}.o_map-epmst-green3{background:#dff0c1;background:#dff0c1 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dff0c1), to(#a0d346));background:#dff0c1 -moz-linear-gradient(43% 71% 101deg, #a0d346, #dff0c1);background:#dff0c1 -o-linear-gradient(#dff0c1, #a0d346);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dff0c1', EndColorStr='#a0d346');border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green3 h4,.o_eportfolio_maps .o_map-epmst-green3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green3 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green3 .panel-body,.o_eportfolio_maps .o_map-epmst-green3 td,.o_eportfolio_maps .o_map-epmst-green3 a{color:#000}.o_map-epmst-green4{background-color:#d7dbb5;border:1px solid #bbb;border-left:3px solid rgba(136,136,136,0.8)}.o_eportfolio_maps .o_map-epmst-green4 h4,.o_eportfolio_maps .o_map-epmst-green4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-green4 h2{color:#555}.o_eportfolio_maps .o_map-epmst-green4 .panel-body,.o_eportfolio_maps .o_map-epmst-green4 td,.o_eportfolio_maps .o_map-epmst-green4 a{color:#000}.o_map-epmst-red{background:#ffba71;background:#ffba71 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffba71), to(#ffba99));background:#ffba71 -moz-linear-gradient(43% 71% 101deg, #ffba99, #ffba71);background:#ffba71 -o-linear-gradient(#ffba71, #ffba99);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffba71', EndColorStr='#ffba99');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red h4,.o_eportfolio_maps .o_map-epmst-red .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red h2{color:#444}.o_eportfolio_maps .o_map-epmst-red .panel-body,.o_eportfolio_maps .o_map-epmst-red td,.o_eportfolio_maps .o_map-epmst-red a{color:#000}.o_map-epmst-red2{background:#ff9772;background:#ff9772 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ff9772), to(#ff9780));background:#ff9772 -moz-linear-gradient(43% 71% 101deg, #ff9780, #ff9772);background:#ff9772 -o-linear-gradient(#ff9772, #ff9780);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ff9772', EndColorStr='#ff9780');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red2 h4,.o_eportfolio_maps .o_map-epmst-red2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red2 .panel-body,.o_eportfolio_maps .o_map-epmst-red2 td,.o_eportfolio_maps .o_map-epmst-red2 a{color:#000}.o_map-epmst-red3{background:#e8afbb;background:#e8afbb -webkit-gradient(linear, 37% 20%, 53% 100%, from(#e8afbb), to(#e8afa0));background:#e8afbb -moz-linear-gradient(43% 71% 101deg, #e8afa0, #e8afbb);background:#e8afbb -o-linear-gradient(#e8afbb, #e8afa0);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#e8afbb', EndColorStr='#e8afa0');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red3 h4,.o_eportfolio_maps .o_map-epmst-red3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red3 .panel-body,.o_eportfolio_maps .o_map-epmst-red3 td,.o_eportfolio_maps .o_map-epmst-red3 a{color:#000}.o_map-epmst-red4{background:#ffa800;background:#ffa800 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#ffa800), to(#ffaf00));background:#ffa800 -moz-linear-gradient(43% 71% 101deg, #ffaf00, #ffa800);background:#ffa800 -o-linear-gradient(#ffa800, #ffaf00);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffa800', EndColorStr='#ffaf00');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-red4 h4,.o_eportfolio_maps .o_map-epmst-red4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-red4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-red4 .panel-body,.o_eportfolio_maps .o_map-epmst-red4 td,.o_eportfolio_maps .o_map-epmst-red4 a{color:#000}.o_map-epmst-blue{background:#00d2f8;background:#00d2f8 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#00d2f8), to(#4a9ead));background:#00d2f8 -moz-linear-gradient(43% 71% 101deg, #4a9ead, #00d2f8);background:#00d2f8 -o-linear-gradient(#00d2f8, #4a9ead);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#00d2f8', EndColorStr='#4a9ead');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue h4,.o_eportfolio_maps .o_map-epmst-blue .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue .panel-body,.o_eportfolio_maps .o_map-epmst-blue td,.o_eportfolio_maps .o_map-epmst-blue a{color:#000}.o_map-epmst-blue2{background-color:#c4f6ff;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue2 h4,.o_eportfolio_maps .o_map-epmst-blue2 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue2 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue2 .panel-body,.o_eportfolio_maps .o_map-epmst-blue2 td,.o_eportfolio_maps .o_map-epmst-blue2 a{color:#000}.o_map-epmst-blue3{background-color:#b3e2f7;border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue3{box-shadow:3px 3px 4px rgba(20,20,20,0.4)}.o_eportfolio_maps .o_map-epmst-blue3 h4,.o_eportfolio_maps .o_map-epmst-blue3 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue3 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue3 .panel-body,.o_eportfolio_maps .o_map-epmst-blue3 td,.o_eportfolio_maps .o_map-epmst-blue3 a{color:#000}.o_map-epmst-blue4{background:#dee7f7;background:#dee7f7 -webkit-gradient(linear, 37% 20%, 53% 100%, from(#dee7f7), to(#c1e9fd));background:#dee7f7 -moz-linear-gradient(43% 71% 101deg, #c1e9fd, #dee7f7);background:#dee7f7 -o-linear-gradient(#dee7f7, #c1e9fd);filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#dee7f7', EndColorStr='#c1e9fd');border:1px solid #888;border-left:3px solid rgba(85,85,85,0.8)}.o_eportfolio_maps .o_map-epmst-blue4 h4,.o_eportfolio_maps .o_map-epmst-blue4 .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_eportfolio_maps .o_map-epmst-blue4 h2{color:#444}.o_eportfolio_maps .o_map-epmst-blue4 .panel-body,.o_eportfolio_maps .o_map-epmst-blue4 td,.o_eportfolio_maps .o_map-epmst-blue4 a{color:#000}.o_userbulk_changedcell{font-style:italic;font-weight:bold}body.o_dmz{background:transparent}body.o_dmz #o_bg{position:absolute;top:0;left:0;width:100%;height:100%;background:url("images/learn-bg.jpg") 0px 50px/cover;background:linear-gradient(to right, rgba(255,255,255,0.1) 0.2%, rgba(255,255,255,0.6) 60%, rgba(255,255,255,0.8) 100%),url("images/learn-bg.jpg");background-size:cover, cover;background-position:0px 50px,0px 50px}body.o_dmz #o_main_wrapper,body.o_dmz #o_main_wrapper #o_main_container{background:transparent}.o_login{padding-bottom:20px;padding-left:10%;padding-right:10%;text-align:right}.o_login .o_login_intro{padding-left:10%}.o_login .o_login_intro h1{margin-bottom:40px;color:#3b678a}.o_login .o_login_intro .lead{color:#333}.o_login .o_login_intro .lead h1,.o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h3,.o_login .o_login_intro .lead h4,.o_login .o_login_intro .lead .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_login .o_login_intro .lead h2,.o_login .o_login_intro .lead h5{margin-bottom:20px;color:#3b678a}.o_login .o_login_messages,.o_login .o_login_box{display:inline-block;width:400px;text-align:left}.o_login .o_login_messages .o_infomessage_wrapper{background:rgba(255,255,255,0.5);border:1px solid transparent;border-radius:4px;padding:6px 12px}.o_login .o_login_messages .o_infomessage_wrapper .o_info,.o_login .o_login_messages .o_infomessage_wrapper .o_warning,.o_login .o_login_messages .o_infomessage_wrapper .o_note{margin:0}.o_login .o_login_box{padding-top:10px}.o_login .o_login_providers{margin-bottom:6px;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_providers a span{display:block;font-size:9px;padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.o_login .o_login_providers .o_icon_provider_olat{font-size:1em}.o_login .o_login_provider{background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3);box-shadow:0px 1px 10px -1px rgba(0,0,0,0.3)}.o_login .o_login_form{position:relative;padding:10px 12px}.o_login .o_login_form .o_login_pwd{position:absolute;bottom:2em;right:12px}.o_login .o_login_form .o_form .o_desc{margin:0 0 30px 0;padding:0;border-left:0;background-color:transparent}.o_login .o_login_register{display:block;line-height:2em;font-size:18px;text-align:center;color:#fff;background-color:#5bc0de;border-color:#46b8da;border-radius:4px;margin-top:16px;padding:10px 12px}.o_login .o_login_register:hover,.o_login .o_login_register:focus,.o_login .o_login_register.focus,.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.o_login .o_login_register:active,.o_login .o_login_register.active,.open>.o_login .o_login_register.dropdown-toggle{background-image:none}.o_login .o_login_register.disabled,.o_login .o_login_register.disabled:hover,.o_login .o_login_register.disabled:focus,.o_login .o_login_register.disabled.focus,.o_login .o_login_register.disabled:active,.o_login .o_login_register.disabled.active,.o_login .o_login_register[disabled],.o_login .o_login_register[disabled]:hover,.o_login .o_login_register[disabled]:focus,.o_login .o_login_register[disabled].focus,.o_login .o_login_register[disabled]:active,.o_login .o_login_register[disabled].active,fieldset[disabled] .o_login .o_login_register,fieldset[disabled] .o_login .o_login_register:hover,fieldset[disabled] .o_login .o_login_register:focus,fieldset[disabled] .o_login .o_login_register.focus,fieldset[disabled] .o_login .o_login_register:active,fieldset[disabled] .o_login .o_login_register.active{background-color:#5bc0de;border-color:#46b8da}.o_login .o_login_register .badge{color:#5bc0de;background-color:#fff}.o_login .o_login_register small{font-size:14px}.o_login .o_login_social{position:relative;padding:10px 12px}.o_login .o_login_social li{padding:10px 12px}.o_login .o_login_social li>a{display:block;line-height:2em;text-align:center;font-size:18px;border-radius:4px;padding:10px 12px}.o_login .o_login_social a.o_sel_auth_facebook{color:white;background-color:#4568b2}.o_login .o_login_social a.o_sel_auth_twitter{color:white;background-color:#2cc5ff}.o_login .o_login_social a.o_sel_auth_google{color:white;background-color:#e15f4f}.o_login .o_login_social a.o_sel_auth_linkedin{color:white;background-color:#0181bd}.o_login .o_login_social a.o_sel_auth_adfs{color:#19a6e1;background-color:#1a1a1a}@media (max-width: 767px){body.o_dmz #o_bg{background:none;display:none}.o_login{padding:0}.o_login .o_login_intro{padding:0;text-align:left}.o_login .o_login_box_wrapper{text-align:center;padding:0}.o_login .o_login_box{padding-left:0;padding-right:0}.o_login .o_login_box .o_login_providers,.o_login .o_login_box .o_login_provider{-webkit-box-shadow:none;box-shadow:none}.o_login .o_login_messages,.o_login .o_login_box{width:100%;display:block}}.o_home_main h1{text-align:center}.o_home_main .o_icon_rss{line-height:20px;vertical-align:middle}.o_showall{font-size:12px;text-align:right;margin-bottom:5px;margin-top:10px}.o_portlet{position:relative;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.o_portlet .o_header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 12px;border-bottom:1px solid #ddd;background-color:#f5f5f5;border-top-right-radius:4px;border-top-left-radius:4px}.o_portlet .o_content{padding:6px 12px}.o_portlet .o_portlet_table{margin:-12px;margin-bottom:-6px;margin-top:0}.o_portlet .o_table_empty.o_info{padding:6px}.o_portlet .o_toolbox{position:absolute;top:-1px;right:-1px;z-index:2;background-color:#fff;border:1px solid #faebcc;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:6px 12px}.o_portlet .o_toolbox div{display:inline}.o_portlet .o_edit_shim{position:absolute;height:100%;width:100%;z-index:1;background:#fcf8e3;opacity:0.8}.o_inactive .o_header a{float:right;margin-left:12px;margin-top:10px}.o_portlet_dyk_q{margin-top:5px;font-style:italic}.o_portlet_dyk_a{margin:5px 0}.o_portlet_dyk_next{margin:5px 0;text-align:right}.o_library_icon:before{content:"\f19c"}.o_library ul{list-style:none;margin:0 0 15px 0;padding:0}.o_library ul ul{margin:0}.o_library_overview .o_library_newest_files ul li{float:left;margin-right:15px}.o_library_item{margin-bottom:10px;position:relative}.o_library_item .o_library_visual,.o_library_item .o_library_extra,.o_library_item .o_library_meta{margin-top:15px}.o_library_item .o_library_visual{float:left;background-color:#fff;border-radius:4px;border:1px solid #ddd}.o_library_item .o_library_visual .o_thumbnail_available,.o_library_item .o_library_visual .o_thumbnail_unavailable{background-size:146px auto;width:150px !important;height:150px !important;background-repeat:no-repeat;background-position:50% 50%}.o_library_item .o_library_visual .o_thumbnail_available:before,.o_library_item .o_library_visual .o_thumbnail_unavailable:before{content:none}.o_library_item .o_library_visual .o_thumbnail_available{background-size:146px auto}.o_library_item .o_library_visual .o_thumbnail_unavailable{display:none}.o_library_item .o_library_extra{float:right;width:200px}.o_library_item .o_library_meta{clear:both}.o_library_item .o_library_meta .o_library_desc{padding-bottom:10px}.o_library_item .o_library_meta small{display:block;word-wrap:break-word}.o_library_item h4,.o_library_item .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:normal}.o_library_item .btn{display:block;margin-bottom:0.5em}.o_library_item .o_comments{display:inline-block}.o_library_item .table{table-layout:fixed;word-wrap:break-word;margin-bottom:0}.o_library_item p.o_library_show_more{text-align:right;margin:0;padding-top:20px}.o_library_item .o_library_more{padding-top:20px;display:none}.o_library_folder{margin-top:-20px}.o_ratings_and_comments .o_rating_title,.o_ratings_and_comments .o_rating_explanation{display:none}@media (min-width: 768px){.o_library_item .o_library_meta{clear:none;margin-left:150px;margin-right:200px;padding:0 10px}.o_library_item .o_library_more{display:none}.o_library_item .o_library_more table tbody{vertical-align:top}.o_library_item .o_library_more table tr,.o_library_item .o_library_more table th,.o_library_item .o_library_more table td{display:inline-block}.o_library_item .o_library_more table tr{width:49%}.o_library_item .o_library_more table th{width:30%}.o_library_item .o_library_more table td{width:70%}}.o_library_item_compact .o_library_extra{width:auto}.o_library_item_compact .o_library_meta{padding:0 10px 0 0;margin:0;overflow:hidden}.o_library_item_compact .btn{display:inline-block}.o_library_item_compact h4,.o_library_item_compact .o_cal .fc-header-title h2,.o_cal .fc-header-title .o_library_item_compact h2{overflow:hidden;margin-right:70px}.o_library_item_compact h4 a,.o_library_item_compact .o_cal .fc-header-title h2 a,.o_cal .fc-header-title .o_library_item_compact h2 a{text-overflow:ellipsis;white-space:nowrap}.o_library_item_compact p.o_library_show_more{padding:20px;position:absolute;top:0;right:0}span.o_translation_i18nitem{position:relative !important}span.o_translation_i18nitem a.o_translation_i18nitem_launcher{position:absolute !important;z-index:100 !important;width:18px !important;height:20px !important;top:0 !important;left:5px !important;background:#fff;border:1px solid #3b678a !important;border-radius:3px;text-align:center;padding:0 !important}.o_user_infos{position:relative}.o_user_infos .o_user_portrait{position:absolute;top:0;left:15px;width:100px;height:100px}.o_user_infos .o_user_infos_inner{margin:0 30px 0 100px}.o_user_infos .o_user_infos_inner table{margin:0 30px 15px 30px}.o_members_pagination{text-align:center}.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:66px;height:66px;margin-right:10px}@media (max-width: 767px){.o_visitingcard .o_portrait_avatar,.o_visitingcard .o_portrait_dummy,.o_visitingcard .o_portrait_dummy_female_big,.o_visitingcard .o_portrait_dummy_male_big,.o_visitingcard .o_portrait_anonymous{width:50px;height:50px;margin:5px 5px 0 0}}.ui-widget{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:100%}.ui-widget-header{border-top:none;border-left:none;border-right:none;border-bottom:1px solid #eee;background:#fff;font-weight:bold}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon,.ui-state-default .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-state-active .ui-icon,.ui-state-highlight .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background:none;background-image:none}.ui-dialog{-webkit-box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);box-shadow:0px 1px 8px -1px rgba(0,0,0,0.35);background-color:#fefefe}.ui-dialog .ui-widget-header .ui-dialog-title{color:#3b678a;font-weight:500;font-family:inherit;line-height:1.1}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close:before{content:"\f00d" !important}.ui-dialog .ui-widget-header .ui-dialog-titlebar-close{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;font-size:120%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ui-dialog .ui-widget-header .ui-button.ui-corner-all{border:none !important;background:#fff !important}.ui-dialog .ui-widget-content{border-color:#fff;padding:5px}.ui-dialog .ui-dialog-titlebar{padding:4px 30px 4px 7px;margin:-2px -2px 0 -2px;background-color:#eee}.ui-dialog.ui-corner-all{border-radius:4px}.ui-dialog.ui-widget-content{border:1px solid transparent}.ui-dialog.o_modal-ui div.ui-dialog-buttonpane{display:none}.ui-datepicker{z-index:2000 !important;-webkit-box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15);box-shadow:0px 1px 5px -1px rgba(0,0,0,0.15)}.ui-datepicker .ui-widget-header .ui-corner-all,.ui-datepicker .ui-widget-header .ui-datepicker-next.ui-corner-all{border:none !important;background:#fff !important}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e:before{content:"\f061";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w:before{content:"\f060";font-weight:normal;color:black}.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e,.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{font-family:'FontAwesome';display:inline-block;background-image:none;background-position:0 0;font-weight:normal;text-indent:0;color:white}.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-widget-header .ui-datepicker .ui-datepicker-next-hover{top:2px}.ui-datepicker .ui-state-default{background:#eee}.ui-datepicker .ui-state-highlight,.ui-datepicker .ui-widget-content .ui-state-highlight{border:1px solid #335a78;background:#3b678a;color:#fff}.ui-datepicker.ui-corner-all{border-radius:4px}.ui-datepicker.ui-widget-content{border:1px solid transparent}label.mce-label{display:inline;max-width:150px;margin-bottom:0;font-weight:normal}@media print{a[href]:after{content:""}#o_header_wrapper,#o_offcanvas_right,#o_navbar_wrapper,#o_footer_wrapper,#o_toplink,#o_main_left,#o_main_right,#o_main_toolbar,#jsMath_PrintWarning,.o_noti,.o_opener,.o_hide,.o_noprint{display:none !important}.o_print_break_avoid{page-break-inside:avoid}.o_print_break_before{page-break-before:always}body.o_dmz{background:white !important}}body.o_browser_ie7 #o_offcanvas_right,body.o_browser_ie8 #o_offcanvas_right{right:0px}.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-default.active,.btn-primary:active,.btn-primary.active,.btn-success:active,.btn-success.active,.btn-info:active,.btn-info.active,.btn-warning:active,.btn-warning.active,.btn-danger:active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:-o-linear-gradient(top, #fff 0%, #e0e0e0 100%);background-image:linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE0E0E0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #29475f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #29475f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF29475F', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#264258}.btn-primary:hover,.btn-primary:focus{background-color:#29475f;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#29475f;border-color:#264258}.btn-primary:disabled,.btn-primary[disabled]{background-color:#29475f;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #419641 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #419641 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF2AABD2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC12E2A', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail,.o_form .o_filepreview img,.o_feed .o_media{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0);background-color:#335a78}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDBDBDB', endColorstr='#FFE2E2E2', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:-o-linear-gradient(top, #3c3c3c 0%, #222 100%);background-image:linear-gradient(to bottom, #3c3c3c 0%, #222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3C3C3C', endColorstr='#FF222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:-o-linear-gradient(top, #090909 0%, #0f0f0f 100%);background-image:linear-gradient(to bottom, #090909 0%, #0f0f0f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF090909', endColorstr='#FF0F0F0F', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width: 767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFC8E5BC', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFB9DEF0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFF8EFC0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFE7C3C3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF5F5F5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #2c4c66 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #2c4c66 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF2C4C66', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:-o-linear-gradient(top, #5cb85c 0%, #449d44 100%);background-image:linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5CB85C', endColorstr='#FF449D44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:-o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);background-image:linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF5BC0DE', endColorstr='#FF31B0D5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEC971F', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:-o-linear-gradient(top, #d9534f 0%, #c9302c 100%);background-image:linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9534F', endColorstr='#FFC9302C', GradientType=0)}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #2c4c66;background-image:-webkit-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #30536f 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #30536f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF30536F', GradientType=0);border-color:#30536f}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);background-image:linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF5F5F5', endColorstr='#FFE8E8E8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:-o-linear-gradient(top, #3b678a 0%, #335a78 100%);background-image:linear-gradient(to bottom, #3b678a 0%, #335a78 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FF3B678A', endColorstr='#FF335A78', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:-o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);background-image:linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFDFF0D8', endColorstr='#FFD0E9C6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:-o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);background-image:linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFD9EDF7', endColorstr='#FFC4E3F3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:-o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);background-image:linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFCF8E3', endColorstr='#FFFAF2CC', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:-o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);background-image:linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF2DEDE', endColorstr='#FFEBCCCC', GradientType=0)}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFE8E8E8', endColorstr='#FFF5F5F5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}.o_button_dirty{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);background-image:-webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);background-image:linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF0AD4E', endColorstr='#FFEB9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.o_button_dirty:active,.o_button_dirty.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.o_button_dirty:hover,.o_button_dirty:focus{background-color:#eb9316;background-position:0 -15px}.o_button_dirty:active,.o_button_dirty.active{background-color:#eb9316;border-color:#e38d13}.o_button_dirty:disabled,.o_button_dirty[disabled]{background-color:#eb9316;background-image:none}.btn-default.btn-success,.btn-default.btn-info,.btn-default.btn-warning,.btn-default.btn-danger,.btn-default.btn-primary,.btn-default.o_button_dirty{text-shadow:none}.o_navbar.o_navbar-default{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:-o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);background-image:linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEBEBEB', endColorstr='#FFF3F3F3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.o_navbar.o_navbar-default .o_navbar-nav>.active>a.o_navbar_tab_close{background:none;-webkit-box-shadow:none;box-shadow:none}.o_navbar-brand,.o_navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.o_navbar-offcanvas .dropdown-menu>li>a:hover,.o_navbar-offcanvas .dropdown-menu>li>a:focus{background-image:none}.o_toolbar{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_toolbar .o_breadcrumb .breadcrumb{background-image:-webkit-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:-o-linear-gradient(top, #fff 0%, #f5f5f5 100%);background-image:linear-gradient(to bottom, #fff 0%, #f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF5F5F5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tools_container{background-image:-webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0%, #f8f8f8 100%);background-image:linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFF8F8F8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next,.o_toolbar .o_tool_previous{background-image:-webkit-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #fff 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #fff 0%, #e2e2e2 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFE2E2E2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.o_toolbar .o_tool_next :hover,.o_toolbar .o_tool_previous :hover{background-color:#e2e2e2}.o_tree{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.05)}.o_navbar-brand{padding:15px 15px;font-size:28px;color:#3b678a !important}.o_navbar-brand:after{content:"\E600";font-family:openolat}
\ No newline at end of file
diff --git a/src/test/java/org/olat/core/util/FileUtilsTest.java b/src/test/java/org/olat/core/util/FileUtilsTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..090517edbcf9581d1dc8e27453687b94108bb951
--- /dev/null
+++ b/src/test/java/org/olat/core/util/FileUtilsTest.java
@@ -0,0 +1,50 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.core.util;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+/**
+ * 
+ * Initial date: 26.01.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class FileUtilsTest {
+	
+	@Test
+	public void normalizeFilename_umlaut() {
+		String normalizedUmlaut = FileUtils.normalizeFilename("S\u00E4l\u00FCt toi");
+		Assert.assertEquals(normalizedUmlaut, "Saeluet_toi");
+		
+		String normalizedAccents = FileUtils.normalizeFilename("Dépéchons-nous!");
+		Assert.assertEquals(normalizedAccents, "Depechonsnous");
+		
+	}
+	
+	@Test
+	public void normalizedFilename_danischDish() {
+		String smorrebrod = "Sm\u2205rrebr\u00F8d";
+		String normalized = FileUtils.normalizeFilename(smorrebrod);
+		Assert.assertEquals(normalized, "Smorrebrod");
+	}
+}
diff --git a/src/test/java/org/olat/course/certificate/manager/CertificatesManagerTest.java b/src/test/java/org/olat/course/certificate/manager/CertificatesManagerTest.java
index 1d244037145952a4188bc33eb0a401ac6d5fd99b..474bc0862d2a511cce585b37380e0e9c580ba40f 100644
--- a/src/test/java/org/olat/course/certificate/manager/CertificatesManagerTest.java
+++ b/src/test/java/org/olat/course/certificate/manager/CertificatesManagerTest.java
@@ -25,6 +25,7 @@ import java.net.URL;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.UUID;
 
 import org.junit.Assert;
@@ -32,16 +33,19 @@ import org.junit.Test;
 import org.olat.basesecurity.GroupRoles;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.id.Identity;
+import org.olat.core.id.Roles;
 import org.olat.core.util.vfs.VFSLeaf;
 import org.olat.course.certificate.Certificate;
 import org.olat.course.certificate.CertificateLight;
 import org.olat.course.certificate.CertificateTemplate;
 import org.olat.course.certificate.CertificatesManager;
+import org.olat.course.certificate.model.CertificateImpl;
 import org.olat.course.certificate.model.CertificateInfos;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupService;
 import org.olat.group.manager.BusinessGroupRelationDAO;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryService;
 import org.olat.repository.manager.RepositoryEntryRelationDAO;
 import org.olat.test.JunitTestHelper;
 import org.olat.test.OlatTestCase;
@@ -58,6 +62,8 @@ public class CertificatesManagerTest extends OlatTestCase {
 	@Autowired
 	private DB dbInstance;
 	@Autowired
+	private RepositoryService repositoryService;
+	@Autowired
 	private CertificatesManager certificatesManager;
 	@Autowired
 	private BusinessGroupService businessGroupService;
@@ -340,4 +346,95 @@ public class CertificatesManagerTest extends OlatTestCase {
 		Assert.assertEquals(certificate.getKey(), lastCertificate.getKey());
 		Assert.assertEquals(reloadedCertificate, lastCertificate);
 	}
+	
+	/**
+	 * Create a course, add a certificate to it and delete the course.
+	 * The certificate stays.
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void deleteCourse()  throws URISyntaxException  {
+		//create a course with a certificate
+		Identity identity = JunitTestHelper.createAndPersistIdentityAsRndUser("cer-del-2");
+		RepositoryEntry entry = JunitTestHelper.deployDemoCourse(identity);
+		dbInstance.commitAndCloseSession();
+		Long resourceKey = entry.getOlatResource().getKey();
+		
+		Calendar cal = Calendar.getInstance();
+		cal.set(Calendar.MINUTE, 0);
+		cal.set(Calendar.SECOND, 0);
+		cal.set(Calendar.MILLISECOND, 0);
+		URL certificateUrl = CertificatesManagerTest.class.getResource("template.pdf");
+		File certificateFile = new File(certificateUrl.toURI());
+		Certificate certificate = certificatesManager.uploadCertificate(identity, cal.getTime(), entry.getOlatResource(), certificateFile);
+		Assert.assertNotNull(certificate);
+		dbInstance.commitAndCloseSession();
+		
+		//delete the course
+		Roles roles = new Roles(true, false, false, false, false, false, false);
+		repositoryService.delete(entry, identity, roles, Locale.ENGLISH);
+		dbInstance.commitAndCloseSession();
+		
+		//retrieve the certificate
+		Certificate reloadedCertificate = certificatesManager.getCertificateById(certificate.getKey());
+		Assert.assertNotNull(reloadedCertificate);
+		Assert.assertEquals(certificate, reloadedCertificate);
+		Assert.assertNotNull(reloadedCertificate.getArchivedResourceKey());
+		Assert.assertEquals(resourceKey, reloadedCertificate.getArchivedResourceKey());
+	}
+	
+	
+	/**
+	 * Create 2 courses, add a certificate to them and delete the first course.
+	 * Check that a certificate loose the relation to the deleted course but not
+	 * the other. The two certificates stay.
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void deleteCourse_paranoiaCheck()  throws URISyntaxException  {
+		//create a course with a certificate
+		Identity identity = JunitTestHelper.createAndPersistIdentityAsRndUser("cer-del-3");
+		RepositoryEntry entryToDelete = JunitTestHelper.deployDemoCourse(identity);
+		RepositoryEntry entry = JunitTestHelper.deployDemoCourse(identity);
+		dbInstance.commitAndCloseSession();
+		Long resourceKeyToDelete = entryToDelete.getOlatResource().getKey();
+		Long resourceKey = entry.getOlatResource().getKey();
+		
+		Calendar cal = Calendar.getInstance();
+		cal.set(Calendar.MINUTE, 0);
+		cal.set(Calendar.SECOND, 0);
+		cal.set(Calendar.MILLISECOND, 0);
+		URL certificateUrl = CertificatesManagerTest.class.getResource("template.pdf");
+		File certificateFile = new File(certificateUrl.toURI());
+		//certificate linked to the course which will be deleted
+		Certificate certificateDeletedCourse = certificatesManager.uploadCertificate(identity, cal.getTime(), entryToDelete.getOlatResource(), certificateFile);
+		Assert.assertNotNull(certificateDeletedCourse);
+		//certificate of the staying course
+		Certificate certificate = certificatesManager.uploadCertificate(identity, cal.getTime(), entry.getOlatResource(), certificateFile);
+		Assert.assertNotNull(certificate);
+		dbInstance.commitAndCloseSession();
+		
+		//delete the course
+		Roles roles = new Roles(true, false, false, false, false, false, false);
+		repositoryService.delete(entryToDelete, identity, roles, Locale.ENGLISH);
+		dbInstance.commitAndCloseSession();
+		
+		//retrieve the certificate of the deleted course
+		Certificate reloadedCertificateDeletedCourse = certificatesManager.getCertificateById(certificateDeletedCourse.getKey());
+		Assert.assertNotNull(reloadedCertificateDeletedCourse);
+		Assert.assertEquals(certificateDeletedCourse, reloadedCertificateDeletedCourse);
+		Assert.assertNotNull(reloadedCertificateDeletedCourse.getArchivedResourceKey());
+		Assert.assertNull(((CertificateImpl)reloadedCertificateDeletedCourse).getOlatResource());
+		Assert.assertEquals(resourceKeyToDelete, reloadedCertificateDeletedCourse.getArchivedResourceKey());
+		
+		//retrieve the certificate of the staying course
+		Certificate reloadedCertificate = certificatesManager.getCertificateById(certificate.getKey());
+		Assert.assertNotNull(reloadedCertificate);
+		Assert.assertEquals(certificate, reloadedCertificate);
+		Assert.assertNotNull(reloadedCertificate.getArchivedResourceKey());
+		Assert.assertEquals(resourceKey, reloadedCertificate.getArchivedResourceKey());
+		Assert.assertEquals(entry.getOlatResource(), ((CertificateImpl)reloadedCertificate).getOlatResource());
+	}
 }
diff --git a/src/test/java/org/olat/course/nodes/en/EnrollmentManagerTest.java b/src/test/java/org/olat/course/nodes/en/EnrollmentManagerTest.java
index 9e4497c528e6e8fe92533005905c0dcba583b5e7..f0d3e603348a7e9bd74509b83dd73cc7f18a7845 100644
--- a/src/test/java/org/olat/course/nodes/en/EnrollmentManagerTest.java
+++ b/src/test/java/org/olat/course/nodes/en/EnrollmentManagerTest.java
@@ -30,6 +30,7 @@ import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 import java.util.UUID;
@@ -335,7 +336,12 @@ public class EnrollmentManagerTest extends OlatTestCase implements WindowControl
 
 			@Override
 			public List<ContextEntry> getEntries() {
-				return null;
+				return Collections.<ContextEntry>emptyList();
+			}
+			
+			@Override
+			public List<ContextEntry> getEntriesDownTheControls() {
+				return Collections.<ContextEntry>emptyList();
 			}
 
 			@Override
diff --git a/src/test/java/org/olat/group/test/BusinessGroupMembershipProcessorTest.java b/src/test/java/org/olat/group/test/BusinessGroupMembershipProcessorTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..a01f5203d76f038da0d96792e051bd144f1af4d9
--- /dev/null
+++ b/src/test/java/org/olat/group/test/BusinessGroupMembershipProcessorTest.java
@@ -0,0 +1,208 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.group.test;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.olat.basesecurity.GroupRoles;
+import org.olat.basesecurity.manager.GroupDAO;
+import org.olat.core.commons.persistence.DB;
+import org.olat.core.commons.services.notifications.NotificationsManager;
+import org.olat.core.commons.services.notifications.Publisher;
+import org.olat.core.commons.services.notifications.PublisherData;
+import org.olat.core.commons.services.notifications.SubscriptionContext;
+import org.olat.core.id.Identity;
+import org.olat.core.util.mail.MailPackage;
+import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupService;
+import org.olat.group.manager.BusinessGroupDAO;
+import org.olat.group.manager.BusinessGroupMembershipProcessor;
+import org.olat.group.manager.BusinessGroupRelationDAO;
+import org.olat.group.ui.edit.BusinessGroupModifiedEvent;
+import org.olat.repository.RepositoryEntry;
+import org.olat.repository.manager.RepositoryEntryRelationDAO;
+import org.olat.test.JunitTestHelper;
+import org.olat.test.OlatTestCase;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Initial date: 10.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class BusinessGroupMembershipProcessorTest extends OlatTestCase {
+	
+	@Autowired
+	private DB dbInstance;
+	@Autowired
+	private GroupDAO groupDao;
+	@Autowired
+	private BusinessGroupDAO businessGroupDao;
+	@Autowired
+	private NotificationsManager notificationManager;
+	@Autowired
+	private BusinessGroupService businessGroupService;
+	@Autowired
+	private BusinessGroupRelationDAO businessGroupRelationDao;
+	@Autowired
+	private RepositoryEntryRelationDAO repositoryEntryRelationDao;
+	@Autowired
+	private BusinessGroupMembershipProcessor businessGroupMembershipProcessor;
+	
+	@Test
+	public void testUnlinkMemberOfBusinessGroup() {
+		//create a group with members
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-1");
+		Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-2");
+		Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-3");
+		BusinessGroup businessGroup = businessGroupDao.createAndPersist(coach, "mbr-proc-1", "mbr-proc-desc", -1, -1, false, false, false, false, false);
+		businessGroupRelationDao.addRole(id1, businessGroup, GroupRoles.participant.name());
+		businessGroupRelationDao.addRole(id2, businessGroup, GroupRoles.participant.name());
+		
+		//create a publisher
+		SubscriptionContext context = new SubscriptionContext(businessGroup, "");
+		PublisherData publisherData = new PublisherData("testGroupPublishers", "e.g. something", null);
+		Publisher publisher = notificationManager.getOrCreatePublisher(context, publisherData);
+		Assert.assertNotNull(publisher);
+		dbInstance.commitAndCloseSession();
+		
+		//subscribe
+		notificationManager.subscribe(coach, context, publisherData);
+		notificationManager.subscribe(id1, context, publisherData);
+		notificationManager.subscribe(id2, context, publisherData);
+		dbInstance.commitAndCloseSession();
+		
+		//remove id1 and check subscription
+		MailPackage mailing = new MailPackage(false);
+		List<Identity> identitiesToRemove = Collections.singletonList(id1);
+		businessGroupService.removeParticipants(coach, identitiesToRemove, businessGroup, mailing);
+		
+		//wait for the remove of subscription
+		waitForCondition(new CheckUnsubscription(id1, context, dbInstance, notificationManager), 5000);
+		
+		//check that subscription of id1 was deleted but not the ones of id2 and coach
+		boolean subscribedId1 = notificationManager.isSubscribed(id1, context);
+		Assert.assertFalse(subscribedId1);
+		boolean subscribedId2 = notificationManager.isSubscribed(id2, context);
+		Assert.assertTrue(subscribedId2);
+		boolean subscribedCoach = notificationManager.isSubscribed(coach, context);
+		Assert.assertTrue(subscribedCoach);
+	}
+	
+	@Test
+	public void testUnlinkMemberOfBusinessGroup_with2Roles() {
+		//create a group with members
+		Identity member = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-4");
+		BusinessGroup businessGroup = businessGroupDao.createAndPersist(member, "mbr-proc-2", "mbr-proc-desc", -1, -1, false, false, false, false, false);
+		businessGroupRelationDao.addRole(member, businessGroup, GroupRoles.participant.name());
+		
+		//create a publisher
+		SubscriptionContext context = new SubscriptionContext(businessGroup, "");
+		PublisherData publisherData = new PublisherData("testGroupPublishers", "e.g. something", null);
+		notificationManager.getOrCreatePublisher(context, publisherData);
+		notificationManager.subscribe(member, context, publisherData);
+		dbInstance.commitAndCloseSession();
+		
+		//remove id1 as participant and check subscription
+		businessGroupRelationDao.removeRole(member, businessGroup, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//manually trigger the event
+		businessGroupMembershipProcessor.event(new BusinessGroupModifiedEvent(BusinessGroupModifiedEvent.IDENTITY_REMOVED_EVENT, businessGroup, member));
+		dbInstance.commitAndCloseSession();
+	
+		//check that subscription of member was not deleted because it's still coach
+		boolean subscribed = notificationManager.isSubscribed(member, context);
+		Assert.assertTrue(subscribed);
+	}
+	
+	@Test
+	public void testUnlinkRepositoryEntry() {
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
+		//create a group with members
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-1");
+		Identity id1 = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-2");
+		Identity id2 = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-3");
+		BusinessGroup businessGroup = businessGroupDao.createAndPersist(coach, "mbr-proc-1", "mbr-proc-desc", -1, -1, false, false, false, false, false);
+		businessGroupRelationDao.addRelationToResource(businessGroup, re);
+		businessGroupRelationDao.addRole(id1, businessGroup, GroupRoles.participant.name());
+		businessGroupRelationDao.addRole(id2, businessGroup, GroupRoles.participant.name());
+		repositoryEntryRelationDao.addRole(coach, re, GroupRoles.owner.name());
+		
+		//create a publisher
+		SubscriptionContext context = new SubscriptionContext(re.getOlatResource(), "");
+		PublisherData publisherData = new PublisherData("testGroupPublishers", "e.g. something", null);
+		Publisher publisher = notificationManager.getOrCreatePublisher(context, publisherData);
+		Assert.assertNotNull(publisher);
+		dbInstance.commitAndCloseSession();
+		
+		//subscribe
+		notificationManager.subscribe(coach, context, publisherData);
+		notificationManager.subscribe(id1, context, publisherData);
+		notificationManager.subscribe(id2, context, publisherData);
+		dbInstance.commitAndCloseSession();
+		
+		//remove link between group and repository entry
+		businessGroupService.removeResourceFrom(Collections.singletonList(businessGroup), re);
+		dbInstance.commitAndCloseSession();
+		
+		//wait for the remove of subscription
+		waitForCondition(new CheckUnsubscription(id1, context, dbInstance, notificationManager), 5000);
+		waitForCondition(new CheckUnsubscription(id2, context, dbInstance, notificationManager), 5000);
+		
+		//check that subscription of id1 was deleted but not the ones of id2 and coach
+		boolean subscribedId1 = notificationManager.isSubscribed(id1, context);
+		Assert.assertFalse(subscribedId1);
+		boolean subscribedId2 = notificationManager.isSubscribed(id2, context);
+		Assert.assertFalse(subscribedId2);
+		boolean subscribedCoach = notificationManager.isSubscribed(coach, context);
+		Assert.assertTrue(subscribedCoach);
+	}
+
+	private static class CheckUnsubscription implements Callable<Boolean> {
+		
+		private final DB db;
+		private final NotificationsManager notificationMgr;
+		
+		private final Identity identity;
+		private final SubscriptionContext context;
+		
+		public CheckUnsubscription(Identity identity, SubscriptionContext context, DB db, NotificationsManager notificationMgr) {
+			this.identity = identity;
+			this.context = context;
+			this.db = db;
+			this.notificationMgr = notificationMgr;
+		}
+
+		@Override
+		public Boolean call() throws Exception {
+			boolean subscribed = notificationMgr.isSubscribed(identity, context);
+			db.commitAndCloseSession();
+			return !subscribed;
+		}
+		
+	}
+}
diff --git a/src/test/java/org/olat/modules/coach/CoachingDAOTest.java b/src/test/java/org/olat/modules/coach/CoachingDAOTest.java
deleted file mode 100644
index ae8b7376a095b012ba6b2f3bb4fbdba0ca6dfa5e..0000000000000000000000000000000000000000
--- a/src/test/java/org/olat/modules/coach/CoachingDAOTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.modules.coach;
-
-import java.io.File;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.List;
-import java.util.UUID;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.olat.basesecurity.GroupRoles;
-import org.olat.core.commons.persistence.DB;
-import org.olat.core.id.Identity;
-import org.olat.course.CourseFactory;
-import org.olat.course.ICourse;
-import org.olat.modules.coach.manager.CoachingDAO;
-import org.olat.modules.coach.model.StudentStatEntry;
-import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryService;
-import org.olat.test.JunitTestHelper;
-import org.olat.test.OlatTestCase;
-import org.springframework.beans.factory.annotation.Autowired;
-
-/**
- * 
- * Initial date: 24.07.2014<br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- *
- */
-public class CoachingDAOTest extends OlatTestCase {
-	
-	@Autowired
-	private DB dbInstance;
-	@Autowired
-	private CoachingDAO coachingDAO;
-	@Autowired
-	private RepositoryService repositoryService;
-	
-	@Test
-	public void getStudents()
-	throws URISyntaxException {
-		URL courseWithForumsUrl = CoachingDAOTest.class.getResource("CoachingCourse.zip");
-		File courseWithForums = new File(courseWithForumsUrl.toURI());
-		String softKey = UUID.randomUUID().toString();
-		RepositoryEntry re = CourseFactory.deployCourseFromZIP(courseWithForums, softKey, 4);
-		Assert.assertNotNull(re);
-
-		dbInstance.commitAndCloseSession();
-		
-		ICourse course = CourseFactory.loadCourse(re.getOlatResource().getResourceableId());			
-		boolean enabled =course.getCourseEnvironment().getCourseConfig().isEfficencyStatementEnabled();
-		Assert.assertTrue(enabled);
-		
-		Identity coach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
-		repositoryService.addRole(coach, re, GroupRoles.coach.name());
-		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-1");
-		repositoryService.addRole(participant1, re, GroupRoles.participant.name());
-		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-2");
-		repositoryService.addRole(participant2, re, GroupRoles.participant.name());
-		dbInstance.commitAndCloseSession();
-		
-		
-		List<StudentStatEntry> stats = coachingDAO.getStudentsStatistics(coach);
-		Assert.assertNotNull(stats);
-		Assert.assertEquals(2, stats.size());
-	}
-
-}
diff --git a/src/test/java/org/olat/modules/coach/CoachingServiceTest.java b/src/test/java/org/olat/modules/coach/CoachingLargeTest.java
similarity index 77%
rename from src/test/java/org/olat/modules/coach/CoachingServiceTest.java
rename to src/test/java/org/olat/modules/coach/CoachingLargeTest.java
index 8726a3316befca800de3f8351c019ee02a85f59b..8ad875c5898bbe8d703fa7fef328952295aa2dc9 100644
--- a/src/test/java/org/olat/modules/coach/CoachingServiceTest.java
+++ b/src/test/java/org/olat/modules/coach/CoachingLargeTest.java
@@ -19,13 +19,11 @@
  */
 package org.olat.modules.coach;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 
+import java.io.File;
+import java.net.URL;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -36,34 +34,37 @@ import java.util.concurrent.ConcurrentHashMap;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.olat.basesecurity.BaseSecurity;
 import org.olat.basesecurity.GroupRoles;
-import org.olat.basesecurity.IdentityRef;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.id.Identity;
-import org.olat.course.ICourse;
+import org.olat.course.CourseFactory;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupService;
 import org.olat.group.manager.BusinessGroupRelationDAO;
+import org.olat.modules.coach.manager.CoachingDAO;
 import org.olat.modules.coach.model.CourseStatEntry;
 import org.olat.modules.coach.model.EfficiencyStatementEntry;
 import org.olat.modules.coach.model.GroupStatEntry;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
 import org.olat.modules.coach.model.StudentStatEntry;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryService;
-import org.olat.restapi.repository.course.CoursesWebService;
 import org.olat.test.JunitTestHelper;
 import org.olat.test.OlatTestCase;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
+ * This is mainly a test with a large number of courses and groups.
+ * It check if the rights courses are seen, but not details of the
+ * statistics.
  * 
  * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
  */
-public class CoachingServiceTest extends OlatTestCase {
+public class CoachingLargeTest extends OlatTestCase {
 	
 	private static boolean isInitialized = false;
+	private static final Random rnd = new Random();
 	
 	private static int NUM_OF_COURSES = 5;
 	private static int NUM_OF_STUDENTS = 15;
@@ -83,26 +84,24 @@ public class CoachingServiceTest extends OlatTestCase {
 	@Autowired
 	private DB dbInstance;
 	@Autowired
+	private CoachingDAO coachingDao;
+	@Autowired
 	private CoachingService coachingService;
 	@Autowired
 	private RepositoryManager repositoryManager;
 	@Autowired
 	private RepositoryService repositoryService;
 	@Autowired
-	private BaseSecurity securityManager;
+	private BusinessGroupService businessGroupService;
 	@Autowired
 	private BusinessGroupRelationDAO businessGroupRelationDao;
-	@Autowired
-	private BusinessGroupService businessGroupService;
-	
-
 	
 	@Before
 	public void setUp() throws Exception {
 		if(isInitialized) return;
 		
 		//author
-		author = JunitTestHelper.createAndPersistIdentityAsAuthor("author_" + getUUID());
+		author = JunitTestHelper.createAndPersistIdentityAsAuthor("author_" + UUID.randomUUID());
 		//r1 set of coach
 		coach10 = JunitTestHelper.createAndPersistIdentityAsRndUser("coach-10");
 		coach11 = JunitTestHelper.createAndPersistIdentityAsRndUser("coach-11");
@@ -131,8 +130,11 @@ public class CoachingServiceTest extends OlatTestCase {
 
 		//create courses with members
 		for(int i=0; i<NUM_OF_COURSES; i++) {
-			ICourse course = CoursesWebService.createEmptyCourse(author, "Coaching - " + i, "Coaching - " + i, null);
-			RepositoryEntry re = repositoryManager.lookupRepositoryEntry(course, false);
+			
+			URL courseWithForumsUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+			File courseWithForums = new File(courseWithForumsUrl.toURI());
+			String softKey = UUID.randomUUID().toString();
+			RepositoryEntry re = CourseFactory.deployCourseFromZIP(courseWithForums, softKey, 3);
 			if(i == 0) {
 				course10 = re;
 			}
@@ -170,8 +172,11 @@ public class CoachingServiceTest extends OlatTestCase {
 		
 		//create courses with members
 		for(int i=0; i<NUM_OF_COURSES; i++) {
-			ICourse course = CoursesWebService.createEmptyCourse(author, "Coaching - " + i, "Coaching - " + i, null);
-			RepositoryEntry re = repositoryManager.lookupRepositoryEntry(course, false);
+			
+			URL courseWithForumsUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+			File courseWithForums = new File(courseWithForumsUrl.toURI());
+			String softKey = UUID.randomUUID().toString();
+			RepositoryEntry re = CourseFactory.deployCourseFromZIP(courseWithForums, softKey, 3);
 			// create groups without waiting list
 			BusinessGroup g1 = businessGroupService.createBusinessGroup(author, "coach-g1", null, new Integer(0), new Integer(10), false, false, re);
 			BusinessGroup g2 = businessGroupService.createBusinessGroup(author, "coach-g2", null, new Integer(0), new Integer(10), false, false, re);
@@ -236,7 +241,7 @@ public class CoachingServiceTest extends OlatTestCase {
 		if(!coachToGroupCourseMap.containsKey(coachKey)) {
 			coachToGroupCourseMap.put(coachKey, new ArrayList<Long>());
 		}
-		coachToGroupCourseMap.get(coachKey).add(re.getKey());
+		coachToGroupCourseMap.get(coachKey).add(group.getKey());
 	}
 	
 	private void addStudentToCourse(Identity student, RepositoryEntry re) {
@@ -255,8 +260,6 @@ public class CoachingServiceTest extends OlatTestCase {
 		studentToCourseMap.get(student).add(re);
 	}
 	
-	private Random rnd = new Random();
-	
 	public List<Identity> reservoirSample(Iterable<Identity> items, int m) {   
 		List<Identity> res = new ArrayList<Identity>(m);   
 		int count = 0;   
@@ -273,75 +276,83 @@ public class CoachingServiceTest extends OlatTestCase {
 		return res;
 	}
 	
-	@Test
-	public void testManagers() {
-		assertNotNull(coachingService);
-		assertNotNull(repositoryManager);
-		assertNotNull(securityManager);
-		assertNotNull(businessGroupService);
-	}
-	
 	@Test
 	public void getStudentsStatistics() {
 		List<StudentStatEntry> statEntries = coachingService.getStudentsStatistics(coach10);
-		assertNotNull(statEntries);
+		Assert.assertNotNull(statEntries);
 	}
 	
 	@Test
 	public void getCoursesStatistics() {
-		List<CourseStatEntry> statEntries = coachingService.getCoursesStatistics(coach10);
-		assertNotNull(statEntries);
-		List<Long> myCourses = coachToCourseMap.get(coach10.getKey());
-		assertNotNull(myCourses);
-		assertEquals(myCourses.size(), statEntries.size());
+		List<CourseStatEntry> courseStatEntries = coachingService.getCoursesStatistics(coach10);
+		Assert.assertNotNull(courseStatEntries);
+		List<Long> coachedCourses = coachToCourseMap.get(coach10.getKey());
+		Assert.assertNotNull(coachedCourses);
+		Assert.assertEquals(coachedCourses.size(), courseStatEntries.size());
+		
+		List<Long> courseStatsKeys = new ArrayList<>();
+		for(CourseStatEntry statEntry:courseStatEntries) {
+			courseStatsKeys.add(statEntry.getRepoKey());
+		}
+		Assert.assertTrue(courseStatsKeys.containsAll(coachedCourses));
+		Assert.assertTrue(coachedCourses.containsAll(courseStatsKeys));
 	}
 	
 	@Test
 	public void getGroupsStatistics() {
-		List<GroupStatEntry> statEntries = coachingService.getGroupsStatistics(coach10);
-		assertNotNull(statEntries);
-		List<Long> myCourses = coachToGroupCourseMap.get(coach10.getKey());
-		assertNotNull(myCourses);
+		List<GroupStatEntry> groupStatEntries = coachingService.getGroupsStatistics(coach10);
+		Assert.assertNotNull(groupStatEntries);
+		List<Long> coachedGroups = coachToGroupCourseMap.get(coach10.getKey());
+		Assert.assertNotNull(coachedGroups);
+		Assert.assertEquals(coachedGroups.size(), groupStatEntries.size());
 		
-		assertEquals(myCourses.size(), statEntries.size());
+		List<Long> groupStatsKeys = new ArrayList<>();
+		for(GroupStatEntry statEntry:groupStatEntries) {
+			groupStatsKeys.add(statEntry.getGroupKey());
+		}
+		
+		Assert.assertTrue(groupStatsKeys.containsAll(coachedGroups));
+		Assert.assertTrue(coachedGroups.containsAll(groupStatsKeys));
 	}
 	
 	@Test
 	public void getCourse() {
-		List<Long> myCourses = coachToCourseMap.get(coach10.getKey());
-		assertNotNull(myCourses);
+		List<Long> coachedCourses = coachToCourseMap.get(coach10.getKey());
+		Assert.assertNotNull(coachedCourses);
 
 		List<EfficiencyStatementEntry> statEntries = coachingService.getCourse(coach10, course10);
-		assertNotNull(statEntries);
-		assertFalse(statEntries.isEmpty());
-		assertTrue(myCourses.contains(course10.getKey()));
+		Assert.assertNotNull(statEntries);
+		Assert.assertFalse(statEntries.isEmpty());
+		Assert.assertTrue(coachedCourses.contains(course10.getKey()));
 
 		for(EfficiencyStatementEntry statEntry:statEntries) {
-			assertNotNull(statEntry.getCourse());
-			assertEquals(course10.getKey(), statEntry.getCourse().getKey());
+			Assert.assertNotNull(statEntry.getCourse());
+			Assert.assertEquals(course10.getKey(), statEntry.getCourse().getKey());
 		}
 	}
 	
 	@Test
 	public void getStudentsCourses() {
-		List<RepositoryEntry> courses = coachingService.getStudentsCourses(coach10, student10, 0, -1);
-		assertNotNull(courses);
+		List<RepositoryEntry> courses = coachingService.getStudentsCourses(coach10, student10);
+		Assert.assertNotNull(courses);
 		
 		List<Long> myCourses = coachToCourseMap.get(coach10.getKey());
-		assertNotNull(myCourses);
+		Assert.assertNotNull(myCourses);
 	}
 	
 	@Test
 	public void getUserCourses() {
-		List<RepositoryEntry> courses = coachingService.getUserCourses(student10, 0, -1);
+		List<RepositoryEntry> courses = coachingService.getUserCourses(student10);
 		Assert.assertNotNull(courses);
 		Assert.assertEquals(studentToCourseMap.get(student10).size(), courses.size());
 	}
 	
 	@Test
 	public void getUsersStatistics() {
-		List<IdentityRef> identities = Collections.<IdentityRef>singletonList(student10);
-		List<StudentStatEntry> statEntries = coachingService.getUsersStatistics(identities);
+		SearchCoachedIdentityParams params = new SearchCoachedIdentityParams();
+		params.setLogin(student10.getName());
+		
+		List<StudentStatEntry> statEntries = coachingService.getUsersStatistics(params);
 		Assert.assertNotNull(statEntries);
 		Assert.assertEquals(1, statEntries.size());
 		
@@ -349,9 +360,4 @@ public class CoachingServiceTest extends OlatTestCase {
 		Assert.assertEquals(student10.getKey(), statEntry.getStudentKey());
 		Assert.assertEquals(studentToCourseMap.get(student10).size(), statEntry.getCountRepo());
 	}
-	
-	private String getUUID() {
-		return UUID.randomUUID().toString().replace("-", "");
-	}
-
-}
+}
\ No newline at end of file
diff --git a/src/test/java/org/olat/modules/coach/manager/CoachingDAOTest.java b/src/test/java/org/olat/modules/coach/manager/CoachingDAOTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9609cf432f255128533286a26e15c537f825c0a2
--- /dev/null
+++ b/src/test/java/org/olat/modules/coach/manager/CoachingDAOTest.java
@@ -0,0 +1,1036 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.modules.coach.manager;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.olat.basesecurity.BaseSecurity;
+import org.olat.basesecurity.GroupRoles;
+import org.olat.basesecurity.IdentityRef;
+import org.olat.core.commons.persistence.DB;
+import org.olat.core.id.Identity;
+import org.olat.core.id.User;
+import org.olat.core.id.UserConstants;
+import org.olat.core.util.CodeHelper;
+import org.olat.course.CourseFactory;
+import org.olat.course.ICourse;
+import org.olat.course.assessment.EfficiencyStatementManager;
+import org.olat.course.assessment.manager.UserCourseInformationsManager;
+import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupRef;
+import org.olat.group.BusinessGroupService;
+import org.olat.group.manager.BusinessGroupRelationDAO;
+import org.olat.modules.coach.CoachingLargeTest;
+import org.olat.modules.coach.model.CourseStatEntry;
+import org.olat.modules.coach.model.GroupStatEntry;
+import org.olat.modules.coach.model.SearchCoachedIdentityParams;
+import org.olat.modules.coach.model.StudentStatEntry;
+import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryEntryRef;
+import org.olat.repository.RepositoryService;
+import org.olat.test.JunitTestHelper;
+import org.olat.test.OlatTestCase;
+import org.olat.user.UserManager;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Initial date: 24.07.2014<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CoachingDAOTest extends OlatTestCase {
+	
+	@Autowired
+	private DB dbInstance;
+	@Autowired
+	private CoachingDAO coachingDAO;
+	@Autowired
+	private UserManager userManager;
+	@Autowired
+	private BaseSecurity securityManager;
+	@Autowired
+	private RepositoryService repositoryService;
+	@Autowired
+	private BusinessGroupService businessGroupService;
+	@Autowired
+	private BusinessGroupRelationDAO businessGroupRelationDao;
+	@Autowired
+	private UserCourseInformationsManager userCourseInformationsManager;
+	@Autowired
+	private EfficiencyStatementManager effManager;
+	
+	/**
+	 * 
+	 * 1 course with 2 groups.
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void getStatistics_duplicateInGroups()
+	throws URISyntaxException {
+		URL courseWithForumsUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File courseWithForums = new File(courseWithForumsUrl.toURI());
+		String softKey = UUID.randomUUID().toString();
+		RepositoryEntry re = CourseFactory.deployCourseFromZIP(courseWithForums, softKey, 4);
+		Assert.assertNotNull(re);
+
+		dbInstance.commitAndCloseSession();
+		
+		ICourse course = CourseFactory.loadCourse(re.getOlatResource().getResourceableId());			
+		boolean enabled = course.getCourseEnvironment().getCourseConfig().isEfficencyStatementEnabled();
+		Assert.assertTrue(enabled);
+		
+		//re -> owner,coach, p1, p2
+		//  -> group 1 p1
+		//  -> group 2 p2
+		
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		repositoryService.addRole(coach, re, GroupRoles.owner.name());
+		repositoryService.addRole(coach, re, GroupRoles.coach.name());
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-1");
+		repositoryService.addRole(participant1, re, GroupRoles.participant.name());
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-2");
+		repositoryService.addRole(participant2, re, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//members of 2 groups
+		BusinessGroup group1 = businessGroupService.createBusinessGroup(coach, "Coaching-grp-1", "tg", null, null, false, false, re);
+	    businessGroupRelationDao.addRole(participant1, group1, GroupRoles.participant.name());
+	    BusinessGroup group2 = businessGroupService.createBusinessGroup(coach, "Coaching-grp-2", "tg", null, null, false, false, re);
+	    businessGroupRelationDao.addRole(participant1, group2, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//make statements
+	    effManager.createUserEfficiencyStatement(new Date(), 6.0f, true, participant1, re.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 2.0f, false, participant2, re.getOlatResource());
+		dbInstance.commitAndCloseSession();
+		//make user infos
+		userCourseInformationsManager.updateUserCourseInformations(course.getResourceableId(), participant1, true);
+		dbInstance.commitAndCloseSession();
+		
+		
+		//native
+		List<CourseStatEntry> nativeStats = coachingDAO.getCoursesStatisticsNative(coach);
+		Assert.assertNotNull(nativeStats);
+		Assert.assertEquals(1, nativeStats.size());
+		CourseStatEntry nativeStat = nativeStats.get(0);
+		Assert.assertEquals(2, nativeStat.getCountStudents());
+		Assert.assertEquals(1, nativeStat.getCountPassed());
+		Assert.assertEquals(1, nativeStat.getCountFailed());
+		Assert.assertEquals(1, nativeStat.getInitialLaunch());
+		Assert.assertEquals(4.0f, nativeStat.getAverageScore(), 0.0001);
+
+		
+		//user native
+		List<StudentStatEntry> nativeUserStats = coachingDAO.getStudentsStatisticsNative(coach);
+		Assert.assertNotNull(nativeUserStats);
+		Assert.assertEquals(2, nativeUserStats.size());
+		//participant1
+		StudentStatEntry entryParticipant1 = getStudentStatEntry(participant1, nativeUserStats);
+		Assert.assertNotNull(entryParticipant1);
+		Assert.assertEquals(1, entryParticipant1.getCountPassed());
+		Assert.assertEquals(0, entryParticipant1.getCountFailed());
+		Assert.assertEquals(0, entryParticipant1.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant1.getInitialLaunch());
+		//participant2
+		StudentStatEntry entryParticipant2 = getStudentStatEntry(participant2, nativeUserStats);
+		Assert.assertNotNull(entryParticipant2);
+		Assert.assertEquals(0, entryParticipant2.getCountPassed());
+		Assert.assertEquals(1, entryParticipant2.getCountFailed());
+		Assert.assertEquals(0, entryParticipant2.getCountNotAttempted());
+		Assert.assertEquals(0, entryParticipant2.getInitialLaunch());
+
+		
+		//group native
+		List<GroupStatEntry> nativeGroupStats = coachingDAO.getGroupsStatisticsNative(coach);
+		Assert.assertNotNull(nativeGroupStats);
+		Assert.assertEquals(2, nativeGroupStats.size());
+		//group 1
+		GroupStatEntry entryGroup1 = getGroupStatEntry(group1, nativeGroupStats);
+		Assert.assertNotNull(entryGroup1);
+		Assert.assertEquals(1, entryGroup1.getCountCourses());
+		Assert.assertEquals(1, entryGroup1.getCountPassed());
+		Assert.assertEquals(0, entryGroup1.getCountFailed());
+		Assert.assertEquals(0, entryGroup1.getCountNotAttempted());
+		Assert.assertEquals(1, entryGroup1.getInitialLaunch());
+		Assert.assertEquals(6.0f, entryGroup1.getAverageScore(), 0.0001f);
+		//group 2
+		GroupStatEntry entryGroup2 = getGroupStatEntry(group1, nativeGroupStats);
+		Assert.assertNotNull(entryGroup2);
+		Assert.assertEquals(1, entryGroup2.getCountCourses());
+		Assert.assertEquals(1, entryGroup2.getCountPassed());
+		Assert.assertEquals(0, entryGroup2.getCountFailed());
+		Assert.assertEquals(0, entryGroup2.getCountNotAttempted());
+		Assert.assertEquals(1, entryGroup2.getInitialLaunch());
+		Assert.assertEquals(6.0f, entryGroup2.getAverageScore(), 0.0001f);
+	}
+	
+	/**
+	 * 3 courses in the same business group
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void getStatistics_notAttempted()
+	throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re1 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re2 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re3 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		repositoryService.addRole(coach, re1, GroupRoles.owner.name());
+		repositoryService.addRole(coach, re1, GroupRoles.coach.name());
+		repositoryService.addRole(coach, re2, GroupRoles.coach.name());
+		repositoryService.addRole(coach, re3, GroupRoles.coach.name());
+		
+		
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-1");
+		repositoryService.addRole(participant1, re2, GroupRoles.participant.name());
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-2");
+		repositoryService.addRole(participant2, re1, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//members of 2 groups
+		BusinessGroup group= businessGroupService.createBusinessGroup(coach, "Coaching-grp-1", "tg", null, null, false, false, re1);
+		businessGroupService.addResourceTo(group, re2);
+		businessGroupService.addResourceTo(group, re3);
+		businessGroupRelationDao.addRole(participant1, group, GroupRoles.participant.name());
+		businessGroupRelationDao.addRole(participant2, group, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//make statements participant 1
+	    effManager.createUserEfficiencyStatement(new Date(), 6.0f, true, participant1, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.0f, false, participant1, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 2.0f, false, participant1, re3.getOlatResource());
+
+		//make statements participant 2
+	    effManager.createUserEfficiencyStatement(new Date(), 6.0f, true, participant2, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), null, null, participant2, re2.getOlatResource());
+		dbInstance.commitAndCloseSession();
+		
+		//make user infos
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant2, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant2, true);
+		dbInstance.commitAndCloseSession();
+		
+		//check course
+		List<CourseStatEntry> nativeStats = coachingDAO.getCoursesStatisticsNative(coach);
+		Assert.assertNotNull(nativeStats);
+		Assert.assertEquals(3, nativeStats.size());
+		CourseStatEntry entryRe1 = getCourseStatEntry(re1, nativeStats);
+		Assert.assertEquals(2, entryRe1.getCountStudents());
+		Assert.assertEquals(2, entryRe1.getCountPassed());
+		Assert.assertEquals(0, entryRe1.getCountFailed());
+		Assert.assertEquals(0, entryRe1.getCountNotAttempted());
+		Assert.assertEquals(2, entryRe1.getInitialLaunch());
+		Assert.assertEquals(6.0f, entryRe1.getAverageScore(), 0.0001);
+		
+		CourseStatEntry entryRe2 = getCourseStatEntry(re2, nativeStats);
+		Assert.assertEquals(2, entryRe2.getCountStudents());
+		Assert.assertEquals(0, entryRe2.getCountPassed());
+		Assert.assertEquals(1, entryRe2.getCountFailed());
+		Assert.assertEquals(1, entryRe2.getCountNotAttempted());
+		Assert.assertEquals(2, entryRe2.getInitialLaunch());
+		Assert.assertEquals(4.0f, entryRe2.getAverageScore(), 0.0001);
+		
+		CourseStatEntry entryRe3 = getCourseStatEntry(re3, nativeStats);
+		Assert.assertEquals(2, entryRe3.getCountStudents());
+		Assert.assertEquals(0, entryRe3.getCountPassed());
+		Assert.assertEquals(1, entryRe3.getCountFailed());
+		Assert.assertEquals(1, entryRe3.getCountNotAttempted());
+		Assert.assertEquals(1, entryRe3.getInitialLaunch());
+		Assert.assertEquals(2.0f, entryRe3.getAverageScore(), 0.0001);
+		
+		
+		//user native
+		List<StudentStatEntry> nativeUserStats = coachingDAO.getStudentsStatisticsNative(coach);
+		Assert.assertNotNull(nativeUserStats);
+		Assert.assertEquals(2, nativeUserStats.size());
+		//participant1
+		StudentStatEntry entryParticipant1 = getStudentStatEntry(participant1, nativeUserStats);
+		Assert.assertNotNull(entryParticipant1);
+		Assert.assertEquals(1, entryParticipant1.getCountPassed());
+		Assert.assertEquals(2, entryParticipant1.getCountFailed());
+		Assert.assertEquals(0, entryParticipant1.getCountNotAttempted());
+		Assert.assertEquals(3, entryParticipant1.getInitialLaunch());
+		Assert.assertEquals(3, entryParticipant1.getCountRepo());
+		//participant2
+		StudentStatEntry entryParticipant2 = getStudentStatEntry(participant2, nativeUserStats);
+		Assert.assertNotNull(entryParticipant2);
+		Assert.assertEquals(1, entryParticipant2.getCountPassed());
+		Assert.assertEquals(0, entryParticipant2.getCountFailed());
+		Assert.assertEquals(2, entryParticipant2.getCountNotAttempted());
+		Assert.assertEquals(2, entryParticipant2.getInitialLaunch());
+		Assert.assertEquals(3, entryParticipant1.getCountRepo());
+
+		
+		//group native
+		List<GroupStatEntry> nativeGroupStats = coachingDAO.getGroupsStatisticsNative(coach);
+		Assert.assertNotNull(nativeGroupStats);
+		Assert.assertEquals(1, nativeGroupStats.size());
+		//group 1
+		GroupStatEntry entryGroup1 = getGroupStatEntry(group, nativeGroupStats);
+		Assert.assertNotNull(entryGroup1);
+		Assert.assertEquals(6, entryGroup1.getCountStudents());
+		Assert.assertEquals(2, entryGroup1.getCountDistinctStudents());
+		Assert.assertEquals(3, entryGroup1.getCountCourses());
+		Assert.assertEquals(2, entryGroup1.getCountPassed());
+		Assert.assertEquals(2, entryGroup1.getCountFailed());
+		Assert.assertEquals(2, entryGroup1.getCountNotAttempted());
+		Assert.assertEquals(5, entryGroup1.getInitialLaunch());
+		Assert.assertEquals(4.5f, entryGroup1.getAverageScore(), 0.0001f);
+	}
+	
+	@Test
+	public void getStatistics_owner()
+	throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re1 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re2 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re3 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		repositoryService.addRole(coach, re1, GroupRoles.owner.name());
+		repositoryService.addRole(coach, re2, GroupRoles.owner.name());
+		repositoryService.addRole(coach, re3, GroupRoles.coach.name());
+		
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-1");
+		repositoryService.addRole(participant1, re1, GroupRoles.participant.name());
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-2");
+		repositoryService.addRole(participant2, re1, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//members of group of re 2
+		BusinessGroup group2 = businessGroupService.createBusinessGroup(null, "Coaching-grp-1", "tg", null, null, false, false, re2);
+		Identity participant3 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-3");
+		businessGroupRelationDao.addRole(participant3, group2, GroupRoles.participant.name());
+		Identity participant4 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-4");
+		businessGroupRelationDao.addRole(participant4, group2, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//members of group of re 3
+		BusinessGroup group3 = businessGroupService.createBusinessGroup(null, "Coaching-grp-1", "tg", null, null, false, false, re3);
+		Identity participant5 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-5");
+		businessGroupRelationDao.addRole(participant5, group3, GroupRoles.participant.name());
+		Identity participant6 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-6");
+		businessGroupRelationDao.addRole(participant6, group3, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//make statements participant 1
+	    effManager.createUserEfficiencyStatement(new Date(), 6.0f, true, participant1, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.0f, false, participant2, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 5.5f, true, participant3, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), null, null, participant4, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.0f, true, participant5, re3.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 3.0f, false, participant6, re3.getOlatResource());
+		dbInstance.commitAndCloseSession();
+		
+		//make user infos
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant2, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant2, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant3, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant4, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant5, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant6, true);
+		dbInstance.commitAndCloseSession();
+		
+		//owner can see participant 1,2,3 and 4
+		// p1 has 1 assessment in re1
+		// p2 has 1 assessment in re1
+		// p3 has 2 assessments in re1 and re2
+		// p4 has 1 assessment in re2
+		// 5 and p6 has 1 assessment in re3
+		
+		List<GroupStatEntry> nativeGroupStats = coachingDAO.getGroupsStatisticsNative(coach);
+		Assert.assertNotNull(nativeGroupStats);
+		Assert.assertEquals(1, nativeGroupStats.size());
+		GroupStatEntry entryGroup2 = getGroupStatEntry(group2, nativeGroupStats);
+		Assert.assertNotNull(entryGroup2);
+		Assert.assertEquals(2, entryGroup2.getCountDistinctStudents());
+		Assert.assertEquals(2, entryGroup2.getInitialLaunch());
+		Assert.assertEquals(1, entryGroup2.getCountPassed());
+		Assert.assertEquals(0, entryGroup2.getCountFailed());
+		Assert.assertEquals(1, entryGroup2.getCountNotAttempted());
+		Assert.assertEquals(5.5f, entryGroup2.getAverageScore(), 0.0001f);
+		
+
+		//re 3 is removed because coach has no visible participants within
+		List<CourseStatEntry> nativeCourseStats = coachingDAO.getCoursesStatisticsNative(coach);
+		Assert.assertNotNull(nativeCourseStats);
+		Assert.assertEquals(2, nativeCourseStats.size());
+		//re 1
+		CourseStatEntry entryCourse1 = getCourseStatEntry(re1, nativeCourseStats);
+		Assert.assertNotNull(entryCourse1);
+		Assert.assertEquals(2, entryCourse1.getCountStudents());
+		Assert.assertEquals(2, entryCourse1.getInitialLaunch());
+		Assert.assertEquals(1, entryCourse1.getCountPassed());
+		Assert.assertEquals(1, entryCourse1.getCountFailed());
+		Assert.assertEquals(0, entryCourse1.getCountNotAttempted());
+		Assert.assertEquals(5.0f, entryCourse1.getAverageScore(), 0.0001f);
+		//re 2
+		CourseStatEntry entryCourse2 = getCourseStatEntry(re2, nativeCourseStats);
+		Assert.assertNotNull(entryCourse2);
+		Assert.assertEquals(2, entryCourse2.getCountStudents());
+		Assert.assertEquals(2, entryCourse2.getInitialLaunch());
+		Assert.assertEquals(1, entryCourse2.getCountPassed());
+		Assert.assertEquals(0, entryCourse2.getCountFailed());
+		Assert.assertEquals(1, entryCourse2.getCountNotAttempted());
+		Assert.assertEquals(5.5f, entryCourse2.getAverageScore(), 0.0001f);
+		
+		//user native
+		List<StudentStatEntry> nativeUserStats = coachingDAO.getStudentsStatisticsNative(coach);
+		Assert.assertNotNull(nativeUserStats);
+	
+		Assert.assertEquals(4, nativeUserStats.size());
+		//participant1 is only in re 1
+		StudentStatEntry entryParticipant1 = getStudentStatEntry(participant1, nativeUserStats);
+		Assert.assertNotNull(entryParticipant1);
+		Assert.assertEquals(1, entryParticipant1.getCountPassed());
+		Assert.assertEquals(0, entryParticipant1.getCountFailed());
+		Assert.assertEquals(0, entryParticipant1.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant1.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipant1.getCountRepo());
+		//participant2 is only in re 1
+		StudentStatEntry entryParticipant2 = getStudentStatEntry(participant2, nativeUserStats);
+		Assert.assertNotNull(entryParticipant2);
+		Assert.assertEquals(0, entryParticipant2.getCountPassed());
+		Assert.assertEquals(1, entryParticipant2.getCountFailed());
+		Assert.assertEquals(0, entryParticipant2.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant2.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipant2.getCountRepo());
+		//participant3 is in re 2 ( via group 2)
+		StudentStatEntry entryParticipant3 = getStudentStatEntry(participant3, nativeUserStats);
+		Assert.assertNotNull(entryParticipant3);
+		Assert.assertEquals(1, entryParticipant3.getCountPassed());
+		Assert.assertEquals(0, entryParticipant3.getCountFailed());
+		Assert.assertEquals(0, entryParticipant3.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant3.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipant3.getCountRepo());
+		//participant4 is in re 2 ( via group 2)
+		StudentStatEntry entryParticipant4 = getStudentStatEntry(participant4, nativeUserStats);
+		Assert.assertNotNull(entryParticipant4);
+		Assert.assertEquals(0, entryParticipant4.getCountPassed());
+		Assert.assertEquals(0, entryParticipant4.getCountFailed());
+		Assert.assertEquals(1, entryParticipant4.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant4.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipant4.getCountRepo());
+	}
+	
+	/**
+	 * Check the access permissions on course (coach can only see courses with memebrsOnly, or access >= 3)
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void getStatistics_permissionOnCourses()
+	throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re1 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 1);
+		RepositoryEntry re2 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 2);
+		RepositoryEntry re3 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 3);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity courseCoach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		Identity groupCoach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		repositoryService.addRole(courseCoach, re1, GroupRoles.coach.name());
+		repositoryService.addRole(courseCoach, re2, GroupRoles.coach.name());
+		repositoryService.addRole(courseCoach, re3, GroupRoles.coach.name());
+		
+		//add participants to courses
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-1");
+		repositoryService.addRole(participant1, re1, GroupRoles.participant.name());
+		Identity participant11 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-11");
+		repositoryService.addRole(participant11, re1, GroupRoles.participant.name());
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-2");
+		repositoryService.addRole(participant2, re2, GroupRoles.participant.name());
+		Identity participant21 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-21");
+		repositoryService.addRole(participant21, re2, GroupRoles.participant.name());
+		Identity participant3 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-3");
+		repositoryService.addRole(participant3, re3, GroupRoles.participant.name());
+		Identity participant31 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-31");
+		repositoryService.addRole(participant31, re3, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//members of group of re 1
+		BusinessGroup group1 = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-1", "tg", null, null, false, false, re1);
+		Identity participantG1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-g1");
+		businessGroupRelationDao.addRole(participantG1, group1, GroupRoles.participant.name());
+		Identity participantG11 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-g11");
+		businessGroupRelationDao.addRole(participantG11, group1, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+
+		//members of group of re 2
+		BusinessGroup group2 = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-2", "tg", null, null, false, false, re2);
+		Identity participantG2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-g2");
+		businessGroupRelationDao.addRole(participantG2, group2, GroupRoles.participant.name());
+		Identity participantG21 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-g22");
+		businessGroupRelationDao.addRole(participantG21, group2, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//members of group of re 3
+		BusinessGroup group3 = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-3", "tg", null, null, false, false, re3);
+		Identity participantG3 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-g3");
+		businessGroupRelationDao.addRole(participantG3, group3, GroupRoles.participant.name());
+		Identity participantG31 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-g33");
+		businessGroupRelationDao.addRole(participantG31, group3, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//make statements participants
+	    effManager.createUserEfficiencyStatement(new Date(), 6.230429f, true, participant1, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.182317f, false, participant11, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.095833f, false, participantG1, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.578924f, false, participantG11, re1.getOlatResource());
+	    
+	    effManager.createUserEfficiencyStatement(new Date(), 2.2894727f, true, participant2, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), null, null, participant21, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 5.2347774f, true, participantG2, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), null, null, participantG21, re2.getOlatResource());
+	    
+	    effManager.createUserEfficiencyStatement(new Date(), 4.0f, true, participant3, re3.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 3.0f, false, participant31, re3.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 5.5f, true, participantG3, re3.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 1.0f, false, participantG31, re3.getOlatResource());
+		dbInstance.commitAndCloseSession();
+		
+		//make user infos
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant11, true);
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participantG1, true);
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participantG11, true);
+		
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant2, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant21, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participantG2, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participantG21, true);
+		
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant3, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant31, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participantG3, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participantG31, true);
+		dbInstance.commitAndCloseSession();
+		
+
+		//course coach cannot see groups
+		List<GroupStatEntry> courseCoachGroupStats = coachingDAO.getGroupsStatisticsNative(courseCoach);
+		Assert.assertNotNull(courseCoachGroupStats);
+		Assert.assertEquals(0, courseCoachGroupStats.size());
+
+		List<GroupStatEntry> groupCoachGroupStats = coachingDAO.getGroupsStatisticsNative(groupCoach);
+		Assert.assertNotNull(groupCoachGroupStats);
+		Assert.assertEquals(1, groupCoachGroupStats.size());
+		GroupStatEntry entryGroup3 = getGroupStatEntry(group3, groupCoachGroupStats);
+		Assert.assertNotNull(entryGroup3);
+		Assert.assertEquals(2, entryGroup3.getCountDistinctStudents());
+		Assert.assertEquals(2, entryGroup3.getInitialLaunch());
+		Assert.assertEquals(1, entryGroup3.getCountPassed());
+		Assert.assertEquals(1, entryGroup3.getCountFailed());
+		Assert.assertEquals(0, entryGroup3.getCountNotAttempted());
+		Assert.assertEquals(3.25f, entryGroup3.getAverageScore(), 0.0001f);
+		
+
+		//course statistics
+		List<CourseStatEntry> courseCoachCourseStats = coachingDAO.getCoursesStatisticsNative(courseCoach);
+		Assert.assertNotNull(courseCoachCourseStats);
+		Assert.assertEquals(1, courseCoachCourseStats.size());
+		CourseStatEntry entryCourse3 = getCourseStatEntry(re3, courseCoachCourseStats);
+		Assert.assertNotNull(entryCourse3);
+		Assert.assertEquals(2, entryCourse3.getCountStudents());
+		Assert.assertEquals(2, entryCourse3.getInitialLaunch());
+		Assert.assertEquals(1, entryCourse3.getCountPassed());
+		Assert.assertEquals(1, entryCourse3.getCountFailed());
+		Assert.assertEquals(0, entryCourse3.getCountNotAttempted());
+		Assert.assertEquals(3.5f, entryCourse3.getAverageScore(), 0.0001f);
+		//group coach can see course 3
+		List<CourseStatEntry> groupCoachCourseStats = coachingDAO.getCoursesStatisticsNative(groupCoach);
+		Assert.assertNotNull(groupCoachCourseStats);
+		Assert.assertEquals(1, groupCoachCourseStats.size());
+		CourseStatEntry entryCourse3g = getCourseStatEntry(re3, groupCoachCourseStats);
+		Assert.assertEquals(2, entryCourse3g.getCountStudents());
+		Assert.assertEquals(2, entryCourse3g.getInitialLaunch());
+		Assert.assertEquals(1, entryCourse3g.getCountPassed());
+		Assert.assertEquals(1, entryCourse3g.getCountFailed());
+		Assert.assertEquals(0, entryCourse3g.getCountNotAttempted());
+		Assert.assertEquals(3.25f, entryCourse3g.getAverageScore(), 0.0001f);
+	
+		
+		//user native
+		List<StudentStatEntry> courseCoachUserStats = coachingDAO.getStudentsStatisticsNative(courseCoach);
+		Assert.assertNotNull(courseCoachUserStats);
+		Assert.assertEquals(2, courseCoachUserStats.size());
+		//participant3 is only in re 1
+		StudentStatEntry entryParticipant3 = getStudentStatEntry(participant3, courseCoachUserStats);
+		Assert.assertNotNull(entryParticipant3);
+		Assert.assertEquals(1, entryParticipant3.getCountPassed());
+		Assert.assertEquals(0, entryParticipant3.getCountFailed());
+		Assert.assertEquals(0, entryParticipant3.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant3.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipant3.getCountRepo());
+		//participant31 is only in re 1
+		StudentStatEntry entryParticipant31 = getStudentStatEntry(participant31, courseCoachUserStats);
+		Assert.assertNotNull(entryParticipant31);
+		Assert.assertEquals(0, entryParticipant31.getCountPassed());
+		Assert.assertEquals(1, entryParticipant31.getCountFailed());
+		Assert.assertEquals(0, entryParticipant31.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipant31.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipant31.getCountRepo());
+		
+		//group coach
+		List<StudentStatEntry> groupCoachUserStats = coachingDAO.getStudentsStatisticsNative(groupCoach);
+		Assert.assertNotNull(groupCoachUserStats);
+		Assert.assertEquals(2, groupCoachUserStats.size());
+
+		//participantG3 is in re 3 ( via group 3)
+		StudentStatEntry entryParticipantG3 = getStudentStatEntry(participantG3, groupCoachUserStats);
+		Assert.assertNotNull(entryParticipantG3);
+		Assert.assertEquals(1, entryParticipantG3.getCountPassed());
+		Assert.assertEquals(0, entryParticipantG3.getCountFailed());
+		Assert.assertEquals(0, entryParticipantG3.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipantG3.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipantG3.getCountRepo());
+		//participantG3 is in re 3 ( via group 3)
+		StudentStatEntry entryParticipantG31 = getStudentStatEntry(participantG31, groupCoachUserStats);
+		Assert.assertNotNull(entryParticipantG31);
+		Assert.assertEquals(0, entryParticipantG31.getCountPassed());
+		Assert.assertEquals(1, entryParticipantG31.getCountFailed());
+		Assert.assertEquals(0, entryParticipantG31.getCountNotAttempted());
+		Assert.assertEquals(1, entryParticipantG31.getInitialLaunch());
+		Assert.assertEquals(1, entryParticipantG31.getCountRepo());
+	}
+	
+	/**
+	 * This is an important test to check if the return values of the statistics
+	 * are correctly handled because some of them can be null or 0.
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void getStatistics_emptyStatements_emptyCourseInfos()
+	throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re1 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re2 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		repositoryService.addRole(coach, re1, GroupRoles.owner.name());
+		repositoryService.addRole(coach, re2, GroupRoles.coach.name());
+		
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-1");
+		repositoryService.addRole(participant1, re1, GroupRoles.participant.name());
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-2");
+		repositoryService.addRole(participant2, re1, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//groups
+		BusinessGroup group1 = businessGroupService.createBusinessGroup(null, "Coaching-grp-1", "tg", null, null, false, false, re1);
+		Identity participant3 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-3");
+		businessGroupRelationDao.addRole(participant3, group1, GroupRoles.participant.name());
+		Identity participant4 = JunitTestHelper.createAndPersistIdentityAsRndUser("Coaching-Part-4");
+		businessGroupRelationDao.addRole(participant4, group1, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//check groups statistics
+		List<GroupStatEntry> nativeGroupStats = coachingDAO.getGroupsStatisticsNative(coach);
+		Assert.assertNotNull(nativeGroupStats);
+		Assert.assertEquals(1, nativeGroupStats.size());
+		GroupStatEntry entryGroup1 = getGroupStatEntry(group1, nativeGroupStats);
+		Assert.assertNotNull(entryGroup1);
+		Assert.assertEquals(2, entryGroup1.getCountDistinctStudents());
+		Assert.assertEquals(0, entryGroup1.getInitialLaunch());
+		Assert.assertEquals(0, entryGroup1.getCountPassed());
+		Assert.assertEquals(0, entryGroup1.getCountFailed());
+		Assert.assertEquals(2, entryGroup1.getCountNotAttempted());
+		Assert.assertNull(entryGroup1.getAverageScore());
+		
+		//courses
+		List<CourseStatEntry> nativeCourseStats = coachingDAO.getCoursesStatisticsNative(coach);
+		Assert.assertNotNull(nativeCourseStats);
+		Assert.assertEquals(1, nativeCourseStats.size());
+		//re 1
+		CourseStatEntry entryCourse1 = getCourseStatEntry(re1, nativeCourseStats);
+		Assert.assertNotNull(entryCourse1);
+		Assert.assertEquals(4, entryCourse1.getCountStudents());
+		Assert.assertEquals(0, entryCourse1.getInitialLaunch());
+		Assert.assertEquals(0, entryCourse1.getCountPassed());
+		Assert.assertEquals(0, entryCourse1.getCountFailed());
+		Assert.assertEquals(4, entryCourse1.getCountNotAttempted());
+		Assert.assertNull(entryCourse1.getAverageScore());
+
+		
+		//user native
+		List<StudentStatEntry> nativeUserStats = coachingDAO.getStudentsStatisticsNative(coach);
+		Assert.assertNotNull(nativeUserStats);
+		Assert.assertEquals(4, nativeUserStats.size());
+		//participants have all the same statistics
+		Identity[] participants = new Identity[]{ participant1, participant2, participant3, participant4};
+		for(Identity participant:participants) {
+			StudentStatEntry entryParticipant = getStudentStatEntry(participant, nativeUserStats);
+			Assert.assertNotNull(entryParticipant);
+			Assert.assertEquals(0, entryParticipant.getCountPassed());
+			Assert.assertEquals(0, entryParticipant.getCountFailed());
+			Assert.assertEquals(1, entryParticipant.getCountNotAttempted());
+			Assert.assertEquals(0, entryParticipant.getInitialLaunch());
+			Assert.assertEquals(1, entryParticipant.getCountRepo());
+		}
+	}
+	
+	/**
+	 * This is an important test to check if the return values of the statistics
+	 * are correctly handled because some of them can be null or 0.
+	 * 
+	 * @throws URISyntaxException
+	 */
+	@Test
+	public void getStatistics_empty()
+	throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re1 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re2 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsAuthor("Coach-1-" + UUID.randomUUID());
+		repositoryService.addRole(coach, re1, GroupRoles.owner.name());
+		repositoryService.addRole(coach, re2, GroupRoles.coach.name());
+		//groups
+		BusinessGroup group = businessGroupService.createBusinessGroup(null, "Coaching-grp-1", "tg", null, null, false, false, re1);
+		dbInstance.commitAndCloseSession();
+		Assert.assertNotNull(group);
+
+		//groups (method doesn't return courses without participant)
+		List<GroupStatEntry> nativeGroupStats = coachingDAO.getGroupsStatisticsNative(coach);
+		Assert.assertNotNull(nativeGroupStats);
+		Assert.assertEquals(0, nativeGroupStats.size());
+		
+		//courses (method doesn't return courses without participant)
+		List<CourseStatEntry> nativeCourseStats = coachingDAO.getCoursesStatisticsNative(coach);
+		Assert.assertNotNull(nativeCourseStats);
+		Assert.assertEquals(0, nativeCourseStats.size());
+
+		//user native
+		List<StudentStatEntry> nativeUserStats = coachingDAO.getStudentsStatisticsNative(coach);
+		Assert.assertNotNull(nativeUserStats);
+		Assert.assertEquals(0, nativeUserStats.size());
+	}
+	
+	@Test
+	public void getUsers()
+	throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re1 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re2 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		RepositoryEntry re3 = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsRndUser("User-Part-1");
+		repositoryService.addRole(participant, re1, GroupRoles.participant.name());
+		repositoryService.addRole(participant, re2, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		// groups
+		BusinessGroup group2 = businessGroupService.createBusinessGroup(null, "Coaching-grp-1", "tg", null, null, false, false, re2);
+		businessGroupRelationDao.addRole(participant, group2, GroupRoles.participant.name());
+		BusinessGroup group3 = businessGroupService.createBusinessGroup(null, "Coaching-grp-1", "tg", null, null, false, false, re3);
+		businessGroupRelationDao.addRole(participant, group3, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+
+		//make statements participant 1
+	    effManager.createUserEfficiencyStatement(new Date(), 6.0f, true, participant, re1.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 4.0f, false, participant, re2.getOlatResource());
+	    effManager.createUserEfficiencyStatement(new Date(), 2.0f, false, participant, re3.getOlatResource());
+		dbInstance.commitAndCloseSession();
+		
+		//make user infos
+		userCourseInformationsManager.updateUserCourseInformations(re1.getOlatResource().getResourceableId(), participant, true);
+		userCourseInformationsManager.updateUserCourseInformations(re2.getOlatResource().getResourceableId(), participant, true);
+		userCourseInformationsManager.updateUserCourseInformations(re3.getOlatResource().getResourceableId(), participant, true);
+		dbInstance.commitAndCloseSession();
+
+		//update props
+		User partUser = participant.getUser();
+		partUser.setProperty(UserConstants.FIRSTNAME, "Rei");
+		partUser.setProperty(UserConstants.LASTNAME, "Ayanami");
+		partUser.setProperty(UserConstants.EMAIL, "rei.ayanami@openolat.com");
+		partUser = userManager.updateUser(partUser);
+		dbInstance.commitAndCloseSession();
+		
+		
+		//search by first name
+		SearchCoachedIdentityParams params = new SearchCoachedIdentityParams();
+		Map<String,String> props = new HashMap<>();
+		props.put(UserConstants.FIRSTNAME, "re");
+		params.setUserProperties(props);
+		List<StudentStatEntry> stats = coachingDAO.getUsersStatisticsNative(params);
+		Assert.assertNotNull(stats);
+		Assert.assertFalse(stats.isEmpty());
+		
+		//check participant
+		StudentStatEntry entryStat = getStudentStatEntry(participant, stats);
+		Assert.assertNotNull(entryStat);
+		Assert.assertEquals(3, entryStat.getCountRepo());
+		Assert.assertEquals(3, entryStat.getInitialLaunch());
+		Assert.assertEquals(1, entryStat.getCountPassed());
+		Assert.assertEquals(2, entryStat.getCountFailed());
+		Assert.assertEquals(0, entryStat.getCountNotAttempted());
+
+
+		//search by user name
+		SearchCoachedIdentityParams loginParams = new SearchCoachedIdentityParams();
+		loginParams.setLogin(participant.getName());
+		List<StudentStatEntry> loginStats = coachingDAO.getUsersStatisticsNative(loginParams);
+		Assert.assertNotNull(loginStats);
+		Assert.assertEquals(1, loginStats.size());
+		
+		//check participant
+		StudentStatEntry loginStat = loginStats.get(0);
+		Assert.assertNotNull(loginStat);
+		Assert.assertEquals(3, loginStat.getCountRepo());
+		Assert.assertEquals(3, loginStat.getInitialLaunch());
+		Assert.assertEquals(1, loginStat.getCountPassed());
+		Assert.assertEquals(2, loginStat.getCountFailed());
+		Assert.assertEquals(0, loginStat.getCountNotAttempted());
+	}
+	
+	@Test
+	public void getStudents_coach_course() throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("User-Part-1");
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("User-Part-1");
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("User-Part-2");
+		Identity participant3 = JunitTestHelper.createAndPersistIdentityAsRndUser("User-Part-3");
+		
+		repositoryService.addRole(coach, re, GroupRoles.coach.name());
+		repositoryService.addRole(participant1, re, GroupRoles.participant.name());
+		repositoryService.addRole(participant2, re, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		// groups
+		BusinessGroup group2 = businessGroupService.createBusinessGroup(coach, "Coaching-grp-1", "tg", null, null, false, false, re);
+		businessGroupRelationDao.addRole(participant2, group2, GroupRoles.participant.name());
+		BusinessGroup group3 = businessGroupService.createBusinessGroup(coach, "Coaching-grp-1", "tg", null, null, false, false, re);
+		businessGroupRelationDao.addRole(participant3, group3, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		List<Long> identityKeys = coachingDAO.getStudents(coach, re);
+		Assert.assertNotNull(identityKeys);
+		Assert.assertEquals(3, identityKeys.size());
+		Assert.assertTrue(identityKeys.contains(participant1.getKey()));
+		Assert.assertTrue(identityKeys.contains(participant2.getKey()));
+		Assert.assertTrue(identityKeys.contains(participant3.getKey()));
+	}
+	
+	@Test
+	public void getStudents_owner_course() throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+		
+		//members of courses
+		Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("Owner-1");
+		Identity groupCoach = JunitTestHelper.createAndPersistIdentityAsRndUser("Group coach-1");
+		Identity participant1 = JunitTestHelper.createAndPersistIdentityAsRndUser("Part-1");
+		Identity participant2 = JunitTestHelper.createAndPersistIdentityAsRndUser("Part-2");
+		Identity participant3 = JunitTestHelper.createAndPersistIdentityAsRndUser("Part-3");
+		Identity participant4 = JunitTestHelper.createAndPersistIdentityAsRndUser("Part-4");
+		
+		repositoryService.addRole(owner, re, GroupRoles.owner.name());
+		repositoryService.addRole(participant1, re, GroupRoles.participant.name());
+		repositoryService.addRole(participant2, re, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		// groups
+		BusinessGroup group2 = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-1", "tg", null, null, false, false, re);
+		businessGroupRelationDao.addRole(participant2, group2, GroupRoles.participant.name());
+		BusinessGroup group3 = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-1", "tg", null, null, false, false, re);
+		businessGroupRelationDao.addRole(participant3, group3, GroupRoles.participant.name());
+		businessGroupRelationDao.addRole(participant4, group3, GroupRoles.participant.name());
+		dbInstance.commitAndCloseSession();
+		
+		//owner
+		List<Long> ownerIdentityKeys = coachingDAO.getStudents(owner, re);
+		Assert.assertNotNull(ownerIdentityKeys);
+		Assert.assertEquals(4, ownerIdentityKeys.size());
+		Assert.assertTrue(ownerIdentityKeys.contains(participant1.getKey()));
+		Assert.assertTrue(ownerIdentityKeys.contains(participant2.getKey()));
+		Assert.assertTrue(ownerIdentityKeys.contains(participant3.getKey()));
+		Assert.assertTrue(ownerIdentityKeys.contains(participant4.getKey()));
+		
+		//groups coach
+		List<Long> coachedIdentityKeys = coachingDAO.getStudents(groupCoach, re);
+		Assert.assertEquals(3, coachedIdentityKeys.size());
+		Assert.assertTrue(coachedIdentityKeys.contains(participant2.getKey()));
+		Assert.assertTrue(coachedIdentityKeys.contains(participant3.getKey()));
+		Assert.assertTrue(coachedIdentityKeys.contains(participant4.getKey()));
+	}
+
+	@Test
+	public void isCoach_owner() throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+	
+		//members of courses
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("Owner-1-");
+		repositoryService.addRole(coach, re, GroupRoles.owner.name());
+		dbInstance.commitAndCloseSession();
+		
+		boolean canCoach = coachingDAO.isCoach(coach);
+		Assert.assertTrue(canCoach);
+	}
+	
+	@Test
+	public void isCoach_coach() throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 4);
+		dbInstance.commitAndCloseSession();
+	
+		//coach of course
+		Identity courseCoach = JunitTestHelper.createAndPersistIdentityAsRndUser("Coach-1");
+		repositoryService.addRole(courseCoach, re, GroupRoles.coach.name());
+		dbInstance.commitAndCloseSession();
+
+		//coach in a group of the course
+		Identity groupCoach = JunitTestHelper.createAndPersistIdentityAsRndUser("Coach-2");
+		BusinessGroup group = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-1", "tg", null, null, false, false, re);
+		Assert.assertNotNull(group);
+		dbInstance.commitAndCloseSession();
+		
+		//check if coaching tool is enabled
+		boolean canCourseCoach = coachingDAO.isCoach(courseCoach);
+		Assert.assertTrue(canCourseCoach);
+		boolean canGroupCoach = coachingDAO.isCoach(groupCoach);
+		Assert.assertTrue(canGroupCoach);
+	}
+	
+	@Test
+	public void isCoach_notPermitted() throws URISyntaxException {
+		URL coachingCourseUrl = CoachingLargeTest.class.getResource("CoachingCourse.zip");
+		File coachingCourseFile = new File(coachingCourseUrl.toURI());
+		RepositoryEntry re = CourseFactory.deployCourseFromZIP(coachingCourseFile, UUID.randomUUID().toString(), 1);
+		dbInstance.commitAndCloseSession();
+	
+		//owner of course
+		Identity courseOwner = JunitTestHelper.createAndPersistIdentityAsRndUser("Coach-1");
+		repositoryService.addRole(courseOwner, re, GroupRoles.owner.name());
+		dbInstance.commitAndCloseSession();
+
+		//coach in a group of the course
+		Identity groupCoach = JunitTestHelper.createAndPersistIdentityAsRndUser("Coach-2");
+		BusinessGroup group = businessGroupService.createBusinessGroup(groupCoach, "Coaching-grp-1", "tg", null, null, false, false, re);
+		Assert.assertNotNull(group);
+		dbInstance.commitAndCloseSession();
+		
+		//check if coaching tool is enabled
+		boolean canCourseCoach = coachingDAO.isCoach(courseOwner);
+		Assert.assertTrue(canCourseCoach);
+		boolean canGroupCoach = coachingDAO.isCoach(groupCoach);
+		Assert.assertFalse(canGroupCoach);
+	}
+	
+	private StudentStatEntry getStudentStatEntry(IdentityRef identity, List<StudentStatEntry> entries) {
+		StudentStatEntry entry = null;
+		for(StudentStatEntry e:entries) {
+			if(e.getStudentKey().equals(identity.getKey())) {
+				entry = e;
+			}
+		}
+		return entry;
+	}
+	
+	private GroupStatEntry getGroupStatEntry(BusinessGroupRef group, List<GroupStatEntry> entries) {
+		GroupStatEntry entry = null;
+		for(GroupStatEntry e:entries) {
+			if(e.getGroupKey().equals(group.getKey())) {
+				entry = e;
+			}
+		}
+		return entry;
+	}
+	
+	private CourseStatEntry getCourseStatEntry(RepositoryEntryRef re, List<CourseStatEntry> entries) {
+		CourseStatEntry entry = null;
+		for(CourseStatEntry e:entries) {
+			if(e.getRepoKey().equals(re.getKey())) {
+				entry = e;
+			}
+		}
+		return entry;
+	}
+	
+	/**
+	 * To test performance against an external database ( of a customer ).
+	 */
+	@Test
+	@Ignore
+	public void testExtern() {
+		Identity coach = securityManager.loadIdentityByKey(46268418l);
+		if(coach != null) {
+			long start = System.nanoTime();
+			coachingDAO.getCoursesStatisticsNative(coach);
+			CodeHelper.printNanoTime(start, "Courses");
+			
+			start = System.nanoTime();
+			coachingDAO.getGroupsStatisticsNative(coach);
+			CodeHelper.printNanoTime(start, "Groups");
+			
+			start = System.nanoTime();
+			coachingDAO.getStudentsStatisticsNative(coach);
+			CodeHelper.printNanoTime(start, "Students");
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/org/olat/repository/RepositoryManagerTest.java b/src/test/java/org/olat/repository/RepositoryManagerTest.java
index 01b95493a13fe54f2026716ce6b17e6f1bc4655c..c9d4bae10f37a0e1c94d591fedc6af08abb04529 100644
--- a/src/test/java/org/olat/repository/RepositoryManagerTest.java
+++ b/src/test/java/org/olat/repository/RepositoryManagerTest.java
@@ -1153,7 +1153,103 @@ public class RepositoryManagerTest extends OlatTestCase {
 		Assert.assertEquals(publicCycle, reloaded.getLifecycle());
 	}
 
+	@Test
+	public void setAllowToLeaveOption() {
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
+		dbInstance.commitAndCloseSession();
+		Assert.assertNotNull(re);
+		
+		RepositoryEntry updatedRe = repositoryManager.setLeaveSetting(re, RepositoryEntryAllowToLeaveOptions.never);
+		dbInstance.commitAndCloseSession();
+		Assert.assertNotNull(updatedRe);
+		Assert.assertEquals(re, updatedRe);
+		Assert.assertEquals(RepositoryEntryAllowToLeaveOptions.never, updatedRe.getAllowToLeaveOption());
+	}
+	
+	@Test
+	public void isParticipantAllowedToLeave() {
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
+		dbInstance.commitAndCloseSession();
+		re = repositoryManager.setLeaveSetting(re, RepositoryEntryAllowToLeaveOptions.never);
+		dbInstance.commitAndCloseSession();
+		
+		Assert.assertFalse(repositoryService.isParticipantAllowedToLeave(re));
+	}
+	
+	@Test
+	public void leave_simpleRepositoryEnty() {
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsRndUser("leave-re-1");
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("leave-re-2");
+		Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("leave-re-3");
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
+		repositoryEntryRelationDao.addRole(participant, re, GroupRoles.participant.name());
+		repositoryEntryRelationDao.addRole(coach, re, GroupRoles.coach.name());
+		repositoryEntryRelationDao.addRole(owner, re, GroupRoles.owner.name());
+		dbInstance.commitAndCloseSession();
+		
+		//participant leave
+		LeavingStatusList status = new LeavingStatusList();
+		repositoryManager.leave(participant, re, status, null);
+		dbInstance.commit();
+		Assert.assertFalse(repositoryService.isMember(participant, re));
+		
+		//coach and owner can't leave
+		repositoryManager.leave(coach, re, status, null);
+		dbInstance.commit();
+		Assert.assertTrue(repositoryService.isMember(coach, re));
+		repositoryManager.leave(owner, re, status, null);
+		dbInstance.commit();
+		Assert.assertTrue(repositoryService.isMember(owner, re));
+	}
 	
+	@Test
+	public void leave_withGroups() {
+		//create 2 entries and 2 groups
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsRndUser("leave-re-4");
+		Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("leave-re-5");
+		
+		//entry 1 is linked to the 2 groups
+		RepositoryEntry re1 = JunitTestHelper.createAndPersistRepositoryEntry();
+		repositoryEntryRelationDao.addRole(participant, re1, GroupRoles.participant.name());
+		repositoryEntryRelationDao.addRole(owner, re1, GroupRoles.owner.name());
+		
+		//entry 2 is only linked to group 2
+		RepositoryEntry re2 = JunitTestHelper.createAndPersistRepositoryEntry();
+		
+		BusinessGroup group1 = businessGroupService.createBusinessGroup(owner, "leaving-group-1", "tg", null, null, false, false, re1);
+	    businessGroupRelationDao.addRole(participant, group1, GroupRoles.participant.name());
+		
+	    BusinessGroup group2 = businessGroupService.createBusinessGroup(owner, "leaving-group-2", "tg", null, null, false, false, re1);
+	    businessGroupRelationDao.addRole(participant, group2, GroupRoles.participant.name());
+	    businessGroupRelationDao.addRelationToResource(group2, re2);
+		dbInstance.commitAndCloseSession();
+		
+		//participant leave
+		LeavingStatusList status = new LeavingStatusList();
+		repositoryManager.leave(participant, re1, status, null);
+		businessGroupService.leave(participant, re1, status, null);
+		dbInstance.commit();
+		
+		//participant is removed from entry 1, group 1 but not group 2 because this group is linked to entry 2 too
+		Assert.assertTrue(repositoryService.isMember(participant, re1));
+		//but removed from re
+		boolean re1Role = repositoryEntryRelationDao.hasRole(participant, re1, GroupRoles.participant.name());
+		Assert.assertFalse(re1Role);
+		boolean group1Role = businessGroupRelationDao.hasRole(participant, group1, GroupRoles.participant.name());
+		Assert.assertFalse(group1Role);
+		boolean group2Role = businessGroupRelationDao.hasRole(participant, group2, GroupRoles.participant.name());
+		Assert.assertTrue(group2Role);
+		
+		//owner are never remove (double check)
+		Assert.assertTrue(repositoryService.isMember(owner, re1));
+		//but removed from re
+		boolean re1OwnerRole = repositoryEntryRelationDao.hasRole(owner, re1, GroupRoles.owner.name());
+		Assert.assertTrue(re1OwnerRole);
+		boolean group1CoachRole = businessGroupRelationDao.hasRole(owner, group1, GroupRoles.coach.name());
+		Assert.assertTrue(group1CoachRole);
+		boolean group2CoachRole = businessGroupRelationDao.hasRole(owner, group2, GroupRoles.coach.name());
+		Assert.assertTrue(group2CoachRole);
+	}
 
 	private RepositoryEntry createRepositoryEntry(final String type, Identity owner, long i) {
 		OLATResourceable resourceable = OresHelper.createOLATResourceableInstance(type, new Long(i));
diff --git a/src/test/java/org/olat/repository/manager/RepositoryEntryMembershipProcessorTest.java b/src/test/java/org/olat/repository/manager/RepositoryEntryMembershipProcessorTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..41a66da1d2dd1a341b4f12d0bf1682a56708efed
--- /dev/null
+++ b/src/test/java/org/olat/repository/manager/RepositoryEntryMembershipProcessorTest.java
@@ -0,0 +1,193 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.repository.manager;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+import org.olat.basesecurity.GroupRoles;
+import org.olat.basesecurity.manager.GroupDAO;
+import org.olat.core.commons.persistence.DB;
+import org.olat.core.commons.services.notifications.NotificationsManager;
+import org.olat.core.commons.services.notifications.Publisher;
+import org.olat.core.commons.services.notifications.PublisherData;
+import org.olat.core.commons.services.notifications.SubscriptionContext;
+import org.olat.core.id.Identity;
+import org.olat.core.util.mail.MailPackage;
+import org.olat.group.BusinessGroup;
+import org.olat.group.BusinessGroupService;
+import org.olat.group.manager.BusinessGroupDAO;
+import org.olat.group.manager.BusinessGroupMembershipProcessor;
+import org.olat.group.manager.BusinessGroupRelationDAO;
+import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryManager;
+import org.olat.test.JunitTestHelper;
+import org.olat.test.OlatTestCase;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ * 
+ * Initial date: 10.02.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class RepositoryEntryMembershipProcessorTest extends OlatTestCase {
+
+	@Autowired
+	private DB dbInstance;
+	@Autowired
+	private GroupDAO groupDao;
+	@Autowired
+	private BusinessGroupDAO businessGroupDao;
+	@Autowired
+	private NotificationsManager notificationManager;
+	@Autowired
+	private BusinessGroupService businessGroupService;
+	@Autowired
+	private BusinessGroupRelationDAO businessGroupRelationDao;
+	@Autowired
+	private RepositoryManager repositoryManager;
+	@Autowired
+	private RepositoryEntryRelationDAO repositoryEntryRelationDao;
+	@Autowired
+	private BusinessGroupMembershipProcessor businessGroupMembershipProcessor;
+	
+	@Test
+	public void testRemoveParticipant() {
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
+		//create a group with members
+		Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("remp-proc-1");
+		Identity member = JunitTestHelper.createAndPersistIdentityAsRndUser("remp-proc-2");
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-3");
+
+		repositoryEntryRelationDao.addRole(owner, re, GroupRoles.owner.name());
+		repositoryEntryRelationDao.addRole(member, re, GroupRoles.coach.name());
+		repositoryEntryRelationDao.addRole(member, re, GroupRoles.participant.name());
+		repositoryEntryRelationDao.addRole(participant, re, GroupRoles.participant.name());
+		
+		//create a publisher
+		SubscriptionContext context = new SubscriptionContext(re.getOlatResource(), "");
+		PublisherData publisherData = new PublisherData("testGroupPublishers", "e.g. something", null);
+		Publisher publisher = notificationManager.getOrCreatePublisher(context, publisherData);
+		Assert.assertNotNull(publisher);
+		dbInstance.commitAndCloseSession();
+		
+		//subscribe
+		notificationManager.subscribe(owner, context, publisherData);
+		notificationManager.subscribe(member, context, publisherData);
+		notificationManager.subscribe(participant, context, publisherData);
+		dbInstance.commitAndCloseSession();
+		
+		//remove member and participant as participant of the repo entry
+		List<Identity> removeIdentities = new ArrayList<>(2);
+		removeIdentities.add(member);
+		removeIdentities.add(participant);
+		MailPackage mailing = new MailPackage(false);
+		repositoryManager.removeParticipants(owner, removeIdentities, re, mailing, false);
+
+		//wait for the remove of subscription
+		waitForCondition(new CheckUnsubscription(participant, context, dbInstance, notificationManager), 5000);
+		sleep(1000);
+		
+		//check that subscription of id1 was deleted but not the ones of id2 and coach
+		boolean subscribedPart = notificationManager.isSubscribed(participant, context);
+		Assert.assertFalse(subscribedPart);
+		boolean subscribedMember = notificationManager.isSubscribed(member, context);
+		Assert.assertTrue(subscribedMember);
+		boolean subscribedOwner = notificationManager.isSubscribed(owner, context);
+		Assert.assertTrue(subscribedOwner);
+	}
+	
+	@Test
+	public void testRemoveCoach_withBusinessGroups() {
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry();
+		//create a group with members
+		Identity owner = JunitTestHelper.createAndPersistIdentityAsRndUser("remp-proc-1");
+		Identity member = JunitTestHelper.createAndPersistIdentityAsRndUser("remp-proc-2");
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("mbr-proc-3");
+
+		repositoryEntryRelationDao.addRole(owner, re, GroupRoles.owner.name());
+		repositoryEntryRelationDao.addRole(member, re, GroupRoles.coach.name());
+		repositoryEntryRelationDao.addRole(coach, re, GroupRoles.coach.name());
+		
+		BusinessGroup businessGroup = businessGroupDao.createAndPersist(coach, "mbr-proc-1", "mbr-proc-desc", -1, -1, false, false, false, false, false);
+		businessGroupRelationDao.addRelationToResource(businessGroup, re);
+		
+		//create a publisher
+		SubscriptionContext context = new SubscriptionContext(re.getOlatResource(), "");
+		PublisherData publisherData = new PublisherData("testGroupPublishers", "e.g. something", null);
+		Publisher publisher = notificationManager.getOrCreatePublisher(context, publisherData);
+		Assert.assertNotNull(publisher);
+		dbInstance.commitAndCloseSession();
+		
+		//subscribe
+		notificationManager.subscribe(owner, context, publisherData);
+		notificationManager.subscribe(member, context, publisherData);
+		notificationManager.subscribe(coach, context, publisherData);
+		dbInstance.commitAndCloseSession();
+		
+		//remove member and coach as coach of the repo entry
+		List<Identity> removeIdentities = new ArrayList<>(2);
+		removeIdentities.add(member);
+		removeIdentities.add(coach);
+		repositoryManager.removeTutors(owner, removeIdentities, re);
+
+		//wait for the remove of subscription
+		waitForCondition(new CheckUnsubscription(member, context, dbInstance, notificationManager), 5000);
+		sleep(1000);
+		
+		//check that subscription of id1 was deleted but not the ones of id2 and coach
+		boolean subscribedMember = notificationManager.isSubscribed(member, context);
+		Assert.assertFalse(subscribedMember);
+		boolean subscribedCoach = notificationManager.isSubscribed(coach, context);
+		Assert.assertTrue(subscribedCoach);
+		boolean subscribedOwner = notificationManager.isSubscribed(owner, context);
+		Assert.assertTrue(subscribedOwner);
+	}
+	
+	private static class CheckUnsubscription implements Callable<Boolean> {
+		
+		private final DB db;
+		private final NotificationsManager notificationMgr;
+		
+		private final Identity identity;
+		private final SubscriptionContext context;
+		
+		public CheckUnsubscription(Identity identity, SubscriptionContext context, DB db, NotificationsManager notificationMgr) {
+			this.identity = identity;
+			this.context = context;
+			this.db = db;
+			this.notificationMgr = notificationMgr;
+		}
+
+		@Override
+		public Boolean call() throws Exception {
+			boolean subscribed = notificationMgr.isSubscribed(identity, context);
+			db.commitAndCloseSession();
+			return !subscribed;
+		}
+		
+	}
+
+}
diff --git a/src/test/java/org/olat/restapi/CourseTest.java b/src/test/java/org/olat/restapi/CourseTest.java
index 3a57f3a0a8548067b767807a51f03cd6775b7243..7f7d2b05cbdf6ea1c4dda4c4a19696463dbb38cf 100644
--- a/src/test/java/org/olat/restapi/CourseTest.java
+++ b/src/test/java/org/olat/restapi/CourseTest.java
@@ -341,6 +341,33 @@ public class CourseTest extends OlatJerseyTestCase {
 		dbInstance.intermediateCommit();
 	}
 	
+	@Test
+	public void testGetTutors() throws IOException, URISyntaxException {
+		Identity coach = JunitTestHelper.createAndPersistIdentityAsRndUser("Course-coach");
+		RepositoryEntry repositoryEntry = repositoryManager.lookupRepositoryEntry(course1, true);
+		repositoryService.addRole(coach, repositoryEntry, GroupRoles.coach.name());
+		dbInstance.intermediateCommit();
+		
+		//get them
+		Assert.assertTrue(conn.login("administrator", "openolat"));
+		URI uri = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + course1.getResourceableId() + "/tutors").build();
+		HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
+		HttpResponse response = conn.execute(method);
+		assertEquals(200, response.getStatusLine().getStatusCode());
+		InputStream body = response.getEntity().getContent();
+		Assert.assertNotNull(body);
+		
+		List<UserVO> tutorVOs = parseUserArray(body);
+		Assert.assertNotNull(tutorVOs);
+		boolean found = false;
+		for(UserVO tutorVo:tutorVOs) {
+			if(tutorVo.getKey().equals(coach.getKey())) {
+				found = true;
+			}
+		}
+		Assert.assertTrue(found);
+	}
+	
 	@Test
 	public void testAddCoach() throws IOException, URISyntaxException {
 		assertTrue(conn.login("administrator", "openolat"));
@@ -357,6 +384,33 @@ public class CourseTest extends OlatJerseyTestCase {
 		assertTrue(isTutor);
 	}
 	
+	@Test
+	public void testGetParticipants() throws IOException, URISyntaxException {
+		Identity participant = JunitTestHelper.createAndPersistIdentityAsRndUser("Course-participant");
+		RepositoryEntry repositoryEntry = repositoryManager.lookupRepositoryEntry(course1, true);
+		repositoryService.addRole(participant, repositoryEntry, GroupRoles.participant.name());
+		dbInstance.intermediateCommit();
+		
+		//get them
+		Assert.assertTrue(conn.login("administrator", "openolat"));
+		URI uri = UriBuilder.fromUri(getContextURI()).path("/repo/courses/" + course1.getResourceableId() + "/participants").build();
+		HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
+		HttpResponse response = conn.execute(method);
+		assertEquals(200, response.getStatusLine().getStatusCode());
+		InputStream body = response.getEntity().getContent();
+		Assert.assertNotNull(body);
+		
+		List<UserVO> participantVOs = parseUserArray(body);
+		Assert.assertNotNull(participantVOs);
+		boolean found = false;
+		for(UserVO participantVo:participantVOs) {
+			if(participantVo.getKey().equals(participant.getKey())) {
+				found = true;
+			}
+		}
+		Assert.assertTrue(found);
+	}
+	
 	@Test
 	public void testAddParticipant() throws IOException, URISyntaxException {
 		assertTrue(conn.login("administrator", "openolat"));
diff --git a/src/test/java/org/olat/test/AllTestsJunit4.java b/src/test/java/org/olat/test/AllTestsJunit4.java
index e923b6c9968acd2b08768ae205cf1808ee72910a..652e4c483faa499a4c815e039c4fb453cbca7521 100644
--- a/src/test/java/org/olat/test/AllTestsJunit4.java
+++ b/src/test/java/org/olat/test/AllTestsJunit4.java
@@ -59,6 +59,7 @@ import org.junit.runners.Suite;
 	org.olat.core.helpers.SettingsTest.class,
 	org.olat.core.util.coordinate.LockEntryTest.class,
 	org.olat.core.util.StringHelperTest.class,
+	org.olat.core.util.FileUtilsTest.class,
 	org.olat.core.util.FormatterTest.class,
 	org.olat.core.util.EncoderTest.class,
 	org.olat.core.util.SimpleHtmlParserTest.class,
@@ -69,78 +70,80 @@ import org.junit.runners.Suite;
 	org.olat.core.id.IdentityEnvironmentTest.class,
 	org.olat.core.gui.render.VelocityTemplateTest.class,
 	org.olat.core.gui.control.generic.iframe.IFrameDeliveryMapperTest.class,
-	org.olat.note.NoteTest.class,//ok
-	org.olat.user.UserPropertiesPerformanceTest.class,//ok
+	org.olat.note.NoteTest.class,
+	org.olat.user.UserPropertiesPerformanceTest.class,
 	org.olat.user.EmailCheckPerformanceTest.class,//fail
-	org.olat.user.UserTest.class,//ok
-	org.olat.user.UserPropertiesTest.class,//ok
-	org.olat.commons.calendar.ICalFileCalendarManagerTest.class,//ok
-	org.olat.commons.calendar.CalendarImportTest.class,//ok
-	org.olat.commons.calendar.test.CalendarUtilsTest.class,//ok
+	org.olat.user.UserTest.class,
+	org.olat.user.UserPropertiesTest.class,
+	org.olat.commons.calendar.ICalFileCalendarManagerTest.class,
+	org.olat.commons.calendar.CalendarImportTest.class,
+	org.olat.commons.calendar.test.CalendarUtilsTest.class,
 	org.olat.commons.lifecycle.LifeCycleManagerTest.class,//fail christian fragen...
-	org.olat.commons.coordinate.cluster.jms.JMSTest.class,//ok
-	org.olat.commons.coordinate.cluster.lock.LockTest.class,//ok
-	org.olat.commons.coordinate.CoordinatorTest.class,//ok
-	org.olat.core.commons.services.help.spi.ConfluenceLinkSPITest.class,//ok
-	org.olat.core.commons.services.webdav.WebDAVCommandsTest.class,//ok
-	org.olat.core.commons.services.webdav.manager.WebDAVManagerTest.class,//ok
-	org.olat.core.commons.services.webdav.servlets.RequestUtilsTest.class,//ok
-	org.olat.core.commons.services.taskexecutor.PersistentTaskDAOTest.class,//ok
-	org.olat.core.commons.services.taskexecutor.TaskExecutorManagerTest.class,//ok
-	org.olat.admin.user.delete.service.UserDeletionManagerTest.class,//ok
-	org.olat.group.BusinessGroupManagedFlagsTest.class,//ok
-	org.olat.group.test.BGRightManagerTest.class,//ok
-	org.olat.group.test.BGAreaManagerTest.class,//ok
-	org.olat.group.test.BusinessGroupServiceTest.class,//ok
-	org.olat.group.test.BusinessGroupDAOTest.class,//ok
-	org.olat.group.test.BusinessGroupRelationDAOTest.class,//ok
-	org.olat.group.test.BusinessGroupConcurrentTest.class,//ok
-	org.olat.group.test.ContactDAOTest.class,//ok
-	org.olat.fileresource.FileResourceTest.class,//ok
-	org.olat.resource.lock.pessimistic.PLockTest.class,//ok
-	org.olat.resource.references.ReferenceManagerTest.class,//ok
-	org.olat.resource.OLATResourceManagerTest.class,//ok
-	org.olat.basesecurity.manager.GroupDAOTest.class,//ok
-	org.olat.basesecurity.SecurityManagerTest.class,//ok
-	org.olat.basesecurity.GetIdentitiesByPowerSearchTest.class,//ok
-	org.olat.basesecurity.BaseSecurityManagerTest.class,//ok
-	org.olat.user.UserManagerTest.class,//ok
-	org.olat.user.UserNameAndPasswordSyntaxCheckerWithRegexpTest.class,//ok
-	org.olat.repository.manager.RepositoryEntryDAOTest.class,//ok
-	org.olat.repository.manager.RepositoryEntryLifecycleDAOTest.class,//ok
-	org.olat.repository.manager.RepositoryEntryRelationDAOTest.class,//ok
-	org.olat.repository.manager.RepositoryServiceImplTest.class,//ok
-	org.olat.repository.manager.RepositoryEntryStatisticsDAOTest.class,//ok
-	org.olat.repository.manager.RepositoryEntryAuthorQueriesTest.class,//ok
-	org.olat.repository.manager.RepositoryEntryMyCourseQueriesTest.class,//ok
-	org.olat.repository.RepositoryManagerTest.class,//ok
-	org.olat.repository.RepositoryManagerQueryTest.class,//ok
-	org.olat.instantMessaging.InstantMessageDAOTest.class,//ok
-	org.olat.instantMessaging.InstantMessagePreferencesDAOTest.class,//ok
-	org.olat.instantMessaging.RosterDAOTest.class,//ok
-	org.olat.instantMessaging.InstantMessageServiceTest.class,//ok
-	org.olat.course.nodes.en.EnrollmentManagerTest.class,//ok
-	org.olat.course.assessment.AssessmentManagerTest.class,//ok
-	org.olat.course.assessment.manager.UserCourseInformationsManagerTest.class,//ok
-	org.olat.course.assessment.manager.AssessmentModeManagerTest.class,//ok
+	org.olat.commons.coordinate.cluster.jms.JMSTest.class,
+	org.olat.commons.coordinate.cluster.lock.LockTest.class,
+	org.olat.commons.coordinate.CoordinatorTest.class,
+	org.olat.core.commons.services.help.spi.ConfluenceLinkSPITest.class,
+	org.olat.core.commons.services.webdav.WebDAVCommandsTest.class,
+	org.olat.core.commons.services.webdav.manager.WebDAVManagerTest.class,
+	org.olat.core.commons.services.webdav.servlets.RequestUtilsTest.class,
+	org.olat.core.commons.services.taskexecutor.PersistentTaskDAOTest.class,
+	org.olat.core.commons.services.taskexecutor.TaskExecutorManagerTest.class,
+	org.olat.admin.user.delete.service.UserDeletionManagerTest.class,
+	org.olat.group.BusinessGroupManagedFlagsTest.class,
+	org.olat.group.test.BGRightManagerTest.class,
+	org.olat.group.test.BGAreaManagerTest.class,
+	org.olat.group.test.BusinessGroupServiceTest.class,
+	org.olat.group.test.BusinessGroupDAOTest.class,
+	org.olat.group.test.BusinessGroupRelationDAOTest.class,
+	org.olat.group.test.BusinessGroupConcurrentTest.class,
+	org.olat.group.test.ContactDAOTest.class,
+	org.olat.group.test.BusinessGroupMembershipProcessorTest.class,
+	org.olat.fileresource.FileResourceTest.class,
+	org.olat.resource.lock.pessimistic.PLockTest.class,
+	org.olat.resource.references.ReferenceManagerTest.class,
+	org.olat.resource.OLATResourceManagerTest.class,
+	org.olat.basesecurity.manager.GroupDAOTest.class,
+	org.olat.basesecurity.SecurityManagerTest.class,
+	org.olat.basesecurity.GetIdentitiesByPowerSearchTest.class,
+	org.olat.basesecurity.BaseSecurityManagerTest.class,
+	org.olat.user.UserManagerTest.class,
+	org.olat.user.UserNameAndPasswordSyntaxCheckerWithRegexpTest.class,
+	org.olat.repository.manager.RepositoryEntryDAOTest.class,
+	org.olat.repository.manager.RepositoryEntryLifecycleDAOTest.class,
+	org.olat.repository.manager.RepositoryEntryRelationDAOTest.class,
+	org.olat.repository.manager.RepositoryServiceImplTest.class,
+	org.olat.repository.manager.RepositoryEntryStatisticsDAOTest.class,
+	org.olat.repository.manager.RepositoryEntryAuthorQueriesTest.class,
+	org.olat.repository.manager.RepositoryEntryMyCourseQueriesTest.class,
+	org.olat.repository.manager.RepositoryEntryMembershipProcessorTest.class,
+	org.olat.repository.RepositoryManagerTest.class,
+	org.olat.repository.RepositoryManagerQueryTest.class,
+	org.olat.instantMessaging.InstantMessageDAOTest.class,
+	org.olat.instantMessaging.InstantMessagePreferencesDAOTest.class,
+	org.olat.instantMessaging.RosterDAOTest.class,
+	org.olat.instantMessaging.InstantMessageServiceTest.class,
+	org.olat.course.nodes.en.EnrollmentManagerTest.class,
+	org.olat.course.assessment.AssessmentManagerTest.class,
+	org.olat.course.assessment.manager.UserCourseInformationsManagerTest.class,
+	org.olat.course.assessment.manager.AssessmentModeManagerTest.class,
 	org.olat.course.certificate.manager.CertificatesManagerTest.class,
-	org.olat.course.config.CourseConfigManagerImplTest.class,//ok
-	org.olat.course.groupsandrights.CourseGroupManagementTest.class,//ok
-	org.olat.course.editor.PublishProcessTest.class,//ok
-	org.olat.course.CourseXStreamAliasesTest.class,//ok
-	org.olat.modules.iq.IQManagerTest.class,//ok
+	org.olat.course.config.CourseConfigManagerImplTest.class,
+	org.olat.course.groupsandrights.CourseGroupManagementTest.class,
+	org.olat.course.editor.PublishProcessTest.class,
+	org.olat.course.CourseXStreamAliasesTest.class,
+	org.olat.modules.iq.IQManagerTest.class,
 	org.olat.modules.fo.ForumManagerTest.class,//fail
-	org.olat.modules.wiki.WikiUnitTest.class,//ok
-	org.olat.modules.wiki.versioning.diff.CookbookDiffTest.class,//ok
+	org.olat.modules.wiki.WikiUnitTest.class,
+	org.olat.modules.wiki.versioning.diff.CookbookDiffTest.class,
 	org.olat.modules.wiki.gui.components.wikiToHtml.FilterUtilTest.class,
-	org.olat.modules.coach.CoachingDAOTest.class,//ok
-	org.olat.modules.coach.CoachingServiceTest.class,//ok
-	org.olat.properties.PropertyTest.class,//ok
+	org.olat.modules.coach.manager.CoachingDAOTest.class,
+	org.olat.modules.coach.CoachingLargeTest.class,
+	org.olat.properties.PropertyTest.class,
 	org.olat.search.service.document.file.FileDocumentFactoryTest.class,
 	org.olat.search.service.document.file.PDFDocumentTest.class,
 	org.olat.search.service.document.file.OfficeDocumentTest.class,
-	org.olat.core.commons.services.notifications.manager.NotificationsManagerTest.class,//fail
-	org.olat.registration.RegistrationManagerTest.class,//ok
+	org.olat.core.commons.services.notifications.manager.NotificationsManagerTest.class,
+	org.olat.registration.RegistrationManagerTest.class,
 	org.olat.course.nodes.projectbroker.ProjectBrokerManagerTest.class,
 	org.olat.core.commons.persistence.DBTest.class,
 	org.olat.modules.ims.cp.CPManagerTest.class,
diff --git a/src/test/java/org/olat/test/OlatTestCase.java b/src/test/java/org/olat/test/OlatTestCase.java
index c22d8388817aac93a9bffd07331d2588afc4919c..20c597d5da58ac2c3db5e1a489872a1e10a6b718 100644
--- a/src/test/java/org/olat/test/OlatTestCase.java
+++ b/src/test/java/org/olat/test/OlatTestCase.java
@@ -29,6 +29,10 @@ package org.olat.test;
 import java.io.IOException;
 import java.util.Enumeration;
 import java.util.Properties;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.junit.After;
 import org.junit.Before;
@@ -137,6 +141,41 @@ public abstract class OlatTestCase extends AbstractJUnit4SpringContextTests {
 		
 	}
 	
+	protected boolean waitForCondition(final Callable<Boolean> condition, final int timeoutInMilliseconds) {
+		final CountDownLatch countDown = new CountDownLatch(1);
+		final AtomicBoolean result = new AtomicBoolean(false);
+		
+		new Thread(){
+			@Override
+			public void run() {
+				
+				try {
+					int numOfTry = (timeoutInMilliseconds / 100) + 2;
+					for(int i=0; i<numOfTry; i++) {
+						Boolean test = condition.call();
+						if(test != null && test.booleanValue()) {
+							result.set(true);
+							break;
+						} else {
+							result.set(false);
+						}
+					}
+				} catch (Exception e) {
+					log.error("", e);
+					result.set(false);
+				}
+				countDown.countDown();
+			}
+		}.start();
+
+		try {
+			countDown.await(timeoutInMilliseconds, TimeUnit.MILLISECONDS);
+		} catch (InterruptedException e) {
+			log.error("", e);
+		}
+		return result.get();
+	}
+	
 	protected void sleep(int milliSeconds) {
 		try {
 			Thread.sleep(milliSeconds);