From 5812d7bd75a5fc121dff44ed199acd5ccf55a0e0 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 18 Jun 2024 16:37:23 +0200 Subject: [PATCH 01/15] Fix type hints --- server_addon/nuke/client/ayon_nuke/api/lib.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/server_addon/nuke/client/ayon_nuke/api/lib.py b/server_addon/nuke/client/ayon_nuke/api/lib.py index 905521255f..876585bf21 100644 --- a/server_addon/nuke/client/ayon_nuke/api/lib.py +++ b/server_addon/nuke/client/ayon_nuke/api/lib.py @@ -561,7 +561,7 @@ def read_avalon_data(node): node (nuke.Node): Nuke node object Returns: - list: A list of nuke.Knob object + Dict[str, nuke.Knob]: A dictionary of knob name to nuke.Knob objects """ def compat_prefixed(knob_name): @@ -613,7 +613,7 @@ def get_node_path(path, padding=4): path (str): The path to render to. Returns: - tuple: head, padding, tail (extension) + Tuple[str, int, str]: head, padding, tail (extension) Examples: >>> get_frame_path("test.exr") @@ -957,14 +957,14 @@ def check_product_name_exists(nodes, product_name): def format_anatomy(data): - ''' Helping function for formatting of anatomy paths + """Helping function for formatting of anatomy paths Arguments: data (dict): dictionary with attributes used for formatting Return: - path (str) - ''' + str: Formatted path. + """ project_name = get_current_project_name() anatomy = Anatomy(project_name) @@ -1100,7 +1100,7 @@ def create_write_node( linked_knobs=None, **kwargs ): - ''' Creating write node which is group node + """Creating write node which is group node Arguments: name (str): name of node @@ -1134,8 +1134,8 @@ def create_write_node( Return: - node (obj): group node with avalon data as Knobs - ''' + node (nuke.Node): group node with avalon data as Knobs + """ # Ensure name does not contain any invalid characters. special_chars = re.escape("!@#$%^&*()=[]{}|\\;',.<>/?~+-") special_chars_regex = re.compile(f"[{special_chars}]") @@ -1402,6 +1402,9 @@ def create_backdrop(label="", color=None, layer=0, label (str): the message nodes (list): list of nodes to be wrapped into backdrop + Returns: + nuke.Node: The created backdrop node. + """ assert isinstance(nodes, list), "`nodes` should be a list of nodes" From 54f9e2698791d471e5306fe0f5beb5019c42a485 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 18 Jun 2024 16:37:54 +0200 Subject: [PATCH 02/15] Cosmetics --- server_addon/nuke/client/ayon_nuke/api/lib.py | 53 ++++++++----------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/server_addon/nuke/client/ayon_nuke/api/lib.py b/server_addon/nuke/client/ayon_nuke/api/lib.py index 876585bf21..6caaed3801 100644 --- a/server_addon/nuke/client/ayon_nuke/api/lib.py +++ b/server_addon/nuke/client/ayon_nuke/api/lib.py @@ -655,8 +655,7 @@ def get_nuke_imageio_settings(): def get_imageio_node_setting(node_class, plugin_name, product_name): - ''' Get preset data for dataflow (fileType, compression, bitDepth) - ''' + """Get preset data for dataflow (fileType, compression, bitDepth)""" imageio_nodes = get_nuke_imageio_settings()["nodes"] required_nodes = imageio_nodes["required_nodes"] @@ -686,8 +685,8 @@ def get_imageio_node_setting(node_class, plugin_name, product_name): def get_imageio_node_override_setting( node_class, plugin_name, product_name, knobs_settings ): - ''' Get imageio node overrides from settings - ''' + """ Get imageio node overrides from settings + """ imageio_nodes = get_nuke_imageio_settings()["nodes"] override_nodes = imageio_nodes["override_nodes"] @@ -745,8 +744,7 @@ def get_imageio_node_override_setting( def get_imageio_input_colorspace(filename): - ''' Get input file colorspace based on regex in settings. - ''' + """Get input file colorspace based on regex in settings.""" imageio_regex_inputs = ( get_nuke_imageio_settings()["regex_inputs"]["inputs"]) @@ -791,8 +789,7 @@ def get_view_process_node(): def on_script_load(): - ''' Callback for ffmpeg support - ''' + """Callback for ffmpeg support""" if nuke.env["LINUX"]: nuke.tcl('load ffmpegReader') nuke.tcl('load ffmpegWriter') @@ -815,7 +812,7 @@ def check_inventory_versions(): # get all Loader nodes by avalon attribute metadata node_with_repre_id = [] repre_ids = set() - # Find all containers and collect it's node and representation ids + # Find all containers and collect its node and representation ids for node in nuke.allNodes(): container = parse_container(node) @@ -896,8 +893,7 @@ def check_inventory_versions(): def writes_version_sync(): - ''' Callback synchronizing version of publishable write nodes - ''' + """Callback synchronizing version of publishable write nodes""" try: rootVersion = get_version_from_path(nuke.root().name()) padding = len(rootVersion) @@ -934,8 +930,7 @@ def writes_version_sync(): def version_up_script(): - ''' Raising working script's version - ''' + """Raising working script's version""" import nukescripts nukescripts.script_and_write_nodes_version_up() @@ -996,9 +991,8 @@ def format_anatomy(data): return anatomy.format(data) -def script_name(): - ''' Returns nuke script path - ''' +def script_name() -> str: + """Returns nuke script path""" return nuke.root().knob("name").value() @@ -1300,7 +1294,7 @@ def create_write_node( def set_node_knobs_from_settings(node, knob_settings, **kwargs): - """ Overriding knob values from settings + """Overriding knob values from settings Using `schema_nuke_knob_inputs` for knob type definitions. @@ -1393,8 +1387,7 @@ def color_gui_to_int(color_gui): def create_backdrop(label="", color=None, layer=0, nodes=None): - """ - Create Backdrop node + """Create Backdrop node Arguments: color (str): nuke compatible string with color code @@ -1494,12 +1487,12 @@ def get_nodes(self, nodes=None, nodes_filter=None): return [n for n in self._nodes if filter in n.Class()] def set_viewers_colorspace(self, imageio_nuke): - ''' Adds correct colorspace to viewer + """Adds correct colorspace to viewer Arguments: imageio_nuke (dict): nuke colorspace configurations - ''' + """ filter_knobs = [ "viewerProcess", "wipe_position", @@ -1563,12 +1556,12 @@ def _display_and_view_formatted(self, view_profile): return StringTemplate(display_view).format_strict(self.formatting_data) def set_root_colorspace(self, imageio_host): - ''' Adds correct colorspace to root + """Adds correct colorspace to root Arguments: imageio_host (dict): host colorspace configurations - ''' + """ config_data = get_current_context_imageio_config_preset() workfile_settings = imageio_host["workfile"] @@ -1822,9 +1815,8 @@ def _replace_ocio_path_with_env_var(self, config_data): return new_path def set_writes_colorspace(self): - ''' Adds correct colorspace to write node dict - - ''' + """ Adds correct colorspace to write node dict + """ for node in nuke.allNodes(filter="Group", group=self._root_node): log.info("Setting colorspace to `{}`".format(node.name())) @@ -1946,8 +1938,8 @@ def set_reads_colorspace(self, read_clrs_inputs): knobs["to"])) def set_colorspace(self): - ''' Setting colorspace following presets - ''' + """ Setting colorspace following presets + """ # get imageio nuke_colorspace = get_nuke_imageio_settings() @@ -2155,9 +2147,8 @@ def set_favorites(self): def get_write_node_template_attr(node): - ''' Gets all defined data from presets - - ''' + """ Gets all defined data from presets + """ # TODO: add identifiers to settings and rename settings key plugin_names_mapping = { From 2a49064c0b1b4dec0379e1f379ef496be367520f Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 20 Jun 2024 12:27:27 +0200 Subject: [PATCH 03/15] Integrate Hero Version: Disable usage of hardlinks - but allow enabling via settings --- .../plugins/publish/integrate_hero_version.py | 32 +++++++++++-------- server/settings/publish_plugins.py | 11 ++++++- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/client/ayon_core/plugins/publish/integrate_hero_version.py b/client/ayon_core/plugins/publish/integrate_hero_version.py index 8c36719b77..95b9f418f9 100644 --- a/client/ayon_core/plugins/publish/integrate_hero_version.py +++ b/client/ayon_core/plugins/publish/integrate_hero_version.py @@ -87,7 +87,9 @@ class IntegrateHeroVersion( ] # QUESTION/TODO this process should happen on server if crashed due to # permissions error on files (files were used or user didn't have perms) - # *but all other plugins must be sucessfully completed + # *but all other plugins must be successfully completed + + use_hardlinks = False def process(self, instance): if not self.is_active(instance.data): @@ -621,19 +623,21 @@ def copy_file(self, src_path, dst_path): src_path, dst_path )) - # First try hardlink and copy if paths are cross drive - try: - create_hard_link(src_path, dst_path) - # Return when successful - return - - except OSError as exc: - # re-raise exception if different than - # EXDEV - cross drive path - # EINVAL - wrong format, must be NTFS - self.log.debug("Hardlink failed with errno:'{}'".format(exc.errno)) - if exc.errno not in [errno.EXDEV, errno.EINVAL]: - raise + if self.use_hardlinks: + # First try hardlink and copy if paths are cross drive + try: + create_hard_link(src_path, dst_path) + # Return when successful + return + + except OSError as exc: + # re-raise exception if different than + # EXDEV - cross drive path + # EINVAL - wrong format, must be NTFS + self.log.debug( + "Hardlink failed with errno:'{}'".format(exc.errno)) + if exc.errno not in [errno.EXDEV, errno.EINVAL]: + raise shutil.copy(src_path, dst_path) diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index b37be1afe6..1b3d382f01 100644 --- a/server/settings/publish_plugins.py +++ b/server/settings/publish_plugins.py @@ -743,6 +743,14 @@ class IntegrateHeroVersionModel(BaseSettingsModel): optional: bool = SettingsField(False, title="Optional") active: bool = SettingsField(True, title="Active") families: list[str] = SettingsField(default_factory=list, title="Families") + use_hardlinks: bool = SettingsField( + False, title="Use Hardlinks", + description="When enabled first try to make a hardlink of the version " + "instead of a copy. This helps reduce disk usage, but may " + "create issues.\nFor example there are known issues on " + "Windows being unable to delete any of the hardlinks if " + "any of the links is in use creating issues with updating " + "hero versions.") class CleanUpModel(BaseSettingsModel): @@ -1136,7 +1144,8 @@ class PublishPuginsModel(BaseSettingsModel): "layout", "mayaScene", "simpleUnrealTexture" - ] + ], + "use_hardlinks": False }, "CleanUp": { "paterns": [], From 0ab3653f360e530402d17bc1c78fbeea4f2cd9fd Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 24 Jun 2024 10:45:33 +0200 Subject: [PATCH 04/15] Report whether it's hardlinking or copying; also report whether hardlinking failed. --- .../plugins/publish/integrate_hero_version.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/client/ayon_core/plugins/publish/integrate_hero_version.py b/client/ayon_core/plugins/publish/integrate_hero_version.py index 95b9f418f9..4fb8b886a9 100644 --- a/client/ayon_core/plugins/publish/integrate_hero_version.py +++ b/client/ayon_core/plugins/publish/integrate_hero_version.py @@ -619,12 +619,11 @@ def copy_file(self, src_path, dst_path): self.log.debug("Folder already exists: \"{}\"".format(dirname)) - self.log.debug("Copying file \"{}\" to \"{}\"".format( - src_path, dst_path - )) - if self.use_hardlinks: # First try hardlink and copy if paths are cross drive + self.log.debug("Hardlinking file \"{}\" to \"{}\"".format( + src_path, dst_path + )) try: create_hard_link(src_path, dst_path) # Return when successful @@ -639,6 +638,13 @@ def copy_file(self, src_path, dst_path): if exc.errno not in [errno.EXDEV, errno.EINVAL]: raise + self.log.debug( + "Hardlinking failed, falling back to regular copy...") + + self.log.debug("Copying file \"{}\" to \"{}\"".format( + src_path, dst_path + )) + shutil.copy(src_path, dst_path) def version_from_representations(self, project_name, repres): From fceb1330b4ccf3eb3e8a17c49aae6916a4f31985 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 26 Jun 2024 17:32:40 +0200 Subject: [PATCH 05/15] remove aftereffects addon --- server_addon/aftereffects/LICENSE | 202 --- server_addon/aftereffects/README.md | 4 - .../client/ayon_aftereffects/__init__.py | 15 - .../client/ayon_aftereffects/addon.py | 39 - .../client/ayon_aftereffects/api/README.md | 68 - .../client/ayon_aftereffects/api/__init__.py | 46 - .../ayon_aftereffects/api/extension.zxp | Bin 106275 -> 0 bytes .../ayon_aftereffects/api/extension/.debug | 31 - .../api/extension/CSXS/manifest.xml | 79 -- .../api/extension/css/boilerplate.css | 327 ----- .../api/extension/css/styles.css | 51 - .../css/topcoat-desktop-dark.min.css | 1 - .../api/extension/icons/ayon_logo.png | Bin 3538 -> 0 bytes .../api/extension/icons/iconDarkNormal.png | Bin 18659 -> 0 bytes .../api/extension/icons/iconDarkRollover.png | Bin 18663 -> 0 bytes .../api/extension/icons/iconDisabled.png | Bin 18663 -> 0 bytes .../api/extension/icons/iconNormal.png | Bin 18225 -> 0 bytes .../api/extension/icons/iconRollover.png | Bin 18664 -> 0 bytes .../api/extension/index.html | 187 --- .../api/extension/js/libs/CSInterface.js | 1193 ----------------- .../api/extension/js/libs/jquery-2.0.2.min.js | 6 - .../api/extension/js/libs/json.js | 530 -------- .../api/extension/js/libs/loglevel.min.js | 2 - .../api/extension/js/libs/wsrpc.js | 393 ------ .../api/extension/js/libs/wsrpc.min.js | 1 - .../api/extension/js/main.js | 412 ------ .../api/extension/js/themeManager.js | 128 -- .../api/extension/jsx/hostscript.jsx | 946 ------------- .../ayon_aftereffects/api/launch_logic.py | 385 ------ .../ayon_aftereffects/api/launch_script.py | 93 -- .../client/ayon_aftereffects/api/lib.py | 164 --- .../client/ayon_aftereffects/api/panel.png | Bin 16269 -> 0 bytes .../ayon_aftereffects/api/panel_failure.png | Bin 13115 -> 0 bytes .../client/ayon_aftereffects/api/pipeline.py | 286 ---- .../client/ayon_aftereffects/api/plugin.py | 12 - .../client/ayon_aftereffects/api/webserver.py | 241 ---- .../api/workfile_template_builder.py | 181 --- .../client/ayon_aftereffects/api/ws_stub.py | 732 ---------- .../hooks/pre_launch_args.py | 88 -- .../ayon_aftereffects/plugins/__init__.py | 0 .../plugins/create/create_render.py | 260 ---- .../plugins/create/workfile_creator.py | 106 -- .../plugins/load/load_background.py | 111 -- .../plugins/load/load_file.py | 119 -- .../plugins/publish/add_publish_highlight.py | 21 - .../plugins/publish/closeAE.py | 27 - .../plugins/publish/collect_audio.py | 27 - .../plugins/publish/collect_current_file.py | 18 - .../publish/collect_extension_version.py | 58 - .../plugins/publish/collect_render.py | 234 ---- .../plugins/publish/collect_review.py | 26 - .../plugins/publish/collect_workfile.py | 35 - .../plugins/publish/extract_local_render.py | 69 - .../plugins/publish/extract_save_scene.py | 16 - .../publish/help/validate_footage_items.xml | 14 - .../publish/help/validate_instance_asset.xml | 21 - .../publish/help/validate_scene_settings.xml | 37 - .../plugins/publish/increment_workfile.py | 30 - .../publish/remove_publish_highlight.py | 24 - .../plugins/publish/validate_footage_items.py | 49 - .../publish/validate_instance_asset.py | 64 - .../publish/validate_scene_settings.py | 162 --- .../workfile_build/create_placeholder.py | 51 - .../workfile_build/load_placeholder.py | 62 - .../ayon_aftereffects/resources/template.aep | Bin 52822 -> 0 bytes .../client/ayon_aftereffects/version.py | 3 - .../aftereffects/client/pyproject.toml | 6 - server_addon/aftereffects/package.py | 10 - server_addon/aftereffects/server/__init__.py | 11 - .../aftereffects/server/settings/__init__.py | 10 - .../server/settings/creator_plugins.py | 18 - .../aftereffects/server/settings/imageio.py | 63 - .../aftereffects/server/settings/main.py | 55 - .../server/settings/publish_plugins.py | 51 - .../settings/templated_workfile_build.py | 33 - .../server/settings/workfile_builder.py | 27 - 76 files changed, 8771 deletions(-) delete mode 100644 server_addon/aftereffects/LICENSE delete mode 100644 server_addon/aftereffects/README.md delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/__init__.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/addon.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/README.md delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/__init__.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension.zxp delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/.debug delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/CSXS/manifest.xml delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/boilerplate.css delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/styles.css delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/topcoat-desktop-dark.min.css delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/ayon_logo.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkNormal.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkRollover.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDisabled.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconNormal.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconRollover.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/index.html delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/CSInterface.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/jquery-2.0.2.min.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/json.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/loglevel.min.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/wsrpc.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/wsrpc.min.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/main.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/themeManager.js delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/extension/jsx/hostscript.jsx delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/lib.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/panel.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/panel_failure.png delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/plugin.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/webserver.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/__init__.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_workfile.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_footage_items.xml delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_instance_asset.xml delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_scene_settings.xml delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/resources/template.aep delete mode 100644 server_addon/aftereffects/client/ayon_aftereffects/version.py delete mode 100644 server_addon/aftereffects/client/pyproject.toml delete mode 100644 server_addon/aftereffects/package.py delete mode 100644 server_addon/aftereffects/server/__init__.py delete mode 100644 server_addon/aftereffects/server/settings/__init__.py delete mode 100644 server_addon/aftereffects/server/settings/creator_plugins.py delete mode 100644 server_addon/aftereffects/server/settings/imageio.py delete mode 100644 server_addon/aftereffects/server/settings/main.py delete mode 100644 server_addon/aftereffects/server/settings/publish_plugins.py delete mode 100644 server_addon/aftereffects/server/settings/templated_workfile_build.py delete mode 100644 server_addon/aftereffects/server/settings/workfile_builder.py diff --git a/server_addon/aftereffects/LICENSE b/server_addon/aftereffects/LICENSE deleted file mode 100644 index d645695673..0000000000 --- a/server_addon/aftereffects/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/server_addon/aftereffects/README.md b/server_addon/aftereffects/README.md deleted file mode 100644 index b2f34f3407..0000000000 --- a/server_addon/aftereffects/README.md +++ /dev/null @@ -1,4 +0,0 @@ -AfterEffects Addon -=============== - -Integration with Adobe AfterEffects. diff --git a/server_addon/aftereffects/client/ayon_aftereffects/__init__.py b/server_addon/aftereffects/client/ayon_aftereffects/__init__.py deleted file mode 100644 index e8de12e42e..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .version import __version__ -from .addon import ( - AFTEREFFECTS_ADDON_ROOT, - AfterEffectsAddon, - get_launch_script_path, -) - - -__all__ = ( - "__version__", - - "AFTEREFFECTS_ADDON_ROOT", - "AfterEffectsAddon", - "get_launch_script_path", -) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/addon.py b/server_addon/aftereffects/client/ayon_aftereffects/addon.py deleted file mode 100644 index f659eba1cb..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/addon.py +++ /dev/null @@ -1,39 +0,0 @@ -import os - -from ayon_core.addon import AYONAddon, IHostAddon - -from .version import __version__ - -AFTEREFFECTS_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) - - -class AfterEffectsAddon(AYONAddon, IHostAddon): - name = "aftereffects" - version = __version__ - host_name = "aftereffects" - - def add_implementation_envs(self, env, _app): - """Modify environments to contain all required for implementation.""" - defaults = { - "AYON_LOG_NO_COLORS": "1", - "WEBSOCKET_URL": "ws://localhost:8097/ws/" - } - for key, value in defaults.items(): - if not env.get(key): - env[key] = value - - def get_workfile_extensions(self): - return [".aep"] - - def get_launch_hook_paths(self, app): - if app.host_name != self.host_name: - return [] - return [ - os.path.join(AFTEREFFECTS_ADDON_ROOT, "hooks") - ] - - -def get_launch_script_path(): - return os.path.join( - AFTEREFFECTS_ADDON_ROOT, "api", "launch_script.py" - ) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/README.md b/server_addon/aftereffects/client/ayon_aftereffects/api/README.md deleted file mode 100644 index ca7d5b9b13..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# AfterEffects Integration - -Requirements: This extension requires use of Javascript engine, which is -available since CC 16.0. -Please check your File>Project Settings>Expressions>Expressions Engine - -## Setup - -The After Effects integration requires two components to work; `extension` and `server`. - -### Extension - -To install the extension download [Extension Manager Command Line tool (ExManCmd)](https://github.com/Adobe-CEP/Getting-Started-guides/tree/master/Package%20Distribute%20Install#option-2---exmancmd). - -``` -ExManCmd /install {path to addon}/api/extension.zxp -``` -OR -download [Anastasiy’s Extension Manager](https://install.anastasiy.com/) - -`{path to addon}` will be most likely in your AppData (on Windows, in your user data folder in Linux and MacOS.) - -### Server - -The easiest way to get the server and After Effects launch is with: - -``` -python -c ^"import ayon_core.hosts.photoshop;ayon_aftereffects.launch(""c:\Program Files\Adobe\Adobe After Effects 2020\Support Files\AfterFX.exe"")^" -``` - -`avalon.aftereffects.launch` launches the application and server, and also closes the server when After Effects exists. - -## Usage - -The After Effects extension can be found under `Window > Extensions > AYON`. Once launched you should be presented with a panel like this: - -![Ayon Panel](panel.png "Ayon Panel") - - -## Developing - -### Extension -When developing the extension you can load it [unsigned](https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_9.x/Documentation/CEP%209.0%20HTML%20Extension%20Cookbook.md#debugging-unsigned-extensions). - -When signing the extension you can use this [guide](https://github.com/Adobe-CEP/Getting-Started-guides/tree/master/Package%20Distribute%20Install#package-distribute-install-guide). - -``` -ZXPSignCmd -selfSignedCert NA NA Ayon Avalon-After-Effects Ayon extension.p12 -ZXPSignCmd -sign {path to addon}/api/extension {path to addon}/api/extension.zxp extension.p12 Ayon -``` - -### Plugin Examples - -These plugins were made with the [polly config](https://github.com/mindbender-studio/config). To fully integrate and load, you will have to use this config and add `image` to the [integration plugin](https://github.com/mindbender-studio/config/blob/master/polly/plugins/publish/integrate_asset.py). - -Expected deployed extension location on default Windows: -`c:\Program Files (x86)\Common Files\Adobe\CEP\extensions\io.ynput.AE.panel` - -For easier debugging of Javascript: -https://community.adobe.com/t5/download-install/adobe-extension-debuger-problem/td-p/10911704?page=1 -Add (optional) --enable-blink-features=ShadowDOMV0,CustomElementsV0 when starting Chrome -then localhost:8092 - -Or use Visual Studio Code https://medium.com/adobetech/extendscript-debugger-for-visual-studio-code-public-release-a2ff6161fa01 -## Resources - - https://javascript-tools-guide.readthedocs.io/introduction/index.html - - https://github.com/Adobe-CEP/Getting-Started-guides - - https://github.com/Adobe-CEP/CEP-Resources diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/__init__.py b/server_addon/aftereffects/client/ayon_aftereffects/api/__init__.py deleted file mode 100644 index b1d83c5ad9..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/__init__.py +++ /dev/null @@ -1,46 +0,0 @@ -"""Public API - -Anything that isn't defined here is INTERNAL and unreliable for external use. - -""" - -from .ws_stub import ( - get_stub, -) - -from .pipeline import ( - AfterEffectsHost, - ls, - containerise -) - -from .lib import ( - maintained_selection, - get_extension_manifest_path, - get_folder_settings, - set_settings -) - -from .plugin import ( - AfterEffectsLoader -) - - -__all__ = [ - # ws_stub - "get_stub", - - # pipeline - "AfterEffectsHost", - "ls", - "containerise", - - # lib - "maintained_selection", - "get_extension_manifest_path", - "get_folder_settings", - "set_settings", - - # plugin - "AfterEffectsLoader" -] diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension.zxp b/server_addon/aftereffects/client/ayon_aftereffects/api/extension.zxp deleted file mode 100644 index 104a5c9e997577959bd8c134fc2ac9febbb8797a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106275 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%0AgwpZPxdJJL<%ox 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 S#e4f>d#hTXdHZJo;Qs@^@2>;^ diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/.debug b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/.debug deleted file mode 100644 index 20a6713ab2..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/.debug +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/CSXS/manifest.xml b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/CSXS/manifest.xml deleted file mode 100644 index cf6ba67f44..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/CSXS/manifest.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ./index.html - ./jsx/hostscript.jsx - - - true - - - Panel - AYON - - - 200 - 100 - - - - - - ./icons/ayon_logo.png - ./icons/iconRollover.png - ./icons/iconDisabled.png - ./icons/iconDarkNormal.png - ./icons/iconDarkRollover.png - - - - - - diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/boilerplate.css b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/boilerplate.css deleted file mode 100644 index d208999b8a..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/boilerplate.css +++ /dev/null @@ -1,327 +0,0 @@ -/* - * HTML5 ✰ Boilerplate - * - * What follows is the result of much research on cross-browser styling. - * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, - * Kroc Camen, and the H5BP dev community and team. - * - * Detailed information about this CSS: h5bp.com/css - * - * ==|== normalize ========================================================== - */ - - -/* ============================================================================= - HTML5 display definitions - ========================================================================== */ - -article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display: block; } -audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } -audio:not([controls]) { display: none; } -[hidden] { display: none; } - - -/* ============================================================================= - Base - ========================================================================== */ - -/* - * 1. Correct text resizing oddly in IE6/7 when body font-size is set using em units - * 2. Force vertical scrollbar in non-IE - * 3. Prevent iOS text size adjust on device orientation change, without disabling user zoom: h5bp.com/g - */ - -html { font-size: 100%; overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } - -body { margin: 0; font-size: 100%; line-height: 1.231; } - -body, button, input, select, textarea { font-family: helvetica, arial,"lucida grande", verdana, "メイリオ", "MS Pゴシック", sans-serif; color: #222; } -/* - * Remove text-shadow in selection highlight: h5bp.com/i - * These selection declarations have to be separate - * Also: hot pink! (or customize the background color to match your design) - */ - -::selection { text-shadow: none; background-color: highlight; color: highlighttext; } - - -/* ============================================================================= - Links - ========================================================================== */ - -a { color: #00e; } -a:visited { color: #551a8b; } -a:hover { color: #06e; } -a:focus { outline: thin dotted; } - -/* Improve readability when focused and hovered in all browsers: h5bp.com/h */ -a:hover, a:active { outline: 0; } - - -/* ============================================================================= - Typography - ========================================================================== */ - -abbr[title] { border-bottom: 1px dotted; } - -b, strong { font-weight: bold; } - -blockquote { margin: 1em 40px; } - -dfn { font-style: italic; } - -hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } - -ins { background: #ff9; color: #000; text-decoration: none; } - -mark { background: #ff0; color: #000; font-style: italic; font-weight: bold; } - -/* Redeclare monospace font family: h5bp.com/j */ -pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; } - -/* Improve readability of pre-formatted text in all browsers */ -pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } - -q { quotes: none; } -q:before, q:after { content: ""; content: none; } - -small { font-size: 85%; } - -/* Position subscript and superscript content without affecting line-height: h5bp.com/k */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } -sup { top: -0.5em; } -sub { bottom: -0.25em; } - - -/* ============================================================================= - Lists - ========================================================================== */ - -ul, ol { margin: 1em 0; padding: 0 0 0 40px; } -dd { margin: 0 0 0 40px; } -nav ul, nav ol { list-style: none; list-style-image: none; margin: 0; padding: 0; } - - -/* ============================================================================= - Embedded content - ========================================================================== */ - -/* - * 1. Improve image quality when scaled in IE7: h5bp.com/d - * 2. Remove the gap between images and borders on image containers: h5bp.com/e - */ - -img { border: 0; -ms-interpolation-mode: bicubic; vertical-align: middle; } - -/* - * Correct overflow not hidden in IE9 - */ - -svg:not(:root) { overflow: hidden; } - - -/* ============================================================================= - Figures - ========================================================================== */ - -figure { margin: 0; } - - -/* ============================================================================= - Forms - ========================================================================== */ - -form { margin: 0; } -fieldset { border: 0; margin: 0; padding: 0; } - -/* Indicate that 'label' will shift focus to the associated form element */ -label { cursor: pointer; } - -/* - * 1. Correct color not inheriting in IE6/7/8/9 - * 2. Correct alignment displayed oddly in IE6/7 - */ - -legend { border: 0; *margin-left: -7px; padding: 0; } - -/* - * 1. Correct font-size not inheriting in all browsers - * 2. Remove margins in FF3/4 S5 Chrome - * 3. Define consistent vertical alignment display in all browsers - */ - -button, input, select, textarea { font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle; } - -/* - * 1. Define line-height as normal to match FF3/4 (set using !important in the UA stylesheet) - */ - -button, input { line-height: normal; } - -/* - * 1. Display hand cursor for clickable form elements - * 2. Allow styling of clickable form elements in iOS - * 3. Correct inner spacing displayed oddly in IE7 (doesn't effect IE6) - */ - -button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; -webkit-appearance: button; *overflow: visible; } - -/* - * Consistent box sizing and appearance - */ - -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; padding: 0; } -input[type="search"] { -webkit-appearance: textfield; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; box-sizing: content-box; } -input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/* - * Remove inner padding and border in FF3/4: h5bp.com/l - */ - -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/* - * 1. Remove default vertical scrollbar in IE6/7/8/9 - * 2. Allow only vertical resizing - */ - -textarea { overflow: auto; vertical-align: top; resize: vertical; } - -/* Colors for form validity */ -input:valid, textarea:valid { } -input:invalid, textarea:invalid { background-color: #f0dddd; } - - -/* ============================================================================= - Tables - ========================================================================== */ - -table { border-collapse: collapse; border-spacing: 0; } -td { vertical-align: top; } - - -/* ==|== primary styles ===================================================== - Author: - ========================================================================== */ - -/* ==|== media queries ====================================================== - PLACEHOLDER Media Queries for Responsive Design. - These override the primary ('mobile first') styles - Modify as content requires. - ========================================================================== */ - -@media only screen and (min-width: 480px) { - /* Style adjustments for viewports 480px and over go here */ - -} - -@media only screen and (min-width: 768px) { - /* Style adjustments for viewports 768px and over go here */ - -} - - - -/* ==|== non-semantic helper classes ======================================== - Please define your styles before this section. - ========================================================================== */ - -/* For image replacement */ -.ir { display: block; border: 0; text-indent: -999em; overflow: hidden; background-color: transparent; background-repeat: no-repeat; text-align: left; direction: ltr; } -.ir br { display: none; } - -/* Hide from both screenreaders and browsers: h5bp.com/u */ -.hidden { display: none !important; visibility: hidden; } - -/* Hide only visually, but have it available for screenreaders: h5bp.com/v */ -.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } - -/* Extends the .visuallyhidden class to allow the element to be focusable when navigated to via the keyboard: h5bp.com/p */ -.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; } - -/* Hide visually and from screenreaders, but maintain layout */ -.invisible { visibility: hidden; } - -/* Contain floats: h5bp.com/q */ -.clearfix:before, .clearfix:after { content: ""; display: table; } -.clearfix:after { clear: both; } -.clearfix { *zoom: 1; } - - - -/* ==|== print styles ======================================================= - Print styles. - Inlined to avoid required HTTP connection: h5bp.com/r - ========================================================================== */ - -@media print { - * { background: transparent !important; color: black !important; box-shadow:none !important; text-shadow: none !important; filter:none !important; -ms-filter: none !important; } /* Black prints faster: h5bp.com/s */ - a, a:visited { text-decoration: underline; } - a[href]:after { content: " (" attr(href) ")"; } - abbr[title]:after { content: " (" attr(title) ")"; } - .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */ - pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } - table { display: table-header-group; } /* h5bp.com/t */ - tr, img { page-break-inside: avoid; } - img { max-width: 100% !important; } - @page { margin: 0.5cm; } - p, h2, h3 { orphans: 3; widows: 3; } - h2, h3 { page-break-after: avoid; } -} - -/* reflow reset for -webkit-margin-before: 1em */ -p { margin: 0; } - -html { - overflow-y: auto; - background-color: transparent; - height: 100%; -} - -body { - background: #fff; - font: normal 100%; - position: relative; - height: 100%; -} - -body, div, img, p, button, input, select, textarea { - box-sizing: border-box; -} - -.image { - display: block; -} - -input { - cursor: default; - display: block; -} - -input[type=button] { - background-color: #e5e9e8; - border: 1px solid #9daca9; - border-radius: 4px; - box-shadow: inset 0 1px #fff; - font: inherit; - letter-spacing: inherit; - text-indent: inherit; - color: inherit; -} - -input[type=button]:hover { - background-color: #eff1f1; -} - -input[type=button]:active { - background-color: #d2d6d6; - border: 1px solid #9daca9; - box-shadow: inset 0 1px rgba(0,0,0,0.1); -} - -/* Reset anchor styles to an unstyled default to be in parity with design surface. It - is presumed that most link styles in real-world designs are custom (non-default). */ -a, a:visited, a:hover, a:active { - color: inherit; - text-decoration: inherit; -} \ No newline at end of file diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/styles.css b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/styles.css deleted file mode 100644 index c9cf2b93ac..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/styles.css +++ /dev/null @@ -1,51 +0,0 @@ -/*Your styles*/ - - body { - margin: 10px; -} - - -#content { - margin-right:auto; - margin-left:auto; - vertical-align:middle; - width:100%; -} - - -#btn_test{ - width: 100%; -} - - - - -/* -Those classes will be edited at runtime with values specified -by the settings of the CC application -*/ -.hostFontColor{} -.hostFontFamily{} -.hostFontSize{} - -/*font family, color and size*/ -.hostFont{} -/*background color*/ -.hostBgd{} -/*lighter background color*/ -.hostBgdLight{} -/*darker background color*/ -.hostBgdDark{} -/*background color and font*/ -.hostElt{} - - -.hostButton{ - border:1px solid; - border-radius:2px; - height:20px; - vertical-align:bottom; - font-family:inherit; - color:inherit; - font-size:inherit; -} \ No newline at end of file diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/topcoat-desktop-dark.min.css b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/topcoat-desktop-dark.min.css deleted file mode 100644 index 6b479def43..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/topcoat-desktop-dark.min.css +++ /dev/null @@ -1 +0,0 @@ -.button-bar{display:table;table-layout:fixed;white-space:nowrap;margin:0;padding:0}.button-bar__item{display:table-cell;width:auto;border-radius:0}.button-bar__item>input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.button-bar__button{border-radius:inherit}.button-bar__item:disabled{opacity:.3;cursor:default;pointer-events:none}.button,.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta,.topcoat-button-bar__button,.topcoat-button-bar__button--large{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-button:disabled,.topcoat-button--quiet:disabled,.topcoat-button--large:disabled,.topcoat-button--large--quiet:disabled,.topcoat-button--cta:disabled,.topcoat-button--large--cta:disabled,.topcoat-button-bar__button:disabled,.topcoat-button-bar__button--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta,.topcoat-button-bar__button,.topcoat-button-bar__button--large{padding:0 .563rem;font-size:12px;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:top;background-color:#595b5b;box-shadow:inset 0 1px #737373;border:1px solid #333434;border-radius:4px}.topcoat-button:hover,.topcoat-button--quiet:hover,.topcoat-button--large:hover,.topcoat-button--large--quiet:hover,.topcoat-button-bar__button:hover,.topcoat-button-bar__button--large:hover{background-color:#626465}.topcoat-button:focus,.topcoat-button--quiet:focus,.topcoat-button--quiet:hover:focus,.topcoat-button--large:focus,.topcoat-button--large--quiet:focus,.topcoat-button--large--quiet:hover:focus,.topcoat-button--cta:focus,.topcoat-button--large--cta:focus,.topcoat-button-bar__button:focus,.topcoat-button-bar__button--large:focus{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.topcoat-button:active,.topcoat-button--large:active,.topcoat-button-bar__button:active,.topcoat-button-bar__button--large:active,:checked+.topcoat-button-bar__button{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--quiet:hover,.topcoat-button--large--quiet:hover{text-shadow:0 -1px rgba(0,0,0,.69);border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-button--quiet:active,.topcoat-button--quiet:focus:active,.topcoat-button--large--quiet:active,.topcoat-button--large--quiet:focus:active{color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#3f4041;border:1px solid #333434;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button-bar__button--large{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}.topcoat-button--large--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--cta,.topcoat-button--large--cta{border:1px solid #134f7f;background-color:#288edf;box-shadow:inset 0 1px rgba(255,255,255,.36);color:#fff;font-weight:500;text-shadow:0 -1px rgba(0,0,0,.36)}.topcoat-button--cta:hover,.topcoat-button--large--cta:hover{background-color:#4ca1e4}.topcoat-button--cta:active,.topcoat-button--large--cta:active{background-color:#1e7dc8;box-shadow:inset 0 1px rgba(0,0,0,.12)}.topcoat-button--large--cta{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}.button-bar,.topcoat-button-bar{display:table;table-layout:fixed;white-space:nowrap;margin:0;padding:0}.button-bar__item,.topcoat-button-bar__item{display:table-cell;width:auto;border-radius:0}.button-bar__item>input,.topcoat-button-bar__item>input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.button-bar__button{border-radius:inherit}.button-bar__item:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-button-bar>.topcoat-button-bar__item:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.topcoat-button-bar>.topcoat-button-bar__item:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.topcoat-button-bar__item:first-child>.topcoat-button-bar__button,.topcoat-button-bar__item:first-child>.topcoat-button-bar__button--large{border-right:0}.topcoat-button-bar__item:last-child>.topcoat-button-bar__button,.topcoat-button-bar__item:last-child>.topcoat-button-bar__button--large{border-left:0}.topcoat-button-bar__button{border-radius:inherit}.topcoat-button-bar__button:focus,.topcoat-button-bar__button--large:focus{z-index:1}.topcoat-button-bar__button--large{border-radius:inherit}.button{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled{opacity:.3;cursor:default;pointer-events:none}.button,.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-button:disabled,.topcoat-button--quiet:disabled,.topcoat-button--large:disabled,.topcoat-button--large--quiet:disabled,.topcoat-button--cta:disabled,.topcoat-button--large--cta:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-button,.topcoat-button--quiet,.topcoat-button--large,.topcoat-button--large--quiet,.topcoat-button--cta,.topcoat-button--large--cta{padding:0 .563rem;font-size:12px;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:top;background-color:#595b5b;box-shadow:inset 0 1px #737373;border:1px solid #333434;border-radius:4px}.topcoat-button:hover,.topcoat-button--quiet:hover,.topcoat-button--large:hover,.topcoat-button--large--quiet:hover{background-color:#626465}.topcoat-button:focus,.topcoat-button--quiet:focus,.topcoat-button--quiet:hover:focus,.topcoat-button--large:focus,.topcoat-button--large--quiet:focus,.topcoat-button--large--quiet:hover:focus,.topcoat-button--cta:focus,.topcoat-button--large--cta:focus{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.topcoat-button:active,.topcoat-button--large:active{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--quiet:hover,.topcoat-button--large--quiet:hover{text-shadow:0 -1px rgba(0,0,0,.69);border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-button--quiet:active,.topcoat-button--quiet:focus:active,.topcoat-button--large--quiet:active,.topcoat-button--large--quiet:focus:active{color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#3f4041;border:1px solid #333434;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-button--large,.topcoat-button--large--quiet{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}.topcoat-button--large--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-button--cta,.topcoat-button--large--cta{border:1px solid #134f7f;background-color:#288edf;box-shadow:inset 0 1px rgba(255,255,255,.36);color:#fff;font-weight:500;text-shadow:0 -1px rgba(0,0,0,.36)}.topcoat-button--cta:hover,.topcoat-button--large--cta:hover{background-color:#4ca1e4}.topcoat-button--cta:active,.topcoat-button--large--cta:active{background-color:#1e7dc8;box-shadow:inset 0 1px rgba(0,0,0,.12)}.topcoat-button--large--cta{font-size:.875rem;font-weight:600;line-height:1.688rem;padding:0 .875rem}input[type=checkbox]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.checkbox{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox__label{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox--disabled{opacity:.3;cursor:default;pointer-events:none}.checkbox:before,.checkbox:after{content:'';position:absolute}.checkbox:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}input[type=checkbox]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.checkbox,.topcoat-checkbox__checkmark{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox__label,.topcoat-checkbox{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox--disabled,input[type=checkbox]:disabled+.topcoat-checkbox__checkmark{opacity:.3;cursor:default;pointer-events:none}.checkbox:before,.checkbox:after,.topcoat-checkbox__checkmark:before,.topcoat-checkbox__checkmark:after{content:'';position:absolute}.checkbox:before,.topcoat-checkbox__checkmark:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.topcoat-checkbox__checkmark{height:1rem}input[type=checkbox]{height:1rem;width:1rem;margin-top:0;margin-right:-1rem;margin-bottom:-1rem;margin-left:0}input[type=checkbox]:checked+.topcoat-checkbox__checkmark:after{opacity:1}.topcoat-checkbox{line-height:1rem}.topcoat-checkbox__checkmark:before{width:1rem;height:1rem;background:#595b5b;border:1px solid #333434;border-radius:3px;box-shadow:inset 0 1px #737373}.topcoat-checkbox__checkmark{width:1rem;height:1rem}.topcoat-checkbox__checkmark:after{top:2px;left:1px;opacity:0;width:14px;height:4px;background:transparent;border:7px solid #c6c8c8;border-width:3px;border-top:0;border-right:0;border-radius:1px;-webkit-transform:rotate(-50deg);-ms-transform:rotate(-50deg);transform:rotate(-50deg)}input[type=checkbox]:focus+.topcoat-checkbox__checkmark:before{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}input[type=checkbox]:active+.topcoat-checkbox__checkmark:before{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}input[type=checkbox]:disabled:active+.topcoat-checkbox__checkmark:before{border:1px solid #333434;background:#595b5b;box-shadow:inset 0 1px #737373}.button,.topcoat-icon-button,.topcoat-icon-button--quiet,.topcoat-icon-button--large,.topcoat-icon-button--large--quiet{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-icon-button:disabled,.topcoat-icon-button--quiet:disabled,.topcoat-icon-button--large:disabled,.topcoat-icon-button--large--quiet:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-icon-button,.topcoat-icon-button--quiet,.topcoat-icon-button--large,.topcoat-icon-button--large--quiet{padding:0 .25rem;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:baseline;background-color:#595b5b;box-shadow:inset 0 1px #737373;border:1px solid #333434;border-radius:4px}.topcoat-icon-button:hover,.topcoat-icon-button--quiet:hover,.topcoat-icon-button--large:hover,.topcoat-icon-button--large--quiet:hover{background-color:#626465}.topcoat-icon-button:focus,.topcoat-icon-button--quiet:focus,.topcoat-icon-button--quiet:hover:focus,.topcoat-icon-button--large:focus,.topcoat-icon-button--large--quiet:focus,.topcoat-icon-button--large--quiet:hover:focus{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.topcoat-icon-button:active,.topcoat-icon-button--large:active{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-icon-button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-icon-button--quiet:hover,.topcoat-icon-button--large--quiet:hover{text-shadow:0 -1px rgba(0,0,0,.69);border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-icon-button--quiet:active,.topcoat-icon-button--quiet:focus:active,.topcoat-icon-button--large--quiet:active,.topcoat-icon-button--large--quiet:focus:active{color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#3f4041;border:1px solid #333434;box-shadow:inset 0 1px rgba(0,0,0,.05)}.topcoat-icon-button--large,.topcoat-icon-button--large--quiet{width:1.688rem;height:1.688rem;line-height:1.688rem}.topcoat-icon-button--large--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.topcoat-icon,.topcoat-icon--large{position:relative;display:inline-block;vertical-align:top;overflow:hidden;width:.81406rem;height:.81406rem;vertical-align:middle;top:-1px}.topcoat-icon--large{width:1.06344rem;height:1.06344rem;top:-2px}.input{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0}.input:disabled{opacity:.3;cursor:default;pointer-events:none}.list{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:auto;-webkit-overflow-scrolling:touch}.list__header{margin:0}.list__container{padding:0;margin:0;list-style-type:none}.list__item{margin:0;padding:0}.navigation-bar{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;white-space:nowrap;overflow:hidden;word-spacing:0;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navigation-bar__item{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0}.navigation-bar__title{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notification{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.notification,.topcoat-notification{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.topcoat-notification{padding:.15em .5em .2em;border-radius:2px;background-color:#ec514e;color:#fff}input[type=radio]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.radio-button{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button__label{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button:before,.radio-button:after{content:'';position:absolute;border-radius:100%}.radio-button:after{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.radio-button:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.radio-button--disabled{opacity:.3;cursor:default;pointer-events:none}input[type=radio]{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.radio-button,.topcoat-radio-button__checkmark{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button__label,.topcoat-radio-button{position:relative;display:inline-block;vertical-align:top;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.radio-button:before,.radio-button:after,.topcoat-radio-button__checkmark:before,.topcoat-radio-button__checkmark:after{content:'';position:absolute;border-radius:100%}.radio-button:after,.topcoat-radio-button__checkmark:after{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.radio-button:before,.topcoat-radio-button__checkmark:before{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.radio-button--disabled,input[type=radio]:disabled+.topcoat-radio-button__checkmark{opacity:.3;cursor:default;pointer-events:none}input[type=radio]{height:1.063rem;width:1.063rem;margin-top:0;margin-right:-1.063rem;margin-bottom:-1.063rem;margin-left:0}input[type=radio]:checked+.topcoat-radio-button__checkmark:after{opacity:1}.topcoat-radio-button{color:#c6c8c8;line-height:1.063rem}.topcoat-radio-button__checkmark:before{width:1.063rem;height:1.063rem;background:#595b5b;border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-radio-button__checkmark{position:relative;width:1.063rem;height:1.063rem}.topcoat-radio-button__checkmark:after{opacity:0;width:.313rem;height:.313rem;background:#c6c8c8;border:1px solid rgba(0,0,0,.05);box-shadow:0 1px rgba(255,255,255,.1);-webkit-transform:none;-ms-transform:none;transform:none;top:.313rem;left:.313rem}input[type=radio]:focus+.topcoat-radio-button__checkmark:before{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}input[type=radio]:active+.topcoat-radio-button__checkmark:before{border:1px solid #333434;background-color:#3f4041;box-shadow:inset 0 1px rgba(0,0,0,.05)}input[type=radio]:disabled:active+.topcoat-radio-button__checkmark:before{border:1px solid #333434;background:#595b5b;box-shadow:inset 0 1px #737373}.range{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}.range__thumb{cursor:pointer}.range__thumb--webkit{cursor:pointer;-webkit-appearance:none}.range:disabled{opacity:.3;cursor:default;pointer-events:none}.range,.topcoat-range{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}.range__thumb,.topcoat-range::-moz-range-thumb{cursor:pointer}.range__thumb--webkit,.topcoat-range::-webkit-slider-thumb{cursor:pointer;-webkit-appearance:none}.range:disabled,.topcoat-range:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-range{border-radius:4px;border:1px solid #333434;background-color:#454646;height:.5rem;border-radius:15px}.topcoat-range::-moz-range-track{border-radius:4px;border:1px solid #333434;background-color:#454646;height:.5rem;border-radius:15px}.topcoat-range::-webkit-slider-thumb{height:1.313rem;width:.75rem;background-color:#595b5b;border:1px solid #333434;border-radius:4px;box-shadow:inset 0 1px #737373}.topcoat-range::-moz-range-thumb{height:1.313rem;width:.75rem;background-color:#595b5b;border:1px solid #333434;border-radius:4px;box-shadow:inset 0 1px #737373}.topcoat-range:focus::-webkit-slider-thumb{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}.topcoat-range:focus::-moz-range-thumb{border:1px solid #0036ff;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1}.topcoat-range:active::-webkit-slider-thumb{border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-range:active::-moz-range-thumb{border:1px solid #333434;box-shadow:inset 0 1px #737373}.search-input{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.search-input:disabled{opacity:.3;cursor:default;pointer-events:none}.search-input,.topcoat-search-input,.topcoat-search-input--large{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0;-webkit-appearance:none}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.search-input:disabled,.topcoat-search-input:disabled,.topcoat-search-input--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-search-input,.topcoat-search-input--large{line-height:1.313rem;height:1.313rem;font-size:12px;border:1px solid #333434;background-color:#454646;box-shadow:inset 0 1px 0 rgba(0,0,0,.23);color:#c6c8c8;padding:0 0 0 1.3rem;border-radius:15px;background-image:url(../img/search.svg);background-position:1rem center;background-repeat:no-repeat;background-size:12px}.topcoat-search-input:focus,.topcoat-search-input--large:focus{background-color:#595b5b;color:#fff;border:1px solid #0036ff;box-shadow:inset 0 1px 0 rgba(0,0,0,.23),0 0 0 2px #6fb5f1}.topcoat-search-input::-webkit-search-cancel-button,.topcoat-search-input::-webkit-search-decoration,.topcoat-search-input--large::-webkit-search-cancel-button,.topcoat-search-input--large::-webkit-search-decoration{margin-right:5px}.topcoat-search-input:focus::-webkit-input-placeholder,.topcoat-search-input:focus::-webkit-input-placeholder{color:#c6c8c8}.topcoat-search-input:disabled::-webkit-input-placeholder{color:#fff}.topcoat-search-input:disabled::-moz-placeholder{color:#fff}.topcoat-search-input:disabled:-ms-input-placeholder{color:#fff}.topcoat-search-input--large{line-height:1.688rem;height:1.688rem;font-size:.875rem;font-weight:400;padding:0 0 0 1.8rem;border-radius:25px;background-position:1.2rem center;background-size:.875rem}.topcoat-search-input--large:disabled{color:#fff}.topcoat-search-input--large:disabled::-webkit-input-placeholder{color:#fff}.topcoat-search-input--large:disabled::-moz-placeholder{color:#fff}.topcoat-search-input--large:disabled:-ms-input-placeholder{color:#fff}.switch{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch__input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.switch__toggle{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch__toggle:before,.switch__toggle:after{content:'';position:absolute;z-index:-1;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch--disabled{opacity:.3;cursor:default;pointer-events:none}.switch,.topcoat-switch{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch__input,.topcoat-switch__input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.switch__toggle,.topcoat-switch__toggle{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch__toggle:before,.switch__toggle:after,.topcoat-switch__toggle:before,.topcoat-switch__toggle:after{content:'';position:absolute;z-index:-1;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box}.switch--disabled,.topcoat-switch__input:disabled+.topcoat-switch__toggle{opacity:.3;cursor:default;pointer-events:none}.topcoat-switch{font-size:12px;padding:0 .563rem;border-radius:4px;border:1px solid #333434;overflow:hidden;width:3.5rem}.topcoat-switch__toggle:before,.topcoat-switch__toggle:after{top:-1px;width:2.6rem}.topcoat-switch__toggle:before{content:'ON';color:#288edf;background-color:#3f4041;right:.8rem;padding-left:.75rem}.topcoat-switch__toggle{line-height:1.313rem;height:1.313rem;width:1rem;border-radius:4px;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);background-color:#595b5b;border:1px solid #333434;margin-left:-.6rem;margin-bottom:-1px;margin-top:-1px;box-shadow:inset 0 1px #737373;-webkit-transition:margin-left .05s ease-in-out;transition:margin-left .05s ease-in-out}.topcoat-switch__toggle:after{content:'OFF';background-color:#3f4041;left:.8rem;padding-left:.6rem}.topcoat-switch__input:checked+.topcoat-switch__toggle{margin-left:1.85rem}.topcoat-switch__input:active+.topcoat-switch__toggle{border:1px solid #333434;box-shadow:inset 0 1px #737373}.topcoat-switch__input:focus+.topcoat-switch__toggle{border:1px solid #0036ff;box-shadow:0 0 0 2px #6fb5f1}.topcoat-switch__input:disabled+.topcoat-switch__toggle:after,.topcoat-switch__input:disabled+.topcoat-switch__toggle:before{background:transparent}.button,.topcoat-tab-bar__button{position:relative;display:inline-block;vertical-align:top;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-decoration:none}.button--quiet{background:transparent;border:1px solid transparent;box-shadow:none}.button--disabled,.topcoat-tab-bar__button:disabled{opacity:.3;cursor:default;pointer-events:none}.button-bar,.topcoat-tab-bar{display:table;table-layout:fixed;white-space:nowrap;margin:0;padding:0}.button-bar__item,.topcoat-tab-bar__item{display:table-cell;width:auto;border-radius:0}.button-bar__item>input,.topcoat-tab-bar__item>input{position:absolute;overflow:hidden;padding:0;border:0;opacity:.001;z-index:1;vertical-align:top;outline:0}.button-bar__button{border-radius:inherit}.button-bar__item:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-tab-bar__button{padding:0 .563rem;height:1.313rem;line-height:1.313rem;letter-spacing:0;color:#c6c8c8;text-shadow:0 -1px rgba(0,0,0,.69);vertical-align:top;background-color:#595b5b;box-shadow:inset 0 1px #737373;border-top:1px solid #333434}.topcoat-tab-bar__button:active,.topcoat-tab-bar__button--large:active,:checked+.topcoat-tab-bar__button{color:#288edf;background-color:#3f4041;box-shadow:inset 0 0 1px rgba(0,0,0,.05)}.topcoat-tab-bar__button:focus,.topcoat-tab-bar__button--large:focus{z-index:1;box-shadow:inset 0 1px rgba(255,255,255,.36),0 0 0 2px #6fb5f1;outline:0}.input,.topcoat-text-input,.topcoat-text-input--large{padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;vertical-align:top;outline:0}.input:disabled,.topcoat-text-input:disabled,.topcoat-text-input--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-text-input,.topcoat-text-input--large{line-height:1.313rem;font-size:12px;letter-spacing:0;padding:0 .563rem;border:1px solid #333434;border-radius:4px;background-color:#454646;box-shadow:inset 0 1px rgba(0,0,0,.05);color:#c6c8c8;vertical-align:top}.topcoat-text-input:focus,.topcoat-text-input--large:focus{background-color:#595b5b;color:#fff;border:1px solid #0036ff;box-shadow:0 0 0 2px #6fb5f1}.topcoat-text-input:disabled::-webkit-input-placeholder{color:#fff}.topcoat-text-input:disabled::-moz-placeholder{color:#fff}.topcoat-text-input:disabled:-ms-input-placeholder{color:#fff}.topcoat-text-input:invalid{border:1px solid #ec514e}.topcoat-text-input--large{line-height:1.688rem;font-size:.875rem}.topcoat-text-input--large:disabled{color:#fff}.topcoat-text-input--large:disabled::-webkit-input-placeholder{color:#fff}.topcoat-text-input--large:disabled::-moz-placeholder{color:#fff}.topcoat-text-input--large:disabled:-ms-input-placeholder{color:#fff}.topcoat-text-input--large:invalid{border:1px solid #ec514e}.textarea{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;vertical-align:top;resize:none;outline:0}.textarea:disabled{opacity:.3;cursor:default;pointer-events:none}.textarea,.topcoat-textarea,.topcoat-textarea--large{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;vertical-align:top;resize:none;outline:0}.textarea:disabled,.topcoat-textarea:disabled,.topcoat-textarea--large:disabled{opacity:.3;cursor:default;pointer-events:none}.topcoat-textarea,.topcoat-textarea--large{padding:1rem;font-size:1rem;font-weight:400;border-radius:4px;line-height:1.313rem;border:1px solid #333434;background-color:#454646;box-shadow:inset 0 1px rgba(0,0,0,.05);color:#c6c8c8;letter-spacing:0}.topcoat-textarea:focus,.topcoat-textarea--large:focus{background-color:#595b5b;color:#fff;border:1px solid #0036ff;box-shadow:0 0 0 2px #6fb5f1}.topcoat-textarea:disabled::-webkit-input-placeholder{color:#fff}.topcoat-textarea:disabled::-moz-placeholder{color:#fff}.topcoat-textarea:disabled:-ms-input-placeholder{color:#fff}.topcoat-textarea--large{font-size:1.3rem;line-height:1.688rem}.topcoat-textarea--large:disabled{color:#fff}.topcoat-textarea--large:disabled::-webkit-input-placeholder{color:#fff}.topcoat-textarea--large:disabled::-moz-placeholder{color:#fff}.topcoat-textarea--large:disabled:-ms-input-placeholder{color:#fff}@font-face{font-family:"Source Sans";src:url(../font/SourceSansPro-Regular.otf)}@font-face{font-family:"Source Sans";src:url(../font/SourceSansPro-Light.otf);font-weight:200}@font-face{font-family:"Source Sans";src:url(../font/SourceSansPro-Semibold.otf);font-weight:600}body{margin:0;padding:0;background:#4b4d4e;color:#000;font:16px "Source Sans",helvetica,arial,sans-serif;font-weight:400}:focus{outline-color:transparent;outline-style:none}.topcoat-icon--menu-stack{background:url(../img/hamburger_light.svg) no-repeat;background-size:cover}.quarter{width:25%}.half{width:50%}.three-quarters{width:75%}.third{width:33.333%}.two-thirds{width:66.666%}.full{width:100%}.left{text-align:left}.center{text-align:center}.right{text-align:right}.reset-ui{-moz-box-sizing:border-box;box-sizing:border-box;background-clip:padding-box;position:relative;display:inline-block;vertical-align:top;padding:0;margin:0;font:inherit;color:inherit;background:transparent;border:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden} \ No newline at end of file diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/ayon_logo.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/ayon_logo.png deleted file mode 100644 index 3a96f8e2b499baa337cdc5a4d3cdf547f9ded972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3538 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 E-zj>|X#fBK diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkNormal.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkNormal.png deleted file mode 100644 index b8652a85b842b12d45e495c1d496590da0e26f01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18659 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 diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkRollover.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkRollover.png deleted file mode 100644 index 49edd7ca278ed7d0047effd37242f2bed1e9be27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18663 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 diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDisabled.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDisabled.png deleted file mode 100644 index 49edd7ca278ed7d0047effd37242f2bed1e9be27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18663 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 diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconNormal.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconNormal.png deleted file mode 100644 index 199326f2eac3fee033a163b7e3fe395057746c4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18225 zcmeI3c{o(<|HqFOyGSHip0OlkHfuADv5Yla7@>X4X0pu0)C@`_qJ^ZgMOq|lMUhaJ zqEe)uREX@!gC0vf6@G&jooas1@A`dzfBdd%=DKG2+@JgNzR&%-KlkUHGuL&ZHrQK= z39l3e06@&z%FK!L4V!rj@^e02i`N)%zJwT7?*0HEvTWwf2PBsp8T%VKsNF+q+=Kp~9*RKtiy9q~t%T!Us$QV=!x! z%LQ%&eC%f;f|KLBNjtDk^N?U?L!8G3<)@drh81uO^37 zVm_u=6=fc}SrEEQz||F|s9t9+vqnmvuz-+c466)Cl+_N^6@N4G2msPzr8%=5nPk^3 z$*Zf=k1kxY9s2GL|Fp7)N9R;`eKx}w0NRVgYHJj2@S zS<^#Cla^_#fDnrHiCqA&%}f=Be^_8tBM1OyX`z}|P2@%^R%n&;%U3LJsSx?RL;s+u z>fK6H2~%NGh`iqpjhq9f>Jg8xDroM2|7onCTkhx?5yw~pt8}@!#E>EWksz2_pD}`Z0zXhm6 zTP$wHuDcItANU+mYKc4|a`4hRCbxE^QJr5L$T9v2wL?++~~VYPXjDb9aS@Hu8|0m6l4Q zWXv+SL{KE|u7Rp#6i$0}@$m)L*Dm6pNg%M^r zrn%<|ovt_@y1YzxcM|Gx*m7%|^xX5Oo~`th@f@dJdCR=D^z|u4`}ilWPiy-u-^RaP zILZPYbeuagh5kI9?UI$Uq2F1~nVPxo@}Vs1 zWjfyIVzB#U6u*0wZIuJ=qGQ^%?VY975D}tm0b5JSODsELcc|W7wQG-G?cJkUk}#=I za>Otz^BfANvtGxwz-iO@>I-W8YD#K0cJJ&4 zlbq~|FKJv_XS>d}=JBJ)=N~sF>LnW@UugFx_a?tcZY$cciM>gy@N(fzvUPsfrc3UF zg{8jXn^5lQZZ4a)7Fgt_YXP=$gNUgg1cj1G=%p%#V-7oo@^9p?m z_YtTbGSs4bc~ygPWpVp%?K?JUC?Iy|)sk$5O$x#O*Zri>8_}&vb!P^R_T3vj-3O<- z)l1aB)afi-R;zKBmg1cJ%#tcYE%px^i98ZzbD$O$kA)@6RlmMp*0r8Fwrgv9;M1{` zQT2K5JNgNItqKGHp_k?OAF|D@_Z?u}!2gOSMDQwXoNoL~o>Ln!q|uL_(9 zk9Ey`akVI&l{HQnlEHq!`kn2>c47=#wOie{KQbsUx?fc5P(@GO9^QuAuQE-V4xDZP zGD24IQ5QyqnuKm%@M$7&uhN}pBXl$QL;kA)lcQE!qJ;x06)LI9@CN;c$d|Y+ znu_+rR+@H!C;o~p)eBI)r<1PLU3_qL=J8TnG27S4=+xy&dmujAhUhY6*ooNVyG*l` z?BWWk@2EYLJ+(RH@cgNJzDJ7Sil+n~coiJaS?mrKE;POL7QadTg{DA0mF!Bn^Em1u z>U4JMn#Ti=3LZ8eH#jqNc6vavQnLL-VS0p(D^$U)rz~eDDj%~epjo(6dhwcwjr=*7 zn}-WEeV#jH54gtX1(&G>+IfX;t9W>z;s&2rzle))clf^kmKOtC9o*pVZ8r!XBU0qB z(ou)=q?%>orT4#7Z((=K9il(Hlh|_ddS>?BVp2WjDW$Kc6`Hzv$?2^4p71^a{71b0;M3PP2rnjl8wTZq zNG&k}!R=-jJ{P;^l;`A6)}IQ-jq;+h`X)|)^4Xee@3U*5X5rI?lL9JB z3SSie`CQ?tA>JvbaZSJFlA1qmPo)g8pkn%BF2~MPcc?JT0=oLfh1$jy#n4TAjt1ql z3q1Q{j{;QzzSA^mILRW}IqB18kIlCn9$_0A-?avQwru`G{ERNfJz)I^{sFD2@4&M- z>Tvzhlv64Df?@x(>}Wn;7}QIwYuhPKAG#&MY=3G#eWZ6?>AJct!#A13`OV$STyMH2 zT|sa6dB=Q*nTmVnP*ZZIBq^_Wi&ybrVA+iz%6Ok#szKfB(XxQQmrpl7PemENE*lA? zkKY>~Yg_(0*l+b@U2VxL*6P9BQisy*qs9X!uW+vqJvZ7s)$($vW&h4{R@z8Ii{&_f zcv$^Z>{yIAZgEUvOl^c%M1Sg9EDF_ODUJ*@nuqx@gYtnP#{$WVQ>_%TU>5W8iPrr`$A@P2_E#_ zOhaYmnSs8&zRb&q@ogYq|1az~6yaB*tsnG ze*eU|eNwk05NW^O-}A}|U6M&*aTU>!P%MhW;=D&Kqls9|S^w)XXB5`2kdYcnio?l2mS#7T4= ziU*mb1Jxtz5uv&U6cUs`BzQnkNF54dt-gUS386DP$sfaik~X6gch6+e7ikhl8i~@? zChF-Dpk#eAM_QZn;X&{~K=lle9>ldCYsq8^<*W3(@Smg|{AipqMDU*1XXfbtr$hWg z=BJ^oX#Sk!37D5uoYa~vG|uE*Kem2#c++MJ27}<|PoCL_hRR-Qr5bPAJ2 z@FSa0IXUs)Zp1msA7jAU82C(G_NM(Gtb#vb&;M=>{@o_}|Gx&`^OxvJ@THPTSoqh} z{o3&FmThh^f80}FOTo{35JMuODRe&{0uxK~AyCP1hA$NZ|K9k0Ow6})5gJGLru*5^ zNn|Xie*LQXmr3MW z;coJ9apwc_@^FEGa5s6lxbp#ddALA8xSKp&-1&gKJX|0k+)W-X?tDOA9xf0N?j{cx zcRnC54;Kgscaw*UJ0FmjhYJLRyUD}Foe#*%!vzAu-Q?lo&Ijb>;Q|5SZt`$(=L7Qc zaDjkuH+i_Y^8tBzxIjR-n><|H`GCAUTp%FaO&%`pd_Z0vE)WpzCJz^PJ|Hg-7YGP< zlPfOa@6UUZeK`+#vN%t3ept0Jg!3dQglOet2LOSq03aj`0REZgeD?vsZUg|l+rfE= zGywo)=qI+{vjBhv2G(XKcy`lYuZ*l*9OVVx$23r)!lX(o1RepJLKy+bnV+!qua%UI|OcbuEDn3 zG+Lj=mcITYRSC7F%0)D7_u0&ZlX&k6wXCDC$5v~n-SnBa@H~xW>zZJ6RytTGr~cR@W5&gZv*P_; zqOxMC`1eXoiv>fXsb&*Gq81yS#rR)@z7HNX;~#ppb=zNyhmKr7F<^6mWhp#lf1p<- zyf^Mmu~mDqDtq(A_l2qx8!x`kRhna361pv^v3HfwZ7Get8bVWwwXx^o z!}^UU;Eyc%&x+^W&Ho_XsBCg&u|rniXBCQaX#FCGcMe6pdzwhc9+@&oAA7XkXl#@_ zxJ_(C<{{1DQTtN;{-dp;BXy^qrK(dT#jiT99<@lI52uAaEqtT)UXC?z{lU&tboPP1 ziwg^wUKv&UTnBu8kZ|(bMv9LPyhEooGso!mC%dg9Q|xQ7;N^;Ebk|7+r7NwIOdtCj rzoP8jRRMg`>7F{jWm9LXrp17~2aKe|@S1C!bOWr-?alH`cO3XHL3dXp diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconRollover.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconRollover.png deleted file mode 100644 index ff62645798592fa733626e43741031a57d34c61a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18664 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 diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/index.html b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/index.html deleted file mode 100644 index 480b814a57..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/index.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/CSInterface.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/CSInterface.js deleted file mode 100644 index 4239391efd..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/CSInterface.js +++ /dev/null @@ -1,1193 +0,0 @@ -/************************************************************************************************** -* -* ADOBE SYSTEMS INCORPORATED -* Copyright 2013 Adobe Systems Incorporated -* All Rights Reserved. -* -* NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the -* terms of the Adobe license agreement accompanying it. If you have received this file from a -* source other than Adobe, then your use, modification, or distribution of it requires the prior -* written permission of Adobe. -* -**************************************************************************************************/ - -/** CSInterface - v8.0.0 */ - -/** - * Stores constants for the window types supported by the CSXS infrastructure. - */ -function CSXSWindowType() -{ -} - -/** Constant for the CSXS window type Panel. */ -CSXSWindowType._PANEL = "Panel"; - -/** Constant for the CSXS window type Modeless. */ -CSXSWindowType._MODELESS = "Modeless"; - -/** Constant for the CSXS window type ModalDialog. */ -CSXSWindowType._MODAL_DIALOG = "ModalDialog"; - -/** EvalScript error message */ -EvalScript_ErrMessage = "EvalScript error."; - -/** - * @class Version - * Defines a version number with major, minor, micro, and special - * components. The major, minor and micro values are numeric; the special - * value can be any string. - * - * @param major The major version component, a positive integer up to nine digits long. - * @param minor The minor version component, a positive integer up to nine digits long. - * @param micro The micro version component, a positive integer up to nine digits long. - * @param special The special version component, an arbitrary string. - * - * @return A new \c Version object. - */ -function Version(major, minor, micro, special) -{ - this.major = major; - this.minor = minor; - this.micro = micro; - this.special = special; -} - -/** - * The maximum value allowed for a numeric version component. - * This reflects the maximum value allowed in PlugPlug and the manifest schema. - */ -Version.MAX_NUM = 999999999; - -/** - * @class VersionBound - * Defines a boundary for a version range, which associates a \c Version object - * with a flag for whether it is an inclusive or exclusive boundary. - * - * @param version The \c #Version object. - * @param inclusive True if this boundary is inclusive, false if it is exclusive. - * - * @return A new \c VersionBound object. - */ -function VersionBound(version, inclusive) -{ - this.version = version; - this.inclusive = inclusive; -} - -/** - * @class VersionRange - * Defines a range of versions using a lower boundary and optional upper boundary. - * - * @param lowerBound The \c #VersionBound object. - * @param upperBound The \c #VersionBound object, or null for a range with no upper boundary. - * - * @return A new \c VersionRange object. - */ -function VersionRange(lowerBound, upperBound) -{ - this.lowerBound = lowerBound; - this.upperBound = upperBound; -} - -/** - * @class Runtime - * Represents a runtime related to the CEP infrastructure. - * Extensions can declare dependencies on particular - * CEP runtime versions in the extension manifest. - * - * @param name The runtime name. - * @param version A \c #VersionRange object that defines a range of valid versions. - * - * @return A new \c Runtime object. - */ -function Runtime(name, versionRange) -{ - this.name = name; - this.versionRange = versionRange; -} - -/** -* @class Extension -* Encapsulates a CEP-based extension to an Adobe application. -* -* @param id The unique identifier of this extension. -* @param name The localizable display name of this extension. -* @param mainPath The path of the "index.html" file. -* @param basePath The base path of this extension. -* @param windowType The window type of the main window of this extension. - Valid values are defined by \c #CSXSWindowType. -* @param width The default width in pixels of the main window of this extension. -* @param height The default height in pixels of the main window of this extension. -* @param minWidth The minimum width in pixels of the main window of this extension. -* @param minHeight The minimum height in pixels of the main window of this extension. -* @param maxWidth The maximum width in pixels of the main window of this extension. -* @param maxHeight The maximum height in pixels of the main window of this extension. -* @param defaultExtensionDataXml The extension data contained in the default \c ExtensionDispatchInfo section of the extension manifest. -* @param specialExtensionDataXml The extension data contained in the application-specific \c ExtensionDispatchInfo section of the extension manifest. -* @param requiredRuntimeList An array of \c Runtime objects for runtimes required by this extension. -* @param isAutoVisible True if this extension is visible on loading. -* @param isPluginExtension True if this extension has been deployed in the Plugins folder of the host application. -* -* @return A new \c Extension object. -*/ -function Extension(id, name, mainPath, basePath, windowType, width, height, minWidth, minHeight, maxWidth, maxHeight, - defaultExtensionDataXml, specialExtensionDataXml, requiredRuntimeList, isAutoVisible, isPluginExtension) -{ - this.id = id; - this.name = name; - this.mainPath = mainPath; - this.basePath = basePath; - this.windowType = windowType; - this.width = width; - this.height = height; - this.minWidth = minWidth; - this.minHeight = minHeight; - this.maxWidth = maxWidth; - this.maxHeight = maxHeight; - this.defaultExtensionDataXml = defaultExtensionDataXml; - this.specialExtensionDataXml = specialExtensionDataXml; - this.requiredRuntimeList = requiredRuntimeList; - this.isAutoVisible = isAutoVisible; - this.isPluginExtension = isPluginExtension; -} - -/** - * @class CSEvent - * A standard JavaScript event, the base class for CEP events. - * - * @param type The name of the event type. - * @param scope The scope of event, can be "GLOBAL" or "APPLICATION". - * @param appId The unique identifier of the application that generated the event. - * @param extensionId The unique identifier of the extension that generated the event. - * - * @return A new \c CSEvent object - */ -function CSEvent(type, scope, appId, extensionId) -{ - this.type = type; - this.scope = scope; - this.appId = appId; - this.extensionId = extensionId; -} - -/** Event-specific data. */ -CSEvent.prototype.data = ""; - -/** - * @class SystemPath - * Stores operating-system-specific location constants for use in the - * \c #CSInterface.getSystemPath() method. - * @return A new \c SystemPath object. - */ -function SystemPath() -{ -} - -/** The path to user data. */ -SystemPath.USER_DATA = "userData"; - -/** The path to common files for Adobe applications. */ -SystemPath.COMMON_FILES = "commonFiles"; - -/** The path to the user's default document folder. */ -SystemPath.MY_DOCUMENTS = "myDocuments"; - -/** @deprecated. Use \c #SystemPath.Extension. */ -SystemPath.APPLICATION = "application"; - -/** The path to current extension. */ -SystemPath.EXTENSION = "extension"; - -/** The path to hosting application's executable. */ -SystemPath.HOST_APPLICATION = "hostApplication"; - -/** - * @class ColorType - * Stores color-type constants. - */ -function ColorType() -{ -} - -/** RGB color type. */ -ColorType.RGB = "rgb"; - -/** Gradient color type. */ -ColorType.GRADIENT = "gradient"; - -/** Null color type. */ -ColorType.NONE = "none"; - -/** - * @class RGBColor - * Stores an RGB color with red, green, blue, and alpha values. - * All values are in the range [0.0 to 255.0]. Invalid numeric values are - * converted to numbers within this range. - * - * @param red The red value, in the range [0.0 to 255.0]. - * @param green The green value, in the range [0.0 to 255.0]. - * @param blue The blue value, in the range [0.0 to 255.0]. - * @param alpha The alpha (transparency) value, in the range [0.0 to 255.0]. - * The default, 255.0, means that the color is fully opaque. - * - * @return A new RGBColor object. - */ -function RGBColor(red, green, blue, alpha) -{ - this.red = red; - this.green = green; - this.blue = blue; - this.alpha = alpha; -} - -/** - * @class Direction - * A point value in which the y component is 0 and the x component - * is positive or negative for a right or left direction, - * or the x component is 0 and the y component is positive or negative for - * an up or down direction. - * - * @param x The horizontal component of the point. - * @param y The vertical component of the point. - * - * @return A new \c Direction object. - */ -function Direction(x, y) -{ - this.x = x; - this.y = y; -} - -/** - * @class GradientStop - * Stores gradient stop information. - * - * @param offset The offset of the gradient stop, in the range [0.0 to 1.0]. - * @param rgbColor The color of the gradient at this point, an \c #RGBColor object. - * - * @return GradientStop object. - */ -function GradientStop(offset, rgbColor) -{ - this.offset = offset; - this.rgbColor = rgbColor; -} - -/** - * @class GradientColor - * Stores gradient color information. - * - * @param type The gradient type, must be "linear". - * @param direction A \c #Direction object for the direction of the gradient - (up, down, right, or left). - * @param numStops The number of stops in the gradient. - * @param gradientStopList An array of \c #GradientStop objects. - * - * @return A new \c GradientColor object. - */ -function GradientColor(type, direction, numStops, arrGradientStop) -{ - this.type = type; - this.direction = direction; - this.numStops = numStops; - this.arrGradientStop = arrGradientStop; -} - -/** - * @class UIColor - * Stores color information, including the type, anti-alias level, and specific color - * values in a color object of an appropriate type. - * - * @param type The color type, 1 for "rgb" and 2 for "gradient". - The supplied color object must correspond to this type. - * @param antialiasLevel The anti-alias level constant. - * @param color A \c #RGBColor or \c #GradientColor object containing specific color information. - * - * @return A new \c UIColor object. - */ -function UIColor(type, antialiasLevel, color) -{ - this.type = type; - this.antialiasLevel = antialiasLevel; - this.color = color; -} - -/** - * @class AppSkinInfo - * Stores window-skin properties, such as color and font. All color parameter values are \c #UIColor objects except that systemHighlightColor is \c #RGBColor object. - * - * @param baseFontFamily The base font family of the application. - * @param baseFontSize The base font size of the application. - * @param appBarBackgroundColor The application bar background color. - * @param panelBackgroundColor The background color of the extension panel. - * @param appBarBackgroundColorSRGB The application bar background color, as sRGB. - * @param panelBackgroundColorSRGB The background color of the extension panel, as sRGB. - * @param systemHighlightColor The highlight color of the extension panel, if provided by the host application. Otherwise, the operating-system highlight color. - * - * @return AppSkinInfo object. - */ -function AppSkinInfo(baseFontFamily, baseFontSize, appBarBackgroundColor, panelBackgroundColor, appBarBackgroundColorSRGB, panelBackgroundColorSRGB, systemHighlightColor) -{ - this.baseFontFamily = baseFontFamily; - this.baseFontSize = baseFontSize; - this.appBarBackgroundColor = appBarBackgroundColor; - this.panelBackgroundColor = panelBackgroundColor; - this.appBarBackgroundColorSRGB = appBarBackgroundColorSRGB; - this.panelBackgroundColorSRGB = panelBackgroundColorSRGB; - this.systemHighlightColor = systemHighlightColor; -} - -/** - * @class HostEnvironment - * Stores information about the environment in which the extension is loaded. - * - * @param appName The application's name. - * @param appVersion The application's version. - * @param appLocale The application's current license locale. - * @param appUILocale The application's current UI locale. - * @param appId The application's unique identifier. - * @param isAppOnline True if the application is currently online. - * @param appSkinInfo An \c #AppSkinInfo object containing the application's default color and font styles. - * - * @return A new \c HostEnvironment object. - */ -function HostEnvironment(appName, appVersion, appLocale, appUILocale, appId, isAppOnline, appSkinInfo) -{ - this.appName = appName; - this.appVersion = appVersion; - this.appLocale = appLocale; - this.appUILocale = appUILocale; - this.appId = appId; - this.isAppOnline = isAppOnline; - this.appSkinInfo = appSkinInfo; -} - -/** - * @class HostCapabilities - * Stores information about the host capabilities. - * - * @param EXTENDED_PANEL_MENU True if the application supports panel menu. - * @param EXTENDED_PANEL_ICONS True if the application supports panel icon. - * @param DELEGATE_APE_ENGINE True if the application supports delegated APE engine. - * @param SUPPORT_HTML_EXTENSIONS True if the application supports HTML extensions. - * @param DISABLE_FLASH_EXTENSIONS True if the application disables FLASH extensions. - * - * @return A new \c HostCapabilities object. - */ -function HostCapabilities(EXTENDED_PANEL_MENU, EXTENDED_PANEL_ICONS, DELEGATE_APE_ENGINE, SUPPORT_HTML_EXTENSIONS, DISABLE_FLASH_EXTENSIONS) -{ - this.EXTENDED_PANEL_MENU = EXTENDED_PANEL_MENU; - this.EXTENDED_PANEL_ICONS = EXTENDED_PANEL_ICONS; - this.DELEGATE_APE_ENGINE = DELEGATE_APE_ENGINE; - this.SUPPORT_HTML_EXTENSIONS = SUPPORT_HTML_EXTENSIONS; - this.DISABLE_FLASH_EXTENSIONS = DISABLE_FLASH_EXTENSIONS; // Since 5.0.0 -} - -/** - * @class ApiVersion - * Stores current api version. - * - * Since 4.2.0 - * - * @param major The major version - * @param minor The minor version. - * @param micro The micro version. - * - * @return ApiVersion object. - */ -function ApiVersion(major, minor, micro) -{ - this.major = major; - this.minor = minor; - this.micro = micro; -} - -/** - * @class MenuItemStatus - * Stores flyout menu item status - * - * Since 5.2.0 - * - * @param menuItemLabel The menu item label. - * @param enabled True if user wants to enable the menu item. - * @param checked True if user wants to check the menu item. - * - * @return MenuItemStatus object. - */ -function MenuItemStatus(menuItemLabel, enabled, checked) -{ - this.menuItemLabel = menuItemLabel; - this.enabled = enabled; - this.checked = checked; -} - -/** - * @class ContextMenuItemStatus - * Stores the status of the context menu item. - * - * Since 5.2.0 - * - * @param menuItemID The menu item id. - * @param enabled True if user wants to enable the menu item. - * @param checked True if user wants to check the menu item. - * - * @return MenuItemStatus object. - */ -function ContextMenuItemStatus(menuItemID, enabled, checked) -{ - this.menuItemID = menuItemID; - this.enabled = enabled; - this.checked = checked; -} -//------------------------------ CSInterface ---------------------------------- - -/** - * @class CSInterface - * This is the entry point to the CEP extensibility infrastructure. - * Instantiate this object and use it to: - *
    - *
  • Access information about the host application in which an extension is running
  • - *
  • Launch an extension
  • - *
  • Register interest in event notifications, and dispatch events
  • - *
