From f28dee569b94e6da300928894ec868cb5b910489 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 12:04:40 +0200 Subject: [PATCH 1/9] New dashboard: remove legacy dashboard --- .circleci/config.yml | 24 ---- readthedocs/builds/views.py | 103 +----------------- readthedocs/core/context_processors.py | 3 - readthedocs/core/middleware.py | 2 +- readthedocs/core/notifications.py | 13 +-- readthedocs/core/views/__init__.py | 10 +- .../organizations/tests/test_filters.py | 1 - readthedocs/organizations/views/private.py | 5 +- readthedocs/organizations/views/public.py | 47 +++----- readthedocs/projects/forms.py | 5 +- readthedocs/projects/notifications.py | 59 ---------- readthedocs/projects/urls/private.py | 36 +++--- readthedocs/projects/urls/public.py | 12 +- readthedocs/projects/views/private.py | 99 +++++++---------- readthedocs/projects/views/public.py | 11 +- .../rtd_tests/tests/test_notifications.py | 2 - .../rtd_tests/tests/test_project_views.py | 10 -- readthedocs/settings/base.py | 38 ++----- tox.ini | 14 +-- 19 files changed, 104 insertions(+), 390 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a413abbaf05..5cc7c1056d4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -30,29 +30,6 @@ jobs: - run: tox -e py312 - codecov/upload - tests-ext-theme: - docker: - - image: 'cimg/python:3.12' - environment: - # Don't skip search tests. - TOX_POSARGS: '' - - image: 'docker.elastic.co/elasticsearch/elasticsearch:8.10.2' - name: search - environment: - discovery.type: single-node - ES_JAVA_OPTS: -Xms750m -Xmx750m - ELASTIC_PASSWORD: password - # Disabled SSL for testing. - xpack.security.transport.ssl.enabled: 'false' - steps: - - checkout - - run: git submodule sync - - run: git submodule update --init - - run: sudo apt update - - run: sudo apt install -y rclone - - run: pip install --user tox - - run: tox -e ext-theme - tests-embedapi: docker: - image: 'cimg/python:3.12' @@ -99,7 +76,6 @@ workflows: jobs: - checks - tests - - tests-ext-theme - tests-embedapi: requires: - checks diff --git a/readthedocs/builds/views.py b/readthedocs/builds/views.py index 5e7f9f472c8..c48227c1102 100644 --- a/readthedocs/builds/views.py +++ b/readthedocs/builds/views.py @@ -4,8 +4,6 @@ from urllib.parse import urlparse import structlog -from django.conf import settings -from django.contrib import messages from django.contrib.auth.decorators import login_required from django.http import HttpResponseForbidden from django.http import HttpResponseRedirect @@ -19,11 +17,9 @@ from readthedocs.builds.constants import BUILD_FINAL_STATES from readthedocs.builds.filters import BuildListFilter from readthedocs.builds.models import Build -from readthedocs.builds.models import Version from readthedocs.core.filters import FilterContextMixin from readthedocs.core.permissions import AdminPermission from readthedocs.core.utils import cancel_build -from readthedocs.core.utils import trigger_build from readthedocs.doc_builder.exceptions import BuildAppError from readthedocs.projects.models import Project from readthedocs.projects.views.base import ProjectSpamMixin @@ -49,92 +45,10 @@ def get_queryset(self): return queryset -# TODO this class and views that extend this class can be removed when the old -# dashboard goes away and RTD_EXT_THEME_ENABLED is removed. Instead of using a -# hidden form on views, the new dashboard uses APIv3 to trigger new builds. -class BuildTriggerMixin: - @method_decorator(login_required) - def post(self, request, project_slug): - commit_to_retrigger = None - project = get_object_or_404(Project, slug=project_slug) - - if not AdminPermission.is_admin(request.user, project): - return HttpResponseForbidden() - - version_slug = request.POST.get("version_slug") - build_pk = request.POST.get("build_pk") - - if build_pk: - # Filter over external versions only when re-triggering a specific build - version = get_object_or_404( - Version.external.public(self.request.user), - slug=version_slug, - project=project, - ) - - build_to_retrigger = get_object_or_404( - Build.objects.all(), - pk=build_pk, - version=version, - ) - if build_to_retrigger != Build.objects.filter(version=version).first(): - messages.add_message( - request, - messages.ERROR, - "This build can't be re-triggered because it's " - "not the latest build for this version.", - ) - return HttpResponseRedirect(request.path) - - # Set either the build to re-trigger it or None - if build_to_retrigger: - commit_to_retrigger = build_to_retrigger.commit - log.info( - "Re-triggering build.", - project_slug=project.slug, - version_slug=version.slug, - build_commit=build_to_retrigger.commit, - build_id=build_to_retrigger.pk, - ) - else: - # Use generic query when triggering a normal build - version = get_object_or_404( - self._get_versions(project), - slug=version_slug, - ) - - update_docs_task, build = trigger_build( - project=project, - version=version, - commit=commit_to_retrigger, - ) - if (update_docs_task, build) == (None, None): - # Build was skipped - messages.add_message( - request, - messages.WARNING, - "This project is currently disabled and can't trigger new builds.", - ) - return HttpResponseRedirect( - reverse("builds_project_list", args=[project.slug]), - ) - - return HttpResponseRedirect( - reverse("builds_detail", args=[project.slug, build.pk]), - ) - - def _get_versions(self, project): - return Version.internal.public( - user=self.request.user, - project=project, - ) - - class BuildList( FilterContextMixin, ProjectSpamMixin, BuildBase, - BuildTriggerMixin, ListView, ): filterset_class = BuildListFilter @@ -159,13 +73,11 @@ def get_context_data(self, **kwargs): context["active_builds"] = active_builds context["versions"] = self._get_versions(self.project) - builds = self.get_queryset() - if settings.RTD_EXT_THEME_ENABLED: - context["filter"] = self.get_filterset( - queryset=builds, - project=self.project, - ) - builds = self.get_filtered_queryset() + builds = self.get_filtered_queryset() + context["filter"] = self.get_filterset( + queryset=builds, + project=self.project, + ) context["build_qs"] = builds return context @@ -196,10 +108,7 @@ def get_context_data(self, **kwargs): context["project"] = self.project build = self.get_object() - - # We consume these notifications through the API in the new dashboard - if not settings.RTD_EXT_THEME_ENABLED: - context["notifications"] = build.notifications.all() + context["notifications"] = build.notifications.all() if not build.notifications.filter(message_id=BuildAppError.GENERIC_WITH_BUILD_ID).exists(): # Do not suggest to open an issue if the error is not generic return context diff --git a/readthedocs/core/context_processors.py b/readthedocs/core/context_processors.py index 43b48299d9c..a1cf7fe0c7e 100644 --- a/readthedocs/core/context_processors.py +++ b/readthedocs/core/context_processors.py @@ -17,8 +17,6 @@ def readthedocs_processor(request): exports = { "PUBLIC_DOMAIN": settings.PUBLIC_DOMAIN, "PRODUCTION_DOMAIN": settings.PRODUCTION_DOMAIN, - # TODO this can be removed with RTD_EXT_THEME_ENABLED - "SWITCH_PRODUCTION_DOMAIN": settings.SWITCH_PRODUCTION_DOMAIN, "GLOBAL_ANALYTICS_CODE": settings.GLOBAL_ANALYTICS_CODE, "DASHBOARD_ANALYTICS_CODE": settings.DASHBOARD_ANALYTICS_CODE, "SITE_ROOT": settings.SITE_ROOT + "/", @@ -28,7 +26,6 @@ def readthedocs_processor(request): "USE_ORGANIZATIONS": settings.RTD_ALLOW_ORGANIZATIONS, "SUPPORT_EMAIL": settings.SUPPORT_EMAIL, "PUBLIC_API_URL": settings.PUBLIC_API_URL, - "RTD_EXT_THEME_ENABLED": settings.RTD_EXT_THEME_ENABLED, "ADMIN_URL": settings.ADMIN_URL, } return exports diff --git a/readthedocs/core/middleware.py b/readthedocs/core/middleware.py index 4aeca6b012d..2f0ed9c8cfd 100644 --- a/readthedocs/core/middleware.py +++ b/readthedocs/core/middleware.py @@ -69,7 +69,7 @@ def __call__(self, request): url_name = resolver_match.url_name update_csp_headers = settings.RTD_CSP_UPDATE_HEADERS - if settings.RTD_EXT_THEME_ENABLED and url_name in update_csp_headers: + if url_name in update_csp_headers: if hasattr(response, "_csp_update"): raise ValueError( "Can't update CSP headers at the view and middleware at the same time, use one or the other." diff --git a/readthedocs/core/notifications.py b/readthedocs/core/notifications.py index 5299a5632cb..83fea01ef3f 100644 --- a/readthedocs/core/notifications.py +++ b/readthedocs/core/notifications.py @@ -37,21 +37,12 @@ id=MESSAGE_NEW_DASHBOARD, header=textwrap.dedent( """ - {% if RTD_EXT_THEME_ENABLED %} - Welcome to our new dashboard! - {% else %} - Our new dashboard is ready! - {% endif %} + Welcome to our new dashboard! """ ).strip(), body=textwrap.dedent( """ - {% if RTD_EXT_THEME_ENABLED %} - We are beginning to direct users to our new dashboard as we work to retire our legacy dashboard. - {% else %} - You are currently using our legacy dashboard, which will be retired on . - You should switch to our new dashboard before then. - {% endif %} + We are beginning to direct users to our new dashboard as we work to retire our legacy dashboard. For more information on this change and what to expect, read our blog post. """ diff --git a/readthedocs/core/views/__init__.py b/readthedocs/core/views/__init__.py index 48feeb8e9ff..93c5c5ffef8 100644 --- a/readthedocs/core/views/__init__.py +++ b/readthedocs/core/views/__init__.py @@ -48,9 +48,8 @@ class HomepageView(TemplateView): template_name = "homepage.html" def get(self, request, *args, **kwargs): - # Redirect to login page for new dashboard - if settings.RTD_EXT_THEME_ENABLED: - return redirect(reverse("account_login")) + # Redirect to login page + return redirect(reverse("account_login")) # Redirect to user dashboard for logged in users if request.user.is_authenticated: @@ -78,10 +77,7 @@ def get_context_data(self, **kwargs): """Pass along endpoint for support form.""" context = super().get_context_data(**kwargs) context["SUPPORT_FORM_ENDPOINT"] = settings.SUPPORT_FORM_ENDPOINT - - if settings.RTD_EXT_THEME_ENABLED: - context["form"] = self.form_class(self.request.user) - + context["form"] = self.form_class(self.request.user) return context diff --git a/readthedocs/organizations/tests/test_filters.py b/readthedocs/organizations/tests/test_filters.py index ee3df5a4198..369cfeeb1ca 100644 --- a/readthedocs/organizations/tests/test_filters.py +++ b/readthedocs/organizations/tests/test_filters.py @@ -13,7 +13,6 @@ class OrganizationFilterTestCase: @pytest.fixture(autouse=True) def set_up(self, settings, client): settings.RTD_ALLOW_ORGANIZATIONS = True - settings.RTD_EXT_THEME_ENABLED = True self.client = client diff --git a/readthedocs/organizations/views/private.py b/readthedocs/organizations/views/private.py index 7463846e79c..b354aad8c14 100644 --- a/readthedocs/organizations/views/private.py +++ b/readthedocs/organizations/views/private.py @@ -76,9 +76,8 @@ def get_queryset(self): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - if settings.RTD_EXT_THEME_ENABLED: - context["filter"] = self.get_filterset() - context["organization_list"] = self.get_filtered_queryset() + context["filter"] = self.get_filterset() + context["organization_list"] = self.get_filtered_queryset() return context diff --git a/readthedocs/organizations/views/public.py b/readthedocs/organizations/views/public.py index 861a96ff17b..6570da64023 100644 --- a/readthedocs/organizations/views/public.py +++ b/readthedocs/organizations/views/public.py @@ -2,7 +2,6 @@ # pylint: disable=too-many-ancestors import structlog -from django.conf import settings from django.http import HttpResponseRedirect from django.urls import reverse from django.urls import reverse_lazy @@ -17,7 +16,6 @@ from readthedocs.organizations.filters import OrganizationProjectListFilterSet from readthedocs.organizations.filters import OrganizationTeamListFilterSet from readthedocs.organizations.filters import OrganizationTeamMemberListFilterSet -from readthedocs.organizations.models import Team from readthedocs.organizations.views.base import CheckOrganizationsEnabled from readthedocs.organizations.views.base import OrganizationMixin from readthedocs.organizations.views.base import OrganizationTeamMemberView @@ -49,20 +47,11 @@ def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) org = self.get_object() projects = Project.objects.for_user(self.request.user).filter(organizations=org).all() - if settings.RTD_EXT_THEME_ENABLED: - context["filter"] = self.get_filterset( - queryset=projects, - organization=org, - ) - projects = self.get_filtered_queryset() - else: - teams = ( - Team.objects.member(self.request.user, organization=org) - .prefetch_related("organization") - .all() - ) - context["teams"] = teams - context["owners"] = org.owners.all() + context["filter"] = self.get_filterset( + queryset=projects, + organization=org, + ) + projects = self.get_filtered_queryset() context["projects"] = projects context["notifications"] = Notification.objects.for_user( @@ -83,11 +72,10 @@ class ListOrganizationMembers(FilterContextMixin, OrganizationMixin, ListView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - if settings.RTD_EXT_THEME_ENABLED: - context["filter"] = self.get_filterset( - organization=self.get_organization(), - ) - context[self.get_context_object_name()] = self.get_filtered_queryset() + context["filter"] = self.get_filterset( + organization=self.get_organization(), + ) + context[self.get_context_object_name()] = self.get_filtered_queryset() return context def get_queryset(self): @@ -113,16 +101,13 @@ def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) org = self.get_organization() - if settings.RTD_EXT_THEME_ENABLED: - # TODO the team queryset, used through ``get_queryset()`` defines - # sorting. Sorting should only happen in the filterset, so it can be - # controlled in the UI. - context["filter"] = self.get_filterset( - organization=org, - ) - context[self.get_context_object_name()] = self.get_filtered_queryset() - else: - context["owners"] = org.owners.all() + # TODO the team queryset, used through ``get_queryset()`` defines + # sorting. Sorting should only happen in the filterset, so it can be + # controlled in the UI. + context["filter"] = self.get_filterset( + organization=org, + ) + context[self.get_context_object_name()] = self.get_filtered_queryset() return context diff --git a/readthedocs/projects/forms.py b/readthedocs/projects/forms.py index 5494ab2197b..ced3e71faf6 100644 --- a/readthedocs/projects/forms.py +++ b/readthedocs/projects/forms.py @@ -479,9 +479,8 @@ def __init__(self, *args, **kwargs): self.fields.pop(field) # Remove analytics from new dashboard - if settings.RTD_EXT_THEME_ENABLED: - for field in ["analytics_code", "analytics_disabled"]: - self.fields.pop(field) + for field in ["analytics_code", "analytics_disabled"]: + self.fields.pop(field) default_choice = (None, "-" * 9) versions_choices = ( diff --git a/readthedocs/projects/notifications.py b/readthedocs/projects/notifications.py index 62154f65cc4..ee55c858160 100644 --- a/readthedocs/projects/notifications.py +++ b/readthedocs/projects/notifications.py @@ -2,76 +2,17 @@ import textwrap -from django.contrib.auth.models import User -from django.db.models import Count -from django.utils import timezone from django.utils.translation import gettext_noop as _ -from readthedocs.core.permissions import AdminPermission from readthedocs.notifications.constants import ERROR from readthedocs.notifications.constants import INFO from readthedocs.notifications.constants import WARNING -from readthedocs.notifications.email import EmailNotification from readthedocs.notifications.messages import Message from readthedocs.notifications.messages import registry from readthedocs.projects.exceptions import ProjectConfigurationError from readthedocs.projects.exceptions import RepositoryError from readthedocs.projects.exceptions import SyncRepositoryLocked from readthedocs.projects.exceptions import UserFileNotFound -from readthedocs.projects.models import Project - - -class NewDashboardNotification(EmailNotification): - """ - Notification about new dashboard rollout and changes for Business users. - - To send: - - for user in NewDashboardNotification.for_admins(): - notify = NewDashboardNotificaiton(user, user) - notify.send() - - NOTE: This can be removed with RTD_EXT_THEME_ENABLED. - """ - - app_templates = "projects" - name = "new_dashboard" - subject = "Upcoming changes to our dashboard" - - @staticmethod - def for_projects(): - # Only send to admin users of recently built projects - projects = ( - Project.objects.filter(builds__date__gte=timezone.datetime(2023, 1, 1)) - .annotate(successful_builds=Count("builds__success")) - .filter(successful_builds__gte=3) - .distinct() - .order_by("slug") - ) - - # Filter out projects that are spam. This is conditional as this module - # doesn't seem available in our tests. - try: - from readthedocsext.spamfighting.utils import spam_score - - projects = filter(lambda p: spam_score(p) < 200, projects) - - # Convert back to queryset - return Project.objects.filter(slug__in=[p.slug for p in projects]) - except ImportError: - return projects - - @staticmethod - def for_admins(projects=None): - if projects is None: - projects = NewDashboardNotification.for_projects() - usernames = set() - for project in projects: - usernames.update( - set(AdminPermission.admins(project).values_list("username", flat=True)) - ) - - return User.objects.filter(username__in=usernames) MESSAGE_PROJECT_SKIP_BUILDS = "project:invalid:skip-builds" diff --git a/readthedocs/projects/urls/private.py b/readthedocs/projects/urls/private.py index 34a885dc84e..c3d1857827a 100644 --- a/readthedocs/projects/urls/private.py +++ b/readthedocs/projects/urls/private.py @@ -1,6 +1,5 @@ """Project URLs for authenticated users.""" -from django.conf import settings from django.contrib.auth.decorators import login_required from django.urls import path from django.urls import re_path @@ -211,20 +210,13 @@ PageNotFoundView.as_view(), name="projects_keys", ), + re_path( + r"^(?P[-\w]+)/version/create/$", + ProjectVersionCreate.as_view(), + name="project_version_create", + ), ] -# TODO move this up to the list above when it's not a conditional URL. -# Currently, this is only used by the new theme, we don't allow for "create" in -# our current templates. -if settings.RTD_EXT_THEME_ENABLED: - urlpatterns.append( - re_path( - r"^(?P[-\w]+)/version/create/$", - ProjectVersionCreate.as_view(), - name="project_version_create", - ), - ) - domain_urls = [ re_path( r"^(?P[-\w]+)/domains/$", @@ -250,17 +242,15 @@ urlpatterns += domain_urls -# We are allowing users to enable the new addons only from the new dashboard -if settings.RTD_EXT_THEME_ENABLED: - addons_urls = [ - re_path( - r"^(?P[-\w]+)/addons/edit/$$", - AddonsConfigUpdate.as_view(), - name="projects_addons", - ), - ] +addons_urls = [ + re_path( + r"^(?P[-\w]+)/addons/edit/$$", + AddonsConfigUpdate.as_view(), + name="projects_addons", + ), +] - urlpatterns += addons_urls +urlpatterns += addons_urls integration_urls = [ re_path( diff --git a/readthedocs/projects/urls/public.py b/readthedocs/projects/urls/public.py index 31d443692b2..22dc6744284 100644 --- a/readthedocs/projects/urls/public.py +++ b/readthedocs/projects/urls/public.py @@ -1,6 +1,5 @@ """Project URLS for public users.""" -from django.conf import settings from django.urls import path from django.urls import re_path from django.views.generic.base import RedirectView @@ -13,14 +12,9 @@ from readthedocs.search.views import ProjectSearchView -# While we have two dashboards, this logic exists to unify two views that are -# mostly identical. For some background on the future plans here, see: -# https://github.com/readthedocs/ext-theme/issues/191 -project_versions_list = public.project_versions -if settings.RTD_EXT_THEME_ENABLED: - # The ProjectDetailView already contains the logic for filtering and sorting - # that is missing from the function view `public.project_versions`. - project_versions_list = ProjectDetailView.as_view() +# The ProjectDetailView already contains the logic for filtering and sorting +# that is missing from the function view `public.project_versions`. +project_versions_list = ProjectDetailView.as_view() urlpatterns = [ path( diff --git a/readthedocs/projects/views/private.py b/readthedocs/projects/views/private.py index 562cab42420..c83ef2163bc 100644 --- a/readthedocs/projects/views/private.py +++ b/readthedocs/projects/views/private.py @@ -102,40 +102,35 @@ def get_context_data(self, **kwargs): # Set the default search to search files instead of projects context["type"] = "file" - if settings.RTD_EXT_THEME_ENABLED: - context["filter"] = self.get_filterset() - context["project_list"] = self.get_filtered_queryset() - # Alternatively, dynamically override super()-derived `project_list` context_data - # context[self.get_context_object_name(filter.qs)] = filter.qs - - template_name = None - projects = AdminPermission.projects(user=self.request.user, admin=True) - n_projects = projects.count() - - # TODO remove this with RTD_EXT_THEME_ENABLED - # This is going to try hard to show the new dashboard announcement. - # We can't yet back down to another announcement as we don't have - # the ability to evaluate local storage. Until we add the ability to - # dynamically change the announcement, this is going to be the only - # announcement shown. - if True: # pylint: disable=using-constant-test - template_name = "new-dashboard.html" - elif n_projects == 0 or ( - n_projects < 3 and (timezone.now() - projects.first().pub_date).days < 7 - ): - template_name = "example-projects.html" - elif n_projects and not projects.filter(external_builds_enabled=True).exists(): - template_name = "pull-request-previews.html" - elif n_projects and not projects.filter(addons__analytics_enabled=True).exists(): - template_name = "traffic-analytics.html" - elif AdminPermission.organizations( - user=self.request.user, - owner=True, - ).exists(): - template_name = "security-logs.html" - - if template_name: - context["announcement"] = f"projects/partials/announcements/{template_name}" + context["filter"] = self.get_filterset() + context["project_list"] = self.get_filtered_queryset() + # Alternatively, dynamically override super()-derived `project_list` context_data + # context[self.get_context_object_name(filter.qs)] = filter.qs + + template_name = None + projects = AdminPermission.projects(user=self.request.user, admin=True) + n_projects = projects.count() + + # We can't yet back down to another announcement as we don't have + # the ability to evaluate local storage. Until we add the ability to + # dynamically change the announcement, this is going to be the only + # announcement shown. + if n_projects == 0 or ( + n_projects < 3 and (timezone.now() - projects.first().pub_date).days < 7 + ): + template_name = "example-projects.html" + elif n_projects and not projects.filter(external_builds_enabled=True).exists(): + template_name = "pull-request-previews.html" + elif n_projects and not projects.filter(addons__analytics_enabled=True).exists(): + template_name = "traffic-analytics.html" + elif AdminPermission.organizations( + user=self.request.user, + owner=True, + ).exists(): + template_name = "security-logs.html" + + if template_name: + context["announcement"] = f"projects/partials/announcements/{template_name}" return context @@ -157,15 +152,7 @@ def validate_primary_email(self, user): ) def get_queryset(self): - queryset = Project.objects.dashboard(self.request.user) - if settings.RTD_EXT_THEME_ENABLED: - return queryset - # The new dashboard uses django-filters, this is a manual filter for the - # old dashboard and it can be removed with the old dashboard. - sort = self.request.GET.get("sort") - if sort not in ["modified_date", "-modified_date", "slug", "-slug"]: - sort = "slug" - return queryset.order_by(sort) + return Project.objects.dashboard(self.request.user) def get(self, request, *args, **kwargs): self.validate_primary_email(request.user) @@ -229,19 +216,14 @@ class ProjectVersionMixin(ProjectAdminMixin, PrivateViewMixin): lookup_field = "slug" def get_success_url(self): - if settings.RTD_EXT_THEME_ENABLED: - # Redirect to the main version listing view instead of the version - # admin listing. The version admin view, ``project_version_list``, - # is an old view without filtering and splits up active/inactive - # versions into two separate querysets. - # - # See: https://github.com/readthedocs/ext-theme/issues/288 - return reverse( - "projects_detail", - kwargs={"project_slug": self.get_project().slug}, - ) + # Redirect to the main version listing view instead of the version + # admin listing. The version admin view, ``project_version_list``, + # is an old view without filtering and splits up active/inactive + # versions into two separate querysets. + # + # See: https://github.com/readthedocs/ext-theme/issues/288 return reverse( - "project_version_list", + "projects_detail", kwargs={"project_slug": self.get_project().slug}, ) @@ -494,10 +476,9 @@ def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context["view_csrf_token"] = get_token(self.request) - if settings.RTD_EXT_THEME_ENABLED: - context["allow_private_repos"] = settings.ALLOW_PRIVATE_REPOS - context["form_automatic"] = ProjectAutomaticForm(user=self.request.user) - context["form_manual"] = ProjectManualForm(user=self.request.user) + context["allow_private_repos"] = settings.ALLOW_PRIVATE_REPOS + context["form_automatic"] = ProjectAutomaticForm(user=self.request.user) + context["form_manual"] = ProjectManualForm(user=self.request.user) return context diff --git a/readthedocs/projects/views/public.py b/readthedocs/projects/views/public.py index fb0293e62c8..ab0b2a9a46a 100644 --- a/readthedocs/projects/views/public.py +++ b/readthedocs/projects/views/public.py @@ -121,12 +121,11 @@ def get_context_data(self, **kwargs): # Get filtered and sorted versions versions = self._get_versions(project) - if settings.RTD_EXT_THEME_ENABLED: - context["filter"] = self.get_filterset( - queryset=versions, - project=project, - ) - versions = self.get_filtered_queryset() + context["filter"] = self.get_filterset( + queryset=versions, + project=project, + ) + versions = self.get_filtered_queryset() context["versions"] = versions protocol = "http" diff --git a/readthedocs/rtd_tests/tests/test_notifications.py b/readthedocs/rtd_tests/tests/test_notifications.py index 3296822ede9..3e00c031371 100644 --- a/readthedocs/rtd_tests/tests/test_notifications.py +++ b/readthedocs/rtd_tests/tests/test_notifications.py @@ -55,10 +55,8 @@ class TestNotification(EmailNotification): "DO_NOT_TRACK_ENABLED": mock.ANY, "GLOBAL_ANALYTICS_CODE": mock.ANY, "PRODUCTION_DOMAIN": "readthedocs.org", - "SWITCH_PRODUCTION_DOMAIN": settings.SWITCH_PRODUCTION_DOMAIN, "PUBLIC_DOMAIN": mock.ANY, "PUBLIC_API_URL": mock.ANY, - "RTD_EXT_THEME_ENABLED": mock.ANY, "SITE_ROOT": mock.ANY, "SUPPORT_EMAIL": "support@readthedocs.org", "TEMPLATE_ROOT": mock.ANY, diff --git a/readthedocs/rtd_tests/tests/test_project_views.py b/readthedocs/rtd_tests/tests/test_project_views.py index 53c25f49999..e9e0d63f12c 100644 --- a/readthedocs/rtd_tests/tests/test_project_views.py +++ b/readthedocs/rtd_tests/tests/test_project_views.py @@ -367,16 +367,6 @@ def test_project_downloads_only_shows_internal_versons(self): self.assertEqual(response.status_code, 200) self.assertNotIn(self.external_version, response.context["versions"]) - @pytest.mark.skipif( - settings.RTD_EXT_THEME_ENABLED, reason="Not applicable for new theme" - ) - def test_project_versions_only_shows_internal_versons(self): - url = reverse("project_version_list", args=[self.pip.slug]) - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - self.assertNotIn(self.external_version, response.context["active_versions"]) - self.assertNotIn(self.external_version, response.context["inactive_versions"]) - @mock.patch( "readthedocs.projects.views.base.ProjectSpamMixin.is_show_dashboard_denied_wrapper", mock.MagicMock(return_value=True), diff --git a/readthedocs/settings/base.py b/readthedocs/settings/base.py index 157789457fd..93d529a8087 100644 --- a/readthedocs/settings/base.py +++ b/readthedocs/settings/base.py @@ -97,14 +97,6 @@ def SHOW_DEBUG_TOOLBAR(self): RTD_INTERSPHINX_URL = "https://{}".format(PRODUCTION_DOMAIN) RTD_EXTERNAL_VERSION_DOMAIN = "external-builds.readthedocs.io" - @property - def SWITCH_PRODUCTION_DOMAIN(self): - if self.RTD_EXT_THEME_ENABLED: - return self.PRODUCTION_DOMAIN.removeprefix("app.") - if not self.PRODUCTION_DOMAIN.startswith("app."): - return f"app.{self.PRODUCTION_DOMAIN}" - return self.PRODUCTION_DOMAIN - # Doc Builder Backends MKDOCS_BACKEND = "readthedocs.doc_builder.backends.mkdocs" SPHINX_BACKEND = "readthedocs.doc_builder.backends.sphinx" @@ -228,10 +220,6 @@ def RTD_DEFAULT_FEATURES(self): DOC_PATH_PREFIX = "_/" - @property - def RTD_EXT_THEME_ENABLED(self): - return ext_theme and "RTD_EXT_THEME_ENABLED" in os.environ - RTD_EXT_THEME_DEV_SERVER = None # Application classes @@ -292,6 +280,7 @@ def INSTALLED_APPS(self): # noqa "readthedocs.telemetry", "readthedocs.domains", "readthedocs.invitations", + "readthedocsext.theme", # allauth "allauth", "allauth.account", @@ -311,8 +300,6 @@ def INSTALLED_APPS(self): # noqa apps.append("readthedocsext.cdn") apps.append("readthedocsext.donate") apps.append("readthedocsext.spamfighting") - if self.RTD_EXT_THEME_ENABLED: - apps.append("readthedocsext.theme") if self.SHOW_DEBUG_TOOLBAR: apps.append("debug_toolbar") @@ -320,15 +307,11 @@ def INSTALLED_APPS(self): # noqa @property def CRISPY_TEMPLATE_PACK(self): - if self.RTD_EXT_THEME_ENABLED: - return "semantic-ui" - return "bootstrap" + return "semantic-ui" @property def CRISPY_ALLOWED_TEMPLATE_PACKS(self): - if self.RTD_EXT_THEME_ENABLED: - return ("semantic-ui",) - return ("bootstrap", "uni_form", "bootstrap3", "bootstrap4") + return ("semantic-ui",) @property def USE_PROMOS(self): # noqa @@ -430,14 +413,13 @@ def MIDDLEWARE(self): @property def TEMPLATES(self): dirs = [self.TEMPLATE_ROOT] - if self.RTD_EXT_THEME_ENABLED: - dirs.insert( - 0, - os.path.join( - os.path.dirname(readthedocsext.theme.__file__), - "templates", - ), - ) + dirs.insert( + 0, + os.path.join( + os.path.dirname(readthedocsext.theme.__file__), + "templates", + ), + ) # Disable ``cached.Loader`` on development # https://docs.djangoproject.com/en/4.2/ref/templates/api/#django.template.loaders.cached.Loader diff --git a/tox.ini b/tox.ini index a9e9d8daf01..5c2ac0e07f0 100644 --- a/tox.ini +++ b/tox.ini @@ -14,6 +14,7 @@ setenv = passenv = CI,TRAVIS,TRAVIS_*,HOME deps = -r requirements/testing.txt + readthedocsext-theme@git+https://github.com/readthedocs/ext-theme.git@main basepython = python3.12 # https://pytest-cov.readthedocs.io/en/latest/debuggers.html @@ -30,19 +31,6 @@ allowlist_externals = sh git -[testenv:ext-theme] -setenv = - PYTHONPATH={toxinidir}/readthedocs:{toxinidir}:{envdir}/ - DJANGO_SETTINGS_MODULE=readthedocs.settings.test - LANG=en_US.UTF-8 - LC_ALL=en_US.UTF-8 - DJANGO_SETTINGS_SKIP_LOCAL=True - RTD_EXT_THEME_ENABLED=True -deps = - -r requirements/testing.txt - readthedocsext-theme@git+https://github.com/readthedocs/ext-theme.git@main - - # This is NOT run in CI builds, it can be used locally for convenience [testenv:docs] description = Build readthedocs user documentation From 1db40779ba34ac683673649e63911ba4f65ed447 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 12:28:47 +0200 Subject: [PATCH 2/9] `ProjectDetailViewBase` needs `_get_versions` It was deleted with `BuildTriggerMixin`, so this commit recovers it. --- readthedocs/projects/views/public.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/readthedocs/projects/views/public.py b/readthedocs/projects/views/public.py index ab0b2a9a46a..096bb8fd55d 100644 --- a/readthedocs/projects/views/public.py +++ b/readthedocs/projects/views/public.py @@ -29,7 +29,6 @@ from readthedocs.builds.constants import INTERNAL from readthedocs.builds.constants import LATEST from readthedocs.builds.models import Version -from readthedocs.builds.views import BuildTriggerMixin from readthedocs.core.filters import FilterContextMixin from readthedocs.core.mixins import CDNCacheControlMixin from readthedocs.core.permissions import AdminPermission @@ -97,7 +96,6 @@ class ProjectDetailViewBase( FilterContextMixin, ProjectSpamMixin, ProjectRelationListMixin, - BuildTriggerMixin, ProjectOnboardMixin, DetailView, ): @@ -108,6 +106,12 @@ class ProjectDetailViewBase( filterset_class = ProjectVersionListFilterSet + def _get_versions(self, project): + return Version.internal.public( + user=self.request.user, + project=project, + ) + def get_queryset(self): return Project.objects.public(self.request.user) From d179a3da6f01282b3a2bfb3f45d8fe19f991e2ef Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 12:29:29 +0200 Subject: [PATCH 3/9] Remove old media/static files --- media/css/autocomplete.css | 5 - media/css/badge_only.css | 1 - media/css/core.css | 1400 ----------------- media/css/header.css | 42 - media/css/sphinx_rtd_theme.css | 1 - media/font/fontawesome_webfont.eot | 1 - media/font/fontawesome_webfont.svg | 1 - media/font/fontawesome_webfont.ttf | 1 - media/font/fontawesome_webfont.woff | 1 - media/font/fontawesome_webfont.woff2 | 1 - media/fonts | 1 - media/images/badge-revsys-sm.png | Bin 3700 -> 0 bytes media/images/badge-revsys.png | Bin 6421 -> 0 bytes media/images/badge-rtd-sm.png | Bin 1117 -> 0 bytes media/images/badge-rtd.png | Bin 7029 -> 0 bytes media/images/body-bg.svg | 8 - media/images/bookmark-delete.png | Bin 957 -> 0 bytes media/images/bookmark-icon-active.png | Bin 663 -> 0 bytes media/images/bookmark-icon-default.png | Bin 642 -> 0 bytes media/images/bookmark-icon-hover.png | Bin 632 -> 0 bytes media/images/bookmark-icon-wait.png | Bin 939 -> 0 bytes media/images/build.png | Bin 2853 -> 0 bytes media/images/close-window.png | Bin 244 -> 0 bytes media/images/gear.png | Bin 1899 -> 0 bytes media/images/gradient-light.png | Bin 216 -> 0 bytes media/images/gradient.png | Bin 151 -> 0 bytes media/images/header-bg.png | Bin 13624 -> 0 bytes media/images/header-home-bg.svg | 8 - media/images/home-logo.png | Bin 3423 -> 0 bytes media/images/project-bar-bg-admin.svg | 28 - media/images/project-bar-bg.png | Bin 42376 -> 0 bytes media/images/search.png | Bin 1315 -> 0 bytes media/images/switch-grid-icon.png | Bin 215 -> 0 bytes media/images/switch-list-icon.png | Bin 217 -> 0 bytes media/javascript/base.js | 129 -- media/javascript/build_updater.js | 141 -- media/javascript/doctools.js | 238 --- media/javascript/jquery/jquery-2.0.3.min.js | 24 - .../jquery/jquery-migrate-1.2.1.min.js | 1 - .../jquery/jquery-ui-1.8.24.custom.min.js | 1 - media/javascript/readthedocs-analytics.js | 46 - media/javascript/readthedocs-doc-embed.js | 1 - media/javascript/searchtools.js | 515 ------ media/javascript/underscore.js | 1 - readthedocs/settings/base.py | 1 - readthedocs/settings/docker_compose.py | 1 - .../vendor/chartjs/chartjs.bundle.min.js | 7 - .../static/vendor/chartjs/chartjs.min.css | 1 - .../vendor/jquery-migrate-standalone.js | 1 - readthedocs/static/vendor/jquery-migrate.js | 1 - .../static/vendor/jquery-standalone.js | 1 - .../static/vendor/jquery-ui-standalone.js | 1 - readthedocs/static/vendor/jquery-ui.js | 1 - readthedocs/static/vendor/jquery.js | 1 - readthedocs/static/vendor/knockout.js | 1 - .../static/vendor/underscore-standalone.js | 1 - readthedocs/static/vendor/underscore.js | 1 - 57 files changed, 2615 deletions(-) delete mode 100644 media/css/autocomplete.css delete mode 120000 media/css/badge_only.css delete mode 100644 media/css/core.css delete mode 100644 media/css/header.css delete mode 120000 media/css/sphinx_rtd_theme.css delete mode 120000 media/font/fontawesome_webfont.eot delete mode 120000 media/font/fontawesome_webfont.svg delete mode 120000 media/font/fontawesome_webfont.ttf delete mode 120000 media/font/fontawesome_webfont.woff delete mode 120000 media/font/fontawesome_webfont.woff2 delete mode 120000 media/fonts delete mode 100644 media/images/badge-revsys-sm.png delete mode 100644 media/images/badge-revsys.png delete mode 100644 media/images/badge-rtd-sm.png delete mode 100644 media/images/badge-rtd.png delete mode 100644 media/images/body-bg.svg delete mode 100644 media/images/bookmark-delete.png delete mode 100644 media/images/bookmark-icon-active.png delete mode 100644 media/images/bookmark-icon-default.png delete mode 100644 media/images/bookmark-icon-hover.png delete mode 100644 media/images/bookmark-icon-wait.png delete mode 100644 media/images/build.png delete mode 100644 media/images/close-window.png delete mode 100644 media/images/gear.png delete mode 100644 media/images/gradient-light.png delete mode 100644 media/images/gradient.png delete mode 100644 media/images/header-bg.png delete mode 100644 media/images/header-home-bg.svg delete mode 100644 media/images/home-logo.png delete mode 100644 media/images/project-bar-bg-admin.svg delete mode 100644 media/images/project-bar-bg.png delete mode 100644 media/images/search.png delete mode 100644 media/images/switch-grid-icon.png delete mode 100644 media/images/switch-list-icon.png delete mode 100644 media/javascript/base.js delete mode 100644 media/javascript/build_updater.js delete mode 100644 media/javascript/doctools.js delete mode 100644 media/javascript/jquery/jquery-2.0.3.min.js delete mode 120000 media/javascript/jquery/jquery-migrate-1.2.1.min.js delete mode 120000 media/javascript/jquery/jquery-ui-1.8.24.custom.min.js delete mode 100644 media/javascript/readthedocs-analytics.js delete mode 120000 media/javascript/readthedocs-doc-embed.js delete mode 100644 media/javascript/searchtools.js delete mode 120000 media/javascript/underscore.js delete mode 100644 readthedocs/static/vendor/chartjs/chartjs.bundle.min.js delete mode 100644 readthedocs/static/vendor/chartjs/chartjs.min.css delete mode 100644 readthedocs/static/vendor/jquery-migrate-standalone.js delete mode 100644 readthedocs/static/vendor/jquery-migrate.js delete mode 100644 readthedocs/static/vendor/jquery-standalone.js delete mode 100644 readthedocs/static/vendor/jquery-ui-standalone.js delete mode 100644 readthedocs/static/vendor/jquery-ui.js delete mode 100644 readthedocs/static/vendor/jquery.js delete mode 100644 readthedocs/static/vendor/knockout.js delete mode 100644 readthedocs/static/vendor/underscore-standalone.js delete mode 100644 readthedocs/static/vendor/underscore.js diff --git a/media/css/autocomplete.css b/media/css/autocomplete.css deleted file mode 100644 index b3af92af772..00000000000 --- a/media/css/autocomplete.css +++ /dev/null @@ -1,5 +0,0 @@ - -.ui-autocomplete-input { width: 225px; } -.ui-autocomplete { background: #fff; text-align: left; } -.ui-state-hover { background: #eee; } -.ui-menu-item a { display: block; padding: 5px 10px; } diff --git a/media/css/badge_only.css b/media/css/badge_only.css deleted file mode 120000 index 12c15c72a6b..00000000000 --- a/media/css/badge_only.css +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/css/badge_only.css \ No newline at end of file diff --git a/media/css/core.css b/media/css/core.css deleted file mode 100644 index c66ebb2ef29..00000000000 --- a/media/css/core.css +++ /dev/null @@ -1,1400 +0,0 @@ -@charset "utf-8"; - -/* reset */ - -html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin: 0; padding: 0; border: 0; font-size: 100%; vertical-align: baseline; } -article, aside, dialog, figure, footer, header, hgroup, nav, section { display: block !important; } -table { border-collapse: separate; border-spacing: 0; vertical-align: top; } -caption, th, td { text-align: left; font-weight: normal; } -table, td, th { border-spacing: 0; width: 100%; } -blockquote:before, blockquote:after, q:before, q:after {content:"";} -blockquote, q {quotes:"" "";} -a img {border:none;} -ol,ul{list-style:none} -hr { height: 1px; border: 0; border: none; width: 100%; background: #bfbfbf; color: #bfbfbf; margin: 15px 0; padding: 0; } - -/* general layout */ - -body { position: relative; text-align: center; z-index: 0; background: #fafafa url(../images/body-bg.svg) top left repeat; } -.wrapper { position: relative; text-align: left; margin: 0 auto; padding: 0 10px; width: 800px; } - -div.wrapper > div.col-major { - display: block; - float: left; - width: 65%; - margin-right: 20px; -} - -div.wrapper > div.col-minor { - overflow: auto; -} - -/* typography */ - -body { font: 16px/24px Lato, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #444; } -h1, h2, h3, h4, h5, h6 { color: #222; font-weight: bold; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); } -h1 { font-size: 28px; line-height: 36px; margin-bottom: 40px; } -h2 { font-size: 24px; line-height: 28px; margin-bottom: 10px; } -h3 { font-size: 20px; line-height: 24px; margin-bottom: 10px; } -h4, h5, h6 { font-size: 16px; line-height: 20px; margin-bottom: 10px; } -.aside, .quiet { font-weight: normal; color: #999; } -.error, .errornote, .errorlist li { color: #EB3800; } -.errornote { margin-bottom: 15px; } -.edit, -a { color: #444; } -.edit, -a:hover { color: #111; } -table { margin-bottom: 15px; } -p { margin-bottom: 15px; } -pre { margin: 15px 0; white-space: pre; overflow: auto; } -pre, code, tt { font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace; line-height: 20px; } -textarea, input, select { font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace; font-size: 16px; line-height: 20px; } - -@font-face { - font-family: 'Lato'; - src: url('../fonts/lato/Lato-Bold.eot'); /* IE9 Compat Modes */ - src: url('../fonts/lato/Lato-Bold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/lato/Lato-Bold.woff2') format('woff2'), /* Modern Browsers */ - url('../fonts/lato/Lato-Bold.woff') format('woff'), /* Modern Browsers */ - url('../fonts/lato/Lato-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: 'Lato'; - src: url('../fonts/lato/Lato-Italic.eot'); /* IE9 Compat Modes */ - src: url('../fonts/lato/Lato-Italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/lato/Lato-Italic.woff2') format('woff2'), /* Modern Browsers */ - url('../fonts/lato/Lato-Italic.woff') format('woff'), /* Modern Browsers */ - url('../fonts/lato/Lato-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} -@font-face { - font-family: 'Lato'; - src: url('../fonts/lato/Lato-Regular.eot'); /* IE9 Compat Modes */ - src: url('../fonts/lato/Lato-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/lato/Lato-Regular.woff2') format('woff2'), /* Modern Browsers */ - url('../fonts/lato/Lato-Regular.woff') format('woff'), /* Modern Browsers */ - url('../fonts/lato/Lato-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot'); - src: url('../fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff') format('woff'), url('../fonts/fontawesome-webfont.ttf') format('truetype'), url('../fonts/fontawesome-webfont.svg') format('svg'); - font-weight: normal; - font-style: normal; -} - -/* tables */ - -table, td, th { vertical-align: top; border-top: 1px solid #bfbfbf; border-left: 1px solid #bfbfbf; } -td, th { padding: 5px; border-right: 1px solid #bfbfbf; border-bottom: 1px solid #bfbfbf; } -thead { background: #f2f2f2; } - - -/* forms */ -small input[type=text] { font-size:0.8em; padding:2px; } - -form p { color: #999; } -form p label { font-weight: normal; } -form p.required label { font-weight: bold; } -textarea, input, button, .button, select { display: block; padding: 5px; color: #444; background-color: #fff; border: 1px solid #BFBFBF; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } -textarea, input, .button { box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; } -input[type="text"], input[type="password"], input[type="email"] { width: 250px; height: 20px; margin-bottom: 5px; background: #fff; } -input::-webkit-input-placeholder { color: #ccc; } -input:-moz-placeholder { color: #ccc; opacity: 1; } -input::-moz-placeholder { color: #ccc; opacity: 1; } -input:-ms-input-placeholder { color: #ccc; } - -input[type="radio"] + span.helptext, -input[type="checkbox"] + span.helptext { - color: #444; -} - -textarea.field-error, -input[type="text"].field-error { - border: 1px solid red; -} - -.navigable select { width: 150px;} -select { display: block; max-height: 300px; width: 250px; margin-bottom: 10px; font-size: 16px; line-height: 20px; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace; } -textarea { background: #fff; width: 435px; height: 150px; } -input[type="submit"], input[type="button"], button, .button { font-family: Lato, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #666; font-weight: bold; padding: 8px 15px; border: none; background: #e6e6e6 url(../images/gradient.png) repeat-x bottom left; margin: 30px 5px 20px 0; text-shadow: 0 1px 0 rgba(255, 255, 255, 1); border: 1px solid #bfbfbf; display: block; text-decoration: none; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; cursor: pointer;} -.button { padding: 6px 10px; float: left; cursor: pointer; } -input[type="submit"]:hover, input[type="button"]:hover, button:hover, .button:hover { background-color: #8ECC4C; color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); border-color: #6B9939; border-bottom-color: #50732B; } -input[type="submit"]:active, input[type="button"]:active, button:active, .button:active { box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none; } -fieldset { border: 1px solid #bfbfbf; padding: 15px; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; margin-bottom: 15px; } -input[type="hidden"] { display: none; } -input[type="checkbox"], input[type="radio"] { display: inline; } -label { display: block; margin-bottom: 4px; font-weight: bold; color: #444; } - -input[type="submit"].inline, input[type="button"].inline, button.inline, .button.inline { display: inline; } - -h2 > span.link-help, -h3 > span.link-help, -label > span.link-help { - color: #999; - font-size: 16px; - font-weight: normal; -} - -h2 > span.link-help, -h3 > span.link-help { - float: right; -} - -form.form-wide input[type='text'], -form.form-wide select, -form.form-wide textarea { - width: 100%; -} - -/* content */ - -#content { padding: 50px 0; } -#content ul { margin-bottom: 20px; } - -#project_description { margin-top: 20px; } -/* Commenting this for now. Want to figure out how to make it look sane with small amounts of text. */ -/* #content p { background-color: #eee; } */ - -/* icons */ - -i { display: inline-block; padding:0; margin:0; padding-right:6px; position: relative; bottom:-2px; width: 15px; height: 15px; background:no-repeat url(../images/gear.png); } - -/* header */ - -#rtfd-header { - height: 50px; - background: url(../images/header-bg.png) bottom left repeat-x #465158; - text-align: left; - border-bottom: 1px solid #000; - position: relative; - overflow: visible; -} - -/* header title */ -.rtfd-header-title { - display: block; - float: left; - margin: 0; - padding: 0; - height: 50px; - width: 180px; -} - .rtfd-header-title h1 { background: url(../images/logo.png) top left no-repeat; position: absolute; top: 0; left: -30px; margin: 0; padding: 0; font-size: 20px; line-height: 20px; color: #fff; text-indent: -9999em; } - .rtfd-header-title h1 a { display: block; color: #fff; text-decoration: none; height: 50px; width: 200px; } - - /* header search */ - .rtfd-header-search { position: absolute; top: 12px; left: 190px; width: 320px; } - .rtfd-header-search input { padding: 0 5px; margin: 0; height: 25px; font-size: 14px; float: left; -moz-border-radius: 0; -webkit-border-radius: 0; border: none; } - .rtfd-header-search input[type="text"] { -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; width: 225px; } - .rtfd-header-search input[type="submit"] { font-family: Lato, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; padding: 0 12px; background: #e6e6e6 url(../images/gradient.png) repeat-x bottom left; font-weight: bold; color: #666; } - .rtfd-header-search input[type="submit"]:hover { text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); background-color: #8ECC4C; color: #fff; } - - /* header nav */ - .rtfd-header-nav { position: absolute; top: 0; right: 10px; } - .rtfd-header-nav ul li { float: left; } - .rtfd-header-nav ul li a { font-size: 14px; font-weight: bold; display: block; text-decoration: none; padding: 4px 10px; margin: 10px 0 0 10px; color: #fff; text-shadow: 0 1px 0px rgba(0, 0, 0, 0.5); background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); } - .rtfd-header-nav ul li a:hover { background-color: #8CA1AF; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); } - .rtfd-header-nav ul li.active a, .header-nav ul li.active a:hover { background-color: #BAC7CF; } - -/* User drop down menu */ -div.menu-user { - display: inline-block; - position: relative; - float: right; - line-height: 32px; -} - -div.menu-user div.menu-button { - height: 24px; - line-height: 24px; - margin-top: 8px; -} - -div.menu-user div.menu-button > a { - display: block; - float: left; - height: 24px; - padding: 4px 1em 4px 4px; - line-height: 24px; - - background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; - color: #fff; - text-decoration: none; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); -} - -div.menu-user div.menu-button > a img { - display: block; - margin-right: .6em; - float: left; -} - -div.menu-user div.menu-button button.menu-drop { - display: block; - float: right; - width: 32px; - height: 32px; - margin: 0px; - padding-left: 8px; - padding-right: 8px; - border: none; - border-left: 1px solid #465158; - line-height: 16px; - vertical-align: top; - - background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); - border-radius: 0em .3em .3em 0em; -} - -div.menu-user div.menu-dropdown { - display: block; - position: absolute; - min-width: 7em; - height: 0em; - right: 0em; - top: 32px; - padding: .6em 1em; - z-index: 100; - - background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; - visibility: hidden; - opacity: 0; - transition: visibility 0.05s, opacity 0.05s; - -webkit-transition: visibility 0.05s, opacity 0.05s; - -moz-transition: visibility 0.05s, opacity 0.05s; - -ms-transition: visibility 0.05s, opacity 0.05s; - -o-transition: visibility 0.05s, opacity 0.05s; - - font-size: 1.1em; -} - -div.menu-user div.menu-dropdown ul + ul { - border-top: 1px solid #465158; -} - -div.menu-user div.menu-dropdown li { - line-height: 1.75em; - margin: .3em 0em; -} - -div.menu-user div.menu-dropdown li a { - display: block; - padding: 4px 8px; - font-size: 15px; - line-height: 1.5; - text-decoration: none; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); - color: #fff; -} - -div.menu-user div.menu-dropdown li a:hover { - background: #465158; -} - -div.menu-user div.menu-dropdown.menu-dropped { - height: auto; - visibility: visible; - opacity: 1; -} - -/* home */ - -#home-header { background: url(../images/header-home-bg.svg) top left repeat #465158; border-bottom: 1px solid #333; padding: 65px 0 35px 0; color: #fff; } -.home.splash #content { padding-top: 80px; } - - /* title */ - .home-header-title { padding: 15px 0 30px 110px; margin-left: -25px; background: url(../images/home-logo.png) top left no-repeat; text-shadow: 0 2px 0 rgba(0, 0, 0, 0.3); } - .home-header-title h1 { color: #fff; padding: 0; margin: 0; text-shadow: 0 2px 0 rgba(0, 0, 0, 0.3); } - .home-header-title .tagline { color: #BCC1C3; } - - /* title */ - .home-header-links { position: absolute; top: 22px; right: 10px; width: 180px; } - .home-header-links a.reg { color: #fff; display: block; padding: 10px 20px; background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; font-weight: bold; text-shadow: 0px 1px 0 rgba(0, 0, 0, 0.7); text-decoration: none; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; margin-bottom: 10px; text-align: center; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2); } - .home-header-links a.reg:hover { background-color: #8CA1AF; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); } - .home-header-links .login-box { text-align: center; } - .home-header-links .login-box p { margin-bottom: 0; color: #BCC1C3; } - .home-header-links .login { font-weight: bold; color: #e3e3e3; text-shadow: 0px 1px 0 rgba(0, 0, 0, 0.5); } - .home-header-links .login:hover { text-align: center; color: #fff; } - -section { - margin-bottom: 60px; -} -.home .lead { - font-size: 20px; - line-height: 30px; -} -.home .feature { - float: left; - width: 48%; - margin-left: 1%; - margin-right: 1%; -} - -a.cta-btn { - /* Make this link look like a button */ - width: 300px; - font-weight: bold; - text-align: center; - display: inline-block; - margin: .3em 0em; - font-size: 1.1em; - color: #fff; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); - background: #e6e6e6 url(../images/gradient.png) repeat-x bottom left; - background-color: #8ECC4C; - border: 1px solid #bfbfbf; - border-color: #6B9939; - border-bottom-color: #50732B; - padding: 8px 15px; - border-radius: 3px; - text-decoration: none; - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -} -a.cta-btn:hover, a.cta-btn:active { - color: #fff; -} - -/* wide search bar */ - -.wide-search-bar { width: 100%; margin-bottom: 60px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; background: #e6e6e6; background: rgba(0, 0, 0, 0.1); } -.wide-search-bar-wrapper { padding: 8px; } -.wide-search-bar input { margin: 0; height: 25px; padding: 10px; border-radius: 0; -moz-border-radius: 0; -webkit-border-radius: 0; } -.wide-search-bar .text-input-wrapper { width: 70%; float: left; } -.wide-search-bar input[type="text"] { border-top-left-radius: 3px; border-bottom-left-radius: 3px; -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; width: 513px; } -.wide-search-bar .submit-input-wrapper { width: 30%; float: left; } -.wide-search-bar input[type="submit"] { border-top-right-radius: 3px; border-bottom-right-radius: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; height: 47px; width: 100%; text-align: center; } - - -/* search */ - -.search { border-bottom: solid 1px #bfbfbf; margin-bottom: 24px; } -.search input[type=text] { float: left; margin-right: 10px; padding: 8px 10px; } -.search input[type=submit] { margin-top: 0; } -/* this is same as the css class ".highlighted" */ -.search-result-item span { background-color: #ee9; padding: 0 1px; margin: 0 1px; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } - -.filter { margin-bottom: 1em; } -.filter dd { display: inline-block; margin-right: 0.75em; } -.filter dd small { opacity: 0.7; } - -div.search-sponsored { margin-top: 50px; } - -#search_module .pagination { float: right; margin-top: 1em; } - - -/* module */ - -.module { margin-bottom: 60px; } -#content .module ul { margin-bottom: 0; } -.module-header .small_head { padding: 0 10px; font-size: 14px; } - - /* module list*/ - .module-list { padding: 8px; background: #E6E6E6; background: rgba(0, 0, 0, 0.1); border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } - .module-list-wrapper { border: 1px solid #bfbfbf; border: 1px solid #bfbfbf; border-bottom: none; } - .module-list .count { float: right; font-size: .9em; color: #aaa; } - .module-item { position: relative; border-bottom: 1px solid #bfbfbf; padding: 10px; position:relative; } - .module-item p { margin: 0; } - - /* module item title */ - .module-item .module-item-title { font-weight: bold; font-size: 16px; text-decoration: none; } - .module-item a.module-item-title:hover { text-decoration: underline; } - - /* module item */ - .module-item { background: #fff; } - - /* right module menu */ - .module-item .module-item-menu { position: absolute; right: 0; top: 0; z-index: 5; } - .module-item .module-item-menu li { display: block; float: left; } - .module-item .module-item-menu li a { display: block; padding: 6px 10px 4px; margin: 7px 7px 0 0; font-weight: bold; font-size: 14px; height: 20px; line-height: 17px; text-decoration: none; color: #fff; background: #8CA1AF url(../images/gradient-light.png) bottom left repeat-x; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); box-shadow: 0 1px 1px #465158; -moz-box-shadow: 0 1px 1px #465158; -webkit-box-shadow: 0 1px 1px #465158; } - .module-item .module-item-menu li a:hover { background-color: #697983; box-shadow: 0 1px 0px #465158; -moz-box-shadow: 0 1px 0px #465158; -webkit-box-shadow: 0 1px 0px #465158; } - - li.module-item ul.module-item-menu li input[type="submit"] { - font-size: 16px; - line-height: 16px; - margin: 4px; - } - - li.module-item > img { - height: 24px; - width: 24px; - vertical-align: middle; - } - - li.module-item > p.error { - padding-top: .75em; - font-size: .8em; - line-height: 1.5em; - } - - /* for links that span the column */ - .module-item.col-span { border-bottom: 1px solid #bfbfbf; padding: 0; font-weight: bold; font-size: 16px; text-decoration: none; } - .module-item.col-span a { text-decoration: none; display: block; padding: 10px; } - .module-item.col-span a:hover { background: #f3f3f3 url(../images/gradient-light.png) bottom left repeat-x; } - - /* call out */ - .module-list .module-item.call { padding: 0; } - .module-list .module-item.call a { display: block; padding: 30px; text-align: center; text-decoration: none; font-weight: bold; font-size: 18px; } - .module-list .module-item.call a:hover { background: #f3f3f3 url(../images/gradient-light.png) bottom left repeat-x; background-color: #8ECC4C; color: #fff; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); border-color: #8ECC4C; } - - /* Success Model Item */ - .module-item .success { float: right; } - -/* dashboard */ -div.module.search-dashboard { - overflow: auto; - border: 0px; - margin-bottom: 24px; -} - -div.module.search-dashboard div.search { - border: 0px; -} - -div.module.search-dashboard input { - display: block; - padding-left: 40px; - height: 2.5em; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - background-image: url('../images/search.png'); - background-repeat: no-repeat; - background-position: 8px center; - background-size: 24px 24px; -} - -/* Admin project Translation */ -.module-translation { padding-bottom: 25px; } - -/* Accounts Gold Projects */ -.module-gold-projects { padding-bottom: 25px; } - -/* project bar */ - -#project_bar { background: #E8ECEF url(../images/project-bar-bg.png) top left repeat; border-bottom: 1px solid #DAE1E5; overflow:hidden; position:relative; } -#project_bar a { text-decoration: none; } - -#project_bar > .wrapper { padding: 40px 0 50px; } - - body.project-edit #project_bar > .wrapper { background: url(../images/project-bar-bg-admin.svg) scroll 100% 1.1em no-repeat; } - /* editing dashboard toolbar */ - div.project-bar div.project-view-docs { - float: right; - padding: .7em; - } - - #project_bar div.project-view-docs > a { - display: block; - padding: 8px 15px; - border: 1px solid #bfbfbf; - - background-color: #8ECC4C; - color: #fff; - border-color: #6B9939; - border-bottom-color: #50732B; - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - box-shadow: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - - font-family: Lato, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-weight: bold; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); - text-decoration: none; - } - - #project_bar .project-title { padding: 0; } - #project_bar .project-title h1 { margin: 0 0 5px; padding: 0; } - #project_bar .project-title span.project-breadcrumb { - display: block; - font-size: .6em; - line-height: 1em; - } - - /* options */ - #project_bar .options { padding: 20px 0 0 0; } - #project_bar .options ul li { float: left; display: block; margin-right: 10px; } - #project_bar .options ul li.active a { background-color: #465158; } - #project_bar .options ul li a { display: block; padding: 8px 12px 6px; font-weight: bold; font-size: 15px; height: 20px; line-height: 20px; text-decoration: none; color: #fff; background: #8CA1AF url(../images/gradient-light.png) bottom left repeat-x; box-shadow: 0 1px 1px #465158; -moz-box-shadow: 0 1px 1px #465158; -webkit-box-shadow: 0 1px 1px #465158; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); } - #project_bar .options ul li a:hover { background-color: #697983; box-shadow: 0 1px 0px #465158; -moz-box-shadow: 0 1px 0px #465158; -webkit-box-shadow: 0 1px 0px #465158; } - - /* text editor */ - .editor { width: 500px; height: 600px; } - - /* file tree */ - li.depth-1 { padding-left: 0px; } - li.depth-2 { padding-left: 20px; } - li.depth-3 { padding-left: 40px; } - li.depth-4 { padding-left: 60px; } - li.depth-5 { padding-left: 80px; } - li.depth-6 { padding-left: 100px; } - li.depth-7 { padding-left: 120px; } - li.depth-8 { padding-left: 140px; } - li.depth-9 { padding-left: 160px; } - li.depth-10 { padding-left: 180px; } - -p.build-success { font-size: .8em; color: #108830; margin: 0 0 3px; } -p.build-failure { font-size: .8em; color: #dc1020; margin: 0 0 3px; } -p.build-missing { font-size: .8em; color: #9d9a55; margin: 0 0 3px; } - -.navigable .profile_image { position:relative; left:-8px; top:-1px; width:184px; overflow:hidden; } -.navigable .profile_image img { border-radius:5px; } - -.profile #content { padding-top:8px; } - -/* login & signup pages */ -.login-page h3, .signup-page h3 { - margin: 40px 0; -} -.login-page .socialaccount_providers .button, -.signup-page .socialaccount_providers .button { - display: inline-block; - float: none; - margin: 10px 0; -} - -/* build page */ - -#build_list select { width: 10em; } - - -/* dashboard bar */ - -#dashboard_bar { background: #E8ECEF url(../images/project-bar-bg.png) top left repeat; border-bottom: 1px solid #DAE1E5; padding: 10px 0; } -#dashboard_bar ul { display: block; float: left; margin-right: 10px; } -#dashboard_bar ul li { display: block; float: left; } -#dashboard_bar ul li a { padding: 5px 10px; border: 1px solid #BAC7CF; border-bottom-color: #8C959B; border-right: none; background: url(../images/gradient-light.png) bottom left repeat-x #fff; text-decoration: none; display: block; text-shadow: 0 1px rgba(255, 255, 255, 0.4); } -#dashboard_bar ul li.first a { border-top-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-topleft: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-top-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; } -#dashboard_bar ul li.last a { border-right: 1px solid #BAC7CF; border-bottom-right-radius: 5px; border-top-right-radius: 5px;-moz-border-radius-bottomright: 5px; -moz-border-radius-topright: 5px; -webkit-border-bottom-right-radius: 5px; -webkit-border-top-right-radius: 5px; } - - /* states */ - #dashboard_bar ul li a:hover { background-color: #D1D9DF; color: #444; } - #dashboard_bar ul li.active a { background-color: #8CA1AF; color: #fff; border-bottom-color: #465158; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); } - - -/* pagination */ - -.pagination { float: left; background: #e6e6e6; padding: 8px; border-radius: 5px; -moz-border-radius: 5px; webkit-border-radius: 5px; } -.pagination a, .pagination span { background: #fff; display: block; color: #444; text-decoration: none; float: left; padding: 8px 10px; border: 1px solid #bfbfbf; border-right: none; } -.pagination a.disabled, .pagination span.disabled, -.pagination a.disabled:hover, .pagination span.disabled:hover { color: #999; background: #fff; } -.pagination a:hover { background: url("../images/gradient-light.png") repeat-x scroll left bottom #f6f6f6; } -.pagination .next { border-right: 1px solid #bfbfbf; } -.pagination .current.page, .pagination .current.page:hover { color: #444; background: url("../images/gradient-light.png") repeat-x scroll left bottom #d9d9d9; } - - -/* call out */ - -.call-out { display: block; float: right; padding: 8px 12px 6px; font-weight: bold; font-size: 15px; height: 20px; line-height: 20px; text-decoration: none; color: #fff; background: #8CA1AF url(../images/gradient-light.png) bottom left repeat-x; border-bottom: 1px solid #465158; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); } -.call-out:hover { color: #fff; background-color: #697983; } - - -/* history page */ - -.content-panel { float: left; width: 45%; height: 400px; padding: 10px; overflow: auto; } -.content-panel .original { border-right: 1px solid #ccc; } -.content-panel h3.panel-text { border-bottom: 6px solid #ccc; height: 32px; } -.content-panel select.revision-select { display: inline; max-width: 250px; } -.content-panel input[type="submit"].revision-revert { display: inline; margin: 0 0 0 5px; padding: 0px 3px; font-size: .75em; } - - -/* notification box */ -.notification { - padding: 5px 0; - color: #a55; - max-width: max-content; -} -.notification-20, -.notification-25, -.notification-26, -.notification-101, -.notification-102 { - color: #5a5; -} - -a.notification-action { - text-decoration: none; - float: right; - padding-left: 5px; -} - -.notification-action > .icon.close:before { - font-family: FontAwesome; - content: "\f057"; -} - -/* warning banner */ - -.banner { padding: 5px; } - -/* sidebar + main content */ - -.navigable { width: 100%; } -.navigable:after { content:' '; display:block; visibility:visible; clear:both; } -.navigable > ul { width:184px; margin-right:16px; float: left; } -.navigable > ul > li { border-bottom: 1px solid #bfbfbf; position:relative; word-break:break-all; } -.navigable > ul > li > * { padding-left:8px; padding-bottom:4px; padding-top:5px; text-decoration: none; display: block; } -.navigable > ul > li:last-child { border-bottom: none; } -.navigable > ul > li.active { background:#DAE1E5; } -.navigable > ul > li.active:after { content:"•"; position:absolute; right:8px; top:6px; font-size:1.2em; color:#465158; } - -.navigable > ul > li > a:hover { background:#E8ECEF; } -.navigable > div { width:600px; float: left; padding-top:4px; } - -/* autocomplete */ - -.ui-autocomplete { background: #fff; text-align: left; border: 1px solid #bfbfbf; } -.ui-state-hover { background: #eee; } -.ui-menu-item a { display: block; padding: 3px 10px; } - - -/* footer */ - -#footer { background: url(../images/header-home-bg.svg) top left repeat #465158; border-bottom: 1px solid #333; padding: 65px 0; color: #BCC1C3; } -#footer .column-rtd, #footer .column-about, #footer .column-logo { float: left; width: 33.33%; } -#footer .column-copyright, #footer .column-setlang { float: left; width: 50%; } -#footer .footerlogo { width: 64px; height: 64px; background: url(../images/logo.png) top left no-repeat; } -#footer h4 { font-size: 18px; color: #e3e3e3; text-shadow: none; } -#footer li { margin-bottom: 5px; } -#footer a, #footer a:visited { color: #e3e3e3; text-decoration: none; } -#footer a:hover, #footer a:active { color: white; text-decoration: underline; } - -/* Sponsors */ -#footer .sponsors { - margin-top: 30px; - text-align: center; -} -#footer .sponsors .sponsor { - display: inline-block; - text-align: center; - text-decoration: none; - padding: 10px; -} -#footer .sponsors .sponsor img { - width: 90px; - height: auto; -} -#footer .sponsors .sponsor-name { - font-size: 12px; -} -#footer .sponsors .sponsor-description { - font-size: 10px; - color: #BCC1C3; -} -#footer .sponsors .sponsor-name, #footer .sponsors .sponsor-description { - text-align: center; - line-height: 1.4; -} - -/* Social icons */ -#footer .social { font-family: FontAwesome; text-align: center; } -#footer .social:after { clear: both; content: ''; display: table; } -#footer .social li { width: 50px; display: inline-block; } -#footer .social a { text-decoration: none; opacity: 0.5; } -#footer .social a:hover, #footer .social a:visited { opacity: 1; } -#footer .social .icon { display: inline-block; width: 36px; height: 36px; font-size: 24px;} -#footer .social .github:before { content: "\f09b"; } -#footer .social .twitter:before { content: "\f099"; } - -/* Change language form */ -#footer .footer-bottom { margin-top: 30px; } -#footer select { float: left; width: 175px; padding: 2px; height: 24px; font-size: 12px; margin-right: 10px; } -#footer input[type="submit"], #footer button[type="submit"] { margin-top: 0; padding: 4px; height: 24px; font-size: 12px; line-height: 16px; } - -/* Other footer forms */ -#footer #email-signup { margin-bottom: 20px; } -#footer #email-signup:after { clear: both; content:''; display: table; } -#footer #email-signup p { padding-right: 10px; font-size: 14px; color: #BCC1C3; } -#footer label { color: #BCC1C3; font-weight: normal; } -#footer input[type="text"], #footer input[type="email"] { padding: 4px; font-size: 12px; line-height: 16px; margin-bottom: 5px } - -/* Warning Icon for Build List triggered */ -.module-item.col-span a span.icon-warning:before { - font-family: FontAwesome; - font-size: .9em; - padding-right: .3em; - font-weight: normal; - content: "\f071"; -} - -/* utils */ - -.clear { clear: both; } -.hide { display: none; } -.left { float: left; } -.right { float: right; } -.right-menu { float: right; margin-right: 132px; } -.help_text { color: #999; } -.highlighted { background-color: #ee9; padding: 0 1px; margin: 0 1px; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } -.first { margin-left: 0; padding-left: 0; } -.last { margin-right: 0; padding-right: 0; } -.top { margin-top: 0; padding-top: 0; } -.bottom { margin-bottom: 0; padding-bottom: 0; } -.empty { padding: 30px; background: #E6E6E6; background: rgba(0, 0, 0, 0.1); border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; margin-bottom: 60px; } -.clearfix:after, .wrapper:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; overflow: hidden; } -.clearfix, .wrapper { display: block; } -.long-list-overflow { max-height: 400px; overflow-y: scroll} - -/* project detail */ -.project_detail .module { - float: left; - width: 500px; -} - -.project_detail .module .help_text { - font-size: 14px; -} - -.project_detail .help_text em { - color: #666; -} - -.project_detail .build_a_version { - margin-top: 40px; -} - -.project_detail .project_details { - float: right; - width: 250px; - margin-top: 34px; -} - -.project_detail .project_details h3 { - margin-bottom: 0; - font-size: 16px; -} - -div.project-version-list span.version-branch { - font-size: .9em; -} - -/* Project import */ -div.project-import-remote h1 { - margin: 0em 0em .5em 0em; -} - -div.project-import-remote li.remote-repo a.remote-repo-view { - background: none; - color: #443; - box-shadow: none; - -moz-box-shadow: none; - -ms-box-shadow: none; - -webkit-box-shadow: none; - text-shadow: none; -} - -div.project-import-remote li.remote-repo a.remote-repo-import, -div.project-import-remote li.remote-repo a.remote-repo-view, -div.project-import-remote li.remote-repo span.remote-repo-locked { - display: block; - margin: .25em 0em; - height: 1em; - padding: .5em .75em; - font-size: 1em; - font-weight: normal; -} - -div.project-import-remote li.remote-repo a.remote-repo-import span, -div.project-import-remote li.remote-repo a.remote-repo-view span, -div.project-import-remote li.remote-repo span.remote-repo-locked span, -div.project-import-remote button.remote-sync span { - display: none; -} - -div.project-import-remote li.remote-repo a.remote-repo-import:before { - font-family: FontAwesome; - font-weight: normal; - content: "\f067"; -} -div.project-import-remote li.remote-repo a.remote-repo-view:before { - font-family: FontAwesome; - font-weight: normal; - content: "\f08e"; -} -div.project-import-remote li.remote-repo span.remote-repo-locked:before { - font-family: FontAwesome; - font-weight: normal; - content: "\f023"; -} -div.project-import-remote button.remote-sync:before { - font-family: FontAwesome; - content: "\f021"; -} - -button.socialaccount-provider { - padding: 6px 10px 6px 10px; - font-size: 16px; - margin: 10px 5px 10px 0px; - line-height: 24px; -} - -button.socialaccount-provider.github:before { - font-family: FontAwesome; - content: "\f09b"; -} - -button.socialaccount-provider.gitlab:before { - font-family: FontAwesome; - content: "\f296"; -} - -button.socialaccount-provider.bitbucket:before, -button.socialaccount-provider.bitbucket_oauth2:before { - font-family: FontAwesome; - content: "\f171"; -} - -div.project-import-remote li.remote-repo span.remote-repo-extra-url:before { - padding-right: .5em; - font-family: FontAwesome; - font-size: 1.2em; - content: '\f126'; -} -div.project-import-remote li.remote-repo span.remote-repo-extra-locked:before { - padding-right: .5em; - font-family: FontAwesome; - font-size: 1.2em; - content: '\f071'; -} - -div.project-import-sidebar form.import-manual input { - margin: .5em 0em 1.5em 0em; -} - -/* Donate */ -div.donate-stats { - padding: 2em; - margin-bottom: 2em; - overflow: auto; - - border: 1px solid #999; - border-radius: 6px; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - background: #e0e0e0; -} - -div.donate-stats li { - text-align: right; -} - -div.donate-stats h2 { - text-align: center; - margin: .5em 0em 1.5em 0em; -} - -#content ul.donate-about { - margin-bottom: 1em; -} -ul.donate-about li { - margin-left: 1.5em; - list-style: initial; -} - -div.donate-stats-sm form { - text-align: center; -} - -div.donate-stats div.donate-stats-sm, -div.donate-stats div.donate-stats-lg { - float: left; -} - -div.donate-stats div.donate-stats-sm { width: 40%; } -div.donate-stats div.donate-stats-lg { width: 60%; } - -div.donate-stats div.donate-stats-lg p { - padding-right: 2em; -} - -form.donate-form { - margin: 2em 0em 1em 0em; - clear: both; -} - -form.donate-form select { - display: inline-block; - width: 200px; -} - -form.donate-form button { - display: inline-block; - margin: .3em 0em; - font-size: 1.1em; - color: #fff; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); - background-color: #8ECC4C; - border-color: #6B9939; - border-bottom-color: #50732B; -} -form.donate-form button:hover { - background-color: #9EdC5C; -} - -form#donate-payment p label { font-weight: bold; } - -div.donate-progress { - height: 24px; - margin: .3em 0em .3em 0em; - padding: 4px; - position: relative; - overflow: hidden; - - background-color: #ccc; - border: 1px solid; - border-color: #bbb; - border-bottom-color: #aaa; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} - -div.donate-progress-inner { - height: 24px; - - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - - background-color: #8ECC4C; - border: 1px solid; - border-color: #6B9939; - border-bottom-color: #50732B; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} - - -ul.donate-supporters { - overflow: auto; - clear: both; -} - -ul.donate-supporters.donate-supporters-small > li, -ul.donate-supporters.donate-supporters-large > li { - float: left; - position: relative; -} - -ul.donate-supporters.donate-supporters-small { - width: 100%; - text-align: center; -} - -ul.donate-supporters.donate-supporters-small > li { - width: 20%; - height: 64px; -} - -ul.donate-supporters.donate-supporters-large > li { - width: 20%; - height: 195px; - text-align: center; - overflow: hidden; -} - -ul.donate-supporters div.supporter-logo { - height: 128px; - overflow: hidden; - line-height: 64px; - text-align: center; -} - -ul.donate-supporters div.supporter-logo img { - display: inline; - width: 128px; - max-height: 128px; - vertical-align: bottom; -} - -ul.donate-supporters div.supporter-name { - padding: 4px; - overflow: hidden; - font-color: #999; -} - -ul.donate-supporters.donate-supporters-large div.supporter-name { - height: 48px; - font-style: italic; - font-size: .9em; -} - -/* Gold */ -div.gold-subscription p.subscription-detail, -div.gold-subscription p.subscription-projects { - margin: 0em; -} - -div.gold-subscription p.subscription-detail label { - display: inline-block; -} - -div.gold-subscription p.subscription-detail-card > span { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace; -} - -div.gold-subscription > form { - display: inline-block; -} - -div.gold-subscription > form button { - margin: 1em .3em 1.5em 0em; -} - -/* Support Page */ - -#support_page li { - margin-left: 1em; - list-style: inside; -} - -/* Form Wizards */ -div.actions.wizard-actions button.action-primary, -div.actions.wizard-actions input.action-primary { - display: inline-block; -} - -div.actions.wizard-actions button.action-secondary, -div.actions.wizard-actions input.action-secondary { - float: left; - font-size: 100%; -} - -/* Build state */ -span.build-state { - padding: .2em .4em; - margin-left: .3em; - border-radius: .3em; - border: 1px solid #e4e4e4; - color: #fff; -} - -span.build-state.build-state-passing { color: #5a5; } -span.build-state.build-state-failing { color: #a55; } - -.when-editing { opacity: 0; -webkit-transition:opacity 0.2s ease-in-out; -moz-transition:opacity 0.2s ease-in-out; -ms-transition:opacity 0.2s ease-in-out; -o-transition:opacity 0.2s ease-in-out; transition:opacity 0.2s ease-in-out; pointer-events:none; -webkit-user-select:none; } -.editing .when-editing { opacity: 1; } - -.edit { cursor: pointer; -webkit-user-select: none; overflow:hidden; position:relative; } -.edit { background:url(../images/edit.png) no-repeat; display:block; width:16px; height:16px; background-size:100% 100%; } -.edit > span {text-indent:-9999em; text-direction:ltr; display:block; } -body .edit-toggle { display: none; } - -.edit-input { display: none; } - -.edit-toggle + .editable .edit-input { display: none; } -.edit-toggle + .editable .edit-target { display: auto; } -.edit-toggle:checked + .editable .edit-input { display: inline; } -.edit-toggle:checked + .editable .edit-target { display: none; } - -.navigable ul .edit { position:absolute; top:8px; left:-16px; opacity:0.25; -webkit-transition:opacity 0.2s ease-in-out; -moz-transition:opacity 0.2s ease-in-out; -ms-transition:opacity 0.2s ease-in-out; -o-transition:opacity 0.2s ease-in-out; transition:opacity 0.2s ease-in-out; text-transform:uppercase; text-decoration: underline; } -.navigable ul li:hover .edit { opacity:1; } - -.navigable ul input[type=text] { width: 164px; } - -div.button-bar ul { - list-style: none; - text-align: right; -} - -div.button-bar ul li { - display: inline-block; -} - -div.button-bar li a.button, -div.button-bar li input[type="submit"], -div.button-bar li input[type="button"], -div.button-bar li button { - margin-top: .5em; - margin-bottom: .5em; -} - -select.dropdown { display: none; } -.dropdown > a { font-family: Lato, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #666; font-weight: bold; padding: 8px 15px; border: none; background: #e6e6e6 url(../images/gradient.png) repeat-x bottom left; margin: 30px 5px 20px 0; text-shadow: 0 1px 0 rgba(255, 255, 255, 1); border: 1px solid #bfbfbf; display: block; text-decoration: none; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.5) inset; } - - -.dropdown { position: relative; display: inline-block; height: 32px; min-width:128px; } -.dropdown > span { position:relative; display: block; } -.dropdown > span a:first-child { display: block; padding: 6px 10px 4px; padding-right:42px; margin: 7px 7px 0 0; font-weight: bold; font-size: 14px; height: 20px; line-height: 17px; text-decoration: none; color: #fff; background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); box-shadow: 0 1px 1px #465158; -moz-box-shadow: 0 1px 1px #465158; -webkit-box-shadow: 0 1px 1px #465158; } -.dropdown > span a:first-child:hover { background: #8CA1AF; } - -.dropdown > span a + a { display: block; overflow: hidden; position:absolute; padding:3px 0px; right:7px; top:0px; width:32px; border-left:1px solid #465158; border-radius:0px 2px 2px 0px; color:white; text-decoration:none; font-size:12px; text-align:center; } -.dropdown > span a + a:hover { background: #8CA1AF; } - -.dropdown > ul { display: none; margin-top:16px; position:absolute; top:100%; left:-8px; background:#465158; padding:4px; border-radius:4px; z-index:1005; min-width:128px; box-shadow: 0px 0px 8px 2px rgba(0,0,0,0.2); } -.dropdown > ul > li { background: white; padding:8px 10px; border-bottom:1px solid #EEE; } - -.dropdown > ul.js-open { display:block; } - -.dropdown > ul:before { content:' '; visibility: visible; border:8px solid transparent; border-bottom-color: #465158; position:absolute; top:-16px; left:104px; } - - -.badge { position: absolute; left: 0; top: 0; z-index: 20; } -.badge > ul:before { visibility: visible; border:8px solid transparent; border-bottom-color: #465158; position:absolute; top:-16px; } -.badge > ul { margin-top: 3px; position:absolute; top:100%; background:#465158; padding:4px; border-radius:4px; z-index:1005; min-width:500px; box-shadow: 0px 0px 8px 2px rgba(0,0,0,0.2); width: 500px; } -.badge > ul > li { background: white; padding:8px 10px; border-bottom:1px solid #EEE; } -.badge pre { font-size: 12px; } -.badge-info:after { font-family: "FontAwesome"; content: "\f05a"; font-size: 23px; vertical-align: text-bottom; } - -/* Modals */ -.modal { - position: fixed; - display: none; - top: 15%; - bottom: 15%; - left: 20%; - right: 20%; - padding: 1.5em; - - border: 1px solid #999; - background: white; - border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - box-shadow: 0 0 0 3px rgba(0,0,0,.1); - -moz-box-shadow: 0 0 0 3px rgba(0,0,0,.1); - -webkit-box-shadow: 0 0 0 3px rgba(0,0,0,.1); -} - -.modal > iframe { - width: 100%; - height: 100%; -} - - /* CHART LISTS */ - .chartlist { - float: left; - border-top: 1px solid #EEE; - width: 15em; - } - .chartlist li { - position: relative; - display: block; - border-bottom: 1px solid #EEE; - _zoom: 1; - } - .chartlist li a { - display: block; - padding: 0.4em 4.5em 0.4em 0.5em; - position: relative; - z-index: 2; - } - .chartlist .count { - display: block; - position: absolute; - top: 0; - right: 0; - margin: 0 0.3em; - text-align: right; - color: #999; - font-weight: bold; - font-size: 0.875em; - line-height: 2em; - z-index: 5; - } - .chartlist .index { - display: block; - position: absolute; - top: 0; - left: 0; - height: 100%; - background: #B8E4F5; - text-indent: -9999px; - overflow: hidden; - line-height: 2em; - z-index: 1; - } - .chartlist li:hover { - background: #EFEFEF; - } - - -/* Table lists */ -div.module div.module-title { - height: 2.625em; - overflow: hidden; -} - -div.module div.module-list ul li.module-item div.module-title .module-name { - line-height: 1.5em; -} -div.module div.module-list ul li.module-item div.module-title a.module-name { - text-decoration: none; -} - -div.module div.module-list ul li.module-item div.module-title .module-info { - display: block; - font-size: .75em; - line-height: 1.5em; - color: #999; -} -div.module div.module-list ul li.module-item div.module-title a.module-info { - text-decoration: none; -} - -div.module div.module-title ul.module-item-menu { - top: 10px; - right: 10px; -} - -div.module div.module-list ul.module-item-menu a.module-action { - display: block; - height: 1em; - padding: .5em .75em; - font-size: 1em; - font-weight: normal; -} - - -/* Domain Pages */ - -.domain-machine { color: #999; } -.domain-canonical { font-weight: bold; } - -/* Integrations */ -div.module-list-wrapper.httpexchanges li span.status { - padding: .2em .4em; - margin-right: .3em; - border-radius: .3em; - color: #fff; -} -div.module-list-wrapper.httpexchanges li span.status.status-pass { - background: #5a5; -} -div.module-list-wrapper.httpexchanges li span.status.status-fail { - background: #a55; -} - -div.integration-details { - margin: 1em; -} - -div.integration-details dl dt, -div.httpexchange dl dt { - display: inline-block; - font-weight: bold; -} -div.httpexchange dl dt { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace; - font-size: .9em; -} - -div.integration-details dl dd, -div.httpexchange dl dd { - display: inline; - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", Courier, monospace; -} -div.httpexchange dl dd { - font-size: .9em; -} - -div.integration-details dl dd:after, -div.httpexchange dl dd:after { - display: block; - content: ''; -} - -div.httpexchange div.highlight pre, -div.highlight > pre { - padding: 1em; - background: #f4f4f4; - border: 1px solid #ccc; - font-size: .9em; -} - - -/* Subprojects */ -div.module.project-subprojects li.subproject a.subproject-url:before { - padding-right: .5em; - font-family: FontAwesome; - font-size: 1.2em; - content: "\f0c1"; -} - -div.module.project-subprojects li.subproject a.subproject-edit:before { - font-family: FontAwesome; - font-weight: normal; - content: "\f044"; -} - -#content ul.normal_list {list-style: disc; margin-left: 20px;} -#content code {background: #eee; border: 1px solid #ccc; padding: 3px; display: inline-block;} - -/* Pygments */ -div.highlight pre .hll { background-color: #ffffcc } -div.highlight pre .c { color: #60a0b0; font-style: italic } /* Comment */ -div.highlight pre .err { border: 1px solid #FF0000 } /* Error */ -div.highlight pre .k { color: #007020; font-weight: bold } /* Keyword */ -div.highlight pre .o { color: #666666 } /* Operator */ -div.highlight pre .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ -div.highlight pre .cp { color: #007020 } /* Comment.Preproc */ -div.highlight pre .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ -div.highlight pre .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ -div.highlight pre .gd { color: #A00000 } /* Generic.Deleted */ -div.highlight pre .ge { font-style: italic } /* Generic.Emph */ -div.highlight pre .gr { color: #FF0000 } /* Generic.Error */ -div.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -div.highlight pre .gi { color: #00A000 } /* Generic.Inserted */ -div.highlight pre .go { color: #888888 } /* Generic.Output */ -div.highlight pre .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -div.highlight pre .gs { font-weight: bold } /* Generic.Strong */ -div.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -div.highlight pre .gt { color: #0044DD } /* Generic.Traceback */ -div.highlight pre .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -div.highlight pre .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -div.highlight pre .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -div.highlight pre .kp { color: #007020 } /* Keyword.Pseudo */ -div.highlight pre .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -div.highlight pre .kt { color: #902000 } /* Keyword.Type */ -div.highlight pre .m { color: #40a070 } /* Literal.Number */ -div.highlight pre .s { color: #4070a0 } /* Literal.String */ -div.highlight pre .na { color: #4070a0 } /* Name.Attribute */ -div.highlight pre .nb { color: #007020 } /* Name.Builtin */ -div.highlight pre .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -div.highlight pre .no { color: #60add5 } /* Name.Constant */ -div.highlight pre .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -div.highlight pre .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -div.highlight pre .ne { color: #007020 } /* Name.Exception */ -div.highlight pre .nf { color: #06287e } /* Name.Function */ -div.highlight pre .nl { color: #002070; font-weight: bold } /* Name.Label */ -div.highlight pre .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -div.highlight pre .nt { color: #062873; font-weight: bold } /* Name.Tag */ -div.highlight pre .nv { color: #bb60d5 } /* Name.Variable */ -div.highlight pre .ow { color: #007020; font-weight: bold } /* Operator.Word */ -div.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */ -div.highlight pre .mb { color: #40a070 } /* Literal.Number.Bin */ -div.highlight pre .mf { color: #40a070 } /* Literal.Number.Float */ -div.highlight pre .mh { color: #40a070 } /* Literal.Number.Hex */ -div.highlight pre .mi { color: #40a070 } /* Literal.Number.Integer */ -div.highlight pre .mo { color: #40a070 } /* Literal.Number.Oct */ -div.highlight pre .sb { color: #4070a0 } /* Literal.String.Backtick */ -div.highlight pre .sc { color: #4070a0 } /* Literal.String.Char */ -div.highlight pre .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -div.highlight pre .s2 { color: #4070a0 } /* Literal.String.Double */ -div.highlight pre .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -div.highlight pre .sh { color: #4070a0 } /* Literal.String.Heredoc */ -div.highlight pre .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -div.highlight pre .sx { color: #c65d09 } /* Literal.String.Other */ -div.highlight pre .sr { color: #235388 } /* Literal.String.Regex */ -div.highlight pre .s1 { color: #4070a0 } /* Literal.String.Single */ -div.highlight pre .ss { color: #517918 } /* Literal.String.Symbol */ -div.highlight pre .bp { color: #007020 } /* Name.Builtin.Pseudo */ -div.highlight pre .vc { color: #bb60d5 } /* Name.Variable.Class */ -div.highlight pre .vg { color: #bb60d5 } /* Name.Variable.Global */ -div.highlight pre .vi { color: #bb60d5 } /* Name.Variable.Instance */ -div.highlight pre .il { color: #40a070 } /* Literal.Number.Integer.Long */ diff --git a/media/css/header.css b/media/css/header.css deleted file mode 100644 index 9b68d12628b..00000000000 --- a/media/css/header.css +++ /dev/null @@ -1,42 +0,0 @@ - -#rtfd-header *:focus { outline: none; } - -/* header */ - -#rtfd-header { font: 16px/20px "ff-meta-web-pro-1", "ff-meta-web-pro-2", Arial, "Helvetica Neue", sans-serif; height: 50px; min-width: 780px; background: url(../images/header-bg.png) bottom left repeat-x #465158; overflow: hidden; text-align: left; border-bottom: 1px solid #000; } -#rtfd-header ul { margin: 0; padding: 0; list-style: none; } -#rtfd-header ul li { margin: 0; padding: 0; list-style: none; } - - /* header title */ - .rtfd-header-title { position: relative; margin: 0; padding: 0; height: 50px; width: 180px; } - .rtfd-header-title h1 { background: url(../images/logo.png) top left no-repeat; position: absolute; top: 0; left: -30px; margin: 0; padding: 0; font-size: 20px; line-height: 20px; color: #fff; text-indent: -9999em; } - .rtfd-header-title h1 a { display: block; color: #fff; text-decoration: none; height: 50px; width: 200px; } - - /* header search */ - .rtfd-header-search { position: absolute; top: 12px; left: 190px; width: 300px; } - .rtfd-header-search input { padding: 0 5px; margin: 0; height: 25px; font-size: 14px; float: left; -moz-border-radius: 0; -webkit-border-radius: 0; border: none; } - .rtfd-header-search input[type="text"] { -moz-border-radius-topleft: 3px; -moz-border-radius-bottomleft: 3px; -webkit-border-top-left-radius: 3px; -webkit-border-bottom-left-radius: 3px; width: 225px; } - .rtfd-header-search input[type="submit"] { font-family: "ff-meta-web-pro-1", "ff-meta-web-pro-2", Arial, "Helvetica Neue", sans-serif; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 3px; padding: 0 12px; background: #e6e6e6 url(../images/gradient.png) repeat-x bottom left; font-weight: bold; color: #666; } - .rtfd-header-search input[type="submit"]:hover { text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); background-color: #8ECC4C; color: #fff; } - - /* bookmarking */ - .rtfd-header-bookmark { position: absolute; top: 10px; left: 500px; } - .rtfd-header-bookmark-icon { display: block; text-indent: -99999em; height: 25px; width: 25px; background: url(../images/bookmark-icon-default.png) 50% 50% no-repeat #697983; -moz-border-radius: 3px; -webkit-border-radius: 3px; } - .rtfd-header-bookmark-icon.active { background-image: url(../images/bookmark-icon-active.png); } - .rtfd-header-bookmark-icon:hover { background-image: url(../images/bookmark-icon-hover.png); } - - /* header nav */ - .rtfd-header-nav { position: absolute; top: 0; right: 10px; } - .rtfd-header-nav ul li { float: left; } - .rtfd-header-nav ul li a { font-size: 14px; font-weight: bold; display: block; text-decoration: none; padding: 5px 10px; margin: 10px 0 0 10px; color: #fff; text-shadow: 0 1px 0px rgba(0, 0, 0, 0.5); background: #7C8F99 url(../images/gradient-light.png) bottom left repeat-x; border-bottom: 1px solid #465158; -moz-border-radius: 3px; -webkit-border-radius: 3px;} - .rtfd-header-nav ul li a:hover { background-color: #8CA1AF; } - .rtfd-header-nav ul li.active a, .header-nav ul li.active a:hover { background-color: #BAC7CF; } - .rtfd-header-nav .overview-link a { padding: 4px 10px; margin: 10px 15px; line-height: 20px; height: 22px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } - #rtfd-header + div { position:relative; } - - -/* autocomplete */ - -.ui-autocomplete { background: #fff; text-align: left; border: 1px solid #bfbfbf; } -.ui-state-hover { background: #eee; } -.ui-menu-item a { display: block; padding: 3px 10px; } diff --git a/media/css/sphinx_rtd_theme.css b/media/css/sphinx_rtd_theme.css deleted file mode 120000 index d8b2a0137ff..00000000000 --- a/media/css/sphinx_rtd_theme.css +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/css/theme.css \ No newline at end of file diff --git a/media/font/fontawesome_webfont.eot b/media/font/fontawesome_webfont.eot deleted file mode 120000 index 0692b78ab30..00000000000 --- a/media/font/fontawesome_webfont.eot +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/font/fontawesome-webfont.eot \ No newline at end of file diff --git a/media/font/fontawesome_webfont.svg b/media/font/fontawesome_webfont.svg deleted file mode 120000 index 4f3efa81d26..00000000000 --- a/media/font/fontawesome_webfont.svg +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/font/fontawesome-webfont.svg \ No newline at end of file diff --git a/media/font/fontawesome_webfont.ttf b/media/font/fontawesome_webfont.ttf deleted file mode 120000 index 79ce9444c0c..00000000000 --- a/media/font/fontawesome_webfont.ttf +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/font/fontawesome-webfont.ttf \ No newline at end of file diff --git a/media/font/fontawesome_webfont.woff b/media/font/fontawesome_webfont.woff deleted file mode 120000 index 84464078e31..00000000000 --- a/media/font/fontawesome_webfont.woff +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/font/fontawesome-webfont.woff \ No newline at end of file diff --git a/media/font/fontawesome_webfont.woff2 b/media/font/fontawesome_webfont.woff2 deleted file mode 120000 index d8b851262b1..00000000000 --- a/media/font/fontawesome_webfont.woff2 +++ /dev/null @@ -1 +0,0 @@ -../../readthedocs/core/static/core/font/fontawesome-webfont.woff2 \ No newline at end of file diff --git a/media/fonts b/media/fonts deleted file mode 120000 index fb346f06d29..00000000000 --- a/media/fonts +++ /dev/null @@ -1 +0,0 @@ -../readthedocs/core/static/core/font \ No newline at end of file diff --git a/media/images/badge-revsys-sm.png b/media/images/badge-revsys-sm.png deleted file mode 100644 index 6177feae14242209c4ce4f1eb33f436b4b7cd0cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3700 zcmV-)4vX=LP)|AMV8^;xX6e%9MNFA0Xl9DCMk|kTQV?(|g+evCfabYA)dcY{q!)eo^LGvd? z^CLfuwkXg5{pAKI93Uxj6p4{EMVvN{ox`?LtBGyNhfLYJCCUS0Dv0@2ZuVmsUv?%$o4Sr3l0v|s7v8} zz`+qebi50e7wncS7@U~p9dQ@nhb36jEYa`W<1909(%c*1#NpuJ#NpuJ#NpuJ$pMbr zhcvwoYB!X|Ea&mgL-!3g^o&eK?BBW84tbfTnDtu+#-Y-hBildgTY%3TPWnC5sE0k( zs}$?E4vawtDN~Z44S88mzPh^84Yz(n8s} zu#EG@gkZ$l6sRsdu3+M5|=+rE94vxXx!c9(``w7|U zMtFI@`l-0L&osl!|2`Z1|Cf($gso+TG3)*9^NX;5dnF-RTEu?WxF<-QDqF7NwP2g> zSsy&Ncblr~Jk!z(Uo>^Xj*22E$j*#7HZUL8iz7|x~m$Vuiczb-6`U=q_E{=s;Z0Lre=*@bz57?Z1l5-cu6V3 z$xuo>3JX|Kb7lF9{F^WtbG`kqRuCaornwHclLlm{23nSaA{ymDXHU9w$3p9!rf*%|L5En;hs( zFjkqHzsZ!SQtuON%QYH29*$|R59*qGq7w18#5gr1P%F!~fQgI-0~6CQK!Uhtg`2(~ zVvB0x-mxFL0)Z;4Oc{9~jXi^Rha3mrhNrib!%I)@kR7Wc#(uK7mst;k=f8Y>P8Qr- z(hSVEO8O#mWcD+&E=FhBFX{{TZyauOo7GUXyO=Cp|)DcW*z+3 ze`Uw9e-7+=KzQ(Xi8z?4LW5_<5UZ6v4ra=ZHg?GN4^OgJE?`pNpl77o(>ym*(g0>FalqI3Qk(c%m=)sZx+^=#`aVCxLnA&=^xfVY*oOoD<@f zFj|joN-+_lFc1%2CIgw1k#tBpaSAg+F1o(M1*W13Xc?ad$FVQLkY|mnQIvV> zZ7b*}N`geBo+y*Vha#0qiMA15&r4kXRq_zL^Ebbd#E)jo@y0l!_fkqYxW>0(Mvg>f=cpkbrYooVlbGepOVWe)7zKn+vGu8Jafv;GP#i*@jS z@4^Cou%ed>KL_qZ*%%Ha#(U>lRJDQLbJtos{f?yCwYG@X#cP(<+fB+HK6NQb9xRLJ z!ZPF2>K9z@-&Q5-50r6MOD1hwBtDj@DJ`Ja_0h$Sq$B{Iswr2@aw)-(s+A=V&UXz` z>31vM4Lt}NZ-fyNBJJH&0hNRV$1inI&%#VD5PRFPwn&zFQzFgC)GRZO!F|s?z75Wj z=Mammw@e&I?-1->?}1!%CN(_V(0I`R#Q4Ub@dx7`qZXj!x(nr3FHOPw&|@leC31Tbg7nA;8ZeBm5O4m7CR>XM*jJnLwMiefAH{MulW zFjgBVp~UO-5-s0W&us0|_biN2lvXAbt!jV_6fpc87D|w#YLi&9DA`0-k^C^Mt&I zlDx|z#*AJ{DGfb;bCG`ks_lAIDJ2r!GLW91JBwFm5_RRK{Es zsf{E=FZSbyAB?LX)X(Fjq=4U2NVK5?4!-&h{NvckAc4>bWPvj&Ysk05S}~CL+nDQfy+z8#M-E#XE;T zJ*O!Df-yXaouo1_Im8K&N1weCO!hT<0zzP&UXw{#~QhGP6(`U8>B(ND(X}!KY1~ zaOmBmR8palp}a!bh{hLh8{&0_*TeHlx9|*^HZ3E5YYViKqBlf%@um(z=2jD_Q<@|6 zic9X~iXn3G6g-v033#)ycyLsdE#i$02q}fqX9I+17}2CrNfj>TjO1<-Z6my1&-e^IH*Ob*HpgvXd@7WO zgQ85k8t_EP08Vg*FX)se4wT8^p)pPP7L5o|GjR%%P+X|#RG2)b&)SwJBLNHO$zpjG zOaw$r28c_1lA0XYRc@uR1CH#db8&R1DO+M}$IlbbqlujO`t9DWG)pBK*}2vpNHL~S zFSYNX8rZ+J3K~hED8>y9ZM~{^jO}7JYGS6GCJV%673g_fWA2382(R~xy$=PA7gN)X zBuM?t(M{u%M{73H_A!{ZTGV@<7f8^Hi4Bp=bxm!w`%$iaj}l6dX-FuPn3_AVZe6d_ zCR9&pGE*rzfY~?^KipAG;)=+W_0_%`Fi32QC6zG!jISYxf%~XuhS|m-gEW|_E6k33 zMjd3JI&$U;Jhrh+mfaI$%xFZ8n>eQ$nqZ{FO0#5`Y1Twc#o1rRv-Ji7xWP_6?OZyMzXRnw-05a)BCeEO@zk(u zi{t07K#HY62<{VX1M7L`=4d7jy(^x(sl5v>ccFLC5sBDE%i(dWIUU-2vAmCF8j-*g zjL{H@fPG*x8faz@zkgCsM%gL67F|%T;V~-HdR&SUHQ9)k1&d0Y-Vw$4DHd_;d0F%w zoXFT@g2p_h`4;B7Gc@p68L!2##8fD5$&h&vd`9&xy>!rjit#FfxKbf$#Bol|L+3dM z_~(68@8iQoBh;mvnR@({4~_@R=`wRbmm$a{T~-d2Ky{a|f&bGyM zjah2kvFazyh@OBmpa0*nJOR{Zi>H!}C0xHi@VC`zuMy?QK|SyMwC zsmEb?0bDtNfw|KAGwvC0((X%KZLRe3o7(kjNhJz0zTlwqR+?pU?dQ7(6@ObmS}rn(pOyvXm~!4yW@o-~fbZ(K6O>hGkDDaFSAcJN zzVO7iWO0^=zA<&gN$QJiKG4!MF(-{${hI>seDO7%RHmf4LrH;TKy6A|TJAFA^$OAB zuws;detk9JYrNtdVotIukp}0M!dD*LG2);hBx~aCet|x(kWMNuC(^_dyGSQXaT$!7 zRRf4KEzX#8GqI8lu_jqV5>3eL-PIU}oANKNA{Nf5va1Spev%oQ^w+ZH|Iyg8IiAs1EaBy(qaBy(qaBy(q za3m=}_47{P#Nmh+`4$tU569gF&uuO<3{6hMvRRk&4JS?=?*OR diff --git a/media/images/badge-revsys.png b/media/images/badge-revsys.png deleted file mode 100644 index defed73739b779f166be4198f1dacf64b0549989..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6421 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 diff --git a/media/images/badge-rtd-sm.png b/media/images/badge-rtd-sm.png deleted file mode 100644 index 4712d643ea21ca1316a33da25cd09db2a86861a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1117 zcmeAS@N?(olHy`uVBq!ia0vp^nn0|LCl#oN-|$IjKq(!cV_3D<$Vj+K7afE?&GHij-FV&V)e{<3o08rvWhD0e1g&|Tdv%^y>0ito+-1f zojoT_pIJX?UUE@IOm<;0X3bv+H1gf&Z$_35&C?eZH1}=avwzOQ#ch34 zd#BDZb@o`gYVE)Oe>8OTB4gu!{rRb`ty|XG9iLZHRM}|c;ClA_=^gtH)HHWjHFg%3 zR@gbYK6~+W_JT!ylcpX%ak{m4ino8@m+zmq?A%k`)OG6o#paIg4O_PxTRG?%nK-z( z#iV5SPMo4+Y^iT-YUSvWQ&4PTVWp*K5EvF=V&k-Alzws>gs3LbtaY6r{om7`G!O$q&xbDSUR{{J9(J9dO1ya_XZf;oCO|{#S9GG!XV7Z zFl&wkNU*HHF&#)R0AdY>z{yO&IAZ+i>Eak-aeD2Q?D)$DBJ2-RGH*qNJ&O=uW^~qp z!y=N^xKnA-Bhin175nc8Y=8g%+GVp?>uY6yu6$0r`|Hb}%PE{rH(L$$1d{@?qPC^V zHaq~D9AABPWfX69>9HFnkB@jBw`6@;=H>I^{LH9;8`2@4zsyuT869)_=FZKZ6~tQv z)*j8g#*!1MxwB;5+NVFCzRH<$@8e(YMLyv+mpz}na=m%hbG^B3#mdG#Thv15)K$Lo znz2u>MgHjFCC5IzYV&z=W|Lp~^_u$NDeIR%<(+xr@XG*$zf$+^NKKu<_i=5sqfKx1 zr`w-4lpHQ8JO2HBmuP>G@~+DFb!|T4I$0Ix?@Tk&mVI>nDD(b}j{}w8oRs&PIsM!X z<^5YZY@L7pIJr$`x}Va@d1<}H4<-M6e%5^beS^xxkn`>;pI%vC&^eJ`Vk6|aZ}qor zZmGMrxcrX&x+r4W78m`gw#zTu7arO8XT_D} zi#@+Y)=EyjSheZbgqXj#WZx`a`D*+77wj=|f7Y;w%88u3m$UurJsX1y>mTfSw0~jM z-nb1rH_o<_uy~&FL)-uFlxhEi{yw=>`ak^geo2S@_w64E8*tY%OuZ2EM|a|UQ($UP zEpd$~Nl7e8wMs5Z1yT$~28Kqu29~-8<{^fLR>o#lhGx13CRPRpq1)%|LD7(#pOTqY ZiA94kL_^sn?&UxY44$rjF6*2UngGIT>hk~q diff --git a/media/images/badge-rtd.png b/media/images/badge-rtd.png deleted file mode 100644 index caa126ffaaa559c9ff5869a0e8fedc185919e4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7029 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 diff --git a/media/images/body-bg.svg b/media/images/body-bg.svg deleted file mode 100644 index 404b5bb8f87..00000000000 --- a/media/images/body-bg.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/media/images/bookmark-delete.png b/media/images/bookmark-delete.png deleted file mode 100644 index c01c9a437d2a697d676673ed273435ecce8cf22f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 957 zcmV;u148_XP)Cm zK~y-)ZI8`MBX=CepZU$qX5vd~Oj^5WG)+PpXwnTeg$hQ9hS8YFCYqHuoNs(aiJo(u0s+NA!td>%gp@VdT3KT><6CHm(RoZQScwj%gaCe z{r=B3H#fgA3_}fv!(0df%d)^ZN2O9B07N#M-RGR6SS&6YhCws{SX^BEbzx!QYsMH~ zUtj-wV`Ibf@bI8{y}SE~oA9?CE1v)Q+V z5U8pO08kV~5<;X9f=DSLgn*(b*xA{6d2({{#^>`10swn^drmMId{-2q9!9lX(}3M1n#H^=UaFgqx<>IXF1@C>D#UE|-g+ zpPz#OK)2f^LI^oGH}^gi3XR*gt@da1<2a5Q2n1a7^Yf3FmzTWT?UH0N2_+Z|64NwA zI-R}=27}Kz=dS+Sj4{p_Qw_uTe~zlEcC}h{j*gBzi9|wI0AO}@_Wi`f#02MD@5`KX zTwPs#M=AX?8jZd+4CCn>=kD&#DVNK`>h$#VPg7G+7{hB=Xv} z?Y|n0Msa9p=#`=<{c?41a8P=^-WN(d9{+S~Y^>pSyM>gJaL!Sy)n0}|q3x}$Ed~JT zbXspVn_o;$PM+zy4gjE(qFSvc$-uzC{q61TSf|q=j^m(SudmL`%)IH#0C0SKOg$dY zMZI26^m;v5mW6t~{-w|7yHEhA!^6X4x~_XhMn*oqzrX*z)oR)J0HdR$BW|~Qf-$DG f+wHqfr_=lgo)W|mRyck|00000NkvXXu0mjf;7q-n diff --git a/media/images/bookmark-icon-active.png b/media/images/bookmark-icon-active.png deleted file mode 100644 index fca7bbbb375b8f54d2e477930455486e3dfcbf7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)P~-4y$j=6SC%Zs z8i93#p2Ye}WI>YVc$LMH09S_P=FkjbyA=9B`|2u%<+Xb;y(> z!cEd6h-yuOmDo)Xp&qR>u9`2pQ*oskyj$zF`i%P?)|^?>dJieGTRyo*YpcfV1nFj- zoON}G^0kAtsxGa07R@JBY4r@I2!blB^U0JgjR?JuTo6=2a8uT4v)|S-m+5K5>ZlHx zT{~V1avC(6o|>kNyY3KI#Obqa=}cLpZ+=D=VBX8!&HY9f5BNN zN=fG5_fOwHxcs@7Pk(-MeDLJg!{^^_-TBMo1u;|Ur*wPDVVR z_~HXCH$%|w3~Lb0xFpsxzQiuAVU=d+M6HT3 x1`1l|Au002ovPDHLkV1f_QH);R? diff --git a/media/images/bookmark-icon-default.png b/media/images/bookmark-icon-default.png deleted file mode 100644 index 2a59ce5dfd679983e9b7994c9498ef870a6a67b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 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 diff --git a/media/images/gradient-light.png b/media/images/gradient-light.png deleted file mode 100644 index 27ed5588062f27f4bdc03a8a1b36c9cf0c11fd3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!3HGXPAxeOq&N#aB8wRqxP?KOkzv*x380{4 ziEBhjaDG}zd16s2gJVj5QmTSyZen_BP-XH_c4XhWnaQ_}*Z*Gp!EWAHkpza0XyyYK4qgH}k%7U} L)z4*}Q$iB}UTaU3 diff --git a/media/images/gradient.png b/media/images/gradient.png deleted file mode 100644 index 8e9d931f451453dde4277a533222536f53bfe5bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{M!3HGXPAxeOq&N#aB8wRqxP?KOkzv*x380{4 ziEBhjaDG}zd16s2gJVj5QmTSyZen_BP-7f~uDh-pKa0`&d;dyvn>8jk`6+ zjve!?|L6byXKC&9UEbDOS>@DH<6pb9URSC0oTt^VbM}eWR;la>`xHd*XxT z?81k8sjZxI)$+ub%RB41;?wbWe0BG@Sm|Z1-r6d0y;F9-TAO>thvPdZE;_kMZKIU$ zxX?NAwQ)n{KaLe&KJgIosnX8mnsKSUepWtRYd>?x zOUBjXBP(8dpZL$cYHxGJReOs^s&C_!>KvoZ_nf|VJaIhwiFZFe9w=_VcC19a;~g&& z%U9#c;}Q2cwYIZ%T)Nk`W_&FY!6)O#2A zbk~aqiywVgU#vnrH#eXAD^@NZDjuLVEiP;_7ADL#?2ymJKAy3!&E~UDt&AG$cE$UJ z4aQYY{CmbDvKFzP1>42|dRf?RdDr6Mv5W{n4_^=l9B9aoFB4&&`% zk$2r;b72_aR8PC>v)F{VLH(*T7V*#j_>cJE$-=}n-K+MF-It3RugA5*5DQiq&k#S# z0{6wYdhat_Aub)SAG;Ng%(BK);LdHb*>Qn>*bOW+b_+YMJb8I4mQ~y}d>WUJO^SuV zkZS~mc+~OoU^CyS;#%?JeR4&XrmdID#yt;TjEjW<#BTSr^7t`5bo4N;c)ln!mu*mvxzKU1)y7VEvaQ7jozCm)pS#+_E! z1Fu~*y?o{P)|!3|`w8!2t>Qj2OmF$2yuj!2;zu_-eb$Vf+&*4Be8W62uK3CoaU=p= z{B@7E{e1ZPj192m4is#G~9;PCQXK`;M0kU*h5M&L^S=ew;BhmOtD$ zZn*BlLb9|q*6ggWu#AYR+Ze$X#C{v7A~J`+#9uCF?EMqw8|i}|if9xci}+UFuN8M0 zSXw-1tVP%;!GK&CyL+C2i|PFBjfX0cDskPoc7#e}bj4eFYmC&GaB3u#Ft#0D)b~r; zi@X%ee-q(iYhyFw2QI9;)r%L2uaibKh+%Mv_np{uSe9!XD^{B+IwE95sW9qTaw25J zo%uUqV#T7GiO3Ui=N6_)!1x;Rr28U=g~hMX6pTD91@mY9N13KG*L~n?TYM0a<~lnTHXis2 zYasZ?L&O3kI&o3^VB%*SoZDR!% z>p&1Uo{SZC8taO=g#m2MH{3lkY^3Q3F5!NQKp)7Y5jEpFo5U5Dj5Hb_egO(@?Hm|T z-1OaVI2*1Q-hmwipo%;c_RW2c(1~CeOFCK8xO||Iml$bqe8}P}GJC^40|G_fe(<3P zF2I>sxgDVuLlb1h>gX8dj{CRo9$5plMY<}yzJUd>wYSb02%_KyK!w0FvlBQAUp!ds z%bxGcC+DiCjd|pU%EGfA( zUIhm%^O_xS)&KIB{}sTDt2EI9*(3fG1|0@d-H`ZJAfj;WunM9AF+aj%T=~H`z(<|H zF?d(Lw}rOYbl^e$#r{T^jLnM|#F$9xtU1t1D8=go*5aiiNMG^uMjpXIAuT3cXd>76 z;00K^#HT*iB??`w&#@vrgr{W;AMDRDZ4{6)sU}Phr(umN&p~*J#fXH1VQC!UMR6}6 zX9LiIkhYM<-HRWH6{!iJ;>!3kfhim%TrROGD-o+gG>L~;1b3byEao!&?z}Mzj2Q)z z<3~CdBr6fA5YodjqE#gU#s?4*CvKmZ&bHge%6oLzV-^};vs{Q`57 zyy64lWwAz`yv7c_&45T~Dg7GXjU?Gu$vBGa47U(t-WmxYBe|#yg1!liH8~Oht((PyBiGe}E4%mNqZb0$F zdu~#==x;QFIiHB6FtNt7p8I`id<3hM_KSNN027*}{oH2EgYCi3T~)+YaxH z#fUU~_DfEPCEWebfB)Yk6M>Ae^PT19lb9X&t{4ARLEeF9GzilaxdOu^aRl_77_G76 zXfN@GJV+xn-+=K6%8XsPBi3M;EY*88;oX=P8=9So4k+)AQ)!aQ!X_p^!c&T5VrlL^ z-!_QPn;=X;Ycs1;VtPPJW97@nka%!sP&g?)HkO)?3JIKujgu0wsEwZ$z&<#7m7XcC z#e=iXrul8Wif6sR=qutj=FN>*CPF2p2#&SI%lxkaX+ip({Ugl8Kd~WZ^oS|7T1|8B zA`S}N*eTK?m@JClnsH-Nsu8*(eFFUc@{fOVtr0;Eqirm_mAzh3N``;);+n&t3NCJ@ z;&|Imh$D!XWl8|!k>3xfwu2gc2F#t8>_X&*EN@`2!Mb%9zj+oRykr7oz zRSud7LM5_&|iiP*lC@}z+4G#-w1~-sks?`iwbb3jd<-A4FXGm zgZ0ia;)9^3BHSYsME1O~V>yCw0|<=))CgDJR`%Fb2{1_(N>Ce?FpX&u+gKffWjHM% z%o-2t*nsi5GFQd!N9?|-Q^=K+{J36x_1z?&s6Znv#cIawXRP7F(ozzw5B`XqeJ9op9l_W1ZsA6JYrJIqc+KmGMX2C50F0$DTEtI? zN;@tdrox*DR%06|Ok{^j=B*Ow`@C1Z0FC&bq5z9lB++HFe#j0i3#9?BE#zMTwLw6Xq8__`9`hM3uLF$%+8#sEFcrHwA|8 zGpur~hgZF~v5OidX_rWMUn0l2pk{PrU9iMRTk!}He=pH=zXH`p3H7qcd_3+oq&UL= zV)^w{sT+K(bJy_O@X$a5@eSfCPFH5q6eZ$B7gn764J*KJEMkGc)PC`3fsZ21LN-P0 zK33t7Ht}=#c3|H|@XVkNJ|FCo``AF?al1f9Z+H6vvd!2MDf*4wDD6iWEm?!z2NcQA z;MkD@p>4!e;Xp&U4ddAGJSdW~zuCz&9SNKh+2oIZ`zH%GTE2`MGp0SvEb+*_+|Yfg9U0Q&ccR8iPQmyUFb($tslo@M;N%QrmE?It<1tY>poo@ zKLof1CLh$d6tyRbMivxP>=7a&I`)>_E+)^SL)aRzkCb1P$aHaxsy51W zL?P@KBLPFLwHIn;LOF#kjZF*z?!Cuqo5W{iTtH^vdW1_5^_e_gRNoN?!vfm#8W4!k zVc(P-fGdb=K=L;U%zZue{(pG;0W?tj1FpW|2 zPmv%+b)zs3<9H}ei(3+pFu+k!muws&-hL*D9;FHUy(Fn z$)j@YS@_Rk1u2PFeM?s2HDbI|5+`c%^n#|0TB_U+K_?a( zJWcuE|N6Io>PV3d-@s?Fj6fFb8GLg=okjSd#9QK93!Yo12LA*rb^0!PWus?RR__$t4WpT`tNq=n|f4lILRKbdAVFZDGYQ z+Q7Q{p?QrQu|j;Et;QtijOaL0swLrJb4Qb3=S36$#LxB{kVMdclG!GnB_fjlk+j`* zVhDy`6t~db6#MggPh;nP&jtAv3;jm!jGNI4A#s;vxeqLFcw$|HVisRHq~lNj<^2N? z>Lrj(R(P;oOMD*SR8&2wGpcwzkoblxjuLsXb%uTIM>W3kxeAX z`qO_HI$81q$r|CpM27th`Df|jjptGvNaYl{A1JC=NRZnW_M7dv3D+p%*)W-~!MDOw zk@ldhn|Wrs7<kH`Farcfaqvn6Km0{ob*4mswR{?}Nn68*&NO5&5B zh9}mxebF zAEirmm4Ad6Z@Lq}|28j6Ca}s?e)Nbxd;f?O3g8i=X<*?#VLCTF;;}_QRHeIY(}}*} znP!yOOz5+yCnh<(%PWJn`(+zqTT+Q3U}2z^@ar4P#i(gTX#lY;w75Wl0@2Zi93y>~ zYULE^6u3__KmbKqwjo&J2`1DK9mNSn^U8kl_iFc)>WCF07R(E_AZp;UpE9@DDMIOy zu(iYtle{+sslhcqHzFX`F$pdEWJMJZbAbjgtiX0R`})9BiHQ+gp_j%N`~<5m zI}LP-MTrb^0Z+CpBmPoI3y}8rH*IpF1>qa$@B%Et;v+nqAJAklyv!!0T$-?~5p4q+T@V1vhSY}pwviZn zeZfXltNCYI@XBfzO*?`Ci7GO%)v`^M^L~$jSda{OGku&FC|jwsWSFEOu;8wx7s+69 z`5doX4go~gfe>gn35le*piRW`^c?8N79|Wx9XHsM@?J+8YeRs!NA&0(`afoK%~enQ zann_nYkDWhDS$E^34MX^5uf@ZEiU5y4fE!oDcXp2;T833+j4rPe?`z)!W|TtM0zx7=|X^VIw}Dr_&KRB)CNa0l(?=2U!d-iqoa{N{4>3{(`ldKbqZl^)w(oXnR93$hl zC(L3{f06Aa2a+AH^Y1>mbN6LeJ z($DGk(oc=F0I}T{(0Wq*2Y9(z?kBZ25tqKV;sD6zbtJRCX0=lx*v&K}j>BHQ(eAt? zcr6PCaKOP0fFETSp0&&UIE(mTdIdy6$=Seb zcHduE`HRP-a=8*6S-e3aTHJ}kQsqVT0Hh9R$phL1fxsYKg#38o^3d3!Zwf%ck)f30 zuZL6#KT64b2@5vv5a{w6sCgQV!HBD4$bAQ3sxXqua%6@u=-J~w)>XEDB%=9KSi#%v z3ga+JW$HIQ$<(;8ddEIpvF?J2fp(-4I6J$UD5fwW*sKVNrd-MlY*@M&7BT<;4cUk0 zf2=y40v5JE)cus0ku?>-B#Si(r=#z*ZkkSp3P^{Z;P0-KU94>E>q-)N4TC0TPn?5{ ztyQ|)9T6{pWXKZezzBsxXz~^C&w72_vANXLB3Ct4@Ql>Vce!!IuLP*m;8n}dNBKe< z;PU65jUN7%(tIJxXUXTE`=yn6lBk&%4W3u=)5gH+`8lZ|!ysRBXc#QT7jFZxOV^QL zKzzi{-OLLBN`RRCx4-|rsFOfV26!XW{o>@=EpxlPr+T}pI)}Gwkcg-Wpp#iMGH`|vWBY|7kO|LSvJ(*{O0&vnPchd%G6)YQ+ve@3RnQ5W7r%pmy7~;>gIRU&Mf759UI~0q_YQeEZ2ZGyH=> zF1hy97or)3wxGESh>18qh=QQc`xr)v;9KP=7Ns&F>_v`&{_n9jz3qrKDsm_ztBNbT zfJTu3PRVM{Bv4){RKP9yW&llqi*QsCp5D0X7ZBb0sb)io*xe^j7jd<$-zw=sY<}VvY(L!m z759<|P_#f!-o>E3vuLF404qsXR^8Z$SDH4@G35cP2Bz*Nmsr8a5<2D~Z>vgpYk?n0uNxD+xGQnqe=#DT}rPOjI&X(+`D}De!0&ryQmwafY_CI3cGq8m1R&*JS}a;^6}{-@Q-_8A*f~4 z3nVC$Ti+CuJ1H)ea+NOpQ2=mKZZ#e(+z7mt9*m42BrVH`1%-#1VpZYaOA#qj#Wew8 z4=qJ|d*wzihk>L>VMx$XodVq!%y^Y_mtay>H0wvf?=q3il!%_}>9VC%ML*H8mq#i2 zOjUhKywvqBs!6cOTmWD4)KpdW5bGr^n&LppNEHuDdaj`i-_L6VSX@G4kXFcDl@sE> zveWUiQG5IsW)=mZ4GcDwj2-nwl)Gr4yI0v>DnfW5v3Dz4f2A~QO15P_Rmi4=F8eBU z7N^mLPIsy#58>#ECpMoV+&-y9Unnf7RHowNmir{B6|4Q`l|VXw{L4SV+C%lvPHIrH z#7YBxwO>sSZ7OC6mQ8_sBFIgpqxq1q>0c-$6{%9>*<1#hwbZ{-|GqSAeE~a#>Ai93 z3z=YxC^jH`qgw8X4ivl9RGSdDchVGfAn7wkvxihmwqhY9^J&FADHEU%2l|A?L81-C z+0=-kK8y;TJB8Vg)E*+_B{ZdkkCMM94bt>pz8$xXlIGY}Q`JVDI%EX6%a$Y}s4FO4 zA6c(5Vt9umXQSezmrvhcIiotlE}dgOokS*!Q%Gnejc@Aloli*(4BVGhvGWfU+&g0@ zMF2DpWD7Nuef3M|?;Yyllj1X^b(yB=0IZVz>=aQ9Hh;2o%dpL*9zLApI3q+#bBqHoMd52VQk zCt1G4&#}1kU@nZKRE62V%;(V;i3zP$45At&u$Y<76Rh z_$Cw5=;;cl8lCPzCt=x^7>!NZN;=2}2r?*)vxIb#!sr6X znMTa}EaRmcF@U3E^Q=crtUy$Wwa|i4E-tSh_2-eif9M@4%miql95~mbFQ=xKDqFP! zef(0TI-jczMwC?eHq}+1z!!;RVi{B=0~$%naVK+Y`|8(jc2+XH*zF zJs7W`Ek*XYmuk|i{jr_x6rV5|%EaBEX<$=tCmr5cqs4o|H?9Dp{koR~@@D`JfCDWa zA6OTi-;?8k?++C^s$-N?prDWCwzojB2lLWC>PP&*uzP-ho5L2b@SoROu)xw<-WB?` z)LBcB3$MyD1_~+bOW}moB6gE>_I7BIju*BmPn9zj++m3P-;adm(QqC&gC+&8+_t_ak-J*JovNGk$LwIkRdpgZq0DDfF zDM;HH;6>V9`~7qh7>Tef(k@YEbedjmUy8kzJ@p)aVNgV6agGx$b z98A?uW{87g9-n;Q=Da|djh&j#PE<=!-eGT~M}xt`$RTu_mnEyTL0A{GyHl*q7N*W% z2^{_#D>YEI=Jbhj?eaKRf=Qo5Y%Lk(`>h|XJ6!tw%<@{jAbPO%5%t@3n037Rh+<_aD0D7&IeW1oh##YCjIn>C~)W^A6xXGI#nF#q?>5xu)oWij>r4Aq+PbCw|q{$Pd z|7vi6qdy>F+c^cU*#(tYLqSgWo5}&p$X*nVRx)jn793gt1=}Bz&fBTLAS0bWOhCYJ z^0n9vWAEPc?DFYv$A84V1|pBnga^WN+Wp%p?Ec3;{lh$swW9#EpjA|Pa`-k?baMRx zC0=7Y^GfKt=;{GiWiBnJ1>tIh%GT>KYx!s=H~``EAz?hmwC?07VK;>qj$Bf`g_8;^ z<55k?c6Uy;679S{z>BT;Dh%i->N)BXPEIG^VfQ!9*lnjmHryp?pcuudh)-@19_}EY zsj_3w4_PDZaaLo?;vn+5OxoT<%-E7l%fkt*;*(QeDQPB0UwcHw-=4ABo2XjBaiu6> z%A-YMQ6!Jj7S(E_e5Af@8}ygv(i#RW39G zaQYY(xsTruJ}m9&v2* z4RjY#HL&s@HnChpKnk!)LUPQe?W_Un#~xf)V!B>Q#W z0u9Qc+j*_GIx0q-jn@wgSpS6zv3%`cy(ndG(=#Kg`5^gpbl!oGUqKpwQ^Z&~l^n&6 z?@mtafSs8qr6p=z0kYF}T25PrHAEzMc}7Oj^mi51v4Z0;yJI~AL^w_tT*fTx%$Ml6 zOrfZe;r0n9>pMlv2#mu6zG-{{>ACW_ip?`<7pi_-qS;CdTYHmZr}%)dcWENJ{`QxD zP}3?7k&`SJG&(KORM9&2Sw4OA^O^T5FNRf`8@krE=Q-w%23AZI?yK4$d!-lUE zkEiN1OmAL^A2>1PD%RKx<4~9mv&XPDFFDw7@)VDnv_knPX}e8TWD5sM=TZF1ju1NK z;E&=O6`MJ`mD1o8o8_32Bv@)~J~2e>lht0c4QlHsHgaS$g;w)&gvMB92JkG5Fxo*| z3mVbcF#1Um0q?D>U^_b2kixVvmQ!P9ifv-s5$&BSVWotjTrr?OTLFl@d-H&kij<99JsN;w7cT~ zM#ybjwSJ_ctwF)8r;SYT4A&s|(CCV-Q|#e&+KY;F=X9||?yGuyOVhjLHKzcIqJr!Q zGsTOUUng^`M~7fcT97&trhQT^C_@XwV&_YC*p~TLpIPZn`Nnu0HQqo^Vq;|*;hptv z!-**8jztGtp&J?O7tx`r3SOnw`?(w?{hl;FZh^g{D#fl;T=Bb0I-^E{3;FgV3_)~t zHj1VkqIh9L!qmQLhRAtS?pW-V<#1WK0tP|CbX|BWN|3i=9u-|^O}$Kxl8$eBz5ro* z(Gej$G-ug_6jJY$&!{nHie%-83}~k2l%&N#^8gIF`4lI3eg{1u?Aihf3U$^GqL)3V zO(_$vKpy!gkaZBOu=}1vmsDQB%EloRPLJ9gIM50My0P~AsBhRnv!ej<6gt#l zENS@q=>WoUF+&b8d(`VW&r$8|)6#Zk05#pxZ84VK$19hT5UHvEyXt2?y?JN`Xx&6f1;X#iWW#ka^%4{c3a^{0Y$qi|MCG6C$&RV5V61AK)bT%1_PaqB@Q6TY z{GSFFv#}-T13YM{m#;wSw|h62qs`kxGbjTQ+(<213Mo0mzimCxq`x(41otH;(>Ri1 zr935EUnxWmsEnqd-lJ7gLKrx3=Rq|#)DB~yw7M75(r-?FVx`~N4;rbikuf$FwG8N+ z*>7cp5M#_j>365!+dezxCnPY|)U&n8lF$>)I(XQukD{ih_GJ!;SOY~Y^^X?*^Oci~ zTne*?5qMN4)8!~0Y=OC|p7;vL{@m|kGPUKAFeQ(XIPy$0>n$`SZ~$pq-J{D|Bq2g~ z?H?hN;voB4>T{OI&qPf5AHV%gIG`6c6*V4zB#6nVq#)H9^~aWb>9%5bN%0pbttTVU zlA?5`IujIY_2g*{SB`s*6c0I061SoGV3Ff)z_!j*Os`>m(bY9;dyF>jEQizCSz;`T)in zFEpE%usK0pmX8TEd$C#QnR#7L*TA!y%+x2|qo_OAQLOu+w8HOq)(B<=B+1_sjiZC3Lct zI-xwd3~c$@J5iS9`cIEtnbi|0FofZA!xV_#>5;)^A83?)&43I}k2MRXxMM`Sv%bc$ zRO@D=cvFU(kSt6{nDV>sCkmo#fQBg#3uC{=`4zglCC%s1xrF11li_vf)nYYe>t)0rpFm-*u1AZr?j64DdD^DGJ}G{bLzY=&|VTpVL_ zwgIiHJpi(f`7-YaU1&k&Q7gq}36C*5I{7z(97NH&vxtI-WRt;{grz5bba?#Wc@Vir zg@91_AZ0i?ntQF5sMe`vRnE=M@*CR#Dld$&_nfK)2hR8UkaPGM{gtF z(+FIq1JM3CpOYlB9D9;>X?ZXp8^3I9DC5ROOZWUu)DhNJJ==0oCxDXY$&=Iq)1$gB zKd5VnINwAp&SJ1r8Fug}Mz#N=BzzHG^5_QGngvPlU>AAZz_uBHz?)OQa$FG+RZfwq zigBKz+54PaH;>FjHU21cqkv2tW5v$hV2)QAOFPw~TWhJze8Eu|37}m$JXSFjnWirWA9>J^x91k#@ zkZCf8`eVt?#pQgqaDCv2z#N^3+*5CJi0As`(VUzhr1GzG+|!moKgm_(!ByRy&U8i* z6=Bm42gFs6nDTf!+hvFu2!-pUz{uI;WA;Xj%g6(-7ZyD|ppH775t465c~S~)D|^9y zGukQYYMx`_*ln!jM>A)XS@JF_unK1fBHDClyo5h;ijTd6rB2gn7G$q5sd8U0R@Q_8 z=o1~}fhcDrz+?56sqd@^FAm~T@iR5xSqF3=h9YoQ>4|ELf(>O>^BA4`n7y3H2sc!( zq1Yq5Ekfqx{1n-Rm4ttelsD+Z)xTS|s_Z$f{#*_rGW){ex?ulB%`IoJf1>1auIWQk z&5IU6SH65qHmnG#o~;iUw-L`u*?-BHAiwmPnJ~a2E?IUq2z} ziD$+GX6m>yqV&U=yVu1yE<(?d#L5RlR#}hfk$+BhjFPC7QNsYAOl2`HxCx`*k6NtA z@-Ojoc&rJnx8vc%XxJFjg#VqI`F=g9OBIl3^&Uq6_p2h9c^8PwCB-OBjEEpGnmTz7 zBw5T+zUNle=MV)`VoVS-0Y#8!I3Y2-Vr5eD?*H=Vzn%|@q`M#H{K!(l2lc2k5IA~r zRIfQX#?}oxW}N7B>7ozEfpW+LJ?j*~+d$3dog83Vl(VY{nGC@>b-*b+Bac>Uc?2-X zyzU$Pl7~Ka?5DWHokjsONK@jp+BJ_^#ynOdy@E^hv74 zlUmV6ahJ$c=dF!1$E1r=pK(5VNMK)1oFo1K6pWmgQZtQ6^Ywfd(hF>^XL07lf0I(b z)M}_Er7&o$-FdL&dwLSvnR%Rv&9%?rbHm2{v1tP|ts?s-(d|I#aOBd_N(Ns$RZ)lN zN4`3`Mc{0CTnl@YtQ$+jzSF*&j@u4r0m}tt5fNmrWJMHut5P@;v##;bF@G==0^lqItv|DVH-)h&!qIX7f~~;Q9AwDh~{E?4OpTEsPEp zXE{RYX*md3taIU;lH0uu;5HMA%IlUPr8xM*<8#JiPCqx!XU`!(UjKDSNXix&8!cK( z{_y-YlgIL`yiDXpQEqkz88S@S9Q_dw{REZ}A`n4{+`FO)MU$-j9$8ib=zoNXc8~jG z5Ibqdk7PdUCV4E!VKGtt`Bzi@Lx@|`I-b%5dPPGt)Q_5{32^JogYpxN!#{Er@ocd8 zN{*su2OUMoxo-J0raq$*N`1c#7|;#Hk*FEn79qSECvuYMI3-56JPfL+NlPE#!{rmmE`eMjOZpH$L*Z+PiLpd z8FW^T0~u1rrjd9M?Eaj|F?-JK(MnvCy^{& zunnEOaspr~y_mm_qx5Wbz_f=p_MIa;LJtHe0HQBXNMm?vtH8as+7pF~u#TC*Jfe~8 ziMhTnq5xkw-1A@m^jFp60Aa@m1dsVE6+CjZmtU;CM@xF-f!zy_>=`M@s-9&fIf;|M z9?jYOuH&3O^>S*uC6|KGI?~v;l4elU>k$d{BOXBZl=#gpgb zkCdHwZkSPS`qO#-0e!g_oiP%A!}Uk~l`+8(;ma2=tVreDb@ElDXz9Sqhm0=4rrQV)e=xW)sBSJqXw!kn=wImigd=hT+- zZ=Tebcyh?F5!>nS{PE9!l4rHUO^+_g-_#X*8d7dvHZ;`(*B?ya73cIH>F(6OH>HDY za!)Clt$Z`3N^M230z75VS3h~~7lMb&(=<|5SREm#nfp9jT@)4X_*MMP7aU{sAwoTm zxRpGm6wgxgX!FT4vn%|UgdKqr7wuVM*iJ>&=s}9Mw1|bjPRCh!H1|}*B|&dHuI34& zLfzYeS%pg+4}_RkmexL#8-IR@dd^BRw@;?SJT{5VW1K^j!n~BiW(LDZ?ubtV=w)x- zGgx~4=nu5&sKzw+-J1dc&T#=gT+}>Z8u~ zt~^)d>*T59CG$VlgvT++Rq&{a| zm=@;ph?kr5MnulElhE)G_&64|rslt9{ObSmmw&e|&+$&`>E>_H=>L6mcym(SmJTZN z(OSbDUc*Q%vsZrd8#b<$||!u_Bj^RGl7b|2qUwIr25-Nx(IzakrcMvulMr{Wilx_mFNKS=sDtw`iI}7aOpVa ziJb}CwBH>ua41pDb8Ol>Go?<(qEyo zlsRXZYDs6$mcJ?_i-go_6KtAjj-gvl6IV~=NxAl_089U0fB^uLwUq5iV9HAX0000< KMNUMnLSTZL@J%-W diff --git a/media/images/header-home-bg.svg b/media/images/header-home-bg.svg deleted file mode 100644 index 40a19bc0313..00000000000 --- a/media/images/header-home-bg.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/media/images/home-logo.png b/media/images/home-logo.png deleted file mode 100644 index 112b5e92e646a7eb87794049233c8c55249c9626..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3423 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 BS~dUx diff --git a/media/images/project-bar-bg-admin.svg b/media/images/project-bar-bg-admin.svg deleted file mode 100644 index 8840a902dd4..00000000000 --- a/media/images/project-bar-bg-admin.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/media/images/project-bar-bg.png b/media/images/project-bar-bg.png deleted file mode 100644 index 8bfdfd608c106fd59803c79234f5b5de3565a65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42376 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
    ' - ) - option_ul = framing.find('ul') - - select.find('option').each(function(idx, el) { - el = $(el) - var value = el.attr('value') - - options[value] = el.text() - selected = selected === null ? value : selected - - option_ul.append( - $('
  • ').append( - $('') - .text(options[value]) - .attr('data-value', value) - ) - ) - - }) - - console.log('norp', select, select.find('option'), options, selected) - selected = options[select.val() || selected] - - - framing.find('span > a:first-child').text(selected) - - framing.on('click', '[data-value]', function(ev) { - ev.preventDefault() - framing.find('span > a:first-child').text($(this).text()) - select.val($(this).attr('data-value')) - - option_ul.removeClass('js-open') - }) - - select.after(framing) - - } - - // Install events handlers user menu button the window, to open the menu and - // close it if it loses click focus. - (function () { - var menu = $('.menu-user'), - menu_button = menu.find('button.menu-drop'), - menu_dropdown = menu.find('div.menu-dropdown'); - - menu_button.on('click', function (ev) { - ev.stopPropagation(); - if (menu_dropdown.hasClass('menu-dropped')) { - menu_dropdown.removeClass('menu-dropped'); - } - else { - $('html').on('click', function () { - menu_dropdown.removeClass('menu-dropped'); - }); - menu_dropdown.on('click', function (ev) { - ev.stopPropagation(); - }); - menu_dropdown.addClass('menu-dropped'); - } - }); - })(); -}) diff --git a/media/javascript/build_updater.js b/media/javascript/build_updater.js deleted file mode 100644 index 45fac0f1f81..00000000000 --- a/media/javascript/build_updater.js +++ /dev/null @@ -1,141 +0,0 @@ -(function () { - - // An updater that renders details about a build. - this.BuildUpdater = function(buildId) { - this.buildId = buildId; - this.buildUrl = '/api/v1/build/' + this.buildId + '/'; - this.buildDiv = 'div#build-' + this.buildId; - this.buildLoadingImg = this.buildDiv + ' img.build-loading'; - this.intervalId = null; - return this; - }; - - BuildUpdater.prototype.stopPolling = function() { - $(this.buildLoadingImg).addClass('hide'); - clearInterval(this.intervalId); - }; - - // Show an animated 'loading' gif while we get the current details of the build - // with `buildId` from the server. - // - // If the build was successful, hide the loading gif, populate any - // nodes that have ids matching the pattern "build-" and clear `this.intervalId`. - BuildUpdater.prototype.render = function(data) { - var _this = this; - - for (var prop in data) { - if (data.hasOwnProperty(prop)) { - var val = data[prop]; - var el = $(this.buildDiv + ' span#build-' + prop); - - if (prop == 'success') { - if (data.hasOwnProperty('state') && data['state'] != 'finished') && data['state'] != 'cancelled' { - val = "Not yet finished"; - } - else { - // TODO: I'm not sure what to do with these. We are - // adding a third option here ("Cancelled") that's not - // "Passed" nor "Failed". There are many other places in - // the code where we are assuming only two possible - // options. - val = val ? "Passed" : "Failed"; - } - } - - if (prop == 'state') { - val = val.charAt(0).toUpperCase() + val.slice(1); - - if (val == 'Finished' || val == 'Cancelled') { - _this.stopPolling(); - } - } - - if (el) { - el.text(val); - } - } - } - }; - - BuildUpdater.prototype.getBuild = function() { - _this = this; - - $.get(this.buildUrl, function(data) { - _this.render(data); - }); - }; - - // If the build with ID `this.buildId` has a state other than finished or - // cancelled, poll the server every 5 seconds for the current status. Update - // the details page with the latest values from the server, to keep the user - // informed of progress. - // - // If we haven't received a 'finished'/'cancelled' state back the server in 10 minutes, - // stop polling. - BuildUpdater.prototype.startPolling = function() { - var stateSpan = $(this.buildDiv + ' span#build-state'); - var _this = this; - - // If the build is already finished, or it isn't displayed on the page, - // ignore it. - if (stateSpan.text() == 'Finished' || stateSpan.text() == 'Cancelled' || stateSpan.length === 0) { - return; - } - - $(this.buildLoadingImg).removeClass('hide'); - - // Get build data and render. - this.getBuild(); - - // Get build data and render every 5 seconds until finished. - var intervalId = setInterval(function () { - _this.getBuild(); - }, 5000); - - // Stop polling after 10 minutes, in case the build never finishes. - setTimeout(function() { - _this.stopPolling(); - }, 600000); - }; - - - // An updater that renders builds in a list of builds. - this.BuildListUpdater = function(buildId) { - BuildUpdater.call(this, buildId); - return this; - }; - - BuildListUpdater.prototype = new BuildUpdater(); - - BuildListUpdater.prototype.render = function(data) { - var _this = this; - - data['success'] = data['success'] ? "Passed" : "Failed"; - data['state'] = data['state'].charAt(0).toUpperCase() + data['state'].slice(1); - - for (var prop in data) { - if (data.hasOwnProperty(prop)) { - var val = data[prop]; - var el = $(this.buildDiv + ' span#build-' + prop); - - if (prop == 'state') { - // Show the success value ("Passed" or "Failed") if the build - // finished. Otherwise, show the state value. - if (val == 'Finished' || val == 'Cancelled') { - val = data['success']; - _this.stopPolling(); - } else { - data['success'] = ''; - } - } - - if (el) { - el.text(val); - } - } - } - }; - - -}).call(this); diff --git a/media/javascript/doctools.js b/media/javascript/doctools.js deleted file mode 100644 index 227ad837263..00000000000 --- a/media/javascript/doctools.js +++ /dev/null @@ -1,238 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s == 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node) { - if (node.nodeType == 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span = document.createElement("span"); - span.className = className; - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this); - }); - } - } - return this.each(function() { - highlight(this); - }); -}; - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated == 'undefined') - return string; - return (typeof translated == 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated == 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - var body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) == 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this == '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/media/javascript/jquery/jquery-2.0.3.min.js b/media/javascript/jquery/jquery-2.0.3.min.js deleted file mode 100644 index 6d8a9c0c3be..00000000000 --- a/media/javascript/jquery/jquery-2.0.3.min.js +++ /dev/null @@ -1,24 +0,0 @@ -/*! - * jQuery JavaScript Library v2.0.3 - * http://jquery.com/ - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * - * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2013-07-03T13:30Z - * - * This is a modified version of jQuery v2.0.3 - * with a backported fix for https://github.com/jquery/jquery/issues/2432 - * It was generated as follows (after backporting): - * - * ./node_modules/.bin/uglifyjs -cm --comments -- ./bower_components/jquery/jquery.js - * - * @preserve - */ -!function(e,t){function n(e){var t=e.length,n=ot.type(e);return ot.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=ht[e]={};return ot.each(e.match(at)||[],function(e,n){t[n]=!0}),t}function i(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=ot.expando+Math.random()}function o(e,n,r){var i;if(r===t&&1===e.nodeType)if(i="data-"+n.replace(vt,"-$1").toLowerCase(),r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:yt.test(r)?JSON.parse(r):r}catch(o){}gt.set(e,n,r)}else r=t;return r}function s(){return!0}function a(){return!1}function u(){try{return X.activeElement}catch(e){}}function l(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function c(e,t,n){if(ot.isFunction(t))return ot.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ot.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(jt.test(t))return ot.filter(t,e,n);t=ot.filter(t,e)}return ot.grep(e,function(e){return tt.call(t,e)>=0!==n})}function f(e,t){return ot.nodeName(e,"table")&&ot.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function p(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function d(e){var t=Wt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function h(e,t){for(var n=e.length,r=0;n>r;r++)mt.set(e[r],"globalEval",!t||mt.get(t[r],"globalEval"))}function g(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(mt.hasData(e)&&(o=mt.access(e),s=mt.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)ot.event.add(t,i,l[i][n])}gt.hasData(e)&&(a=gt.access(e),u=ot.extend({},a),gt.set(t,u))}}function m(e,n){var r=e.getElementsByTagName?e.getElementsByTagName(n||"*"):e.querySelectorAll?e.querySelectorAll(n||"*"):[];return n===t||n&&ot.nodeName(e,n)?ot.merge([e],r):r}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Pt.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function v(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Zt.length;i--;)if(t=Zt[i]+n,t in e)return t;return r}function x(e,t){return e=t||e,"none"===ot.css(e,"display")||!ot.contains(e.ownerDocument,e)}function b(t){return e.getComputedStyle(t,null)}function w(e,t){for(var n,r,i,o=[],s=0,a=e.length;a>s;s++)r=e[s],r.style&&(o[s]=mt.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&x(r)&&(o[s]=mt.access(r,"olddisplay",k(r.nodeName)))):o[s]||(i=x(r),(n&&"none"!==n||!i)&&mt.set(r,"olddisplay",i?n:ot.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}function T(e,t,n){var r=Ut.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function C(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;4>o;o+=2)"margin"===n&&(s+=ot.css(e,n+Kt[o],!0,i)),r?("content"===n&&(s-=ot.css(e,"padding"+Kt[o],!0,i)),"margin"!==n&&(s-=ot.css(e,"border"+Kt[o]+"Width",!0,i))):(s+=ot.css(e,"padding"+Kt[o],!0,i),"padding"!==n&&(s+=ot.css(e,"border"+Kt[o]+"Width",!0,i)));return s}function N(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=b(e),s=ot.support.boxSizing&&"border-box"===ot.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=It(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=s&&(ot.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+C(e,t,n||(s?"border":"content"),r,o)+"px"}function k(e){var t=X,n=Gt[e];return n||(n=E(e,t),"none"!==n&&n||(zt=(zt||ot("':""),t._keyEvent=!1,k},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l=this._get(t,"changeMonth"),h=this._get(t,"changeYear"),c=this._get(t,"showMonthAfterYear"),d='
    ',u="";if(o||!l)u+=''+a[e]+"";else{var p=s&&s.getFullYear()==i,f=n&&n.getFullYear()==i;u+='"}if(c||(d+=u+(!o&&l&&h?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!h)d+=''+i+"";else{function m(t){t=t.match(/c[+-].*/)?i+parseInt(t.substring(1),10):t.match(/[+-].*/)?v+parseInt(t,10):parseInt(t,10);return isNaN(t)?v:t}var a=this._get(t,"yearRange").split(":"),v=(new Date).getFullYear(),b=m(a[0]),_=Math.max(b,m(a[1]||"")),b=s?Math.max(b,s.getFullYear()):b,_=n?Math.min(_,n.getFullYear()):_;for(t.yearshtml+='",d+=t.yearshtml,t.yearshtml=null}return d+=this._get(t,"yearSuffix"),c&&(d+=(!o&&l&&h?"":" ")+u),d+="
    "},_adjustInstDate:function(t,e,i){var s=t.drawYear+("Y"==i?e:0),n=t.drawMonth+("M"==i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"==i?e:0),s=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=s.getDate(),t.drawMonth=t.selectedMonth=s.getMonth(),t.drawYear=t.selectedYear=s.getFullYear(),"M"!=i&&"Y"!=i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),t=this._getMinMaxDate(t,"max"),i=i&&e=i.getTime())&&(!t||e.getTime()<=t.getTime())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);s=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),s,this._getFormatConfig(t))}}),$.fn.datepicker=function(t){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var e=Array.prototype.slice.call(arguments,1);return"string"==typeof t&&("isDisabled"==t||"getDate"==t||"widget"==t)||"option"==t&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this].concat(e)):$.datepicker._attachDatepicker(this,t)})},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.23",window["DP_jQuery_"+dpuuid]=$}(jQuery),!function(r){var l="ui-dialog ui-widget ui-widget-content ui-corner-all ",o={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},a={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};r.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(t){var e=r(this).css(t).offset().top;e<0&&r(this).css("top",t.top-e)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),"string"!=typeof this.originalTitle&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var e=this,i=e.options,t=i.title||" ",s=r.ui.dialog.getTitleId(e.element),n=(e.uiDialog=r("
    ")).appendTo(document.body).hide().addClass(l+i.dialogClass).css({zIndex:i.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(t){i.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===r.ui.keyCode.ESCAPE&&(e.close(t),t.preventDefault())}).attr({role:"dialog","aria-labelledby":s}).mousedown(function(t){e.moveToTop(!1,t)}),o=(e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(n),(e.uiDialogTitlebar=r("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(n)),a=r('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){a.addClass("ui-state-hover")},function(){a.removeClass("ui-state-hover")}).focus(function(){a.addClass("ui-state-focus")}).blur(function(){a.removeClass("ui-state-focus")}).click(function(t){return e.close(t),!1}).appendTo(o);(e.uiDialogTitlebarCloseText=r("")).addClass("ui-icon ui-icon-closethick").text(i.closeText).appendTo(a),r("").addClass("ui-dialog-title").attr("id",s).html(t).prependTo(o);r.isFunction(i.beforeclose)&&!r.isFunction(i.beforeClose)&&(i.beforeClose=i.beforeclose),o.find("*").add(o).disableSelection(),i.draggable&&r.fn.draggable&&e._makeDraggable(),i.resizable&&r.fn.resizable&&e._makeResizable(),e._createButtons(i.buttons),e._isOpen=!1,r.fn.bgiframe&&n.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var t=this;return t.overlay&&t.overlay.destroy(),t.uiDialog.hide(),t.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),t.uiDialog.remove(),t.originalTitle&&t.element.attr("title",t.originalTitle),t},widget:function(){return this.uiDialog},close:function(t){var e,i,s=this;if(!1!==s._trigger("beforeClose",t))return s.overlay&&s.overlay.destroy(),s.uiDialog.unbind("keypress.ui-dialog"),s._isOpen=!1,s.options.hide?s.uiDialog.hide(s.options.hide,function(){s._trigger("close",t)}):(s.uiDialog.hide(),s._trigger("close",t)),r.ui.dialog.overlay.resize(),s.options.modal&&(e=0,r(".ui-dialog").each(function(){this!==s.uiDialog[0]&&(i=r(this).css("z-index"),isNaN(i)||(e=Math.max(e,i)))}),r.ui.dialog.maxZ=e),s},isOpen:function(){return this._isOpen},moveToTop:function(t,e){var i=this,s=i.options;return s.modal&&!t||!s.stack&&!s.modal?i._trigger("focus",e):(s.zIndex>r.ui.dialog.maxZ&&(r.ui.dialog.maxZ=s.zIndex),i.overlay&&(r.ui.dialog.maxZ+=1,i.overlay.$el.css("z-index",r.ui.dialog.overlay.maxZ=r.ui.dialog.maxZ)),t={scrollTop:i.element.scrollTop(),scrollLeft:i.element.scrollLeft()},r.ui.dialog.maxZ+=1,i.uiDialog.css("z-index",r.ui.dialog.maxZ),i.element.attr(t),i._trigger("focus",e),i)},open:function(){var t,e,i;if(!this._isOpen)return t=this,e=t.options,i=t.uiDialog,t.overlay=e.modal?new r.ui.dialog.overlay(t):null,t._size(),t._position(e.position),i.show(e.show),t.moveToTop(!0),e.modal&&i.bind("keydown.ui-dialog",function(t){var e,i;if(t.keyCode===r.ui.keyCode.TAB)return i=r(":tabbable",this),e=i.filter(":first"),i=i.filter(":last"),t.target!==i[0]||t.shiftKey?t.target===e[0]&&t.shiftKey?(i.focus(1),!1):void 0:(e.focus(1),!1)}),r(t.element.find(":tabbable").get().concat(i.find(".ui-dialog-buttonpane :tabbable").get().concat(i.get()))).eq(0).focus(),t._isOpen=!0,t._trigger("open"),t},_createButtons:function(t){var s=this,e=!1,i=r("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),n=r("
    ").addClass("ui-dialog-buttonset").appendTo(i);s.uiDialog.find(".ui-dialog-buttonpane").remove(),"object"==typeof t&&null!==t&&r.each(t,function(){return!(e=!0)}),e&&(r.each(t,function(t,e){e=r.isFunction(e)?{click:e,text:t}:e;var i=r('').click(function(){e.click.apply(s.element[0],arguments)}).appendTo(n);r.each(e,function(t,e){"click"!==t&&(t in i?i[t](e):i.attr(t,e))}),r.fn.button&&i.button()}),i.appendTo(s.uiDialog))},_makeDraggable:function(){var i,s=this,n=s.options,o=r(document);function a(t){return{position:t.position,offset:t.offset}}s.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){i="auto"===n.height?"auto":r(this).height(),r(this).height(r(this).height()).addClass("ui-dialog-dragging"),s._trigger("dragStart",t,a(e))},drag:function(t,e){s._trigger("drag",t,a(e))},stop:function(t,e){n.position=[e.position.left-o.scrollLeft(),e.position.top-o.scrollTop()],r(this).removeClass("ui-dialog-dragging").height(i),s._trigger("dragStop",t,a(e)),r.ui.dialog.overlay.resize()}})},_makeResizable:function(t){t=void 0===t?this.options.resizable:t;var i=this,s=i.options,e=i.uiDialog.css("position"),t="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";function n(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}i.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:i.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:i._minHeight(),handles:t,start:function(t,e){r(this).addClass("ui-dialog-resizing"),i._trigger("resizeStart",t,n(e))},resize:function(t,e){i._trigger("resize",t,n(e))},stop:function(t,e){r(this).removeClass("ui-dialog-resizing"),s.height=r(this).height(),s.width=r(this).width(),i._trigger("resizeStop",t,n(e)),r.ui.dialog.overlay.resize()}}).css("position",e).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(t){var e,i=[],s=[0,0];t=t?(("string"==typeof t||"object"==typeof t&&"0"in t)&&(1===(i=t.split?t.split(" "):[t[0],t[1]]).length&&(i[1]=i[0]),r.each(["left","top"],function(t,e){+i[t]===i[t]&&(s[t]=i[t],i[t]=e)}),t={my:i.join(" "),at:i.join(" "),offset:s.join(" ")}),r.extend({},r.ui.dialog.prototype.options.position,t)):r.ui.dialog.prototype.options.position,(e=this.uiDialog.is(":visible"))||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(r.extend({of:window},t)),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s={},n=!1;r.each(t,function(t,e){i._setOption(t,e),t in o&&(n=!0),t in a&&(s[t]=e)}),n&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,e){var i=this,s=i.uiDialog;switch(t){case"beforeclose":t="beforeClose";break;case"buttons":i._createButtons(e);break;case"closeText":i.uiDialogTitlebarCloseText.text(""+e);break;case"dialogClass":s.removeClass(i.options.dialogClass).addClass(l+e);break;case"disabled":e?s.addClass("ui-dialog-disabled"):s.removeClass("ui-dialog-disabled");break;case"draggable":var n=s.is(":data(draggable)");n&&!e&&s.draggable("destroy"),!n&&e&&i._makeDraggable();break;case"position":i._position(e);break;case"resizable":n=s.is(":data(resizable)");n&&!e&&s.resizable("destroy"),n&&"string"==typeof e&&s.resizable("option","handles",e),n||!1===e||i._makeResizable(e);break;case"title":r(".ui-dialog-title",i.uiDialogTitlebar).html(""+(e||" "))}r.Widget.prototype._setOption.apply(i,arguments)},_size:function(){var t,e,i,s=this.options,n=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).height(),e=Math.max(0,s.minHeight-t),"auto"===s.height?r.support.minHeight?this.element.css({minHeight:e,height:"auto"}):(this.uiDialog.show(),i=this.element.css("height","auto").height(),n||this.uiDialog.hide(),this.element.height(Math.max(i,e))):this.element.height(Math.max(s.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),r.extend(r.ui.dialog,{version:"1.8.23",uuid:0,maxZ:0,getTitleId:function(t){t=t.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=r.ui.dialog.overlay.create(t)}}),r.extend(r.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:r.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(t){return t+".dialog-overlay"}).join(" "),create:function(e){0===this.instances.length&&(setTimeout(function(){r.ui.dialog.overlay.instances.length&&r(document).bind(r.ui.dialog.overlay.events,function(t){if(r(t.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return r.fn.bgiframe&&t.bgiframe(),this.instances.push(t),t},destroy:function(t){var e=r.inArray(t,this.instances),i=(-1!=e&&this.oldInstances.push(this.instances.splice(e,1)[0]),0===this.instances.length&&r([document,window]).unbind(".dialog-overlay"),t.remove(),0);r.each(this.instances,function(){i=Math.max(i,this.css("z-index"))}),this.maxZ=i},height:function(){var t;return r.browser.msie&&r.browser.version<7?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight))").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),i.Widget.prototype.destroy.apply(this,arguments)},value:function(t){return void 0===t?this._value():(this._setOption("value",t),this)},_setOption:function(t,e){"value"===t&&(this.options.value=e,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),i.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var t=this.options.value;return"number"!=typeof t&&(t=0),Math.min(this.options.max,Math.max(this.min,t))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var t=this.value(),e=this._percentage();this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),this.valueDiv.toggle(t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(e.toFixed(0)+"%"),this.element.attr("aria-valuenow",t)}}),i.extend(i.ui.progressbar,{version:"1.8.23"})}(jQuery),!function(c){c.widget("ui.slider",c.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var o=this,t=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),i=t.values&&t.values.length||1,s=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(t.disabled?" ui-slider-disabled ui-disabled":"")),this.range=c([]),t.range&&(!0===t.range&&(t.values||(t.values=[this._valueMin(),this._valueMin()]),t.values.length&&2!==t.values.length&&(t.values=[t.values[0],t.values[0]])),this.range=c("
    ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:"")));for(var n=e.length;n");this.handles=e.add(c(s.join("")).appendTo(o.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(t){t.preventDefault()}).hover(function(){t.disabled||c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){t.disabled?c(this).blur():(c(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),c(this).addClass("ui-state-focus"))}).blur(function(){c(this).removeClass("ui-state-focus")}),this.handles.each(function(t){c(this).data("index.ui-slider-handle",t)}),this.handles.keydown(function(t){var e,i,s,n=c(this).data("index.ui-slider-handle");if(!o.options.disabled){switch(t.keyCode){case c.ui.keyCode.HOME:case c.ui.keyCode.END:case c.ui.keyCode.PAGE_UP:case c.ui.keyCode.PAGE_DOWN:case c.ui.keyCode.UP:case c.ui.keyCode.RIGHT:case c.ui.keyCode.DOWN:case c.ui.keyCode.LEFT:if(t.preventDefault(),o._keySliding||(o._keySliding=!0,c(this).addClass("ui-state-active"),!1!==o._start(t,n)))break;return}switch(s=o.options.step,e=i=o.options.values&&o.options.values.length?o.values(n):o.value(),t.keyCode){case c.ui.keyCode.HOME:i=o._valueMin();break;case c.ui.keyCode.END:i=o._valueMax();break;case c.ui.keyCode.PAGE_UP:i=o._trimAlignValue(e+(o._valueMax()-o._valueMin())/5);break;case c.ui.keyCode.PAGE_DOWN:i=o._trimAlignValue(e-(o._valueMax()-o._valueMin())/5);break;case c.ui.keyCode.UP:case c.ui.keyCode.RIGHT:if(e===o._valueMax())return;i=o._trimAlignValue(e+s);break;case c.ui.keyCode.DOWN:case c.ui.keyCode.LEFT:if(e===o._valueMin())return;i=o._trimAlignValue(e-s)}o._slide(t,n,i)}}).keyup(function(t){var e=c(this).data("index.ui-slider-handle");o._keySliding&&(o._keySliding=!1,o._stop(t,e),o._change(t,e),c(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(t){var i,s,n,o,a,e,r=this.options;return!r.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e),s=this._valueMax()-this._valueMin()+1,(o=this).handles.each(function(t){var e=Math.abs(i-o.values(t));e=this._valueMax())return this._valueMax();var e=0=e&&(t+=0",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(!0)},_setOption:function(t,e){"selected"==t?this.options.collapsible&&e==this.options.selected||this.select(e):(this.options[t]=e,this._tabify())},_tabId:function(t){return t.title&&t.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+ ++e},_sanitizeSelector:function(t){return t.replace(/:/g,"\\:")},_cookie:function(){var t=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++i);return p.cookie.apply(null,[t].concat(p.makeArray(arguments)))},_ui:function(t,e){return{tab:t,panel:e,index:this.anchors.index(t)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var t=p(this);t.html(t.data("label.tabs")).removeData("label.tabs")})},_tabify:function(t){var o=this,a=this.options,r=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=p(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return p("a",this)[0]}),this.panels=p([]),this.anchors.each(function(t,e){var i,s=p(e).attr("href"),n=s.split("#")[0];n&&(n===location.toString().split("#")[0]||(i=p("base")[0])&&n===i.href)&&(s=e.hash,e.href=s),r.test(s)?o.panels=o.panels.add(o.element.find(o._sanitizeSelector(s))):s&&"#"!==s?(p.data(e,"href.tabs",s),p.data(e,"load.tabs",s.replace(/#.*$/,"")),n=o._tabId(e),e.href="#"+n,(i=o.element.find("#"+n)).length||(i=p(a.panelTemplate).attr("id",n).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(o.panels[t-1]||o.list)).data("destroy.tabs",!0),o.panels=o.panels.add(i)):a.disabled.push(t)}),t?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),void 0===a.selected?(location.hash&&this.anchors.each(function(t,e){if(e.hash==location.hash)return a.selected=t,!1}),"number"!=typeof a.selected&&a.cookie&&(a.selected=parseInt(o._cookie(),10)),"number"!=typeof a.selected&&this.lis.filter(".ui-tabs-selected").length&&(a.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),a.selected=a.selected||(this.lis.length?0:-1)):null===a.selected&&(a.selected=-1),a.selected=0<=a.selected&&this.anchors[a.selected]||a.selected<0?a.selected:0,a.disabled=p.unique(a.disabled.concat(p.map(this.lis.filter(".ui-state-disabled"),function(t,e){return o.lis.index(t)}))).sort(),-1!=p.inArray(a.selected,a.disabled)&&a.disabled.splice(p.inArray(a.selected,a.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),0<=a.selected&&this.anchors.length&&(o.element.find(o._sanitizeSelector(o.anchors[a.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(a.selected).addClass("ui-tabs-selected ui-state-active"),o.element.queue("tabs",function(){o._trigger("show",null,o._ui(o.anchors[a.selected],o.element.find(o._sanitizeSelector(o.anchors[a.selected].hash))[0]))}),this.load(a.selected)),p(window).bind("unload",function(){o.lis.add(o.anchors).unbind(".tabs"),o.lis=o.anchors=o.panels=null})):a.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[a.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),a.cookie&&this._cookie(a.selected,a.cookie);for(var e,i,s,n,l,h=0;e=this.lis[h];h++)p(e)[-1==p.inArray(h,a.disabled)||p(e).hasClass("ui-tabs-selected")?"removeClass":"addClass"]("ui-state-disabled");function c(t,e){t.css("display",""),!p.support.opacity&&e.opacity&&t[0].style.removeAttribute("filter")}!1===a.cache&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs"),"mouseover"!==a.event&&(i=function(t,e){e.is(":not(.ui-state-disabled)")&&e.addClass("ui-state-"+t)},s=function(t,e){e.removeClass("ui-state-"+t)},this.lis.bind("mouseover.tabs",function(){i("hover",p(this))}),this.lis.bind("mouseout.tabs",function(){s("hover",p(this))}),this.anchors.bind("focus.tabs",function(){i("focus",p(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){s("focus",p(this).closest("li"))})),a.fx&&(p.isArray(a.fx)?(n=a.fx[0],l=a.fx[1]):n=l=a.fx);var d=l?function(t,e){p(t).closest("li").addClass("ui-tabs-selected ui-state-active"),e.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){c(e,l),o._trigger("show",null,o._ui(t,e[0]))})}:function(t,e){p(t).closest("li").addClass("ui-tabs-selected ui-state-active"),e.removeClass("ui-tabs-hide"),o._trigger("show",null,o._ui(t,e[0]))},u=n?function(t,e){e.animate(n,n.duration||"normal",function(){o.lis.removeClass("ui-tabs-selected ui-state-active"),e.addClass("ui-tabs-hide"),c(e,n),o.element.dequeue("tabs")})}:function(t,e,i){o.lis.removeClass("ui-tabs-selected ui-state-active"),e.addClass("ui-tabs-hide"),o.element.dequeue("tabs")};this.anchors.bind(a.event+".tabs",function(){var t=this,e=p(t).closest("li"),i=o.panels.filter(":not(.ui-tabs-hide)"),s=o.element.find(o._sanitizeSelector(t.hash));if(e.hasClass("ui-tabs-selected")&&!a.collapsible||e.hasClass("ui-state-disabled")||e.hasClass("ui-state-processing")||o.panels.filter(":animated").length||!1===o._trigger("select",null,o._ui(this,s[0])))return this.blur(),!1;if(a.selected=o.anchors.index(this),o.abort(),a.collapsible){if(e.hasClass("ui-tabs-selected"))return a.selected=-1,a.cookie&&o._cookie(a.selected,a.cookie),o.element.queue("tabs",function(){u(t,i)}).dequeue("tabs"),this.blur(),!1;if(!i.length)return a.cookie&&o._cookie(a.selected,a.cookie),o.element.queue("tabs",function(){d(t,s)}),o.load(o.anchors.index(this)),this.blur(),!1}if(a.cookie&&o._cookie(a.selected,a.cookie),!s.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";i.length&&o.element.queue("tabs",function(){u(t,i)}),o.element.queue("tabs",function(){d(t,s)}),o.load(o.anchors.index(this)),p.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+t+"']")):t},destroy:function(){var t=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var t=p.data(this,"href.tabs"),i=(t&&(this.href=t),p(this).unbind(".tabs"));p.each(["href","load","cache"],function(t,e){i.removeData(e+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){p.data(this,"destroy.tabs")?p(this).remove():p(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),t.cookie&&this._cookie(null,t.cookie),this},add:function(t,e,i){void 0===i&&(i=this.anchors.length);var s=this,n=this.options,e=p(n.tabTemplate.replace(/#\{href\}/g,t).replace(/#\{label\}/g,e)),t=t.indexOf("#")?this._tabId(p("a",e)[0]):t.replace("#",""),o=(e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0),s.element.find("#"+t));return(o=o.length?o:p(n.panelTemplate).attr("id",t).data("destroy.tabs",!0)).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),i>=this.lis.length?(e.appendTo(this.list),o.appendTo(this.list[0].parentNode)):(e.insertBefore(this.lis[i]),o.insertBefore(this.panels[i])),n.disabled=p.map(n.disabled,function(t,e){return i<=t?++t:t}),this._tabify(),1==this.anchors.length&&(n.selected=0,e.addClass("ui-tabs-selected ui-state-active"),o.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){s._trigger("show",null,s._ui(s.anchors[0],s.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(i){i=this._getIndex(i);var t=this.options,e=this.lis.eq(i).remove(),s=this.panels.eq(i).remove();return e.hasClass("ui-tabs-selected")&&1").outerWidth(1).jquery||r.each(["Width","Height"],function(t,i){var n="Width"===i?["Left","Right"]:["Top","Bottom"],s=i.toLowerCase(),o={innerWidth:r.fn.innerWidth,innerHeight:r.fn.innerHeight,outerWidth:r.fn.outerWidth,outerHeight:r.fn.outerHeight};function a(t,e,i,s){return r.each(n,function(){e-=parseFloat(r.curCSS(t,"padding"+this,!0))||0,i&&(e-=parseFloat(r.curCSS(t,"border"+this+"Width",!0))||0),s&&(e-=parseFloat(r.curCSS(t,"margin"+this,!0))||0)}),e}r.fn["inner"+i]=function(t){return t===l?o["inner"+i].call(this):this.each(function(){r(this).css(s,a(this,t)+"px")})},r.fn["outer"+i]=function(t,e){return"number"!=typeof t?o["outer"+i].call(this,t):this.each(function(){r(this).css(s,a(this,t,!0,e)+"px")})}}),r.extend(r.expr[":"],{data:r.expr.createPseudo?r.expr.createPseudo(function(e){return function(t){return!!r.data(t,e)}}):function(t,e,i){return!!r.data(t,i[3])},focusable:function(t){return s(t,!isNaN(r.attr(t,"tabindex")))},tabbable:function(t){var e=r.attr(t,"tabindex"),i=isNaN(e);return(i||0<=e)&&s(t,!i)}}),r(function(){var t=document.body,e=t.appendChild(document.createElement("div"));e.offsetHeight,r.extend(e.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),r.support.minHeight=100===e.offsetHeight,r.support.selectstart="onselectstart"in e,t.removeChild(e).style.display="none"}),r.curCSS||(r.curCSS=r.css),r.extend(r.ui,{plugin:{add:function(t,e,i){var s,n=r.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i){var s=t.plugins[e];if(s&&t.element[0].parentNode)for(var n=0;n=this.options.distance},_mouseDelayMet:function(t){return this.mouseDelayMet},_mouseStart:function(t){},_mouseDrag:function(t){},_mouseStop:function(t){},_mouseCapture:function(t){return!0}})}(jQuery),!function(_){_.widget("ui.draggable",_.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){"original"!=this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(this.element.data("draggable"))return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(t){var e=this.options;return!(this.helper||e.disabled||_(t.target).is(".ui-resizable-handle"))&&(this.handle=this._getHandle(t),!!this.handle&&(e.iframeFix&&_(!0===e.iframeFix?"iframe":e.iframeFix).each(function(){_('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(_(this).offset()).appendTo("body")}),!0))},_mouseStart:function(t){var e=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),_.ui.ddmanager&&(_.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},_.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),e.containment&&this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),_.ui.ddmanager&&!e.dropBehaviour&&_.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),_.ui.ddmanager&&_.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,e){if(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),!e){e=this._uiHash();if(!1===this._trigger("drag",t,e))return this._mouseUp({}),!1;this.position=e.position}return this.options.axis&&"y"==this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"==this.options.axis||(this.helper[0].style.top=this.position.top+"px"),_.ui.ddmanager&&_.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){for(var e,i=!1,s=(_.ui.ddmanager&&!this.options.dropBehaviour&&(i=_.ui.ddmanager.drop(this,t)),this.dropped&&(i=this.dropped,this.dropped=!1),this.element[0]),n=!1;s=s&&s.parentNode;)s==document&&(n=!0);return(n||"original"!==this.options.helper)&&("invalid"==this.options.revert&&!i||"valid"==this.options.revert&&i||!0===this.options.revert||_.isFunction(this.options.revert)&&this.options.revert.call(this.element,i)?_((e=this).helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==e._trigger("stop",t)&&e._clear()}):!1!==this._trigger("stop",t)&&this._clear()),!1},_mouseUp:function(t){return!0===this.options.iframeFix&&_("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),_.ui.ddmanager&&_.ui.ddmanager.dragStop(this,t),_.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var e=!this.options.handle||!_(this.options.handle,this.element).length;return _(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(e=!0)}),e},_createHelper:function(t){var e=this.options,t=_.isFunction(e.helper)?_(e.helper.apply(this.element[0],[t])):"clone"==e.helper?this.element.clone().removeAttr("id"):this.element;return t.parents("body").length||t.appendTo("parent"==e.appendTo?this.element[0].parentNode:e.appendTo),t[0]==this.element[0]||/(fixed|absolute)/.test(t.css("position"))||t.css("position","absolute"),t},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),"left"in(t=_.isArray(t)?{left:+t[0],top:+t[1]||0}:t)&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"==this.cssPosition&&this.scrollParent[0]!=document&&_.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),{top:(t=this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&"html"==this.offsetParent[0].tagName.toLowerCase()&&_.browser.msie?{top:0,left:0}:t).top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){var t;return"relative"==this.cssPosition?{top:(t=this.element.position()).top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}:{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,e,i=this.options;"parent"==i.containment&&(i.containment=this.helper[0].parentNode),"document"!=i.containment&&"window"!=i.containment||(this.containment=["document"==i.containment?0:_(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,"document"==i.containment?0:_(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,("document"==i.containment?0:_(window).scrollLeft())+_("document"==i.containment?document:window).width()-this.helperProportions.width-this.margins.left,("document"==i.containment?0:_(window).scrollTop())+(_("document"==i.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(i.containment)||i.containment.constructor==Array?i.containment.constructor==Array&&(this.containment=i.containment):(t=(i=_(i.containment))[0])&&(i.offset(),e="hidden"!=_(t).css("overflow"),this.containment=[(parseInt(_(t).css("borderLeftWidth"),10)||0)+(parseInt(_(t).css("paddingLeft"),10)||0),(parseInt(_(t).css("borderTopWidth"),10)||0)+(parseInt(_(t).css("paddingTop"),10)||0),(e?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(_(t).css("borderLeftWidth"),10)||0)-(parseInt(_(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(_(t).css("borderTopWidth"),10)||0)-(parseInt(_(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i)},_convertPositionTo:function(t,e){e=e||this.position;var t="absolute"==t?1:-1,i=(this.options,"absolute"!=this.cssPosition||this.scrollParent[0]!=document&&_.ui.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent),s=/(html|body)/i.test(i[0].tagName);return{top:e.top+this.offset.relative.top*t+this.offset.parent.top*t-(_.browser.safari&&_.browser.version<526&&"fixed"==this.cssPosition?0:("fixed"==this.cssPosition?-this.scrollParent.scrollTop():s?0:i.scrollTop())*t),left:e.left+this.offset.relative.left*t+this.offset.parent.left*t-(_.browser.safari&&_.browser.version<526&&"fixed"==this.cssPosition?0:("fixed"==this.cssPosition?-this.scrollParent.scrollLeft():s?0:i.scrollLeft())*t)}},_generatePosition:function(t){var e,i=this.options,s="absolute"!=this.cssPosition||this.scrollParent[0]!=document&&_.ui.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,n=/(html|body)/i.test(s[0].tagName),o=t.pageX,a=t.pageY;return this.originalPosition&&(this.containment&&(e=this.relative_container?(e=this.relative_container.offset(),[this.containment[0]+e.left,this.containment[1]+e.top,this.containment[2]+e.left,this.containment[3]+e.top]):this.containment,t.pageX-this.offset.click.lefte[2]&&(o=e[2]+this.offset.click.left),t.pageY-this.offset.click.top>e[3]&&(a=e[3]+this.offset.click.top)),i.grid&&(t=i.grid[1]?this.originalPageY+Math.round((a-this.originalPageY)/i.grid[1])*i.grid[1]:this.originalPageY,a=e&&(t-this.offset.click.tope[3])?t-this.offset.click.tope[2])?t-this.offset.click.left').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=t.handles||(c(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor==String){"all"==this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw");var i=this.handles.split(",");this.handles={};for(var s=0;s');o.css({zIndex:t.zIndex}),"se"==n&&o.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[n]=".ui-resizable-"+n,this.element.append(o)}}this._renderAxis=function(t){for(var e in t=t||this.element,this.handles){var i,s;this.handles[e].constructor==String&&(this.handles[e]=c(this.handles[e],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=c(this.handles[e],this.element),i=0,i=/sw|ne|nw|se|n|s/.test(e)?s.outerHeight():s.outerWidth(),s=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(s,i),this._proportionallyResize()),c(this.handles[e]).length}},this._renderAxis(this.element),this._handles=c(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){var t;e.resizing||(this.className&&(t=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),e.axis=t&&t[1]?t[1]:"se")}),t.autoHide&&(this._handles.hide(),c(this.element).addClass("ui-resizable-autohide").hover(function(){t.disabled||(c(this).removeClass("ui-resizable-autohide"),e._handles.show())},function(){t.disabled||e.resizing||(c(this).addClass("ui-resizable-autohide"),e._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();function t(t){c(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}var e;return this.elementIsWrapper&&(t(this.element),(e=this.element).after(this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")})).remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var e,i=!1;for(e in this.handles)c(this.handles[e])[0]==t.target&&(i=!0);return!this.options.disabled&&i},_mouseStart:function(t){var e=this.options,i=this.element.position(),s=this.element,i=(this.resizing=!0,this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy(),h(this.helper.css("left"))),n=h(this.helper.css("top")),i=(e.containment&&(i+=c(e.containment).scrollLeft()||0,n+=c(e.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:n},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:i,top:n},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof e.aspectRatio?e.aspectRatio:this.originalSize.width/this.originalSize.height||1,c(".ui-resizable-"+this.axis).css("cursor"));return c("body").css("cursor","auto"==i?this.axis+"-resize":i),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.helper,i=(this.options,this.originalMousePosition),s=this.axis,n=t.pageX-i.left||0,i=t.pageY-i.top||0,s=this._change[s];if(!s)return!1;s=s.apply(this,[t,n,i]);c.browser.msie&&c.browser.version,this.sizeDiff;return this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(s=this._updateRatio(s,t)),s=this._respectSize(s,t),this._propagate("resize",t),e.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(s),this._trigger("resize",t,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(i=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&c.ui.hasScroll(i[0],"left")?0:o.sizeDiff.height,e=e?0:o.sizeDiff.width,e={width:o.helper.width()-e,height:o.helper.height()-i},i=parseInt(o.element.css("left"),10)+(o.position.left-o.originalPosition.left)||null,s=parseInt(o.element.css("top"),10)+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(c.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),c("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(t){var e,i,s,n=this.options,n={minWidth:d(n.minWidth)?n.minWidth:0,maxWidth:d(n.maxWidth)?n.maxWidth:1/0,minHeight:d(n.minHeight)?n.minHeight:0,maxHeight:d(n.maxHeight)?n.maxHeight:1/0};(this._aspectRatio||t)&&(t=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,e=n.maxHeight*this.aspectRatio,s=n.maxWidth/this.aspectRatio,t>n.minWidth&&(n.minWidth=t),i>n.minHeight&&(n.minHeight=i),et.width,a=d(t.height)&&i.minHeight&&i.minHeight>t.height,r=(o&&(t.width=i.minWidth),a&&(t.height=i.minHeight),s&&(t.width=i.maxWidth),n&&(t.height=i.maxHeight),this.originalPosition.left+this.originalSize.width),l=this.position.top+this.size.height,h=/sw|nw|w/.test(e),e=/nw|ne|n/.test(e),o=(o&&h&&(t.left=r-i.minWidth),s&&h&&(t.left=r-i.maxWidth),a&&e&&(t.top=l-i.minHeight),n&&e&&(t.top=l-i.maxHeight),!t.width&&!t.height);return o&&!t.left&&t.top?t.top=null:o&&!t.top&&t.left&&(t.left=null),t},_proportionallyResize:function(){this.options;if(this._proportionallyResizeElements.length)for(var t=this.helper||this.element,e=0;e'),t=(e=c.browser.msie&&c.browser.version<7)?1:0,e=e?2:-1,this.helper.addClass(this._helper).css({width:this.element.outerWidth()+e,height:this.element.outerHeight()+e,position:"absolute",left:this.elementOffset.left-t+"px",top:this.elementOffset.top-t+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e,i){return{width:this.originalSize.width+e}},w:function(t,e,i){this.options;var s=this.originalSize;return{left:this.originalPosition.left+e,width:s.width-e}},n:function(t,e,i){this.options;var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){c.ui.plugin.call(this,t,[e,this.ui()]),"resize"!=t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),c.extend(c.ui.resizable,{version:"1.8.23"}),c.ui.plugin.add("resizable","alsoResize",{start:function(t,e){function i(t){c(t).each(function(){var t=c(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})}var s=c(this).data("resizable").options;"object"!=typeof s.alsoResize||s.alsoResize.parentNode?i(s.alsoResize):s.alsoResize.length?(s.alsoResize=s.alsoResize[0],i(s.alsoResize)):c.each(s.alsoResize,function(t){i(t)})},resize:function(t,o){function i(t,i){c(t).each(function(){var t=c(this),s=c(this).data("resizable-alsoresize"),n={},e=i&&i.length?i:t.parents(o.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(e,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})}var e=c(this).data("resizable"),s=e.options,n=e.originalSize,a=e.originalPosition,r={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-a.top||0,left:e.position.left-a.left||0};"object"!=typeof s.alsoResize||s.alsoResize.nodeType?i(s.alsoResize):c.each(s.alsoResize,function(t,e){i(t,e)})},stop:function(t,e){c(this).removeData("resizable-alsoresize")}}),c.ui.plugin.add("resizable","animate",{stop:function(e,t){var i=c(this).data("resizable"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&c.ui.hasScroll(n[0],"left")?0:i.sizeDiff.height,o=o?0:i.sizeDiff.width,o={width:i.size.width-o,height:i.size.height-a},a=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,r=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(c.extend(o,r&&a?{top:r,left:a}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var t={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&c(n[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),c.ui.plugin.add("resizable","containment",{start:function(t,e){var i,s,n,o,a=c(this).data("resizable"),r=a.options,l=a.element,r=r.containment,l=r instanceof c?r.get(0):/parent/.test(r)?l.parent().get(0):r;l&&(a.containerElement=c(l),/document/.test(r)||r==document?(a.containerOffset={left:0,top:0},a.containerPosition={left:0,top:0},a.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}):(i=c(l),s=[],c(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=h(i.css("padding"+e))}),a.containerOffset=i.offset(),a.containerPosition=i.position(),a.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},r=a.containerOffset,o=a.containerSize.height,n=a.containerSize.width,n=c.ui.hasScroll(l,"left")?l.scrollWidth:n,o=c.ui.hasScroll(l)?l.scrollHeight:o,a.parentData={element:l,left:r.left,top:r.top,width:n,height:o}))},resize:function(t,e){var i=c(this).data("resizable"),s=i.options,n=(i.containerSize,i.containerOffset),o=(i.size,i.position),t=i._aspectRatio||t.shiftKey,a={top:0,left:0},r=i.containerElement,r=(r[0]!=document&&/static/.test(r.css("position"))&&(a=n),o.left<(i._helper?n.left:0)&&(i.size.width=i.size.width+(i._helper?i.position.left-n.left:i.position.left-a.left),t&&(i.size.height=i.size.width/i.aspectRatio),i.position.left=s.helper?n.left:0),o.top<(i._helper?n.top:0)&&(i.size.height=i.size.height+(i._helper?i.position.top-n.top:i.position.top),t&&(i.size.width=i.size.height*i.aspectRatio),i.position.top=i._helper?n.top:0),i.offset.left=i.parentData.left+i.position.left,i.offset.top=i.parentData.top+i.position.top,Math.abs((i._helper,i.offset.left-a.left+i.sizeDiff.width))),s=Math.abs((i._helper?i.offset.top-a.top:i.offset.top-n.top)+i.sizeDiff.height),o=i.containerElement.get(0)==i.element.parent().get(0),a=/relative|absolute/.test(i.containerElement.css("position"));o&&a&&(r-=i.parentData.left),r+i.size.width>=i.parentData.width&&(i.size.width=i.parentData.width-r,t&&(i.size.height=i.size.width/i.aspectRatio)),s+i.size.height>=i.parentData.height&&(i.size.height=i.parentData.height-s,t&&(i.size.width=i.size.height*i.aspectRatio))},stop:function(t,e){var i=c(this).data("resizable"),s=i.options,n=(i.position,i.containerOffset),o=i.containerPosition,a=i.containerElement,r=c(i.helper),l=r.offset(),h=r.outerWidth()-i.sizeDiff.width,r=r.outerHeight()-i.sizeDiff.height;i._helper&&!s.animate&&/relative/.test(a.css("position"))&&c(this).css({left:l.left-o.left-n.left,width:h,height:r}),i._helper&&!s.animate&&/static/.test(a.css("position"))&&c(this).css({left:l.left-o.left-n.left,width:h,height:r})}}),c.ui.plugin.add("resizable","ghost",{start:function(t,e){var i=c(this).data("resizable"),s=i.options,n=i.size;i.ghost=i.originalElement.clone(),i.ghost.css({opacity:.25,display:"block",position:"relative",height:n.height,width:n.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof s.ghost?s.ghost:""),i.ghost.appendTo(i.helper)},resize:function(t,e){var i=c(this).data("resizable");i.options;i.ghost&&i.ghost.css({position:"relative",height:i.size.height,width:i.size.width})},stop:function(t,e){var i=c(this).data("resizable");i.options;i.ghost&&i.helper&&i.helper.get(0).removeChild(i.ghost.get(0))}}),c.ui.plugin.add("resizable","grid",{resize:function(t,e){var i=c(this).data("resizable"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,t=(s._aspectRatio||t.shiftKey,s.grid="number"==typeof s.grid?[s.grid,s.grid]:s.grid,Math.round((n.width-o.width)/(s.grid[0]||1))*(s.grid[0]||1)),n=Math.round((n.height-o.height)/(s.grid[1]||1))*(s.grid[1]||1);/^(se|s|e)$/.test(r)?(i.size.width=o.width+t,i.size.height=o.height+n):/^(ne)$/.test(r)?(i.size.width=o.width+t,i.size.height=o.height+n,i.position.top=a.top-n):(/^(sw)$/.test(r)?(i.size.width=o.width+t,i.size.height=o.height+n):(i.size.width=o.width+t,i.size.height=o.height+n,i.position.top=a.top-n),i.position.left=a.left-t)}});var h=function(t){return parseInt(t,10)||0},d=function(t){return!isNaN(parseInt(t,10))}}(jQuery),!function(h){h.widget("ui.selectable",h.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t,e=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){(t=h(e.options.filter,e.element[0])).addClass("ui-selectee"),t.each(function(){var t=h(this),e=t.offset();h.data(this,"selectable-item",{element:this,$element:t,left:e.left,top:e.top,right:e.left+t.outerWidth(),bottom:e.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=t.addClass("ui-selectee"),this._mouseInit(),this.helper=h("
    ")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(i){var t,s=this;this.opos=[i.pageX,i.pageY],this.options.disabled||(t=this.options,this.selectees=h(t.filter,this.element[0]),this._trigger("start",i),h(t.appendTo).append(this.helper),this.helper.css({left:i.clientX,top:i.clientY,width:0,height:0}),t.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var t=h.data(this,"selectable-item");t.startselected=!0,i.metaKey||i.ctrlKey||(t.$element.removeClass("ui-selected"),t.selected=!1,t.$element.addClass("ui-unselecting"),t.unselecting=!0,s._trigger("unselecting",i,{unselecting:t.element}))}),h(i.target).parents().andSelf().each(function(){var t,e=h.data(this,"selectable-item");if(e)return t=!i.metaKey&&!i.ctrlKey||!e.$element.hasClass("ui-selected"),e.$element.removeClass(t?"ui-unselecting":"ui-selected").addClass(t?"ui-selecting":"ui-unselecting"),e.unselecting=!t,e.selecting=t,(e.selected=t)?s._trigger("selecting",i,{selecting:e.element}):s._trigger("unselecting",i,{unselecting:e.element}),!1}))},_mouseDrag:function(i){var s,n,o,t,a,r,l=this;if(this.dragged=!0,!this.options.disabled)return s=this.options,o=this.opos[0],r=this.opos[1],n=i.pageX,a=i.pageY,nn||e.righta||e.bottomo&&e.rightr&&e.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var t=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=!!this.items.length&&("x"===t.axis||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display"))),this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){u.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var t=this.items.length-1;0<=t;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,e){"disabled"===t?(this.options[t]=e,this.widget()[e?"addClass":"removeClass"]("ui-sortable-disabled")):u.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,e){var i=this;if(this.reverting)return!1;if(this.options.disabled||"static"==this.options.type)return!1;this._refreshItems(t);var s=null,n=this;u(t.target).parents().each(function(){if(u.data(this,i.widgetName+"-item")==n)return s=u(this),!1});if(!(s=u.data(t.target,i.widgetName+"-item")==n?u(t.target):s))return!1;if(this.options.handle&&!e){var o=!1;if(u(this.options.handle,s).find("*").andSelf().each(function(){this==t.target&&(o=!0)}),!o)return!1}return this.currentItem=s,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,e,i){var s=this.options;if((this.currentContainer=this).refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},u.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,s.cursorAt&&this._adjustOffsetFromHelper(s.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),s.containment&&this._setContainment(),s.cursor&&(u("body").css("cursor")&&(this._storedCursor=u("body").css("cursor")),u("body").css("cursor",s.cursor)),s.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",s.opacity)),s.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",s.zIndex)),this.scrollParent[0]!=document&&"HTML"!=this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(var n=this.containers.length-1;0<=n;n--)this.containers[n]._trigger("activate",t,this._uiHash(this));return u.ui.ddmanager&&(u.ui.ddmanager.current=this),u.ui.ddmanager&&!s.dropBehaviour&&u.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var e,i;this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(e=this.options,i=!1,this.scrollParent[0]!=document&&"HTML"!=this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageYt[this.floating?"width":"height"]?rthis.containment[2]&&(n=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top)),e.grid&&(t=this.originalPageY+Math.round((o-this.originalPageY)/e.grid[1])*e.grid[1],o=this.containment&&(t-this.offset.click.topthis.containment[3])?t-this.offset.click.topthis.containment[2])?t-this.offset.click.left").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(t){e=document.body}return i.wrap(t),i[0]!==e&&!h.contains(i[0],e)||h(e).focus(),t=i.parent(),"static"==i.css("position")?(t.css({position:"relative"}),i.css({position:"relative"})):(h.extend(s,{position:i.css("position"),zIndex:i.css("z-index")}),h.each(["top","left","bottom","right"],function(t,e){s[e]=i.css(e),isNaN(parseInt(s[e],10))&&(s[e]="auto")}),i.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(s).show()},removeWrapper:function(t){var e,i=document.activeElement;return t.parent().is(".ui-effects-wrapper")?(e=t.parent().replaceWith(t),t[0]!==i&&!h.contains(t[0],i)||h(i).focus(),e):t},setTransition:function(s,t,n,o){return o=o||{},h.each(t,function(t,e){var i=s.cssUnit(e);0").css({position:"absolute",visibility:"visible",left:n/e*-r,top:o/t*-a}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:n/e,height:o/t,left:s.left+r*(n/e)+("show"==l.options.mode?(r-Math.floor(e/2))*(n/e):0),top:s.top+a*(o/t)+("show"==l.options.mode?(a-Math.floor(t/2))*(o/t):0),opacity:"show"==l.options.mode?0:1}).animate({left:s.left+r*(n/e)+("show"==l.options.mode?0:(r-Math.floor(e/2))*(n/e)),top:s.top+a*(o/t)+("show"==l.options.mode?0:(a-Math.floor(t/2))*(o/t)),opacity:"show"==l.options.mode?1:0},l.duration||500);setTimeout(function(){"show"==l.options.mode?i.css({visibility:"visible"}):i.css({visibility:"visible"}).hide(),l.callback&&l.callback.apply(i[0]),i.dequeue(),h("div.ui-effects-explode").remove()},l.duration||500)})}}(jQuery),!function(s){s.effects.fade=function(i){return this.queue(function(){var t=s(this),e=s.effects.setMode(t,i.options.mode||"hide");t.animate({opacity:e},{queue:!1,duration:i.duration,easing:i.options.easing,complete:function(){i.callback&&i.callback.apply(this,arguments),t.dequeue()}})})}}(jQuery),!function(d){d.effects.fold=function(c){return this.queue(function(){var t=d(this),e=["position","top","bottom","left","right"],i=d.effects.setMode(t,c.options.mode||"hide"),s=c.options.size||15,n=!!c.options.horizFirst,o=c.duration?c.duration/2:d.fx.speeds._default/2,a=(d.effects.save(t,e),t.show(),d.effects.createWrapper(t).css({overflow:"hidden"})),r="show"==i!=n,l=r?["width","height"]:["height","width"],r=r?[a.width(),a.height()]:[a.height(),a.width()],h=/([0-9]+)%/.exec(s),h=(h&&(s=parseInt(h[1],10)/100*r["hide"==i?0:1]),"show"==i&&a.css(n?{height:0,width:s}:{height:s,width:0}),{}),n={};h[l[0]]="show"==i?r[0]:s,n[l[1]]="show"==i?r[1]:0,a.animate(h,o,c.options.easing).animate(n,o,c.options.easing,function(){"hide"==i&&t.hide(),d.effects.restore(t,e),d.effects.removeWrapper(t),c.callback&&c.callback.apply(t[0],arguments),t.dequeue()})})}}(jQuery),!function(o){o.effects.highlight=function(n){return this.queue(function(){var t=o(this),e=["backgroundImage","backgroundColor","opacity"],i=o.effects.setMode(t,n.options.mode||"show"),s={backgroundColor:t.css("backgroundColor")};"hide"==i&&(s.opacity=0),o.effects.save(t,e),t.show().css({backgroundImage:"none",backgroundColor:n.options.color||"#ffff99"}).animate(s,{queue:!1,duration:n.duration,easing:n.options.easing,complete:function(){"hide"==i&&t.hide(),o.effects.restore(t,e),"show"!=i||o.support.opacity||this.style.removeAttribute("filter"),n.callback&&n.callback.apply(this,arguments),t.dequeue()}})})}}(jQuery),!function(l){l.effects.pulsate=function(r){return this.queue(function(){var t=l(this),e=l.effects.setMode(t,r.options.mode||"show"),i=2*(r.options.times||5)-1,s=r.duration?r.duration/2:l.fx.speeds._default/2,n=t.is(":visible"),o=0;n||(t.css("opacity",0).show(),o=1),("hide"==e&&n||"show"==e&&!n)&&i--;for(var a=0;a').appendTo(document.body).addClass(n.options.className).css({top:e.top,left:e.left,height:t.innerHeight(),width:t.innerWidth(),position:"absolute"}).animate(i,n.duration,n.options.easing,function(){s.remove(),n.callback&&n.callback.apply(t[0],arguments),t.dequeue()})})}}(jQuery),!function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:!0,clearStyle:!1,collapsible:!1,event:"click",fillSpace:!1,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var t,e,i=this,s=i.options;i.running=0,i.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),i.headers=i.element.find(s.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){s.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){s.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){s.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){s.disabled||c(this).removeClass("ui-state-focus")}),i.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"),s.navigation&&(t=i.element.find("a").filter(s.navigationFilter).eq(0)).length&&((e=t.closest(".ui-accordion-header")).length?i.active=e:i.active=t.closest(".ui-accordion-content").prev()),i.active=i._findActive(i.active||s.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),i.active.next().addClass("ui-accordion-content-active"),i._createIcons(),i.resize(),i.element.attr("role","tablist"),i.headers.attr("role","tab").bind("keydown.accordion",function(t){return i._keydown(t)}).next().attr("role","tabpanel"),i.headers.not(i.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),i.active.length?i.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):i.headers.eq(0).attr("tabIndex",0),c.browser.safari||i.headers.find("a").attr("tabIndex",-1),s.event&&i.headers.bind(s.event.split(" ").join(".accordion ")+".accordion",function(t){i._clickHandler.call(i,t,this),t.preventDefault()})},_createIcons:function(){var t=this.options;t.icons&&(c("").addClass("ui-icon "+t.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(t.icons.header).toggleClass(t.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var t=this.options,e=(this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons(),this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled"));return(t.autoHeight||t.fillHeight)&&e.css("height",""),c.Widget.prototype.destroy.call(this)},_setOption:function(t,e){c.Widget.prototype._setOption.apply(this,arguments),"active"==t&&this.activate(e),"icons"==t&&(this._destroyIcons(),e&&this._createIcons()),"disabled"==t&&this.headers.add(this.headers.next())[e?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(t){if(!(this.options.disabled||t.altKey||t.ctrlKey)){var e=c.ui.keyCode,i=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case e.RIGHT:case e.DOWN:n=this.headers[(s+1)%i];break;case e.LEFT:case e.UP:n=this.headers[(s-1+i)%i];break;case e.SPACE:case e.ENTER:this._clickHandler({target:t.target},t.target),t.preventDefault()}return!n||(c(t.target).attr("tabIndex",-1),c(n).attr("tabIndex",0),n.focus(),!1)}},resize:function(){var t,e,i=this.options;return i.fillSpace?(c.browser.msie&&(e=this.element.parent().css("overflow"),this.element.parent().css("overflow","hidden")),t=this.element.parent().height(),c.browser.msie&&this.element.parent().css("overflow",e),this.headers.each(function(){t-=c(this).outerHeight(!0)}),this.headers.next().each(function(){c(this).height(Math.max(0,t-c(this).innerHeight()+c(this).height()))}).css("overflow","auto")):i.autoHeight&&(t=0,this.headers.next().each(function(){t=Math.max(t,c(this).height("").height())}).height(t)),this},activate:function(t){this.options.active=t;t=this._findActive(t)[0];return this._clickHandler({target:t},t),this},_findActive:function(t){return t?"number"==typeof t?this.headers.filter(":eq("+t+")"):this.headers.not(this.headers.not(t)):!1===t?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(t,e){var i,s,n,o,a,r=this.options;r.disabled||(t.target?(e=(t=c(t.currentTarget||e))[0]===this.active[0],r.active=(!r.collapsible||!e)&&this.headers.index(t),this.running||!r.collapsible&&e||(i=this.active,a=t.next(),n=this.active.next(),o={options:r,newHeader:e&&r.collapsible?c([]):t,oldHeader:this.active,newContent:e&&r.collapsible?c([]):a,oldContent:n},s=this.headers.index(this.active[0])>this.headers.index(t[0]),this.active=e?c([]):t,this._toggle(a,n,o,e,s),i.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(r.icons.headerSelected).addClass(r.icons.header),e||(t.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(r.icons.header).addClass(r.icons.headerSelected),t.next().addClass("ui-accordion-content-active")))):r.collapsible&&(this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(r.icons.headerSelected).addClass(r.icons.header),this.active.next().addClass("ui-accordion-content-active"),n=this.active.next(),o={options:r,newHeader:c([]),oldHeader:r.active,newContent:c([]),oldContent:n},a=this.active=c([]),this._toggle(a,n,o)))},_toggle:function(t,e,i,s,n){function o(){if(l)return l._completed.apply(l,arguments)}var a,r,l=this,h=l.options;l.toShow=t,l.toHide=e,l.data=i;l._trigger("changestart",null,l.data),l.running=(0===e.size()?t:e).size(),h.animated?(i={},i=h.collapsible&&s?{toShow:c([]),toHide:e,complete:o,down:n,autoHeight:h.autoHeight||h.fillSpace}:{toShow:t,toHide:e,complete:o,down:n,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=c.isFunction(h.proxied)?h.proxied(i):h.proxied,h.duration=c.isFunction(h.proxiedDuration)?h.proxiedDuration(i):h.proxiedDuration,n=c.ui.accordion.animations,a=h.duration,n[r=!(r=h.animated)||n[r]||c.easing[r]?r:"slide"]||(n[r]=function(t){this.slide(t,{easing:r,duration:a||700})}),n[r](i)):(h.collapsible&&s?t.toggle():(e.hide(),t.show()),o(!0)),e.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),t.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(t){this.running=t?0:--this.running,this.running||(this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data))}}),c.extend(c.ui.accordion,{version:"1.8.23",animations:{slide:function(s,t){var e,i,n,o,a;(s=c.extend({easing:"swing",duration:300},s,t)).toHide.size()?s.toShow.size()?(e=s.toShow.css("overflow"),i=0,n={},o={},t=s.toShow,a=t[0].style.width,t.width(t.parent().width()-parseFloat(t.css("paddingLeft"))-parseFloat(t.css("paddingRight"))-(parseFloat(t.css("borderLeftWidth"))||0)-(parseFloat(t.css("borderRightWidth"))||0)),c.each(["height","paddingTop","paddingBottom"],function(t,e){o[e]="hide";var i=(""+c.css(s.toShow[0],e)).match(/^([\d+-.]+)(.*)$/);n[e]={value:i[1],unit:i[2]||"px"}}),s.toShow.css({height:0,overflow:"hidden"}).show(),s.toHide.filter(":hidden").each(s.complete).end().filter(":visible").animate(o,{step:function(t,e){"height"==e.prop&&(i=e.end-e.start==0?0:(e.now-e.start)/(e.end-e.start)),s.toShow[0].style[e.prop]=i*n[e.prop].value+n[e.prop].unit},duration:s.duration,easing:s.easing,complete:function(){s.autoHeight||s.toShow.css("height",""),s.toShow.css({width:a,overflow:e}),s.complete()}})):s.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},s):s.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},s)},bounceslide:function(t){this.slide(t,{easing:t.down?"easeOutBounce":"swing",duration:t.down?1e3:200})}}})}(jQuery),!function(a){var s=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var i,n=this,o=this.element[0].ownerDocument;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(t){if(!n.options.disabled&&!n.element.propAttr("readOnly")){i=!1;var e=a.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:n._move("previousPage",t);break;case e.PAGE_DOWN:n._move("nextPage",t);break;case e.UP:n._keyEvent("previous",t);break;case e.DOWN:n._keyEvent("next",t);break;case e.ENTER:case e.NUMPAD_ENTER:n.menu.active&&(i=!0,t.preventDefault());case e.TAB:if(!n.menu.active)return;n.menu.select(t);break;case e.ESCAPE:n.element.val(n.term),n.close(t);break;default:clearTimeout(n.searching),n.searching=setTimeout(function(){n.term!=n.element.val()&&(n.selectedItem=null,n.search(null,t))},n.options.delay)}}}).bind("keypress.autocomplete",function(t){i&&(i=!1,t.preventDefault())}).bind("focus.autocomplete",function(){n.options.disabled||(n.selectedItem=null,n.previous=n.element.val())}).bind("blur.autocomplete",function(t){n.options.disabled||(clearTimeout(n.searching),n.closing=setTimeout(function(){n.close(t),n._change(t)},150))}),this._initSource(),this.menu=a("
      ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",o)[0]).mousedown(function(t){var e=n.menu.element[0];a(t.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(t){t.target===n.element[0]||t.target===e||a.ui.contains(e,t.target)||n.close()})},1),setTimeout(function(){clearTimeout(n.closing)},13)}).menu({focus:function(t,e){e=e.item.data("item.autocomplete");!1!==n._trigger("focus",t,{item:e})&&/^key/.test(t.originalEvent.type)&&n.element.val(e.value)},selected:function(t,e){var i=e.item.data("item.autocomplete"),s=n.previous;n.element[0]!==o.activeElement&&(n.element.focus(),n.previous=s,setTimeout(function(){n.previous=s,n.selectedItem=i},1)),!1!==n._trigger("select",t,{item:i})&&n.element.val(i.value),n.term=n.element.val(),n.close(t),n.selectedItem=i},blur:function(t,e){n.menu.element.is(":visible")&&n.element.val()!==n.term&&n.element.val(n.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),n.beforeunloadHandler=function(){n.element.removeAttr("autocomplete")},a(window).bind("beforeunload",n.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(t,e){a.Widget.prototype._setOption.apply(this,arguments),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(a(e||"body",this.element[0].ownerDocument)[0]),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_initSource:function(){var i,e,s=this;a.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(a.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(e=this.options.source,this.source=function(t,i){s.xhr&&s.xhr.abort(),s.xhr=a.ajax({url:e,data:t,dataType:"json",success:function(t,e){i(t)},error:function(){i([])}})}):this.source=this.options.source},search:function(t,e){return t=null!=t?t:this.element.val(),this.term=this.element.val(),t.length").data("item.autocomplete",e).append(a("").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.first()&&/^previous/.test(t)||this.menu.last()&&/^next/.test(t)?(this.element.val(this.term),void this.menu.deactivate()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())}}),a.extend(a.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(a.ui.autocomplete.escapeRegex(e),"i");return a.grep(t,function(t){return i.test(t.label||t.value||t)})}})}(jQuery),!function(n){n.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(t){n(t.target).closest(".ui-menu-item a").length&&(t.preventDefault(),e.select(t))}),this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(t){e.activate(t,n(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(t,e){var i,s,n;this.deactivate(),this.hasScroll()&&(i=e.offset().top-this.element.offset().top,s=this.element.scrollTop(),n=this.element.height(),i<0?this.element.scrollTop(s+i):n<=i&&this.element.scrollTop(s+i-n+e.height())),this.active=e.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",t,{item:e})},deactivate:function(){this.active&&(this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null)},next:function(t){this.move("next",".ui-menu-item:first",t)},previous:function(t){this.move("prev",".ui-menu-item:last",t)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(t,e,i){this.active&&(t=this.active[t+"All"](".ui-menu-item").eq(0)).length?this.activate(i,t):this.activate(i,this.element.children(e))},nextPage:function(t){var e,i,s;this.hasScroll()?!this.active||this.last()?this.activate(t,this.element.children(".ui-menu-item:first")):(e=this.active.offset().top,i=this.element.height(),(s=this.element.children(".ui-menu-item").filter(function(){var t=n(this).offset().top-e-i+n(this).height();return t<10&&-10
      ",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),s=(i=this.options.icons).primary&&i.secondary,n=[],i.primary||i.secondary?(this.options.text&&n.push("ui-button-text-icon"+(s?"s":i.primary?"-primary":"-secondary")),i.primary&&t.prepend(""),i.secondary&&t.append(""),this.options.text||(n.push(s?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e))):n.push("ui-button-text-only"),t.addClass(n.join(" ")))}}),o.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(t,e){"disabled"===t&&this.buttons.button("option",t,e),o.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var t="rtl"===this.element.css("direction");this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return o(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return o(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),o.Widget.prototype.destroy.call(this)}})}(jQuery),!function($,undefined){$.extend($.ui,{datepicker:{version:"1.8.23"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('
      '))}function bindHover(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.bind("mouseout",function(t){t=$(t.target).closest(i);t.length&&t.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(t){t=$(t.target).closest(i);!$.datepicker._isDisabledDatepicker((instActive.inline?e.parent():instActive.input)[0])&&t.length&&(t.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t.addClass("ui-state-hover"),t.hasClass("ui-datepicker-prev")&&t.addClass("ui-datepicker-prev-hover"),t.hasClass("ui-datepicker-next")&&t.addClass("ui-datepicker-next-hover"))})}function extendRemove(t,e){for(var i in $.extend(t,e),e)null!=e[i]&&e[i]!=undefined||(t[i]=e[i])}function isArray(t){!t||$.browser.safari&&"object"==typeof t&&t.length||t.constructor&&t.constructor.toString().match(/\Array\(\)/)}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return extendRemove(this._defaults,t||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null,attrName;for(attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline="div"==nodeName||"span"==nodeName,inst=(target.id||(this.uuid+=1,target.id="dp"+this.uuid),this._newInst($(target),inline));inst.settings=$.extend({},settings||{},inlineSettings||{}),"input"==nodeName?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(t,e){return{id:t[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:e,dpDiv:e?bindHover($('
      ')):this.dpDiv}},_connectDatepicker:function(t,s){var e=$(t);s.append=$([]),s.trigger=$([]),e.hasClass(this.markerClassName)||(this._attachments(e,s),e.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(t,e,i){s.settings[e]=i}).bind("getData.datepicker",function(t,e){return this._get(s,e)}),this._autoSize(s),$.data(t,PROP_NAME,s),s.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,e){var i,s=this._get(e,"appendText"),n=this._get(e,"isRTL"),s=(e.append&&e.append.remove(),s&&(e.append=$(''+s+""),t[n?"before":"after"](e.append)),t.unbind("focus",this._showDatepicker),e.trigger&&e.trigger.remove(),this._get(e,"showOn"));"focus"!=s&&"both"!=s||t.focus(this._showDatepicker),"button"!=s&&"both"!=s||(s=this._get(e,"buttonText"),i=this._get(e,"buttonImage"),e.trigger=$(this._get(e,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:i,alt:s,title:s}):$('').addClass(this._triggerClass).html(""==i?s:$("").attr({src:i,alt:s,title:s}))),t[n?"before":"after"](e.trigger),e.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==t[0]?$.datepicker._hideDatepicker():($.datepicker._datepickerShowing&&$.datepicker._lastInput!=t[0]&&$.datepicker._hideDatepicker(),$.datepicker._showDatepicker(t[0])),!1}))},_autoSize:function(t){var e,i,s;this._get(t,"autoSize")&&!t.inline&&(e=new Date(2009,11,20),(i=this._get(t,"dateFormat")).match(/[DM]/)&&(e.setMonth((s=function(t){for(var e=0,i=0,s=0;se&&(e=t[s].length,i=s);return i})(this._get(t,i.match(/MM/)?"monthNames":"monthNamesShort"))),e.setDate(s(this._get(t,i.match(/DD/)?"dayNames":"dayNamesShort"))+20-e.getDay())),t.input.attr("size",this._formatDate(t,e).length))},_inlineDatepicker:function(t,s){var e=$(t);e.hasClass(this.markerClassName)||(e.addClass(this.markerClassName).append(s.dpDiv).bind("setData.datepicker",function(t,e,i){s.settings[e]=i}).bind("getData.datepicker",function(t,e){return this._get(s,e)}),$.data(t,PROP_NAME,s),this._setDate(s,this._getDefaultDate(s),!0),this._updateDatepicker(s),this._updateAlternate(s),s.settings.disabled&&this._disableDatepicker(t),s.dpDiv.css("display","block"))},_dialogDatepicker:function(t,e,i,s,n){var o,a=this._dialogInst;return a||(this.uuid+=1,o="dp"+this.uuid,this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),(a=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},$.data(this._dialogInput[0],PROP_NAME,a)),extendRemove(a.settings,s||{}),e=e&&e.constructor==Date?this._formatDate(a,e):e,this._dialogInput.val(e),this._pos=n?n.length?n:[n.pageX,n.pageY]:null,this._pos||(o=document.documentElement.clientWidth,s=document.documentElement.clientHeight,e=document.documentElement.scrollLeft||document.body.scrollLeft,n=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[o/2-100+e,s/2-150+n]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),a.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,a),this},_destroyDatepicker:function(t){var e,i=$(t),s=$.data(t,PROP_NAME);i.hasClass(this.markerClassName)&&(e=t.nodeName.toLowerCase(),$.removeData(t,PROP_NAME),"input"==e?(s.append.remove(),s.trigger.remove(),i.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):"div"!=e&&"span"!=e||i.removeClass(this.markerClassName).empty())},_enableDatepicker:function(e){var t,i=$(e),s=$.data(e,PROP_NAME);i.hasClass(this.markerClassName)&&("input"==(t=e.nodeName.toLowerCase())?(e.disabled=!1,s.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):"div"!=t&&"span"!=t||((s=i.children("."+this._inlineClass)).children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")),this._disabledInputs=$.map(this._disabledInputs,function(t){return t==e?null:t}))},_disableDatepicker:function(e){var t,i=$(e),s=$.data(e,PROP_NAME);i.hasClass(this.markerClassName)&&("input"==(t=e.nodeName.toLowerCase())?(e.disabled=!0,s.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):"div"!=t&&"span"!=t||((s=i.children("."+this._inlineClass)).children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")),this._disabledInputs=$.map(this._disabledInputs,function(t){return t==e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;er&&sl&&nf;)--u<0&&(u=11,p--);t.drawMonth=u,t.drawYear=p;for(var a=this._get(t,"prevText"),a=n?this.formatDate(a,this._daylightSavingAdjust(new Date(p,u-r,1)),this._getFormatConfig(t)):a,g=this._canAdjustMonth(t,-1,p,u)?''+a+"":s?"":''+a+"",a=this._get(t,"nextText"),a=n?this.formatDate(a,this._daylightSavingAdjust(new Date(p,u+r,1)),this._getFormatConfig(t)):a,m=this._canAdjustMonth(t,1,p,u)?''+a+"":s?"":''+a+"",r=this._get(t,"currentText"),s=this._get(t,"gotoCurrent")&&t.currentDay?h:e,r=n?this.formatDate(r,s,this._getFormatConfig(t)):r,a=t.inline?"":'",n=O?'
      '+(i?a:"")+(this._isInRange(t,s)?'":"")+(i?"":a)+"
      ":"",v=parseInt(this._get(t,"firstDay"),10),v=isNaN(v)?0:v,b=this._get(t,"showWeek"),E=this._get(t,"dayNames"),F=(this._get(t,"dayNamesShort"),this._get(t,"dayNamesMin")),R=this._get(t,"monthNames"),L=this._get(t,"monthNamesShort"),_=this._get(t,"beforeShowDay"),y=this._get(t,"showOtherMonths"),Y=this._get(t,"selectOtherMonths"),w=(this._get(t,"calculateWeek")||this.iso8601Week,this._getDefaultDate(t)),k="",x=0;x'+(/all|left/.test(P)&&0==x?i?m:g:"")+(/all|right/.test(P)&&0==x?i?g:m:"")+this._generateMonthYearHeader(t,u,p,c,d,0';for(var S=b?'":"",z=0;z<7;z++){var j=(z+v)%7;S+="'+F[j]+""}M+=S+"";for(var T=this._getDaysInMonth(p,u),q=(p==t.selectedYear&&u==t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,T)),(this._getFirstDayOfMonth(p,u)-v+7)%7),T=Math.ceil((q+T)/7),B=l&&this.maxRows>T?this.maxRows:T,A=(this.maxRows=B,this._daylightSavingAdjust(new Date(p,u,1-q))),K=0;K";for(var U=b?'":"",z=0;z<7;z++){var H=_?_.apply(t.input?t.input[0]:null,[A]):[!0,""],N=A.getMonth()!=u,W=N&&!Y||!H[0]||c&&A"+(N&&!y?" ":W?''+A.getDate()+"":''+A.getDate()+"")+"",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A)}M+=U+""}11<++u&&(u=0,p++),C+=M+="
      '+this._get(t,"weekHeader")+"
      '+this._get(t,"calculateWeek")(A)+"
      "+(l?""+(0':""):"")}k+=C}return k+=n+($.browser.msie&&parseInt($.browser.version,10)<7&&!t.inline?'':""),t._keyEvent=!1,k},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var l=this._get(t,"changeMonth"),h=this._get(t,"changeYear"),c=this._get(t,"showMonthAfterYear"),d='
      ',u="";if(o||!l)u+=''+a[e]+"";else{var p=s&&s.getFullYear()==i,f=n&&n.getFullYear()==i;u+='"}if(c||(d+=u+(!o&&l&&h?"":" ")),!t.yearshtml)if(t.yearshtml="",o||!h)d+=''+i+"";else{function m(t){t=t.match(/c[+-].*/)?i+parseInt(t.substring(1),10):t.match(/[+-].*/)?v+parseInt(t,10):parseInt(t,10);return isNaN(t)?v:t}var a=this._get(t,"yearRange").split(":"),v=(new Date).getFullYear(),b=m(a[0]),_=Math.max(b,m(a[1]||"")),b=s?Math.max(b,s.getFullYear()):b,_=n?Math.min(_,n.getFullYear()):_;for(t.yearshtml+='",d+=t.yearshtml,t.yearshtml=null}return d+=this._get(t,"yearSuffix"),c&&(d+=(!o&&l&&h?"":" ")+u),d+="
      "},_adjustInstDate:function(t,e,i){var s=t.drawYear+("Y"==i?e:0),n=t.drawMonth+("M"==i?e:0),e=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"==i?e:0),s=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,e)));t.selectedDay=s.getDate(),t.drawMonth=t.selectedMonth=s.getMonth(),t.drawYear=t.selectedYear=s.getFullYear(),"M"!=i&&"Y"!=i||this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),t=this._getMinMaxDate(t,"max"),i=i&&e=i.getTime())&&(!t||e.getTime()<=t.getTime())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return{shortYearCutoff:e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);s=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),s,this._getFormatConfig(t))}}),$.fn.datepicker=function(t){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var e=Array.prototype.slice.call(arguments,1);return"string"==typeof t&&("isDisabled"==t||"getDate"==t||"widget"==t)||"option"==t&&2==arguments.length&&"string"==typeof arguments[1]?$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this[0]].concat(e)):this.each(function(){"string"==typeof t?$.datepicker["_"+t+"Datepicker"].apply($.datepicker,[this].concat(e)):$.datepicker._attachDatepicker(this,t)})},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.23",window["DP_jQuery_"+dpuuid]=$}(jQuery),!function(r){var l="ui-dialog ui-widget ui-widget-content ui-corner-all ",o={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},a={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};r.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(t){var e=r(this).css(t).offset().top;e<0&&r(this).css("top",t.top-e)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),"string"!=typeof this.originalTitle&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var e=this,i=e.options,t=i.title||" ",s=r.ui.dialog.getTitleId(e.element),n=(e.uiDialog=r("
      ")).appendTo(document.body).hide().addClass(l+i.dialogClass).css({zIndex:i.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(t){i.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===r.ui.keyCode.ESCAPE&&(e.close(t),t.preventDefault())}).attr({role:"dialog","aria-labelledby":s}).mousedown(function(t){e.moveToTop(!1,t)}),o=(e.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(n),(e.uiDialogTitlebar=r("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(n)),a=r('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){a.addClass("ui-state-hover")},function(){a.removeClass("ui-state-hover")}).focus(function(){a.addClass("ui-state-focus")}).blur(function(){a.removeClass("ui-state-focus")}).click(function(t){return e.close(t),!1}).appendTo(o);(e.uiDialogTitlebarCloseText=r("")).addClass("ui-icon ui-icon-closethick").text(i.closeText).appendTo(a),r("").addClass("ui-dialog-title").attr("id",s).html(t).prependTo(o);r.isFunction(i.beforeclose)&&!r.isFunction(i.beforeClose)&&(i.beforeClose=i.beforeclose),o.find("*").add(o).disableSelection(),i.draggable&&r.fn.draggable&&e._makeDraggable(),i.resizable&&r.fn.resizable&&e._makeResizable(),e._createButtons(i.buttons),e._isOpen=!1,r.fn.bgiframe&&n.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var t=this;return t.overlay&&t.overlay.destroy(),t.uiDialog.hide(),t.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),t.uiDialog.remove(),t.originalTitle&&t.element.attr("title",t.originalTitle),t},widget:function(){return this.uiDialog},close:function(t){var e,i,s=this;if(!1!==s._trigger("beforeClose",t))return s.overlay&&s.overlay.destroy(),s.uiDialog.unbind("keypress.ui-dialog"),s._isOpen=!1,s.options.hide?s.uiDialog.hide(s.options.hide,function(){s._trigger("close",t)}):(s.uiDialog.hide(),s._trigger("close",t)),r.ui.dialog.overlay.resize(),s.options.modal&&(e=0,r(".ui-dialog").each(function(){this!==s.uiDialog[0]&&(i=r(this).css("z-index"),isNaN(i)||(e=Math.max(e,i)))}),r.ui.dialog.maxZ=e),s},isOpen:function(){return this._isOpen},moveToTop:function(t,e){var i=this,s=i.options;return s.modal&&!t||!s.stack&&!s.modal?i._trigger("focus",e):(s.zIndex>r.ui.dialog.maxZ&&(r.ui.dialog.maxZ=s.zIndex),i.overlay&&(r.ui.dialog.maxZ+=1,i.overlay.$el.css("z-index",r.ui.dialog.overlay.maxZ=r.ui.dialog.maxZ)),t={scrollTop:i.element.scrollTop(),scrollLeft:i.element.scrollLeft()},r.ui.dialog.maxZ+=1,i.uiDialog.css("z-index",r.ui.dialog.maxZ),i.element.attr(t),i._trigger("focus",e),i)},open:function(){var t,e,i;if(!this._isOpen)return t=this,e=t.options,i=t.uiDialog,t.overlay=e.modal?new r.ui.dialog.overlay(t):null,t._size(),t._position(e.position),i.show(e.show),t.moveToTop(!0),e.modal&&i.bind("keydown.ui-dialog",function(t){var e,i;if(t.keyCode===r.ui.keyCode.TAB)return i=r(":tabbable",this),e=i.filter(":first"),i=i.filter(":last"),t.target!==i[0]||t.shiftKey?t.target===e[0]&&t.shiftKey?(i.focus(1),!1):void 0:(e.focus(1),!1)}),r(t.element.find(":tabbable").get().concat(i.find(".ui-dialog-buttonpane :tabbable").get().concat(i.get()))).eq(0).focus(),t._isOpen=!0,t._trigger("open"),t},_createButtons:function(t){var s=this,e=!1,i=r("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),n=r("
      ").addClass("ui-dialog-buttonset").appendTo(i);s.uiDialog.find(".ui-dialog-buttonpane").remove(),"object"==typeof t&&null!==t&&r.each(t,function(){return!(e=!0)}),e&&(r.each(t,function(t,e){e=r.isFunction(e)?{click:e,text:t}:e;var i=r('').click(function(){e.click.apply(s.element[0],arguments)}).appendTo(n);r.each(e,function(t,e){"click"!==t&&(t in i?i[t](e):i.attr(t,e))}),r.fn.button&&i.button()}),i.appendTo(s.uiDialog))},_makeDraggable:function(){var i,s=this,n=s.options,o=r(document);function a(t){return{position:t.position,offset:t.offset}}s.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(t,e){i="auto"===n.height?"auto":r(this).height(),r(this).height(r(this).height()).addClass("ui-dialog-dragging"),s._trigger("dragStart",t,a(e))},drag:function(t,e){s._trigger("drag",t,a(e))},stop:function(t,e){n.position=[e.position.left-o.scrollLeft(),e.position.top-o.scrollTop()],r(this).removeClass("ui-dialog-dragging").height(i),s._trigger("dragStop",t,a(e)),r.ui.dialog.overlay.resize()}})},_makeResizable:function(t){t=void 0===t?this.options.resizable:t;var i=this,s=i.options,e=i.uiDialog.css("position"),t="string"==typeof t?t:"n,e,s,w,se,sw,ne,nw";function n(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}i.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:i.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:i._minHeight(),handles:t,start:function(t,e){r(this).addClass("ui-dialog-resizing"),i._trigger("resizeStart",t,n(e))},resize:function(t,e){i._trigger("resize",t,n(e))},stop:function(t,e){r(this).removeClass("ui-dialog-resizing"),s.height=r(this).height(),s.width=r(this).width(),i._trigger("resizeStop",t,n(e)),r.ui.dialog.overlay.resize()}}).css("position",e).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(t){var e,i=[],s=[0,0];t=t?(("string"==typeof t||"object"==typeof t&&"0"in t)&&(1===(i=t.split?t.split(" "):[t[0],t[1]]).length&&(i[1]=i[0]),r.each(["left","top"],function(t,e){+i[t]===i[t]&&(s[t]=i[t],i[t]=e)}),t={my:i.join(" "),at:i.join(" "),offset:s.join(" ")}),r.extend({},r.ui.dialog.prototype.options.position,t)):r.ui.dialog.prototype.options.position,(e=this.uiDialog.is(":visible"))||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(r.extend({of:window},t)),e||this.uiDialog.hide()},_setOptions:function(t){var i=this,s={},n=!1;r.each(t,function(t,e){i._setOption(t,e),t in o&&(n=!0),t in a&&(s[t]=e)}),n&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,e){var i=this,s=i.uiDialog;switch(t){case"beforeclose":t="beforeClose";break;case"buttons":i._createButtons(e);break;case"closeText":i.uiDialogTitlebarCloseText.text(""+e);break;case"dialogClass":s.removeClass(i.options.dialogClass).addClass(l+e);break;case"disabled":e?s.addClass("ui-dialog-disabled"):s.removeClass("ui-dialog-disabled");break;case"draggable":var n=s.is(":data(draggable)");n&&!e&&s.draggable("destroy"),!n&&e&&i._makeDraggable();break;case"position":i._position(e);break;case"resizable":n=s.is(":data(resizable)");n&&!e&&s.resizable("destroy"),n&&"string"==typeof e&&s.resizable("option","handles",e),n||!1===e||i._makeResizable(e);break;case"title":r(".ui-dialog-title",i.uiDialogTitlebar).html(""+(e||" "))}r.Widget.prototype._setOption.apply(i,arguments)},_size:function(){var t,e,i,s=this.options,n=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).height(),e=Math.max(0,s.minHeight-t),"auto"===s.height?r.support.minHeight?this.element.css({minHeight:e,height:"auto"}):(this.uiDialog.show(),i=this.element.css("height","auto").height(),n||this.uiDialog.hide(),this.element.height(Math.max(i,e))):this.element.height(Math.max(s.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),r.extend(r.ui.dialog,{version:"1.8.23",uuid:0,maxZ:0,getTitleId:function(t){t=t.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=r.ui.dialog.overlay.create(t)}}),r.extend(r.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:r.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(t){return t+".dialog-overlay"}).join(" "),create:function(e){0===this.instances.length&&(setTimeout(function(){r.ui.dialog.overlay.instances.length&&r(document).bind(r.ui.dialog.overlay.events,function(t){if(r(t.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return r.fn.bgiframe&&t.bgiframe(),this.instances.push(t),t},destroy:function(t){var e=r.inArray(t,this.instances),i=(-1!=e&&this.oldInstances.push(this.instances.splice(e,1)[0]),0===this.instances.length&&r([document,window]).unbind(".dialog-overlay"),t.remove(),0);r.each(this.instances,function(){i=Math.max(i,this.css("z-index"))}),this.maxZ=i},height:function(){var t;return r.browser.msie&&r.browser.version<7?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight))").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),i.Widget.prototype.destroy.apply(this,arguments)},value:function(t){return void 0===t?this._value():(this._setOption("value",t),this)},_setOption:function(t,e){"value"===t&&(this.options.value=e,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),i.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var t=this.options.value;return"number"!=typeof t&&(t=0),Math.min(this.options.max,Math.max(this.min,t))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var t=this.value(),e=this._percentage();this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),this.valueDiv.toggle(t>this.min).toggleClass("ui-corner-right",t===this.options.max).width(e.toFixed(0)+"%"),this.element.attr("aria-valuenow",t)}}),i.extend(i.ui.progressbar,{version:"1.8.23"})}(jQuery),!function(c){c.widget("ui.slider",c.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var o=this,t=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),i=t.values&&t.values.length||1,s=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all"+(t.disabled?" ui-slider-disabled ui-disabled":"")),this.range=c([]),t.range&&(!0===t.range&&(t.values||(t.values=[this._valueMin(),this._valueMin()]),t.values.length&&2!==t.values.length&&(t.values=[t.values[0],t.values[0]])),this.range=c("
      ").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+("min"===t.range||"max"===t.range?" ui-slider-range-"+t.range:"")));for(var n=e.length;n");this.handles=e.add(c(s.join("")).appendTo(o.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(t){t.preventDefault()}).hover(function(){t.disabled||c(this).addClass("ui-state-hover")},function(){c(this).removeClass("ui-state-hover")}).focus(function(){t.disabled?c(this).blur():(c(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),c(this).addClass("ui-state-focus"))}).blur(function(){c(this).removeClass("ui-state-focus")}),this.handles.each(function(t){c(this).data("index.ui-slider-handle",t)}),this.handles.keydown(function(t){var e,i,s,n=c(this).data("index.ui-slider-handle");if(!o.options.disabled){switch(t.keyCode){case c.ui.keyCode.HOME:case c.ui.keyCode.END:case c.ui.keyCode.PAGE_UP:case c.ui.keyCode.PAGE_DOWN:case c.ui.keyCode.UP:case c.ui.keyCode.RIGHT:case c.ui.keyCode.DOWN:case c.ui.keyCode.LEFT:if(t.preventDefault(),o._keySliding||(o._keySliding=!0,c(this).addClass("ui-state-active"),!1!==o._start(t,n)))break;return}switch(s=o.options.step,e=i=o.options.values&&o.options.values.length?o.values(n):o.value(),t.keyCode){case c.ui.keyCode.HOME:i=o._valueMin();break;case c.ui.keyCode.END:i=o._valueMax();break;case c.ui.keyCode.PAGE_UP:i=o._trimAlignValue(e+(o._valueMax()-o._valueMin())/5);break;case c.ui.keyCode.PAGE_DOWN:i=o._trimAlignValue(e-(o._valueMax()-o._valueMin())/5);break;case c.ui.keyCode.UP:case c.ui.keyCode.RIGHT:if(e===o._valueMax())return;i=o._trimAlignValue(e+s);break;case c.ui.keyCode.DOWN:case c.ui.keyCode.LEFT:if(e===o._valueMin())return;i=o._trimAlignValue(e-s)}o._slide(t,n,i)}}).keyup(function(t){var e=c(this).data("index.ui-slider-handle");o._keySliding&&(o._keySliding=!1,o._stop(t,e),o._change(t,e),c(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(t){var i,s,n,o,a,e,r=this.options;return!r.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e),s=this._valueMax()-this._valueMin()+1,(o=this).handles.each(function(t){var e=Math.abs(i-o.values(t));e=this._valueMax())return this._valueMax();var e=0=e&&(t+=0",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(!0)},_setOption:function(t,e){"selected"==t?this.options.collapsible&&e==this.options.selected||this.select(e):(this.options[t]=e,this._tabify())},_tabId:function(t){return t.title&&t.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+ ++e},_sanitizeSelector:function(t){return t.replace(/:/g,"\\:")},_cookie:function(){var t=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++i);return p.cookie.apply(null,[t].concat(p.makeArray(arguments)))},_ui:function(t,e){return{tab:t,panel:e,index:this.anchors.index(t)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var t=p(this);t.html(t.data("label.tabs")).removeData("label.tabs")})},_tabify:function(t){var o=this,a=this.options,r=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=p(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return p("a",this)[0]}),this.panels=p([]),this.anchors.each(function(t,e){var i,s=p(e).attr("href"),n=s.split("#")[0];n&&(n===location.toString().split("#")[0]||(i=p("base")[0])&&n===i.href)&&(s=e.hash,e.href=s),r.test(s)?o.panels=o.panels.add(o.element.find(o._sanitizeSelector(s))):s&&"#"!==s?(p.data(e,"href.tabs",s),p.data(e,"load.tabs",s.replace(/#.*$/,"")),n=o._tabId(e),e.href="#"+n,(i=o.element.find("#"+n)).length||(i=p(a.panelTemplate).attr("id",n).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(o.panels[t-1]||o.list)).data("destroy.tabs",!0),o.panels=o.panels.add(i)):a.disabled.push(t)}),t?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),void 0===a.selected?(location.hash&&this.anchors.each(function(t,e){if(e.hash==location.hash)return a.selected=t,!1}),"number"!=typeof a.selected&&a.cookie&&(a.selected=parseInt(o._cookie(),10)),"number"!=typeof a.selected&&this.lis.filter(".ui-tabs-selected").length&&(a.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),a.selected=a.selected||(this.lis.length?0:-1)):null===a.selected&&(a.selected=-1),a.selected=0<=a.selected&&this.anchors[a.selected]||a.selected<0?a.selected:0,a.disabled=p.unique(a.disabled.concat(p.map(this.lis.filter(".ui-state-disabled"),function(t,e){return o.lis.index(t)}))).sort(),-1!=p.inArray(a.selected,a.disabled)&&a.disabled.splice(p.inArray(a.selected,a.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),0<=a.selected&&this.anchors.length&&(o.element.find(o._sanitizeSelector(o.anchors[a.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(a.selected).addClass("ui-tabs-selected ui-state-active"),o.element.queue("tabs",function(){o._trigger("show",null,o._ui(o.anchors[a.selected],o.element.find(o._sanitizeSelector(o.anchors[a.selected].hash))[0]))}),this.load(a.selected)),p(window).bind("unload",function(){o.lis.add(o.anchors).unbind(".tabs"),o.lis=o.anchors=o.panels=null})):a.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[a.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),a.cookie&&this._cookie(a.selected,a.cookie);for(var e,i,s,n,l,h=0;e=this.lis[h];h++)p(e)[-1==p.inArray(h,a.disabled)||p(e).hasClass("ui-tabs-selected")?"removeClass":"addClass"]("ui-state-disabled");function c(t,e){t.css("display",""),!p.support.opacity&&e.opacity&&t[0].style.removeAttribute("filter")}!1===a.cache&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs"),"mouseover"!==a.event&&(i=function(t,e){e.is(":not(.ui-state-disabled)")&&e.addClass("ui-state-"+t)},s=function(t,e){e.removeClass("ui-state-"+t)},this.lis.bind("mouseover.tabs",function(){i("hover",p(this))}),this.lis.bind("mouseout.tabs",function(){s("hover",p(this))}),this.anchors.bind("focus.tabs",function(){i("focus",p(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){s("focus",p(this).closest("li"))})),a.fx&&(p.isArray(a.fx)?(n=a.fx[0],l=a.fx[1]):n=l=a.fx);var d=l?function(t,e){p(t).closest("li").addClass("ui-tabs-selected ui-state-active"),e.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){c(e,l),o._trigger("show",null,o._ui(t,e[0]))})}:function(t,e){p(t).closest("li").addClass("ui-tabs-selected ui-state-active"),e.removeClass("ui-tabs-hide"),o._trigger("show",null,o._ui(t,e[0]))},u=n?function(t,e){e.animate(n,n.duration||"normal",function(){o.lis.removeClass("ui-tabs-selected ui-state-active"),e.addClass("ui-tabs-hide"),c(e,n),o.element.dequeue("tabs")})}:function(t,e,i){o.lis.removeClass("ui-tabs-selected ui-state-active"),e.addClass("ui-tabs-hide"),o.element.dequeue("tabs")};this.anchors.bind(a.event+".tabs",function(){var t=this,e=p(t).closest("li"),i=o.panels.filter(":not(.ui-tabs-hide)"),s=o.element.find(o._sanitizeSelector(t.hash));if(e.hasClass("ui-tabs-selected")&&!a.collapsible||e.hasClass("ui-state-disabled")||e.hasClass("ui-state-processing")||o.panels.filter(":animated").length||!1===o._trigger("select",null,o._ui(this,s[0])))return this.blur(),!1;if(a.selected=o.anchors.index(this),o.abort(),a.collapsible){if(e.hasClass("ui-tabs-selected"))return a.selected=-1,a.cookie&&o._cookie(a.selected,a.cookie),o.element.queue("tabs",function(){u(t,i)}).dequeue("tabs"),this.blur(),!1;if(!i.length)return a.cookie&&o._cookie(a.selected,a.cookie),o.element.queue("tabs",function(){d(t,s)}),o.load(o.anchors.index(this)),this.blur(),!1}if(a.cookie&&o._cookie(a.selected,a.cookie),!s.length)throw"jQuery UI Tabs: Mismatching fragment identifier.";i.length&&o.element.queue("tabs",function(){u(t,i)}),o.element.queue("tabs",function(){d(t,s)}),o.load(o.anchors.index(this)),p.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+t+"']")):t},destroy:function(){var t=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var t=p.data(this,"href.tabs"),i=(t&&(this.href=t),p(this).unbind(".tabs"));p.each(["href","load","cache"],function(t,e){i.removeData(e+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){p.data(this,"destroy.tabs")?p(this).remove():p(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),t.cookie&&this._cookie(null,t.cookie),this},add:function(t,e,i){void 0===i&&(i=this.anchors.length);var s=this,n=this.options,e=p(n.tabTemplate.replace(/#\{href\}/g,t).replace(/#\{label\}/g,e)),t=t.indexOf("#")?this._tabId(p("a",e)[0]):t.replace("#",""),o=(e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0),s.element.find("#"+t));return(o=o.length?o:p(n.panelTemplate).attr("id",t).data("destroy.tabs",!0)).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),i>=this.lis.length?(e.appendTo(this.list),o.appendTo(this.list[0].parentNode)):(e.insertBefore(this.lis[i]),o.insertBefore(this.panels[i])),n.disabled=p.map(n.disabled,function(t,e){return i<=t?++t:t}),this._tabify(),1==this.anchors.length&&(n.selected=0,e.addClass("ui-tabs-selected ui-state-active"),o.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){s._trigger("show",null,s._ui(s.anchors[0],s.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(i){i=this._getIndex(i);var t=this.options,e=this.lis.eq(i).remove(),s=this.panels.eq(i).remove();return e.hasClass("ui-tabs-selected")&&1>10|55296,1023&e|56320))}function M(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function I(){T()}var e,p,b,o,F,d,W,$,w,u,l,T,C,n,S,h,r,i,g,E="sizzle"+ +new Date,c=R.document,k=0,B=0,_=q(),z=q(),U=q(),y=q(),X=function(e,t){return e===t&&(l=!0),0},V={}.hasOwnProperty,t=[],G=t.pop,Y=t.push,A=t.push,Q=t.slice,v=function(e,t){for(var n=0,r=e.length;n+~]|"+s+")"+s+"*"),re=new RegExp(s+"|>"),ie=new RegExp(Z),oe=new RegExp("^"+a+"$"),x={ID:new RegExp("^#("+a+")"),CLASS:new RegExp("^\\.("+a+")"),TAG:new RegExp("^("+a+"|[*])"),ATTR:new RegExp("^"+K),PSEUDO:new RegExp("^"+Z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+s+"*(even|odd|(([+-]|)(\\d*)n|)"+s+"*(?:([+-]|)"+s+"*(\\d+)|))"+s+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+s+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+s+"*((?:-\\d)?\\d*)"+s+"*\\)|)(?=[^-]|$)","i")},se=/HTML$/i,ae=/^(?:input|select|textarea|button)$/i,ue=/^h\d$/i,N=/^[^{]+\{\s*\[native \w/,le=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ce=/[+~]/,j=new RegExp("\\\\[\\da-fA-F]{1,6}"+s+"?|\\\\([^\\r\\n\\f])","g"),fe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,pe=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{A.apply(t=Q.call(c.childNodes),c.childNodes),t[c.childNodes.length].nodeType}catch(e){A={apply:t.length?function(e,t){Y.apply(e,Q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function D(t,e,n,r){var i,o,s,a,u,l,c=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&(T(e),e=e||C,S)){if(11!==f&&(a=le.exec(t)))if(i=a[1]){if(9===f){if(!(l=e.getElementById(i)))return n;if(l.id===i)return n.push(l),n}else if(c&&(l=c.getElementById(i))&&g(e,l)&&l.id===i)return n.push(l),n}else{if(a[2])return A.apply(n,e.getElementsByTagName(t)),n;if((i=a[3])&&p.getElementsByClassName&&e.getElementsByClassName)return A.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!y[t+" "]&&(!h||!h.test(t))&&(1!==f||"object"!==e.nodeName.toLowerCase())){if(l=t,c=e,1===f&&(re.test(t)||ne.test(t))){for((c=ce.test(t)&&ye(e.parentNode)||e)===e&&p.scope||((s=e.getAttribute("id"))?s=s.replace(fe,M):e.setAttribute("id",s=E)),o=(u=d(t)).length;o--;)u[o]=(s?"#"+s:":scope")+" "+P(u[o]);l=u.join(",")}try{if(p.cssSupportsSelector&&!CSS.supports("selector(:is("+l+"))"))throw new Error;return A.apply(n,c.querySelectorAll(l)),n}catch(e){y(t,!0)}finally{s===E&&e.removeAttribute("id")}}}return $(t.replace(m,"$1"),e,n,r)}function q(){var n=[];function r(e,t){return n.push(e+" ")>b.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function L(e){return e[E]=!0,e}function H(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function de(e,t){for(var n=e.split("|"),r=n.length;r--;)b.attrHandle[n[r]]=t}function he(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&pe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function O(s){return L(function(o){return o=+o,L(function(e,t){for(var n,r=s([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=D.support={},F=D.isXML=function(e){var t=e&&e.namespaceURI,e=e&&(e.ownerDocument||e).documentElement;return!se.test(t||e&&e.nodeName||"HTML")},T=D.setDocument=function(e){var e=e?e.ownerDocument||e:c;return e!=C&&9===e.nodeType&&e.documentElement&&(n=(C=e).documentElement,S=!F(C),c!=C&&(e=C.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",I,!1):e.attachEvent&&e.attachEvent("onunload",I)),p.scope=H(function(e){return n.appendChild(e).appendChild(C.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.cssSupportsSelector=H(function(){return CSS.supports("selector(*)")&&C.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),p.attributes=H(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=H(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=N.test(C.getElementsByClassName),p.getById=H(function(e){return n.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),p.getById?(b.filter.ID=function(e){var t=e.replace(j,f);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&S)return(t=t.getElementById(e))?[t]:[]}):(b.filter.ID=function(e){var t=e.replace(j,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},b.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},r=[],h=[],(p.qsa=N.test(C.querySelectorAll))&&(H(function(e){var t;n.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&h.push("[*^$]="+s+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||h.push("\\["+s+"*(?:value|"+J+")"),e.querySelectorAll("[id~="+E+"-]").length||h.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||h.push("\\["+s+"*name"+s+"*="+s+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||h.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||h.push(".#.+[+~]"),e.querySelectorAll("\\\f"),h.push("[\\r\\n\\f]")}),H(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&h.push("name"+s+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&h.push(":enabled",":disabled"),n.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(p.matchesSelector=N.test(i=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.oMatchesSelector||n.msMatchesSelector))&&H(function(e){p.disconnectedMatch=i.call(e,"*"),i.call(e,"[s!='']:x"),r.push("!=",Z)}),p.cssSupportsSelector||h.push(":has"),h=h.length&&new RegExp(h.join("|")),r=r.length&&new RegExp(r.join("|")),e=N.test(n.compareDocumentPosition),g=e||N.test(n.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},X=e?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==c&&g(c,e)?-1:t==C||t.ownerDocument==c&&g(c,t)?1:u?v(u,e)-v(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?v(u,e)-v(u,t):0;if(i===o)return he(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[r]===a[r];)r++;return r?he(s[r],a[r]):s[r]==c?-1:a[r]==c?1:0}),C},D.matches=function(e,t){return D(e,null,null,t)},D.matchesSelector=function(e,t){if(T(e),p.matchesSelector&&S&&!y[t+" "]&&(!r||!r.test(t))&&(!h||!h.test(t)))try{var n=i.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){y(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(j,f),e[3]=(e[3]||e[4]||e[5]||"").replace(j,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||D.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&D.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return x.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ie.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(j,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+s+")"+e+"("+s+"|$)"))&&_(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=D.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function K(e,n,r){return v(n)?C.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?C.grep(e,function(e){return e===n!==r}):"string"!=typeof n?C.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/,te=((C.fn.init=function(e,t,n){if(!e)return this;if(n=n||Z,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(C):C.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:ee.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:T,!0)),J.test(r[1])&&C.isPlainObject(t))for(var r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(n=T.getElementById(r[2]))&&(this[0]=n,this.length=1),this}).prototype=C.fn,Z=C(T),/^(?:parents|prev(?:Until|All))/),ne={children:!0,contents:!0,next:!0,prev:!0};function re(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i,N=(L=T.createDocumentFragment().appendChild(T.createElement("div")),(o=T.createElement("input")).setAttribute("type","radio"),o.setAttribute("checked","checked"),o.setAttribute("name","t"),L.appendChild(o),y.checkClone=L.cloneNode(!0).cloneNode(!0).lastChild.checked,L.innerHTML="",y.noCloneChecked=!!L.cloneNode(!0).lastChild.defaultValue,L.innerHTML="",y.option=!!L.lastChild,{thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]});function j(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&u(e,t)?C.merge([e],n):n}function Se(e,t){for(var n=0,r=e.length;n",""]);var Ee=/<|&#?\w+;/;function ke(e,t,n,r,i){for(var o,s,a,u,l,c=t.createDocumentFragment(),f=[],p=0,d=e.length;p\s*$/g;function Oe(e,t){return u(e,"table")&&u(11!==t.nodeType?t:t.firstChild,"tr")&&C(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o;if(1===t.nodeType){if(b.hasData(e)&&(o=b.get(e).events))for(i in b.remove(t,"handle events"),o)for(n=0,r=o[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),T.head.appendChild(r[0])},abort:function(){i&&i()}}}),[]),Qt=/(=)\?(?=&|$)|\?\?/,Jt=(C.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||C.expando+"_"+Nt.guid++;return this[e]=!0,e}}),C.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,s=!1!==e.jsonp&&(Qt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(e.data)&&"data");if(s||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Qt,"$1"+r):!1!==e.jsonp&&(e.url+=(jt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||C.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=w[r],w[r]=function(){o=arguments},n.always(function(){void 0===i?C(w).removeProp(r):w[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Yt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((o=T.implementation.createHTMLDocument("").body).innerHTML="
      ",2===o.childNodes.length),C.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=T.implementation.createHTMLDocument("")).createElement("base")).href=T.location.href,t.head.appendChild(r)):t=T),r=!n&&[],(n=J.exec(e))?[t.createElement(n[1])]:(n=ke([e],t,r),r&&r.length&&C(r).remove(),C.merge([],n.childNodes)));var r},C.fn.load=function(e,t,n){var r,i,o,s=this,a=e.indexOf(" ");return-1").append(C.parseHTML(e)).find(r):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},C.expr.pseudos.animated=function(t){return C.grep(C.timers,function(e){return t===e.elem}).length},C.offset={setOffset:function(e,t,n){var r,i,o,s,a=C.css(e,"position"),u=C(e),l={};"static"===a&&(e.style.position="relative"),o=u.offset(),r=C.css(e,"top"),s=C.css(e,"left"),a=("absolute"===a||"fixed"===a)&&-1<(r+s).indexOf("auto")?(i=(a=u.position()).top,a.left):(i=parseFloat(r)||0,parseFloat(s)||0),null!=(t=v(t)?t.call(e,n,C.extend({},o)):t).top&&(l.top=t.top-o.top+i),null!=t.left&&(l.left=t.left-o.left+a),"using"in t?t.using.call(e,l):u.css(l)}},C.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){C.offset.setOffset(this,t,e)});var e,n=this[0];return n?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===C.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===C.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=C(e).offset()).top+=C.css(e,"borderTopWidth",!0),i.left+=C.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-C.css(r,"marginTop",!0),left:t.left-i.left-C.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===C.css(e,"position");)e=e.offsetParent;return e||E})}}),C.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;C.fn[t]=function(e){return f(this,function(e,t,n){var r;if(g(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),C.each(["top","left"],function(e,n){C.cssHooks[n]=tt(y.pixelPosition,function(e,t){if(t)return t=et(e,n),Ge.test(t)?C(e).position()[n]+"px":t})}),C.each({Height:"height",Width:"width"},function(s,a){C.each({padding:"inner"+s,content:a,"":"outer"+s},function(r,o){C.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return f(this,function(e,t,n){var r;return g(e)?0===o.indexOf("outer")?e["inner"+s]:e.document.documentElement["client"+s]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+s],r["scroll"+s],e.body["offset"+s],r["offset"+s],r["client"+s])):void 0===n?C.css(e,t,i):C.style(e,t,n,i)},a,n?e:void 0,n)}})}),C.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){C.fn[t]=function(e){return this.on(t,e)}}),C.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),C.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){C.fn[n]=function(e,t){return 0(e=e||"").length)&&e.substring(0,n.length)===n},jc:function(e,n){if(e===n)return!0;if(11===e.nodeType)return!1;if(n.contains)return n.contains(3===e.nodeType?e.parentNode:e);if(n.compareDocumentPosition)return 16==(16&n.compareDocumentPosition(e));for(;e&&e!=n;)e=e.parentNode;return!!e},Qa:function(e){return D.a.jc(e,e.ownerDocument.documentElement)},tb:function(e){return!!D.a.vb(e,D.a.Qa)},v:function(e){return e&&e.tagName&&e.tagName.toLowerCase()},n:function(n,e,t){var a=i&&q[e];if(!a&&Re)Re(n).bind(e,t);else if(a||"function"!=typeof n.addEventListener){if(void 0===n.attachEvent)throw Error("Browser doesn't support addEventListener or attachEvent");function r(e){t.call(n,e)}var o="on"+e;n.attachEvent(o,r),D.a.C.fa(n,function(){n.detachEvent(o,r)})}else n.addEventListener(e,t,!1)},qa:function(e,n){if(!e||!e.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var t=!("input"!==D.a.v(e)||!e.type||"click"!=n.toLowerCase())&&("checkbox"==(t=e.type)||"radio"==t);if(Re&&!t)Re(e).trigger(n);else if("function"==typeof Le.createEvent){if("function"!=typeof e.dispatchEvent)throw Error("The supplied element doesn't support dispatchEvent");(t=Le.createEvent(r[n]||"HTMLEvents")).initEvent(n,!0,!0,Ie,0,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(t)}else if(t&&e.click)e.click();else{if(void 0===e.fireEvent)throw Error("Browser doesn't support triggering events");e.fireEvent("on"+n)}},c:function(e){return D.F(e)?e():e},cb:function(e){return D.F(e)?e.B():e},Ia:function(n,e,t){var a;e&&("object"==typeof n.classList?(a=n.classList[t?"add":"remove"],D.a.o(e.match(o),function(e){a.call(n.classList,e)})):"string"==typeof n.className.baseVal?H(n.className,"baseVal",e,t):H(n,"className",e,t))},Ha:function(e,n){var n=D.a.c(n),t=(null!==n&&n!==Fe||(n=""),D.e.firstChild(e));!t||3!=t.nodeType||D.e.nextSibling(t)?D.e.T(e,[e.ownerDocument.createTextNode(n)]):t.data=n,D.a.mc(e)},Rb:function(e,n){if(e.name=n,i<=7)try{e.mergeAttributes(Le.createElement(""),!1)}catch(e){}},mc:function(e){9<=i&&((e=1==e.nodeType?e:e.parentNode).style&&(e.style.zoom=e.style.zoom))},kc:function(e){var n;i&&(n=e.style.width,e.style.width=0,e.style.width=n)},Bc:function(e,n){e=D.a.c(e),n=D.a.c(n);for(var t=[],a=e;a<=n;a++)t.push(a);return t},O:function(e){for(var n=[],t=0,a=e.length;t"+(r=(r.match(/^<(thead|tbody|tfoot)/)?[1,"","
      "]:!r.indexOf("",""])||(!r.indexOf("",""]||[0,"",""])[1]+e+r[2]+"";for("function"==typeof a.innerShiv?t.appendChild(a.innerShiv(n)):t.innerHTML=n;r[0]--;)t=t.lastChild;a=D.a.O(t.lastChild.childNodes)}return a},D.a.gb=function(e,n){if(D.a.Ra(e),null!==(n=D.a.c(n))&&n!==Fe)if("string"!=typeof n&&(n=n.toString()),Re)Re(e).html(n);else for(var t=D.a.ca(n,e.ownerDocument),a=0;a]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,Ne=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g,{lc:function(e,n,t){n.isTemplateRewritten(e,t)||n.rewriteTemplate(e,function(e){return D.kb.xc(e,n)},t)},xc:function(e,o){return e.replace(Ce,function(e,n,t,a,r){return De(r,n,t,o)}).replace(Ne,function(e,n){return De(n,"\x3c!-- ko --\x3e","#comment",o)})},dc:function(t,a){return D.H.$a(function(e,n){e=e.nextSibling;e&&e.nodeName.toLowerCase()===a&&D.va(e,t,n)})}}),D.b("__tr_ambtns",D.kb.dc),D.t={},D.t.l=function(e){this.l=e},D.t.l.prototype.text=function(){var e="script"===(e=D.a.v(this.l))?"text":"textarea"===e?"value":"innerHTML";if(0==arguments.length)return this.l[e];var n=arguments[0];"innerHTML"===e?D.a.gb(this.l,n):this.l[e]=n},A=D.a.f.I()+"_",D.t.l.prototype.data=function(e){if(1===arguments.length)return D.a.f.get(this.l,A+e);D.a.f.set(this.l,A+e,arguments[1])},O=D.a.f.I(),D.t.ha=function(e){this.l=e},D.t.ha.prototype=new D.t.l,D.t.ha.prototype.text=function(){var e;if(0==arguments.length)return(e=D.a.f.get(this.l,O)||{}).lb===Fe&&e.Na&&(e.lb=e.Na.innerHTML),e.lb;D.a.f.set(this.l,O,{lb:arguments[0]})},D.t.l.prototype.nodes=function(){if(0==arguments.length)return(D.a.f.get(this.l,O)||{}).Na;D.a.f.set(this.l,O,{Na:arguments[0]})},D.b("templateSources",D.t),D.b("templateSources.domElement",D.t.l),D.b("templateSources.anonymousTemplate",D.t.ha),D.hb=function(e){if(e!=Fe&&!(e instanceof D.J))throw Error("templateEngine must inherit from ko.templateEngine");M=e},D.eb=function(t,a,r,o,i){if(((r=r||{}).templateEngine||M)==Fe)throw Error("Set a template engine before calling renderTemplate");var u;return i=i||"replaceChildren",o?(u=Oe(o),D.j(function(){var e=a&&a instanceof D.N?a:new D.N(D.a.c(a)),n=je(t,e.$data,e),e=Me(o,i,n,e,r);"replaceNode"==i&&(u=Oe(o=e))},null,{Pa:function(){return!u||!D.a.Qa(u)},q:u&&"replaceNode"==i?u.parentNode:u})):D.H.$a(function(e){D.eb(t,a,r,e,"replaceNode")})},D.Cc=function(t,n,a,r,o){function i(e,n){Ae(n,c),a.afterRender&&a.afterRender(n,e),c=null}function u(e,n){return c=o.createChildContext(e,a.as,function(e){e.$index=n}),Me(null,"ignoreTargetNode",je(t,e,c),c,a)}var c;return D.j(function(){var e=D.a.c(n)||[];void 0===e.length&&(e=[e]),e=D.a.xa(e,function(e){return a.includeDestroyed||e===Fe||null===e||!D.a.c(e._destroy)}),D.k.u(D.a.fb,null,[r,e,u,a,i])},null,{q:r})},j=D.a.f.I(),D.d.template={init:function(e,n){n=D.a.c(n());if("string"==typeof n||n.name)D.e.ma(e);else{if("nodes"in n){if(n=n.nodes||[],D.F(n))throw Error('The "nodes" option must be a plain, non-observable array.')}else n=D.e.childNodes(e);n=D.a.Jb(n),new D.t.ha(e).nodes(n)}return{controlsDescendantBindings:!0}},update:function(e,n,t,a,r){var o,i=n();t=!0,a=null,"string"==typeof(n=D.a.c(i))?n={}:(i=n.name,(t="if"in n?D.a.c(n.if):t)&&"ifnot"in n&&(t=!D.a.c(n.ifnot)),o=D.a.c(n.data)),"foreach"in n?a=D.Cc(i||e,t&&n.foreach||[],n,e,r):t?(r="data"in n?r.createChildContext(o,n.as):r,a=D.eb(i||e,r,n,e)):D.e.ma(e),r=a,(o=D.a.f.get(e,j))&&"function"==typeof o.p&&o.p(),D.a.f.set(e,j,r&&r.$()?r:Fe)}},D.h.ka.template=function(e){return 1==(e=D.h.bb(e)).length&&e[0].unknown||D.h.vc(e,"name")?null:"This template engine does not support anonymous templates nested within its templates"},D.e.R.template=!0,D.b("setTemplateEngine",D.hb),D.b("renderTemplate",D.eb),D.a.Cb=function(e,n,t){if(e.length&&n.length)for(var a,r,o,i,u=a=0;(!t||u"+n+"<\/script>")},0>>1;r(n[l])":">",'"':""","'":"'","`":"`"}),f=b.invert(s),j=(b.escape=t(s),b.unescape=t(f),b.result=function(n,t){var r;if(null!=n)return r=n[t],b.isFunction(r)?n[t]():r},0),x=(b.uniqueId=function(n){var t=++j+"";return n?n+t:t},b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},/(.)^/),A={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},k=/\\|'|\r|\n|\u2028|\u2029/g;b.template=function(i,n,t){n=b.defaults({},n=!n&&t?t:n,b.templateSettings);var t=RegExp([(n.escape||x).source,(n.interpolate||x).source,(n.evaluate||x).source].join("|")+"|$","g"),o=0,l="__p+='";i.replace(t,function(n,t,r,e,u){return l+=i.slice(o,u).replace(k,a),o=u+n.length,t?l+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":r?l+="'+\n((__t=("+r+"))==null?'':__t)+\n'":e&&(l+="';\n"+e+"\n__p+='"),n}),l+="';\n",l="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+(l=n.variable?l:"with(obj||{}){\n"+l+"}\n")+"return __p;\n";try{var r=new Function(n.variable||"obj","_",l)}catch(n){throw n.source=l,n}function e(n){return r.call(this,n,b)}t=n.variable||"obj";return e.source="function("+t+"){\n"+l+"}",e},b.chain=function(n){n=b(n);return n._chain=!0,n};b.mixin=function(r){b.each(b.functions(r),function(n){var t=b[n]=r[n];b.prototype[n]=function(){var n=[this._wrapped];return p.apply(n,arguments),e.call(this,t.apply(b,n))}})},b.mixin(b),b.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var r=i[t];b.prototype[t]=function(){var n=this._wrapped;return r.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],e.call(this,n)}}),b.each(["concat","join","slice"],function(n){var t=i[n];b.prototype[n]=function(){return e.call(this,t.apply(this._wrapped,arguments))}}),b.prototype.value=function(){return this._wrapped}}.call(this)},{}]},{},[])("/usr/src/app/readthedocs.org/bower_components/underscore/underscore.js")}); \ No newline at end of file diff --git a/readthedocs/static/vendor/underscore.js b/readthedocs/static/vendor/underscore.js deleted file mode 100644 index 0d265ac6c7d..00000000000 --- a/readthedocs/static/vendor/underscore.js +++ /dev/null @@ -1 +0,0 @@ -require=function e(u,i,o){function l(t,n){if(!i[t]){if(!u[t]){var r="function"==typeof require&&require;if(!n&&r)return r(t,!0);if(a)return a(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}r=i[t]={exports:{}},u[t][0].call(r.exports,function(n){return l(u[t][1][n]||n)},r,r.exports,e,u,i,o)}return i[t].exports}for(var a="function"==typeof require&&require,n=0;n>>1;r(n[l])":">",'"':""","'":"'","`":"`"}),f=b.invert(s),x=(b.escape=t(s),b.unescape=t(f),b.result=function(n,t){var r;if(null!=n)return r=n[t],b.isFunction(r)?n[t]():r},0),j=(b.uniqueId=function(n){var t=++x+"";return n?n+t:t},b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},/(.)^/),A={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},k=/\\|'|\r|\n|\u2028|\u2029/g;b.template=function(i,n,t){n=b.defaults({},n=!n&&t?t:n,b.templateSettings);var t=RegExp([(n.escape||j).source,(n.interpolate||j).source,(n.evaluate||j).source].join("|")+"|$","g"),o=0,l="__p+='";i.replace(t,function(n,t,r,e,u){return l+=i.slice(o,u).replace(k,a),o=u+n.length,t?l+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":r?l+="'+\n((__t=("+r+"))==null?'':__t)+\n'":e&&(l+="';\n"+e+"\n__p+='"),n}),l+="';\n",l="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+(l=n.variable?l:"with(obj||{}){\n"+l+"}\n")+"return __p;\n";try{var r=new Function(n.variable||"obj","_",l)}catch(n){throw n.source=l,n}function e(n){return r.call(this,n,b)}t=n.variable||"obj";return e.source="function("+t+"){\n"+l+"}",e},b.chain=function(n){n=b(n);return n._chain=!0,n};b.mixin=function(r){b.each(b.functions(r),function(n){var t=b[n]=r[n];b.prototype[n]=function(){var n=[this._wrapped];return p.apply(n,arguments),e.call(this,t.apply(b,n))}})},b.mixin(b),b.each(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var r=i[t];b.prototype[t]=function(){var n=this._wrapped;return r.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0],e.call(this,n)}}),b.each(["concat","join","slice"],function(n){var t=i[n];b.prototype[n]=function(){return e.call(this,t.apply(this._wrapped,arguments))}}),b.prototype.value=function(){return this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return b})}.call(this)},{}]},{},[]); \ No newline at end of file From 1f8bde074761a56bb4733c4c6c89c1d53e941ec7 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 12:41:13 +0200 Subject: [PATCH 4/9] Small updates to `BuildList` --- readthedocs/builds/views.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/readthedocs/builds/views.py b/readthedocs/builds/views.py index c48227c1102..e14bae84954 100644 --- a/readthedocs/builds/views.py +++ b/readthedocs/builds/views.py @@ -17,6 +17,7 @@ from readthedocs.builds.constants import BUILD_FINAL_STATES from readthedocs.builds.filters import BuildListFilter from readthedocs.builds.models import Build +from readthedocs.builds.models import Version from readthedocs.core.filters import FilterContextMixin from readthedocs.core.permissions import AdminPermission from readthedocs.core.utils import cancel_build @@ -53,6 +54,12 @@ class BuildList( ): filterset_class = BuildListFilter + def _get_versions(self, project): + return Version.internal.public( + user=self.request.user, + project=project, + ) + def get_project(self): # Call ``.get_queryset()`` to get the current project from ``kwargs`` self.get_queryset() @@ -73,11 +80,12 @@ def get_context_data(self, **kwargs): context["active_builds"] = active_builds context["versions"] = self._get_versions(self.project) - builds = self.get_filtered_queryset() + builds = self.get_queryset() context["filter"] = self.get_filterset( queryset=builds, project=self.project, ) + builds = self.get_filtered_queryset() context["build_qs"] = builds return context From f8983b05b2bbd660954c1c9aea65e2005abf26dc Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 15:07:49 +0200 Subject: [PATCH 5/9] Test: remove POST to `/projects//builds/` We deleted that endpoint and it's only done via the APIv3 now. --- readthedocs/rtd_tests/tests/test_views.py | 75 ----------------------- 1 file changed, 75 deletions(-) diff --git a/readthedocs/rtd_tests/tests/test_views.py b/readthedocs/rtd_tests/tests/test_views.py index 57965b06fcb..f5ed67f9921 100644 --- a/readthedocs/rtd_tests/tests/test_views.py +++ b/readthedocs/rtd_tests/tests/test_views.py @@ -186,16 +186,6 @@ def setUp(self): self.pip.save() self.pip.versions.update(privacy_level=PUBLIC) - @mock.patch("readthedocs.projects.tasks.builds.update_docs_task") - def test_build_redirect(self, mock): - r = self.client.post("/projects/pip/builds/", {"version_slug": "0.8.1"}) - build = Build.objects.filter(project__slug="pip").latest() - self.assertEqual(r.status_code, 302) - self.assertEqual( - r.headers["location"], - "/projects/pip/builds/%s/" % build.pk, - ) - def test_build_list_includes_external_versions(self): external_version = get( Version, @@ -213,71 +203,6 @@ def test_build_list_includes_external_versions(self): self.assertEqual(response.status_code, 200) self.assertIn(external_version_build, response.context["build_qs"]) - @mock.patch("readthedocs.projects.tasks.builds.update_docs_task") - @mock.patch("readthedocs.core.utils.cancel_build") - def test_rebuild_specific_commit(self, mock_update_docs_task, mock_cancel_build): - builds_count = Build.objects.count() - - version = self.pip.versions.first() - version.type = "external" - version.save() - - build = get( - Build, - version=version, - project=self.pip, - commit="a1b2c3", - ) - - r = self.client.post( - "/projects/pip/builds/", - { - "version_slug": version.slug, - "build_pk": build.pk, - }, - ) - - self.assertEqual(r.status_code, 302) - self.assertEqual(Build.objects.count(), builds_count + 2) - - newbuild = Build.objects.first() - self.assertEqual( - r.headers["location"], - f"/projects/pip/builds/{newbuild.pk}/", - ) - self.assertEqual(newbuild.commit, "a1b2c3") - - @mock.patch("readthedocs.projects.tasks.builds.update_docs_task") - def test_rebuild_invalid_specific_commit(self, mock): - version = self.pip.versions.first() - version.type = "external" - version.save() - - for i in range(3): - get( - Build, - version=version, - project=self.pip, - commit=f"a1b2c3-{i}", - ) - - build = Build.objects.filter( - version=version, - project=self.pip, - ).last() - - r = self.client.post( - "/projects/pip/builds/", - { - "version_slug": version.slug, - "build_pk": build.pk, - }, - ) - - # It should return 302 and show a message to the user because we are - # re-triggering a build of a non-lastest build for that version - self.assertEqual(r.status_code, 302) - @override_settings( RTD_DEFAULT_FEATURES=dict( From b21427abeaed29dd3cfedfb38c5faaa564c48556 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 16:01:01 +0200 Subject: [PATCH 6/9] Use exttheme only if it's installed --- readthedocs/settings/base.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/readthedocs/settings/base.py b/readthedocs/settings/base.py index 3619c0724dc..f440da01449 100644 --- a/readthedocs/settings/base.py +++ b/readthedocs/settings/base.py @@ -280,7 +280,6 @@ def INSTALLED_APPS(self): # noqa "readthedocs.telemetry", "readthedocs.domains", "readthedocs.invitations", - "readthedocsext.theme", # allauth "allauth", "allauth.account", @@ -303,6 +302,9 @@ def INSTALLED_APPS(self): # noqa if self.SHOW_DEBUG_TOOLBAR: apps.append("debug_toolbar") + if ext_theme: + apps.append("readthedocsext.theme") + return apps @property @@ -412,13 +414,15 @@ def MIDDLEWARE(self): @property def TEMPLATES(self): dirs = [self.TEMPLATE_ROOT] - dirs.insert( - 0, - os.path.join( - os.path.dirname(readthedocsext.theme.__file__), - "templates", - ), - ) + + if ext_theme: + dirs.insert( + 0, + os.path.join( + os.path.dirname(readthedocsext.theme.__file__), + "templates", + ), + ) # Disable ``cached.Loader`` on development # https://docs.djangoproject.com/en/4.2/ref/templates/api/#django.template.loaders.cached.Loader From 54c021f40ceadfbcdfdb00e3b22ef06856a74b63 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Tue, 8 Apr 2025 18:35:34 +0200 Subject: [PATCH 7/9] Update readthedocs/projects/urls/private.py Co-authored-by: Santos Gallegos --- readthedocs/projects/urls/private.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readthedocs/projects/urls/private.py b/readthedocs/projects/urls/private.py index c3d1857827a..d25f7c49262 100644 --- a/readthedocs/projects/urls/private.py +++ b/readthedocs/projects/urls/private.py @@ -244,7 +244,7 @@ addons_urls = [ re_path( - r"^(?P[-\w]+)/addons/edit/$$", + r"^(?P[-\w]+)/addons/edit/$", AddonsConfigUpdate.as_view(), name="projects_addons", ), From fcd84efdc3dbd71b6f522eeb9188efe5201a6a8e Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Wed, 9 Apr 2025 11:24:39 +0200 Subject: [PATCH 8/9] Remove old analytics fields --- readthedocs/projects/forms.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/readthedocs/projects/forms.py b/readthedocs/projects/forms.py index ced3e71faf6..4936d854a92 100644 --- a/readthedocs/projects/forms.py +++ b/readthedocs/projects/forms.py @@ -434,9 +434,6 @@ class Meta: # Booleans "external_builds_privacy_level", "external_builds_enabled", - # Deprecated - "analytics_code", - "analytics_disabled", "show_version_warning", ) @@ -449,9 +446,6 @@ class Meta: def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - # Remove the nullable option from the form - self.fields["analytics_disabled"].widget = forms.CheckboxInput() - self.fields["analytics_disabled"].empty_value = False # Remove empty choice from options. self.fields["versioning_scheme"].choices = [ @@ -478,10 +472,6 @@ def __init__(self, *args, **kwargs): for field in ["privacy_level", "external_builds_privacy_level"]: self.fields.pop(field) - # Remove analytics from new dashboard - for field in ["analytics_code", "analytics_disabled"]: - self.fields.pop(field) - default_choice = (None, "-" * 9) versions_choices = ( self.instance.versions(manager=INTERNAL) From 849c7e081441e977b1384d9b9555a4286c983d63 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 24 Apr 2025 18:13:39 +0200 Subject: [PATCH 9/9] Update test --- readthedocs/profiles/tests/test_views.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/readthedocs/profiles/tests/test_views.py b/readthedocs/profiles/tests/test_views.py index 1b2597273f3..c1f44c76776 100644 --- a/readthedocs/profiles/tests/test_views.py +++ b/readthedocs/profiles/tests/test_views.py @@ -30,9 +30,6 @@ from readthedocs.projects.models import Project -@pytest.mark.skipif( - not settings.RTD_EXT_THEME_ENABLED, reason="Not applicable for the old theme" -) @override_settings(GITHUB_APP_NAME="readthedocs") class TestMigrateToGitHubAppView(TestCase): def setUp(self):

      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 tYEOZmv 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 diff --git a/media/images/switch-grid-icon.png b/media/images/switch-grid-icon.png deleted file mode 100644 index 4e3583cdfa347679a88db75ba6fbd306e569bca1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`j)FbFd;%$g$s6qGD+ zjVKAuPb(=;EJ|f?Ovz75Rq)JBOiv9;O-!jQJeg_(RFvZB;uunKD=9&OwVBT#NqCNB zahlzPSq(bV=FL0DA+ny`NP0pGKf_VkiB}CDZt!S`5jP6FeLBQ^0&Ba4#veX~kM<5P zSuKvde1C{(%Z-+$9V}lW*piMf6xH0p^T%M;^L9Z74g&_E`GQr&DjPlk?PKtC^>bP0 Hl+XkK!Gl9; diff --git a/media/images/switch-list-icon.png b/media/images/switch-list-icon.png deleted file mode 100644 index 30ed0c92ff31f6d95abd94b3e28c26696c8c9c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`j)FbFd;%$g$s6qGD+ zjVKAuPb(=;EJ|f?Ovz75Rq)JBOiv9;O-!jQJeg_(RFvlF;uunKD=9&OwVBT#NqCNB zahlzPSq?4#m|wnp*>{3TXNL$=A+sQxor8G7!NngK1lj5ot{q@fisjfeMMK|T!HCbG z=Ag^lh-Is%uawf{a(LsAvT3JBPa~g7Mdibcp9Uuw9U2%JG*^mN+~E*v1KP;o>FVdQ I&MBb@0JOP59smFU diff --git a/media/javascript/base.js b/media/javascript/base.js deleted file mode 100644 index 127b9aaaaeb..00000000000 --- a/media/javascript/base.js +++ /dev/null @@ -1,129 +0,0 @@ -$(function() { - $('body') - .on('click', '.dropdown > span > a:last-child', open_dropdown) - .on('keyup', '.dropdown input[type=search]', filter_dropdown_results) - .click(hide_dropdown) - - $('select.dropdown').each(function(i, e) { build_dropdown_from_select($(e)) }) - - function open_dropdown(ev) { - console.log('open_dropdown') - ev.preventDefault() - $('.dropdown > ul').removeClass('js-open') - var el = $(ev.target) - , dropdown = el.parents('.dropdown') - - dropdown.find('li').show() - dropdown.find('ul').addClass('js-open') - dropdown.find('input[type=search]').val('').focus() - } - - function filter_dropdown_results(ev) { - console.log('is this getting called') - - var el = $(ev.target) - , dropdown = el.parents('.dropdown') - , value = this.value - - dropdown.find('li').show() - - if(value.length) { - dropdown.find('li').hide() - dropdown.find('li').filter(function(i, el) { - return ($(el).text().indexOf(value) === 0) - }).show() - el.parent().show() - } - - if(ev.keyCode === 13) { - ev.preventDefault() - var anchor = dropdown.find('li:visible > a').eq(0) - - setTimeout(function() { - anchor.click() - }) - } else if(ev.keyCode === 27) { - el.val('') - dropdown.find('li').show() - } - } - - function hide_dropdown(ev) { - if(!$(ev.target).parents('.dropdown').length) { - $('.dropdown > ul').removeClass('js-open') - } - } - - - function build_dropdown_from_select(select) { - var options = {} - , selected = null - , option_ul - , framing - - - framing = $(''+ - ''+ - '