CVE-2023-4878 (published 2023-09-10T18:15Z)

Server-Side Request Forgery (SSRF) in GitHub repository instantsoft/icms2 prior to 2.16.1-git.

CVSS v3 base score: 5.4, MEDIUM (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N)

Weakness information:
cwe_id: CWE-918
cwe_name: Server-Side Request Forgery (SSRF)
description: The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
extended_description: By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
         

Fix information:
repo_url: https://github.com/instantsoft/icms2
commit_details: repo_url: https://github.com/instantsoft/icms2
author: fuzegit
author_date: 2023-09-10 20:46:58+03:00
msg: Fixed xss in admin panel, complete fix SSRF in upload by link, option for store via html filter, jQuery v3.7.1, update Toastr.
repository: repo_url: https://github.com/instantsoft/icms2
repo_name: instantsoft/icms2
description: Self-hosted Site Management System
repo_language: PHP
owner: instantsoft
file_changes: filename: widgets.php
change_type: ModificationType.MODIFY
diff: @@ -101,18 +101,18 @@ class actionAdminWidgets extends cmsAction {
 
                 list($type, $value) = explode(':', $block);
 
-                if ($type == 'position') {
-                    $replace_html = '<ul class="position" rel="' . $value . '" id="pos-' . $value . '"></ul>';
+                if ($type === 'position') {
+                    $replace_html = '<ul class="position" rel="' . html($value, false) . '" id="pos-' . html($value, false) . '"></ul>';
                 }
 
-                if ($type == 'block') {
+                if ($type === 'block') {
                     if (mb_strpos($value, 'LANG_') === 0) {
                         $value = constant($value);
                     }
                     $replace_html = '<div class="block"><span>' . $value . '</span></div>';
                 }
 
-                if ($type == 'cell') {
+                if ($type === 'cell') {
                     if (mb_strpos($value, 'LANG_') === 0) {
                         $value = constant($value);
                     }

programming_language: PHP
filename: form_ctypes_basic.php
change_type: ModificationType.MODIFY
diff: @@ -82,6 +82,7 @@ class formAdminCtypesBasic extends cmsForm {
                     new fieldHtml('description', [
                         'title' => LANG_DESCRIPTION,
                         'can_multilanguage' => true,
+                        'store_via_html_filter' => true,
                         'multilanguage_params' => [
                             'is_table_field' => true,
                             'table' => 'content_types'

programming_language: PHP
filename: form_ctypes_dataset.php
change_type: ModificationType.MODIFY
diff: @@ -67,6 +67,7 @@ class formAdminCtypesDataset extends cmsForm {
                     ]),
                     new fieldHtml('description', [
                         'title' => LANG_DESCRIPTION,
+                        'store_via_html_filter' => true,
                         'can_multilanguage' => true,
                         'multilanguage_params' => [
                             'is_table_field' => true,

programming_language: PHP
filename: form_ctypes_filter.php
change_type: ModificationType.MODIFY
diff: @@ -128,6 +128,7 @@ class formAdminCtypesFilter extends cmsForm {
                     new fieldHtml('description', [
                         'title' => LANG_DESCRIPTION,
                         'hint' => LANG_CP_FILTER_DESC_HINT,
+                        'store_via_html_filter' => true,
                         'can_multilanguage' => true,
                         'multilanguage_params' => [
                             'is_table_field' => true,

programming_language: PHP
filename: form_widgets_cols.php
change_type: ModificationType.MODIFY
diff: @@ -20,6 +20,7 @@ class formAdminWidgetsCols extends cmsForm {
                         'hint' => LANG_CP_WIDGETS_COL_NAME_HINT,
                         'rules' => array(
                             array('max_length', 50),
+                            array('sysname'),
                             array(function($controller, $data, $value) use($do, $col_id, $row){
 
                                 if (empty($value)) { return true; }

programming_language: PHP
filename: form_widgets_import_scheme.php
change_type: ModificationType.MODIFY
diff: @@ -38,7 +38,7 @@ class formAdminWidgetsImportScheme extends cmsForm {
                             'title' => LANG_CP_WIDGETS_LFILE,
                             'hint'  => LANG_CP_WIDGETS_LFILE_HINT,
                             'options' => [
-                                'extensions' => 'yaml'
+                                'extensions' => 'txt'
                             ]
                         ])
                     ]

programming_language: PHP
filename: model.php
change_type: ModificationType.MODIFY
diff: @@ -239,8 +239,9 @@ class modelMenu extends cmsModel {
                 }
 
                 $is_external = mb_strpos($item['url'], '://') !== false;
+                $is_hash = mb_strpos($item['url'], '#') === 0;
 
-                if (!$is_root_added && !$is_external) {
+                if (!$is_root_added && !$is_external && !$is_hash) {
                     $item['url'] = href_to($item['url']);
                 }
             }

programming_language: PHP
filename: uploader.php
change_type: ModificationType.MODIFY
diff: @@ -292,7 +292,7 @@ class cmsUploader {
         $dest_size  = (int) $_FILES[$filename]['size'];
         $dest_name  = files_sanitize_name($_FILES[$filename]['name']);
 
-        $file = new cmsUploadfile($source, $this->allowed_mime);
+        $file = cmsUploadfile::fromPath($source, $this->allowed_mime);
 
         if (!$file->isAllowed()) {
             return [
@@ -341,12 +341,12 @@ class cmsUploader {
 
         $link = $file_name = trim($_POST[$post_filename]);
 
+        $url_data = parse_url($link);
 
+        // Валидный URL с PATH
         if (
-            // Валидный URL с PATH
             filter_var($link, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) !== $link ||
-            // По IP адресу не разрешаем
-            preg_match('#^(?:(?:https?):\/\/)([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*#ui', $link)
+            empty($url_data['host'])
             ) {
 
             return [
@@ -357,6 +357,32 @@ class cmsUploader {
             ];
         }
 
+        // Узнаём ipv4 адрес хоста, gethostbyname умеет только ipv4
+        $host_ip = gethostbyname($url_data['host']);
+        // Не зарезольвили
+        if ($host_ip === $url_data['host']) {
+            return [
+                'success' => false,
+                'error'   => 'Not allowed',
+                'name'    => '',
+                'path'    => ''
+            ];
+        }
+
+        // Проверяем вхождение в зарезервированные сети
+        if(filter_var(
+            $host_ip,
+            FILTER_VALIDATE_IP,
+            FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE |  FILTER_FLAG_NO_RES_RANGE
+        ) !== $host_ip){
+            return [
+                'success' => false,
+                'error'   => 'Not allowed',
+                'name'    => '',
+                'path'    => ''
+            ];
+        }
+
         // проверяем редирект и имя файла
         $curl = curl_init();
         curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS | CURLPROTO_HTTP);
@@ -374,8 +400,7 @@ class cmsUploader {
             $url = trim($matches[1]);
 
             if (strpos($url, 'http') !== 0) {
-                $url_data = parse_url($link);
-                $link     = $url_data['scheme'] . '://' . $url_data['host'] . $url;
+                $link = $url_data['scheme'] . '://' . $url_data['host'] . $url;
             } else {
                 $link = $url;
             }
@@ -442,7 +467,7 @@ class cmsUploader {
      */
     private function saveFileFromString($file_bin, $allowed_size, $destination, $dest_name) {
 
-        $file = new cmsUploadfile($file_bin, $this->allowed_mime);
+        $file = cmsUploadfile::fromString($file_bin, $this->allowed_mime);
 
         if (!$file->isAllowed()) {
             return [

programming_language: PHP
filename: uploadfile.php
change_type: ModificationType.MODIFY
diff: @@ -6,22 +6,45 @@ class cmsUploadfile {
     private $mime_types;
     private $allowed_mime;
 
-    public function __construct($file_path, $allowed_mime = null) {
+    public static function fromPath($file_path, $allowed_mime = null) {
+
+        $self = new self($allowed_mime);
+
+        $self->loadMimeFromPath($file_path);
+
+        return $self;
+    }
+
+    public static function fromString($file_str, $allowed_mime = null) {
+
+        $self = new self($allowed_mime);
+
+        $self->loadMimeFromString($file_str);
+
+        return $self;
+    }
+
+    public function __construct($allowed_mime = null) {
 
         $this->allowed_mime = $allowed_mime;
 
         $this->mime_types = (new cmsConfigs('mimetypes.php'))->getAll();
+    }
+
+    public function loadMimeFromPath($file_path) {
 
         $finfo = finfo_open(FILEINFO_MIME_TYPE);
 
-        if(strpos($file_path, DIRECTORY_SEPARATOR) === 0){
+        $this->file_mime = finfo_file($finfo, $file_path);
+
+        finfo_close($finfo);
+    }
 
-            $this->file_mime = finfo_file($finfo, $file_path);
+    public function loadMimeFromString($file_str) {
 
-        } else {
+        $finfo = finfo_open(FILEINFO_MIME_TYPE);
 
-            $this->file_mime = finfo_buffer($finfo, $file_path);
-        }
+        $this->file_mime = finfo_buffer($finfo, $file_str);
 
         finfo_close($finfo);
     }

programming_language: PHP
filename: html.php
change_type: ModificationType.MODIFY
diff: @@ -203,6 +203,21 @@ class fieldHtml extends cmsFormField {
         return $model->filterLike($this->name, "%{$value}%");
     }
 
+    public function store($value, $is_submitted, $old_value = null) {
+
+        if($this->getProperty('store_via_html_filter')){
+
+            $value = cmsEventsManager::hook('html_filter', [
+                'text'                => $value,
+                'is_auto_br'          => false,
+                'build_smiles'        => $this->getOption('editor') === 'markitup',
+                'build_redirect_link' => (bool)$this->getOption('build_redirect_link')
+            ]);
+        }
+
+        return $value;
+    }
+
     public function afterStore($item, $model, $action) {
 
         if ($action === 'add' && !empty($item[$this->name])) {

programming_language: PHP
filename: admin.php
change_type: ModificationType.MODIFY
diff: @@ -401,7 +401,7 @@
     define('LANG_CP_WIDGETS_IMPORT_SCHEME',     'Import schema');
     define('LANG_CP_WIDGETS_IMPORT_TYPE',       'Where import?');
     define('LANG_CP_WIDGETS_IMPORT_TYPE_EX',    'Existing template');
-    define('LANG_CP_WIDGETS_LFILE',             'Schema file');
+    define('LANG_CP_WIDGETS_LFILE',             'Scheme text file in YAML format');
     define('LANG_CP_WIDGETS_LFILE_HINT',        'If the schema already exists, it will be replaced with the imported one. Make a backup if necessary.');
     define('LANG_CP_WIDGETS_EXPORT_SCHEME',     'Export schema');
     define('LANG_CP_WIDGETS_FROM_TEMPLATE',     'Template from which to import scheme');

programming_language: SQL
filename: admin.php
change_type: ModificationType.MODIFY
diff: @@ -421,7 +421,7 @@
     define('LANG_CP_WIDGETS_IMPORT_SCHEME',     'Импортировать схему');
     define('LANG_CP_WIDGETS_IMPORT_TYPE',       'Откуда импортируем?');
     define('LANG_CP_WIDGETS_IMPORT_TYPE_EX',    'Существующий шаблон');
-    define('LANG_CP_WIDGETS_LFILE',             'Файл схемы');
+    define('LANG_CP_WIDGETS_LFILE',             'Текстовый файл схемы в YAML формате');
     define('LANG_CP_WIDGETS_LFILE_HINT',        'Если схема уже существует, будет заменена на импортированную. При необходимости сделайте резервную копию.');
     define('LANG_CP_WIDGETS_EXPORT_SCHEME',     'Экспортировать схему');
     define('LANG_CP_WIDGETS_FROM_TEMPLATE',     'Шаблон, с которого импортировать схему');

programming_language: PHP
filename: strings.helper.php
change_type: ModificationType.MODIFY
diff: @@ -963,7 +963,7 @@ function nf_amount($value, $decimals = 2, $thousands_sep = ' ') {
 
     $value = number_format(floatval($value), $decimals, '.', $thousands_sep);
 
-    return rtrim(rtrim($value, '0'), '.');
+    return strpos($value, '.') !== false ? rtrim(rtrim($value, '0'), '.') : $value;
 }
 
 /**

programming_language: PHP
filename: file.tpl.php
change_type: ModificationType.MODIFY
diff: @@ -28,4 +28,14 @@
     <?php if($field->data['max_size_mb']){ ?>
         <div class="hint text-muted small"><?php printf(LANG_PARSER_FILE_SIZE_FIELD_HINT, files_format_bytes($field->data['max_size_mb'])); ?></div>
     <?php } ?>
-</div>
\ No newline at end of file
+</div>
+
+<?php ob_start(); ?>
+<script>
+    $(function(){
+        $('#<?php echo $field->id; ?>').on('change',function(){
+            $(this).next('.custom-file-label').text($(this).val().replace('C:\\fakepath\\', ''));
+        });
+    });
+</script>
+<?php $this->addBottom(ob_get_clean()); ?>
\ No newline at end of file

programming_language: PHP
filename: widgets_scheme.tpl.php
change_type: ModificationType.MODIFY
diff: @@ -21,7 +21,7 @@
         <div class="w-100 d-md-none"></div>
     <?php } ?>
     <div class="col-sm-12 layout-row-body <?php if(!$row['parent_id'] ){ ?>layout-row-parent<?php } ?> <?php if(!$row['parent_id'] && $rows_titles_pos == 'left'){ ?>col-lg-10<?php } ?> bg-white">
-        <div class="row no-gutters widgets-layout-scheme-col-wrap <?php echo $row['options']['vertical_align']; ?> <?php echo $row['options']['horizontal_align']; ?>">
+        <div class="row no-gutters widgets-layout-scheme-col-wrap <?php html($row['options']['vertical_align']); ?> <?php html($row['options']['horizontal_align']); ?>">
         <?php foreach ($row['cols'] as $col) { ?>
             <?php if(!empty($col['options']['cut_before'])){ ?>
                 <div class="w-100"></div>
@@ -49,7 +49,7 @@
                 <?php if(!empty($col['rows']['before'])){ ?>
                     <?php $this->renderChild('widgets_scheme', ['rows' => $col['rows']['before'], 'rows_titles_pos' => $rows_titles_pos]); ?>
                 <?php } ?>
-                <div class="layout-col-title d-flex justify-content-between" data-toggle="tooltip" data-placement="top" title="<?php echo $col['name'].($col_width_list ? ': '.implode(', ', $col_width_list) : ''); ?>">
+                <div class="layout-col-title d-flex justify-content-between" data-toggle="tooltip" data-placement="top" title="<?php html($col['name'].($col_width_list ? ': '.implode(', ', $col_width_list) : '')); ?>">
                     <span><?php echo $col['title']; ?> (<?php echo $width_hint; ?>)</span>
                     <div class="layout-scheme-actions d-flex align-items-center">
                         <?php if(!$row['parent_id']){ ?>

programming_language: PHP
filename: files.js
change_type: ModificationType.MODIFY
diff: @@ -4,12 +4,6 @@ icms.files = (function ($) {
 
     this.url_delete = '';
 
-    this.onDocumentReady = function(){
-        $('.custom-file-input').on('change',function(){
-            $(this).next('.custom-file-label').text($(this).val().replace('C:\\fakepath\\', ''));
-        });
-    };
-
     this.remove = function(file_id){
 
         $('#f_'+file_id+' #file_'+file_id).remove();

programming_language: JavaScript
filename: jquery.js
change_type: ModificationType.MODIFY
diff: @@ -1,2 +1,2 @@
-/*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i)return e.textContent;if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=ce.text(t);return n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,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(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===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]||I.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]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(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(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:X(!1),disabled:X(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:U(function(){return[0]}),last:U(function(e,t){return[t-1]}),eq:U(function(e,t,n){return[n<0?n+t:n]}),even:U(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:U(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:U(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:U(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&z(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&z(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var R=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)R(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},M=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(M,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,X=new B,U=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,z=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(z,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:U.test(i)?JSON.parse(i):i)}catch(e){}X.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return X.hasData(e)||_.hasData(e)},data:function(e,t,n){return X.access(e,t,n)},removeData:function(e,t){X.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=X.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){X.set(this,n)}):R(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=X.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){X.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){X.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(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!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Re=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);X.hasData(e)&&(o=X.access(e),a=ce.extend({},o),X.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Re,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[X.expando]&&(n[X.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return R(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Me(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Me(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return R(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),Xe=/^--/,Ue=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},ze=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=Xe.test(t),u=e.style;return(n=n||Ue(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Ue(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=Xe.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return Xe.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):ze(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Ue(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-ze(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return R(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ue(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return R(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return R(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Rt=/%20/g,Mt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},Xt="*/".concat("*"),Ut=C.createElement("a");function zt(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Ut.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Xt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:zt(Bt),ajaxTransport:zt(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Ut.protocol+"//"+Ut.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Mt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Rt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Xt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(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(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
\ No newline at end of file
+/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,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(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===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]||I.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]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(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(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Z(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!=w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ne={};function re(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Le(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=ce.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((ce.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<ce(i,this).index(l):ce.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(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!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function Ye(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u).appendChild(l);var e=ie.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&ie.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(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(n){return v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Yt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&ie.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
\ No newline at end of file

programming_language: JavaScript
filename: toastr.min.js
change_type: ModificationType.MODIFY
diff: @@ -1 +1 @@
-!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'<button type="button">&times;</button>',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e("<div/>"),c=e("<div/>"),p=e("<div/>"),f=e("<div/>"),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
\ No newline at end of file
+!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'<button type="button">&times;</button>',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("<div/>"),M=e("<div/>"),B=e("<div/>"),q=e("<div/>"),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.4",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
\ No newline at end of file

programming_language: JavaScript
filename: redactor.js
change_type: ModificationType.MODIFY
diff: @@ -1,6 +1,7 @@
 /*
 	Redactor v9.2.6
 	Updated: Jul 19, 2014
+    Modified By InstantCMS Team
 	http://imperavi.com/redactor/
 	Copyright (c) 2009-2014, Imperavi LLC.
 	License: http://imperavi.com/redactor/license/
@@ -370,9 +371,9 @@
 
 					if ($.inArray('p', this.opts.allowedTags) === '-1') this.opts.allowedTags.push('p');
 
-					for (i in arrSearch)
+					for (let i in arrSearch)
 					{
-						if ($.inArray(arrSearch[i], this.opts.allowedTags) != '-1') this.opts.allowedTags.push(arrAdd[i]);
+						if ($.inArray(arrSearch[i], this.opts.allowedTags) != '-1')  { this.opts.allowedTags.push(arrAdd[i]); }
 					}
 				}
 
@@ -666,7 +667,7 @@
 					title: lang.horizontalrule
 				}
 
-			}
+			};
 		},
 
 		callback: function(type, event, data)
@@ -947,7 +948,7 @@
 			if (this.start === false)
 			{
 
-				if (typeof e != 'undefined')
+				if (typeof e !== 'undefined')
 				{
 					switch(e.which)
 					{
@@ -980,7 +981,7 @@
 			html = html.replace(/<\/a>&nbsp;/gi, '<\/a> ');
 			html = html.replace(/\u200B/g, '');
 
-			if (html == '<p></p>' || html == '<p> </p>' || html == '<p>&nbsp;</p>')
+			if (html === '<p></p>' || html === '<p> </p>' || html === '<p>&nbsp;</p>')
 			{
 				html = '';
 			}
@@ -1200,7 +1201,7 @@
 			});
 			this.$editor.on('blur.redactor', $.proxy(function(e)
 			{
-				if (!$(clickedElement).hasClass('redactor_toolbar') && $(clickedElement).parents('.redactor_toolbar').length == 0)
+				if (!$(clickedElement).hasClass('redactor_toolbar') && $(clickedElement).parents('.redactor_toolbar').length === 0)
 				{
 					this.selectall = false;
 					if ($.isFunction(this.opts.blurCallback)) this.callback('blur', e);
@@ -1215,13 +1216,13 @@
 			if (window.FormData === undefined || !e.dataTransfer) return true;
 
 		    var length = e.dataTransfer.files.length;
-		    if (length == 0) return true;
+		    if (length === 0) return true;
 
 		    e.preventDefault();
 
 	        var file = e.dataTransfer.files[0];
 
-	        if (this.opts.dnbImageTypes !== false && this.opts.dnbImageTypes.indexOf(file.type) == -1)
+	        if (this.opts.dnbImageTypes !== false && this.opts.dnbImageTypes.indexOf(file.type) === -1)
 	        {
 		        return true;
 	        }
@@ -1367,11 +1368,11 @@
 				if (parent && $(parent)[0].tagName === 'BLOCKQUOTE') this.insertAfterLastElement(parent);
 				if (current && $(current)[0].tagName === 'BLOCKQUOTE') this.insertAfterLastElement(current);
 
-				if (parent && $(parent)[0].tagName === 'P' && $(parent).parent()[0].tagName == 'BLOCKQUOTE')
+				if (parent && $(parent)[0].tagName === 'P' && $(parent).parent()[0].tagName === 'BLOCKQUOTE')
 				{
 					this.insertAfterLastElement(parent, $(parent).parent()[0]);
 				}
-				if (current && $(current)[0].tagName === 'P' && parent && $(parent)[0].tagName == 'BLOCKQUOTE')
+				if (current && $(current)[0].tagName === 'P' && parent && $(parent)[0].tagName === 'BLOCKQUOTE')
 				{
 					this.insertAfterLastElement(current, parent);
 				}
@@ -1388,11 +1389,11 @@
 			else if (ctrl && key === 90 && e.shiftKey && !e.altKey)
 			{
 				e.preventDefault();
-				if (this.opts.rebuffer.length != 0) this.bufferRedo();
+				if (this.opts.rebuffer.length !== 0) this.bufferRedo();
 				else this.document.execCommand('redo', false, false);
 				return;
 			}
-			if (key == 32)
+			if (key === 32)
 			{
 				this.bufferSet();
 			}
@@ -1401,11 +1402,11 @@
 				this.bufferSet();
 				this.selectall = true;
 			}
-			else if (key != this.keyCode.LEFT_WIN && !ctrl)
+			else if (key !== this.keyCode.LEFT_WIN && !ctrl)
 			{
 				this.selectall = false;
 			}
-			if (key == this.keyCode.ENTER && !e.shiftKey && !e.ctrlKey && !e.metaKey)
+			if (key === this.keyCode.ENTER && !e.shiftKey && !e.ctrlKey && !e.metaKey)
 			{
 
 				var range = this.getRange();
@@ -1417,7 +1418,7 @@
 						range.deleteContents();
 					}
 				}
-				if (this.browser('msie') && (parent.nodeType == 1 && (parent.tagName == 'TD' || parent.tagName == 'TH')))
+				if (this.browser('msie') && (parent.nodeType == 1 && (parent.tagName === 'TD' || parent.tagName === 'TH')))
 				{
 					e.preventDefault();
 					this.bufferSet();
@@ -1425,7 +1426,7 @@
 					this.callback('enter', e);
 					return false;
 				}
-				if (block && (block.tagName == 'BLOCKQUOTE' || $(block).parent()[0].tagName == 'BLOCKQUOTE'))
+				if (block && (block.tagName === 'BLOCKQUOTE' || $(block).parent()[0].tagName === 'BLOCKQUOTE'))
 				{
 					if (this.isEndOfElement())
 					{
@@ -1433,7 +1434,7 @@
 						{
 							var element;
 							var last;
-							if (block.tagName == 'BLOCKQUOTE')
+							if (block.tagName === 'BLOCKQUOTE')
 							{
 								last = 'br';
 								element = block;
@@ -1448,7 +1449,7 @@
 							this.insertingAfterLastElement(element);
 							this.dblEnter = 0;
 
-							if (last == 'p')
+							if (last === 'p')
 							{
 								$(block).parent().find('p').last().remove();
 							}
@@ -1473,7 +1474,7 @@
 					if (!this.opts.linebreaks)
 					{
 
-						if (block && block.tagName == 'LI')
+						if (block && block.tagName === 'LI')
 						{
 							var listCurrent = this.getBlock();
 							if (listCurrent !== false || listCurrent.tagName === 'LI')
@@ -1482,8 +1483,8 @@
 								var listCurrentText = $.trim($(listCurrent).text());
 								if (listText == ''
 									&& listCurrentText == ''
-									&& $(listCurrent).next('li').length == 0
-									&& $(listCurrent).parents('li').length == 0)
+									&& $(listCurrent).next('li').length === 0
+									&& $(listCurrent).parents('li').length === 0)
 								{
 									this.bufferSet();
 
@@ -1553,7 +1554,7 @@
 							return this.buildEventKeydownInsertLineBreak(e);
 						}
 					}
-					if (block.tagName == 'BLOCKQUOTE' || block.tagName == 'FIGCAPTION')
+					if (block.tagName === 'BLOCKQUOTE' || block.tagName === 'FIGCAPTION')
 					{
 						return this.buildEventKeydownInsertLineBreak(e);
 					}
@@ -1582,7 +1583,7 @@
 			this.bufferSet();
 			var html = $(current).parent().text();
 			this.insertNode(document.createTextNode('\n'));
-			if (html.search(/\s$/) == -1)
+			if (html.search(/\s$/) === -1)
 			{
 				this.insertNode(document.createTextNode('\n'));
 			}
@@ -1624,8 +1625,8 @@
 		buildEventKeydownBackspace: function(e, current, parent)
 		{
 
-			if (parent && current && parent.parentNode.tagName == 'TD'
-				&& parent.tagName == 'UL' && current.tagName == 'LI' && $(parent).children('li').length == 1)
+			if (parent && current && parent.parentNode.tagName === 'TD'
+				&& parent.tagName === 'UL' && current.tagName === 'LI' && $(parent).children('li').length === 1)
 			{
 				var text = $(current).text().replace(/[\u200B-\u200D\uFEFF]/g, '');
 				if (text == '')
@@ -1673,12 +1674,12 @@
 			var key = e.which;
 			var parent = this.getParent();
 			var current = this.getCurrent();
-			if (!this.opts.linebreaks && current.nodeType == 3 && (parent == false || parent.tagName == 'BODY'))
+			if (!this.opts.linebreaks && current.nodeType == 3 && (parent == false || parent.tagName === 'BODY'))
 			{
 				var node = $('<p>').append($(current).clone());
 				$(current).replaceWith(node);
 				var next = $(node).next();
-				if (typeof(next[0]) !== 'undefined' && next[0].tagName == 'BR')
+				if (typeof(next[0]) !== 'undefined' && next[0].tagName === 'BR')
 				{
 					next.remove();
 				}

programming_language: JavaScript
filename: redactor.min.js
change_type: ModificationType.MODIFY
diff: @@ -1 +1,2 @@
-!function($){var uuid=0;"use strict";var Range=function(t){return this[0]=t.startOffset,this[1]=t.endOffset,this.range=t,this};Range.prototype.equals=function(){return this[0]===this[1]};var reUrlYoutube=/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com\S*[^\w\-\s])([\w\-]{11})(?=[^\w\-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/ig,reUrlVimeo=/https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/,reUrlFacebook=/^(?:(?:https|http)?:\/\/)?(?:www\.)?(?:facebook\.com(?:\/[^\/]+\/videos\/|\/video\.php\?v=))([0-9]+)(?:.+)?$/,reUrlRutube=/^(?:(?:https|http)?:\/\/)?(?:www\.)?(?:rutube\.ru\/video\/)([a-z0-9]+)(?:.+)?$/;function Redactor(t,e){return new Redactor.prototype.init(t,e)}$.fn.redactor=function(t){var e=[],s=Array.prototype.slice.call(arguments,1);return("string"==typeof t?this.each(function(){var o=$.data(this,"redactor");if(!(void 0!==o&&$.isFunction(o[t])))return $.error('No such method "'+t+'" for Redactor');var r=o[t].apply(o,s);void 0!==r&&r!==o&&e.push(r)}):this.each(function(){$.data(this,"redactor")||$.data(this,"redactor",Redactor(this,t))}),0===e.length)?this:1===e.length?e[0]:e},$.Redactor=Redactor,$.Redactor.VERSION="9.2.6",$.Redactor.opts={rangy:!1,iframe:!1,fullpage:!1,css:!1,lang:"en",direction:"ltr",placeholder:!1,typewriter:!1,wym:!1,mobile:!0,cleanup:!0,tidyHtml:!0,pastePlainText:!1,removeEmptyTags:!0,cleanSpaces:!0,cleanFontTag:!0,templateVars:!1,xhtml:!1,visual:!0,focus:!1,tabindex:!1,autoresize:!0,minHeight:!1,maxHeight:!1,shortcuts:{"ctrl+m, meta+m":"this.execCommand('removeFormat', false)","ctrl+b, meta+b":"this.execCommand('bold', false)","ctrl+i, meta+i":"this.execCommand('italic', false)","ctrl+h, meta+h":"this.execCommand('superscript', false)","ctrl+l, meta+l":"this.execCommand('subscript', false)","ctrl+k, meta+k":"this.linkShow()","ctrl+shift+7":"this.execCommand('insertorderedlist', false)","ctrl+shift+8":"this.execCommand('insertunorderedlist', false)"},shortcutsAdd:!1,autosave:!1,autosaveInterval:60,plugins:!1,linkProtocol:"http://",linkNofollow:!1,linkSize:50,predefinedLinks:!1,imageFloatMargin:"10px",imageGetJson:!1,dragUpload:!0,imageTabLink:!0,imageUpload:!1,imageUploadParam:"file",imageResizable:!0,fileUpload:!1,fileUploadParam:"file",clipboardUpload:!0,clipboardUploadUrl:!1,smilesUrl:"",dnbImageTypes:["image/png","image/jpeg","image/gif"],s3:!1,uploadFields:!1,observeImages:!0,observeLinks:!0,modalOverlay:!0,tabSpaces:!1,tabFocus:!0,air:!1,airButtons:["formatting","bold","italic","deleted","unorderedlist","orderedlist","outdent","indent"],toolbar:!0,toolbarFixed:!1,toolbarFixedTarget:document,toolbarFixedTopOffset:0,toolbarFixedBox:!1,toolbarExternal:!1,toolbarOverflow:!1,buttonSource:!0,buttons:["html","undo","redo","formatting","bold","italic","deleted","unorderedlist","orderedlist","outdent","indent","image","video","file","table","link","alignment","|","horizontalrule"],buttonsHideOnMobile:[],activeButtons:["deleted","italic","bold","underline","unorderedlist","orderedlist","alignleft","aligncenter","alignright","justify","table"],activeButtonsStates:{b:"bold",strong:"bold",i:"italic",em:"italic",del:"deleted",strike:"deleted",ul:"unorderedlist",ol:"orderedlist",u:"underline",tr:"table",td:"table",table:"table"},formattingTags:["p","blockquote","code","h2","h3","h4","h5","h6"],linebreaks:!1,paragraphy:!0,convertDivs:!0,convertLinks:!0,convertImageLinks:!1,convertVideoLinks:!1,formattingPre:!1,phpTags:!1,allowedTags:!1,deniedTags:["html","head","link","body","meta","script","style","applet"],boldTag:"strong",italicTag:"em",indentValue:20,buffer:[],rebuffer:[],textareamode:!1,emptyHtml:"<p>&#x200b;</p>",invisibleSpace:"&#x200b;",rBlockTest:/^(P|H[1-6]|LI|ADDRESS|SECTION|HEADER|FOOTER|ASIDE|ARTICLE)$/i,alignmentTags:["P","H1","H2","H3","H4","H5","H6","DD","DL","DT","DIV","TD","BLOCKQUOTE","OUTPUT","FIGCAPTION","ADDRESS","SECTION","HEADER","FOOTER","ASIDE","ARTICLE"],ownLine:["area","body","head","hr","i?frame","link","meta","noscript","style","script","table","tbody","thead","tfoot"],contOwnLine:["li","dt","dt","h[1-6]","option","script"],newLevel:["blockquote","div","dl","fieldset","form","frameset","map","ol","p","code","select","td","th","tr","ul"],blockLevelElements:["P","H1","H2","H3","H4","H5","H6","DD","DL","DT","DIV","LI","BLOCKQUOTE","OUTPUT","FIGCAPTION","CODE","ADDRESS","SECTION","HEADER","FOOTER","ASIDE","ARTICLE","TD"],langs:{en:{html:"HTML",video:"Insert Video",image:"Insert Image",table:"Table",link:"Link",link_insert:"Insert link",link_edit:"Edit link",unlink:"Unlink",formatting:"Formatting",paragraph:"Normal text",quote:"Quote",code:"Code",header1:"Header 1",header2:"Header 2",header3:"Header 3",header4:"Header 4",header5:"Header 5",bold:"Bold",italic:"Italic",fontcolor:"Font Color",backcolor:"Back Color",unorderedlist:"Unordered List",orderedlist:"Ordered List",outdent:"Outdent",indent:"Indent",cancel:"Cancel",insert:"Insert",save:"Save",_delete:"Delete",insert_table:"Insert Table",insert_row_above:"Add Row Above",insert_row_below:"Add Row Below",insert_column_left:"Add Column Left",insert_column_right:"Add Column Right",delete_column:"Delete Column",delete_row:"Delete Row",delete_table:"Delete Table",rows:"Rows",columns:"Columns",add_head:"Add Head",delete_head:"Delete Head",title:"Title",image_position:"Position",none:"None",left:"Left",right:"Right",center:"Center",image_web_link:"Image Web Link",text:"Text",mailto:"Email",web:"URL",video_html_code:"Video Embed Code",file:"Insert File",upload:"Upload",download:"Download",choose:"Choose",empty_img_list:"You have no images",or_choose:"Or choose",drop_file_here:"Drop file here",align_left:"Align text to the left",align_center:"Center text",align_right:"Align text to the right",align_justify:"Justify text",horizontalrule:"Insert Horizontal Rule",fullscreen:"Full screen",fontsize:"Font size",fontfamily:"Font",remove_font:"Clear Font",image_save_toserver:"Save to the server?",deleted:"Deleted",anchor:"Anchor",link_new_tab:"Open link in new tab",underline:"Underline",alignment:"Alignment",filename:"Name (optional)",edit:"Edit",spoiler:"Spoiler",spoiler_name:"Spoiler name",spoiler_text:"Spoiler text",smiles:"Smiles",undo:"Undo",redo:"Redo",formalize:"Formalize"}}},Redactor.fn=$.Redactor.prototype={keyCode:{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,ESC:27,TAB:9,CTRL:17,META:91,LEFT:37,LEFT_WIN:91},init:function(t,e){this.rtePaste=!1,this.$element=this.$source=$(t),this.uuid=uuid++;var s=$.extend(!0,{},$.Redactor.opts);if(this.opts=$.extend({},s,this.$element.data(),e),this.start=!0,this.dropdowns=[],this.sourceHeight=this.$source.css("height"),this.sourceWidth=this.$source.css("width"),this.opts.fullpage&&(this.opts.iframe=!0),this.opts.linebreaks&&(this.opts.paragraphy=!1),this.opts.paragraphy&&(this.opts.linebreaks=!1),this.opts.toolbarFixedBox&&(this.opts.toolbarFixed=!0),this.document=document,this.window=window,this.savedSel=!1,this.cleanlineBefore=RegExp("^<(/?"+this.opts.ownLine.join("|/?")+"|"+this.opts.contOwnLine.join("|")+")[ >]"),this.cleanlineAfter=RegExp("^<(br|/?"+this.opts.ownLine.join("|/?")+"|/"+this.opts.contOwnLine.join("|/")+")[ >]"),this.cleannewLevel=RegExp("^</?("+this.opts.newLevel.join("|")+")[ >]"),this.rTestBlock=RegExp("^("+this.opts.blockLevelElements.join("|")+")$","i"),!1===this.opts.linebreaks){if(!1!==this.opts.allowedTags){var o=["strong","em","del"],r=["b","i","strike"];for(i in"-1"===$.inArray("p",this.opts.allowedTags)&&this.opts.allowedTags.push("p"),o)"-1"!=$.inArray(o[i],this.opts.allowedTags)&&this.opts.allowedTags.push(r[i])}if(!1!==this.opts.deniedTags){var a=$.inArray("p",this.opts.deniedTags);"-1"!==a&&this.opts.deniedTags.splice(a,a)}}(this.browser("msie")||this.browser("opera"))&&(this.opts.buttons=this.removeFromArrayByValue(this.opts.buttons,"horizontalrule")),this.opts.curLang=this.opts.langs[this.opts.lang],$.extend(this.opts.shortcuts,this.opts.shortcutsAdd),this.placeholderInit(),this.buildStart()},toolbarInit:function(t){return{html:{title:t.html,func:"toggle"},undo:{title:t.undo,func:"bufferUndo"},redo:{title:t.redo,func:"bufferRedo"},formatting:{title:t.formatting,func:"show",dropdown:{p:{title:t.paragraph,func:"formatBlocks"},blockquote:{title:t.quote,func:"formatQuote",className:"redactor_format_blockquote"},code:{title:t.code,func:"formatBlocks",className:"redactor_format_code"},h1:{title:t.header1,func:"formatBlocks",className:"redactor_format_h1"},h2:{title:t.header2,func:"formatBlocks",className:"redactor_format_h2"},h3:{title:t.header3,func:"formatBlocks",className:"redactor_format_h3"},h4:{title:t.header4,func:"formatBlocks",className:"redactor_format_h4"},h5:{title:t.header5,func:"formatBlocks",className:"redactor_format_h5"}}},bold:{title:t.bold,exec:"bold"},italic:{title:t.italic,exec:"italic"},deleted:{title:t.deleted,exec:"strikethrough"},underline:{title:t.underline,exec:"underline"},unorderedlist:{title:"&bull; "+t.unorderedlist,exec:"insertunorderedlist"},orderedlist:{title:"1. "+t.orderedlist,exec:"insertorderedlist"},outdent:{title:"< "+t.outdent,func:"indentingOutdent"},indent:{title:"> "+t.indent,func:"indentingIndent"},image:{title:t.image,func:"imageShow"},video:{title:t.video,func:"videoShow"},file:{title:t.file,func:"fileShow"},table:{title:t.table,func:"show",dropdown:{insert_table:{title:t.insert_table,func:"tableShow"},separator_drop1:{name:"separator"},insert_row_above:{title:t.insert_row_above,func:"tableAddRowAbove"},insert_row_below:{title:t.insert_row_below,func:"tableAddRowBelow"},insert_column_left:{title:t.insert_column_left,func:"tableAddColumnLeft"},insert_column_right:{title:t.insert_column_right,func:"tableAddColumnRight"},separator_drop2:{name:"separator"},add_head:{title:t.add_head,func:"tableAddHead"},delete_head:{title:t.delete_head,func:"tableDeleteHead"},separator_drop3:{name:"separator"},delete_column:{title:t.delete_column,func:"tableDeleteColumn"},delete_row:{title:t.delete_row,func:"tableDeleteRow"},delete_table:{title:t.delete_table,func:"tableDeleteTable"}}},link:{title:t.link,func:"show",dropdown:{link:{title:t.link_insert,func:"linkShow"},unlink:{title:t.unlink,exec:"unlink"}}},alignment:{title:t.alignment,func:"show",dropdown:{alignleft:{title:t.align_left,func:"alignmentLeft"},aligncenter:{title:t.align_center,func:"alignmentCenter"},alignright:{title:t.align_right,func:"alignmentRight"},justify:{title:t.align_justify,func:"alignmentJustify"}}},alignleft:{title:t.align_left,func:"alignmentLeft"},aligncenter:{title:t.align_center,func:"alignmentCenter"},alignright:{title:t.align_right,func:"alignmentRight"},alignjustify:{title:t.align_justify,func:"alignmentJustify"},horizontalrule:{exec:"inserthorizontalrule",title:t.horizontalrule}}},callback:function(t,e,s){var o=this.opts[t+"Callback"];return $.isFunction(o)?!1===e?o.call(this,s):o.call(this,e,s):s},destroy:function(){clearInterval(this.autosaveInterval),$(window).off(".redactor"),this.$source.off("redactor-textarea"),this.$element.off(".redactor").removeData("redactor");var t=this.get();if(this.opts.textareamode)this.$box.after(this.$source),this.$box.remove(),this.$source.val(t).show();else{var e=this.$editor;this.opts.iframe&&(e=this.$element),this.$box.after(e),this.$box.remove(),e.removeClass("redactor_editor").removeClass("redactor_editor_wym").removeAttr("contenteditable").html(t).show()}this.opts.toolbarExternal&&$(this.opts.toolbarExternal).html(""),this.opts.air&&$("#redactor_air_"+this.uuid).remove()},getObject:function(){return $.extend({},this)},getEditor:function(){return this.$editor},getBox:function(){return this.$box},getIframe:function(){return!!this.opts.iframe&&this.$frame},getToolbar:function(){return!!this.$toolbar&&this.$toolbar},get:function(){return this.$source.val()},getCodeIframe:function(){this.$editor.removeAttr("contenteditable").removeAttr("dir");var t=this.outerHtml(this.$frame.contents().children());return this.$editor.attr({contenteditable:!0,dir:this.opts.direction}),t},set:function(t,e,s){t=(t=t.toString()).replace(/\$/g,"&#36;"),this.opts.fullpage?this.setCodeIframe(t):this.setEditor(t,e),""==t&&(s=!1),!1!==s&&this.placeholderRemoveFromEditor()},setEditor:function(t,e){t=this.sanitizeHTML(t),!1!==e&&(t=this.cleanSavePreCode(t),t=this.cleanStripTags(t),t=this.cleanConvertProtected(t),t=this.cleanConvertInlineTags(t,!0),t=!1===this.opts.linebreaks?this.cleanConverters(t):t.replace(/<p(.*?)>([\w\W]*?)<\/p>/gi,"$2<br>")),t=t.replace(/&amp;#36;/g,"$"),t=this.cleanEmpty(t),this.$editor.html(t),this.setNonEditable(),this.setSpansVerified(),this.sync()},sanitizeHTML:function(t){if(0===t.length)return t;function e(){return new DOMParser().parseFromString(t,"text/html").body}function s(t){let e=t.children;for(let r of e)o(r),s(r)}function o(t){let e=t.attributes;for(let{name:s,value:o}of e)r(s,o)&&t.removeAttribute(s)}function r(t,e){let s=e.replace(/\s+/g,"").toLowerCase();if(["src","href","xlink:href"].includes(t)&&(s.includes("javascript:")||s.includes("data:text/html"))||t.startsWith("on"))return!0}let a=e();return s(a),a.innerHTML},setCodeIframe:function(t){var e=this.iframePage();this.$frame[0].src="about:blank",t=this.cleanConvertProtected(t),t=this.cleanConvertInlineTags(t),t=this.cleanRemoveSpaces(t),e.open(),e.write(t),e.close(),this.opts.fullpage&&(this.$editor=this.$frame.contents().find("body").attr({contenteditable:!0,dir:this.opts.direction})),this.setNonEditable(),this.setSpansVerified(),this.sync()},setFullpageOnInit:function(t){t=this.sanitizeHTML(t),this.fullpageDoctype=t.match(/^<\!doctype[^>]*>/i),this.fullpageDoctype&&1==this.fullpageDoctype.length&&(t=t.replace(/^<\!doctype[^>]*>/i,"")),t=this.cleanSavePreCode(t,!0),t=this.cleanConverters(t),t=this.cleanEmpty(t),this.$editor.html(t),this.setNonEditable(),this.setSpansVerified(),this.sync()},setFullpageDoctype:function(){if(this.fullpageDoctype&&1==this.fullpageDoctype.length){var t=this.fullpageDoctype[0]+"\n"+this.$source.val();this.$source.val(t)}},setSpansVerified:function(){var t=this.$editor.find("span"),e="inline";$.each(t,function(){var t=this.outerHTML,s=RegExp("<"+this.tagName,"gi"),o=t.replace(s,"<"+e);s=RegExp("</"+this.tagName,"gi"),o=o.replace(s,"</"+e),$(this).replaceWith(o)})},setSpansVerifiedHtml:function(t){return(t=t.replace(/<span(.*?)>/,"<inline$1>")).replace(/<\/span>/,"</inline>")},setNonEditable:function(){this.$editor.find(".noneditable").attr("contenteditable",!1)},sync:function(t){var e,s="";if(this.cleanUnverified(),s=this.opts.fullpage?this.getCodeIframe():this.$editor.html(),s=this.syncClean(s),s=this.cleanRemoveEmptyTags(s),this.cleanRemoveSpaces(this.$source.val(),!1)==this.cleanRemoveSpaces(s,!1))return!1;if(s=s.replace(/<\/li><(ul|ol)>([\w\W]*?)<\/(ul|ol)>/gi,"<$1>$2</$1></li>"),"<br>"===$.trim(s)&&(s=""),this.opts.xhtml){var o=["br","hr","img","link","input","meta"];$.each(o,function(t,e){s=s.replace(RegExp("<"+e+"(.*?[^/$]?)>","gi"),"<"+e+"$1 />")})}if(s=this.callback("syncBefore",!1,s),this.$source.val(s),this.setFullpageDoctype(),this.callback("syncAfter",!1,s),!1===this.start){if(void 0!==t)switch(t.which){case 37:case 38:case 39:case 40:break;default:this.callback("change",!1,s)}else this.callback("change",!1,s)}},syncClean:function(t){return this.opts.fullpage||(t=this.cleanStripTags(t)),t=$.trim(t),("<p></p>"==(t=(t=(t=(t=(t=this.placeholderRemoveFromCode(t)).replace(/&#x200b;/gi,"")).replace(/&#8203;/gi,"")).replace(/<\/a>&nbsp;/gi,"</a> ")).replace(/\u200B/g,""))||"<p> </p>"==t||"<p>&nbsp;</p>"==t)&&(t=""),this.opts.linkNofollow&&(t=(t=t.replace(/<a(.*?)rel="nofollow"(.*?)>/gi,"<a$1$2>")).replace(/<a(.*?)>/gi,'<a$1 rel="nofollow">')),t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("<!--?php","<?php")).replace("?-->","?>")).replace(/<(.*?)class="noeditable"(.*?) contenteditable="false"(.*?)>/gi,'<$1class="noeditable"$2$3>')).replace(/ data-tagblock=""/gi,"")).replace(/<br\s?\/?>\n?<\/(P|H[1-6]|LI|ADDRESS|SECTION|HEADER|FOOTER|ASIDE|ARTICLE)>/gi,"</$1>")).replace(/<span(.*?)id="redactor-image-box"(.*?)>([\w\W]*?)<img(.*?)><\/span>/gi,"$3<img$4>")).replace(/<span(.*?)id="redactor-image-resizer"(.*?)>(.*?)<\/span>/gi,"")).replace(/<span(.*?)id="redactor-image-editter"(.*?)>(.*?)<\/span>/gi,"")).replace(/<(ul|ol)>\s*\t*\n*<\/(ul|ol)>/gi,""),this.opts.cleanFontTag&&(t=t.replace(/<font(.*?)>([\w\W]*?)<\/font>/gi,"$2")),t=(t=(t=(t=(t=t.replace(/<span(.*?)>([\w\W]*?)<\/span>/gi,"$2")).replace(/<inline>([\w\W]*?)<\/inline>/gi,"$1")).replace(/<inline>/gi,"<span>")).replace(/<inline /gi,"<span ")).replace(/<\/inline>/gi,"</span>"),this.opts.removeEmptyTags&&(t=t.replace(/<span>([\w\W]*?)<\/span>/gi,"$1")),t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<span(.*?)class="redactor_placeholder"(.*?)>([\w\W]*?)<\/span>/gi,"")).replace(/<img(.*?)contenteditable="false"(.*?)>/gi,"<img$1$2>")).replace(/&/gi,"&")).replace(/\u2122/gi,"&trade;")).replace(/\u00a9/gi,"&copy;")).replace(/\u2026/gi,"&hellip;")).replace(/\u2014/gi,"&mdash;")).replace(/\u2010/gi,"&dash;"),t=this.cleanReConvertProtected(t)},buildStart:function(){this.content="",this.$box=$('<div class="redactor_box" />'),"TEXTAREA"===this.$source[0].tagName&&(this.opts.textareamode=!0),!1===this.opts.mobile&&this.isMobile()?this.buildMobile():(this.buildContent(),this.opts.iframe?(this.opts.autoresize=!1,this.iframeStart()):this.opts.textareamode?this.buildFromTextarea():this.buildFromElement(),this.opts.iframe||(this.buildOptions(),this.buildAfter()))},buildMobile:function(){this.opts.textareamode||(this.$editor=this.$source,this.$editor.hide(),this.$source=this.buildCodearea(this.$editor),this.$source.val(this.content)),this.$box.insertAfter(this.$source).append(this.$source)},buildContent:function(){this.opts.textareamode?this.content=$.trim(this.$source.val()):this.content=$.trim(this.$source.html())},buildFromTextarea:function(){this.$editor=$("<div />"),this.$box.insertAfter(this.$source).append(this.$editor).append(this.$source),this.buildAddClasses(this.$editor),this.buildEnable()},buildFromElement:function(){this.$editor=this.$source,this.$source=this.buildCodearea(this.$editor),this.$box.insertAfter(this.$editor).append(this.$editor).append(this.$source),this.buildEnable()},buildCodearea:function(t){return $("<textarea />").attr("name",t.attr("id")).css("height",this.sourceHeight)},buildAddClasses:function(t){$.each(this.$source.get(0).className.split(/\s+/),function(e,s){t.addClass("redactor_"+s)})},buildEnable:function(){this.$editor.addClass("redactor_editor").attr({contenteditable:!0,dir:this.opts.direction}),this.$source.attr("dir",this.opts.direction).hide(),this.set(this.content,!0,!1)},buildOptions:function(){var t=this.$editor;this.opts.iframe&&(t=this.$frame),this.opts.tabindex&&t.attr("tabindex",this.opts.tabindex),this.opts.minHeight?t.css("min-height",this.opts.minHeight+"px"):this.browser("mozilla")&&this.opts.linebreaks&&this.$editor.css("min-height","45px"),this.browser("mozilla")&&this.opts.linebreaks&&this.$editor.css("padding-bottom","10px"),this.opts.maxHeight&&(this.opts.autoresize=!1,this.sourceHeight=this.opts.maxHeight),this.opts.wym&&this.$editor.addClass("redactor_editor_wym"),this.opts.typewriter&&this.$editor.addClass("redactor-editor-typewriter"),this.opts.autoresize||t.css("height",this.sourceHeight)},buildAfter:function(){if(this.start=!1,this.opts.toolbar&&(this.opts.toolbar=this.toolbarInit(this.opts.curLang),this.toolbarBuild()),this.modalTemplatesInit(),this.buildPlugins(),this.buildBindKeyboard(),this.opts.autosave&&this.autosave(),setTimeout($.proxy(this.observeStart,this),4),this.browser("mozilla"))try{this.document.execCommand("enableObjectResizing",!1,!1),this.document.execCommand("enableInlineTableEditing",!1,!1)}catch(t){}this.opts.focus&&setTimeout($.proxy(this.focus,this),100),this.opts.visual||setTimeout($.proxy(function(){this.opts.visual=!0,this.toggle(!1)},this),200),this.callback("init")},buildBindKeyboard:function(){var t;this.dblEnter=0,this.opts.dragUpload&&(!1!==this.opts.imageUpload||!1!==this.opts.s3)&&this.$editor.on("drop.redactor",$.proxy(this.buildEventDrop,this)),this.$editor.on("click.redactor",$.proxy(function(){this.selectall=!1},this)),this.$editor.on("input.redactor",$.proxy(this.sync,this)),this.$editor.on("paste.redactor",$.proxy(this.buildEventPaste,this)),this.$editor.on("keydown.redactor",$.proxy(this.buildEventKeydown,this)),this.$editor.on("keyup.redactor",$.proxy(this.buildEventKeyup,this)),$.isFunction(this.opts.textareaKeydownCallback)&&this.$source.on("keydown.redactor-textarea",$.proxy(this.opts.textareaKeydownCallback,this)),$.isFunction(this.opts.focusCallback)&&this.$editor.on("focus.redactor",$.proxy(this.opts.focusCallback,this)),$(document).mousedown(function(e){t=$(e.target)}),this.$editor.on("blur.redactor",$.proxy(function(e){!$(t).hasClass("redactor_toolbar")&&0==$(t).parents(".redactor_toolbar").length&&(this.selectall=!1,$.isFunction(this.opts.blurCallback)&&this.callback("blur",e))},this))},buildEventDrop:function(t){if(t=t.originalEvent||t,void 0===window.FormData||!t.dataTransfer||0==t.dataTransfer.files.length)return!0;t.preventDefault();var e=t.dataTransfer.files[0];if(!1!==this.opts.dnbImageTypes&&-1==this.opts.dnbImageTypes.indexOf(e.type))return!0;this.bufferSet(),this.showProgressBar(),!1===this.opts.s3?this.dragUploadAjax(this.opts.imageUpload,e,!0,t,this.opts.imageUploadParam):this.s3uploadFile(e)},buildEventPaste:function(t){var e=!1;if(this.browser("webkit")&&-1===navigator.userAgent.indexOf("Chrome")&&this.browser("version").split(".")[0]<536&&(e=!0),e||this.browser("opera")||this.opts.clipboardUpload&&this.buildEventClipboardUpload(t))return!0;if(this.opts.cleanup){this.rtePaste=!0,this.selectionSave(),this.selectall||(!0===this.opts.autoresize&&!0!==this.fullscreen?(this.$editor.height(this.$editor.height()),this.saveScroll=this.document.body.scrollTop):this.saveScroll=this.$editor.scrollTop());var s=this.extractContent();setTimeout($.proxy(function(){var t=this.extractContent();this.$editor.append(s),this.selectionRestore();var e=this.getFragmentHtml(t);this.pasteClean(e),!0===this.opts.autoresize&&!0!==this.fullscreen&&this.$editor.css("height","auto")},this),1)}},buildEventClipboardUpload:function(t){var e=t.originalEvent||t;if(this.clipboardFilePaste=!1,void 0===e.clipboardData)return!1;if(e.clipboardData.items){var s=e.clipboardData.items[0].getAsFile();if(null!==s){this.bufferSet(),this.clipboardFilePaste=!0;var o=new FileReader;return o.onload=$.proxy(this.pasteClipboardUpload,this),o.readAsDataURL(s),!0}}return!1},buildEventKeydown:function(t){if(this.rtePaste)return!1;var e=t.which,s=t.ctrlKey||t.metaKey,o=this.getParent(),r=this.getCurrent(),a=this.getBlock(),n=!1;if(this.callback("keydown",t),this.browser("mozilla")&&"modify"in window.getSelection()&&s&&(37===t.keyCode||39===t.keyCode)){var l=this.getSelection(),c=t.metaKey?"line":"word";37!==t.keyCode||(l.modify("extend","left",c),t.shiftKey||l.collapseToStart()),39!==t.keyCode||(l.modify("extend","right",c),t.shiftKey||l.collapseToEnd()),t.preventDefault()}if(this.imageResizeHide(!1),(o&&"CODE"===$(o).get(0).tagName||r&&"CODE"===$(r).get(0).tagName)&&(n=!0,e===this.keyCode.DOWN&&this.insertAfterLastElement(a)),e===this.keyCode.DOWN&&(o&&"BLOCKQUOTE"===$(o)[0].tagName&&this.insertAfterLastElement(o),r&&"BLOCKQUOTE"===$(r)[0].tagName&&this.insertAfterLastElement(r),o&&"P"===$(o)[0].tagName&&"BLOCKQUOTE"==$(o).parent()[0].tagName&&this.insertAfterLastElement(o,$(o).parent()[0]),r&&"P"===$(r)[0].tagName&&o&&"BLOCKQUOTE"==$(o)[0].tagName&&this.insertAfterLastElement(r,o)),this.shortcuts(t,e),!s||90!==e||t.shiftKey||t.altKey){if(s&&90===e&&t.shiftKey&&!t.altKey){t.preventDefault(),0!=this.opts.rebuffer.length?this.bufferRedo():this.document.execCommand("redo",!1,!1);return}}else{t.preventDefault(),this.opts.buffer.length?this.bufferUndo():this.document.execCommand("undo",!1,!1);return}if(32==e&&this.bufferSet(),s&&65===e?(this.bufferSet(),this.selectall=!0):e==this.keyCode.LEFT_WIN||s||(this.selectall=!1),e!=this.keyCode.ENTER||t.shiftKey||t.ctrlKey||t.metaKey)e===this.keyCode.ENTER&&(t.ctrlKey||t.shiftKey)&&(this.bufferSet(),t.preventDefault(),this.insertLineBreak());else{var h=this.getRange();if(h&&!1===h.collapsed&&(sel=this.getSelection()).rangeCount&&h.deleteContents(),this.browser("msie")&&1==o.nodeType&&("TD"==o.tagName||"TH"==o.tagName))return t.preventDefault(),this.bufferSet(),this.insertNode(document.createElement("br")),this.callback("enter",t),!1;if(a&&("BLOCKQUOTE"==a.tagName||"BLOCKQUOTE"==$(a).parent()[0].tagName)){if(this.isEndOfElement()){if(1==this.dblEnter){if("BLOCKQUOTE"==a.tagName?(p="br",d=a):(p="p",d=$(a).parent()[0]),t.preventDefault(),this.insertingAfterLastElement(d),this.dblEnter=0,"p"==p)$(a).parent().find("p").last().remove();else{var d,p,u=$.trim($(a).html());$(a).html(u.replace(/<br\s?\/?>$/i,""))}return}this.dblEnter++}else this.dblEnter++}if(!0===n)return this.buildEventKeydownPre(t,r);if(!this.opts.linebreaks){if(a&&"LI"==a.tagName){var f=this.getBlock();if(!1!==f||"LI"===f.tagName){var m=$.trim($(a).text()),g=$.trim($(f).text());if(""==m&&""==g&&0==$(f).next("li").length&&0==$(f).parents("li").length){this.bufferSet();var b=$(f).closest("ol, ul");$(f).remove();var v=$("<p>"+this.opts.invisibleSpace+"</p>");return b.after(v),this.selectionStart(v),this.sync(),this.callback("enter",t),!1}}}if(a&&this.opts.rBlockTest.test(a.tagName))this.bufferSet(),setTimeout($.proxy(function(){var t=this.getBlock();if("DIV"===t.tagName&&!$(t).hasClass("redactor_editor")){var e=$("<p>"+this.opts.invisibleSpace+"</p>");$(t).replaceWith(e),this.selectionStart(e)}},this),1);else if(!1===a){this.bufferSet();var v=$("<p>"+this.opts.invisibleSpace+"</p>");return this.insertNode(v[0]),this.selectionStart(v),this.callback("enter",t),!1}}if(this.opts.linebreaks){if(!(a&&this.opts.rBlockTest.test(a.tagName)))return this.buildEventKeydownInsertLineBreak(t);this.bufferSet(),setTimeout($.proxy(function(){var t=this.getBlock();"DIV"!==t.tagName&&"P"!==t.tagName||$(t).hasClass("redactor_editor")||this.replaceLineBreak(t)},this),1)}if("BLOCKQUOTE"==a.tagName||"FIGCAPTION"==a.tagName)return this.buildEventKeydownInsertLineBreak(t);this.callback("enter",t)}if((e===this.keyCode.TAB||t.metaKey&&219===e)&&this.opts.shortcuts)return this.buildEventKeydownTab(t,n,e);e===this.keyCode.BACKSPACE&&this.buildEventKeydownBackspace(t,r,o)},buildEventKeydownPre:function(t,e){t.preventDefault(),this.bufferSet();var s=$(e).parent().text();return this.insertNode(document.createTextNode("\n")),-1==s.search(/\s$/)&&this.insertNode(document.createTextNode("\n")),this.sync(),this.callback("enter",t),!1},buildEventKeydownTab:function(t,e,s){return!!(!this.opts.tabFocus||this.isEmpty(this.get())&&!1===this.opts.tabSpaces)||(t.preventDefault(),!0!==e||t.shiftKey?!1!==this.opts.tabSpaces?(this.bufferSet(),this.insertNode(document.createTextNode(Array(this.opts.tabSpaces+1).join("\xa0"))),this.sync()):t.shiftKey?this.indentingOutdent():this.indentingIndent():(this.bufferSet(),this.insertNode(document.createTextNode("	")),this.sync()),!1)},buildEventKeydownBackspace:function(t,e,s){if(s&&e&&"TD"==s.parentNode.tagName&&"UL"==s.tagName&&"LI"==e.tagName&&1==$(s).children("li").length){var o;if(""==$(e).text().replace(/[\u200B-\u200D\uFEFF]/g,"")){var o=s.parentNode;return $(s).remove(),this.selectionStart(o),this.sync(),!1}}void 0!==e.tagName&&/^(H[1-6])$/i.test(e.tagName)&&(o=!1===this.opts.linebreaks?$("<p>"+this.opts.invisibleSpace+"</p>"):$("<br>"+this.opts.invisibleSpace),$(e).replaceWith(o),this.selectionStart(o),this.sync()),void 0!==e.nodeValue&&null!==e.nodeValue&&e.remove&&3===e.nodeType&&null==e.nodeValue.match(/[^\u200B]/g)&&($(e).prev().remove(),this.sync())},buildEventKeydownInsertLineBreak:function(t){this.bufferSet(),t.preventDefault(),this.insertLineBreak(),this.callback("enter",t)},buildEventKeyup:function(t){if(this.rtePaste)return!1;var e=t.which,s=this.getParent(),o=this.getCurrent();if(!this.opts.linebreaks&&3==o.nodeType&&(!1==s||"BODY"==s.tagName)){var r=$("<p>").append($(o).clone());$(o).replaceWith(r);var a=$(r).next();void 0!==a[0]&&"BR"==a[0].tagName&&a.remove(),this.selectionEnd(r)}if((this.opts.convertLinks||this.opts.convertImageLinks||this.opts.convertVideoLinks)&&e===this.keyCode.ENTER&&this.buildEventKeyupConverters(),e===this.keyCode.DELETE||e===this.keyCode.BACKSPACE)return this.formatEmpty(t);this.callback("keyup",t),this.sync(t)},buildEventKeyupConverters:function(){this.formatLinkify(this.opts.linkProtocol,this.opts.convertLinks,this.opts.convertImageLinks,this.opts.convertVideoLinks,this.opts.linkSize),setTimeout($.proxy(function(){this.opts.convertImageLinks&&this.observeImages(),this.opts.observeLinks&&this.observeLinks()},this),5)},buildPlugins:function(){this.opts.plugins&&$.each(this.opts.plugins,$.proxy(function(t,e){RedactorPlugins[e]&&($.extend(this,RedactorPlugins[e]),$.isFunction(RedactorPlugins[e].init)&&this.init())},this))},iframeStart:function(){this.iframeCreate(),this.opts.textareamode?this.iframeAppend(this.$source):(this.$sourceOld=this.$source.hide(),this.$source=this.buildCodearea(this.$sourceOld),this.iframeAppend(this.$sourceOld))},iframeAppend:function(t){this.$source.attr("dir",this.opts.direction).hide(),this.$box.insertAfter(t).append(this.$frame).append(this.$source)},iframeCreate:function(){this.$frame=$('<iframe style="width: 100%;" frameborder="0" />').one("load",$.proxy(function(){if(this.opts.fullpage){this.iframePage(),""===this.content&&(this.content=this.opts.invisibleSpace),this.$frame.contents()[0].write(this.content),this.$frame.contents()[0].close();var t=setInterval($.proxy(function(){this.$frame.contents().find("body").html()&&(clearInterval(t),this.iframeLoad())},this),0)}else this.iframeLoad()},this))},iframeDoc:function(){return this.$frame[0].contentWindow.document},iframePage:function(){var t=this.iframeDoc();return t.documentElement&&t.removeChild(t.documentElement),t},iframeAddCss:function(t){t=t||this.opts.css,this.isString(t)&&this.$frame.contents().find("head").append('<link rel="stylesheet" href="'+t+'" />'),$.isArray(t)&&$.each(t,$.proxy(function(t,e){this.iframeAddCss(e)},this))},iframeLoad:function(){this.$editor=this.$frame.contents().find("body").attr({contenteditable:!0,dir:this.opts.direction}),this.$editor[0]&&(this.document=this.$editor[0].ownerDocument,this.window=this.document.defaultView||window),this.iframeAddCss(),this.opts.fullpage?this.setFullpageOnInit(this.$source.val()):this.set(this.content,!0,!1),this.buildOptions(),this.buildAfter()},placeholderInit:function(){!1!==this.opts.placeholder?(this.placeholderText=this.opts.placeholder,this.opts.placeholder=!0):void 0===this.$element.attr("placeholder")||""==this.$element.attr("placeholder")?this.opts.placeholder=!1:(this.placeholderText=this.$element.attr("placeholder"),this.opts.placeholder=!0)},placeholderStart:function(t){return!1!==this.opts.placeholder&&(this.isEmpty(t)?(this.opts.focus=!1,this.placeholderOnFocus(),this.placeholderOnBlur(),this.placeholderGet()):(this.placeholderOnBlur(),!1))},placeholderOnFocus:function(){this.$editor.on("focus.redactor_placeholder",$.proxy(this.placeholderFocus,this))},placeholderOnBlur:function(){this.$editor.on("blur.redactor_placeholder",$.proxy(this.placeholderBlur,this))},placeholderGet:function(){var t=$('<span class="redactor_placeholder">').data("redactor","verified").attr("contenteditable",!1).text(this.placeholderText);return!1===this.opts.linebreaks?$("<p>").append(t):t},placeholderBlur:function(){var t=this.get();this.isEmpty(t)&&(this.placeholderOnFocus(),this.$editor.html(this.placeholderGet()))},placeholderFocus:function(){this.$editor.find("span.redactor_placeholder").remove();var t="";!1===this.opts.linebreaks&&(t=this.opts.emptyHtml),this.$editor.off("focus.redactor_placeholder"),this.$editor.html(t),!1===this.opts.linebreaks?this.selectionStart(this.$editor.children()[0]):this.focus(),this.sync()},placeholderRemoveFromEditor:function(){this.$editor.find("span.redactor_placeholder").remove(),this.$editor.off("focus.redactor_placeholder")},placeholderRemoveFromCode:function(t){return t.replace(/<span class="redactor_placeholder"(.*?)>(.*?)<\/span>/i,"")},shortcuts:function(e,key){if(!this.opts.shortcuts)return(e.ctrlKey||e.metaKey)&&(66===key||73===key)&&e.preventDefault(),!1;$.each(this.opts.shortcuts,$.proxy(function(str,command){var keys=str.split(",");for(var i in keys)"string"==typeof keys[i]&&this.shortcutsHandler(e,$.trim(keys[i]),$.proxy(function(){eval(command)},this))},this))},shortcutsHandler:function(t,e,s){var o={8:"backspace",9:"tab",10:"return",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},r={"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"};e=e.toLowerCase().split(" ");var a=o[t.keyCode],n=String.fromCharCode(t.which).toLowerCase(),l="",c={};$.each(["alt","ctrl","meta","shift"],function(e,s){t[s+"Key"]&&a!==s&&(l+=s+"+")}),a&&(c[l+a]=!0),n&&(c[l+n]=!0,c[l+r[n]]=!0,"shift+"===l&&(c[r[n]]=!0));for(var h=0,d=e.length;h<d;h++)if(c[e[h]])return t.preventDefault(),s.apply(this,arguments)},focus:function(){this.browser("opera")?this.$editor.focus():this.window.setTimeout($.proxy(this.focusSet,this,!0),1)},focusWithSaveScroll:function(){if(this.browser("msie"))var t=this.document.documentElement.scrollTop;this.$editor.focus(),this.browser("msie")&&(this.document.documentElement.scrollTop=t)},focusEnd:function(){if(this.browser("mozilla")){if(!1===this.opts.linebreaks){var t=this.$editor.children().last();this.$editor.focus(),this.selectionEnd(t)}else this.focusSet()}else this.focusSet()},focusSet:function(t,e){this.$editor.focus(),void 0===e&&(e=this.$editor[0]);var s=this.getRange();s.selectNodeContents(e),s.collapse(t||!1);var o=this.getSelection();o.removeAllRanges(),o.addRange(s)},toggle:function(t){this.opts.visual?this.toggleCode(t):this.toggleVisual()},toggleVisual:function(){var t=this.$source.hide().val();if(void 0!==this.modified){var e=this.modified.replace(/\n/g,""),s=t.replace(/\n/g,"");s=this.cleanRemoveSpaces(s,!1),this.modified=this.cleanRemoveSpaces(e,!1)!==s}this.modified&&(this.opts.fullpage&&""===t?this.setFullpageOnInit(t):(this.set(t),this.opts.fullpage&&this.buildBindKeyboard()),this.callback("change",!1,t)),this.opts.iframe?this.$frame.show():this.$editor.show(),this.opts.fullpage&&this.$editor.attr("contenteditable",!0),this.$source.off("keydown.redactor-textarea-indenting"),this.$editor.focus(),this.selectionRestore(),this.observeStart(),this.buttonActiveVisual(),this.buttonInactive("html"),this.opts.visual=!0},toggleCode:function(t){!1!==t&&this.selectionSave();var e=null;this.opts.iframe?(e=this.$frame.height(),this.opts.fullpage&&this.$editor.removeAttr("contenteditable"),this.$frame.hide()):(e=this.$editor.innerHeight(),this.$editor.hide());var s=this.$source.val();""!==s&&this.opts.tidyHtml&&this.$source.val(this.cleanHtml(s)),this.modified=s,this.$source.height(e).show().focus(),this.$source.on("keydown.redactor-textarea-indenting",this.textareaIndenting),this.buttonInactiveVisual(),this.buttonActive("html"),this.opts.visual=!1},textareaIndenting:function(t){if(9===t.keyCode){var e=$(this),s=e.get(0).selectionStart;return e.val(e.val().substring(0,s)+"	"+e.val().substring(e.get(0).selectionEnd)),e.get(0).selectionStart=e.get(0).selectionEnd=s+1,!1}},autosave:function(){var t=!1;this.autosaveInterval=setInterval($.proxy(function(){var e=this.get();if(t!==e){var s=this.$source.attr("name");$.ajax({url:this.opts.autosave,type:"post",data:"name="+s+"&"+s+"="+escape(encodeURIComponent(e)),success:$.proxy(function(s){var o=$.parseJSON(s);void 0===o.error?this.callback("autosave",!1,o):this.callback("autosaveError",!1,o),t=e},this)})}},this),1e3*this.opts.autosaveInterval)},toolbarBuild:function(){if(this.isMobile()&&this.opts.buttonsHideOnMobile.length>0&&$.each(this.opts.buttonsHideOnMobile,$.proxy(function(t,e){var s=this.opts.buttons.indexOf(e);this.opts.buttons.splice(s,1)},this)),this.opts.air)this.opts.buttons=this.opts.airButtons;else if(!this.opts.buttonSource){var t=this.opts.buttons.indexOf("html");this.opts.buttons.splice(t,1)}if(this.opts.toolbar&&$.each(this.opts.toolbar.formatting.dropdown,$.proxy(function(t,e){"-1"==$.inArray(t,this.opts.formattingTags)&&delete this.opts.toolbar.formatting.dropdown[t]},this)),0===this.opts.buttons.length)return!1;this.airEnable(),this.$toolbar=$("<ul>").addClass("redactor_toolbar").attr("id","redactor_toolbar_"+this.uuid),this.opts.typewriter&&this.$toolbar.addClass("redactor-toolbar-typewriter"),this.opts.toolbarOverflow&&this.isMobile()&&this.$toolbar.addClass("redactor-toolbar-overflow"),this.opts.air?(this.$air=$('<div class="redactor_air">').attr("id","redactor_air_"+this.uuid).hide(),this.$air.append(this.$toolbar),$("body").append(this.$air)):this.opts.toolbarExternal?(this.$toolbar.addClass("redactor-toolbar-external"),$(this.opts.toolbarExternal).html(this.$toolbar)):this.$box.prepend(this.$toolbar),$.each(this.opts.buttons,$.proxy(function(t,e){if(this.opts.toolbar[e]){var s=this.opts.toolbar[e];if(!1===this.opts.fileUpload&&"file"===e)return!0;this.$toolbar.append($("<li>").append(this.buttonBuild(e,s)))}},this)),this.$toolbar.find("a").attr("tabindex","-1"),this.opts.toolbarFixed&&(this.toolbarObserveScroll(),$(this.opts.toolbarFixedTarget).on("scroll.redactor",$.proxy(this.toolbarObserveScroll,this))),this.opts.activeButtons&&this.$editor.on("mouseup.redactor keyup.redactor",$.proxy(this.buttonActiveObserver,this))},toolbarObserveScroll:function(){var t=$(this.opts.toolbarFixedTarget).scrollTop(),e=0,s=0,o=0;if(o=(e=this.opts.toolbarFixedTarget===document?this.$box.offset().top:1)+this.$box.height()+40,t>e){var r="100%";this.opts.toolbarFixedBox&&(s=this.$box.offset().left,r=this.$box.innerWidth(),this.$toolbar.addClass("toolbar_fixed_box")),this.toolbarFixed=!0,this.opts.toolbarFixedTarget===document?this.$toolbar.css({position:"fixed",width:r,zIndex:10005,top:this.opts.toolbarFixedTopOffset+"px",left:s}):this.$toolbar.css({position:"absolute",width:r,zIndex:10005,top:this.opts.toolbarFixedTopOffset+t+"px",left:0}),t<o?this.$toolbar.css("visibility","visible"):this.$toolbar.css("visibility","hidden")}else this.toolbarFixed=!1,this.$toolbar.css({position:"relative",width:"auto",top:0,left:s}),this.opts.toolbarFixedBox&&this.$toolbar.removeClass("toolbar_fixed_box")},airEnable:function(){this.opts.air&&this.$editor.on("mouseup.redactor keyup.redactor",this,$.proxy(function(t){var e=this.getSelectionText();if("mouseup"===t.type&&""!=e&&this.airShow(t),"keyup"===t.type&&t.shiftKey&&""!=e){var s=$(this.getElement(this.getSelection().focusNode)),o=s.offset();o.height=s.height(),this.airShow(o,!0)}},this))},airShow:function(t,e){if(this.opts.air){if(this.selectionSave(),$(".redactor_air").hide(),e)s=t.left,o=t.top+t.height+14,this.opts.iframe&&(o+=this.$box.position().top-$(this.document).scrollTop(),s+=this.$box.position().left);else{var s,o,r=this.$air.innerWidth();s=t.clientX,$(this.document).width()<s+r&&(s-=r),o=t.clientY+14,this.opts.iframe?(o+=this.$box.position().top,s+=this.$box.position().left):o+=$(this.document).scrollTop()}this.$air.css({left:s+"px",top:o+"px"}).show(),this.airBindHide()}},airBindHide:function(){if(this.opts.air){var t=$.proxy(function(t){$(t).on("mousedown.redactor",$.proxy(function(e){0===$(e.target).closest(this.$toolbar).length&&(this.$air.fadeOut(100),this.selectionRemove(),$(t).off(e))},this)).on("keydown.redactor",$.proxy(function(e){e.which===this.keyCode.ESC&&this.getSelection().collapseToStart(),this.$air.fadeOut(100),$(t).off(e)},this))},this);t(document),this.opts.iframe&&t(this.document)}},airBindMousemoveHide:function(){if(this.opts.air){var t=$.proxy(function(t){$(t).on("mousemove.redactor",$.proxy(function(e){0===$(e.target).closest(this.$toolbar).length&&(this.$air.fadeOut(100),$(t).off(e))},this))},this);t(document),this.opts.iframe&&t(this.document)}},dropdownBuild:function(t,e){$.each(e,$.proxy(function(e,s){var o;s.className||(s.className=""),"separator"===s.name?o=$('<a class="redactor_separator_drop">'):(o=$('<a href="#" class="'+s.className+" redactor_dropdown_"+e+'">'+s.title+"</a>")).on("click",$.proxy(function(t){this.opts.air&&this.selectionRestore(),t.preventDefault&&t.preventDefault(),this.browser("msie")&&(t.returnValue=!1),s.callback&&s.callback.call(this,e,o,s,t),s.exec&&this.execCommand(s.exec,e),s.func&&this[s.func](e),this.buttonActiveObserver(),this.opts.air&&this.$air.fadeOut(100)},this)),t.append(o)},this))},dropdownShow:function(t,e){if(!this.opts.visual)return t.preventDefault(),!1;var s=this.buttonGet(e),o=s.data("dropdown").appendTo(document.body);if(s.hasClass("dropact"))this.dropdownHideAll();else{this.dropdownHideAll(),this.callback("dropdownShow",{dropdown:o,key:e,button:s}),this.buttonActive(e),s.addClass("dropact");var r=s.offset(),a=o.width();r.left+a>$(document).width()&&(r.left-=a);var n=r.left+"px",l=s.innerHeight(),c="absolute",h=l+this.opts.toolbarFixedTopOffset+"px";this.opts.toolbarFixed&&this.toolbarFixed?c="fixed":h=r.top+l+"px",o.css({position:c,left:n,top:h}).show(),this.callback("dropdownShown",{dropdown:o,key:e,button:s})}var d=$.proxy(function(t){this.dropdownHide(t,o)},this);$(document).one("click",d),this.$editor.one("click",d),this.$editor.one("touchstart",d),t.stopPropagation(),this.focusWithSaveScroll()},dropdownHideAll:function(){this.$toolbar.find("a.dropact").removeClass("redactor_act").removeClass("dropact"),$(".redactor_dropdown").hide(),this.callback("dropdownHide")},dropdownHide:function(t,e){$(t.target).hasClass("dropact")||(e.removeClass("dropact"),this.dropdownHideAll())},buttonBuild:function(t,e,s){var o=$('<a href="javascript:;" title="'+e.title+'" tabindex="-1" class="re-icon re-'+t+'"></a>');if(void 0!==s&&o.addClass("redactor-btn-image"),o.on("click",$.proxy(function(s){if(s.preventDefault&&s.preventDefault(),this.browser("msie")&&(s.returnValue=!1),o.hasClass("redactor_button_disabled"))return!1;!1!==this.isFocused()||e.exec||this.focusWithSaveScroll(),e.exec?(this.focusWithSaveScroll(),this.execCommand(e.exec,t),this.airBindMousemoveHide()):e.func&&"show"!==e.func?(this[e.func](t),this.airBindMousemoveHide()):e.callback?(e.callback.call(this,t,o,e,s),this.airBindMousemoveHide()):e.dropdown&&this.dropdownShow(s,t),this.buttonActiveObserver(!1,t)},this)),e.dropdown){var r=$('<div class="redactor_dropdown redactor_dropdown_box_'+t+'" style="display: none;">');o.data("dropdown",r),this.dropdownBuild(r,e.dropdown)}return o},buttonGet:function(t){return!!this.opts.toolbar&&$(this.$toolbar.find("a.re-"+t))},buttonTagToActiveState:function(t,e){this.opts.activeButtons.push(t),this.opts.activeButtonsStates[e]=t},buttonActiveToggle:function(t){this.buttonGet(t).hasClass("redactor_act")?this.buttonInactive(t):this.buttonActive(t)},buttonActive:function(t){this.buttonGet(t).addClass("redactor_act")},buttonInactive:function(t){this.buttonGet(t).removeClass("redactor_act")},buttonInactiveAll:function(t){this.$toolbar.find("a.re-icon").not(".re-"+t).removeClass("redactor_act")},buttonActiveVisual:function(){this.$toolbar.find("a.re-icon").not("a.re-html").removeClass("redactor_button_disabled")},buttonInactiveVisual:function(){this.$toolbar.find("a.re-icon").not("a.re-html").addClass("redactor_button_disabled")},buttonChangeIcon:function(t,e){this.buttonGet(t).addClass("re-"+e)},buttonRemoveIcon:function(t,e){this.buttonGet(t).removeClass("re-"+e)},buttonAwesome:function(t,e){var s=this.buttonGet(t);s.removeClass("redactor-btn-image"),s.addClass("fa-redactor-btn"),s.html('<i class="fa '+e+'"></i>')},buttonAdd:function(t,e,s,o){if(this.opts.toolbar){var r=this.buttonBuild(t,{title:e,callback:s,dropdown:o},!0);return this.$toolbar.append($("<li>").append(r)),r}},buttonAddFirst:function(t,e,s,o){if(this.opts.toolbar){var r=this.buttonBuild(t,{title:e,callback:s,dropdown:o},!0);this.$toolbar.prepend($("<li>").append(r))}},buttonAddAfter:function(t,e,s,o,r){if(this.opts.toolbar){var a=this.buttonBuild(e,{title:s,callback:o,dropdown:r},!0),n=this.buttonGet(t);return 0!==n.length?n.parent().after($("<li>").append(a)):this.$toolbar.append($("<li>").append(a)),a}},buttonAddBefore:function(t,e,s,o,r){if(this.opts.toolbar){var a=this.buttonBuild(e,{title:s,callback:o,dropdown:r},!0),n=this.buttonGet(t);return 0!==n.length?n.parent().before($("<li>").append(a)):this.$toolbar.append($("<li>").append(a)),a}},buttonRemove:function(t){this.buttonGet(t).remove()},buttonActiveObserver:function(t,e){var s=this.getParent();if(this.buttonInactiveAll(e),!1===t&&"html"!==e){-1!=$.inArray(e,this.opts.activeButtons)&&this.buttonActiveToggle(e);return}s&&"A"===s.tagName?this.$toolbar.find("a.redactor_dropdown_link").text(this.opts.curLang.link_edit):this.$toolbar.find("a.redactor_dropdown_link").text(this.opts.curLang.link_insert),$.each(this.opts.activeButtonsStates,$.proxy(function(t,e){0!=$(s).closest(t,this.$editor.get()[0]).length&&this.buttonActive(e)},this));var o=$(s).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]);if(o.length){var r=o.css("text-align");""==r&&(r="left"),this.buttonActive("align"+r)}},execPasteFrag:function(t){var e=this.getSelection();if(e.getRangeAt&&e.rangeCount){var s=this.getRange();s.deleteContents();var o=this.document.createElement("div");o.innerHTML=t;for(var r,a,n=this.document.createDocumentFragment();r=o.firstChild;)a=n.appendChild(r);n.firstChild,s.insertNode(n),a&&((s=s.cloneRange()).setStartAfter(a),s.collapse(!0)),e.removeAllRanges(),e.addRange(s)}},exec:function(t,e,s){"formatblock"===t&&this.browser("msie")&&(e="<"+e+">"),"inserthtml"===t&&this.browser("msie")?this.isIe11()?this.execPasteFrag(e):(this.focusWithSaveScroll(),this.document.selection.createRange().pasteHTML(e)):this.document.execCommand(t,!1,e),!1!==s&&this.sync(),this.callback("execCommand",t,e)},execCommand:function(t,e,s){if(!this.opts.visual)return this.$source.focus(),!1;if(("bold"===t||"italic"===t||"underline"===t||"strikethrough"===t)&&this.bufferSet(),"superscript"===t||"subscript"===t){var o=this.getParent();("SUP"===o.tagName||"SUB"===o.tagName)&&this.inlineRemoveFormatReplace(o)}if("inserthtml"===t){this.insertHtml(e,s),this.callback("execCommand",t,e);return}return(!this.currentOrParentIs("CODE")||!!this.opts.formattingPre)&&("insertunorderedlist"===t||"insertorderedlist"===t?this.execLists(t,e):"unlink"===t?this.execUnlink(t,e):void(this.exec(t,e,s),"inserthorizontalrule"===t&&this.$editor.find("hr").removeAttr("id")))},execUnlink:function(t,e){this.bufferSet();var s=this.currentOrParentIs("A");if(s){$(s).replaceWith($(s).text()),this.sync(),this.callback("execCommand",t,e);return}},execLists:function(t,e){this.bufferSet();var s=this.getParent(),o=$(s).closest("ol, ul");this.isParentRedactor(o)||0==o.length||(o=!1);var r=!1;if(o&&o.length){r=!0;var a=o[0].tagName;("insertunorderedlist"===t&&"OL"===a||"insertorderedlist"===t&&"UL"===a)&&(r=!1)}if(this.selectionSave(),r){var n=this.getNodes(),l=this.getBlocks(n);void 0!==n[0]&&n.length>1&&3==n[0].nodeType&&l.unshift(this.getBlock());var c="",h="";$.each(l,$.proxy(function(t,e){if("LI"==e.tagName){var s=$(e),o=s.clone();(o.find("ul","ol").remove(),!1===this.opts.linebreaks)?c+=this.outerHtml($("<p>").append(o.contents())):c+=o.html().replace(/<br\s?\/?>$/i,"")+"<br>",0==t?(s.addClass("redactor-replaced").empty(),h=this.outerHtml(s)):s.remove()}},this)),html=this.$editor.html().replace(h,"</"+a+">"+c+"<"+a+">"),this.$editor.html(html),this.$editor.find(a+":empty").remove()}else{var d=$(this.getParent()).closest("td");if(this.browser("msie")&&!this.isIe11()&&this.opts.linebreaks){var p=this.selectionWrap("div"),u=$(p).html(),f=$("<ul>");"insertorderedlist"==t&&(f=$("<ol>"));var m=$("<li>");""==$.trim(u)?(m.append(u+'<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"),f.append(m),this.$editor.find("#selection-marker-1").replaceWith(f)):(m.append(u),f.append(m),$(p).replaceWith(f))}else this.document.execCommand(t);var s=this.getParent(),o=$(s).closest("ol, ul");if(!1===this.opts.linebreaks&&""==$.trim(o.text())&&(o.children("li").find("br").remove(),o.children("li").append('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>")),0!=d.length&&o.wrapAll("<td>"),o.length){var g=o.parent();this.isParentRedactor(g)&&"LI"!=g[0].tagName&&this.nodeTestBlocks(g[0])&&g.replaceWith(g.contents())}this.browser("mozilla")&&this.$editor.focus()}this.selectionRestore(),this.$editor.find("#selection-marker-1").removeAttr("id"),this.sync(),this.callback("execCommand",t,e)},indentingIndent:function(){this.indentingStart("indent")},indentingOutdent:function(){this.indentingStart("outdent")},indentingStart:function(t){if(this.bufferSet(),"indent"===t){var e=this.getBlock();if(this.selectionSave(),e&&"LI"==e.tagName){var s=$(this.getParent()).closest("ol, ul")[0].tagName,o=this.getBlocks();$.each(o,function(t,e){if("LI"==e.tagName){var o=$(e).prev();if(0!=o.length&&"LI"==o[0].tagName){var r=o.children("ul, ol");0==r.length?o.append($("<"+s+">").append(e)):r.append(e)}}})}else if(!1===e&&!0===this.opts.linebreaks){this.exec("formatBlock","blockquote");var r=this.getBlock(),e=$('<div data-tagblock="">').html($(r).html());$(r).replaceWith(e);var a=this.normalize($(e).css("margin-left"))+this.opts.indentValue;$(e).css("margin-left",a+"px")}else{var n=this.getBlocks();$.each(n,$.proxy(function(t,e){var s=!1;if("TD"!==e.tagName){s=-1!==$.inArray(e.tagName,this.opts.alignmentTags)?$(e):$(e).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]);var o=this.normalize(s.css("margin-left"))+this.opts.indentValue;s.css("margin-left",o+"px")}},this))}this.selectionRestore()}else{this.selectionSave();var e=this.getBlock();if(e&&"LI"==e.tagName){var o=this.getBlocks(),l=0;this.insideOutdent(e,l,o)}else{var n=this.getBlocks();$.each(n,$.proxy(function(t,e){var s=!1;s=-1!==$.inArray(e.tagName,this.opts.alignmentTags)?$(e):$(e).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]);var o=this.normalize(s.css("margin-left"))-this.opts.indentValue;o<=0?!0===this.opts.linebreaks&&void 0!==s.data("tagblock")?s.replaceWith(s.html()+"<br>"):(s.css("margin-left",""),this.removeEmptyAttr(s,"style")):s.css("margin-left",o+"px")},this))}this.selectionRestore()}this.sync()},insideOutdent:function(t,e,s){if(t&&"LI"==t.tagName){var o=$(t).parent().parent();0!=o.length&&"LI"==o[0].tagName?o.after(t):void 0!==s[e]?(t=s[e],e++,this.insideOutdent(t,e,s)):this.execCommand("insertunorderedlist")}},alignmentLeft:function(){this.alignmentSet("","JustifyLeft")},alignmentRight:function(){this.alignmentSet("right","JustifyRight")},alignmentCenter:function(){this.alignmentSet("center","JustifyCenter")},alignmentJustify:function(){this.alignmentSet("justify","JustifyFull")},alignmentSet:function(t,e){if(this.bufferSet(),this.oldIE())return this.document.execCommand(e,!1,!1),!0;this.selectionSave();var s=this.getBlock();if(!s&&this.opts.linebreaks){this.exec("formatblock","div");var o=this.getBlock(),s=$('<div data-tagblock="">').html($(o).html());$(o).replaceWith(s),$(s).css("text-align",t),this.removeEmptyAttr(s,"style"),""==t&&void 0!==$(s).data("tagblock")&&$(s).replaceWith($(s).html())}else{var r=this.getBlocks();$.each(r,$.proxy(function(e,s){var o=!1;(o=-1!==$.inArray(s.tagName,this.opts.alignmentTags)?$(s):$(s).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]))&&(o.css("text-align",t),this.removeEmptyAttr(o,"style"))},this))}this.selectionRestore(),this.sync()},cleanEmpty:function(t){var e=this.placeholderStart(t);return!1!==e?e:(!1===this.opts.linebreaks&&(""===t?t=this.opts.emptyHtml:-1!==t.search(/^<hr\s?\/?>$/gi)&&(t="<hr>"+this.opts.emptyHtml)),t)},cleanConverters:function(t){return this.opts.convertDivs&&!this.opts.gallery&&(t=t.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"<p$1>$2</p>")),this.opts.paragraphy&&(t=this.cleanParagraphy(t)),t},cleanConvertProtected:function(t){return this.opts.templateVars&&(t=(t=t.replace(/\{\{(.*?)\}\}/gi,"<!-- template double $1 -->")).replace(/\{(.*?)\}/gi,"<!-- template $1 -->")),t=(t=(t=t.replace(/<script(.*?)>([\w\W]*?)<\/script>/gi,'<title type="text/javascript" style="display: none;" class="redactor-script-tag"$1>$2</title>')).replace(/<style(.*?)>([\w\W]*?)<\/style>/gi,'<section$1 style="display: none;" rel="redactor-style-tag">$2</section>')).replace(/<form(.*?)>([\w\W]*?)<\/form>/gi,'<section$1 rel="redactor-form-tag">$2</section>'),t=this.opts.phpTags?t.replace(/<\?php([\w\W]*?)\?>/gi,'<section style="display: none;" rel="redactor-php-tag">$1</section>'):t.replace(/<\?php([\w\W]*?)\?>/gi,"")},cleanReConvertProtected:function(t){return this.opts.templateVars&&(t=(t=t.replace(/<!-- template double (.*?) -->/gi,"{{$1}}")).replace(/<!-- template (.*?) -->/gi,"{$1}")),t=(t=(t=t.replace(/<title type="text\/javascript" style="display: none;" class="redactor-script-tag"(.*?)>([\w\W]*?)<\/title>/gi,'<script$1 type="text/javascript">$2</script>')).replace(/<section(.*?) style="display: none;" rel="redactor-style-tag">([\w\W]*?)<\/section>/gi,"<style$1>$2</style>")).replace(/<section(.*?)rel="redactor-form-tag"(.*?)>([\w\W]*?)<\/section>/gi,"<form$1$2>$3</form>"),this.opts.phpTags&&(t=t.replace(/<section style="display: none;" rel="redactor-php-tag">([\w\W]*?)<\/section>/gi,"<?php\r\n$1\r\n?>")),t},cleanRemoveSpaces:function(t,e){if(!1!==e){var e=[],s=t.match(/<(code|style|script|title)(.*?)>([\w\W]*?)<\/(code|style|script|title)>/gi);if(null===s&&(s=[]),this.opts.phpTags){var o=t.match(/<\?php([\w\W]*?)\?>/gi);o&&(s=$.merge(s,o))}s&&$.each(s,function(s,o){t=t.replace(o,"buffer_"+s),e.push(o)})}return t=(t=(t=(t=(t=(t=t.replace(/\n/g," ")).replace(/[\t]*/g,"")).replace(/\n\s*\n/g,"\n")).replace(/^[\s\n]*/g," ")).replace(/[\s\n]*$/g," ")).replace(/>\s{2,}</g,"> <"),t=(t=this.cleanReplacer(t,e)).replace(/\n\n/g,"\n")},cleanReplacer:function(t,e){return!1===e||$.each(e,function(e,s){t=t.replace("buffer_"+e,s)}),t},cleanRemoveEmptyTags:function(t){t=t.replace(/[\u200B-\u200D\uFEFF]/g,"");for(var e=["<b>\\s*</b>","<b>&nbsp;</b>","<em>\\s*</em>"],s=["<code></code>","<blockquote>\\s*</blockquote>","<dd></dd>","<dt></dt>","<ul></ul>","<ol></ol>","<li></li>","<table></table>","<tr></tr>","<span>\\s*<span>","<span>&nbsp;<span>","<p>\\s*</p>","<p></p>","<p>&nbsp;</p>","<p>\\s*<br>\\s*</p>","<div>\\s*</div>","<div>\\s*<br>\\s*</div>"],o=(s=this.opts.removeEmptyTags?s.concat(e):e).length,r=0;r<o;++r)t=t.replace(RegExp(s[r],"gi"),"");return t},cleanParagraphy:function(t){if(t=$.trim(t),!0===this.opts.linebreaks)return t;if(""===t||"<p></p>"===t)return this.opts.emptyHtml;if(t+="\n",!1===this.opts.removeEmptyTags)return t;var e=[],s=t.match(/<(table|div|code|object)(.*?)>([\w\W]*?)<\/(table|div|code|object)>/gi);s||(s=[]);var o=t.match(/<!--([\w\W]*?)-->/gi);if(o&&(s=$.merge(s,o)),this.opts.phpTags){var r=t.match(/<section(.*?)rel="redactor-php-tag">([\w\W]*?)<\/section>/gi);r&&(s=$.merge(s,r))}function a(e,s,o){return t.replace(RegExp(e,s),o)}s&&$.each(s,function(s,o){e[s]=o,t=t.replace(o,"{replace"+s+"}\n")}),t=(t=t.replace(/<br \/>\s*<br \/>/gi,"\n\n")).replace(/<br><br>/gi,"\n\n");var n="(comment|html|body|head|title|meta|style|script|link|iframe|table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|code|select|option|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)";t=a("(<"+n+"[^>]*>)","gi","\n$1"),t=a("(</"+n+">)","gi","$1\n\n"),t=a("\r\n","g","\n"),t=a("\r","g","\n");var l=(t=a("/\n\n+/","g","\n\n")).split(RegExp("\ns*\n","g"),-1);for(var c in t="",l)l.hasOwnProperty(c)&&(-1==l[c].search("{replace")?(l[c]=l[c].replace(/<p>\n\t?<\/p>/gi,""),l[c]=l[c].replace(/<p><\/p>/gi,""),""!=l[c]&&(t+="<p>"+l[c].replace(/^\n+|\n+$/g,"")+"</p>")):t+=l[c]);return t=a("<p><p>","gi","<p>"),t=a("</p></p>","gi","</p>"),t=a("<p>s?</p>","gi",""),t=a("<p>([^<]+)</(div|address|form)>","gi","<p>$1</p></$2>"),t=a("<p>(</?"+n+"[^>]*>)</p>","gi","$1"),t=a("<p>(<li.+?)</p>","gi","$1"),t=a("<p>s?(</?"+n+"[^>]*>)","gi","$1"),t=a("(</?"+n+"[^>]*>)s?</p>","gi","$1"),t=a("(</?"+n+"[^>]*>)s?<br />","gi","$1"),t=a("<br />(s*</?(?:p|li|div|dl|dd|dt|th|code|td|ul|ol)[^>]*>)","gi","$1"),t=a("\n</p>","gi","</p>"),t=a("<li><p>","gi","<li>"),t=a("</p></li>","gi","</li>"),t=a("</li><p>","gi","</li>"),t=a("<p>	?\n?<p>","gi","<p>"),t=a("</dt><p>","gi","</dt>"),t=a("</dd><p>","gi","</dd>"),t=a("<br></p></blockquote>","gi","</blockquote>"),t=a("<p>	*</p>","gi",""),$.each(e,function(e,s){t=t.replace("{replace"+e+"}",s)}),$.trim(t)},cleanConvertInlineTags:function(t,e){var s="strong";"b"===this.opts.boldTag&&(s="b");var o="em";return"i"===this.opts.italicTag&&(o="i"),t=(t=t.replace(/<span style="font-style: italic;">([\w\W]*?)<\/span>/gi,"<"+o+">$1</"+o+">")).replace(/<span style="font-weight: bold;">([\w\W]*?)<\/span>/gi,"<"+s+">$1</"+s+">"),t="strong"===this.opts.boldTag?t.replace(/<b>([\w\W]*?)<\/b>/gi,"<strong>$1</strong>"):t.replace(/<strong>([\w\W]*?)<\/strong>/gi,"<b>$1</b>"),t=(t="em"===this.opts.italicTag?t.replace(/<i>([\w\W]*?)<\/i>/gi,"<em>$1</em>"):t.replace(/<em>([\w\W]*?)<\/em>/gi,"<i>$1</i>")).replace(/<span style="text-decoration: underline;">([\w\W]*?)<\/span>/gi,"<u>$1</u>"),t=!0!==e?t.replace(/<strike>([\w\W]*?)<\/strike>/gi,"<del>$1</del>"):t.replace(/<del>([\w\W]*?)<\/del>/gi,"<strike>$1</strike>")},cleanStripTags:function(t){if(""==t||void 0===t)return t;var e=!1;!1!==this.opts.allowedTags&&(e=!0);var s=!0===e?this.opts.allowedTags:this.opts.deniedTags,o=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;return t=t.replace(o,function(t,o){return!0===e?$.inArray(o.toLowerCase(),s)>"-1"?t:"":$.inArray(o.toLowerCase(),s)>"-1"?"":t}),t=this.cleanConvertInlineTags(t)},cleanSavePreCode:function(t,e){var s=t.match(/<(pre|code)(.*?)>([\w\W]*?)<\/(pre|code)>/gi);return null!==s&&$.each(s,$.proxy(function(s,o){var r=o.match(/<(pre|code)(.*?)>([\w\W]*?)<\/(pre|code)>/i);r[3]=r[3].replace(/&nbsp;/g," "),!1!==e&&(r[3]=this.cleanEncodeEntities(r[3])),r[3]=r[3].replace(/\$/g,"&#36;"),t=t.replace(o,"<"+r[1]+r[2]+">"+r[3]+"</"+r[1]+">")},this)),t},cleanEncodeEntities:function(t){return(t=String(t).replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"')).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},cleanUnverified:function(){var t=this.$editor.find("li, img, a, b, strong, sub, sup, i, em, u, small, strike, del, span, cite");t.filter('[style*="background-color: transparent;"][style*="line-height"]').css("background-color","").css("line-height",""),t.filter('[style*="background-color: transparent;"]').css("background-color",""),t.css("line-height",""),$.each(t,$.proxy(function(t,e){this.removeEmptyAttr(e,"style")},this));var e=this.$editor.find("b, strong, i, em, u, strike, del");e.css("font-size",""),$.each(e,$.proxy(function(t,e){this.removeEmptyAttr(e,"style")},this)),this.$editor.find('div[style="text-align: -webkit-auto;"]').contents().unwrap(),this.$editor.find("ul, ol, li").removeAttr("style")},cleanHtml:function(t){var e,s=0,o=t.length,r=0,a=null,n=null,l="",c="",h="";for(this.cleanlevel=0;s<o;s++){if(r=s,-1==t.substr(s).indexOf("<")){c+=t.substr(s);break}for(;r<o&&"<"!=t.charAt(r);)r++;for(s!=r&&((h=t.substr(s,r-s)).match(/^\s{2,}$/g)||("\n"==c.charAt(c.length-1)?c+=this.cleanGetTabs():"\n"==h.charAt(0)&&(c+="\n"+this.cleanGetTabs(),h=h.replace(/^\s+/,"")),c+=h),h.match(/\n/)&&(c+="\n"+this.cleanGetTabs())),a=r;r<o&&">"!=t.charAt(r);)r++;if(l=t.substr(a,r-a),s=r,"!--"==l.substr(1,3)){if(!l.match(/--$/)){for(;"-->"!=t.substr(r,3);)r++;r+=2,l=t.substr(a,r-a),s=r}"\n"!=c.charAt(c.length-1)&&(c+="\n"),c+=this.cleanGetTabs(),c+=l+">\n"}else"!"==l[1]?c=this.placeTag(l+">",c):"?"==l[1]?c+=l+">\n":(e=l.match(/^<(script|style|pre|code)/i))?(e[1]=e[1].toLowerCase(),l=this.cleanTag(l),c=this.placeTag(l,c),(n=String(t.substr(s+1)).toLowerCase().indexOf("</"+e[1]))&&(h=t.substr(s+1,n),s+=n,c+=h)):(l=this.cleanTag(l),c=this.placeTag(l,c))}return this.cleanFinish(c)},cleanGetTabs:function(){for(var t="",e=0;e<this.cleanlevel;e++)t+="	";return t},cleanFinish:function(t){return t=(t=(t=(t=t.replace(/\n\s*\n/g,"\n")).replace(/^[\s\n]*/,"")).replace(/[\s\n]*$/,"")).replace(/<script(.*?)>\n<\/script>/gi,"<script$1></script>"),this.cleanlevel=0,t},cleanTag:function(t){var e,s="";t=(t=(t=t.replace(/\n/g," ")).replace(/\s{2,}/g," ")).replace(/^\s+|\s+$/g," ");var o="";for(t.match(/\/$/)&&(o="/",t=t.replace(/\/+$/,""));e=/\s*([^= ]+)(?:=((['"']).*?\3|[^ ]+))?/.exec(t);)e[2]?s+=e[1].toLowerCase()+"="+e[2]:e[1]&&(s+=e[1].toLowerCase()),s+=" ",t=t.substr(e[0].length);return s.replace(/\s*$/,"")+o+">"},placeTag:function(t,e){var s=t.match(this.cleannewLevel);return(t.match(this.cleanlineBefore)||s)&&(e=e.replace(/\s*$/,""),e+="\n"),s&&"/"==t.charAt(1)&&this.cleanlevel--,"\n"==e.charAt(e.length-1)&&(e+=this.cleanGetTabs()),s&&"/"!=t.charAt(1)&&this.cleanlevel++,e+=t,(t.match(this.cleanlineAfter)||t.match(this.cleannewLevel))&&(e=e.replace(/ *$/,""),e+="\n"),e},formatEmpty:function(t){var e=$.trim(this.$editor.html());if(this.opts.linebreaks)""==e&&(t.preventDefault(),this.$editor.html(""),this.focus());else{var s=(e=e.replace(/<br\s?\/?>/i,"")).replace(/<p>\s?<\/p>/gi,"");if(""===e||""===s){t.preventDefault();var o=$(this.opts.emptyHtml).get(0);this.$editor.html(o),this.focus()}}this.sync()},formatBlocks:function(t){this.browser("mozilla")&&this.isFocused()&&this.$editor.focus(),this.bufferSet();var e=this.getBlocks();this.selectionSave(),$.each(e,$.proxy(function(e,s){if("LI"!==s.tagName){var o=$(s).parent();if("p"===t){if("P"===s.tagName&&0!=o.length&&"BLOCKQUOTE"===o[0].tagName||"BLOCKQUOTE"===s.tagName){this.formatQuote();return}if(this.opts.linebreaks){if(!s||0!=s.tagName.search(/H[1-6]/))return;$(s).replaceWith(s.innerHTML+"<br>")}else this.formatBlock(t,s)}else this.formatBlock(t,s)}},this)),this.selectionRestore(),this.sync()},formatBlock:function(t,e){if(!1===e&&(e=this.getBlock()),!1===e&&!0===this.opts.linebreaks)return this.execCommand("formatblock",t),!0;var s="";if("code"!==t?s=$(e).contents():(s=$(e).html(),""===$.trim(s)&&(s='<span id="selection-marker-1"></span>')),"CODE"===e.tagName&&(t="p"),!0===this.opts.linebreaks&&"p"===t)$(e).replaceWith($("<div>").append(s).html()+"<br>");else{var o=this.getParent(),r=$("<"+t+">").append(s);$(e).replaceWith(r),o&&"TD"==o.tagName&&$(r).wrapAll("<td>")}},formatChangeTag:function(t,e,s){!1!==s&&this.selectionSave();var o=$("<"+e+"/>");return $(t).replaceWith(function(){return o.append($(this).contents())}),!1!==s&&this.selectionRestore(),o},formatQuote:function(){if(this.browser("mozilla")&&this.isFocused()&&this.$editor.focus(),this.bufferSet(),!1===this.opts.linebreaks){this.selectionSave();var t=this.getBlocks(),e=!1,s=t.length;if(t){var o="",r="",a=!1,n=!0;if($.each(t,function(t,e){"P"!==e.tagName&&(n=!1)}),$.each(t,$.proxy(function(l,c){if("BLOCKQUOTE"===c.tagName)this.formatBlock("p",c,!1);else if("P"===c.tagName){if("BLOCKQUOTE"==(e=$(c).parent())[0].tagName){var h=$(e).children("p").length;1==h?$(e).replaceWith(c):h==s?(a="blockquote",o+=this.outerHtml(c)):(a="html",o+=this.outerHtml(c),0==l?($(c).addClass("redactor-replaced").empty(),r=this.outerHtml(c)):$(c).remove())}else!1===n||1==t.length?this.formatBlock("blockquote",c,!1):(a="paragraphs",o+=this.outerHtml(c))}else"LI"!==c.tagName&&this.formatBlock("blockquote",c,!1)},this)),a){if("paragraphs"==a)$(t[0]).replaceWith("<blockquote>"+o+"</blockquote>"),$(t).remove();else if("blockquote"==a)$(e).replaceWith(o);else if("html"==a){var l=this.$editor.html().replace(r,"</blockquote>"+o+"<blockquote>");this.$editor.html(l),this.$editor.find("blockquote").each(function(){""==$.trim($(this).html())&&$(this).remove()})}}}this.selectionRestore()}else{var c=this.getBlock();if("BLOCKQUOTE"===c.tagName){this.selectionSave();var l=$.trim($(c).html()),h=$.trim(this.getSelectionHtml());if((l=l.replace(/<span(.*?)id="selection-marker(.*?)<\/span>/gi,""))==h)$(c).replaceWith($(c).html()+"<br>");else{this.inlineFormat("tmp");var d=this.$editor.find("tmp");d.empty();var p=this.$editor.html().replace("<tmp></tmp>",'</blockquote><span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"+h+"<blockquote>");this.$editor.html(p),d.remove(),this.$editor.find("blockquote").each(function(){""==$.trim($(this).html())&&$(this).remove()})}this.selectionRestore(),this.$editor.find("span#selection-marker-1").attr("id",!1)}else{var u=this.selectionWrap("blockquote"),l=$(u).html(),f=["ul","ol","table","tr","tbody","thead","tfoot","dl"];$.each(f,function(t,e){l=(l=l.replace(RegExp("<"+e+"(.*?)>","gi"),"")).replace(RegExp("</"+e+">","gi"),"")});var m=this.opts.blockLevelElements;$.each(m,function(t,e){l=(l=l.replace(RegExp("<"+e+"(.*?)>","gi"),"")).replace(RegExp("</"+e+">","gi"),"<br>")}),$(u).html(l),this.selectionElement(u);var g=$(u).next();0!=g.length&&"BR"===g[0].tagName&&g.remove()}}this.sync()},blockRemoveAttr:function(t,e){$(this.getBlocks()).removeAttr(t),this.sync()},blockSetAttr:function(t,e){$(this.getBlocks()).attr(t,e),this.sync()},blockRemoveStyle:function(t){var e=this.getBlocks();$(e).css(t,""),this.removeEmptyAttr(e,"style"),this.sync()},blockSetStyle:function(t,e){$(this.getBlocks()).css(t,e),this.sync()},blockRemoveClass:function(t){var e=this.getBlocks();$(e).removeClass(t),this.removeEmptyAttr(e,"class"),this.sync()},blockSetClass:function(t){$(this.getBlocks()).addClass(t),this.sync()},inlineRemoveClass:function(t){this.selectionSave(),this.inlineEachNodes(function(e){$(e).removeClass(t),this.removeEmptyAttr(e,"class")}),this.selectionRestore(),this.sync()},inlineSetClass:function(t){$(this.getCurrent()).hasClass(t)||this.inlineMethods("addClass",t)},inlineRemoveStyle:function(t){this.selectionSave(),this.inlineEachNodes(function(e){$(e).css(t,""),this.removeEmptyAttr(e,"style")}),this.selectionRestore(),this.sync()},inlineSetStyle:function(t,e){this.inlineMethods("css",t,e)},inlineRemoveAttr:function(t){this.selectionSave();var e=this.getRange(),s=this.getElement(),o=this.getNodes();(e.collapsed||e.startContainer===e.endContainer&&s)&&(o=$(s)),$(o).removeAttr(t),this.inlineUnwrapSpan(),this.selectionRestore(),this.sync()},inlineSetAttr:function(t,e){this.inlineMethods("attr",t,e)},inlineMethods:function(t,e,s){this.bufferSet(),this.selectionSave();var o=this.getRange(),r=this.getElement();if((o.collapsed||o.startContainer===o.endContainer)&&r&&!this.nodeTestBlocks(r))$(r)[t](e,s);else{var a,n=s;switch(e){case"font-size":a="fontSize",n=4;break;case"font-family":a="fontName";break;case"color":a="foreColor";break;case"background-color":a="backColor"}this.document.execCommand(a,!1,n);var l=this.$editor.find("font");$.each(l,$.proxy(function(o,r){this.inlineSetMethods(t,r,e,s)},this))}this.selectionRestore(),this.sync()},inlineSetMethods:function(t,e,s,o){var r,a=$(e).parent(),n=this.getSelectionText(),l=$(a).text();return n==l&&a&&"INLINE"===a[0].tagName&&0!=a[0].attributes.length?(r=a,$(e).replaceWith($(e).html())):(r=$("<inline>").append($(e).contents()),$(e).replaceWith(r)),$(r)[t](s,o),r},inlineEachNodes:function(t){var e,s=this.getRange(),o=this.getElement(),r=this.getNodes();(s.collapsed||s.startContainer===s.endContainer&&o)&&(r=$(o),e=!0),$.each(r,$.proxy(function(s,o){if(!e&&"INLINE"!==o.tagName){var r=this.getSelectionText(),a=$(o).parent().text();if(r!=a||"INLINE"!==o.parentNode.tagName||$(o.parentNode).hasClass("redactor_editor"))return;o=o.parentNode}t.call(this,o)},this))},inlineUnwrapSpan:function(){var t=this.$editor.find("inline");$.each(t,$.proxy(function(t,e){var s=$(e);void 0===s.attr("class")&&void 0===s.attr("style")&&s.contents().unwrap()},this))},inlineFormat:function(t){this.selectionSave(),this.document.execCommand("fontSize",!1,4);var e,s=this.$editor.find("font");$.each(s,function(s,o){var r=$("<"+t+"/>").append($(o).contents());$(o).replaceWith(r),e=r}),this.selectionRestore(),this.sync()},inlineRemoveFormat:function(t){this.selectionSave();var e=t.toUpperCase(),s=this.getNodes(),o=$(this.getParent()).parent();$.each(s,function(t,s){s.tagName===e&&this.inlineRemoveFormatReplace(s)}),o&&o[0].tagName===e&&this.inlineRemoveFormatReplace(o),this.selectionRestore(),this.sync()},inlineRemoveFormatReplace:function(t){$(t).replaceWith($(t).contents())},insertHtml:function(t,e){var s=this.getCurrent(),o=s.parentNode;this.focusWithSaveScroll(),this.bufferSet();var r=$("<div>").append($.parseHTML(t));t=r.html(),t=this.cleanRemoveEmptyTags(t),r=$("<div>").append($.parseHTML(t));var a=this.getBlock();if(1==r.contents().length){var n=r.contents()[0].tagName;("P"!=n&&n==a.tagName||"CODE"==n)&&(r=$("<div>").append(t))}this.opts.linebreaks&&(t=t.replace(/<p(.*?)>([\w\W]*?)<\/p>/gi,"$2<br>")),this.opts.linebreaks||1!=r.contents().length||3!=r.contents()[0].nodeType||!(this.getRangeSelectedNodes().length>2)&&s&&("BODY"!=s.tagName||o)&&"HTML"!=o.tagName||(t="<p>"+t+"</p>"),t=this.setSpansVerifiedHtml(t),r.contents().length>1&&a||r.contents().is("p, :header, ul, ol, li, div, table, td, blockquote, code, address, section, header, footer, aside, article")?this.browser("msie")?this.isIe11()?this.execPasteFrag(t):this.document.selection.createRange().pasteHTML(t):this.document.execCommand("inserthtml",!1,t):this.insertHtmlAdvanced(t,!1),this.selectall&&this.window.setTimeout($.proxy(function(){this.opts.linebreaks?this.focusEnd():this.selectionEnd(this.$editor.contents().last())},this),1),this.observeStart(),this.setNonEditable(),!1!==e&&this.sync()},insertHtmlAdvanced:function(t,e){t=this.setSpansVerifiedHtml(t);var s=this.getSelection();if(s.getRangeAt&&s.rangeCount){var o=s.getRangeAt(0);o.deleteContents();var r=document.createElement("div");r.innerHTML=t;for(var a,n,l=document.createDocumentFragment();a=r.firstChild;)n=l.appendChild(a);o.insertNode(l),n&&((o=o.cloneRange()).setStartAfter(n),o.collapse(!0),s.removeAllRanges(),s.addRange(o))}!1!==e&&this.sync()},insertBeforeCursor:function(t){t=this.setSpansVerifiedHtml(t);var e=$(t),s=document.createElement("span");s.innerHTML="​";var o=this.getRange();o.insertNode(s),o.insertNode(e[0]),o.collapse(!1);var r=this.getSelection();r.removeAllRanges(),r.addRange(o),this.sync()},insertText:function(t){var e=$($.parseHTML(t));e.length&&(t=e.text()),this.focusWithSaveScroll(),this.browser("msie")?this.isIe11()?this.execPasteFrag(t):this.document.selection.createRange().pasteHTML(t):this.document.execCommand("inserthtml",!1,t),this.sync()},insertNode:function(t){if("SPAN"==(t=t[0]||t).tagName){var e="inline",s=t.outerHTML,o=RegExp("<"+t.tagName,"i"),r=s.replace(o,"<"+e);o=RegExp("</"+t.tagName,"i"),r=r.replace(o,"</"+e),t=$(r)[0]}var a=this.getSelection();return a.getRangeAt&&a.rangeCount&&((range=a.getRangeAt(0)).deleteContents(),range.insertNode(t),range.setEndAfter(t),range.setStartAfter(t),a.removeAllRanges(),a.addRange(range)),t},insertNodeToCaretPositionFromPoint:function(t,e){var s,o=t.clientX,r=t.clientY;if(this.document.caretPositionFromPoint){var a=this.document.caretPositionFromPoint(o,r);(s=this.getRange()).setStart(a.offsetNode,a.offset),s.collapse(!0),s.insertNode(e)}else if(this.document.caretRangeFromPoint)(s=this.document.caretRangeFromPoint(o,r)).insertNode(e);else if(void 0!==document.body.createTextRange){(s=this.document.body.createTextRange()).moveToPoint(o,r);var n=s.duplicate();n.moveToPoint(o,r),s.setEndPoint("EndToEnd",n),s.select()}},insertAfterLastElement:function(t,e){if(void 0!==e&&(t=e),this.isEndOfElement()){if(this.opts.linebreaks){var s=$("<div>").append($.trim(this.$editor.html())).contents(),o=s.last()[0];if("SPAN"==o.tagName&&""==o.innerHTML&&(o=s.prev()[0]),this.outerHtml(o)!=this.outerHtml(t))return!1}else if(this.$editor.contents().last()[0]!==t)return!1;this.insertingAfterLastElement(t)}},insertingAfterLastElement:function(t){if(this.bufferSet(),!1===this.opts.linebreaks){var e=$(this.opts.emptyHtml);$(t).after(e),this.selectionStart(e)}else{var e=$('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>",this.document)[0];$(t).after(e),$(e).after(this.opts.invisibleSpace),this.selectionRestore(),this.$editor.find("span#selection-marker-1").removeAttr("id")}},insertLineBreak:function(t){this.selectionSave();var e="<br>";if(!0==t&&(e="<br><br>"),this.browser("mozilla")){var s=$("<span>").html(this.opts.invisibleSpace);this.$editor.find("#selection-marker-1").before(e).before(s).before(this.opts.invisibleSpace),this.setCaretAfter(s[0]),s.remove(),this.selectionRemoveMarkers()}else{var o=this.getParent();if(o&&"A"===o.tagName){var r=this.getCaretOffset(o),a=$.trim($(o).text()).replace(/\n\r\n/g,"").length;if(r==a){this.selectionRemoveMarkers();var n=$('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>",this.document)[0];return $(o).after(n),$(n).before(e+(this.browser("webkit")?this.opts.invisibleSpace:"")),this.selectionRestore(),!0}}this.$editor.find("#selection-marker-1").before(e+(this.browser("webkit")?this.opts.invisibleSpace:"")),this.selectionRestore()}},insertDoubleLineBreak:function(){this.insertLineBreak(!0)},replaceLineBreak:function(t){var e=$("<br>"+this.opts.invisibleSpace);$(t).replaceWith(e),this.selectionStart(e)},pasteClean:function(t){if(t=this.callback("pasteBefore",!1,t),this.browser("msie")){var e=$.trim(t);0==e.search(/^<a(.*?)>(.*?)<\/a>$/i)&&(t=t.replace(/^<a(.*?)>(.*?)<\/a>$/i,"$2"))}if(t=t.replace(/on([a-z]+)=|javascript\:/gi,""),this.opts.pastePlainText){var e=this.document.createElement("div");return t=t.replace(/<br>|<\/H[1-6]>|<\/p>|<\/div>/gi,"\n"),e.innerHTML=t,t=e.textContent||e.innerText,t=(t=$.trim(t)).replace("\n","<br>"),t=this.cleanParagraphy(t),this.pasteInsert(t),!1}var s=!1;if(this.currentOrParentIs("TD")){s=!0;var o=this.opts.blockLevelElements;o.push("tr"),o.push("table"),$.each(o,function(e,s){t=(t=t.replace(RegExp("<"+s+"(.*?)>","gi"),"")).replace(RegExp("</"+s+">","gi"),"<br>")})}if(this.currentOrParentIs("CODE"))return t=this.pastePre(t),this.pasteInsert(t),!0;if(t=(t=(t=(t=(t=(t=(t=t.replace(/<img(.*?)v:shapes=(.*?)>/gi,"")).replace(/<p(.*?)class="MsoListParagraphCxSpFirst"([\w\W]*?)<\/p>/gi,"<ul><li$2</li>")).replace(/<p(.*?)class="MsoListParagraphCxSpMiddle"([\w\W]*?)<\/p>/gi,"<li$2</li>")).replace(/<p(.*?)class="MsoListParagraphCxSpLast"([\w\W]*?)<\/p>/gi,"<li$2</li></ul>")).replace(/<p(.*?)class="MsoListParagraph"([\w\W]*?)<\/p>/gi,"<ul><li$2</li></ul>")).replace(/·/g,"")).replace(/<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi,""),!0===this.opts.cleanSpaces&&(t=(t=t.replace(/(&nbsp;){2,}/gi,"&nbsp;")).replace(/&nbsp;/gi," ")),t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<b\sid="internal-source-marker(.*?)">([\w\W]*?)<\/b>/gi,"$2")).replace(/<b(.*?)id="docs-internal-guid(.*?)">([\w\W]*?)<\/b>/gi,"$3")).replace(/<span[^>]*(font-style: italic; font-weight: bold|font-weight: bold; font-style: italic)[^>]*>/gi,'<span style="font-weight: bold;"><span style="font-style: italic;">')).replace(/<span[^>]*font-style: italic[^>]*>/gi,'<span style="font-style: italic;">')).replace(/<span[^>]*font-weight: bold[^>]*>/gi,'<span style="font-weight: bold;">')).replace(/<span[^>]*text-decoration: underline[^>]*>/gi,'<span style="text-decoration: underline;">')).replace(/<td>\u200b*<\/td>/gi,"[td]")).replace(/<td>&nbsp;<\/td>/gi,"[td]")).replace(/<td><br><\/td>/gi,"[td]")).replace(/<td(.*?)colspan="(.*?)"(.*?)>([\w\W]*?)<\/td>/gi,'[td colspan="$2"]$4[/td]')).replace(/<td(.*?)rowspan="(.*?)"(.*?)>([\w\W]*?)<\/td>/gi,'[td rowspan="$2"]$4[/td]')).replace(/<a(.*?)href="(.*?)"(.*?)>([\w\W]*?)<\/a>/gi,'[a href="$2"]$4[/a]')).replace(/<iframe(.*?)>([\w\W]*?)<\/iframe>/gi,"[iframe$1]$2[/iframe]")).replace(/<video(.*?)>([\w\W]*?)<\/video>/gi,"[video$1]$2[/video]")).replace(/<audio(.*?)>([\w\W]*?)<\/audio>/gi,"[audio$1]$2[/audio]")).replace(/<embed(.*?)>([\w\W]*?)<\/embed>/gi,"[embed$1]$2[/embed]")).replace(/<object(.*?)>([\w\W]*?)<\/object>/gi,"[object$1]$2[/object]")).replace(/<param(.*?)>/gi,"[param$1]")).replace(/<img(.*?)>/gi,"[img$1]")).replace(/ class="(.*?)"/gi,"")).replace(/<(\w+)([\w\W]*?)>/gi,"<$1>"),this.opts.linebreaks?(t=(t=t.replace(/<strong><\/strong>/gi,"")).replace(/<u><\/u>/gi,""),this.opts.cleanFontTag&&(t=t.replace(/<font(.*?)>([\w\W]*?)<\/font>/gi,"$2")),t=t.replace(/<[^\/>][^>]*>(\s*|\t*|\n*|&nbsp;|<br>)<\/[^>]+>/gi,"<br>")):t=t.replace(/<[^\/>][^>]*>(\s*|\t*|\n*|&nbsp;|<br>)<\/[^>]+>/gi,""),t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<div>\s*?\t*?\n*?(<ul>|<ol>|<p>)/gi,"$1")).replace(/\[td colspan="(.*?)"\]([\w\W]*?)\[\/td\]/gi,'<td colspan="$1">$2</td>')).replace(/\[td rowspan="(.*?)"\]([\w\W]*?)\[\/td\]/gi,'<td rowspan="$1">$2</td>')).replace(/\[td\]/gi,"<td>&nbsp;</td>")).replace(/\[a href="(.*?)"\]([\w\W]*?)\[\/a\]/gi,'<a href="$1">$2</a>')).replace(/\[iframe(.*?)\]([\w\W]*?)\[\/iframe\]/gi,"<iframe$1>$2</iframe>")).replace(/\[video(.*?)\]([\w\W]*?)\[\/video\]/gi,"<video$1>$2</video>")).replace(/\[audio(.*?)\]([\w\W]*?)\[\/audio\]/gi,"<audio$1>$2</audio>")).replace(/\[embed(.*?)\]([\w\W]*?)\[\/embed\]/gi,"<embed$1>$2</embed>")).replace(/\[object(.*?)\]([\w\W]*?)\[\/object\]/gi,"<object$1>$2</object>")).replace(/\[param(.*?)\]/gi,"<param$1>")).replace(/\[img(.*?)\]/gi,"<img$1>"),t=this.opts.convertDivs?(t=(t=(t=t.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"<p>$2</p>")).replace(/<\/div><p>/gi,"<p>")).replace(/<\/p><\/div>/gi,"</p>")).replace(/<p><\/p>/gi,"<br />"):t.replace(/<div><\/div>/gi,"<br />"),t=this.cleanStripTags(t),this.currentOrParentIs("LI")?t=t.replace(/<p>([\w\W]*?)<\/p>/gi,"$1<br>"):!1===s&&(t=this.cleanParagraphy(t)),t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<span(.*?)>([\w\W]*?)<\/span>/gi,"$2")).replace(/<img>/gi,"")).replace(/<[^\/>][^>][^img|param|source|td][^<]*>(\s*|\t*|\n*| |<br>)<\/[^>]+>/gi,"")).replace(/\n{3,}/gi,"\n")).replace(/<p><p>/gi,"<p>")).replace(/<\/p><\/p>/gi,"</p>")).replace(/<li>(\s*|\t*|\n*)<p>/gi,"<li>")).replace(/<\/p>(\s*|\t*|\n*)<\/li>/gi,"</li>"),!0===this.opts.linebreaks&&(t=t.replace(/<p(.*?)>([\w\W]*?)<\/p>/gi,"$2<br>")),t=(t=(t=t.replace(/<[^\/>][^>][^img|param|source|td][^<]*>(\s*|\t*|\n*| |<br>)<\/[^>]+>/gi,"")).replace(/<img src="webkit-fake-url\:\/\/(.*?)"(.*?)>/gi,"")).replace(/<td(.*?)>(\s*|\t*|\n*)<p>([\w\W]*?)<\/p>(\s*|\t*|\n*)<\/td>/gi,"<td$1>$3</td>"),this.opts.convertDivs&&(t=(t=t.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"$2")).replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"$2")),this.pasteClipboardMozilla=!1,this.browser("mozilla")){if(this.opts.clipboardUpload){var r=t.match(/<img src="data:image(.*?)"(.*?)>/gi);if(null!==r)for(var a in this.pasteClipboardMozilla=r,r){var n=r[a].replace("<img",'<img data-mozilla-paste-image="'+a+'" ');t=t.replace(r[a],n)}}for(;/<br>$/gi.test(t);)t=t.replace(/<br>$/gi,"")}if(t=t.replace(/<p>•([\w\W]*?)<\/p>/gi,"<li>$1</li>"),this.browser("msie"))for(;/<font>([\w\W]*?)<\/font>/gi.test(t);)t=t.replace(/<font>([\w\W]*?)<\/font>/gi,"$1");!1===s&&(t=(t=(t=(t=t.replace(/<td(.*?)>([\w\W]*?)<p(.*?)>([\w\W]*?)<\/td>/gi,"<td$1>$2$4</td>")).replace(/<td(.*?)>([\w\W]*?)<\/p>([\w\W]*?)<\/td>/gi,"<td$1>$2$3</td>")).replace(/<td(.*?)>([\w\W]*?)<p(.*?)>([\w\W]*?)<\/td>/gi,"<td$1>$2$4</td>")).replace(/<td(.*?)>([\w\W]*?)<\/p>([\w\W]*?)<\/td>/gi,"<td$1>$2$3</td>")),t=(t=t.replace(/\n/g," ")).replace(/<p>\n?<li>/gi,"<li>"),this.pasteInsert(t)},pastePre:function(t){t=t.replace(/<br>|<\/H[1-6]>|<\/p>|<\/div>/gi,"\n");var e=this.document.createElement("div");return e.innerHTML=t,this.cleanEncodeEntities(e.textContent||e.innerText)},pasteInsert:function(t){t=this.callback("pasteAfter",!1,t),this.selectall?(this.$editor.html(t),this.selectionRemove(),this.focusEnd(),this.sync()):this.insertHtml(t),this.selectall=!1,setTimeout($.proxy(function(){this.rtePaste=!1,this.browser("mozilla")&&this.$editor.find("p:empty").remove(),!1!==this.pasteClipboardMozilla&&this.pasteClipboardUploadMozilla()},this),100),this.opts.autoresize&&!0!==this.fullscreen?$(this.document.body).scrollTop(this.saveScroll):this.$editor.scrollTop(this.saveScroll)},pasteClipboardAppendFields:function(t){return!1!==this.opts.uploadFields&&"object"==typeof this.opts.uploadFields&&$.each(this.opts.uploadFields,$.proxy(function(e,s){null!=s&&0===s.toString().indexOf("#")&&(s=$(s).val()),t[e]=s},this)),t},pasteClipboardUploadMozilla:function(){var t=this.$editor.find("img[data-mozilla-paste-image]");$.each(t,$.proxy(function(t,e){var s=$(e),o=e.src.split(","),r={contentType:o[0].split(";")[0].split(":")[1],data:o[1]};r=this.pasteClipboardAppendFields(r),$.post(this.opts.clipboardUploadUrl,r,$.proxy(function(t){var e="string"==typeof t?$.parseJSON(t):t;s.attr("src",e.image.url),s.removeAttr("data-mozilla-paste-image"),this.sync(),this.callback("imageUpload",s,e)},this))},this))},pasteClipboardUpload:function(t){var e=t.target.result,s=e.split(","),o={contentType:s[0].split(";")[0].split(":")[1],data:s[1]};this.opts.clipboardUpload?(o=this.pasteClipboardAppendFields(o),$.post(this.opts.clipboardUploadUrl,o,$.proxy(function(t){var e="string"==typeof t?$.parseJSON(t):t,s='<img src="'+e.image.url+'" id="clipboard-image-marker" />';this.execCommand("inserthtml",s,!1);var o=$(this.$editor.find("img#clipboard-image-marker"));o.length?o.removeAttr("id"):o=!1,this.sync(),o&&this.callback("imageUpload",o,e)},this))):this.insertHtml('<img src="'+e+'" />')},bufferSet:function(t){!1!==t&&this.selectionSave(),this.opts.buffer.push(this.$editor.html()),!1!==t&&this.selectionRemoveMarkers("buffer")},bufferUndo:function(){if(0===this.opts.buffer.length){this.focusWithSaveScroll();return}this.selectionSave(),this.opts.rebuffer.push(this.$editor.html()),this.selectionRestore(!1,!0),this.$editor.html(this.opts.buffer.pop()),this.selectionRestore(),setTimeout($.proxy(this.observeStart,this),100)},bufferRedo:function(){if(0===this.opts.rebuffer.length)return this.focusWithSaveScroll(),!1;this.selectionSave(),this.opts.buffer.push(this.$editor.html()),this.selectionRestore(!1,!0),this.$editor.html(this.opts.rebuffer.pop()),this.selectionRestore(!0),setTimeout($.proxy(this.observeStart,this),4)},observeStart:function(){this.observeImages(),this.opts.observeLinks&&this.observeLinks()},observeLinks:function(){this.$editor.find("a").on("click",$.proxy(this.linkObserver,this)),this.$editor.on("click.redactor",$.proxy(function(t){this.linkObserverTooltipClose(t)},this)),$(document).on("click.redactor",$.proxy(function(t){this.linkObserverTooltipClose(t)},this))},observeImages:function(){if(!1===this.opts.observeImages)return!1;this.$editor.find("img").each($.proxy(function(t,e){this.browser("msie")&&$(e).attr("unselectable","on");var s=$(e).parent();s.hasClass("royalSlider")||s.hasClass("fotorama")||this.imageResize(e)},this)),this.$editor.find(".fotorama, .royalSlider").on("click",$.proxy(this.editGallery,this))},linkObserver:function(t){var e=$(t.target),s=$(t.target).parent();if(!(s.hasClass("royalSlider")||s.hasClass("fotorama"))&&0!=e.length&&"A"===e[0].tagName){var o=e.offset();if(this.opts.iframe){var r=this.$frame.offset();o.top=r.top+(o.top-$(this.document).scrollTop()),o.left+=r.left}var a=$('<span class="redactor-link-tooltip"></span>'),n=e.attr("href");void 0===n&&(n=""),n.length>24&&(n=n.substring(0,24)+"...");var l=$('<a href="'+e.attr("href")+'" target="_blank">'+n+"</a>").on("click",$.proxy(function(t){this.linkObserverTooltipClose(!1)},this)),c=$('<a href="#">'+this.opts.curLang.edit+"</a>").on("click",$.proxy(function(t){t.preventDefault(),this.linkShow(),this.linkObserverTooltipClose(!1)},this)),h=$('<a href="#">'+this.opts.curLang.unlink+"</a>").on("click",$.proxy(function(t){t.preventDefault(),this.execCommand("unlink"),this.linkObserverTooltipClose(!1)},this));a.append(l),a.append(" | "),a.append(c),a.append(" | "),a.append(h),a.css({top:o.top+20+"px",left:o.left+"px"}),$(".redactor-link-tooltip").remove(),$("body").append(a)}},linkObserverTooltipClose:function(t){if(!1!==t&&"A"==t.target.tagName)return!1;$(".redactor-link-tooltip").remove()},getSelection:function(){return this.opts.rangy?this.opts.iframe?rangy.getSelection(this.$frame[0]):rangy.getSelection():this.document.getSelection()},getRange:function(){if(this.opts.rangy)return this.opts.iframe?rangy.createRange(this.iframeDoc()):rangy.createRange();if(this.document.getSelection){var t=this.getSelection();if(t.getRangeAt&&t.rangeCount)return t.getRangeAt(0)}return this.document.createRange()},selectionElement:function(t){this.setCaret(t)},selectionStart:function(t){this.selectionSet(t[0]||t,0,null,0)},selectionEnd:function(t){this.selectionSet(t[0]||t,1,null,1)},selectionSet:function(t,e,s,o){null==s&&(s=t),null==o&&(o=e);var r=this.getSelection();if(r){if("P"==t.tagName&&""==t.innerHTML&&(t.innerHTML=this.opts.invisibleSpace),"BR"==t.tagName&&!1===this.opts.linebreaks){var a=$(this.opts.emptyHtml)[0];$(t).replaceWith(a),s=t=a}var n=this.getRange();n.setStart(t,e),n.setEnd(s,o);try{r.removeAllRanges()}catch(l){}r.addRange(n)}},selectionWrap:function(t){t=t.toLowerCase();var e=this.getBlock();if(e){var s=this.formatChangeTag(e,t);return this.sync(),s}var o=this.getSelection().getRangeAt(0),s=document.createElement(t);return s.appendChild(o.extractContents()),o.insertNode(s),this.selectionElement(s),s},selectionAll:function(){var t=this.getRange();t.selectNodeContents(this.$editor[0]);var e=this.getSelection();e.removeAllRanges(),e.addRange(t)},selectionRemove:function(){this.getSelection().removeAllRanges()},getCaretOffset:function(t){var e=0,s=this.getRange(),o=s.cloneRange();return o.selectNodeContents(t),o.setEnd(s.endContainer,s.endOffset),e=$.trim(o.toString()).length},getCaretOffsetRange:function(){return new Range(this.getSelection().getRangeAt(0))},setCaret:function(t,e,s){void 0===s&&(s=e),t=t[0]||t;var o=this.getRange();o.selectNodeContents(t);var r,a=this.getTextNodesIn(t),n=!1,l=0;if(1==a.length&&e)o.setStart(a[0],e),o.setEnd(a[0],s);else for(var c,h=0;c=a[h++];){if(r=l+c.length,!n&&e>=l&&(e<r||e==r&&h<a.length)&&(o.setStart(c,e-l),n=!0),n&&s<=r){o.setEnd(c,s-l);break}l=r}var d=this.getSelection();d.removeAllRanges(),d.addRange(o)},setCaretAfter:function(t){this.$editor.focus(),t=t[0]||t;var e=this.document.createRange(),s=1,o=-1;e.setStart(t,s),e.setEnd(t,o+2);var r=this.window.getSelection(),a=this.document.createRange(),n=this.document.createTextNode("​");$(t).after(n),a.setStartAfter(n),r.removeAllRanges(),r.addRange(a),$(n).remove()},getTextNodesIn:function(t){var e=[];if(3==t.nodeType)e.push(t);else for(var s=t.childNodes,o=0,r=s.length;o<r;++o)e.push.apply(e,this.getTextNodesIn(s[o]));return e},getCurrent:function(){var t=!1,e=this.getSelection();return e&&e.rangeCount>0&&(t=e.getRangeAt(0).startContainer),this.isParentRedactor(t)},getParent:function(t){return!!(t=t||this.getCurrent())&&this.isParentRedactor($(t).parent()[0])},getBlock:function(t){for(void 0===t&&(t=this.getCurrent());t;){if(this.nodeTestBlocks(t)){if($(t).hasClass("redactor_editor"))return!1;return t}t=t.parentNode}return!1},getBlocks:function(t){var e=[];if(void 0===t){var s=this.getRange();if(s&&!0===s.collapsed)return[this.getBlock()];var t=this.getNodes(s)}return $.each(t,$.proxy(function(t,s){if(!1===this.opts.iframe&&0==$(s).parents("div.redactor_editor").length)return!1;this.nodeTestBlocks(s)&&e.push(s)},this)),0===e.length&&(e=[this.getBlock()]),e},isInlineNode:function(t){return 1==t.nodeType&&!this.rTestBlock.test(t.nodeName)},nodeTestBlocks:function(t){return 1==t.nodeType&&this.rTestBlock.test(t.nodeName)},tagTestBlock:function(t){return this.rTestBlock.test(t)},getNodes:function(t,e){if(void 0===t||!1==t)var t=this.getRange();if(t&&!0===t.collapsed){if(!(void 0===e&&this.tagTestBlock(e)))return[this.getCurrent()];var s=this.getBlock();return s.tagName==e?[s]:[]}var o=[],r=[],a=this.document.getSelection();if(a.isCollapsed||(o=this.getRangeSelectedNodes(a.getRangeAt(0))),$.each(o,$.proxy(function(t,s){if(!1===this.opts.iframe&&0==$(s).parents("div.redactor_editor").length)return!1;void 0===e?""!=$.trim(s.textContent)&&r.push(s):s.tagName==e&&r.push(s)},this)),0==r.length){if(void 0===e&&this.tagTestBlock(e)){var s=this.getBlock();return s.tagName==e?r.push(s):[]}r.push(this.getCurrent())}var n=r[r.length-1];return this.nodeTestBlocks(n)&&(r=r.slice(0,-1)),r},getElement:function(t){for(t||(t=this.getCurrent());t;){if(1==t.nodeType){if($(t).hasClass("redactor_editor"))return!1;return t}t=t.parentNode}return!1},getRangeSelectedNodes:function(t){var e=(t=t||this.getRange()).startContainer,s=t.endContainer;if(e==s)return[e];for(var o=[];e&&e!=s;)o.push(e=this.nextNode(e));for(e=t.startContainer;e&&e!=t.commonAncestorContainer;)o.unshift(e),e=e.parentNode;return o},nextNode:function(t){if(t.hasChildNodes())return t.firstChild;for(;t&&!t.nextSibling;)t=t.parentNode;return t?t.nextSibling:null},getSelectionText:function(){return this.getSelection().toString()},getSelectionHtml:function(){var t="",e=this.getSelection();if(e.rangeCount){for(var s=this.document.createElement("div"),o=e.rangeCount,r=0;r<o;++r)s.appendChild(e.getRangeAt(r).cloneContents());t=s.innerHTML}return this.syncClean(t)},selectionSave:function(){this.isFocused()||this.focusWithSaveScroll(),this.opts.rangy?this.savedSel=rangy.saveSelection():this.selectionCreateMarker(this.getRange())},selectionCreateMarker:function(t,e){if(t){var s=$('<span id="selection-marker-1" class="redactor-selection-marker">'+this.opts.invisibleSpace+"</span>",this.document)[0],o=$('<span id="selection-marker-2" class="redactor-selection-marker">'+this.opts.invisibleSpace+"</span>",this.document)[0];!0===t.collapsed?this.selectionSetMarker(t,s,!0):(this.selectionSetMarker(t,s,!0),this.selectionSetMarker(t,o,!1)),this.savedSel=this.$editor.html(),this.selectionRestore(!1,!1)}},selectionSetMarker:function(t,e,s){var o=t.cloneRange();try{o.collapse(s),o.insertNode(e),o.detach()}catch(r){var a=this.opts.emptyHtml;this.opts.linebreaks&&(a="<br>"),this.$editor.prepend(a),this.focus()}},selectionRestore:function(t,e){if(this.opts.rangy)rangy.restoreSelection(this.savedSel);else{!0===t&&this.savedSel&&this.$editor.html(this.savedSel);var s=this.$editor.find("span#selection-marker-1"),o=this.$editor.find("span#selection-marker-2");this.browser("mozilla")?this.$editor.focus():this.isFocused()||this.focusWithSaveScroll(),0!=s.length&&0!=o.length?this.selectionSet(s[0],0,o[0],0):0!=s.length&&this.selectionSet(s[0],0,null,0),!1!==e&&(this.selectionRemoveMarkers(),this.savedSel=!1)}},selectionRemoveMarkers:function(t){this.opts.rangy?rangy.removeMarkers(this.savedSel):$.each(this.$editor.find("span.redactor-selection-marker"),function(){""==$.trim($(this).html().replace(/[^\u0000-\u1C7F]/g,""))?$(this).remove():$(this).removeAttr("class").removeAttr("id")})},tableShow:function(){this.selectionSave(),this.modalInit(this.opts.curLang.table,this.opts.modal_table,300,$.proxy(function(){$("#redactor_insert_table_btn").on("click",$.proxy(this.tableInsert,this)),setTimeout(function(){$("#redactor_table_rows").focus()},200)},this))},tableInsert:function(){this.bufferSet(!1);var t,e,s,o,r=$("#redactor_table_rows").val(),a=$("#redactor_table_columns").val(),n=$("<div></div>"),l=Math.floor(99999*Math.random()),c=$('<table id="table'+l+'"><tbody></tbody></table>');for(t=0;t<r;t++){for(s=0,e=$("<tr></tr>");s<a;s++)o=$("<td>"+this.opts.invisibleSpace+"</td>"),0===t&&0===s&&o.append('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"),$(e).append(o);c.append(e)}n.append(c);var h=n.html();!1===this.opts.linebreaks&&this.browser("mozilla")&&(h+="<p>"+this.opts.invisibleSpace+"</p>"),this.modalClose(),this.selectionRestore();var d=this.getBlock()||this.getCurrent();if(d&&"BODY"!=d.tagName){if("LI"==d.tagName)var d=$(d).closest("ul, ol");$(d).after(h)}else this.insertHtmlAdvanced(h,!1);this.selectionRestore();var p=this.$editor.find("#table"+l);this.buttonActiveObserver(),p.find("span#selection-marker-1, inline#selection-marker-1").remove(),p.removeAttr("id"),this.sync()},tableDeleteTable:function(){var t=$(this.getParent()).closest("table");if(!this.isParentRedactor(t)||0==t.length)return!1;this.bufferSet(),t.remove(),this.sync()},tableDeleteRow:function(){var t=this.getParent(),e=$(t).closest("table");if(!this.isParentRedactor(e)||0==e.length)return!1;this.bufferSet();var s=$(t).closest("tr"),o=s.prev().length?s.prev():s.next();if(o.length){var r=o.children("td").first();r.length&&r.prepend('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>")}s.remove(),this.selectionRestore(),e.find("span#selection-marker-1").remove(),this.sync()},tableDeleteColumn:function(){var t=this.getParent(),e=$(t).closest("table");if(!this.isParentRedactor(e)||0==e.length)return!1;this.bufferSet();var s=$(t).closest("td");s.is("td")||(s=s.closest("td"));var o=s.get(0).cellIndex;e.find("tr").each($.proxy(function(t,e){var s=o-1<0?o+1:o-1;0===t&&$(e).find("td").eq(s).prepend('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"),$(e).find("td").eq(o).remove()},this)),this.selectionRestore(),e.find("span#selection-marker-1").remove(),this.sync()},tableAddHead:function(){var t=$(this.getParent()).closest("table");if(!this.isParentRedactor(t)||0==t.length)return!1;if(this.bufferSet(),0!==t.find("thead").length)this.tableDeleteHead();else{var e=t.find("tr").first().clone();e.find("td").replaceWith("<th></th>").html(this.opts.invisibleSpace),($thead=$("<thead></thead>")).append(e),t.prepend($thead),this.sync()}},tableDeleteHead:function(){var t=$(this.getParent()).closest("table");if(!this.isParentRedactor(t))return!1;var e=t.find("thead");if(0==e.length)return!1;this.bufferSet(),e.remove(),this.sync()},tableAddRowAbove:function(){this.tableAddRow("before")},tableAddRowBelow:function(){this.tableAddRow("after")},tableAddColumnLeft:function(){this.tableAddColumn("before")},tableAddColumnRight:function(){this.tableAddColumn("after")},tableAddRow:function(t){var e=$(this.getParent()).closest("table");if(!this.isParentRedactor(e)||0==e.length)return!1;this.bufferSet();var s=$(this.getParent()).closest("tr"),o=s.clone();o.find("td").html(this.opts.invisibleSpace),"after"===t?s.after(o):s.before(o),this.sync()},tableAddColumn:function(t){var e=$(this.getParent()).closest("table");if(!this.isParentRedactor(e)||0==e.length)return!1;this.bufferSet();var s=0,o=this.getCurrent(),r=$(o).closest("tr"),a=$(o).closest("td");r.find("td").each($.proxy(function(t,e){$(e)[0]===a[0]&&(s=t)},this)),e.find("tr").each($.proxy(function(e,o){var r=$(o).find("td").eq(s),a=r.clone();a.html(this.opts.invisibleSpace),"after"===t?r.after(a):r.before(a)},this)),this.sync()},videoShow:function(){this.selectionSave(),this.modalInit(this.opts.curLang.video,this.opts.modal_video,600,$.proxy(function(){$("#redactor_insert_video_btn").on("click",$.proxy(this.videoInsert,this)),setTimeout(function(){$("#redactor_insert_video_area").focus()},200)},this))},videoInsert:function(){var t=$("#redactor_insert_video_area").val();t=this.cleanStripTags(t);var e='<iframe width="500" height="281" src="',s='" frameborder="0" allowfullscreen></iframe>';t.match(reUrlYoutube)?t=t.replace(reUrlYoutube,e+"//www.youtube.com/embed/$1"+s):t.match(reUrlVimeo)?t=t.replace(reUrlVimeo,e+"//player.vimeo.com/video/$2"+s):t.match(reUrlFacebook)?t=t.replace(reUrlFacebook,e+"https://www.facebook.com/video/embed?video_id=$1"+s):t.match(reUrlRutube)&&(t=t.replace(reUrlRutube,e+"//rutube.ru/play/embed/$1"+s)),this.selectionRestore();var o=this.getBlock()||this.getCurrent();o?$(o).after(t):this.insertHtmlAdvanced(t,!1),this.sync(),this.modalClose()},linkShow:function(){this.selectionSave();var t=$.proxy(function(){if(!1!==this.opts.predefinedLinks){this.predefinedLinksStorage={};var t=this;$.getJSON(this.opts.predefinedLinks,function(e){if(0!==Object.keys(e).length){var s=$("#redactor-predefined-links");s.html(""),$.each(e,function(e,o){t.predefinedLinksStorage[e]=o,s.append($("<option>").val(e).html(o.name))}),s.on("change",function(){var e=$(this).val(),s="",o="";0!=e&&(s=t.predefinedLinksStorage[e].name,o=t.predefinedLinksStorage[e].url),$("#redactor_link_url").val(o),1!=$("#redactor_link_url_text").data("is_selected_text")&&$("#redactor_link_url_text").val(s)}),s.show()}})}this.insert_link_node=!1;var e=this.getSelection(),s="",o="",r="",a=this.getParent(),n=$(a).parent().get(0);n&&"A"===n.tagName&&(a=n),a&&"A"===a.tagName?(s=a.href,o=$(a).text(),r=a.target,this.insert_link_node=a):o=e.toString(),$("#redactor_link_url_text").val(o),o.length>0&&$("#redactor_link_url_text").data("is_selected_text",1);var l=self.location.href.replace(/\/$/i,"");if(s=(s=(s=s.replace(l,"")).replace(/^\/#/,"#")).replace("mailto:",""),!1===this.opts.linkProtocol){var c=RegExp("^(http|ftp|https)://"+self.location.host,"i");s=s.replace(c,"")}$("#redactor_link_url").val(s),"_blank"===r&&$("#redactor_link_blank").prop("checked",!0),this.linkInsertPressed=!1,$("#redactor_insert_link_btn").on("click",$.proxy(this.linkProcess,this)),setTimeout(function(){$("#redactor_link_url").focus()},200)},this);this.modalInit(this.opts.curLang.link,this.opts.modal_link,460,t)},linkProcess:function(){if(!this.linkInsertPressed){this.linkInsertPressed=!0;var t="",e="",s=$("#redactor_link_url").val(),o=$("#redactor_link_url_text").val();if(-1!=s.search("@")&&!1===/(http|ftp|https):\/\//i.test(s))s="mailto:"+s;else if(0!=s.search("#")){$("#redactor_link_blank").prop("checked")&&(t=' target="_blank"',e="_blank");var r="((xn--)?[a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}",a=RegExp("^(http|ftp|https)://"+r,"i"),n=RegExp("^"+r,"i");-1==s.search(a)&&0==s.search(n)&&this.opts.linkProtocol&&(s=this.opts.linkProtocol+s)}o=o.replace(/<|>/g,"");var l="&nbsp;";this.browser("mozilla")&&(l="&nbsp;"),this.linkInsert('<a href="'+s+'"'+t+">"+o+"</a>"+l,$.trim(o),s,e)}},linkInsert:function(t,e,s,o){if(this.selectionRestore(),""!==e){if(this.insert_link_node)this.bufferSet(),$(this.insert_link_node).text(e).attr("href",s),""!==o?$(this.insert_link_node).attr("target",o):$(this.insert_link_node).removeAttr("target");else{var r=$(t).addClass("redactor-added-link");this.exec("inserthtml",this.outerHtml(r),!1);var s=this.$editor.find("a.redactor-added-link");s.removeAttr("style").removeClass("redactor-added-link").each(function(){""==this.className&&$(this).removeAttr("class")})}this.sync()}setTimeout($.proxy(function(){this.opts.observeLinks&&this.observeLinks()},this),5),this.modalClose()},fileShow:function(){this.selectionSave();var t=$.proxy(function(){var t=this.getSelection(),e="";e=this.oldIE()?t.text:t.toString(),$("#redactor_filename").val(e),this.isMobile()||this.isIPad()||this.draguploadInit("#redactor_file",{url:this.opts.fileUpload,uploadFields:this.opts.uploadFields,success:$.proxy(this.fileCallback,this),error:$.proxy(function(t,e){this.callback("fileUploadError",e)},this),uploadParam:this.opts.fileUploadParam}),this.uploadInit("redactor_file",{auto:!0,url:this.opts.fileUpload,success:$.proxy(this.fileCallback,this),error:$.proxy(function(t,e){this.callback("fileUploadError",e)},this)})},this);this.modalInit(this.opts.curLang.file,this.opts.modal_file,500,t)},fileCallback:function(t){if(this.selectionRestore(),!1!==t){var e=$("#redactor_filename").val();""===e&&(e=t.filename);var s='<a href="'+t.filelink+'" id="filelink-marker">'+e+"</a>";this.browser("webkit")&&this.window.chrome&&(s+="&nbsp;"),this.execCommand("inserthtml",s,!1);var o=$(this.$editor.find("a#filelink-marker"));0!=o.length?o.removeAttr("id"):o=!1,this.sync(),this.callback("fileUpload",o,t)}this.modalClose()},imageShow:function(){this.selectionSave();var t=$.proxy(function(){this.opts.imageGetJson?$.getJSON(this.opts.imageGetJson,$.proxy(function(t){if(t.error){alert(t.message);return}var e={},s=0;$.each(t,$.proxy(function(t,o){void 0!==o.folder&&(s++,e[o.folder]=s)},this)),$("#redactor_image_box .empty_list").show();var o=!1;if($.each(t,$.proxy(function(t,s){var r="";void 0!==s.title&&(r=s.title);var a=0;$.isEmptyObject(e)||void 0===s.folder||(a=e[s.folder],!1!==o||(o=".redactorfolder"+a));var n=$('<img src="'+s.thumb+'" class="redactorfolder redactorfolder'+a+'" rel="'+s.image+'" title="'+r+'" />');$("#redactor_image_box").append(n),$(n).on("click",$.proxy(this.imageThumbClick,this)),$("#redactor_image_box .empty_list").hide()},this)),!$.isEmptyObject(e)){$(".redactorfolder").hide(),$(o).show();var r=function(t){$(".redactorfolder").hide(),$(".redactorfolder"+$(t.target).val()).show()},a=$('<select id="redactor_image_box_select">');$.each(e,function(t,e){a.append($('<option value="'+e+'">'+t+"</option>"))}),$("#redactor_image_box").before(a),a.change(r)}},this)):$("#redactor-tab-control-2").remove(),this.opts.imageUpload||this.opts.s3?(this.isMobile()||this.isIPad()||!1!==this.opts.s3||!$("#redactor_file").length||this.draguploadInit("#redactor_file",{url:this.opts.imageUpload,uploadFields:this.opts.uploadFields,success:$.proxy(this.imageCallback,this),error:$.proxy(function(t,e){this.callback("imageUploadError",e)},this),uploadParam:this.opts.imageUploadParam}),!1===this.opts.s3?this.uploadInit("redactor_file",{auto:!0,url:this.opts.imageUpload,success:$.proxy(this.imageCallback,this),error:$.proxy(function(t,e){this.callback("imageUploadError",e)},this)}):$("#redactor_file").on("change.redactor",$.proxy(this.s3handleFileSelect,this))):($(".redactor_tab").hide(),this.opts.imageGetJson?($("#redactor-tab-control-1").remove(),$("#redactor-tab-control-2").addClass("redactor_tabs_act"),$("#redactor_tab2").show()):($("#redactor_tabs").remove(),$("#redactor_tab3").show())),!this.opts.imageTabLink&&(this.opts.imageUpload||this.opts.imageGetJson)&&$("#redactor-tab-control-3").hide(),$("#redactor_upload_btn").on("click",$.proxy(this.imageCallbackLink,this)),this.opts.imageUpload||this.opts.imageGetJson||setTimeout(function(){$("#redactor_file_link").focus()},200)},this);this.modalInit(this.opts.curLang.image,this.opts.modal_image,610,t)},imageEdit:function(t){var e=t,s=e.parent().parent(),o=$.proxy(function(){$("#redactor_file_alt").val(e.attr("alt")),$("#redactor_image_edit_src").attr("href",e.attr("src")),"block"==e.css("display")&&"none"==e.css("float")?$("#redactor_form_image_align").val("center"):$("#redactor_form_image_align").val(e.css("float")),"A"===$(s).get(0).tagName&&($("#redactor_file_link").val($(s).attr("href")),"_blank"==$(s).attr("target")&&$("#redactor_link_blank").prop("checked",!0)),$("#redactor_image_delete_btn").on("click",$.proxy(function(){this.imageRemove(e)},this)),$("#redactorSaveBtn").on("click",$.proxy(function(){this.imageSave(e)},this))},this);this.modalInit(this.opts.curLang.edit,this.opts.modal_image_edit,380,o)},imageRemove:function(t){var e=$(t).parent().parent(),s=$(t).parent(),o=!1;e.length&&"A"===e[0].tagName?(o=!0,$(e).remove()):s.length&&"A"===s[0].tagName?(o=!0,$(s).remove()):$(t).remove(),s.length&&"P"===s[0].tagName&&(this.focusWithSaveScroll(),!1===o&&this.selectionStart(s)),this.callback("imageDelete",t),this.modalClose(),this.sync()},imageSave:function(t){this.imageResizeHide(!1);var e=$(t),s=e.parent();e.attr("alt",$("#redactor_file_alt").val());var o=$("#redactor_form_image_align").val(),r="";"left"===o?(r="0 "+this.opts.imageFloatMargin+" "+this.opts.imageFloatMargin+" 0",e.css({float:"left",margin:r})):"right"===o?(r="0 0 "+this.opts.imageFloatMargin+" "+this.opts.imageFloatMargin,e.css({float:"right",margin:r})):"center"===o?e.css({float:"",display:"block",margin:"auto"}):e.css({float:"",display:"",margin:""});var a=$.trim($("#redactor_file_link").val());if(""!==a){var n=!1;if($("#redactor_link_blank").prop("checked")&&(n=!0),"A"!==s.get(0).tagName){var l=$('<a href="'+a+'">'+this.outerHtml(t)+"</a>");n&&l.attr("target","_blank"),e.replaceWith(l)}else s.attr("href",a),n?s.attr("target","_blank"):s.removeAttr("target")}else"A"===s.get(0).tagName&&s.replaceWith(this.outerHtml(t));this.modalClose(),this.observeImages(),this.sync()},imageResizeHide:function(t){if(!1!==t&&0!=$(t.target).parent().length&&"redactor-image-box"===$(t.target).parent()[0].id)return!1;var e=this.$editor.find("#redactor-image-box");if(0==e.length)return!1;this.$editor.find("#redactor-image-editter, #redactor-image-resizer").remove(),e.find("img").css({marginTop:e[0].style.marginTop,marginBottom:e[0].style.marginBottom,marginLeft:e[0].style.marginLeft,marginRight:e[0].style.marginRight}),e.css("margin",""),e.find("img").css("opacity",""),e.replaceWith(function(){return $(this).contents()}),$(document).off("click.redactor-image-resize-hide"),this.$editor.off("click.redactor-image-resize-hide"),this.$editor.off("keydown.redactor-image-delete"),this.sync()},imageResize:function(t){var e=$(t);e.on("mousedown",$.proxy(function(){this.imageResizeHide(!1)},this)),e.on("dragstart",$.proxy(function(){this.$editor.on("drop.redactor-image-inside-drop",$.proxy(function(){setTimeout($.proxy(function(){this.observeImages(),this.$editor.off("drop.redactor-image-inside-drop"),this.sync()},this),1)},this))},this)),e.on("click",$.proxy(function(t){if(0!=this.$editor.find("#redactor-image-box").length)return!1;var s,o,r=e.width()/e.height(),a=20,n=this.imageResizeControls(e),l=!1;!1!==n&&(n.on("mousedown",function(t){l=!0,t.preventDefault(),r=e.width()/e.height(),s=Math.round(t.pageX-e.eq(0).offset().left),o=Math.round(t.pageY-e.eq(0).offset().top)}),$(this.document.body).on("mousemove",$.proxy(function(t){if(l){t.pageX,e.eq(0).offset().left;var n=Math.round(t.pageY-e.eq(0).offset().top)-o,c=Math.round((parseInt(e.height(),10)+n)*r);c>a&&(e.width(c),c<100?this.imageEditter.css({marginTop:"-7px",marginLeft:"-13px",fontSize:"9px",padding:"3px 5px"}):this.imageEditter.css({marginTop:"-11px",marginLeft:"-18px",fontSize:"11px",padding:"7px 10px"})),s=Math.round(t.pageX-e.eq(0).offset().left),o=Math.round(t.pageY-e.eq(0).offset().top),this.sync()}},this)).on("mouseup",function(){l=!1})),this.$editor.on("keydown.redactor-image-delete",$.proxy(function(t){var s=t.which;(this.keyCode.BACKSPACE==s||this.keyCode.DELETE==s)&&(this.bufferSet(!1),this.imageResizeHide(!1),this.imageRemove(e))},this)),$(document).on("click.redactor-image-resize-hide",$.proxy(this.imageResizeHide,this)),this.$editor.on("click.redactor-image-resize-hide",$.proxy(this.imageResizeHide,this))},this))},imageResizeControls:function(t){var e=$('<span id="redactor-image-box" data-redactor="verified">');if(e.css({position:"relative",display:"inline-block",lineHeight:0,outline:"1px dashed rgba(0, 0, 0, .6)",float:t.css("float")}),e.attr("contenteditable",!1),"auto"!=t[0].style.margin?(e.css({marginTop:t[0].style.marginTop,marginBottom:t[0].style.marginBottom,marginLeft:t[0].style.marginLeft,marginRight:t[0].style.marginRight}),t.css("margin","")):e.css({display:"block",margin:"auto"}),t.css("opacity",.5).after(e),this.imageEditter=$('<span id="redactor-image-editter" data-redactor="verified">'+this.opts.curLang.edit+"</span>"),this.imageEditter.css({position:"absolute",zIndex:5,top:"50%",left:"50%",marginTop:"-11px",marginLeft:"-18px",lineHeight:1,backgroundColor:"#000",color:"#fff",fontSize:"11px",padding:"7px 10px",cursor:"pointer"}),this.imageEditter.attr("contenteditable",!1),this.imageEditter.on("click",$.proxy(function(){this.imageEdit(t)},this)),e.append(this.imageEditter),!this.opts.imageResizable)return e.append(t),!1;var s=$('<span id="redactor-image-resizer" data-redactor="verified"></span>');return s.css({position:"absolute",zIndex:2,lineHeight:1,cursor:"nw-resize",bottom:"-4px",right:"-5px",border:"1px solid #fff",backgroundColor:"#000",width:"8px",height:"8px"}),s.attr("contenteditable",!1),e.append(s),e.append(t),s},imageThumbClick:function(t){var e='<img id="image-marker" src="'+$(t.target).attr("rel")+'" alt="'+$(t.target).attr("title")+'" />',s=this.getParent();this.opts.paragraphy&&0==$(s).closest("li").length&&(e="<p>"+e+"</p>"),this.imageInsert(e,!0)},imageCallbackLink:function(){var t=$("#redactor_file_link").val();if(""!==t){var e='<img id="image-marker" src="'+t+'" />';!1===this.opts.linebreaks&&(e="<p>"+e+"</p>"),this.imageInsert(e,!0)}else this.modalClose()},imageCallback:function(t){this.imageInsert(t)},imageInsert:function(t,e){if(this.selectionRestore(),!1!==t){var s="";if(!0!==e){s='<img id="image-marker" src="'+t.image.url+'" />';var o=this.getParent();this.opts.paragraphy&&0==$(o).closest("li").length&&(s="<p>"+s+"</p>")}else s=t;this.execCommand("inserthtml",s,!1);var r=$(this.$editor.find("img#image-marker"));r.length?r.removeAttr("id"):r=!1,this.sync(),!0!==e&&this.callback("imageUpload",r,t)}this.modalClose(),this.observeImages()},buildProgressBar:function(){0==$("#redactor-progress").length&&(this.$progressBar=$('<div id="redactor-progress"><span></span></div>'),$(document.body).append(this.$progressBar))},showProgressBar:function(){this.buildProgressBar(),$("#redactor-progress").fadeIn()},hideProgressBar:function(){$("#redactor-progress").fadeOut(1500)},modalTemplatesInit:function(){$.extend(this.opts,{modal_file:String()+'<section id="redactor-modal-file-insert"><form id="redactorUploadFileForm" method="post" action="" enctype="multipart/form-data"><label>'+this.opts.curLang.filename+'</label><input type="text" id="redactor_filename" class="redactor_input" /><div style="margin-top: 7px;"><input type="file" id="redactor_file" name="'+this.opts.fileUploadParam+'" /></div></form></section>',modal_image_edit:String()+'<section id="redactor-modal-image-edit"><label>'+this.opts.curLang.title+'</label><input type="text" id="redactor_file_alt" class="redactor_input" /><label>'+this.opts.curLang.link+'</label><input type="text" id="redactor_file_link" class="redactor_input" /><label><input type="checkbox" id="redactor_link_blank"> '+this.opts.curLang.link_new_tab+"</label><label>"+this.opts.curLang.image_position+'</label><select id="redactor_form_image_align"><option value="none">'+this.opts.curLang.none+'</option><option value="left">'+this.opts.curLang.left+'</option><option value="center">'+this.opts.curLang.center+'</option><option value="right">'+this.opts.curLang.right+'</option></select></section><footer><button id="redactor_image_delete_btn" class="redactor_modal_btn redactor_modal_delete_btn">'+this.opts.curLang._delete+'</button><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactorSaveBtn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.save+"</button></footer>",modal_image:String()+'<section id="redactor-modal-image-insert"><div id="redactor_tabs"><a href="#" id="redactor-tab-control-1" class="redactor_tabs_act">'+this.opts.curLang.upload+'</a><a href="#" id="redactor-tab-control-2">'+this.opts.curLang.choose+'</a><a href="#" id="redactor-tab-control-3">'+this.opts.curLang.link+'</a></div><form id="redactorInsertImageForm" method="post" action="" enctype="multipart/form-data"><div id="redactor_tab1" class="redactor_tab"><input type="file" id="redactor_file" name="'+this.opts.imageUploadParam+'" /></div><div id="redactor_tab2" class="redactor_tab" style="display: none;"><div id="redactor_image_box"><span class="empty_list">'+this.opts.curLang.empty_img_list+'</span></div></div></form><div id="redactor_tab3" class="redactor_tab" style="display: none;"><label>'+this.opts.curLang.image_web_link+'</label><input type="text" name="redactor_file_link" id="redactor_file_link" class="redactor_input"  /><br><br></div></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button class="redactor_modal_btn redactor_modal_action_btn" id="redactor_upload_btn">'+this.opts.curLang.insert+"</button></footer>",modal_link:String()+'<section id="redactor-modal-link-insert"><select id="redactor-predefined-links" style="width: 99.5%; display: none;"></select><label>URL</label><input type="text" class="redactor_input" id="redactor_link_url" /><label>'+this.opts.curLang.text+'</label><input type="text" class="redactor_input" id="redactor_link_url_text" /><label><input type="checkbox" id="redactor_link_blank"> '+this.opts.curLang.link_new_tab+'</label></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactor_insert_link_btn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.insert+"</button></footer>",modal_table:String()+'<section id="redactor-modal-table-insert"><label>'+this.opts.curLang.rows+'</label><input type="text" size="5" value="2" id="redactor_table_rows" /><label>'+this.opts.curLang.columns+'</label><input type="text" size="5" value="3" id="redactor_table_columns" /></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactor_insert_table_btn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.insert+"</button></footer>",modal_video:String()+'<section id="redactor-modal-video-insert"><form id="redactorInsertVideoForm"><label>'+this.opts.curLang.video_html_code+'</label><textarea id="redactor_insert_video_area" style="width: 99%; height: 160px;"></textarea></form></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactor_insert_video_btn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.insert+"</button></footer>"})},modalInit:function(t,e,s,o){return this.modalSetOverlay(),this.$redactorModalWidth=s,this.$redactorModal=$("#redactor_modal"),this.$redactorModal.length||(this.$redactorModal=$('<div id="redactor_modal" style="display: none;" />'),this.$redactorModal.append($('<div id="redactor_modal_close">&times;</div>')),this.$redactorModal.append($('<header id="redactor_modal_header" />')),this.$redactorModal.append($('<div id="redactor_modal_inner" />')),this.$redactorModal.appendTo(document.body)),$("#redactor_modal_close").on("click",$.proxy(this.modalClose,this)),$(document).on("keyup",$.proxy(this.modalCloseHandler,this)),this.$editor.on("keyup",$.proxy(this.modalCloseHandler,this)),this.modalSetContent(e),this.modalSetTitle(t),this.modalSetDraggable(),this.modalLoadTabs(),this.modalOnCloseButton(),this.modalSetButtonsWidth(),this.saveModalScroll=this.document.body.scrollTop,!1===this.opts.autoresize&&(this.saveModalScroll=this.$editor.scrollTop()),!1===this.isMobile()?this.modalShowOnDesktop():this.modalShowOnMobile(),"function"==typeof o&&o(),setTimeout($.proxy(function(){this.callback("modalOpened",this.$redactorModal)},this),11),$(document).off("focusin.modal"),this.$redactorModal.find("input[type=text]").on("keypress",$.proxy(function(t){13===t.which&&(this.$redactorModal.find(".redactor_modal_action_btn").trigger("click"),t.preventDefault())},this)),this.$redactorModal},modalShowOnDesktop:function(){this.$redactorModal.css({position:"fixed",top:"-2000px",left:"50%",width:this.$redactorModalWidth+"px",marginLeft:"-"+this.$redactorModalWidth/2+"px"}).show(),this.modalSaveBodyOveflow=$(document.body).css("overflow"),$(document.body).css("overflow","hidden"),setTimeout($.proxy(function(){var t=this.$redactorModal.outerHeight();this.$redactorModal.css({top:"50%",height:"auto",minHeight:"auto",marginTop:"-"+(t+10)/2+"px"})},this),15)},modalShowOnMobile:function(){this.$redactorModal.css({position:"fixed",width:"100%",height:"100%",top:"0",left:"0",margin:"0",minHeight:"300px"}).show()},modalSetContent:function(t){this.modalcontent=!1,0==t.indexOf("#")?(this.modalcontent=$(t),$("#redactor_modal_inner").empty().append(this.modalcontent.html()),this.modalcontent.html("")):$("#redactor_modal_inner").empty().append(t)},modalSetTitle:function(t){this.$redactorModal.find("#redactor_modal_header").html(t)},modalSetButtonsWidth:function(){},modalOnCloseButton:function(){this.$redactorModal.find(".redactor_btn_modal_close").on("click",$.proxy(this.modalClose,this))},modalSetOverlay:function(){this.opts.modalOverlay&&(this.$redactorModalOverlay=$("#redactor_modal_overlay"),this.$redactorModalOverlay.length||(this.$redactorModalOverlay=$('<div id="redactor_modal_overlay" style="display: none;"></div>'),$("body").prepend(this.$redactorModalOverlay)),this.$redactorModalOverlay.show().on("click",$.proxy(this.modalClose,this)))},modalSetDraggable:function(){void 0!==$.fn.draggable&&(this.$redactorModal.draggable({handle:"#redactor_modal_header"}),this.$redactorModal.find("#redactor_modal_header").css("cursor","move"))},modalLoadTabs:function(){var t=$("#redactor_tabs");if(!t.length)return!1;var e=this;t.find("a").each(function(s,o){s++,$(o).on("click",function(o){if(o.preventDefault(),t.find("a").removeClass("redactor_tabs_act"),$(this).addClass("redactor_tabs_act"),$(".redactor_tab").hide(),$("#redactor_tab"+s).show(),$("#redactor_tab_selected").val(s),!1===e.isMobile()){var r=e.$redactorModal.outerHeight();e.$redactorModal.css("margin-top","-"+(r+10)/2+"px")}})})},modalCloseHandler:function(t){if(t.keyCode===this.keyCode.ESC)return this.modalClose(),!1},modalClose:function(){return $("#redactor_modal_close").off("click",this.modalClose),$("#redactor_modal").fadeOut("fast",$.proxy(function(){var t=$("#redactor_modal_inner");!1!==this.modalcontent&&(this.modalcontent.html(t.html()),this.modalcontent=!1),t.html(""),this.opts.modalOverlay&&$("#redactor_modal_overlay").hide().off("click",this.modalClose),$(document).off("keyup",this.modalCloseHandler),this.$editor.off("keyup",this.modalCloseHandler),this.selectionRestore(),this.opts.autoresize&&this.saveModalScroll?$(this.document.body).scrollTop(this.saveModalScroll):!1===this.opts.autoresize&&this.saveModalScroll&&this.$editor.scrollTop(this.saveModalScroll),this.callback("modalClosed")},this)),!1===this.isMobile()&&$(document.body).css("overflow",this.modalSaveBodyOveflow?this.modalSaveBodyOveflow:"visible"),!1},modalSetTab:function(t){$(".redactor_tab").hide(),$("#redactor_tabs").find("a").removeClass("redactor_tabs_act").eq(t-1).addClass("redactor_tabs_act"),$("#redactor_tab"+t).show()},s3handleFileSelect:function(t){for(var e,s=t.target.files,o=0;e=s[o];o++)this.s3uploadFile(e)},s3uploadFile:function(t){this.s3executeOnSignedUrl(t,$.proxy(function(e){this.s3uploadToS3(t,e)},this))},s3executeOnSignedUrl:function(t,e){var s=new XMLHttpRequest,o="?";"-1"!=this.opts.s3.search(/\?/)&&(o="&"),s.open("GET",this.opts.s3+o+"name="+t.name+"&type="+t.type,!0),s.overrideMimeType&&s.overrideMimeType("text/plain; charset=x-user-defined");var r=this;s.onreadystatechange=function(t){4==this.readyState&&200==this.status?(r.showProgressBar(),e(decodeURIComponent(this.responseText))):4==this.readyState&&this.status},s.send()},s3createCORSRequest:function(t,e){var s=new XMLHttpRequest;return"withCredentials"in s?s.open(t,e,!0):"undefined"!=typeof XDomainRequest?(s=new XDomainRequest).open(t,e):s=null,s},s3uploadToS3:function(t,e){var s=this.s3createCORSRequest("PUT",e);s&&(s.onload=$.proxy(function(){if(200==s.status){this.hideProgressBar();var t=e.split("?");if(!t[0])return!1;this.selectionRestore();var o="";o='<img id="image-marker" src="'+t[0]+'" />',this.opts.paragraphy&&(o="<p>"+o+"</p>"),this.execCommand("inserthtml",o,!1);var r=$(this.$editor.find("img#image-marker"));r.length?r.removeAttr("id"):r=!1,this.sync(),this.callback("imageUpload",r,!1),this.modalClose(),this.observeImages()}},this),s.onerror=function(){},s.upload.onprogress=function(t){},s.setRequestHeader("Content-Type",t.type),s.setRequestHeader("x-amz-acl","public-read"),s.send(t))},uploadInit:function(t,e){this.uploadOptions={url:!1,success:!1,error:!1,start:!1,trigger:!1,auto:!1,input:!1},$.extend(this.uploadOptions,e);var s=$("#"+t);s.length&&"INPUT"===s[0].tagName?(this.uploadOptions.input=s,this.el=$(s[0].form)):this.el=s,this.element_action=this.el.attr("action"),this.uploadOptions.auto?$(this.uploadOptions.input).change($.proxy(function(t){this.el.submit(function(t){return!1}),this.uploadSubmit(t)},this)):this.uploadOptions.trigger&&$("#"+this.uploadOptions.trigger).on("click",$.proxy(this.uploadSubmit,this))},uploadSubmit:function(t){this.showProgressBar(),this.uploadForm(this.element,this.uploadFrame())},uploadFrame:function(){this.id="f"+Math.floor(99999*Math.random());var t=this.document.createElement("div"),e='<iframe style="display:none" id="'+this.id+'" name="'+this.id+'"></iframe>';return t.innerHTML=e,$(t).appendTo("body"),this.uploadOptions.start&&this.uploadOptions.start(),$("#"+this.id).one("load",$.proxy(this.uploadLoaded,this)),this.id},uploadForm:function(t,e){if(this.uploadOptions.input){var s="redactorUploadForm"+this.id,o="redactorUploadFile"+this.id;this.form=$('<form  action="'+this.uploadOptions.url+'" method="POST" target="'+e+'" name="'+s+'" id="'+s+'" enctype="multipart/form-data" />'),!1!==this.opts.uploadFields&&"object"==typeof this.opts.uploadFields&&$.each(this.opts.uploadFields,$.proxy(function(t,e){null!=e&&0===e.toString().indexOf("#")&&(e=$(e).val());var s=$("<input/>",{type:"hidden",name:t,value:e});$(this.form).append(s)},this));var r=this.uploadOptions.input,a=$(r).clone();$(r).attr("id",o).before(a).appendTo(this.form),$(this.form).css("position","absolute").css("top","-2000px").css("left","-2000px").appendTo("body"),this.form.submit()}else t.attr("target",e).attr("method","POST").attr("enctype","multipart/form-data").attr("action",this.uploadOptions.url),this.element.submit()},uploadLoaded:function(){var t,e=$("#"+this.id)[0];if(t=e.contentDocument?e.contentDocument:e.contentWindow?e.contentWindow.document:window.frames[this.id].document,this.uploadOptions.success){if(this.hideProgressBar(),void 0!==t){var s=t.body.innerHTML.match(/\{(.|\n)*\}/)[0];s=(s=s.replace(/^\[/,"")).replace(/\]$/,"");var o=$.parseJSON(s);void 0===o.error?this.uploadOptions.success(o):(console.log(o),this.uploadOptions.error(this,o),this.modalClose())}else this.modalClose(),alert("Upload failed!")}this.el.attr("action",this.element_action),this.el.attr("target","")},draguploadInit:function(t,e){if(this.draguploadOptions=$.extend({url:!1,success:!1,error:!1,preview:!1,uploadFields:!1,text:this.opts.curLang.drop_file_here,atext:this.opts.curLang.or_choose,uploadParam:!1},e),void 0===window.FormData)return!1;this.droparea=$('<div class="redactor_droparea"></div>'),this.dropareabox=$('<div class="redactor_dropareabox">'+this.draguploadOptions.text+"</div>"),this.dropalternative=$('<div class="redactor_dropalternative">'+this.draguploadOptions.atext+"</div>"),this.droparea.append(this.dropareabox),$(t).before(this.droparea),$(t).before(this.dropalternative),this.dropareabox.on("dragover",$.proxy(function(){return this.draguploadOndrag()},this)),this.dropareabox.on("dragleave",$.proxy(function(){return this.draguploadOndragleave()},this)),this.dropareabox.get(0).ondrop=$.proxy(function(t){for(var e in t.preventDefault(),this.dropareabox.removeClass("hover").addClass("drop"),this.showProgressBar(),t.dataTransfer.files)t.dataTransfer.files.hasOwnProperty(e)&&this.dragUploadAjax(this.draguploadOptions.url,t.dataTransfer.files[e],!1,t,this.draguploadOptions.uploadParam)},this)},dragUploadAjax:function(t,e,s,o,r){if(!s){var a=$.ajaxSettings.xhr();a.upload&&a.upload.addEventListener("progress",$.proxy(this.uploadProgress,this),!1),$.ajaxSetup({xhr:function(){return a}})}this.callback("drop",o);var n=new FormData;!1!==r?n.append(r,e):n.append("file",e),!1!==this.opts.uploadFields&&"object"==typeof this.opts.uploadFields&&$.each(this.opts.uploadFields,$.proxy(function(t,e){null!=e&&0===e.toString().indexOf("#")&&(e=$(e).val()),n.append(t,e)},this)),$.ajax({url:t,dataType:"html",async:!1,data:n,cache:!1,contentType:!1,processData:!1,type:"POST",success:$.proxy(function(t){var e="string"==typeof(t=(t=t.replace(/^\[/,"")).replace(/\]$/,""))?$.parseJSON(t):t;if(this.hideProgressBar(),s){var r=$("<img>");r.attr("src",e.image.url).attr("id","drag-image-marker"),this.insertNodeToCaretPositionFromPoint(o,r[0]);var a=$(this.$editor.find("img#drag-image-marker"));a.length?a.removeAttr("id"):a=!1,this.sync(),this.observeImages(),a&&this.callback("imageUpload",a,e),void 0!==e.error&&this.callback("imageUploadError",e)}else void 0===e.error?this.draguploadOptions.success(e):(this.draguploadOptions.error(this,e),this.draguploadOptions.success(!1))},this)})},draguploadOndrag:function(){return this.dropareabox.addClass("hover"),!1},draguploadOndragleave:function(){return this.dropareabox.removeClass("hover"),!1},uploadProgress:function(t,e){var s=t.loaded?parseInt(t.loaded/t.total*100,10):t;this.dropareabox.text("Loading "+s+"% "+(e||""))},isMobile:function(){return/(iPhone|iPod|BlackBerry|Android)/.test(navigator.userAgent)},isIPad:function(){return/iPad/.test(navigator.userAgent)},normalize:function(t){return void 0===t?0:parseInt(t.replace("px",""),10)},outerHtml:function(t){return $("<div>").append($(t).eq(0).clone()).html()},stripHtml:function(t){var e=document.createElement("DIV");return e.innerHTML=t,e.textContent||e.innerText||""},isString:function(t){return"[object String]"==Object.prototype.toString.call(t)},isEmpty:function(t){return""==(t=(t=(t=t.replace(/&#x200b;|<br>|<br\/>|&nbsp;/gi,"")).replace(/\s/g,"")).replace(/^<p>[^\W\w\D\d]*?<\/p>$/i,""))},getInternetExplorerVersion:function(){var t=!1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent;null!=RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(e)&&(t=parseFloat(RegExp.$1))}return t},isIe11:function(){return!!navigator.userAgent.match(/Trident\/7\./)},browser:function(t){var e=navigator.userAgent.toLowerCase(),s=/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return"version"==t?s[2]:"webkit"==t?"chrome"==s[1]||"webkit"==s[1]:"rv"==s[1]?"msie"==t:"opr"==s[1]?"webkit"==t:t==s[1]},oldIE:function(){return!!(this.browser("msie")&&9>parseInt(this.browser("version"),10))},getFragmentHtml:function(t){var e=t.cloneNode(!0),s=this.document.createElement("div");return s.appendChild(e),s.innerHTML},extractContent:function(){for(var t,e=this.$editor[0],s=this.document.createDocumentFragment();t=e.firstChild;)s.appendChild(t);return s},isParentRedactor:function(t){return!!t&&(this.opts.iframe?t:!(0==$(t).parents("div.redactor_editor").length||$(t).hasClass("redactor_editor"))&&t)},currentOrParentIs:function(t){var e=this.getParent(),s=this.getCurrent();return e&&e.tagName===t?e:!!s&&s.tagName===t&&s},isEndOfElement:function(){var t=this.getBlock(),e=this.getCaretOffset(t),s=$.trim($(t).text()).replace(/\n\r\n/g,"").length;return e==s},isFocused:function(){var t,e=this.getSelection();return e&&e.rangeCount&&e.rangeCount>0&&(t=e.getRangeAt(0).startContainer),!!t&&(this.opts.iframe?!this.getCaretOffsetRange().equals()||!this.$editor.is(t):0!=$(t).closest("div.redactor_editor").length)},removeEmptyAttr:function(t,e){""==$(t).attr(e)&&$(t).removeAttr(e)},removeFromArrayByValue:function(t,e){for(var s=null;-1!==(s=t.indexOf(e));)t.splice(s,1);return t}},Redactor.prototype.init.prototype=Redactor.prototype,$.Redactor.fn.formatLinkify=function(t,e,s,o,r){for(var a=/(((https?|ftps?):\/\/)|www[.][^\s])(.+?\..+?)([.),]?)(\s|\.\s+|\)|$)/gi,n=/(https?|ftp):\/\//i,l=/(https?:\/\/.*\.(?:png|jpg|jpeg|gif))/gi,c=(this.$editor?this.$editor.get(0):this).childNodes,h=c.length;h--;){var d=c[h];if(3===d.nodeType){var p=d.nodeValue;if(o&&p){var u='<iframe width="500" height="281" src="',f='" frameborder="0" allowfullscreen></iframe>';p.match(reUrlYoutube)?(p=p.replace(reUrlYoutube,u+"//www.youtube.com/embed/$1"+f),$(d).after(p).remove()):p.match(reUrlVimeo)&&(p=p.replace(reUrlVimeo,u+"//player.vimeo.com/video/$2"+f),$(d).after(p).remove())}if(s&&p&&p.match(l)&&(p=p.replace(l,'<img src="$1">'),$(d).after(p).remove()),e&&p&&p.match(a)){var m=p.match(a);for(var h in m){var g=m[h],b=g,v="";null!==g.match(/\s$/)&&(v=" ");var _=t;null!==g.match(n)&&(_=""),b.length>r&&(b=b.substring(0,r)+"...");var y=(b=b.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")).replace("$","$$$");p=p.replace(g,'<a href="'+_+$.trim(g)+'">'+$.trim(y)+"</a>"+v)}$(d).after(p).remove()}}else 1!==d.nodeType||/^(a|button|textarea)$/i.test(d.tagName)||$.Redactor.fn.formatLinkify.call(d,t,e,s,o,r)}}}(jQuery);
\ No newline at end of file
+/* Redactor v9.2.7 */
+(function($){var uuid=0,Range=function(t){return this[0]=t.startOffset,this[1]=t.endOffset,this.range=t,this};Range.prototype.equals=function(){return this[0]===this[1]};var reUrlYoutube=/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com\S*[^\w\-\s])([\w\-]{11})(?=[^\w\-]|$)(?![?=&+%\w.-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/gi,reUrlVimeo=/https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/,reUrlFacebook=/^(?:(?:https|http)?:\/\/)?(?:www\.)?(?:facebook\.com(?:\/[^\/]+\/videos\/|\/video\.php\?v=))([0-9]+)(?:.+)?$/,reUrlRutube=/^(?:(?:https|http)?:\/\/)?(?:www\.)?(?:rutube\.ru\/video\/)([a-z0-9]+)(?:.+)?$/;function Redactor(t,e){return new Redactor.prototype.init(t,e)}$.fn.redactor=function(t){var e=[],i=Array.prototype.slice.call(arguments,1);return"string"==typeof t?this.each((function(){var s=$.data(this,"redactor");if(void 0===s||!$.isFunction(s[t]))return $.error('No such method "'+t+'" for Redactor');var o=s[t].apply(s,i);void 0!==o&&o!==s&&e.push(o)})):this.each((function(){$.data(this,"redactor")||$.data(this,"redactor",Redactor(this,t))})),0===e.length?this:1===e.length?e[0]:e},$.Redactor=Redactor,$.Redactor.VERSION="9.2.6",$.Redactor.opts={rangy:!1,iframe:!1,fullpage:!1,css:!1,lang:"en",direction:"ltr",placeholder:!1,typewriter:!1,wym:!1,mobile:!0,cleanup:!0,tidyHtml:!0,pastePlainText:!1,removeEmptyTags:!0,cleanSpaces:!0,cleanFontTag:!0,templateVars:!1,xhtml:!1,visual:!0,focus:!1,tabindex:!1,autoresize:!0,minHeight:!1,maxHeight:!1,shortcuts:{"ctrl+m, meta+m":"this.execCommand('removeFormat', false)","ctrl+b, meta+b":"this.execCommand('bold', false)","ctrl+i, meta+i":"this.execCommand('italic', false)","ctrl+h, meta+h":"this.execCommand('superscript', false)","ctrl+l, meta+l":"this.execCommand('subscript', false)","ctrl+k, meta+k":"this.linkShow()","ctrl+shift+7":"this.execCommand('insertorderedlist', false)","ctrl+shift+8":"this.execCommand('insertunorderedlist', false)"},shortcutsAdd:!1,autosave:!1,autosaveInterval:60,plugins:!1,linkProtocol:"http://",linkNofollow:!1,linkSize:50,predefinedLinks:!1,imageFloatMargin:"10px",imageGetJson:!1,dragUpload:!0,imageTabLink:!0,imageUpload:!1,imageUploadParam:"file",imageResizable:!0,fileUpload:!1,fileUploadParam:"file",clipboardUpload:!0,clipboardUploadUrl:!1,smilesUrl:"",dnbImageTypes:["image/png","image/jpeg","image/gif"],s3:!1,uploadFields:!1,observeImages:!0,observeLinks:!0,modalOverlay:!0,tabSpaces:!1,tabFocus:!0,air:!1,airButtons:["formatting","bold","italic","deleted","unorderedlist","orderedlist","outdent","indent"],toolbar:!0,toolbarFixed:!1,toolbarFixedTarget:document,toolbarFixedTopOffset:0,toolbarFixedBox:!1,toolbarExternal:!1,toolbarOverflow:!1,buttonSource:!0,buttons:["html","undo","redo","formatting","bold","italic","deleted","unorderedlist","orderedlist","outdent","indent","image","video","file","table","link","alignment","|","horizontalrule"],buttonsHideOnMobile:[],activeButtons:["deleted","italic","bold","underline","unorderedlist","orderedlist","alignleft","aligncenter","alignright","justify","table"],activeButtonsStates:{b:"bold",strong:"bold",i:"italic",em:"italic",del:"deleted",strike:"deleted",ul:"unorderedlist",ol:"orderedlist",u:"underline",tr:"table",td:"table",table:"table"},formattingTags:["p","blockquote","code","h2","h3","h4","h5","h6"],linebreaks:!1,paragraphy:!0,convertDivs:!0,convertLinks:!0,convertImageLinks:!1,convertVideoLinks:!1,formattingPre:!1,phpTags:!1,allowedTags:!1,deniedTags:["html","head","link","body","meta","script","style","applet"],boldTag:"strong",italicTag:"em",indentValue:20,buffer:[],rebuffer:[],textareamode:!1,emptyHtml:"<p>&#x200b;</p>",invisibleSpace:"&#x200b;",rBlockTest:/^(P|H[1-6]|LI|ADDRESS|SECTION|HEADER|FOOTER|ASIDE|ARTICLE)$/i,alignmentTags:["P","H1","H2","H3","H4","H5","H6","DD","DL","DT","DIV","TD","BLOCKQUOTE","OUTPUT","FIGCAPTION","ADDRESS","SECTION","HEADER","FOOTER","ASIDE","ARTICLE"],ownLine:["area","body","head","hr","i?frame","link","meta","noscript","style","script","table","tbody","thead","tfoot"],contOwnLine:["li","dt","dt","h[1-6]","option","script"],newLevel:["blockquote","div","dl","fieldset","form","frameset","map","ol","p","code","select","td","th","tr","ul"],blockLevelElements:["P","H1","H2","H3","H4","H5","H6","DD","DL","DT","DIV","LI","BLOCKQUOTE","OUTPUT","FIGCAPTION","CODE","ADDRESS","SECTION","HEADER","FOOTER","ASIDE","ARTICLE","TD"],langs:{en:{html:"HTML",video:"Insert Video",image:"Insert Image",table:"Table",link:"Link",link_insert:"Insert link",link_edit:"Edit link",unlink:"Unlink",formatting:"Formatting",paragraph:"Normal text",quote:"Quote",code:"Code",header1:"Header 1",header2:"Header 2",header3:"Header 3",header4:"Header 4",header5:"Header 5",bold:"Bold",italic:"Italic",fontcolor:"Font Color",backcolor:"Back Color",unorderedlist:"Unordered List",orderedlist:"Ordered List",outdent:"Outdent",indent:"Indent",cancel:"Cancel",insert:"Insert",save:"Save",_delete:"Delete",insert_table:"Insert Table",insert_row_above:"Add Row Above",insert_row_below:"Add Row Below",insert_column_left:"Add Column Left",insert_column_right:"Add Column Right",delete_column:"Delete Column",delete_row:"Delete Row",delete_table:"Delete Table",rows:"Rows",columns:"Columns",add_head:"Add Head",delete_head:"Delete Head",title:"Title",image_position:"Position",none:"None",left:"Left",right:"Right",center:"Center",image_web_link:"Image Web Link",text:"Text",mailto:"Email",web:"URL",video_html_code:"Video Embed Code",file:"Insert File",upload:"Upload",download:"Download",choose:"Choose",empty_img_list:"You have no images",or_choose:"Or choose",drop_file_here:"Drop file here",align_left:"Align text to the left",align_center:"Center text",align_right:"Align text to the right",align_justify:"Justify text",horizontalrule:"Insert Horizontal Rule",fullscreen:"Full screen",fontsize:"Font size",fontfamily:"Font",remove_font:"Clear Font",image_save_toserver:"Save to the server?",deleted:"Deleted",anchor:"Anchor",link_new_tab:"Open link in new tab",underline:"Underline",alignment:"Alignment",filename:"Name (optional)",edit:"Edit",spoiler:"Spoiler",spoiler_name:"Spoiler name",spoiler_text:"Spoiler text",smiles:"Smiles",undo:"Undo",redo:"Redo",formalize:"Formalize"}}},Redactor.fn=$.Redactor.prototype={keyCode:{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,ESC:27,TAB:9,CTRL:17,META:91,LEFT:37,LEFT_WIN:91},init:function(t,e){this.rtePaste=!1,this.$element=this.$source=$(t),this.uuid=uuid++;var i=$.extend(!0,{},$.Redactor.opts);if(this.opts=$.extend({},i,this.$element.data(),e),this.start=!0,this.dropdowns=[],this.sourceHeight=this.$source.css("height"),this.sourceWidth=this.$source.css("width"),this.opts.fullpage&&(this.opts.iframe=!0),this.opts.linebreaks&&(this.opts.paragraphy=!1),this.opts.paragraphy&&(this.opts.linebreaks=!1),this.opts.toolbarFixedBox&&(this.opts.toolbarFixed=!0),this.document=document,this.window=window,this.savedSel=!1,this.cleanlineBefore=new RegExp("^<(/?"+this.opts.ownLine.join("|/?")+"|"+this.opts.contOwnLine.join("|")+")[ >]"),this.cleanlineAfter=new RegExp("^<(br|/?"+this.opts.ownLine.join("|/?")+"|/"+this.opts.contOwnLine.join("|/")+")[ >]"),this.cleannewLevel=new RegExp("^</?("+this.opts.newLevel.join("|")+")[ >]"),this.rTestBlock=new RegExp("^("+this.opts.blockLevelElements.join("|")+")$","i"),!1===this.opts.linebreaks){if(!1!==this.opts.allowedTags){var s=["strong","em","del"],o=["b","i","strike"];"-1"===$.inArray("p",this.opts.allowedTags)&&this.opts.allowedTags.push("p");for(let t in s)"-1"!=$.inArray(s[t],this.opts.allowedTags)&&this.opts.allowedTags.push(o[t])}if(!1!==this.opts.deniedTags){var r=$.inArray("p",this.opts.deniedTags);"-1"!==r&&this.opts.deniedTags.splice(r,r)}}(this.browser("msie")||this.browser("opera"))&&(this.opts.buttons=this.removeFromArrayByValue(this.opts.buttons,"horizontalrule")),this.opts.curLang=this.opts.langs[this.opts.lang],$.extend(this.opts.shortcuts,this.opts.shortcutsAdd),this.placeholderInit(),this.buildStart()},toolbarInit:function(t){return{html:{title:t.html,func:"toggle"},undo:{title:t.undo,func:"bufferUndo"},redo:{title:t.redo,func:"bufferRedo"},formatting:{title:t.formatting,func:"show",dropdown:{p:{title:t.paragraph,func:"formatBlocks"},blockquote:{title:t.quote,func:"formatQuote",className:"redactor_format_blockquote"},code:{title:t.code,func:"formatBlocks",className:"redactor_format_code"},h1:{title:t.header1,func:"formatBlocks",className:"redactor_format_h1"},h2:{title:t.header2,func:"formatBlocks",className:"redactor_format_h2"},h3:{title:t.header3,func:"formatBlocks",className:"redactor_format_h3"},h4:{title:t.header4,func:"formatBlocks",className:"redactor_format_h4"},h5:{title:t.header5,func:"formatBlocks",className:"redactor_format_h5"}}},bold:{title:t.bold,exec:"bold"},italic:{title:t.italic,exec:"italic"},deleted:{title:t.deleted,exec:"strikethrough"},underline:{title:t.underline,exec:"underline"},unorderedlist:{title:"&bull; "+t.unorderedlist,exec:"insertunorderedlist"},orderedlist:{title:"1. "+t.orderedlist,exec:"insertorderedlist"},outdent:{title:"< "+t.outdent,func:"indentingOutdent"},indent:{title:"> "+t.indent,func:"indentingIndent"},image:{title:t.image,func:"imageShow"},video:{title:t.video,func:"videoShow"},file:{title:t.file,func:"fileShow"},table:{title:t.table,func:"show",dropdown:{insert_table:{title:t.insert_table,func:"tableShow"},separator_drop1:{name:"separator"},insert_row_above:{title:t.insert_row_above,func:"tableAddRowAbove"},insert_row_below:{title:t.insert_row_below,func:"tableAddRowBelow"},insert_column_left:{title:t.insert_column_left,func:"tableAddColumnLeft"},insert_column_right:{title:t.insert_column_right,func:"tableAddColumnRight"},separator_drop2:{name:"separator"},add_head:{title:t.add_head,func:"tableAddHead"},delete_head:{title:t.delete_head,func:"tableDeleteHead"},separator_drop3:{name:"separator"},delete_column:{title:t.delete_column,func:"tableDeleteColumn"},delete_row:{title:t.delete_row,func:"tableDeleteRow"},delete_table:{title:t.delete_table,func:"tableDeleteTable"}}},link:{title:t.link,func:"show",dropdown:{link:{title:t.link_insert,func:"linkShow"},unlink:{title:t.unlink,exec:"unlink"}}},alignment:{title:t.alignment,func:"show",dropdown:{alignleft:{title:t.align_left,func:"alignmentLeft"},aligncenter:{title:t.align_center,func:"alignmentCenter"},alignright:{title:t.align_right,func:"alignmentRight"},justify:{title:t.align_justify,func:"alignmentJustify"}}},alignleft:{title:t.align_left,func:"alignmentLeft"},aligncenter:{title:t.align_center,func:"alignmentCenter"},alignright:{title:t.align_right,func:"alignmentRight"},alignjustify:{title:t.align_justify,func:"alignmentJustify"},horizontalrule:{exec:"inserthorizontalrule",title:t.horizontalrule}}},callback:function(t,e,i){var s=this.opts[t+"Callback"];return $.isFunction(s)?!1===e?s.call(this,i):s.call(this,e,i):i},destroy:function(){clearInterval(this.autosaveInterval),$(window).off(".redactor"),this.$source.off("redactor-textarea"),this.$element.off(".redactor").removeData("redactor");var t=this.get();if(this.opts.textareamode)this.$box.after(this.$source),this.$box.remove(),this.$source.val(t).show();else{var e=this.$editor;this.opts.iframe&&(e=this.$element),this.$box.after(e),this.$box.remove(),e.removeClass("redactor_editor").removeClass("redactor_editor_wym").removeAttr("contenteditable").html(t).show()}this.opts.toolbarExternal&&$(this.opts.toolbarExternal).html(""),this.opts.air&&$("#redactor_air_"+this.uuid).remove()},getObject:function(){return $.extend({},this)},getEditor:function(){return this.$editor},getBox:function(){return this.$box},getIframe:function(){return!!this.opts.iframe&&this.$frame},getToolbar:function(){return!!this.$toolbar&&this.$toolbar},get:function(){return this.$source.val()},getCodeIframe:function(){this.$editor.removeAttr("contenteditable").removeAttr("dir");var t=this.outerHtml(this.$frame.contents().children());return this.$editor.attr({contenteditable:!0,dir:this.opts.direction}),t},set:function(t,e,i){t=(t=t.toString()).replace(/\$/g,"&#36;"),this.opts.fullpage?this.setCodeIframe(t):this.setEditor(t,e),""==t&&(i=!1),!1!==i&&this.placeholderRemoveFromEditor()},setEditor:function(t,e){t=this.sanitizeHTML(t),!1!==e&&(t=this.cleanSavePreCode(t),t=this.cleanStripTags(t),t=this.cleanConvertProtected(t),t=this.cleanConvertInlineTags(t,!0),t=!1===this.opts.linebreaks?this.cleanConverters(t):t.replace(/<p(.*?)>([\w\W]*?)<\/p>/gi,"$2<br>")),t=t.replace(/&amp;#36;/g,"$"),t=this.cleanEmpty(t),this.$editor.html(t),this.setNonEditable(),this.setSpansVerified(),this.sync()},sanitizeHTML:function(t){if(0===t.length)return t;function e(t){let e=t.attributes;for(let{name:s,value:o}of e)i(s,o)&&t.removeAttribute(s)}function i(t,e){let i=e.replace(/\s+/g,"").toLowerCase();return!(!["src","href","xlink:href"].includes(t)||!i.includes("javascript:")&&!i.includes("data:text/html"))||(!!t.startsWith("on")||void 0)}let s=(new DOMParser).parseFromString(t,"text/html").body;return function t(i){let s=i.children;for(let i of s)e(i),t(i)}(s),s.innerHTML},setCodeIframe:function(t){var e=this.iframePage();this.$frame[0].src="about:blank",t=this.cleanConvertProtected(t),t=this.cleanConvertInlineTags(t),t=this.cleanRemoveSpaces(t),e.open(),e.write(t),e.close(),this.opts.fullpage&&(this.$editor=this.$frame.contents().find("body").attr({contenteditable:!0,dir:this.opts.direction})),this.setNonEditable(),this.setSpansVerified(),this.sync()},setFullpageOnInit:function(t){t=this.sanitizeHTML(t),this.fullpageDoctype=t.match(/^<\!doctype[^>]*>/i),this.fullpageDoctype&&1==this.fullpageDoctype.length&&(t=t.replace(/^<\!doctype[^>]*>/i,"")),t=this.cleanSavePreCode(t,!0),t=this.cleanConverters(t),t=this.cleanEmpty(t),this.$editor.html(t),this.setNonEditable(),this.setSpansVerified(),this.sync()},setFullpageDoctype:function(){if(this.fullpageDoctype&&1==this.fullpageDoctype.length){var t=this.fullpageDoctype[0]+"\n"+this.$source.val();this.$source.val(t)}},setSpansVerified:function(){var t=this.$editor.find("span"),e="inline";$.each(t,(function(){var t=this.outerHTML,i=new RegExp("<"+this.tagName,"gi"),s=t.replace(i,"<"+e);i=new RegExp("</"+this.tagName,"gi"),s=s.replace(i,"</"+e),$(this).replaceWith(s)}))},setSpansVerifiedHtml:function(t){return(t=t.replace(/<span(.*?)>/,"<inline$1>")).replace(/<\/span>/,"</inline>")},setNonEditable:function(){this.$editor.find(".noneditable").attr("contenteditable",!1)},sync:function(t){var e="";if(this.cleanUnverified(),e=this.opts.fullpage?this.getCodeIframe():this.$editor.html(),e=this.syncClean(e),e=this.cleanRemoveEmptyTags(e),this.cleanRemoveSpaces(this.$source.val(),!1)==this.cleanRemoveSpaces(e,!1))return!1;if(e=e.replace(/<\/li><(ul|ol)>([\w\W]*?)<\/(ul|ol)>/gi,"<$1>$2</$1></li>"),"<br>"===$.trim(e)&&(e=""),this.opts.xhtml){$.each(["br","hr","img","link","input","meta"],(function(t,i){e=e.replace(new RegExp("<"+i+"(.*?[^/$]?)>","gi"),"<"+i+"$1 />")}))}if(e=this.callback("syncBefore",!1,e),this.$source.val(e),this.setFullpageDoctype(),this.callback("syncAfter",!1,e),!1===this.start)if(void 0!==t)switch(t.which){case 37:case 38:case 39:case 40:break;default:this.callback("change",!1,e)}else this.callback("change",!1,e)},syncClean:function(t){return this.opts.fullpage||(t=this.cleanStripTags(t)),t=$.trim(t),"<p></p>"!==(t=(t=(t=(t=(t=this.placeholderRemoveFromCode(t)).replace(/&#x200b;/gi,"")).replace(/&#8203;/gi,"")).replace(/<\/a>&nbsp;/gi,"</a> ")).replace(/\u200B/g,""))&&"<p> </p>"!==t&&"<p>&nbsp;</p>"!==t||(t=""),this.opts.linkNofollow&&(t=(t=t.replace(/<a(.*?)rel="nofollow"(.*?)>/gi,"<a$1$2>")).replace(/<a(.*?)>/gi,'<a$1 rel="nofollow">')),t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("\x3c!--?php","<?php")).replace("?--\x3e","?>")).replace(/<(.*?)class="noeditable"(.*?) contenteditable="false"(.*?)>/gi,'<$1class="noeditable"$2$3>')).replace(/ data-tagblock=""/gi,"")).replace(/<br\s?\/?>\n?<\/(P|H[1-6]|LI|ADDRESS|SECTION|HEADER|FOOTER|ASIDE|ARTICLE)>/gi,"</$1>")).replace(/<span(.*?)id="redactor-image-box"(.*?)>([\w\W]*?)<img(.*?)><\/span>/gi,"$3<img$4>")).replace(/<span(.*?)id="redactor-image-resizer"(.*?)>(.*?)<\/span>/gi,"")).replace(/<span(.*?)id="redactor-image-editter"(.*?)>(.*?)<\/span>/gi,"")).replace(/<(ul|ol)>\s*\t*\n*<\/(ul|ol)>/gi,""),this.opts.cleanFontTag&&(t=t.replace(/<font(.*?)>([\w\W]*?)<\/font>/gi,"$2")),t=(t=(t=(t=(t=t.replace(/<span(.*?)>([\w\W]*?)<\/span>/gi,"$2")).replace(/<inline>([\w\W]*?)<\/inline>/gi,"$1")).replace(/<inline>/gi,"<span>")).replace(/<inline /gi,"<span ")).replace(/<\/inline>/gi,"</span>"),this.opts.removeEmptyTags&&(t=t.replace(/<span>([\w\W]*?)<\/span>/gi,"$1")),t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<span(.*?)class="redactor_placeholder"(.*?)>([\w\W]*?)<\/span>/gi,"")).replace(/<img(.*?)contenteditable="false"(.*?)>/gi,"<img$1$2>")).replace(/&/gi,"&")).replace(/\u2122/gi,"&trade;")).replace(/\u00a9/gi,"&copy;")).replace(/\u2026/gi,"&hellip;")).replace(/\u2014/gi,"&mdash;")).replace(/\u2010/gi,"&dash;"),t=this.cleanReConvertProtected(t)},buildStart:function(){this.content="",this.$box=$('<div class="redactor_box" />'),"TEXTAREA"===this.$source[0].tagName&&(this.opts.textareamode=!0),!1===this.opts.mobile&&this.isMobile()?this.buildMobile():(this.buildContent(),this.opts.iframe?(this.opts.autoresize=!1,this.iframeStart()):this.opts.textareamode?this.buildFromTextarea():this.buildFromElement(),this.opts.iframe||(this.buildOptions(),this.buildAfter()))},buildMobile:function(){this.opts.textareamode||(this.$editor=this.$source,this.$editor.hide(),this.$source=this.buildCodearea(this.$editor),this.$source.val(this.content)),this.$box.insertAfter(this.$source).append(this.$source)},buildContent:function(){this.opts.textareamode?this.content=$.trim(this.$source.val()):this.content=$.trim(this.$source.html())},buildFromTextarea:function(){this.$editor=$("<div />"),this.$box.insertAfter(this.$source).append(this.$editor).append(this.$source),this.buildAddClasses(this.$editor),this.buildEnable()},buildFromElement:function(){this.$editor=this.$source,this.$source=this.buildCodearea(this.$editor),this.$box.insertAfter(this.$editor).append(this.$editor).append(this.$source),this.buildEnable()},buildCodearea:function(t){return $("<textarea />").attr("name",t.attr("id")).css("height",this.sourceHeight)},buildAddClasses:function(t){$.each(this.$source.get(0).className.split(/\s+/),(function(e,i){t.addClass("redactor_"+i)}))},buildEnable:function(){this.$editor.addClass("redactor_editor").attr({contenteditable:!0,dir:this.opts.direction}),this.$source.attr("dir",this.opts.direction).hide(),this.set(this.content,!0,!1)},buildOptions:function(){var t=this.$editor;this.opts.iframe&&(t=this.$frame),this.opts.tabindex&&t.attr("tabindex",this.opts.tabindex),this.opts.minHeight?t.css("min-height",this.opts.minHeight+"px"):this.browser("mozilla")&&this.opts.linebreaks&&this.$editor.css("min-height","45px"),this.browser("mozilla")&&this.opts.linebreaks&&this.$editor.css("padding-bottom","10px"),this.opts.maxHeight&&(this.opts.autoresize=!1,this.sourceHeight=this.opts.maxHeight),this.opts.wym&&this.$editor.addClass("redactor_editor_wym"),this.opts.typewriter&&this.$editor.addClass("redactor-editor-typewriter"),this.opts.autoresize||t.css("height",this.sourceHeight)},buildAfter:function(){if(this.start=!1,this.opts.toolbar&&(this.opts.toolbar=this.toolbarInit(this.opts.curLang),this.toolbarBuild()),this.modalTemplatesInit(),this.buildPlugins(),this.buildBindKeyboard(),this.opts.autosave&&this.autosave(),setTimeout($.proxy(this.observeStart,this),4),this.browser("mozilla"))try{this.document.execCommand("enableObjectResizing",!1,!1),this.document.execCommand("enableInlineTableEditing",!1,!1)}catch(t){}this.opts.focus&&setTimeout($.proxy(this.focus,this),100),this.opts.visual||setTimeout($.proxy((function(){this.opts.visual=!0,this.toggle(!1)}),this),200),this.callback("init")},buildBindKeyboard:function(){var t;this.dblEnter=0,!this.opts.dragUpload||!1===this.opts.imageUpload&&!1===this.opts.s3||this.$editor.on("drop.redactor",$.proxy(this.buildEventDrop,this)),this.$editor.on("click.redactor",$.proxy((function(){this.selectall=!1}),this)),this.$editor.on("input.redactor",$.proxy(this.sync,this)),this.$editor.on("paste.redactor",$.proxy(this.buildEventPaste,this)),this.$editor.on("keydown.redactor",$.proxy(this.buildEventKeydown,this)),this.$editor.on("keyup.redactor",$.proxy(this.buildEventKeyup,this)),$.isFunction(this.opts.textareaKeydownCallback)&&this.$source.on("keydown.redactor-textarea",$.proxy(this.opts.textareaKeydownCallback,this)),$.isFunction(this.opts.focusCallback)&&this.$editor.on("focus.redactor",$.proxy(this.opts.focusCallback,this)),$(document).mousedown((function(e){t=$(e.target)})),this.$editor.on("blur.redactor",$.proxy((function(e){$(t).hasClass("redactor_toolbar")||0!==$(t).parents(".redactor_toolbar").length||(this.selectall=!1,$.isFunction(this.opts.blurCallback)&&this.callback("blur",e))}),this))},buildEventDrop:function(t){if(t=t.originalEvent||t,void 0===window.FormData||!t.dataTransfer)return!0;if(0===t.dataTransfer.files.length)return!0;t.preventDefault();var e=t.dataTransfer.files[0];if(!1!==this.opts.dnbImageTypes&&-1===this.opts.dnbImageTypes.indexOf(e.type))return!0;this.bufferSet(),this.showProgressBar(),!1===this.opts.s3?this.dragUploadAjax(this.opts.imageUpload,e,!0,t,this.opts.imageUploadParam):this.s3uploadFile(e)},buildEventPaste:function(t){var e=!1;this.browser("webkit")&&-1===navigator.userAgent.indexOf("Chrome")&&(this.browser("version").split(".")[0]<536&&(e=!0));if(e)return!0;if(this.browser("opera"))return!0;if(this.opts.clipboardUpload&&this.buildEventClipboardUpload(t))return!0;if(this.opts.cleanup){this.rtePaste=!0,this.selectionSave(),this.selectall||(!0===this.opts.autoresize&&!0!==this.fullscreen?(this.$editor.height(this.$editor.height()),this.saveScroll=this.document.body.scrollTop):this.saveScroll=this.$editor.scrollTop());var i=this.extractContent();setTimeout($.proxy((function(){var t=this.extractContent();this.$editor.append(i),this.selectionRestore();var e=this.getFragmentHtml(t);this.pasteClean(e),!0===this.opts.autoresize&&!0!==this.fullscreen&&this.$editor.css("height","auto")}),this),1)}},buildEventClipboardUpload:function(t){var e=t.originalEvent||t;if(this.clipboardFilePaste=!1,void 0===e.clipboardData)return!1;if(e.clipboardData.items){var i=e.clipboardData.items[0].getAsFile();if(null!==i){this.bufferSet(),this.clipboardFilePaste=!0;var s=new FileReader;return s.onload=$.proxy(this.pasteClipboardUpload,this),s.readAsDataURL(i),!0}}return!1},buildEventKeydown:function(t){if(this.rtePaste)return!1;var e=t.which,i=t.ctrlKey||t.metaKey,s=this.getParent(),o=this.getCurrent(),r=this.getBlock(),a=!1;if(this.callback("keydown",t),this.browser("mozilla")&&"modify"in window.getSelection()&&i&&(37===t.keyCode||39===t.keyCode)){var n=this.getSelection(),l=t.metaKey?"line":"word";37===t.keyCode&&(n.modify("extend","left",l),t.shiftKey||n.collapseToStart()),39===t.keyCode&&(n.modify("extend","right",l),t.shiftKey||n.collapseToEnd()),t.preventDefault()}if(this.imageResizeHide(!1),(s&&"CODE"===$(s).get(0).tagName||o&&"CODE"===$(o).get(0).tagName)&&(a=!0,e===this.keyCode.DOWN&&this.insertAfterLastElement(r)),e===this.keyCode.DOWN&&(s&&"BLOCKQUOTE"===$(s)[0].tagName&&this.insertAfterLastElement(s),o&&"BLOCKQUOTE"===$(o)[0].tagName&&this.insertAfterLastElement(o),s&&"P"===$(s)[0].tagName&&"BLOCKQUOTE"===$(s).parent()[0].tagName&&this.insertAfterLastElement(s,$(s).parent()[0]),o&&"P"===$(o)[0].tagName&&s&&"BLOCKQUOTE"===$(s)[0].tagName&&this.insertAfterLastElement(o,s)),this.shortcuts(t,e),i&&90===e&&!t.shiftKey&&!t.altKey)return t.preventDefault(),void(this.opts.buffer.length?this.bufferUndo():this.document.execCommand("undo",!1,!1));if(i&&90===e&&t.shiftKey&&!t.altKey)return t.preventDefault(),void(0!==this.opts.rebuffer.length?this.bufferRedo():this.document.execCommand("redo",!1,!1));if(32===e&&this.bufferSet(),i&&65===e?(this.bufferSet(),this.selectall=!0):e===this.keyCode.LEFT_WIN||i||(this.selectall=!1),e!==this.keyCode.ENTER||t.shiftKey||t.ctrlKey||t.metaKey)e===this.keyCode.ENTER&&(t.ctrlKey||t.shiftKey)&&(this.bufferSet(),t.preventDefault(),this.insertLineBreak());else{var c=this.getRange();if(c&&!1===c.collapsed&&(sel=this.getSelection(),sel.rangeCount&&c.deleteContents()),this.browser("msie")&&1==s.nodeType&&("TD"===s.tagName||"TH"===s.tagName))return t.preventDefault(),this.bufferSet(),this.insertNode(document.createElement("br")),this.callback("enter",t),!1;if(r&&("BLOCKQUOTE"===r.tagName||"BLOCKQUOTE"===$(r).parent()[0].tagName))if(this.isEndOfElement()){if(1==this.dblEnter){var d,h;if("BLOCKQUOTE"===r.tagName?(h="br",d=r):(h="p",d=$(r).parent()[0]),t.preventDefault(),this.insertingAfterLastElement(d),this.dblEnter=0,"p"===h)$(r).parent().find("p").last().remove();else{var p=$.trim($(r).html());$(r).html(p.replace(/<br\s?\/?>$/i,""))}return}this.dblEnter++}else this.dblEnter++;if(!0===a)return this.buildEventKeydownPre(t,o);if(!this.opts.linebreaks){if(r&&"LI"===r.tagName){var u=this.getBlock();if(!1!==u||"LI"===u.tagName){var f=$.trim($(r).text()),m=$.trim($(u).text());if(""==f&&""==m&&0===$(u).next("li").length&&0===$(u).parents("li").length){this.bufferSet();var g=$(u).closest("ol, ul");$(u).remove();var b=$("<p>"+this.opts.invisibleSpace+"</p>");return g.after(b),this.selectionStart(b),this.sync(),this.callback("enter",t),!1}}}if(r&&this.opts.rBlockTest.test(r.tagName))this.bufferSet(),setTimeout($.proxy((function(){var t=this.getBlock();if("DIV"===t.tagName&&!$(t).hasClass("redactor_editor")){var e=$("<p>"+this.opts.invisibleSpace+"</p>");$(t).replaceWith(e),this.selectionStart(e)}}),this),1);else if(!1===r){this.bufferSet();b=$("<p>"+this.opts.invisibleSpace+"</p>");return this.insertNode(b[0]),this.selectionStart(b),this.callback("enter",t),!1}}if(this.opts.linebreaks){if(!r||!this.opts.rBlockTest.test(r.tagName))return this.buildEventKeydownInsertLineBreak(t);this.bufferSet(),setTimeout($.proxy((function(){var t=this.getBlock();"DIV"!==t.tagName&&"P"!==t.tagName||$(t).hasClass("redactor_editor")||this.replaceLineBreak(t)}),this),1)}if("BLOCKQUOTE"===r.tagName||"FIGCAPTION"===r.tagName)return this.buildEventKeydownInsertLineBreak(t);this.callback("enter",t)}if((e===this.keyCode.TAB||t.metaKey&&219===e)&&this.opts.shortcuts)return this.buildEventKeydownTab(t,a,e);e===this.keyCode.BACKSPACE&&this.buildEventKeydownBackspace(t,o,s)},buildEventKeydownPre:function(t,e){t.preventDefault(),this.bufferSet();var i=$(e).parent().text();return this.insertNode(document.createTextNode("\n")),-1===i.search(/\s$/)&&this.insertNode(document.createTextNode("\n")),this.sync(),this.callback("enter",t),!1},buildEventKeydownTab:function(t,e){return!this.opts.tabFocus||(!(!this.isEmpty(this.get())||!1!==this.opts.tabSpaces)||(t.preventDefault(),!0!==e||t.shiftKey?!1!==this.opts.tabSpaces?(this.bufferSet(),this.insertNode(document.createTextNode(Array(this.opts.tabSpaces+1).join(" "))),this.sync(),!1):(t.shiftKey?this.indentingOutdent():this.indentingIndent(),!1):(this.bufferSet(),this.insertNode(document.createTextNode("\t")),this.sync(),!1)))},buildEventKeydownBackspace:function(t,e,i){if(i&&e&&"TD"===i.parentNode.tagName&&"UL"===i.tagName&&"LI"===e.tagName&&1===$(i).children("li").length&&""==$(e).text().replace(/[\u200B-\u200D\uFEFF]/g,"")){var s=i.parentNode;return $(i).remove(),this.selectionStart(s),this.sync(),!1}void 0!==e.tagName&&/^(H[1-6])$/i.test(e.tagName)&&(s=!1===this.opts.linebreaks?$("<p>"+this.opts.invisibleSpace+"</p>"):$("<br>"+this.opts.invisibleSpace),$(e).replaceWith(s),this.selectionStart(s),this.sync());void 0!==e.nodeValue&&null!==e.nodeValue&&e.remove&&3===e.nodeType&&null==e.nodeValue.match(/[^\u200B]/g)&&($(e).prev().remove(),this.sync())},buildEventKeydownInsertLineBreak:function(t){this.bufferSet(),t.preventDefault(),this.insertLineBreak(),this.callback("enter",t)},buildEventKeyup:function(t){if(this.rtePaste)return!1;var e=t.which,i=this.getParent(),s=this.getCurrent();if(!this.opts.linebreaks&&3==s.nodeType&&(0==i||"BODY"===i.tagName)){var o=$("<p>").append($(s).clone());$(s).replaceWith(o);var r=$(o).next();void 0!==r[0]&&"BR"===r[0].tagName&&r.remove(),this.selectionEnd(o)}if((this.opts.convertLinks||this.opts.convertImageLinks||this.opts.convertVideoLinks)&&e===this.keyCode.ENTER&&this.buildEventKeyupConverters(),e===this.keyCode.DELETE||e===this.keyCode.BACKSPACE)return this.formatEmpty(t);this.callback("keyup",t),this.sync(t)},buildEventKeyupConverters:function(){this.formatLinkify(this.opts.linkProtocol,this.opts.convertLinks,this.opts.convertImageLinks,this.opts.convertVideoLinks,this.opts.linkSize),setTimeout($.proxy((function(){this.opts.convertImageLinks&&this.observeImages(),this.opts.observeLinks&&this.observeLinks()}),this),5)},buildPlugins:function(){this.opts.plugins&&$.each(this.opts.plugins,$.proxy((function(t,e){RedactorPlugins[e]&&($.extend(this,RedactorPlugins[e]),$.isFunction(RedactorPlugins[e].init)&&this.init())}),this))},iframeStart:function(){this.iframeCreate(),this.opts.textareamode?this.iframeAppend(this.$source):(this.$sourceOld=this.$source.hide(),this.$source=this.buildCodearea(this.$sourceOld),this.iframeAppend(this.$sourceOld))},iframeAppend:function(t){this.$source.attr("dir",this.opts.direction).hide(),this.$box.insertAfter(t).append(this.$frame).append(this.$source)},iframeCreate:function(){this.$frame=$('<iframe style="width: 100%;" frameborder="0" />').one("load",$.proxy((function(){if(this.opts.fullpage){this.iframePage(),""===this.content&&(this.content=this.opts.invisibleSpace),this.$frame.contents()[0].write(this.content),this.$frame.contents()[0].close();var t=setInterval($.proxy((function(){this.$frame.contents().find("body").html()&&(clearInterval(t),this.iframeLoad())}),this),0)}else this.iframeLoad()}),this))},iframeDoc:function(){return this.$frame[0].contentWindow.document},iframePage:function(){var t=this.iframeDoc();return t.documentElement&&t.removeChild(t.documentElement),t},iframeAddCss:function(t){t=t||this.opts.css,this.isString(t)&&this.$frame.contents().find("head").append('<link rel="stylesheet" href="'+t+'" />'),$.isArray(t)&&$.each(t,$.proxy((function(t,e){this.iframeAddCss(e)}),this))},iframeLoad:function(){this.$editor=this.$frame.contents().find("body").attr({contenteditable:!0,dir:this.opts.direction}),this.$editor[0]&&(this.document=this.$editor[0].ownerDocument,this.window=this.document.defaultView||window),this.iframeAddCss(),this.opts.fullpage?this.setFullpageOnInit(this.$source.val()):this.set(this.content,!0,!1),this.buildOptions(),this.buildAfter()},placeholderInit:function(){!1!==this.opts.placeholder?(this.placeholderText=this.opts.placeholder,this.opts.placeholder=!0):void 0===this.$element.attr("placeholder")||""==this.$element.attr("placeholder")?this.opts.placeholder=!1:(this.placeholderText=this.$element.attr("placeholder"),this.opts.placeholder=!0)},placeholderStart:function(t){return!1!==this.opts.placeholder&&(this.isEmpty(t)?(this.opts.focus=!1,this.placeholderOnFocus(),this.placeholderOnBlur(),this.placeholderGet()):(this.placeholderOnBlur(),!1))},placeholderOnFocus:function(){this.$editor.on("focus.redactor_placeholder",$.proxy(this.placeholderFocus,this))},placeholderOnBlur:function(){this.$editor.on("blur.redactor_placeholder",$.proxy(this.placeholderBlur,this))},placeholderGet:function(){var t=$('<span class="redactor_placeholder">').data("redactor","verified").attr("contenteditable",!1).text(this.placeholderText);return!1===this.opts.linebreaks?$("<p>").append(t):t},placeholderBlur:function(){var t=this.get();this.isEmpty(t)&&(this.placeholderOnFocus(),this.$editor.html(this.placeholderGet()))},placeholderFocus:function(){this.$editor.find("span.redactor_placeholder").remove();var t="";!1===this.opts.linebreaks&&(t=this.opts.emptyHtml),this.$editor.off("focus.redactor_placeholder"),this.$editor.html(t),!1===this.opts.linebreaks?this.selectionStart(this.$editor.children()[0]):this.focus(),this.sync()},placeholderRemoveFromEditor:function(){this.$editor.find("span.redactor_placeholder").remove(),this.$editor.off("focus.redactor_placeholder")},placeholderRemoveFromCode:function(t){return t.replace(/<span class="redactor_placeholder"(.*?)>(.*?)<\/span>/i,"")},shortcuts:function(e,key){if(!this.opts.shortcuts)return!e.ctrlKey&&!e.metaKey||66!==key&&73!==key||e.preventDefault(),!1;$.each(this.opts.shortcuts,$.proxy((function(str,command){var keys=str.split(",");for(var i in keys)"string"==typeof keys[i]&&this.shortcutsHandler(e,$.trim(keys[i]),$.proxy((function(){eval(command)}),this))}),this))},shortcutsHandler:function(t,e,i){var s={"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"};e=e.toLowerCase().split(" ");var o={8:"backspace",9:"tab",10:"return",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}[t.keyCode],r=String.fromCharCode(t.which).toLowerCase(),a="",n={};$.each(["alt","ctrl","meta","shift"],(function(e,i){t[i+"Key"]&&o!==i&&(a+=i+"+")})),o&&(n[a+o]=!0),r&&(n[a+r]=!0,n[a+s[r]]=!0,"shift+"===a&&(n[s[r]]=!0));for(var l=0,c=e.length;l<c;l++)if(n[e[l]])return t.preventDefault(),i.apply(this,arguments)},focus:function(){this.browser("opera")?this.$editor.focus():this.window.setTimeout($.proxy(this.focusSet,this,!0),1)},focusWithSaveScroll:function(){if(this.browser("msie"))var t=this.document.documentElement.scrollTop;this.$editor.focus(),this.browser("msie")&&(this.document.documentElement.scrollTop=t)},focusEnd:function(){if(this.browser("mozilla"))if(!1===this.opts.linebreaks){var t=this.$editor.children().last();this.$editor.focus(),this.selectionEnd(t)}else this.focusSet();else this.focusSet()},focusSet:function(t,e){this.$editor.focus(),void 0===e&&(e=this.$editor[0]);var i=this.getRange();i.selectNodeContents(e),i.collapse(t||!1);var s=this.getSelection();s.removeAllRanges(),s.addRange(i)},toggle:function(t){this.opts.visual?this.toggleCode(t):this.toggleVisual()},toggleVisual:function(){var t=this.$source.hide().val();if(void 0!==this.modified){var e=this.modified.replace(/\n/g,""),i=t.replace(/\n/g,"");i=this.cleanRemoveSpaces(i,!1),this.modified=this.cleanRemoveSpaces(e,!1)!==i}this.modified&&(this.opts.fullpage&&""===t?this.setFullpageOnInit(t):(this.set(t),this.opts.fullpage&&this.buildBindKeyboard()),this.callback("change",!1,t)),this.opts.iframe?this.$frame.show():this.$editor.show(),this.opts.fullpage&&this.$editor.attr("contenteditable",!0),this.$source.off("keydown.redactor-textarea-indenting"),this.$editor.focus(),this.selectionRestore(),this.observeStart(),this.buttonActiveVisual(),this.buttonInactive("html"),this.opts.visual=!0},toggleCode:function(t){!1!==t&&this.selectionSave();var e=null;this.opts.iframe?(e=this.$frame.height(),this.opts.fullpage&&this.$editor.removeAttr("contenteditable"),this.$frame.hide()):(e=this.$editor.innerHeight(),this.$editor.hide());var i=this.$source.val();""!==i&&this.opts.tidyHtml&&this.$source.val(this.cleanHtml(i)),this.modified=i,this.$source.height(e).show().focus(),this.$source.on("keydown.redactor-textarea-indenting",this.textareaIndenting),this.buttonInactiveVisual(),this.buttonActive("html"),this.opts.visual=!1},textareaIndenting:function(t){if(9===t.keyCode){var e=$(this),i=e.get(0).selectionStart;return e.val(e.val().substring(0,i)+"\t"+e.val().substring(e.get(0).selectionEnd)),e.get(0).selectionStart=e.get(0).selectionEnd=i+1,!1}},autosave:function(){var t=!1;this.autosaveInterval=setInterval($.proxy((function(){var e=this.get();if(t!==e){var i=this.$source.attr("name");$.ajax({url:this.opts.autosave,type:"post",data:"name="+i+"&"+i+"="+escape(encodeURIComponent(e)),success:$.proxy((function(i){var s=$.parseJSON(i);void 0===s.error?this.callback("autosave",!1,s):this.callback("autosaveError",!1,s),t=e}),this)})}}),this),1e3*this.opts.autosaveInterval)},toolbarBuild:function(){if(this.isMobile()&&this.opts.buttonsHideOnMobile.length>0&&$.each(this.opts.buttonsHideOnMobile,$.proxy((function(t,e){var i=this.opts.buttons.indexOf(e);this.opts.buttons.splice(i,1)}),this)),this.opts.air)this.opts.buttons=this.opts.airButtons;else if(!this.opts.buttonSource){var t=this.opts.buttons.indexOf("html");this.opts.buttons.splice(t,1)}if(this.opts.toolbar&&$.each(this.opts.toolbar.formatting.dropdown,$.proxy((function(t){"-1"==$.inArray(t,this.opts.formattingTags)&&delete this.opts.toolbar.formatting.dropdown[t]}),this)),0===this.opts.buttons.length)return!1;this.airEnable(),this.$toolbar=$("<ul>").addClass("redactor_toolbar").attr("id","redactor_toolbar_"+this.uuid),this.opts.typewriter&&this.$toolbar.addClass("redactor-toolbar-typewriter"),this.opts.toolbarOverflow&&this.isMobile()&&this.$toolbar.addClass("redactor-toolbar-overflow"),this.opts.air?(this.$air=$('<div class="redactor_air">').attr("id","redactor_air_"+this.uuid).hide(),this.$air.append(this.$toolbar),$("body").append(this.$air)):this.opts.toolbarExternal?(this.$toolbar.addClass("redactor-toolbar-external"),$(this.opts.toolbarExternal).html(this.$toolbar)):this.$box.prepend(this.$toolbar),$.each(this.opts.buttons,$.proxy((function(t,e){if(this.opts.toolbar[e]){var i=this.opts.toolbar[e];if(!1===this.opts.fileUpload&&"file"===e)return!0;this.$toolbar.append($("<li>").append(this.buttonBuild(e,i)))}}),this)),this.$toolbar.find("a").attr("tabindex","-1"),this.opts.toolbarFixed&&(this.toolbarObserveScroll(),$(this.opts.toolbarFixedTarget).on("scroll.redactor",$.proxy(this.toolbarObserveScroll,this))),this.opts.activeButtons&&this.$editor.on("mouseup.redactor keyup.redactor",$.proxy(this.buttonActiveObserver,this))},toolbarObserveScroll:function(){var t,e=$(this.opts.toolbarFixedTarget).scrollTop(),i=0,s=0;if(t=(i=this.opts.toolbarFixedTarget===document?this.$box.offset().top:1)+this.$box.height()+40,e>i){var o="100%";this.opts.toolbarFixedBox&&(s=this.$box.offset().left,o=this.$box.innerWidth(),this.$toolbar.addClass("toolbar_fixed_box")),this.toolbarFixed=!0,this.opts.toolbarFixedTarget===document?this.$toolbar.css({position:"fixed",width:o,zIndex:10005,top:this.opts.toolbarFixedTopOffset+"px",left:s}):this.$toolbar.css({position:"absolute",width:o,zIndex:10005,top:this.opts.toolbarFixedTopOffset+e+"px",left:0}),e<t?this.$toolbar.css("visibility","visible"):this.$toolbar.css("visibility","hidden")}else this.toolbarFixed=!1,this.$toolbar.css({position:"relative",width:"auto",top:0,left:s}),this.opts.toolbarFixedBox&&this.$toolbar.removeClass("toolbar_fixed_box")},airEnable:function(){this.opts.air&&this.$editor.on("mouseup.redactor keyup.redactor",this,$.proxy((function(t){var e=this.getSelectionText();if("mouseup"===t.type&&""!=e&&this.airShow(t),"keyup"===t.type&&t.shiftKey&&""!=e){var i=$(this.getElement(this.getSelection().focusNode)),s=i.offset();s.height=i.height(),this.airShow(s,!0)}}),this))},airShow:function(t,e){if(this.opts.air){var i,s;if(this.selectionSave(),$(".redactor_air").hide(),e)i=t.left,s=t.top+t.height+14,this.opts.iframe&&(s+=this.$box.position().top-$(this.document).scrollTop(),i+=this.$box.position().left);else{var o=this.$air.innerWidth();i=t.clientX,$(this.document).width()<i+o&&(i-=o),s=t.clientY+14,this.opts.iframe?(s+=this.$box.position().top,i+=this.$box.position().left):s+=$(this.document).scrollTop()}this.$air.css({left:i+"px",top:s+"px"}).show(),this.airBindHide()}},airBindHide:function(){if(this.opts.air){var t=$.proxy((function(t){$(t).on("mousedown.redactor",$.proxy((function(e){0===$(e.target).closest(this.$toolbar).length&&(this.$air.fadeOut(100),this.selectionRemove(),$(t).off(e))}),this)).on("keydown.redactor",$.proxy((function(e){e.which===this.keyCode.ESC&&this.getSelection().collapseToStart(),this.$air.fadeOut(100),$(t).off(e)}),this))}),this);t(document),this.opts.iframe&&t(this.document)}},airBindMousemoveHide:function(){if(this.opts.air){var t=$.proxy((function(t){$(t).on("mousemove.redactor",$.proxy((function(e){0===$(e.target).closest(this.$toolbar).length&&(this.$air.fadeOut(100),$(t).off(e))}),this))}),this);t(document),this.opts.iframe&&t(this.document)}},dropdownBuild:function(t,e){$.each(e,$.proxy((function(e,i){var s;i.className||(i.className=""),"separator"===i.name?s=$('<a class="redactor_separator_drop">'):(s=$('<a href="#" class="'+i.className+" redactor_dropdown_"+e+'">'+i.title+"</a>")).on("click",$.proxy((function(t){this.opts.air&&this.selectionRestore(),t.preventDefault&&t.preventDefault(),this.browser("msie")&&(t.returnValue=!1),i.callback&&i.callback.call(this,e,s,i,t),i.exec&&this.execCommand(i.exec,e),i.func&&this[i.func](e),this.buttonActiveObserver(),this.opts.air&&this.$air.fadeOut(100)}),this)),t.append(s)}),this))},dropdownShow:function(t,e){if(!this.opts.visual)return t.preventDefault(),!1;var i=this.buttonGet(e),s=i.data("dropdown").appendTo(document.body);if(i.hasClass("dropact"))this.dropdownHideAll();else{this.dropdownHideAll(),this.callback("dropdownShow",{dropdown:s,key:e,button:i}),this.buttonActive(e),i.addClass("dropact");var o=i.offset(),r=s.width();o.left+r>$(document).width()&&(o.left-=r);var a=o.left+"px",n=i.innerHeight(),l="absolute",c=n+this.opts.toolbarFixedTopOffset+"px";this.opts.toolbarFixed&&this.toolbarFixed?l="fixed":c=o.top+n+"px",s.css({position:l,left:a,top:c}).show(),this.callback("dropdownShown",{dropdown:s,key:e,button:i})}var d=$.proxy((function(t){this.dropdownHide(t,s)}),this);$(document).one("click",d),this.$editor.one("click",d),this.$editor.one("touchstart",d),t.stopPropagation(),this.focusWithSaveScroll()},dropdownHideAll:function(){this.$toolbar.find("a.dropact").removeClass("redactor_act").removeClass("dropact"),$(".redactor_dropdown").hide(),this.callback("dropdownHide")},dropdownHide:function(t,e){$(t.target).hasClass("dropact")||(e.removeClass("dropact"),this.dropdownHideAll())},buttonBuild:function(t,e,i){var s=$('<a href="javascript:;" title="'+e.title+'" tabindex="-1" class="re-icon re-'+t+'"></a>');if(void 0!==i&&s.addClass("redactor-btn-image"),s.on("click",$.proxy((function(i){if(i.preventDefault&&i.preventDefault(),this.browser("msie")&&(i.returnValue=!1),s.hasClass("redactor_button_disabled"))return!1;!1!==this.isFocused()||e.exec||this.focusWithSaveScroll(),e.exec?(this.focusWithSaveScroll(),this.execCommand(e.exec,t),this.airBindMousemoveHide()):e.func&&"show"!==e.func?(this[e.func](t),this.airBindMousemoveHide()):e.callback?(e.callback.call(this,t,s,e,i),this.airBindMousemoveHide()):e.dropdown&&this.dropdownShow(i,t),this.buttonActiveObserver(!1,t)}),this)),e.dropdown){var o=$('<div class="redactor_dropdown redactor_dropdown_box_'+t+'" style="display: none;">');s.data("dropdown",o),this.dropdownBuild(o,e.dropdown)}return s},buttonGet:function(t){return!!this.opts.toolbar&&$(this.$toolbar.find("a.re-"+t))},buttonTagToActiveState:function(t,e){this.opts.activeButtons.push(t),this.opts.activeButtonsStates[e]=t},buttonActiveToggle:function(t){this.buttonGet(t).hasClass("redactor_act")?this.buttonInactive(t):this.buttonActive(t)},buttonActive:function(t){this.buttonGet(t).addClass("redactor_act")},buttonInactive:function(t){this.buttonGet(t).removeClass("redactor_act")},buttonInactiveAll:function(t){this.$toolbar.find("a.re-icon").not(".re-"+t).removeClass("redactor_act")},buttonActiveVisual:function(){this.$toolbar.find("a.re-icon").not("a.re-html").removeClass("redactor_button_disabled")},buttonInactiveVisual:function(){this.$toolbar.find("a.re-icon").not("a.re-html").addClass("redactor_button_disabled")},buttonChangeIcon:function(t,e){this.buttonGet(t).addClass("re-"+e)},buttonRemoveIcon:function(t,e){this.buttonGet(t).removeClass("re-"+e)},buttonAwesome:function(t,e){var i=this.buttonGet(t);i.removeClass("redactor-btn-image"),i.addClass("fa-redactor-btn"),i.html('<i class="fa '+e+'"></i>')},buttonAdd:function(t,e,i,s){if(this.opts.toolbar){var o=this.buttonBuild(t,{title:e,callback:i,dropdown:s},!0);return this.$toolbar.append($("<li>").append(o)),o}},buttonAddFirst:function(t,e,i,s){if(this.opts.toolbar){var o=this.buttonBuild(t,{title:e,callback:i,dropdown:s},!0);this.$toolbar.prepend($("<li>").append(o))}},buttonAddAfter:function(t,e,i,s,o){if(this.opts.toolbar){var r=this.buttonBuild(e,{title:i,callback:s,dropdown:o},!0),a=this.buttonGet(t);return 0!==a.length?a.parent().after($("<li>").append(r)):this.$toolbar.append($("<li>").append(r)),r}},buttonAddBefore:function(t,e,i,s,o){if(this.opts.toolbar){var r=this.buttonBuild(e,{title:i,callback:s,dropdown:o},!0),a=this.buttonGet(t);return 0!==a.length?a.parent().before($("<li>").append(r)):this.$toolbar.append($("<li>").append(r)),r}},buttonRemove:function(t){this.buttonGet(t).remove()},buttonActiveObserver:function(t,e){var i=this.getParent();if(this.buttonInactiveAll(e),!1!==t||"html"===e){i&&"A"===i.tagName?this.$toolbar.find("a.redactor_dropdown_link").text(this.opts.curLang.link_edit):this.$toolbar.find("a.redactor_dropdown_link").text(this.opts.curLang.link_insert),$.each(this.opts.activeButtonsStates,$.proxy((function(t,e){0!=$(i).closest(t,this.$editor.get()[0]).length&&this.buttonActive(e)}),this));var s=$(i).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]);if(s.length){var o=s.css("text-align");""==o&&(o="left"),this.buttonActive("align"+o)}}else-1!=$.inArray(e,this.opts.activeButtons)&&this.buttonActiveToggle(e)},execPasteFrag:function(t){var e=this.getSelection();if(e.getRangeAt&&e.rangeCount){var i=this.getRange();i.deleteContents();var s=this.document.createElement("div");s.innerHTML=t;for(var o,r,a=this.document.createDocumentFragment();o=s.firstChild;)r=a.appendChild(o);a.firstChild;i.insertNode(a),r&&((i=i.cloneRange()).setStartAfter(r),i.collapse(!0)),e.removeAllRanges(),e.addRange(i)}},exec:function(t,e,i){"formatblock"===t&&this.browser("msie")&&(e="<"+e+">"),"inserthtml"===t&&this.browser("msie")?this.isIe11()?this.execPasteFrag(e):(this.focusWithSaveScroll(),this.document.selection.createRange().pasteHTML(e)):this.document.execCommand(t,!1,e),!1!==i&&this.sync(),this.callback("execCommand",t,e)},execCommand:function(t,e,i){if(!this.opts.visual)return this.$source.focus(),!1;if("bold"!==t&&"italic"!==t&&"underline"!==t&&"strikethrough"!==t||this.bufferSet(),"superscript"===t||"subscript"===t){var s=this.getParent();"SUP"!==s.tagName&&"SUB"!==s.tagName||this.inlineRemoveFormatReplace(s)}return"inserthtml"===t?(this.insertHtml(e,i),void this.callback("execCommand",t,e)):!(this.currentOrParentIs("CODE")&&!this.opts.formattingPre)&&("insertunorderedlist"===t||"insertorderedlist"===t?this.execLists(t,e):"unlink"===t?this.execUnlink(t,e):(this.exec(t,e,i),void("inserthorizontalrule"===t&&this.$editor.find("hr").removeAttr("id"))))},execUnlink:function(t,e){this.bufferSet();var i=this.currentOrParentIs("A");if(i)return $(i).replaceWith($(i).text()),this.sync(),void this.callback("execCommand",t,e)},execLists:function(t,e){this.bufferSet();var i=this.getParent(),s=$(i).closest("ol, ul");this.isParentRedactor(s)||0==s.length||(s=!1);var o=!1;if(s&&s.length){o=!0;var r=s[0].tagName;("insertunorderedlist"===t&&"OL"===r||"insertorderedlist"===t&&"UL"===r)&&(o=!1)}if(this.selectionSave(),o){var a=this.getNodes(),n=this.getBlocks(a);void 0!==a[0]&&a.length>1&&3==a[0].nodeType&&n.unshift(this.getBlock());var l="",c="";$.each(n,$.proxy((function(t,e){if("LI"==e.tagName){var i=$(e),s=i.clone();if(s.find("ul","ol").remove(),!1===this.opts.linebreaks)l+=this.outerHtml($("<p>").append(s.contents()));else{var o=s.html().replace(/<br\s?\/?>$/i,"");l+=o+"<br>"}0==t?(i.addClass("redactor-replaced").empty(),c=this.outerHtml(i)):i.remove()}}),this)),html=this.$editor.html().replace(c,"</"+r+">"+l+"<"+r+">"),this.$editor.html(html),this.$editor.find(r+":empty").remove()}else{var d=$(this.getParent()).closest("td");if(this.browser("msie")&&!this.isIe11()&&this.opts.linebreaks){var h=this.selectionWrap("div"),p=$(h).html(),u=$("<ul>");"insertorderedlist"==t&&(u=$("<ol>"));var f=$("<li>");""==$.trim(p)?(f.append(p+'<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"),u.append(f),this.$editor.find("#selection-marker-1").replaceWith(u)):(f.append(p),u.append(f),$(h).replaceWith(u))}else this.document.execCommand(t);i=this.getParent(),s=$(i).closest("ol, ul");if(!1===this.opts.linebreaks)""==$.trim(s.text())&&(s.children("li").find("br").remove(),s.children("li").append('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"));if(0!=d.length&&s.wrapAll("<td>"),s.length){var m=s.parent();this.isParentRedactor(m)&&"LI"!=m[0].tagName&&this.nodeTestBlocks(m[0])&&m.replaceWith(m.contents())}this.browser("mozilla")&&this.$editor.focus()}this.selectionRestore(),this.$editor.find("#selection-marker-1").removeAttr("id"),this.sync(),this.callback("execCommand",t,e)},indentingIndent:function(){this.indentingStart("indent")},indentingOutdent:function(){this.indentingStart("outdent")},indentingStart:function(t){if(this.bufferSet(),"indent"===t){var e=this.getBlock();if(this.selectionSave(),e&&"LI"==e.tagName){var i=this.getParent(),s=$(i).closest("ol, ul")[0].tagName,o=this.getBlocks();$.each(o,(function(t,e){if("LI"==e.tagName){var i=$(e).prev();if(0!=i.length&&"LI"==i[0].tagName){var o=i.children("ul, ol");0==o.length?i.append($("<"+s+">").append(e)):o.append(e)}}}))}else if(!1===e&&!0===this.opts.linebreaks){this.exec("formatBlock","blockquote");var r=this.getBlock();e=$('<div data-tagblock="">').html($(r).html());$(r).replaceWith(e);var a=this.normalize($(e).css("margin-left"))+this.opts.indentValue;$(e).css("margin-left",a+"px")}else{var n=this.getBlocks();$.each(n,$.proxy((function(t,e){var i=!1;if("TD"!==e.tagName){i=-1!==$.inArray(e.tagName,this.opts.alignmentTags)?$(e):$(e).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]);var s=this.normalize(i.css("margin-left"))+this.opts.indentValue;i.css("margin-left",s+"px")}}),this))}this.selectionRestore()}else{if(this.selectionSave(),(e=this.getBlock())&&"LI"==e.tagName){o=this.getBlocks();this.insideOutdent(e,0,o)}else{n=this.getBlocks();$.each(n,$.proxy((function(t,e){var i=!1;i=-1!==$.inArray(e.tagName,this.opts.alignmentTags)?$(e):$(e).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]);var s=this.normalize(i.css("margin-left"))-this.opts.indentValue;s<=0?!0===this.opts.linebreaks&&void 0!==i.data("tagblock")?i.replaceWith(i.html()+"<br>"):(i.css("margin-left",""),this.removeEmptyAttr(i,"style")):i.css("margin-left",s+"px")}),this))}this.selectionRestore()}this.sync()},insideOutdent:function(t,e,i){if(t&&"LI"==t.tagName){var s=$(t).parent().parent();0!=s.length&&"LI"==s[0].tagName?s.after(t):void 0!==i[e]?(t=i[e],e++,this.insideOutdent(t,e,i)):this.execCommand("insertunorderedlist")}},alignmentLeft:function(){this.alignmentSet("","JustifyLeft")},alignmentRight:function(){this.alignmentSet("right","JustifyRight")},alignmentCenter:function(){this.alignmentSet("center","JustifyCenter")},alignmentJustify:function(){this.alignmentSet("justify","JustifyFull")},alignmentSet:function(t,e){if(this.bufferSet(),this.oldIE())return this.document.execCommand(e,!1,!1),!0;if(this.selectionSave(),!(s=this.getBlock())&&this.opts.linebreaks){this.exec("formatblock","div");var i=this.getBlock(),s=$('<div data-tagblock="">').html($(i).html());$(i).replaceWith(s),$(s).css("text-align",t),this.removeEmptyAttr(s,"style"),""==t&&void 0!==$(s).data("tagblock")&&$(s).replaceWith($(s).html())}else{var o=this.getBlocks();$.each(o,$.proxy((function(e,i){var s=!1;(s=-1!==$.inArray(i.tagName,this.opts.alignmentTags)?$(i):$(i).closest(this.opts.alignmentTags.toString().toLowerCase(),this.$editor[0]))&&(s.css("text-align",t),this.removeEmptyAttr(s,"style"))}),this))}this.selectionRestore(),this.sync()},cleanEmpty:function(t){var e=this.placeholderStart(t);return!1!==e?e:(!1===this.opts.linebreaks&&(""===t?t=this.opts.emptyHtml:-1!==t.search(/^<hr\s?\/?>$/gi)&&(t="<hr>"+this.opts.emptyHtml)),t)},cleanConverters:function(t){return this.opts.convertDivs&&!this.opts.gallery&&(t=t.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"<p$1>$2</p>")),this.opts.paragraphy&&(t=this.cleanParagraphy(t)),t},cleanConvertProtected:function(t){return this.opts.templateVars&&(t=(t=t.replace(/\{\{(.*?)\}\}/gi,"\x3c!-- template double $1 --\x3e")).replace(/\{(.*?)\}/gi,"\x3c!-- template $1 --\x3e")),t=(t=(t=t.replace(/<script(.*?)>([\w\W]*?)<\/script>/gi,'<title type="text/javascript" style="display: none;" class="redactor-script-tag"$1>$2</title>')).replace(/<style(.*?)>([\w\W]*?)<\/style>/gi,'<section$1 style="display: none;" rel="redactor-style-tag">$2</section>')).replace(/<form(.*?)>([\w\W]*?)<\/form>/gi,'<section$1 rel="redactor-form-tag">$2</section>'),t=this.opts.phpTags?t.replace(/<\?php([\w\W]*?)\?>/gi,'<section style="display: none;" rel="redactor-php-tag">$1</section>'):t.replace(/<\?php([\w\W]*?)\?>/gi,"")},cleanReConvertProtected:function(t){return this.opts.templateVars&&(t=(t=t.replace(/<!-- template double (.*?) -->/gi,"{{$1}}")).replace(/<!-- template (.*?) -->/gi,"{$1}")),t=(t=(t=t.replace(/<title type="text\/javascript" style="display: none;" class="redactor-script-tag"(.*?)>([\w\W]*?)<\/title>/gi,'<script$1 type="text/javascript">$2<\/script>')).replace(/<section(.*?) style="display: none;" rel="redactor-style-tag">([\w\W]*?)<\/section>/gi,"<style$1>$2</style>")).replace(/<section(.*?)rel="redactor-form-tag"(.*?)>([\w\W]*?)<\/section>/gi,"<form$1$2>$3</form>"),this.opts.phpTags&&(t=t.replace(/<section style="display: none;" rel="redactor-php-tag">([\w\W]*?)<\/section>/gi,"<?php\r\n$1\r\n?>")),t},cleanRemoveSpaces:function(t,e){if(!1!==e){e=[];var i=t.match(/<(code|style|script|title)(.*?)>([\w\W]*?)<\/(code|style|script|title)>/gi);if(null===i&&(i=[]),this.opts.phpTags){var s=t.match(/<\?php([\w\W]*?)\?>/gi);s&&(i=$.merge(i,s))}i&&$.each(i,(function(i,s){t=t.replace(s,"buffer_"+i),e.push(s)}))}return t=(t=(t=(t=(t=(t=t.replace(/\n/g," ")).replace(/[\t]*/g,"")).replace(/\n\s*\n/g,"\n")).replace(/^[\s\n]*/g," ")).replace(/[\s\n]*$/g," ")).replace(/>\s{2,}</g,"> <"),t=(t=this.cleanReplacer(t,e)).replace(/\n\n/g,"\n")},cleanReplacer:function(t,e){return!1===e||$.each(e,(function(e,i){t=t.replace("buffer_"+e,i)})),t},cleanRemoveEmptyTags:function(t){t=t.replace(/[\u200B-\u200D\uFEFF]/g,"");for(var e=["<b>\\s*</b>","<b>&nbsp;</b>","<em>\\s*</em>"],i=["<code></code>","<blockquote>\\s*</blockquote>","<dd></dd>","<dt></dt>","<ul></ul>","<ol></ol>","<li></li>","<table></table>","<tr></tr>","<span>\\s*<span>","<span>&nbsp;<span>","<p>\\s*</p>","<p></p>","<p>&nbsp;</p>","<p>\\s*<br>\\s*</p>","<div>\\s*</div>","<div>\\s*<br>\\s*</div>"],s=(i=this.opts.removeEmptyTags?i.concat(e):e).length,o=0;o<s;++o)t=t.replace(new RegExp(i[o],"gi"),"");return t},cleanParagraphy:function(t){if(t=$.trim(t),!0===this.opts.linebreaks)return t;if(""===t||"<p></p>"===t)return this.opts.emptyHtml;if(t+="\n",!1===this.opts.removeEmptyTags)return t;var e=[],i=t.match(/<(table|div|code|object)(.*?)>([\w\W]*?)<\/(table|div|code|object)>/gi);i||(i=[]);var s=t.match(/<!--([\w\W]*?)-->/gi);if(s&&(i=$.merge(i,s)),this.opts.phpTags){var o=t.match(/<section(.*?)rel="redactor-php-tag">([\w\W]*?)<\/section>/gi);o&&(i=$.merge(i,o))}function r(e,i,s){return t.replace(new RegExp(e,i),s)}i&&$.each(i,(function(i,s){e[i]=s,t=t.replace(s,"{replace"+i+"}\n")})),t=(t=t.replace(/<br \/>\s*<br \/>/gi,"\n\n")).replace(/<br><br>/gi,"\n\n");var a="(comment|html|body|head|title|meta|style|script|link|iframe|table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|code|select|option|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)";t=r("(<"+a+"[^>]*>)","gi","\n$1"),t=r("(</"+a+">)","gi","$1\n\n"),t=r("\r\n","g","\n"),t=r("\r","g","\n");var n=(t=r("/\n\n+/","g","\n\n")).split(new RegExp("\ns*\n","g"),-1);for(var l in t="",n)n.hasOwnProperty(l)&&(-1==n[l].search("{replace")?(n[l]=n[l].replace(/<p>\n\t?<\/p>/gi,""),n[l]=n[l].replace(/<p><\/p>/gi,""),""!=n[l]&&(t+="<p>"+n[l].replace(/^\n+|\n+$/g,"")+"</p>")):t+=n[l]);return t=r("<p><p>","gi","<p>"),t=r("</p></p>","gi","</p>"),t=r("<p>s?</p>","gi",""),t=r("<p>([^<]+)</(div|address|form)>","gi","<p>$1</p></$2>"),t=r("<p>(</?"+a+"[^>]*>)</p>","gi","$1"),t=r("<p>(<li.+?)</p>","gi","$1"),t=r("<p>s?(</?"+a+"[^>]*>)","gi","$1"),t=r("(</?"+a+"[^>]*>)s?</p>","gi","$1"),t=r("(</?"+a+"[^>]*>)s?<br />","gi","$1"),t=r("<br />(s*</?(?:p|li|div|dl|dd|dt|th|code|td|ul|ol)[^>]*>)","gi","$1"),t=r("\n</p>","gi","</p>"),t=r("<li><p>","gi","<li>"),t=r("</p></li>","gi","</li>"),t=r("</li><p>","gi","</li>"),t=r("<p>\t?\n?<p>","gi","<p>"),t=r("</dt><p>","gi","</dt>"),t=r("</dd><p>","gi","</dd>"),t=r("<br></p></blockquote>","gi","</blockquote>"),t=r("<p>\t*</p>","gi",""),$.each(e,(function(e,i){t=t.replace("{replace"+e+"}",i)})),$.trim(t)},cleanConvertInlineTags:function(t,e){var i="strong";"b"===this.opts.boldTag&&(i="b");var s="em";return"i"===this.opts.italicTag&&(s="i"),t=(t=t.replace(/<span style="font-style: italic;">([\w\W]*?)<\/span>/gi,"<"+s+">$1</"+s+">")).replace(/<span style="font-weight: bold;">([\w\W]*?)<\/span>/gi,"<"+i+">$1</"+i+">"),t="strong"===this.opts.boldTag?t.replace(/<b>([\w\W]*?)<\/b>/gi,"<strong>$1</strong>"):t.replace(/<strong>([\w\W]*?)<\/strong>/gi,"<b>$1</b>"),t=(t="em"===this.opts.italicTag?t.replace(/<i>([\w\W]*?)<\/i>/gi,"<em>$1</em>"):t.replace(/<em>([\w\W]*?)<\/em>/gi,"<i>$1</i>")).replace(/<span style="text-decoration: underline;">([\w\W]*?)<\/span>/gi,"<u>$1</u>"),t=!0!==e?t.replace(/<strike>([\w\W]*?)<\/strike>/gi,"<del>$1</del>"):t.replace(/<del>([\w\W]*?)<\/del>/gi,"<strike>$1</strike>")},cleanStripTags:function(t){if(""==t||void 0===t)return t;var e=!1;!1!==this.opts.allowedTags&&(e=!0);var i=!0===e?this.opts.allowedTags:this.opts.deniedTags;return t=t.replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,(function(t,s){return!0===e?$.inArray(s.toLowerCase(),i)>"-1"?t:"":$.inArray(s.toLowerCase(),i)>"-1"?"":t})),t=this.cleanConvertInlineTags(t)},cleanSavePreCode:function(t,e){var i=t.match(/<(pre|code)(.*?)>([\w\W]*?)<\/(pre|code)>/gi);return null!==i&&$.each(i,$.proxy((function(i,s){var o=s.match(/<(pre|code)(.*?)>([\w\W]*?)<\/(pre|code)>/i);o[3]=o[3].replace(/&nbsp;/g," "),!1!==e&&(o[3]=this.cleanEncodeEntities(o[3])),o[3]=o[3].replace(/\$/g,"&#36;"),t=t.replace(s,"<"+o[1]+o[2]+">"+o[3]+"</"+o[1]+">")}),this)),t},cleanEncodeEntities:function(t){return(t=String(t).replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"')).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},cleanUnverified:function(){var t=this.$editor.find("li, img, a, b, strong, sub, sup, i, em, u, small, strike, del, span, cite");t.filter('[style*="background-color: transparent;"][style*="line-height"]').css("background-color","").css("line-height",""),t.filter('[style*="background-color: transparent;"]').css("background-color",""),t.css("line-height",""),$.each(t,$.proxy((function(t,e){this.removeEmptyAttr(e,"style")}),this));var e=this.$editor.find("b, strong, i, em, u, strike, del");e.css("font-size",""),$.each(e,$.proxy((function(t,e){this.removeEmptyAttr(e,"style")}),this)),this.$editor.find('div[style="text-align: -webkit-auto;"]').contents().unwrap(),this.$editor.find("ul, ol, li").removeAttr("style")},cleanHtml:function(t){var e=0,i=t.length,s=0,o=null,r=null,a="",n="",l="";for(this.cleanlevel=0;e<i;e++){if(s=e,-1==t.substr(e).indexOf("<"))return n+=t.substr(e),this.cleanFinish(n);for(;s<i&&"<"!=t.charAt(s);)s++;for(e!=s&&((l=t.substr(e,s-e)).match(/^\s{2,}$/g)||("\n"==n.charAt(n.length-1)?n+=this.cleanGetTabs():"\n"==l.charAt(0)&&(n+="\n"+this.cleanGetTabs(),l=l.replace(/^\s+/,"")),n+=l),l.match(/\n/)&&(n+="\n"+this.cleanGetTabs())),o=s;s<i&&">"!=t.charAt(s);)s++;var c;if(e=s,"!--"==(a=t.substr(o,s-o)).substr(1,3)){if(!a.match(/--$/)){for(;"--\x3e"!=t.substr(s,3);)s++;s+=2,a=t.substr(o,s-o),e=s}"\n"!=n.charAt(n.length-1)&&(n+="\n"),n+=this.cleanGetTabs(),n+=a+">\n"}else"!"==a[1]?n=this.placeTag(a+">",n):"?"==a[1]?n+=a+">\n":(c=a.match(/^<(script|style|pre|code)/i))?(c[1]=c[1].toLowerCase(),a=this.cleanTag(a),n=this.placeTag(a,n),(r=String(t.substr(e+1)).toLowerCase().indexOf("</"+c[1]))&&(l=t.substr(e+1,r),e+=r,n+=l)):(a=this.cleanTag(a),n=this.placeTag(a,n))}return this.cleanFinish(n)},cleanGetTabs:function(){for(var t="",e=0;e<this.cleanlevel;e++)t+="\t";return t},cleanFinish:function(t){return t=(t=(t=(t=t.replace(/\n\s*\n/g,"\n")).replace(/^[\s\n]*/,"")).replace(/[\s\n]*$/,"")).replace(/<script(.*?)>\n<\/script>/gi,"<script$1><\/script>"),this.cleanlevel=0,t},cleanTag:function(t){var e,i="",s="";for((t=(t=(t=t.replace(/\n/g," ")).replace(/\s{2,}/g," ")).replace(/^\s+|\s+$/g," ")).match(/\/$/)&&(s="/",t=t.replace(/\/+$/,""));e=/\s*([^= ]+)(?:=((['"']).*?\3|[^ ]+))?/.exec(t);)e[2]?i+=e[1].toLowerCase()+"="+e[2]:e[1]&&(i+=e[1].toLowerCase()),i+=" ",t=t.substr(e[0].length);return i.replace(/\s*$/,"")+s+">"},placeTag:function(t,e){var i=t.match(this.cleannewLevel);return(t.match(this.cleanlineBefore)||i)&&(e=e.replace(/\s*$/,""),e+="\n"),i&&"/"==t.charAt(1)&&this.cleanlevel--,"\n"==e.charAt(e.length-1)&&(e+=this.cleanGetTabs()),i&&"/"!=t.charAt(1)&&this.cleanlevel++,e+=t,(t.match(this.cleanlineAfter)||t.match(this.cleannewLevel))&&(e=e.replace(/ *$/,""),e+="\n"),e},formatEmpty:function(t){var e=$.trim(this.$editor.html());if(this.opts.linebreaks)""==e&&(t.preventDefault(),this.$editor.html(""),this.focus());else{var i=(e=e.replace(/<br\s?\/?>/i,"")).replace(/<p>\s?<\/p>/gi,"");if(""===e||""===i){t.preventDefault();var s=$(this.opts.emptyHtml).get(0);this.$editor.html(s),this.focus()}}this.sync()},formatBlocks:function(t){this.browser("mozilla")&&this.isFocused()&&this.$editor.focus(),this.bufferSet();var e=this.getBlocks();this.selectionSave(),$.each(e,$.proxy((function(e,i){if("LI"!==i.tagName){var s=$(i).parent();if("p"===t){if("P"===i.tagName&&0!=s.length&&"BLOCKQUOTE"===s[0].tagName||"BLOCKQUOTE"===i.tagName)return void this.formatQuote();if(this.opts.linebreaks){if(!i||0!=i.tagName.search(/H[1-6]/))return;$(i).replaceWith(i.innerHTML+"<br>")}else this.formatBlock(t,i)}else this.formatBlock(t,i)}}),this)),this.selectionRestore(),this.sync()},formatBlock:function(t,e){if(!1===e&&(e=this.getBlock()),!1===e&&!0===this.opts.linebreaks)return this.execCommand("formatblock",t),!0;var i="";if("code"!==t?i=$(e).contents():(i=$(e).html(),""===$.trim(i)&&(i='<span id="selection-marker-1"></span>')),"CODE"===e.tagName&&(t="p"),!0===this.opts.linebreaks&&"p"===t)$(e).replaceWith($("<div>").append(i).html()+"<br>");else{var s=this.getParent(),o=$("<"+t+">").append(i);$(e).replaceWith(o),s&&"TD"==s.tagName&&$(o).wrapAll("<td>")}},formatChangeTag:function(t,e,i){!1!==i&&this.selectionSave();var s=$("<"+e+"/>");return $(t).replaceWith((function(){return s.append($(this).contents())})),!1!==i&&this.selectionRestore(),s},formatQuote:function(){if(this.browser("mozilla")&&this.isFocused()&&this.$editor.focus(),this.bufferSet(),!1===this.opts.linebreaks){this.selectionSave();var t=this.getBlocks(),e=!1,i=t.length;if(t){var s="",o="",r=!1,a=!0;if($.each(t,(function(t,e){"P"!==e.tagName&&(a=!1)})),$.each(t,$.proxy((function(n,l){if("BLOCKQUOTE"===l.tagName)this.formatBlock("p",l,!1);else if("P"===l.tagName)if("BLOCKQUOTE"==(e=$(l).parent())[0].tagName){var c=$(e).children("p").length;1==c?$(e).replaceWith(l):c==i?(r="blockquote",s+=this.outerHtml(l)):(r="html",s+=this.outerHtml(l),0==n?($(l).addClass("redactor-replaced").empty(),o=this.outerHtml(l)):$(l).remove())}else!1===a||1==t.length?this.formatBlock("blockquote",l,!1):(r="paragraphs",s+=this.outerHtml(l));else"LI"!==l.tagName&&this.formatBlock("blockquote",l,!1)}),this)),r)if("paragraphs"==r)$(t[0]).replaceWith("<blockquote>"+s+"</blockquote>"),$(t).remove();else if("blockquote"==r)$(e).replaceWith(s);else if("html"==r){var n=this.$editor.html().replace(o,"</blockquote>"+s+"<blockquote>");this.$editor.html(n),this.$editor.find("blockquote").each((function(){""==$.trim($(this).html())&&$(this).remove()}))}}this.selectionRestore()}else{var l=this.getBlock();if("BLOCKQUOTE"===l.tagName){this.selectionSave();n=$.trim($(l).html());var c=$.trim(this.getSelectionHtml());if((n=n.replace(/<span(.*?)id="selection-marker(.*?)<\/span>/gi,""))==c)$(l).replaceWith($(l).html()+"<br>");else{this.inlineFormat("tmp");var d=this.$editor.find("tmp");d.empty();var h=this.$editor.html().replace("<tmp></tmp>",'</blockquote><span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"+c+"<blockquote>");this.$editor.html(h),d.remove(),this.$editor.find("blockquote").each((function(){""==$.trim($(this).html())&&$(this).remove()}))}this.selectionRestore(),this.$editor.find("span#selection-marker-1").attr("id",!1)}else{var p=this.selectionWrap("blockquote");n=$(p).html();$.each(["ul","ol","table","tr","tbody","thead","tfoot","dl"],(function(t,e){n=(n=n.replace(new RegExp("<"+e+"(.*?)>","gi"),"")).replace(new RegExp("</"+e+">","gi"),"")}));var u=this.opts.blockLevelElements;$.each(u,(function(t,e){n=(n=n.replace(new RegExp("<"+e+"(.*?)>","gi"),"")).replace(new RegExp("</"+e+">","gi"),"<br>")})),$(p).html(n),this.selectionElement(p);var f=$(p).next();0!=f.length&&"BR"===f[0].tagName&&f.remove()}}this.sync()},blockRemoveAttr:function(t){var e=this.getBlocks();$(e).removeAttr(t),this.sync()},blockSetAttr:function(t,e){var i=this.getBlocks();$(i).attr(t,e),this.sync()},blockRemoveStyle:function(t){var e=this.getBlocks();$(e).css(t,""),this.removeEmptyAttr(e,"style"),this.sync()},blockSetStyle:function(t,e){var i=this.getBlocks();$(i).css(t,e),this.sync()},blockRemoveClass:function(t){var e=this.getBlocks();$(e).removeClass(t),this.removeEmptyAttr(e,"class"),this.sync()},blockSetClass:function(t){var e=this.getBlocks();$(e).addClass(t),this.sync()},inlineRemoveClass:function(t){this.selectionSave(),this.inlineEachNodes((function(e){$(e).removeClass(t),this.removeEmptyAttr(e,"class")})),this.selectionRestore(),this.sync()},inlineSetClass:function(t){var e=this.getCurrent();$(e).hasClass(t)||this.inlineMethods("addClass",t)},inlineRemoveStyle:function(t){this.selectionSave(),this.inlineEachNodes((function(e){$(e).css(t,""),this.removeEmptyAttr(e,"style")})),this.selectionRestore(),this.sync()},inlineSetStyle:function(t,e){this.inlineMethods("css",t,e)},inlineRemoveAttr:function(t){this.selectionSave();var e=this.getRange(),i=this.getElement(),s=this.getNodes();(e.collapsed||e.startContainer===e.endContainer&&i)&&(s=$(i)),$(s).removeAttr(t),this.inlineUnwrapSpan(),this.selectionRestore(),this.sync()},inlineSetAttr:function(t,e){this.inlineMethods("attr",t,e)},inlineMethods:function(t,e,i){this.bufferSet(),this.selectionSave();var s=this.getRange(),o=this.getElement();if(!s.collapsed&&s.startContainer!==s.endContainer||!o||this.nodeTestBlocks(o)){var r,a=i;switch(e){case"font-size":r="fontSize",a=4;break;case"font-family":r="fontName";break;case"color":r="foreColor";break;case"background-color":r="backColor"}this.document.execCommand(r,!1,a);var n=this.$editor.find("font");$.each(n,$.proxy((function(s,o){this.inlineSetMethods(t,o,e,i)}),this))}else $(o)[t](e,i);this.selectionRestore(),this.sync()},inlineSetMethods:function(t,e,i,s){var o,r=$(e).parent();return this.getSelectionText()==$(r).text()&&r&&"INLINE"===r[0].tagName&&0!=r[0].attributes.length?(o=r,$(e).replaceWith($(e).html())):(o=$("<inline>").append($(e).contents()),$(e).replaceWith(o)),$(o)[t](i,s),o},inlineEachNodes:function(t){var e,i=this.getRange(),s=this.getElement(),o=this.getNodes();(i.collapsed||i.startContainer===i.endContainer&&s)&&(o=$(s),e=!0),$.each(o,$.proxy((function(i,s){if(!e&&"INLINE"!==s.tagName){if(!(this.getSelectionText()==$(s).parent().text())||"INLINE"!==s.parentNode.tagName||$(s.parentNode).hasClass("redactor_editor"))return;s=s.parentNode}t.call(this,s)}),this))},inlineUnwrapSpan:function(){var t=this.$editor.find("inline");$.each(t,$.proxy((function(t,e){var i=$(e);void 0===i.attr("class")&&void 0===i.attr("style")&&i.contents().unwrap()}),this))},inlineFormat:function(t){this.selectionSave(),this.document.execCommand("fontSize",!1,4);var e=this.$editor.find("font");$.each(e,(function(e,i){var s=$("<"+t+"/>").append($(i).contents());$(i).replaceWith(s),s})),this.selectionRestore(),this.sync()},inlineRemoveFormat:function(t){this.selectionSave();var e=t.toUpperCase(),i=this.getNodes(),s=$(this.getParent()).parent();$.each(i,(function(t,i){i.tagName===e&&this.inlineRemoveFormatReplace(i)})),s&&s[0].tagName===e&&this.inlineRemoveFormatReplace(s),this.selectionRestore(),this.sync()},inlineRemoveFormatReplace:function(t){$(t).replaceWith($(t).contents())},insertHtml:function(t,e){var i=this.getCurrent(),s=i.parentNode;this.focusWithSaveScroll(),this.bufferSet();var o=$("<div>").append($.parseHTML(t));t=o.html(),t=this.cleanRemoveEmptyTags(t),o=$("<div>").append($.parseHTML(t));var r=this.getBlock();if(1==o.contents().length){var a=o.contents()[0].tagName;("P"!=a&&a==r.tagName||"CODE"==a)&&(o=$("<div>").append(t))}this.opts.linebreaks&&(t=t.replace(/<p(.*?)>([\w\W]*?)<\/p>/gi,"$2<br>")),!this.opts.linebreaks&&1==o.contents().length&&3==o.contents()[0].nodeType&&(this.getRangeSelectedNodes().length>2||!i||"BODY"==i.tagName&&!s||"HTML"==s.tagName)&&(t="<p>"+t+"</p>"),t=this.setSpansVerifiedHtml(t),o.contents().length>1&&r||o.contents().is("p, :header, ul, ol, li, div, table, td, blockquote, code, address, section, header, footer, aside, article")?this.browser("msie")?this.isIe11()?this.execPasteFrag(t):this.document.selection.createRange().pasteHTML(t):this.document.execCommand("inserthtml",!1,t):this.insertHtmlAdvanced(t,!1),this.selectall&&this.window.setTimeout($.proxy((function(){this.opts.linebreaks?this.focusEnd():this.selectionEnd(this.$editor.contents().last())}),this),1),this.observeStart(),this.setNonEditable(),!1!==e&&this.sync()},insertHtmlAdvanced:function(t,e){t=this.setSpansVerifiedHtml(t);var i=this.getSelection();if(i.getRangeAt&&i.rangeCount){var s=i.getRangeAt(0);s.deleteContents();var o=document.createElement("div");o.innerHTML=t;for(var r,a,n=document.createDocumentFragment();r=o.firstChild;)a=n.appendChild(r);s.insertNode(n),a&&((s=s.cloneRange()).setStartAfter(a),s.collapse(!0),i.removeAllRanges(),i.addRange(s))}!1!==e&&this.sync()},insertBeforeCursor:function(t){t=this.setSpansVerifiedHtml(t);var e=$(t),i=document.createElement("span");i.innerHTML="​";var s=this.getRange();s.insertNode(i),s.insertNode(e[0]),s.collapse(!1);var o=this.getSelection();o.removeAllRanges(),o.addRange(s),this.sync()},insertText:function(t){var e=$($.parseHTML(t));e.length&&(t=e.text()),this.focusWithSaveScroll(),this.browser("msie")?this.isIe11()?this.execPasteFrag(t):this.document.selection.createRange().pasteHTML(t):this.document.execCommand("inserthtml",!1,t),this.sync()},insertNode:function(t){if("SPAN"==(t=t[0]||t).tagName){var e="inline",i=t.outerHTML,s=new RegExp("<"+t.tagName,"i"),o=i.replace(s,"<"+e);s=new RegExp("</"+t.tagName,"i"),o=o.replace(s,"</"+e),t=$(o)[0]}var r=this.getSelection();return r.getRangeAt&&r.rangeCount&&(range=r.getRangeAt(0),range.deleteContents(),range.insertNode(t),range.setEndAfter(t),range.setStartAfter(t),r.removeAllRanges(),r.addRange(range)),t},insertNodeToCaretPositionFromPoint:function(t,e){var i,s=t.clientX,o=t.clientY;if(this.document.caretPositionFromPoint){var r=this.document.caretPositionFromPoint(s,o);(i=this.getRange()).setStart(r.offsetNode,r.offset),i.collapse(!0),i.insertNode(e)}else if(this.document.caretRangeFromPoint)(i=this.document.caretRangeFromPoint(s,o)).insertNode(e);else if(void 0!==document.body.createTextRange){(i=this.document.body.createTextRange()).moveToPoint(s,o);var a=i.duplicate();a.moveToPoint(s,o),i.setEndPoint("EndToEnd",a),i.select()}},insertAfterLastElement:function(t,e){if(void 0!==e&&(t=e),this.isEndOfElement()){if(this.opts.linebreaks){var i=$("<div>").append($.trim(this.$editor.html())).contents(),s=i.last()[0];if("SPAN"==s.tagName&&""==s.innerHTML&&(s=i.prev()[0]),this.outerHtml(s)!=this.outerHtml(t))return!1}else if(this.$editor.contents().last()[0]!==t)return!1;this.insertingAfterLastElement(t)}},insertingAfterLastElement:function(t){if(this.bufferSet(),!1===this.opts.linebreaks){var e=$(this.opts.emptyHtml);$(t).after(e),this.selectionStart(e)}else{e=$('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>",this.document)[0];$(t).after(e),$(e).after(this.opts.invisibleSpace),this.selectionRestore(),this.$editor.find("span#selection-marker-1").removeAttr("id")}},insertLineBreak:function(t){this.selectionSave();var e="<br>";if(1==t&&(e="<br><br>"),this.browser("mozilla")){var i=$("<span>").html(this.opts.invisibleSpace);this.$editor.find("#selection-marker-1").before(e).before(i).before(this.opts.invisibleSpace),this.setCaretAfter(i[0]),i.remove(),this.selectionRemoveMarkers()}else{var s=this.getParent();if(s&&"A"===s.tagName)if(this.getCaretOffset(s)==$.trim($(s).text()).replace(/\n\r\n/g,"").length){this.selectionRemoveMarkers();var o=$('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>",this.document)[0];return $(s).after(o),$(o).before(e+(this.browser("webkit")?this.opts.invisibleSpace:"")),this.selectionRestore(),!0}this.$editor.find("#selection-marker-1").before(e+(this.browser("webkit")?this.opts.invisibleSpace:"")),this.selectionRestore()}},insertDoubleLineBreak:function(){this.insertLineBreak(!0)},replaceLineBreak:function(t){var e=$("<br>"+this.opts.invisibleSpace);$(t).replaceWith(e),this.selectionStart(e)},pasteClean:function(t){(t=this.callback("pasteBefore",!1,t),this.browser("msie"))&&(0==(e=$.trim(t)).search(/^<a(.*?)>(.*?)<\/a>$/i)&&(t=t.replace(/^<a(.*?)>(.*?)<\/a>$/i,"$2")));if(t=t.replace(/on([a-z]+)=|javascript\:/gi,""),this.opts.pastePlainText){var e=this.document.createElement("div");return t=t.replace(/<br>|<\/H[1-6]>|<\/p>|<\/div>/gi,"\n"),e.innerHTML=t,t=e.textContent||e.innerText,t=(t=$.trim(t)).replace("\n","<br>"),t=this.cleanParagraphy(t),this.pasteInsert(t),!1}var i=!1;if(this.currentOrParentIs("TD")){i=!0;var s=this.opts.blockLevelElements;s.push("tr"),s.push("table"),$.each(s,(function(e,i){t=(t=t.replace(new RegExp("<"+i+"(.*?)>","gi"),"")).replace(new RegExp("</"+i+">","gi"),"<br>")}))}if(this.currentOrParentIs("CODE"))return t=this.pastePre(t),this.pasteInsert(t),!0;if(t=(t=(t=(t=(t=(t=(t=t.replace(/<img(.*?)v:shapes=(.*?)>/gi,"")).replace(/<p(.*?)class="MsoListParagraphCxSpFirst"([\w\W]*?)<\/p>/gi,"<ul><li$2</li>")).replace(/<p(.*?)class="MsoListParagraphCxSpMiddle"([\w\W]*?)<\/p>/gi,"<li$2</li>")).replace(/<p(.*?)class="MsoListParagraphCxSpLast"([\w\W]*?)<\/p>/gi,"<li$2</li></ul>")).replace(/<p(.*?)class="MsoListParagraph"([\w\W]*?)<\/p>/gi,"<ul><li$2</li></ul>")).replace(/·/g,"")).replace(/<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi,""),!0===this.opts.cleanSpaces&&(t=(t=t.replace(/(&nbsp;){2,}/gi,"&nbsp;")).replace(/&nbsp;/gi," ")),t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<b\sid="internal-source-marker(.*?)">([\w\W]*?)<\/b>/gi,"$2")).replace(/<b(.*?)id="docs-internal-guid(.*?)">([\w\W]*?)<\/b>/gi,"$3")).replace(/<span[^>]*(font-style: italic; font-weight: bold|font-weight: bold; font-style: italic)[^>]*>/gi,'<span style="font-weight: bold;"><span style="font-style: italic;">')).replace(/<span[^>]*font-style: italic[^>]*>/gi,'<span style="font-style: italic;">')).replace(/<span[^>]*font-weight: bold[^>]*>/gi,'<span style="font-weight: bold;">')).replace(/<span[^>]*text-decoration: underline[^>]*>/gi,'<span style="text-decoration: underline;">')).replace(/<td>\u200b*<\/td>/gi,"[td]")).replace(/<td>&nbsp;<\/td>/gi,"[td]")).replace(/<td><br><\/td>/gi,"[td]")).replace(/<td(.*?)colspan="(.*?)"(.*?)>([\w\W]*?)<\/td>/gi,'[td colspan="$2"]$4[/td]')).replace(/<td(.*?)rowspan="(.*?)"(.*?)>([\w\W]*?)<\/td>/gi,'[td rowspan="$2"]$4[/td]')).replace(/<a(.*?)href="(.*?)"(.*?)>([\w\W]*?)<\/a>/gi,'[a href="$2"]$4[/a]')).replace(/<iframe(.*?)>([\w\W]*?)<\/iframe>/gi,"[iframe$1]$2[/iframe]")).replace(/<video(.*?)>([\w\W]*?)<\/video>/gi,"[video$1]$2[/video]")).replace(/<audio(.*?)>([\w\W]*?)<\/audio>/gi,"[audio$1]$2[/audio]")).replace(/<embed(.*?)>([\w\W]*?)<\/embed>/gi,"[embed$1]$2[/embed]")).replace(/<object(.*?)>([\w\W]*?)<\/object>/gi,"[object$1]$2[/object]")).replace(/<param(.*?)>/gi,"[param$1]")).replace(/<img(.*?)>/gi,"[img$1]")).replace(/ class="(.*?)"/gi,"")).replace(/<(\w+)([\w\W]*?)>/gi,"<$1>"),this.opts.linebreaks?(t=(t=t.replace(/<strong><\/strong>/gi,"")).replace(/<u><\/u>/gi,""),this.opts.cleanFontTag&&(t=t.replace(/<font(.*?)>([\w\W]*?)<\/font>/gi,"$2")),t=t.replace(/<[^\/>][^>]*>(\s*|\t*|\n*|&nbsp;|<br>)<\/[^>]+>/gi,"<br>")):t=t.replace(/<[^\/>][^>]*>(\s*|\t*|\n*|&nbsp;|<br>)<\/[^>]+>/gi,""),t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<div>\s*?\t*?\n*?(<ul>|<ol>|<p>)/gi,"$1")).replace(/\[td colspan="(.*?)"\]([\w\W]*?)\[\/td\]/gi,'<td colspan="$1">$2</td>')).replace(/\[td rowspan="(.*?)"\]([\w\W]*?)\[\/td\]/gi,'<td rowspan="$1">$2</td>')).replace(/\[td\]/gi,"<td>&nbsp;</td>")).replace(/\[a href="(.*?)"\]([\w\W]*?)\[\/a\]/gi,'<a href="$1">$2</a>')).replace(/\[iframe(.*?)\]([\w\W]*?)\[\/iframe\]/gi,"<iframe$1>$2</iframe>")).replace(/\[video(.*?)\]([\w\W]*?)\[\/video\]/gi,"<video$1>$2</video>")).replace(/\[audio(.*?)\]([\w\W]*?)\[\/audio\]/gi,"<audio$1>$2</audio>")).replace(/\[embed(.*?)\]([\w\W]*?)\[\/embed\]/gi,"<embed$1>$2</embed>")).replace(/\[object(.*?)\]([\w\W]*?)\[\/object\]/gi,"<object$1>$2</object>")).replace(/\[param(.*?)\]/gi,"<param$1>")).replace(/\[img(.*?)\]/gi,"<img$1>"),t=this.opts.convertDivs?(t=(t=(t=t.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"<p>$2</p>")).replace(/<\/div><p>/gi,"<p>")).replace(/<\/p><\/div>/gi,"</p>")).replace(/<p><\/p>/gi,"<br />"):t.replace(/<div><\/div>/gi,"<br />"),t=this.cleanStripTags(t),this.currentOrParentIs("LI")?t=t.replace(/<p>([\w\W]*?)<\/p>/gi,"$1<br>"):!1===i&&(t=this.cleanParagraphy(t)),t=(t=(t=(t=(t=(t=(t=(t=t.replace(/<span(.*?)>([\w\W]*?)<\/span>/gi,"$2")).replace(/<img>/gi,"")).replace(/<[^\/>][^>][^img|param|source|td][^<]*>(\s*|\t*|\n*| |<br>)<\/[^>]+>/gi,"")).replace(/\n{3,}/gi,"\n")).replace(/<p><p>/gi,"<p>")).replace(/<\/p><\/p>/gi,"</p>")).replace(/<li>(\s*|\t*|\n*)<p>/gi,"<li>")).replace(/<\/p>(\s*|\t*|\n*)<\/li>/gi,"</li>"),!0===this.opts.linebreaks&&(t=t.replace(/<p(.*?)>([\w\W]*?)<\/p>/gi,"$2<br>")),t=(t=(t=t.replace(/<[^\/>][^>][^img|param|source|td][^<]*>(\s*|\t*|\n*| |<br>)<\/[^>]+>/gi,"")).replace(/<img src="webkit-fake-url\:\/\/(.*?)"(.*?)>/gi,"")).replace(/<td(.*?)>(\s*|\t*|\n*)<p>([\w\W]*?)<\/p>(\s*|\t*|\n*)<\/td>/gi,"<td$1>$3</td>"),this.opts.convertDivs&&(t=(t=t.replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"$2")).replace(/<div(.*?)>([\w\W]*?)<\/div>/gi,"$2")),this.pasteClipboardMozilla=!1,this.browser("mozilla")){if(this.opts.clipboardUpload){var o=t.match(/<img src="data:image(.*?)"(.*?)>/gi);if(null!==o)for(var r in this.pasteClipboardMozilla=o,o){var a=o[r].replace("<img",'<img data-mozilla-paste-image="'+r+'" ');t=t.replace(o[r],a)}}for(;/<br>$/gi.test(t);)t=t.replace(/<br>$/gi,"")}if(t=t.replace(/<p>•([\w\W]*?)<\/p>/gi,"<li>$1</li>"),this.browser("msie"))for(;/<font>([\w\W]*?)<\/font>/gi.test(t);)t=t.replace(/<font>([\w\W]*?)<\/font>/gi,"$1");!1===i&&(t=(t=(t=(t=t.replace(/<td(.*?)>([\w\W]*?)<p(.*?)>([\w\W]*?)<\/td>/gi,"<td$1>$2$4</td>")).replace(/<td(.*?)>([\w\W]*?)<\/p>([\w\W]*?)<\/td>/gi,"<td$1>$2$3</td>")).replace(/<td(.*?)>([\w\W]*?)<p(.*?)>([\w\W]*?)<\/td>/gi,"<td$1>$2$4</td>")).replace(/<td(.*?)>([\w\W]*?)<\/p>([\w\W]*?)<\/td>/gi,"<td$1>$2$3</td>")),t=(t=t.replace(/\n/g," ")).replace(/<p>\n?<li>/gi,"<li>"),this.pasteInsert(t)},pastePre:function(t){t=t.replace(/<br>|<\/H[1-6]>|<\/p>|<\/div>/gi,"\n");var e=this.document.createElement("div");return e.innerHTML=t,this.cleanEncodeEntities(e.textContent||e.innerText)},pasteInsert:function(t){t=this.callback("pasteAfter",!1,t),this.selectall?(this.$editor.html(t),this.selectionRemove(),this.focusEnd(),this.sync()):this.insertHtml(t),this.selectall=!1,setTimeout($.proxy((function(){this.rtePaste=!1,this.browser("mozilla")&&this.$editor.find("p:empty").remove(),!1!==this.pasteClipboardMozilla&&this.pasteClipboardUploadMozilla()}),this),100),this.opts.autoresize&&!0!==this.fullscreen?$(this.document.body).scrollTop(this.saveScroll):this.$editor.scrollTop(this.saveScroll)},pasteClipboardAppendFields:function(t){return!1!==this.opts.uploadFields&&"object"==typeof this.opts.uploadFields&&$.each(this.opts.uploadFields,$.proxy((function(e,i){null!=i&&0===i.toString().indexOf("#")&&(i=$(i).val()),t[e]=i}),this)),t},pasteClipboardUploadMozilla:function(){var t=this.$editor.find("img[data-mozilla-paste-image]");$.each(t,$.proxy((function(t,e){var i=$(e),s=e.src.split(","),o={contentType:s[0].split(";")[0].split(":")[1],data:s[1]};o=this.pasteClipboardAppendFields(o),$.post(this.opts.clipboardUploadUrl,o,$.proxy((function(t){var e="string"==typeof t?$.parseJSON(t):t;i.attr("src",e.image.url),i.removeAttr("data-mozilla-paste-image"),this.sync(),this.callback("imageUpload",i,e)}),this))}),this))},pasteClipboardUpload:function(t){var e=t.target.result,i=e.split(","),s={contentType:i[0].split(";")[0].split(":")[1],data:i[1]};this.opts.clipboardUpload?(s=this.pasteClipboardAppendFields(s),$.post(this.opts.clipboardUploadUrl,s,$.proxy((function(t){var e="string"==typeof t?$.parseJSON(t):t,i='<img src="'+e.image.url+'" id="clipboard-image-marker" />';this.execCommand("inserthtml",i,!1);var s=$(this.$editor.find("img#clipboard-image-marker"));s.length?s.removeAttr("id"):s=!1,this.sync(),s&&this.callback("imageUpload",s,e)}),this))):this.insertHtml('<img src="'+e+'" />')},bufferSet:function(t){!1!==t&&this.selectionSave(),this.opts.buffer.push(this.$editor.html()),!1!==t&&this.selectionRemoveMarkers("buffer")},bufferUndo:function(){0!==this.opts.buffer.length?(this.selectionSave(),this.opts.rebuffer.push(this.$editor.html()),this.selectionRestore(!1,!0),this.$editor.html(this.opts.buffer.pop()),this.selectionRestore(),setTimeout($.proxy(this.observeStart,this),100)):this.focusWithSaveScroll()},bufferRedo:function(){if(0===this.opts.rebuffer.length)return this.focusWithSaveScroll(),!1;this.selectionSave(),this.opts.buffer.push(this.$editor.html()),this.selectionRestore(!1,!0),this.$editor.html(this.opts.rebuffer.pop()),this.selectionRestore(!0),setTimeout($.proxy(this.observeStart,this),4)},observeStart:function(){this.observeImages(),this.opts.observeLinks&&this.observeLinks()},observeLinks:function(){this.$editor.find("a").on("click",$.proxy(this.linkObserver,this)),this.$editor.on("click.redactor",$.proxy((function(t){this.linkObserverTooltipClose(t)}),this)),$(document).on("click.redactor",$.proxy((function(t){this.linkObserverTooltipClose(t)}),this))},observeImages:function(){if(!1===this.opts.observeImages)return!1;this.$editor.find("img").each($.proxy((function(t,e){this.browser("msie")&&$(e).attr("unselectable","on");var i=$(e).parent();i.hasClass("royalSlider")||i.hasClass("fotorama")||this.imageResize(e)}),this)),this.$editor.find(".fotorama, .royalSlider").on("click",$.proxy(this.editGallery,this))},linkObserver:function(t){var e=$(t.target),i=$(t.target).parent();if(!i.hasClass("royalSlider")&&!i.hasClass("fotorama")&&0!=e.length&&"A"===e[0].tagName){var s=e.offset();if(this.opts.iframe){var o=this.$frame.offset();s.top=o.top+(s.top-$(this.document).scrollTop()),s.left+=o.left}var r=$('<span class="redactor-link-tooltip"></span>'),a=e.attr("href");void 0===a&&(a=""),a.length>24&&(a=a.substring(0,24)+"...");var n=$('<a href="'+e.attr("href")+'" target="_blank">'+a+"</a>").on("click",$.proxy((function(){this.linkObserverTooltipClose(!1)}),this)),l=$('<a href="#">'+this.opts.curLang.edit+"</a>").on("click",$.proxy((function(t){t.preventDefault(),this.linkShow(),this.linkObserverTooltipClose(!1)}),this)),c=$('<a href="#">'+this.opts.curLang.unlink+"</a>").on("click",$.proxy((function(t){t.preventDefault(),this.execCommand("unlink"),this.linkObserverTooltipClose(!1)}),this));r.append(n),r.append(" | "),r.append(l),r.append(" | "),r.append(c),r.css({top:s.top+20+"px",left:s.left+"px"}),$(".redactor-link-tooltip").remove(),$("body").append(r)}},linkObserverTooltipClose:function(t){if(!1!==t&&"A"==t.target.tagName)return!1;$(".redactor-link-tooltip").remove()},getSelection:function(){return this.opts.rangy?this.opts.iframe?rangy.getSelection(this.$frame[0]):rangy.getSelection():this.document.getSelection()},getRange:function(){if(this.opts.rangy)return this.opts.iframe?rangy.createRange(this.iframeDoc()):rangy.createRange();if(this.document.getSelection){var t=this.getSelection();if(t.getRangeAt&&t.rangeCount)return t.getRangeAt(0)}return this.document.createRange()},selectionElement:function(t){this.setCaret(t)},selectionStart:function(t){this.selectionSet(t[0]||t,0,null,0)},selectionEnd:function(t){this.selectionSet(t[0]||t,1,null,1)},selectionSet:function(t,e,i,s){null==i&&(i=t),null==s&&(s=e);var o=this.getSelection();if(o){if("P"==t.tagName&&""==t.innerHTML&&(t.innerHTML=this.opts.invisibleSpace),"BR"==t.tagName&&!1===this.opts.linebreaks){var r=$(this.opts.emptyHtml)[0];$(t).replaceWith(r),i=t=r}var a=this.getRange();a.setStart(t,e),a.setEnd(i,s);try{o.removeAllRanges()}catch(t){}o.addRange(a)}},selectionWrap:function(t){t=t.toLowerCase();var e=this.getBlock();if(e){var i=this.formatChangeTag(e,t);return this.sync(),i}var s=this.getSelection().getRangeAt(0);return(i=document.createElement(t)).appendChild(s.extractContents()),s.insertNode(i),this.selectionElement(i),i},selectionAll:function(){var t=this.getRange();t.selectNodeContents(this.$editor[0]);var e=this.getSelection();e.removeAllRanges(),e.addRange(t)},selectionRemove:function(){this.getSelection().removeAllRanges()},getCaretOffset:function(t){var e=this.getRange(),i=e.cloneRange();return i.selectNodeContents(t),i.setEnd(e.endContainer,e.endOffset),$.trim(i.toString()).length},getCaretOffsetRange:function(){return new Range(this.getSelection().getRangeAt(0))},setCaret:function(t,e,i){void 0===i&&(i=e),t=t[0]||t;var s=this.getRange();s.selectNodeContents(t);var o,r=this.getTextNodesIn(t),a=!1,n=0;if(1==r.length&&e)s.setStart(r[0],e),s.setEnd(r[0],i);else for(var l,c=0;l=r[c++];){if(o=n+l.length,!a&&e>=n&&(e<o||e==o&&c<r.length)&&(s.setStart(l,e-n),a=!0),a&&i<=o){s.setEnd(l,i-n);break}n=o}var d=this.getSelection();d.removeAllRanges(),d.addRange(s)},setCaretAfter:function(t){this.$editor.focus(),t=t[0]||t;var e=this.document.createRange();e.setStart(t,1),e.setEnd(t,1);var i=this.window.getSelection(),s=this.document.createRange(),o=this.document.createTextNode("​");$(t).after(o),s.setStartAfter(o),i.removeAllRanges(),i.addRange(s),$(o).remove()},getTextNodesIn:function(t){var e=[];if(3==t.nodeType)e.push(t);else for(var i=t.childNodes,s=0,o=i.length;s<o;++s)e.push.apply(e,this.getTextNodesIn(i[s]));return e},getCurrent:function(){var t=!1,e=this.getSelection();return e&&e.rangeCount>0&&(t=e.getRangeAt(0).startContainer),this.isParentRedactor(t)},getParent:function(t){return!!(t=t||this.getCurrent())&&this.isParentRedactor($(t).parent()[0])},getBlock:function(t){for(void 0===t&&(t=this.getCurrent());t;){if(this.nodeTestBlocks(t))return!$(t).hasClass("redactor_editor")&&t;t=t.parentNode}return!1},getBlocks:function(t){var e=[];if(void 0===t){var i=this.getRange();if(i&&!0===i.collapsed)return[this.getBlock()];t=this.getNodes(i)}return $.each(t,$.proxy((function(t,i){if(!1===this.opts.iframe&&0==$(i).parents("div.redactor_editor").length)return!1;this.nodeTestBlocks(i)&&e.push(i)}),this)),0===e.length&&(e=[this.getBlock()]),e},isInlineNode:function(t){return 1==t.nodeType&&!this.rTestBlock.test(t.nodeName)},nodeTestBlocks:function(t){return 1==t.nodeType&&this.rTestBlock.test(t.nodeName)},tagTestBlock:function(t){return this.rTestBlock.test(t)},getNodes:function(t,e){if(void 0===t||0==t)t=this.getRange();if(t&&!0===t.collapsed)return void 0===e&&this.tagTestBlock(e)?(r=this.getBlock()).tagName==e?[r]:[]:[this.getCurrent()];var i=[],s=[],o=this.document.getSelection();if(o.isCollapsed||(i=this.getRangeSelectedNodes(o.getRangeAt(0))),$.each(i,$.proxy((function(t,i){if(!1===this.opts.iframe&&0==$(i).parents("div.redactor_editor").length)return!1;void 0===e?""!=$.trim(i.textContent)&&s.push(i):i.tagName==e&&s.push(i)}),this)),0==s.length){var r;if(void 0===e&&this.tagTestBlock(e))return(r=this.getBlock()).tagName==e?s.push(r):[];s.push(this.getCurrent())}var a=s[s.length-1];return this.nodeTestBlocks(a)&&(s=s.slice(0,-1)),s},getElement:function(t){for(t||(t=this.getCurrent());t;){if(1==t.nodeType)return!$(t).hasClass("redactor_editor")&&t;t=t.parentNode}return!1},getRangeSelectedNodes:function(t){var e=(t=t||this.getRange()).startContainer,i=t.endContainer;if(e==i)return[e];for(var s=[];e&&e!=i;)s.push(e=this.nextNode(e));for(e=t.startContainer;e&&e!=t.commonAncestorContainer;)s.unshift(e),e=e.parentNode;return s},nextNode:function(t){if(t.hasChildNodes())return t.firstChild;for(;t&&!t.nextSibling;)t=t.parentNode;return t?t.nextSibling:null},getSelectionText:function(){return this.getSelection().toString()},getSelectionHtml:function(){var t="",e=this.getSelection();if(e.rangeCount){for(var i=this.document.createElement("div"),s=e.rangeCount,o=0;o<s;++o)i.appendChild(e.getRangeAt(o).cloneContents());t=i.innerHTML}return this.syncClean(t)},selectionSave:function(){this.isFocused()||this.focusWithSaveScroll(),this.opts.rangy?this.savedSel=rangy.saveSelection():this.selectionCreateMarker(this.getRange())},selectionCreateMarker:function(t){if(t){var e=$('<span id="selection-marker-1" class="redactor-selection-marker">'+this.opts.invisibleSpace+"</span>",this.document)[0],i=$('<span id="selection-marker-2" class="redactor-selection-marker">'+this.opts.invisibleSpace+"</span>",this.document)[0];!0===t.collapsed?this.selectionSetMarker(t,e,!0):(this.selectionSetMarker(t,e,!0),this.selectionSetMarker(t,i,!1)),this.savedSel=this.$editor.html(),this.selectionRestore(!1,!1)}},selectionSetMarker:function(t,e,i){var s=t.cloneRange();try{s.collapse(i),s.insertNode(e),s.detach()}catch(t){var o=this.opts.emptyHtml;this.opts.linebreaks&&(o="<br>"),this.$editor.prepend(o),this.focus()}},selectionRestore:function(t,e){if(this.opts.rangy)rangy.restoreSelection(this.savedSel);else{!0===t&&this.savedSel&&this.$editor.html(this.savedSel);var i=this.$editor.find("span#selection-marker-1"),s=this.$editor.find("span#selection-marker-2");this.browser("mozilla")?this.$editor.focus():this.isFocused()||this.focusWithSaveScroll(),0!=i.length&&0!=s.length?this.selectionSet(i[0],0,s[0],0):0!=i.length&&this.selectionSet(i[0],0,null,0),!1!==e&&(this.selectionRemoveMarkers(),this.savedSel=!1)}},selectionRemoveMarkers:function(){this.opts.rangy?rangy.removeMarkers(this.savedSel):$.each(this.$editor.find("span.redactor-selection-marker"),(function(){""==$.trim($(this).html().replace(/[^\u0000-\u1C7F]/g,""))?$(this).remove():$(this).removeAttr("class").removeAttr("id")}))},tableShow:function(){this.selectionSave(),this.modalInit(this.opts.curLang.table,this.opts.modal_table,300,$.proxy((function(){$("#redactor_insert_table_btn").on("click",$.proxy(this.tableInsert,this)),setTimeout((function(){$("#redactor_table_rows").focus()}),200)}),this))},tableInsert:function(){this.bufferSet(!1);var t,e,i,s,o=$("#redactor_table_rows").val(),r=$("#redactor_table_columns").val(),a=$("<div></div>"),n=Math.floor(99999*Math.random()),l=$('<table id="table'+n+'"><tbody></tbody></table>');for(t=0;t<o;t++){for(e=$("<tr></tr>"),i=0;i<r;i++)s=$("<td>"+this.opts.invisibleSpace+"</td>"),0===t&&0===i&&s.append('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"),$(e).append(s);l.append(e)}a.append(l);var c=a.html();if(!1===this.opts.linebreaks&&this.browser("mozilla")&&(c+="<p>"+this.opts.invisibleSpace+"</p>"),this.modalClose(),this.selectionRestore(),(d=this.getBlock()||this.getCurrent())&&"BODY"!=d.tagName){if("LI"==d.tagName)var d=$(d).closest("ul, ol");$(d).after(c)}else this.insertHtmlAdvanced(c,!1);this.selectionRestore();var h=this.$editor.find("#table"+n);this.buttonActiveObserver(),h.find("span#selection-marker-1, inline#selection-marker-1").remove(),h.removeAttr("id"),this.sync()},tableDeleteTable:function(){var t=$(this.getParent()).closest("table");return!!this.isParentRedactor(t)&&(0!=t.length&&(this.bufferSet(),t.remove(),void this.sync()))},tableDeleteRow:function(){var t=this.getParent(),e=$(t).closest("table");if(!this.isParentRedactor(e))return!1;if(0==e.length)return!1;this.bufferSet();var i=$(t).closest("tr"),s=i.prev().length?i.prev():i.next();if(s.length){var o=s.children("td").first();o.length&&o.prepend('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>")}i.remove(),this.selectionRestore(),e.find("span#selection-marker-1").remove(),this.sync()},tableDeleteColumn:function(){var t=this.getParent(),e=$(t).closest("table");if(!this.isParentRedactor(e))return!1;if(0==e.length)return!1;this.bufferSet();var i=$(t).closest("td");i.is("td")||(i=i.closest("td"));var s=i.get(0).cellIndex;e.find("tr").each($.proxy((function(t,e){var i=s-1<0?s+1:s-1;0===t&&$(e).find("td").eq(i).prepend('<span id="selection-marker-1">'+this.opts.invisibleSpace+"</span>"),$(e).find("td").eq(s).remove()}),this)),this.selectionRestore(),e.find("span#selection-marker-1").remove(),this.sync()},tableAddHead:function(){var t=$(this.getParent()).closest("table");if(!this.isParentRedactor(t))return!1;if(0==t.length)return!1;if(this.bufferSet(),0!==t.find("thead").length)this.tableDeleteHead();else{var e=t.find("tr").first().clone();e.find("td").replaceWith("<th></th>").html(this.opts.invisibleSpace),$thead=$("<thead></thead>"),$thead.append(e),t.prepend($thead),this.sync()}},tableDeleteHead:function(){var t=$(this.getParent()).closest("table");if(!this.isParentRedactor(t))return!1;var e=t.find("thead");if(0==e.length)return!1;this.bufferSet(),e.remove(),this.sync()},tableAddRowAbove:function(){this.tableAddRow("before")},tableAddRowBelow:function(){this.tableAddRow("after")},tableAddColumnLeft:function(){this.tableAddColumn("before")},tableAddColumnRight:function(){this.tableAddColumn("after")},tableAddRow:function(t){var e=$(this.getParent()).closest("table");if(!this.isParentRedactor(e))return!1;if(0==e.length)return!1;this.bufferSet();var i=$(this.getParent()).closest("tr"),s=i.clone();s.find("td").html(this.opts.invisibleSpace),"after"===t?i.after(s):i.before(s),this.sync()},tableAddColumn:function(t){var e=this.getParent(),i=$(e).closest("table");if(!this.isParentRedactor(i))return!1;if(0==i.length)return!1;this.bufferSet();var s=0,o=this.getCurrent(),r=$(o).closest("tr"),a=$(o).closest("td");r.find("td").each($.proxy((function(t,e){$(e)[0]===a[0]&&(s=t)}),this)),i.find("tr").each($.proxy((function(e,i){var o=$(i).find("td").eq(s),r=o.clone();r.html(this.opts.invisibleSpace),"after"===t?o.after(r):o.before(r)}),this)),this.sync()},videoShow:function(){this.selectionSave(),this.modalInit(this.opts.curLang.video,this.opts.modal_video,600,$.proxy((function(){$("#redactor_insert_video_btn").on("click",$.proxy(this.videoInsert,this)),setTimeout((function(){$("#redactor_insert_video_area").focus()}),200)}),this))},videoInsert:function(){var t=$("#redactor_insert_video_area").val(),e='<iframe width="500" height="281" src="',i='" frameborder="0" allowfullscreen></iframe>';(t=this.cleanStripTags(t)).match(reUrlYoutube)?t=t.replace(reUrlYoutube,e+"//www.youtube.com/embed/$1"+i):t.match(reUrlVimeo)?t=t.replace(reUrlVimeo,e+"//player.vimeo.com/video/$2"+i):t.match(reUrlFacebook)?t=t.replace(reUrlFacebook,e+"https://www.facebook.com/video/embed?video_id=$1"+i):t.match(reUrlRutube)&&(t=t.replace(reUrlRutube,e+"//rutube.ru/play/embed/$1"+i)),this.selectionRestore();var s=this.getBlock()||this.getCurrent();s?$(s).after(t):this.insertHtmlAdvanced(t,!1),this.sync(),this.modalClose()},linkShow:function(){this.selectionSave();var t=$.proxy((function(){if(!1!==this.opts.predefinedLinks){this.predefinedLinksStorage={};var t=this;$.getJSON(this.opts.predefinedLinks,(function(e){if(0!==Object.keys(e).length){var i=$("#redactor-predefined-links");i.html(""),$.each(e,(function(e,s){t.predefinedLinksStorage[e]=s,i.append($("<option>").val(e).html(s.name))})),i.on("change",(function(){var e=$(this).val(),i="",s="";0!=e&&(i=t.predefinedLinksStorage[e].name,s=t.predefinedLinksStorage[e].url),$("#redactor_link_url").val(s),1!=$("#redactor_link_url_text").data("is_selected_text")&&$("#redactor_link_url_text").val(i)})),i.show()}}))}this.insert_link_node=!1;var e=this.getSelection(),i="",s="",o="",r=this.getParent(),a=$(r).parent().get(0);a&&"A"===a.tagName&&(r=a),r&&"A"===r.tagName?(i=r.href,s=$(r).text(),o=r.target,this.insert_link_node=r):s=e.toString(),$("#redactor_link_url_text").val(s),s.length>0&&$("#redactor_link_url_text").data("is_selected_text",1);var n=self.location.href.replace(/\/$/i,"");if(i=(i=(i=i.replace(n,"")).replace(/^\/#/,"#")).replace("mailto:",""),!1===this.opts.linkProtocol){var l=new RegExp("^(http|ftp|https)://"+self.location.host,"i");i=i.replace(l,"")}$("#redactor_link_url").val(i),"_blank"===o&&$("#redactor_link_blank").prop("checked",!0),this.linkInsertPressed=!1,$("#redactor_insert_link_btn").on("click",$.proxy(this.linkProcess,this)),setTimeout((function(){$("#redactor_link_url").focus()}),200)}),this);this.modalInit(this.opts.curLang.link,this.opts.modal_link,460,t)},linkProcess:function(){if(!this.linkInsertPressed){this.linkInsertPressed=!0;var t="",e="",i=$("#redactor_link_url").val(),s=$("#redactor_link_url_text").val();if(-1!=i.search("@")&&!1===/(http|ftp|https):\/\//i.test(i))i="mailto:"+i;else if(0!=i.search("#")){$("#redactor_link_blank").prop("checked")&&(t=' target="_blank"',e="_blank");var o="((xn--)?[a-z0-9]+(-[a-z0-9]+)*.)+[a-z]{2,}",r=new RegExp("^(http|ftp|https)://"+o,"i"),a=new RegExp("^"+o,"i");-1==i.search(r)&&0==i.search(a)&&this.opts.linkProtocol&&(i=this.opts.linkProtocol+i)}s=s.replace(/<|>/g,"");var n="&nbsp;";this.browser("mozilla")&&(n="&nbsp;"),this.linkInsert('<a href="'+i+'"'+t+">"+s+"</a>"+n,$.trim(s),i,e)}},linkInsert:function(t,e,i,s){if(this.selectionRestore(),""!==e){if(this.insert_link_node)this.bufferSet(),$(this.insert_link_node).text(e).attr("href",i),""!==s?$(this.insert_link_node).attr("target",s):$(this.insert_link_node).removeAttr("target");else{var o=$(t).addClass("redactor-added-link");this.exec("inserthtml",this.outerHtml(o),!1),(i=this.$editor.find("a.redactor-added-link")).removeAttr("style").removeClass("redactor-added-link").each((function(){""==this.className&&$(this).removeAttr("class")}))}this.sync()}setTimeout($.proxy((function(){this.opts.observeLinks&&this.observeLinks()}),this),5),this.modalClose()},fileShow:function(){this.selectionSave();var t=$.proxy((function(){var t=this.getSelection(),e="";e=this.oldIE()?t.text:t.toString(),$("#redactor_filename").val(e),this.isMobile()||this.isIPad()||this.draguploadInit("#redactor_file",{url:this.opts.fileUpload,uploadFields:this.opts.uploadFields,success:$.proxy(this.fileCallback,this),error:$.proxy((function(t,e){this.callback("fileUploadError",e)}),this),uploadParam:this.opts.fileUploadParam}),this.uploadInit("redactor_file",{auto:!0,url:this.opts.fileUpload,success:$.proxy(this.fileCallback,this),error:$.proxy((function(t,e){this.callback("fileUploadError",e)}),this)})}),this);this.modalInit(this.opts.curLang.file,this.opts.modal_file,500,t)},fileCallback:function(t){if(this.selectionRestore(),!1!==t){var e=$("#redactor_filename").val();""===e&&(e=t.filename);var i='<a href="'+t.filelink+'" id="filelink-marker">'+e+"</a>";this.browser("webkit")&&this.window.chrome&&(i+="&nbsp;"),this.execCommand("inserthtml",i,!1);var s=$(this.$editor.find("a#filelink-marker"));0!=s.length?s.removeAttr("id"):s=!1,this.sync(),this.callback("fileUpload",s,t)}this.modalClose()},imageShow:function(){this.selectionSave();var t=$.proxy((function(){this.opts.imageGetJson?$.getJSON(this.opts.imageGetJson,$.proxy((function(t){if(t.error)alert(t.message);else{var e={},i=0;$.each(t,$.proxy((function(t,s){void 0!==s.folder&&(i++,e[s.folder]=i)}),this)),$("#redactor_image_box .empty_list").show();var s=!1;if($.each(t,$.proxy((function(t,i){var o="";void 0!==i.title&&(o=i.title);var r=0;$.isEmptyObject(e)||void 0===i.folder||(r=e[i.folder],!1===s&&(s=".redactorfolder"+r));var a=$('<img src="'+i.thumb+'" class="redactorfolder redactorfolder'+r+'" rel="'+i.image+'" title="'+o+'" />');$("#redactor_image_box").append(a),$(a).on("click",$.proxy(this.imageThumbClick,this)),$("#redactor_image_box .empty_list").hide()}),this)),!$.isEmptyObject(e)){$(".redactorfolder").hide(),$(s).show();var o=$('<select id="redactor_image_box_select">');$.each(e,(function(t,e){o.append($('<option value="'+e+'">'+t+"</option>"))})),$("#redactor_image_box").before(o),o.change((function(t){$(".redactorfolder").hide(),$(".redactorfolder"+$(t.target).val()).show()}))}}}),this)):$("#redactor-tab-control-2").remove(),this.opts.imageUpload||this.opts.s3?(this.isMobile()||this.isIPad()||!1!==this.opts.s3||$("#redactor_file").length&&this.draguploadInit("#redactor_file",{url:this.opts.imageUpload,uploadFields:this.opts.uploadFields,success:$.proxy(this.imageCallback,this),error:$.proxy((function(t,e){this.callback("imageUploadError",e)}),this),uploadParam:this.opts.imageUploadParam}),!1===this.opts.s3?this.uploadInit("redactor_file",{auto:!0,url:this.opts.imageUpload,success:$.proxy(this.imageCallback,this),error:$.proxy((function(t,e){this.callback("imageUploadError",e)}),this)}):$("#redactor_file").on("change.redactor",$.proxy(this.s3handleFileSelect,this))):($(".redactor_tab").hide(),this.opts.imageGetJson?($("#redactor-tab-control-1").remove(),$("#redactor-tab-control-2").addClass("redactor_tabs_act"),$("#redactor_tab2").show()):($("#redactor_tabs").remove(),$("#redactor_tab3").show())),this.opts.imageTabLink||!this.opts.imageUpload&&!this.opts.imageGetJson||$("#redactor-tab-control-3").hide(),$("#redactor_upload_btn").on("click",$.proxy(this.imageCallbackLink,this)),this.opts.imageUpload||this.opts.imageGetJson||setTimeout((function(){$("#redactor_file_link").focus()}),200)}),this);this.modalInit(this.opts.curLang.image,this.opts.modal_image,610,t)},imageEdit:function(t){var e=t,i=e.parent().parent(),s=$.proxy((function(){$("#redactor_file_alt").val(e.attr("alt")),$("#redactor_image_edit_src").attr("href",e.attr("src")),"block"==e.css("display")&&"none"==e.css("float")?$("#redactor_form_image_align").val("center"):$("#redactor_form_image_align").val(e.css("float")),"A"===$(i).get(0).tagName&&($("#redactor_file_link").val($(i).attr("href")),"_blank"==$(i).attr("target")&&$("#redactor_link_blank").prop("checked",!0)),$("#redactor_image_delete_btn").on("click",$.proxy((function(){this.imageRemove(e)}),this)),$("#redactorSaveBtn").on("click",$.proxy((function(){this.imageSave(e)}),this))}),this);this.modalInit(this.opts.curLang.edit,this.opts.modal_image_edit,380,s)},imageRemove:function(t){var e=$(t).parent().parent(),i=$(t).parent(),s=!1;e.length&&"A"===e[0].tagName?(s=!0,$(e).remove()):i.length&&"A"===i[0].tagName?(s=!0,$(i).remove()):$(t).remove(),i.length&&"P"===i[0].tagName&&(this.focusWithSaveScroll(),!1===s&&this.selectionStart(i)),this.callback("imageDelete",t),this.modalClose(),this.sync()},imageSave:function(t){this.imageResizeHide(!1);var e=$(t),i=e.parent();e.attr("alt",$("#redactor_file_alt").val());var s=$("#redactor_form_image_align").val(),o="";"left"===s?(o="0 "+this.opts.imageFloatMargin+" "+this.opts.imageFloatMargin+" 0",e.css({float:"left",margin:o})):"right"===s?(o="0 0 "+this.opts.imageFloatMargin+" "+this.opts.imageFloatMargin,e.css({float:"right",margin:o})):"center"===s?e.css({float:"",display:"block",margin:"auto"}):e.css({float:"",display:"",margin:""});var r=$.trim($("#redactor_file_link").val());if(""!==r){var a=!1;if($("#redactor_link_blank").prop("checked")&&(a=!0),"A"!==i.get(0).tagName){var n=$('<a href="'+r+'">'+this.outerHtml(t)+"</a>");a&&n.attr("target","_blank"),e.replaceWith(n)}else i.attr("href",r),a?i.attr("target","_blank"):i.removeAttr("target")}else"A"===i.get(0).tagName&&i.replaceWith(this.outerHtml(t));this.modalClose(),this.observeImages(),this.sync()},imageResizeHide:function(t){if(!1!==t&&0!=$(t.target).parent().length&&"redactor-image-box"===$(t.target).parent()[0].id)return!1;var e=this.$editor.find("#redactor-image-box");if(0==e.length)return!1;this.$editor.find("#redactor-image-editter, #redactor-image-resizer").remove(),e.find("img").css({marginTop:e[0].style.marginTop,marginBottom:e[0].style.marginBottom,marginLeft:e[0].style.marginLeft,marginRight:e[0].style.marginRight}),e.css("margin",""),e.find("img").css("opacity",""),e.replaceWith((function(){return $(this).contents()})),$(document).off("click.redactor-image-resize-hide"),this.$editor.off("click.redactor-image-resize-hide"),this.$editor.off("keydown.redactor-image-delete"),this.sync()},imageResize:function(t){var e=$(t);e.on("mousedown",$.proxy((function(){this.imageResizeHide(!1)}),this)),e.on("dragstart",$.proxy((function(){this.$editor.on("drop.redactor-image-inside-drop",$.proxy((function(){setTimeout($.proxy((function(){this.observeImages(),this.$editor.off("drop.redactor-image-inside-drop"),this.sync()}),this),1)}),this))}),this)),e.on("click",$.proxy((function(){if(0!=this.$editor.find("#redactor-image-box").length)return!1;var t,i=e.width()/e.height(),s=this.imageResizeControls(e),o=!1;!1!==s&&(s.on("mousedown",(function(s){o=!0,s.preventDefault(),i=e.width()/e.height(),Math.round(s.pageX-e.eq(0).offset().left),t=Math.round(s.pageY-e.eq(0).offset().top)})),$(this.document.body).on("mousemove",$.proxy((function(s){if(o){Math.round(s.pageX-e.eq(0).offset().left);var r=Math.round(s.pageY-e.eq(0).offset().top)-t,a=e.height(),n=parseInt(a,10)+r,l=Math.round(n*i);l>20&&(e.width(l),l<100?this.imageEditter.css({marginTop:"-7px",marginLeft:"-13px",fontSize:"9px",padding:"3px 5px"}):this.imageEditter.css({marginTop:"-11px",marginLeft:"-18px",fontSize:"11px",padding:"7px 10px"})),Math.round(s.pageX-e.eq(0).offset().left),t=Math.round(s.pageY-e.eq(0).offset().top),this.sync()}}),this)).on("mouseup",(function(){o=!1}))),this.$editor.on("keydown.redactor-image-delete",$.proxy((function(t){var i=t.which;this.keyCode.BACKSPACE!=i&&this.keyCode.DELETE!=i||(this.bufferSet(!1),this.imageResizeHide(!1),this.imageRemove(e))}),this)),$(document).on("click.redactor-image-resize-hide",$.proxy(this.imageResizeHide,this)),this.$editor.on("click.redactor-image-resize-hide",$.proxy(this.imageResizeHide,this))}),this))},imageResizeControls:function(t){var e=$('<span id="redactor-image-box" data-redactor="verified">');if(e.css({position:"relative",display:"inline-block",lineHeight:0,outline:"1px dashed rgba(0, 0, 0, .6)",float:t.css("float")}),e.attr("contenteditable",!1),"auto"!=t[0].style.margin?(e.css({marginTop:t[0].style.marginTop,marginBottom:t[0].style.marginBottom,marginLeft:t[0].style.marginLeft,marginRight:t[0].style.marginRight}),t.css("margin","")):e.css({display:"block",margin:"auto"}),t.css("opacity",.5).after(e),this.imageEditter=$('<span id="redactor-image-editter" data-redactor="verified">'+this.opts.curLang.edit+"</span>"),this.imageEditter.css({position:"absolute",zIndex:5,top:"50%",left:"50%",marginTop:"-11px",marginLeft:"-18px",lineHeight:1,backgroundColor:"#000",color:"#fff",fontSize:"11px",padding:"7px 10px",cursor:"pointer"}),this.imageEditter.attr("contenteditable",!1),this.imageEditter.on("click",$.proxy((function(){this.imageEdit(t)}),this)),e.append(this.imageEditter),this.opts.imageResizable){var i=$('<span id="redactor-image-resizer" data-redactor="verified"></span>');return i.css({position:"absolute",zIndex:2,lineHeight:1,cursor:"nw-resize",bottom:"-4px",right:"-5px",border:"1px solid #fff",backgroundColor:"#000",width:"8px",height:"8px"}),i.attr("contenteditable",!1),e.append(i),e.append(t),i}return e.append(t),!1},imageThumbClick:function(t){var e='<img id="image-marker" src="'+$(t.target).attr("rel")+'" alt="'+$(t.target).attr("title")+'" />',i=this.getParent();this.opts.paragraphy&&0==$(i).closest("li").length&&(e="<p>"+e+"</p>"),this.imageInsert(e,!0)},imageCallbackLink:function(){var t=$("#redactor_file_link").val();if(""!==t){var e='<img id="image-marker" src="'+t+'" />';!1===this.opts.linebreaks&&(e="<p>"+e+"</p>"),this.imageInsert(e,!0)}else this.modalClose()},imageCallback:function(t){this.imageInsert(t)},imageInsert:function(t,e){if(this.selectionRestore(),!1!==t){var i="";if(!0!==e){i='<img id="image-marker" src="'+t.image.url+'" />';var s=this.getParent();this.opts.paragraphy&&0==$(s).closest("li").length&&(i="<p>"+i+"</p>")}else i=t;this.execCommand("inserthtml",i,!1);var o=$(this.$editor.find("img#image-marker"));o.length?o.removeAttr("id"):o=!1,this.sync(),!0!==e&&this.callback("imageUpload",o,t)}this.modalClose(),this.observeImages()},buildProgressBar:function(){0==$("#redactor-progress").length&&(this.$progressBar=$('<div id="redactor-progress"><span></span></div>'),$(document.body).append(this.$progressBar))},showProgressBar:function(){this.buildProgressBar(),$("#redactor-progress").fadeIn()},hideProgressBar:function(){$("#redactor-progress").fadeOut(1500)},modalTemplatesInit:function(){$.extend(this.opts,{modal_file:String()+'<section id="redactor-modal-file-insert"><form id="redactorUploadFileForm" method="post" action="" enctype="multipart/form-data"><label>'+this.opts.curLang.filename+'</label><input type="text" id="redactor_filename" class="redactor_input" /><div style="margin-top: 7px;"><input type="file" id="redactor_file" name="'+this.opts.fileUploadParam+'" /></div></form></section>',modal_image_edit:String()+'<section id="redactor-modal-image-edit"><label>'+this.opts.curLang.title+'</label><input type="text" id="redactor_file_alt" class="redactor_input" /><label>'+this.opts.curLang.link+'</label><input type="text" id="redactor_file_link" class="redactor_input" /><label><input type="checkbox" id="redactor_link_blank"> '+this.opts.curLang.link_new_tab+"</label><label>"+this.opts.curLang.image_position+'</label><select id="redactor_form_image_align"><option value="none">'+this.opts.curLang.none+'</option><option value="left">'+this.opts.curLang.left+'</option><option value="center">'+this.opts.curLang.center+'</option><option value="right">'+this.opts.curLang.right+'</option></select></section><footer><button id="redactor_image_delete_btn" class="redactor_modal_btn redactor_modal_delete_btn">'+this.opts.curLang._delete+'</button><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactorSaveBtn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.save+"</button></footer>",modal_image:String()+'<section id="redactor-modal-image-insert"><div id="redactor_tabs"><a href="#" id="redactor-tab-control-1" class="redactor_tabs_act">'+this.opts.curLang.upload+'</a><a href="#" id="redactor-tab-control-2">'+this.opts.curLang.choose+'</a><a href="#" id="redactor-tab-control-3">'+this.opts.curLang.link+'</a></div><form id="redactorInsertImageForm" method="post" action="" enctype="multipart/form-data"><div id="redactor_tab1" class="redactor_tab"><input type="file" id="redactor_file" name="'+this.opts.imageUploadParam+'" /></div><div id="redactor_tab2" class="redactor_tab" style="display: none;"><div id="redactor_image_box"><span class="empty_list">'+this.opts.curLang.empty_img_list+'</span></div></div></form><div id="redactor_tab3" class="redactor_tab" style="display: none;"><label>'+this.opts.curLang.image_web_link+'</label><input type="text" name="redactor_file_link" id="redactor_file_link" class="redactor_input"  /><br><br></div></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button class="redactor_modal_btn redactor_modal_action_btn" id="redactor_upload_btn">'+this.opts.curLang.insert+"</button></footer>",modal_link:String()+'<section id="redactor-modal-link-insert"><select id="redactor-predefined-links" style="width: 99.5%; display: none;"></select><label>URL</label><input type="text" class="redactor_input" id="redactor_link_url" /><label>'+this.opts.curLang.text+'</label><input type="text" class="redactor_input" id="redactor_link_url_text" /><label><input type="checkbox" id="redactor_link_blank"> '+this.opts.curLang.link_new_tab+'</label></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactor_insert_link_btn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.insert+"</button></footer>",modal_table:String()+'<section id="redactor-modal-table-insert"><label>'+this.opts.curLang.rows+'</label><input type="text" size="5" value="2" id="redactor_table_rows" /><label>'+this.opts.curLang.columns+'</label><input type="text" size="5" value="3" id="redactor_table_columns" /></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactor_insert_table_btn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.insert+"</button></footer>",modal_video:String()+'<section id="redactor-modal-video-insert"><form id="redactorInsertVideoForm"><label>'+this.opts.curLang.video_html_code+'</label><textarea id="redactor_insert_video_area" style="width: 99%; height: 160px;"></textarea></form></section><footer><button class="redactor_modal_btn redactor_btn_modal_close">'+this.opts.curLang.cancel+'</button><button id="redactor_insert_video_btn" class="redactor_modal_btn redactor_modal_action_btn">'+this.opts.curLang.insert+"</button></footer>"})},modalInit:function(t,e,i,s){return this.modalSetOverlay(),this.$redactorModalWidth=i,this.$redactorModal=$("#redactor_modal"),this.$redactorModal.length||(this.$redactorModal=$('<div id="redactor_modal" style="display: none;" />'),this.$redactorModal.append($('<div id="redactor_modal_close">&times;</div>')),this.$redactorModal.append($('<header id="redactor_modal_header" />')),this.$redactorModal.append($('<div id="redactor_modal_inner" />')),this.$redactorModal.appendTo(document.body)),$("#redactor_modal_close").on("click",$.proxy(this.modalClose,this)),$(document).on("keyup",$.proxy(this.modalCloseHandler,this)),this.$editor.on("keyup",$.proxy(this.modalCloseHandler,this)),this.modalSetContent(e),this.modalSetTitle(t),this.modalSetDraggable(),this.modalLoadTabs(),this.modalOnCloseButton(),this.modalSetButtonsWidth(),this.saveModalScroll=this.document.body.scrollTop,!1===this.opts.autoresize&&(this.saveModalScroll=this.$editor.scrollTop()),!1===this.isMobile()?this.modalShowOnDesktop():this.modalShowOnMobile(),"function"==typeof s&&s(),setTimeout($.proxy((function(){this.callback("modalOpened",this.$redactorModal)}),this),11),$(document).off("focusin.modal"),this.$redactorModal.find("input[type=text]").on("keypress",$.proxy((function(t){13===t.which&&(this.$redactorModal.find(".redactor_modal_action_btn").trigger("click"),t.preventDefault())}),this)),this.$redactorModal},modalShowOnDesktop:function(){this.$redactorModal.css({position:"fixed",top:"-2000px",left:"50%",width:this.$redactorModalWidth+"px",marginLeft:"-"+this.$redactorModalWidth/2+"px"}).show(),this.modalSaveBodyOveflow=$(document.body).css("overflow"),$(document.body).css("overflow","hidden"),setTimeout($.proxy((function(){var t=this.$redactorModal.outerHeight();this.$redactorModal.css({top:"50%",height:"auto",minHeight:"auto",marginTop:"-"+(t+10)/2+"px"})}),this),15)},modalShowOnMobile:function(){this.$redactorModal.css({position:"fixed",width:"100%",height:"100%",top:"0",left:"0",margin:"0",minHeight:"300px"}).show()},modalSetContent:function(t){this.modalcontent=!1,0==t.indexOf("#")?(this.modalcontent=$(t),$("#redactor_modal_inner").empty().append(this.modalcontent.html()),this.modalcontent.html("")):$("#redactor_modal_inner").empty().append(t)},modalSetTitle:function(t){this.$redactorModal.find("#redactor_modal_header").html(t)},modalSetButtonsWidth:function(){},modalOnCloseButton:function(){this.$redactorModal.find(".redactor_btn_modal_close").on("click",$.proxy(this.modalClose,this))},modalSetOverlay:function(){this.opts.modalOverlay&&(this.$redactorModalOverlay=$("#redactor_modal_overlay"),this.$redactorModalOverlay.length||(this.$redactorModalOverlay=$('<div id="redactor_modal_overlay" style="display: none;"></div>'),$("body").prepend(this.$redactorModalOverlay)),this.$redactorModalOverlay.show().on("click",$.proxy(this.modalClose,this)))},modalSetDraggable:function(){void 0!==$.fn.draggable&&(this.$redactorModal.draggable({handle:"#redactor_modal_header"}),this.$redactorModal.find("#redactor_modal_header").css("cursor","move"))},modalLoadTabs:function(){var t=$("#redactor_tabs");if(!t.length)return!1;var e=this;t.find("a").each((function(i,s){i++,$(s).on("click",(function(s){if(s.preventDefault(),t.find("a").removeClass("redactor_tabs_act"),$(this).addClass("redactor_tabs_act"),$(".redactor_tab").hide(),$("#redactor_tab"+i).show(),$("#redactor_tab_selected").val(i),!1===e.isMobile()){var o=e.$redactorModal.outerHeight();e.$redactorModal.css("margin-top","-"+(o+10)/2+"px")}}))}))},modalCloseHandler:function(t){if(t.keyCode===this.keyCode.ESC)return this.modalClose(),!1},modalClose:function(){return $("#redactor_modal_close").off("click",this.modalClose),$("#redactor_modal").fadeOut("fast",$.proxy((function(){var t=$("#redactor_modal_inner");!1!==this.modalcontent&&(this.modalcontent.html(t.html()),this.modalcontent=!1),t.html(""),this.opts.modalOverlay&&$("#redactor_modal_overlay").hide().off("click",this.modalClose),$(document).off("keyup",this.modalCloseHandler),this.$editor.off("keyup",this.modalCloseHandler),this.selectionRestore(),this.opts.autoresize&&this.saveModalScroll?$(this.document.body).scrollTop(this.saveModalScroll):!1===this.opts.autoresize&&this.saveModalScroll&&this.$editor.scrollTop(this.saveModalScroll),this.callback("modalClosed")}),this)),!1===this.isMobile()&&$(document.body).css("overflow",this.modalSaveBodyOveflow?this.modalSaveBodyOveflow:"visible"),!1},modalSetTab:function(t){$(".redactor_tab").hide(),$("#redactor_tabs").find("a").removeClass("redactor_tabs_act").eq(t-1).addClass("redactor_tabs_act"),$("#redactor_tab"+t).show()},s3handleFileSelect:function(t){for(var e,i=t.target.files,s=0;e=i[s];s++)this.s3uploadFile(e)},s3uploadFile:function(t){this.s3executeOnSignedUrl(t,$.proxy((function(e){this.s3uploadToS3(t,e)}),this))},s3executeOnSignedUrl:function(t,e){var i=new XMLHttpRequest,s="?";"-1"!=this.opts.s3.search(/\?/)&&(s="&"),i.open("GET",this.opts.s3+s+"name="+t.name+"&type="+t.type,!0),i.overrideMimeType&&i.overrideMimeType("text/plain; charset=x-user-defined");var o=this;i.onreadystatechange=function(){4==this.readyState&&200==this.status?(o.showProgressBar(),e(decodeURIComponent(this.responseText))):4==this.readyState&&this.status},i.send()},s3createCORSRequest:function(t,e){var i=new XMLHttpRequest;return"withCredentials"in i?i.open(t,e,!0):"undefined"!=typeof XDomainRequest?(i=new XDomainRequest).open(t,e):i=null,i},s3uploadToS3:function(t,e){var i=this.s3createCORSRequest("PUT",e);i&&(i.onload=$.proxy((function(){if(200==i.status){this.hideProgressBar();var t=e.split("?");if(!t[0])return!1;this.selectionRestore();var s="";s='<img id="image-marker" src="'+t[0]+'" />',this.opts.paragraphy&&(s="<p>"+s+"</p>"),this.execCommand("inserthtml",s,!1);var o=$(this.$editor.find("img#image-marker"));o.length?o.removeAttr("id"):o=!1,this.sync(),this.callback("imageUpload",o,!1),this.modalClose(),this.observeImages()}}),this),i.onerror=function(){},i.upload.onprogress=function(){},i.setRequestHeader("Content-Type",t.type),i.setRequestHeader("x-amz-acl","public-read"),i.send(t))},uploadInit:function(t,e){this.uploadOptions={url:!1,success:!1,error:!1,start:!1,trigger:!1,auto:!1,input:!1},$.extend(this.uploadOptions,e);var i=$("#"+t);i.length&&"INPUT"===i[0].tagName?(this.uploadOptions.input=i,this.el=$(i[0].form)):this.el=i,this.element_action=this.el.attr("action"),this.uploadOptions.auto?$(this.uploadOptions.input).change($.proxy((function(t){this.el.submit((function(){return!1})),this.uploadSubmit(t)}),this)):this.uploadOptions.trigger&&$("#"+this.uploadOptions.trigger).on("click",$.proxy(this.uploadSubmit,this))},uploadSubmit:function(){this.showProgressBar(),this.uploadForm(this.element,this.uploadFrame())},uploadFrame:function(){this.id="f"+Math.floor(99999*Math.random());var t=this.document.createElement("div"),e='<iframe style="display:none" id="'+this.id+'" name="'+this.id+'"></iframe>';return t.innerHTML=e,$(t).appendTo("body"),this.uploadOptions.start&&this.uploadOptions.start(),$("#"+this.id).one("load",$.proxy(this.uploadLoaded,this)),this.id},uploadForm:function(t,e){if(this.uploadOptions.input){var i="redactorUploadForm"+this.id,s="redactorUploadFile"+this.id;this.form=$('<form  action="'+this.uploadOptions.url+'" method="POST" target="'+e+'" name="'+i+'" id="'+i+'" enctype="multipart/form-data" />'),!1!==this.opts.uploadFields&&"object"==typeof this.opts.uploadFields&&$.each(this.opts.uploadFields,$.proxy((function(t,e){null!=e&&0===e.toString().indexOf("#")&&(e=$(e).val());var i=$("<input/>",{type:"hidden",name:t,value:e});$(this.form).append(i)}),this));var o=this.uploadOptions.input,r=$(o).clone();$(o).attr("id",s).before(r).appendTo(this.form),$(this.form).css("position","absolute").css("top","-2000px").css("left","-2000px").appendTo("body"),this.form.submit()}else t.attr("target",e).attr("method","POST").attr("enctype","multipart/form-data").attr("action",this.uploadOptions.url),this.element.submit()},uploadLoaded:function(){var t,e=$("#"+this.id)[0];if(t=e.contentDocument?e.contentDocument:e.contentWindow?e.contentWindow.document:window.frames[this.id].document,this.uploadOptions.success)if(this.hideProgressBar(),void 0!==t){var i=t.body.innerHTML.match(/\{(.|\n)*\}/)[0];i=(i=i.replace(/^\[/,"")).replace(/\]$/,"");var s=$.parseJSON(i);void 0===s.error?this.uploadOptions.success(s):(this.uploadOptions.error(this,s),this.modalClose())}else this.modalClose(),alert("Upload failed!");this.el.attr("action",this.element_action),this.el.attr("target","")},draguploadInit:function(t,e){if(this.draguploadOptions=$.extend({url:!1,success:!1,error:!1,preview:!1,uploadFields:!1,text:this.opts.curLang.drop_file_here,atext:this.opts.curLang.or_choose,uploadParam:!1},e),void 0===window.FormData)return!1;this.droparea=$('<div class="redactor_droparea"></div>'),this.dropareabox=$('<div class="redactor_dropareabox">'+this.draguploadOptions.text+"</div>"),this.dropalternative=$('<div class="redactor_dropalternative">'+this.draguploadOptions.atext+"</div>"),this.droparea.append(this.dropareabox),$(t).before(this.droparea),$(t).before(this.dropalternative),this.dropareabox.on("dragover",$.proxy((function(){return this.draguploadOndrag()}),this)),this.dropareabox.on("dragleave",$.proxy((function(){return this.draguploadOndragleave()}),this)),this.dropareabox.get(0).ondrop=$.proxy((function(t){for(var e in t.preventDefault(),this.dropareabox.removeClass("hover").addClass("drop"),this.showProgressBar(),t.dataTransfer.files)t.dataTransfer.files.hasOwnProperty(e)&&this.dragUploadAjax(this.draguploadOptions.url,t.dataTransfer.files[e],!1,t,this.draguploadOptions.uploadParam)}),this)},dragUploadAjax:function(t,e,i,s,o){if(!i){var r=$.ajaxSettings.xhr();r.upload&&r.upload.addEventListener("progress",$.proxy(this.uploadProgress,this),!1),$.ajaxSetup({xhr:function(){return r}})}this.callback("drop",s);var a=new FormData;!1!==o?a.append(o,e):a.append("file",e),!1!==this.opts.uploadFields&&"object"==typeof this.opts.uploadFields&&$.each(this.opts.uploadFields,$.proxy((function(t,e){null!=e&&0===e.toString().indexOf("#")&&(e=$(e).val()),a.append(t,e)}),this)),$.ajax({url:t,dataType:"html",async:!1,data:a,cache:!1,contentType:!1,processData:!1,type:"POST",success:$.proxy((function(t){var e="string"==typeof(t=(t=t.replace(/^\[/,"")).replace(/\]$/,""))?$.parseJSON(t):t;if(this.hideProgressBar(),i){var o=$("<img>");o.attr("src",e.image.url).attr("id","drag-image-marker"),this.insertNodeToCaretPositionFromPoint(s,o[0]);var r=$(this.$editor.find("img#drag-image-marker"));r.length?r.removeAttr("id"):r=!1,this.sync(),this.observeImages(),r&&this.callback("imageUpload",r,e),void 0!==e.error&&this.callback("imageUploadError",e)}else void 0===e.error?this.draguploadOptions.success(e):(this.draguploadOptions.error(this,e),this.draguploadOptions.success(!1))}),this)})},draguploadOndrag:function(){return this.dropareabox.addClass("hover"),!1},draguploadOndragleave:function(){return this.dropareabox.removeClass("hover"),!1},uploadProgress:function(t,e){var i=t.loaded?parseInt(t.loaded/t.total*100,10):t;this.dropareabox.text("Loading "+i+"% "+(e||""))},isMobile:function(){return/(iPhone|iPod|BlackBerry|Android)/.test(navigator.userAgent)},isIPad:function(){return/iPad/.test(navigator.userAgent)},normalize:function(t){return void 0===t?0:parseInt(t.replace("px",""),10)},outerHtml:function(t){return $("<div>").append($(t).eq(0).clone()).html()},stripHtml:function(t){var e=document.createElement("DIV");return e.innerHTML=t,e.textContent||e.innerText||""},isString:function(t){return"[object String]"==Object.prototype.toString.call(t)},isEmpty:function(t){return""==(t=(t=(t=t.replace(/&#x200b;|<br>|<br\/>|&nbsp;/gi,"")).replace(/\s/g,"")).replace(/^<p>[^\W\w\D\d]*?<\/p>$/i,""))},getInternetExplorerVersion:function(){var t=!1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent;null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(e)&&(t=parseFloat(RegExp.$1))}return t},isIe11:function(){return!!navigator.userAgent.match(/Trident\/7\./)},browser:function(t){var e=navigator.userAgent.toLowerCase(),i=/(opr)[\/]([\w.]+)/.exec(e)||/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("trident")>=0&&/(rv)(?::| )([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return"version"==t?i[2]:"webkit"==t?"chrome"==i[1]||"webkit"==i[1]:"rv"==i[1]?"msie"==t:"opr"==i[1]?"webkit"==t:t==i[1]},oldIE:function(){return!!(this.browser("msie")&&parseInt(this.browser("version"),10)<9)},getFragmentHtml:function(t){var e=t.cloneNode(!0),i=this.document.createElement("div");return i.appendChild(e),i.innerHTML},extractContent:function(){for(var t,e=this.$editor[0],i=this.document.createDocumentFragment();t=e.firstChild;)i.appendChild(t);return i},isParentRedactor:function(t){return!!t&&((this.opts.iframe||0!=$(t).parents("div.redactor_editor").length&&!$(t).hasClass("redactor_editor"))&&t)},currentOrParentIs:function(t){var e=this.getParent(),i=this.getCurrent();return e&&e.tagName===t?e:!(!i||i.tagName!==t)&&i},isEndOfElement:function(){var t=this.getBlock();return this.getCaretOffset(t)==$.trim($(t).text()).replace(/\n\r\n/g,"").length},isFocused:function(){var t,e=this.getSelection();return e&&e.rangeCount&&e.rangeCount>0&&(t=e.getRangeAt(0).startContainer),!!t&&(this.opts.iframe?!this.getCaretOffsetRange().equals()||!this.$editor.is(t):0!=$(t).closest("div.redactor_editor").length)},removeEmptyAttr:function(t,e){""==$(t).attr(e)&&$(t).removeAttr(e)},removeFromArrayByValue:function(t,e){for(var i=null;-1!==(i=t.indexOf(e));)t.splice(i,1);return t}},Redactor.prototype.init.prototype=Redactor.prototype,$.Redactor.fn.formatLinkify=function(t,e,i,s,o){for(var r=/(((https?|ftps?):\/\/)|www[.][^\s])(.+?\..+?)([.),]?)(\s|\.\s+|\)|$)/gi,a=/(https?|ftp):\/\//i,n=/(https?:\/\/.*\.(?:png|jpg|jpeg|gif))/gi,l=(this.$editor?this.$editor.get(0):this).childNodes,c=l.length;c--;){var d=l[c];if(3===d.nodeType){var h=d.nodeValue;if(s&&h){var p='<iframe width="500" height="281" src="',u='" frameborder="0" allowfullscreen></iframe>';h.match(reUrlYoutube)?(h=h.replace(reUrlYoutube,p+"//www.youtube.com/embed/$1"+u),$(d).after(h).remove()):h.match(reUrlVimeo)&&(h=h.replace(reUrlVimeo,p+"//player.vimeo.com/video/$2"+u),$(d).after(h).remove())}if(i&&h&&h.match(n)&&(h=h.replace(n,'<img src="$1">'),$(d).after(h).remove()),e&&h&&h.match(r)){var f=h.match(r);for(var c in f){var m=f[c],g=m,b="";null!==m.match(/\s$/)&&(b=" ");var v=t;null!==m.match(a)&&(v=""),g.length>o&&(g=g.substring(0,o)+"...");var y=(g=g.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")).replace("$","$$$");h=h.replace(m,'<a href="'+v+$.trim(m)+'">'+$.trim(y)+"</a>"+b)}$(d).after(h).remove()}}else 1!==d.nodeType||/^(a|button|textarea)$/i.test(d.tagName)||$.Redactor.fn.formatLinkify.call(d,t,e,i,s,o)}}})(jQuery);
\ No newline at end of file

programming_language: JavaScript
filename: wysiwyg.class.php
change_type: ModificationType.MODIFY
diff: @@ -105,66 +105,69 @@ class cmsWysiwygRedactor {
 
     private function loadRedactor() {
 
-        if(self::$redactor_loaded){ return false; }
-
         $template = cmsTemplate::getInstance();
 
-        $template->addJSFromContext('wysiwyg/redactor/files/redactor.min.js');
-        $template->addTplJSNameFromContext('files');
-
-        $css_file = 'wysiwyg/redactor/files/redactor.css';
-        $tpl_css_file = $template->getTplFilePath('css/wysiwyg/redactor/styles.css', false);
-        if($tpl_css_file){
-            $css_file = $tpl_css_file;
-        }
-        $template->addCSSFromContext($css_file);
+        if (!empty($this->options['plugins'])) {
 
-        if(!empty($this->options['plugins'])){
-            foreach($this->options['plugins'] as $plugin){
-                $template->addJSFromContext('wysiwyg/redactor/files/plugins/'.$plugin.'/'.$plugin.'.js');
+            foreach ($this->options['plugins'] as $plugin) {
+                $template->addJSFromContext('wysiwyg/redactor/files/plugins/' . $plugin . '/' . $plugin . '.js');
             }
 
-            if (in_array('clips', $this->options['plugins'])){
+            if (in_array('clips', $this->options['plugins'])) {
                 $this->options['clipsUrl'] = href_to('wysiwyg/redactor/files/plugins/clips/index.html');
             }
         }
 
-        if($this->lang !== 'en'){
-            $template->addJSFromContext('wysiwyg/redactor/files/lang/'.$this->lang.'.js');
+        if (self::$redactor_loaded) {
+            return false;
         }
 
-        ob_start(); ?>
+        $template->addJSFromContext('wysiwyg/redactor/files/redactor.min.js');
+        $template->addTplJSNameFromContext('files');
 
-        <script>
-            var redactor_global_options = {};
-            function init_redactor (dom_id){
-                var imperavi_options = {};
-                if(redactor_global_options.hasOwnProperty('field_'+dom_id)){
-                    imperavi_options = redactor_global_options['field_'+dom_id];
-                } else if(redactor_global_options.hasOwnProperty('default')) {
-                    imperavi_options = redactor_global_options.default;
-                }
-                icms.files.url_delete = '<?php echo href_to('files', 'delete'); ?>';
-                imperavi_options.imageDeleteCallback = function (element){
-                    if(confirm('<?php echo LANG_PARSER_IMAGE_DELETE; ?>')){
-                        icms.files.deleteByPath($(element).attr('src'));
+        $css_file     = 'wysiwyg/redactor/files/redactor.css';
+        $tpl_css_file = $template->getTplFilePath('css/wysiwyg/redactor/styles.css', false);
+        if ($tpl_css_file) {
+            $css_file = $tpl_css_file;
+        }
+        $template->addCSSFromContext($css_file);
+
+        if ($this->lang !== 'en') {
+            $template->addJSFromContext('wysiwyg/redactor/files/lang/' . $this->lang . '.js');
+        }
+
+        ob_start();
+        ?>
+            <script>
+                var redactor_global_options = {};
+                function init_redactor (dom_id){
+                    var imperavi_options = {};
+                    if(redactor_global_options.hasOwnProperty('field_'+dom_id)){
+                        imperavi_options = redactor_global_options['field_'+dom_id];
+                    } else if(redactor_global_options.hasOwnProperty('default')) {
+                        imperavi_options = redactor_global_options.default;
                     }
-                };
-                $('#'+dom_id).redactor(imperavi_options);
-                icms.forms.addWysiwygsInsertPool(dom_id, function(field_element, text){
-                    $('#'+field_element).redactor('set', text);
-                    $('#'+field_element).redactor('focus');
-                });
-                icms.forms.addWysiwygsAddPool(dom_id, function(field_element, text){
-                    $('#'+field_element).redactor('insertHtml', text);
-                });
-            }
-        </script>
+                    icms.files.url_delete = '<?php echo href_to('files', 'delete'); ?>';
+                    imperavi_options.imageDeleteCallback = function (element){
+                        if(confirm('<?php echo LANG_PARSER_IMAGE_DELETE; ?>')){
+                            icms.files.deleteByPath($(element).attr('src'));
+                        }
+                    };
+                    $('#'+dom_id).redactor(imperavi_options);
+                    icms.forms.addWysiwygsInsertPool(dom_id, function(field_element, text){
+                        $('#'+field_element).redactor('set', text);
+                        $('#'+field_element).redactor('focus');
+                    });
+                    icms.forms.addWysiwygsAddPool(dom_id, function(field_element, text){
+                        $('#'+field_element).redactor('insertHtml', text);
+                    });
+                }
+            </script>
+        <?php
 
-        <?php $template->addBottom(ob_get_clean());
+        $template->addBottom(ob_get_clean());
 
         self::$redactor_loaded = true;
-
     }
 
 }

programming_language: PHP