- * - * @return A new \c CSInterface object - */ -function CSInterface() -{ -} - -/** - * User can add this event listener to handle native application theme color changes. - * Callback function gives extensions ability to fine-tune their theme color after the - * global theme color has been changed. - * The callback function should be like below: - * - * @example - * // event is a CSEvent object, but user can ignore it. - * function OnAppThemeColorChanged(event) - * { - * // Should get a latest HostEnvironment object from application. - * var skinInfo = JSON.parse(window.__adobe_cep__.getHostEnvironment()).appSkinInfo; - * // Gets the style information such as color info from the skinInfo, - * // and redraw all UI controls of your extension according to the style info. - * } - */ -CSInterface.THEME_COLOR_CHANGED_EVENT = "com.adobe.csxs.events.ThemeColorChanged"; - -/** The host environment data object. */ -CSInterface.prototype.hostEnvironment = window.__adobe_cep__ ? JSON.parse(window.__adobe_cep__.getHostEnvironment()) : null; - -/** Retrieves information about the host environment in which the - * extension is currently running. - * - * @return A \c #HostEnvironment object. - */ -CSInterface.prototype.getHostEnvironment = function() -{ - this.hostEnvironment = JSON.parse(window.__adobe_cep__.getHostEnvironment()); - return this.hostEnvironment; -}; - -/** Closes this extension. */ -CSInterface.prototype.closeExtension = function() -{ - window.__adobe_cep__.closeExtension(); -}; - -/** - * Retrieves a path for which a constant is defined in the system. - * - * @param pathType The path-type constant defined in \c #SystemPath , - * - * @return The platform-specific system path string. - */ -CSInterface.prototype.getSystemPath = function(pathType) -{ - var path = decodeURI(window.__adobe_cep__.getSystemPath(pathType)); - var OSVersion = this.getOSInformation(); - if (OSVersion.indexOf("Windows") >= 0) - { - path = path.replace("file:///", ""); - } - else if (OSVersion.indexOf("Mac") >= 0) - { - path = path.replace("file://", ""); - } - return path; -}; - -/** - * Evaluates a JavaScript script, which can use the JavaScript DOM - * of the host application. - * - * @param script The JavaScript script. - * @param callback Optional. A callback function that receives the result of execution. - * If execution fails, the callback function receives the error message \c EvalScript_ErrMessage. - */ -CSInterface.prototype.evalScript = function(script, callback) -{ - if(callback === null || callback === undefined) - { - callback = function(result){}; - } - window.__adobe_cep__.evalScript(script, callback); -}; - -/** - * Retrieves the unique identifier of the application. - * in which the extension is currently running. - * - * @return The unique ID string. - */ -CSInterface.prototype.getApplicationID = function() -{ - var appId = this.hostEnvironment.appId; - return appId; -}; - -/** - * Retrieves host capability information for the application - * in which the extension is currently running. - * - * @return A \c #HostCapabilities object. - */ -CSInterface.prototype.getHostCapabilities = function() -{ - var hostCapabilities = JSON.parse(window.__adobe_cep__.getHostCapabilities() ); - return hostCapabilities; -}; - -/** - * Triggers a CEP event programmatically. Yoy can use it to dispatch - * an event of a predefined type, or of a type you have defined. - * - * @param event A \c CSEvent object. - */ -CSInterface.prototype.dispatchEvent = function(event) -{ - if (typeof event.data == "object") - { - event.data = JSON.stringify(event.data); - } - - window.__adobe_cep__.dispatchEvent(event); -}; - -/** - * Registers an interest in a CEP event of a particular type, and - * assigns an event handler. - * The event infrastructure notifies your extension when events of this type occur, - * passing the event object to the registered handler function. - * - * @param type The name of the event type of interest. - * @param listener The JavaScript handler function or method. - * @param obj Optional, the object containing the handler method, if any. - * Default is null. - */ -CSInterface.prototype.addEventListener = function(type, listener, obj) -{ - window.__adobe_cep__.addEventListener(type, listener, obj); -}; - -/** - * Removes a registered event listener. - * - * @param type The name of the event type of interest. - * @param listener The JavaScript handler function or method that was registered. - * @param obj Optional, the object containing the handler method, if any. - * Default is null. - */ -CSInterface.prototype.removeEventListener = function(type, listener, obj) -{ - window.__adobe_cep__.removeEventListener(type, listener, obj); -}; - -/** - * Loads and launches another extension, or activates the extension if it is already loaded. - * - * @param extensionId The extension's unique identifier. - * @param startupParams Not currently used, pass "". - * - * @example - * To launch the extension "help" with ID "HLP" from this extension, call: - * requestOpenExtension("HLP", ""); - * - */ -CSInterface.prototype.requestOpenExtension = function(extensionId, params) -{ - window.__adobe_cep__.requestOpenExtension(extensionId, params); -}; - -/** - * Retrieves the list of extensions currently loaded in the current host application. - * The extension list is initialized once, and remains the same during the lifetime - * of the CEP session. - * - * @param extensionIds Optional, an array of unique identifiers for extensions of interest. - * If omitted, retrieves data for all extensions. - * - * @return Zero or more \c #Extension objects. - */ -CSInterface.prototype.getExtensions = function(extensionIds) -{ - var extensionIdsStr = JSON.stringify(extensionIds); - var extensionsStr = window.__adobe_cep__.getExtensions(extensionIdsStr); - - var extensions = JSON.parse(extensionsStr); - return extensions; -}; - -/** - * Retrieves network-related preferences. - * - * @return A JavaScript object containing network preferences. - */ -CSInterface.prototype.getNetworkPreferences = function() -{ - var result = window.__adobe_cep__.getNetworkPreferences(); - var networkPre = JSON.parse(result); - - return networkPre; -}; - -/** - * Initializes the resource bundle for this extension with property values - * for the current application and locale. - * To support multiple locales, you must define a property file for each locale, - * containing keyed display-string values for that locale. - * See localization documentation for Extension Builder and related products. - * - * Keys can be in the - * form key.value="localized string", for use in HTML text elements. - * For example, in this input element, the localized \c key.value string is displayed - * instead of the empty \c value string: - * - * - * - * @return An object containing the resource bundle information. - */ -CSInterface.prototype.initResourceBundle = function() -{ - var resourceBundle = JSON.parse(window.__adobe_cep__.initResourceBundle()); - var resElms = document.querySelectorAll('[data-locale]'); - for (var n = 0; n < resElms.length; n++) - { - var resEl = resElms[n]; - // Get the resource key from the element. - var resKey = resEl.getAttribute('data-locale'); - if (resKey) - { - // Get all the resources that start with the key. - for (var key in resourceBundle) - { - if (key.indexOf(resKey) === 0) - { - var resValue = resourceBundle[key]; - if (key.length == resKey.length) - { - resEl.innerHTML = resValue; - } - else if ('.' == key.charAt(resKey.length)) - { - var attrKey = key.substring(resKey.length + 1); - resEl[attrKey] = resValue; - } - } - } - } - } - return resourceBundle; -}; - -/** - * Writes installation information to a file. - * - * @return The file path. - */ -CSInterface.prototype.dumpInstallationInfo = function() -{ - return window.__adobe_cep__.dumpInstallationInfo(); -}; - -/** - * Retrieves version information for the current Operating System, - * See http://www.useragentstring.com/pages/Chrome/ for Chrome \c navigator.userAgent values. - * - * @return A string containing the OS version, or "unknown Operation System". - * If user customizes the User Agent by setting CEF command parameter "--user-agent", only - * "Mac OS X" or "Windows" will be returned. - */ -CSInterface.prototype.getOSInformation = function() -{ - var userAgent = navigator.userAgent; - - if ((navigator.platform == "Win32") || (navigator.platform == "Windows")) - { - var winVersion = "Windows"; - var winBit = ""; - if (userAgent.indexOf("Windows") > -1) - { - if (userAgent.indexOf("Windows NT 5.0") > -1) - { - winVersion = "Windows 2000"; - } - else if (userAgent.indexOf("Windows NT 5.1") > -1) - { - winVersion = "Windows XP"; - } - else if (userAgent.indexOf("Windows NT 5.2") > -1) - { - winVersion = "Windows Server 2003"; - } - else if (userAgent.indexOf("Windows NT 6.0") > -1) - { - winVersion = "Windows Vista"; - } - else if (userAgent.indexOf("Windows NT 6.1") > -1) - { - winVersion = "Windows 7"; - } - else if (userAgent.indexOf("Windows NT 6.2") > -1) - { - winVersion = "Windows 8"; - } - else if (userAgent.indexOf("Windows NT 6.3") > -1) - { - winVersion = "Windows 8.1"; - } - else if (userAgent.indexOf("Windows NT 10") > -1) - { - winVersion = "Windows 10"; - } - - if (userAgent.indexOf("WOW64") > -1 || userAgent.indexOf("Win64") > -1) - { - winBit = " 64-bit"; - } - else - { - winBit = " 32-bit"; - } - } - - return winVersion + winBit; - } - else if ((navigator.platform == "MacIntel") || (navigator.platform == "Macintosh")) - { - var result = "Mac OS X"; - - if (userAgent.indexOf("Mac OS X") > -1) - { - result = userAgent.substring(userAgent.indexOf("Mac OS X"), userAgent.indexOf(")")); - result = result.replace(/_/g, "."); - } - - return result; - } - - return "Unknown Operation System"; -}; - -/** - * Opens a page in the default system browser. - * - * Since 4.2.0 - * - * @param url The URL of the page/file to open, or the email address. - * Must use HTTP/HTTPS/file/mailto protocol. For example: - * "http://www.adobe.com" - * "https://github.com" - * "file:///C:/log.txt" - * "mailto:test@adobe.com" - * - * @return One of these error codes:\n - *
    \n - *
  • NO_ERROR - 0
  • \n - *
  • ERR_UNKNOWN - 1
  • \n - *
  • ERR_INVALID_PARAMS - 2
  • \n - *
  • ERR_INVALID_URL - 201
  • \n - *
\n - */ -CSInterface.prototype.openURLInDefaultBrowser = function(url) -{ - return cep.util.openURLInDefaultBrowser(url); -}; - -/** - * Retrieves extension ID. - * - * Since 4.2.0 - * - * @return extension ID. - */ -CSInterface.prototype.getExtensionID = function() -{ - return window.__adobe_cep__.getExtensionId(); -}; - -/** - * Retrieves the scale factor of screen. - * On Windows platform, the value of scale factor might be different from operating system's scale factor, - * since host application may use its self-defined scale factor. - * - * Since 4.2.0 - * - * @return One of the following float number. - *
    \n - *
  • -1.0 when error occurs
  • \n - *
  • 1.0 means normal screen
  • \n - *
  • >1.0 means HiDPI screen
  • \n - *
\n - */ -CSInterface.prototype.getScaleFactor = function() -{ - return window.__adobe_cep__.getScaleFactor(); -}; - -/** - * Set a handler to detect any changes of scale factor. This only works on Mac. - * - * Since 4.2.0 - * - * @param handler The function to be called when scale factor is changed. - * - */ -CSInterface.prototype.setScaleFactorChangedHandler = function(handler) -{ - window.__adobe_cep__.setScaleFactorChangedHandler(handler); -}; - -/** - * Retrieves current API version. - * - * Since 4.2.0 - * - * @return ApiVersion object. - * - */ -CSInterface.prototype.getCurrentApiVersion = function() -{ - var apiVersion = JSON.parse(window.__adobe_cep__.getCurrentApiVersion()); - return apiVersion; -}; - -/** - * Set panel flyout menu by an XML. - * - * Since 5.2.0 - * - * Register a callback function for "com.adobe.csxs.events.flyoutMenuClicked" to get notified when a - * menu item is clicked. - * The "data" attribute of event is an object which contains "menuId" and "menuName" attributes. - * - * Register callback functions for "com.adobe.csxs.events.flyoutMenuOpened" and "com.adobe.csxs.events.flyoutMenuClosed" - * respectively to get notified when flyout menu is opened or closed. - * - * @param menu A XML string which describes menu structure. - * An example menu XML: - * - * - * - * - * - * - * - * - * - * - * - * - */ -CSInterface.prototype.setPanelFlyoutMenu = function(menu) -{ - if ("string" != typeof menu) - { - return; - } - - window.__adobe_cep__.invokeSync("setPanelFlyoutMenu", menu); -}; - -/** - * Updates a menu item in the extension window's flyout menu, by setting the enabled - * and selection status. - * - * Since 5.2.0 - * - * @param menuItemLabel The menu item label. - * @param enabled True to enable the item, false to disable it (gray it out). - * @param checked True to select the item, false to deselect it. - * - * @return false when the host application does not support this functionality (HostCapabilities.EXTENDED_PANEL_MENU is false). - * Fails silently if menu label is invalid. - * - * @see HostCapabilities.EXTENDED_PANEL_MENU - */ -CSInterface.prototype.updatePanelMenuItem = function(menuItemLabel, enabled, checked) -{ - var ret = false; - if (this.getHostCapabilities().EXTENDED_PANEL_MENU) - { - var itemStatus = new MenuItemStatus(menuItemLabel, enabled, checked); - ret = window.__adobe_cep__.invokeSync("updatePanelMenuItem", JSON.stringify(itemStatus)); - } - return ret; -}; - - -/** - * Set context menu by XML string. - * - * Since 5.2.0 - * - * There are a number of conventions used to communicate what type of menu item to create and how it should be handled. - * - an item without menu ID or menu name is disabled and is not shown. - * - if the item name is "---" (three hyphens) then it is treated as a separator. The menu ID in this case will always be NULL. - * - Checkable attribute takes precedence over Checked attribute. - * - a PNG icon. For optimal display results please supply a 16 x 16px icon as larger dimensions will increase the size of the menu item. - The Chrome extension contextMenus API was taken as a reference. - https://developer.chrome.com/extensions/contextMenus - * - the items with icons and checkable items cannot coexist on the same menu level. The former take precedences over the latter. - * - * @param menu A XML string which describes menu structure. - * @param callback The callback function which is called when a menu item is clicked. The only parameter is the returned ID of clicked menu item. - * - * @description An example menu XML: - * - * - * - * - * - * - * - * - * - * - * - */ -CSInterface.prototype.setContextMenu = function(menu, callback) -{ - if ("string" != typeof menu) - { - return; - } - - window.__adobe_cep__.invokeAsync("setContextMenu", menu, callback); -}; - -/** - * Set context menu by JSON string. - * - * Since 6.0.0 - * - * There are a number of conventions used to communicate what type of menu item to create and how it should be handled. - * - an item without menu ID or menu name is disabled and is not shown. - * - if the item label is "---" (three hyphens) then it is treated as a separator. The menu ID in this case will always be NULL. - * - Checkable attribute takes precedence over Checked attribute. - * - a PNG icon. For optimal display results please supply a 16 x 16px icon as larger dimensions will increase the size of the menu item. - The Chrome extension contextMenus API was taken as a reference. - * - the items with icons and checkable items cannot coexist on the same menu level. The former take precedences over the latter. - https://developer.chrome.com/extensions/contextMenus - * - * @param menu A JSON string which describes menu structure. - * @param callback The callback function which is called when a menu item is clicked. The only parameter is the returned ID of clicked menu item. - * - * @description An example menu JSON: - * - * { - * "menu": [ - * { - * "id": "menuItemId1", - * "label": "testExample1", - * "enabled": true, - * "checkable": true, - * "checked": false, - * "icon": "./image/small_16X16.png" - * }, - * { - * "id": "menuItemId2", - * "label": "testExample2", - * "menu": [ - * { - * "id": "menuItemId2-1", - * "label": "testExample2-1", - * "menu": [ - * { - * "id": "menuItemId2-1-1", - * "label": "testExample2-1-1", - * "enabled": false, - * "checkable": true, - * "checked": true - * } - * ] - * }, - * { - * "id": "menuItemId2-2", - * "label": "testExample2-2", - * "enabled": true, - * "checkable": true, - * "checked": true - * } - * ] - * }, - * { - * "label": "---" - * }, - * { - * "id": "menuItemId3", - * "label": "testExample3", - * "enabled": false, - * "checkable": true, - * "checked": false - * } - * ] - * } - * - */ -CSInterface.prototype.setContextMenuByJSON = function(menu, callback) -{ - if ("string" != typeof menu) - { - return; - } - - window.__adobe_cep__.invokeAsync("setContextMenuByJSON", menu, callback); -}; - -/** - * Updates a context menu item by setting the enabled and selection status. - * - * Since 5.2.0 - * - * @param menuItemID The menu item ID. - * @param enabled True to enable the item, false to disable it (gray it out). - * @param checked True to select the item, false to deselect it. - */ -CSInterface.prototype.updateContextMenuItem = function(menuItemID, enabled, checked) -{ - var itemStatus = new ContextMenuItemStatus(menuItemID, enabled, checked); - ret = window.__adobe_cep__.invokeSync("updateContextMenuItem", JSON.stringify(itemStatus)); -}; - -/** - * Get the visibility status of an extension window. - * - * Since 6.0.0 - * - * @return true if the extension window is visible; false if the extension window is hidden. - */ -CSInterface.prototype.isWindowVisible = function() -{ - return window.__adobe_cep__.invokeSync("isWindowVisible", ""); -}; - -/** - * Resize extension's content to the specified dimensions. - * 1. Works with modal and modeless extensions in all Adobe products. - * 2. Extension's manifest min/max size constraints apply and take precedence. - * 3. For panel extensions - * 3.1 This works in all Adobe products except: - * * Premiere Pro - * * Prelude - * * After Effects - * 3.2 When the panel is in certain states (especially when being docked), - * it will not change to the desired dimensions even when the - * specified size satisfies min/max constraints. - * - * Since 6.0.0 - * - * @param width The new width - * @param height The new height - */ -CSInterface.prototype.resizeContent = function(width, height) -{ - window.__adobe_cep__.resizeContent(width, height); -}; - -/** - * Register the invalid certificate callback for an extension. - * This callback will be triggered when the extension tries to access the web site that contains the invalid certificate on the main frame. - * But if the extension does not call this function and tries to access the web site containing the invalid certificate, a default error page will be shown. - * - * Since 6.1.0 - * - * @param callback the callback function - */ -CSInterface.prototype.registerInvalidCertificateCallback = function(callback) -{ - return window.__adobe_cep__.registerInvalidCertificateCallback(callback); -}; - -/** - * Register an interest in some key events to prevent them from being sent to the host application. - * - * This function works with modeless extensions and panel extensions. - * Generally all the key events will be sent to the host application for these two extensions if the current focused element - * is not text input or dropdown, - * If you want to intercept some key events and want them to be handled in the extension, please call this function - * in advance to prevent them being sent to the host application. - * - * Since 6.1.0 - * - * @param keyEventsInterest A JSON string describing those key events you are interested in. A null object or - an empty string will lead to removing the interest - * - * This JSON string should be an array, each object has following keys: - * - * keyCode: [Required] represents an OS system dependent virtual key code identifying - * the unmodified value of the pressed key. - * ctrlKey: [optional] a Boolean that indicates if the control key was pressed (true) or not (false) when the event occurred. - * altKey: [optional] a Boolean that indicates if the alt key was pressed (true) or not (false) when the event occurred. - * shiftKey: [optional] a Boolean that indicates if the shift key was pressed (true) or not (false) when the event occurred. - * metaKey: [optional] (Mac Only) a Boolean that indicates if the Meta key was pressed (true) or not (false) when the event occurred. - * On Macintosh keyboards, this is the command key. To detect Windows key on Windows, please use keyCode instead. - * An example JSON string: - * - * [ - * { - * "keyCode": 48 - * }, - * { - * "keyCode": 123, - * "ctrlKey": true - * }, - * { - * "keyCode": 123, - * "ctrlKey": true, - * "metaKey": true - * } - * ] - * - */ -CSInterface.prototype.registerKeyEventsInterest = function(keyEventsInterest) -{ - return window.__adobe_cep__.registerKeyEventsInterest(keyEventsInterest); -}; - -/** - * Set the title of the extension window. - * This function works with modal and modeless extensions in all Adobe products, and panel extensions in Photoshop, InDesign, InCopy, Illustrator, Flash Pro and Dreamweaver. - * - * Since 6.1.0 - * - * @param title The window title. - */ -CSInterface.prototype.setWindowTitle = function(title) -{ - window.__adobe_cep__.invokeSync("setWindowTitle", title); -}; - -/** - * Get the title of the extension window. - * This function works with modal and modeless extensions in all Adobe products, and panel extensions in Photoshop, InDesign, InCopy, Illustrator, Flash Pro and Dreamweaver. - * - * Since 6.1.0 - * - * @return The window title. - */ -CSInterface.prototype.getWindowTitle = function() -{ - return window.__adobe_cep__.invokeSync("getWindowTitle", ""); -}; diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/jquery-2.0.2.min.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/jquery-2.0.2.min.js deleted file mode 100644 index 73e5218d21..0000000000 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/jquery-2.0.2.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! jQuery v2.0.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license -//@ sourceMappingURL=jquery-2.0.2.min.map -*/ -(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.2",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=at(),k=at(),N=at(),E=!1,S=function(){return 0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],H=L.pop,q=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){q.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=vt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+xt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return St(e.replace(z,"$1"),t,r,i)}function st(e){return Q.test(e+"")}function at(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function ut(e){return e[v]=!0,e}function lt(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t,n){e=e.split("|");var r,o=e.length,s=n?null:t;while(o--)(r=i.attrHandle[e[o]])&&r!==t||(i.attrHandle[e[o]]=s)}function pt(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function ft(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function ht(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:undefined}function dt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function gt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function mt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function yt(e){return ut(function(t){return t=+t,ut(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.parentWindow;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.frameElement&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=lt(function(e){return e.innerHTML="",ct("type|href|height|width",ft,"#"===e.firstChild.getAttribute("href")),ct(R,pt,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),n.input=lt(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),ct("value",ht,n.attributes&&n.input),n.getElementsByTagName=lt(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=lt(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=lt(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=st(t.querySelectorAll))&&(lt(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),lt(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=st(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&<(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=st(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},n.sortDetached=lt(function(e){return 1&e.compareDocumentPosition(t.createElement("div"))}),S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return dt(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?dt(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:ut,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===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]||ot.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]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=vt(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(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ut(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ut(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?ut(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ut(function(e){return function(t){return ot(e,t).length>0}}),contains:ut(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ut(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:yt(function(){return[0]}),last:yt(function(e,t){return[t-1]}),eq:yt(function(e,t,n){return[0>n?n+t:n]}),even:yt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:yt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:yt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:yt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=gt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=mt(t);function vt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function xt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function bt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function wt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Tt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function Ct(e,t,n,r,i,o){return r&&!r[v]&&(r=Ct(r)),i&&!i[v]&&(i=Ct(i,o)),ut(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Et(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:Tt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=Tt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=Tt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function kt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=bt(function(e){return e===t},a,!0),p=bt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[bt(wt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return Ct(l>1&&wt(f),l>1&&xt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&kt(e.slice(l,r)),o>r&&kt(e=e.slice(r)),o>r&&xt(e))}f.push(n)}return wt(f)}function Nt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=H.call(f));y=Tt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?ut(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=vt(e)),n=t.length;while(n--)o=kt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Nt(i,r))}return o};function Et(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function St(e,t,r,o){var s,u,l,c,p,f=vt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&xt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}i.pseudos.nth=i.pseudos.eq;function jt(){}jt.prototype=i.filters=i.pseudos,i.setFilters=new jt,n.sortStable=v.split("").sort(S).join("")===v,c(),[0,0].sort(S),n.detectDuplicates=E,x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!a||n&&!u||(r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,H,q=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){return t===undefined||t&&"string"==typeof t&&n===undefined?this.get(e,t):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,H=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||H.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return H.access(e,t,n)},_removeData:function(e,t){H.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!H.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));H.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:q.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=H.get(e,t),n&&(!r||x.isArray(n)?r=H.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire() -},_queueHooks:function(e,t){var n=t+"queueHooks";return H.get(e,n)||H.access(e,n,{empty:x.Callbacks("once memory").add(function(){H.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=H.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,i="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,s=0,a=x(this),u=t,l=e.match(w)||[];while(o=l[s++])u=i?u:!a.hasClass(o),a[u?"addClass":"removeClass"](o)}else(n===r||"boolean"===n)&&(this.className&&H.set(this,"__className__",this.className),this.className=this.className||e===!1?"":H.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=H.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=H.hasData(e)&&H.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,H.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(H.get(a,"events")||{})[t.type]&&H.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(H.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!H.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.firstChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[H.expando],o&&(t=H.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);H.cache[o]&&delete H.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)H.set(e[r],"globalEval",!t||H.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(H.hasData(e)&&(o=H.access(e),s=H.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++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function Ht(t){return e.getComputedStyle(t,null)}function qt(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=H.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=H.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&H.set(r,"olddisplay",i?n:x.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}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=Ht(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return qt(this,!0)},hide:function(){return qt(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:Lt(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||Ht(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Ht(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("