diff options
70 files changed, 2531 insertions, 2515 deletions
@@ -1,3 +1,44 @@ +Hubzilla 1.10 + Wiki: + Lots of enhanced functionality, usability improvements, and bugfixes from v1.8 + Turned into an optional feature (default on) but disabled in UNO + Sync: + Items are now relocated (links patched) when syncing to clones + Access Tokens: + New feature - allows members to create access controlled guest logins and create/share 'dropbox' style links to protected resources. + UI: + Use icons instead of iconic text constructs + Only request geolocation permission when creating a post, not on page load + provide 'redeliver' option on Delivery Report page for when things really stuff up + CalDAV/CardDAV management pages with heaps of functionality + Lib: + z_fetch_url() updated to accept different request methods and request bodies + item_store(), item_store_update() now return the stored items + vcard microformat changes to remain spec compliant + microformat meta tags added to post/comments + AbConfig API changed to use channel_id rather than channel_hash, which was overly complicated to use + SuperCurl class added to provide a framework for re-use of obscure CURL options + Allow absolute links to CSS/JS files on CDN + Add Let'sEncrypt intermediate cert to lib in case you forget to install it on the server + Update fullcalendar and jquery (3.1) libs + Update sabre/dav to 3.2.0 + Change content export from a month/year system to begin/end + Use streaming I/O for delivering large photos + Allow multiple App description files in a single plugin directory + optimise a couple of troublesome/inefficient SQL queries + avoid sending clone sync packets to dead sites + Resolved Issues: + channel home page not providing content to clients with javascript disabled + Replace '@' obfuscation with html entity rather than the unicode look-alike + xchan_query() failing to detect duplicates, resulting in inefficient queries + issues with 'use existing photo' for profile photo + layout editor "list all layouts" returned empty + oembed - better detect video file URLs so they aren't loaded into memory. + handcrafted bbcode tables could end up with way too much whitespace due to CRLF translation + refresh permissions whitescreen in 1.8 + force immediate profile photo update on local site + regression: 'save bookmarks' post action missing + Hubzilla 1.8 Administration: Cleanup and resolve some edge cases with addon repository manager @@ -47,4 +47,16 @@ Possible website applications include <em><a href="https://github.com/redmatrix/hubzilla/blob/master/install/INSTALL.txt">Installing Hubzilla</a></em> </p> +**Who Are We and What Are Our Principles?** + +The Hubzilla community is powered by passionate volunteers creating an open source **commons** of decentralised services which are highly integrated and can rival the feature set of centralised providers. We are open to sponsorship and donations to cover expenses and compensate for our time and energy, however the project core is basically non-profit and is not designed for the purpose of commercial gain or exploitation. + +Some sites may include monetisation strategies such as subscriptions and *freemium* models where members pay for resources they consume beyond a basic level. The project community supports such monetisation initiatives (nobody should be forced to pay "out of pocket" to provide a service to others), but we maintain the **commons** to provide open and free access of the software to all. + +The software is not designed for data collection of its members or providing advertising. We don't have a need or desire for these things and feel that software built around these goals is poorly designed and represents compromised principles and ethics. + +As a project, we are inclusive of all beliefs and cultures and do what we are able to provide an environment that is free from hostility and harrassment. Whether or not we succeed in this endaevour requires constant vigilance and help from all members of the community, working together to build an inter-networking tool with amazing potential. + + + [![Build Status](https://travis-ci.org/redmatrix/hubzilla.svg)](https://travis-ci.org/redmatrix/hubzilla) diff --git a/Zotlabs/Daemon/Cron.php b/Zotlabs/Daemon/Cron.php index d5b41274b..5af8174bf 100644 --- a/Zotlabs/Daemon/Cron.php +++ b/Zotlabs/Daemon/Cron.php @@ -62,6 +62,15 @@ class Cron { } + // delete expired access tokens + + q("delete from atoken where atoken_expires != '%s' && atoken_expires < %s", + dbesc(NULL_DATE), + dbutcnow() + ); + + + // Ensure that every channel pings a directory server once a month. This way we can discover // channels and sites that quietly vanished and prevent the directory from accumulating stale // or dead entries. diff --git a/Zotlabs/Lib/AbConfig.php b/Zotlabs/Lib/AbConfig.php index 138d0dfea..cab59abbd 100644 --- a/Zotlabs/Lib/AbConfig.php +++ b/Zotlabs/Lib/AbConfig.php @@ -5,8 +5,10 @@ namespace Zotlabs\Lib; class AbConfig { - static public function Load($chan,$xhash) { - $r = q("select * from abconfig where chan = %d and xchan = '%s'", + static public function Load($chan,$xhash,$family = '') { + if($family) + $where = sprintf(" and family = '%s' ",dbesc($family)); + $r = q("select * from abconfig where chan = %d and xchan = '%s' $where", intval($chan), dbesc($xhash) ); diff --git a/include/PermissionDescription.php b/Zotlabs/Lib/PermissionDescription.php index 1f7799406..55aac2dea 100644 --- a/include/PermissionDescription.php +++ b/Zotlabs/Lib/PermissionDescription.php @@ -1,6 +1,6 @@ <?php -if(class_exists('PermissionDescription')) return; +namespace Zotlabs\Lib; require_once("include/permissions.php"); require_once("include/language.php"); diff --git a/Zotlabs/Module/Acl.php b/Zotlabs/Module/Acl.php index 2bc4ba62d..15609c3c8 100644 --- a/Zotlabs/Module/Acl.php +++ b/Zotlabs/Module/Acl.php @@ -1,7 +1,18 @@ <?php namespace Zotlabs\Module; -/* ACL selector json backend */ +/* + * ACL selector json backend + * This module provides JSON lists of connections and local/remote channels + * (xchans) to populate various tools such as the ACL (AccessControlList) popup + * and various auto-complete functions (such as email recipients, search, and + * mention targets. + * There are two primary output structural formats. One for the ACL widget and + * the other for auto-completion. + * Many of the behaviour variations are triggered on the use of single character keys + * however this functionality has grown in an ad-hoc manner and has gotten quite messy over time. + */ + require_once("include/acl_selectors.php"); require_once("include/group.php"); @@ -10,40 +21,63 @@ class Acl extends \Zotlabs\Web\Controller { function init(){ - // logger('mod_acl: ' . print_r($_REQUEST,true)); - - $start = (x($_REQUEST,'start')?$_REQUEST['start']:0); - $count = (x($_REQUEST,'count')?$_REQUEST['count']:100); - $search = (x($_REQUEST,'search')?$_REQUEST['search']:""); - $type = (x($_REQUEST,'type')?$_REQUEST['type']:""); - $noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false); + // logger('mod_acl: ' . print_r($_REQUEST,true)); - // List of channels whose connections to also suggest, e.g. currently viewed channel or channels mentioned in a post + $start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0); + $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 500); + $search = (x($_REQUEST,'search') ? $_REQUEST['search'] : ''); + $type = (x($_REQUEST,'type') ? $_REQUEST['type'] : ''); + $noforums = (x($_REQUEST,'n') ? $_REQUEST['n'] : false); + + + // $type = + // '' => standard ACL request + // 'g' => Groups only ACL request + // 'c' => Connections only ACL request or editor (textarea) mention request + // $_REQUEST['search'] contains ACL search text. + + + // $type = + // 'm' => autocomplete private mail recipient (checks post_mail permission) + // 'a' => autocomplete connections (mod_connections, mod_poke, mod_sources, mod_photos) + // 'x' => nav search bar autocomplete (match any xchan) + // $_REQUEST['query'] contains autocomplete search text. + + // List of channels whose connections to also suggest, + // e.g. currently viewed channel or channels mentioned in a post + $extra_channels = (x($_REQUEST,'extra_channels') ? $_REQUEST['extra_channels'] : array()); - // For use with jquery.autocomplete for private mail completion + // The different autocomplete libraries use different names for the search text + // parameter. Internaly we'll use $search to represent the search text no matter + // what request variable it was attached to. - if(x($_REQUEST,'query') && strlen($_REQUEST['query'])) { - if(! $type) - $type = 'm'; + if(array_key_exists('query',$_REQUEST)) { $search = $_REQUEST['query']; } - if(!(local_channel())) - if(!($type == 'x' || $type == 'c')) - killme(); + if( (! local_channel()) && (! ($type == 'x' || $type == 'c'))) + killme(); - if ($search != "") { + if($search) { $sql_extra = " AND `name` LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " "; $sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc($search) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") "; - // This horrible mess is needed because position also returns 0 if nothing is found. W/ould be MUCH easier if it instead returned a very large value - // Otherwise we could just order by LEAST(POSITION($search IN xchan_name),POSITION($search IN xchan_addr)). - $order_extra2 = "CASE WHEN xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) ." then POSITION('".dbesc($search)."' IN xchan_name) else position('".dbesc($search)."' IN xchan_addr) end, "; + // This horrible mess is needed because position also returns 0 if nothing is found. + // Would be MUCH easier if it instead returned a very large value + // Otherwise we could just + // order by LEAST(POSITION($search IN xchan_name),POSITION($search IN xchan_addr)). + + $order_extra2 = "CASE WHEN xchan_name LIKE " + . protect_sprintf( "'%" . dbesc($search) . "%'" ) + . " then POSITION('" . dbesc($search) + . "' IN xchan_name) else position('" . dbesc($search) . "' IN xchan_addr) end, "; + $col = ((strpos($search,'@') !== false) ? 'xchan_addr' : 'xchan_name' ); $sql_extra3 = "AND $col like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " "; - } else { + } + else { $sql_extra = $sql_extra2 = $sql_extra3 = ""; } @@ -51,7 +85,7 @@ class Acl extends \Zotlabs\Web\Controller { $groups = array(); $contacts = array(); - if ($type=='' || $type=='g'){ + if($type == '' || $type == 'g') { $r = q("SELECT `groups`.`id`, `groups`.`hash`, `groups`.`gname` FROM `groups`,`group_member` @@ -82,7 +116,7 @@ class Acl extends \Zotlabs\Web\Controller { } } - if ($type=='' || $type=='c') { + if($type == '' || $type == 'c') { $extra_channels_sql = ''; // Only include channels who allow the observer to view their permissions foreach($extra_channels as $channel) { @@ -96,13 +130,40 @@ class Acl extends \Zotlabs\Web\Controller { if(local_channel()) { if($extra_channels_sql != '') $extra_channels_sql = " OR (abook_channel IN ($extra_channels_sql)) and abook_hidden = 0 "; + + $r2 = null; + + $r1 = q("select * from atoken where atoken_uid = %d", + intval(local_channel()) + ); + if($r1) { + require_once('include/security.php'); + $r2 = array(); + foreach($r1 as $rr) { + $x = atoken_xchan($rr); + $r2[] = [ + 'id' => 'a' . $rr['atoken_id'] , + 'hash' => $x['xchan_hash'], + 'name' => $x['xchan_name'], + 'micro' => $x['xchan_photo_m'], + 'url' => z_root(), + 'nick' => $x['xchan_addr'], + 'abook_their_perms' => 0, + 'abook_flags' => 0, + 'abook_self' => 0 + ]; + } + } + $r = q("SELECT abook_id as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, abook_their_perms, abook_flags, abook_self FROM abook left join xchan on abook_xchan = xchan_hash WHERE (abook_channel = %d $extra_channels_sql) AND abook_blocked = 0 and abook_pending = 0 and xchan_deleted = 0 $sql_extra2 order by $order_extra2 xchan_name asc" , intval(local_channel()) ); - + if($r2) + $r = array_merge($r2,$r); + } else { // Visitors $r = q("SELECT xchan_hash as id, xchan_hash as hash, xchan_name as name, xchan_photo_s as micro, xchan_url as url, xchan_addr as nick, 0 as abook_their_perms, 0 as abook_flags, 0 as abook_self @@ -171,7 +232,7 @@ class Acl extends \Zotlabs\Web\Controller { intval(PERMS_W_MAIL) ); } - elseif(($type == 'a') || ($type == 'p')) { + elseif($type == 'a') { $r = q("SELECT abook_id as id, xchan_name as name, xchan_hash as hash, xchan_addr as nick, xchan_photo_s as micro, xchan_network as network, xchan_url as url, xchan_addr as attag , abook_their_perms FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d @@ -296,7 +357,7 @@ class Acl extends \Zotlabs\Web\Controller { $url = $directory['url'] . '/dirsearch'; } - $count = (x($_REQUEST,'count')?$_REQUEST['count']:100); + $count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100); if($url) { $query = $url . '?f=' ; $query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode($search) : ''); diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php index d09388901..c74802ec5 100644 --- a/Zotlabs/Module/Channel.php +++ b/Zotlabs/Module/Channel.php @@ -9,7 +9,6 @@ require_once('include/security.php'); require_once('include/conversation.php'); require_once('include/acl_selectors.php'); require_once('include/permissions.php'); -require_once('include/PermissionDescription.php'); class Channel extends \Zotlabs\Web\Controller { @@ -133,7 +132,7 @@ class Channel extends \Zotlabs\Web\Controller { 'default_location' => (($is_owner) ? \App::$profile['channel_location'] : ''), 'nickname' => \App::$profile['channel_address'], 'lockstate' => (((strlen(\App::$profile['channel_allow_cid'])) || (strlen(\App::$profile['channel_allow_gid'])) || (strlen(\App::$profile['channel_deny_cid'])) || (strlen(\App::$profile['channel_deny_gid']))) ? 'lock' : 'unlock'), - 'acl' => (($is_owner) ? populate_acl($channel_acl,true, \PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''), + 'acl' => (($is_owner) ? populate_acl($channel_acl,true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post') : ''), 'showacl' => (($is_owner) ? 'yes' : ''), 'bang' => '', 'visitor' => (($is_owner || $observer) ? true : false), diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php index 9845c5658..68d84e070 100644 --- a/Zotlabs/Module/Cloud.php +++ b/Zotlabs/Module/Cloud.php @@ -13,6 +13,9 @@ use \Zotlabs\Storage; // composer autoloader for SabreDAV require_once('vendor/autoload.php'); +require_once('include/attach.php'); + + /** * @brief Fires up the SabreDAV server. * diff --git a/Zotlabs/Module/Dav.php b/Zotlabs/Module/Dav.php index 9b4b576c8..ba2394388 100644 --- a/Zotlabs/Module/Dav.php +++ b/Zotlabs/Module/Dav.php @@ -14,6 +14,7 @@ use \Zotlabs\Storage; // composer autoloader for SabreDAV require_once('vendor/autoload.php'); +require_once('include/attach.php'); /** * @brief Fires up the SabreDAV server. diff --git a/Zotlabs/Module/Editwebpage.php b/Zotlabs/Module/Editwebpage.php index 5cd409e1e..be4803a07 100644 --- a/Zotlabs/Module/Editwebpage.php +++ b/Zotlabs/Module/Editwebpage.php @@ -4,7 +4,6 @@ namespace Zotlabs\Module; require_once('include/channel.php'); require_once('include/acl_selectors.php'); require_once('include/conversation.php'); -require_once('include/PermissionDescription.php'); class Editwebpage extends \Zotlabs\Web\Controller { @@ -151,7 +150,7 @@ class Editwebpage extends \Zotlabs\Web\Controller { 'body' => undo_post_tagging($itm[0]['body']), 'post_id' => $post_id, 'visitor' => ($is_owner) ? true : false, - 'acl' => populate_acl($itm[0],false,\PermissionDescription::fromGlobalPermission('view_pages')), + 'acl' => populate_acl($itm[0],false,\Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')), 'showacl' => ($is_owner) ? true : false, 'mimetype' => $mimetype, 'mimeselect' => true, diff --git a/Zotlabs/Module/Embedphotos.php b/Zotlabs/Module/Embedphotos.php index 2cd420664..0dac873c5 100644 --- a/Zotlabs/Module/Embedphotos.php +++ b/Zotlabs/Module/Embedphotos.php @@ -159,7 +159,7 @@ function embedphotos_widget_album($args) { '$upload' => array(t('Upload'), z_root() . '/photos/' . \App::$profile['channel_address'] . '/upload/' . bin2hex($album)), '$order' => false, '$upload_form' => $upload_form, - '$usage' => $usage_message + '$no_fullscreen_btn' => true )); return $o; diff --git a/Zotlabs/Module/Events.php b/Zotlabs/Module/Events.php index 3187cddb4..def5c437b 100644 --- a/Zotlabs/Module/Events.php +++ b/Zotlabs/Module/Events.php @@ -6,7 +6,6 @@ require_once('include/bbcode.php'); require_once('include/datetime.php'); require_once('include/event.php'); require_once('include/items.php'); -require_once('include/PermissionDescription.php'); class Events extends \Zotlabs\Web\Controller { @@ -471,7 +470,7 @@ class Events extends \Zotlabs\Web\Controller { '$permissions' => t('Permission settings'), // populating the acl dialog was a permission description from view_stream because Cal.php, which // displays events, says "since we don't currently have an event permission - use the stream permission" - '$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults), false, \PermissionDescription::fromGlobalPermission('view_stream'))), + '$acl' => (($orig_event['event_xchan']) ? '' : populate_acl(((x($orig_event)) ? $orig_event : $perm_defaults), false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'))), '$submit' => t('Submit'), '$advanced' => t('Advanced Options') diff --git a/Zotlabs/Module/Filestorage.php b/Zotlabs/Module/Filestorage.php index 2861f31be..c3ef22e32 100644 --- a/Zotlabs/Module/Filestorage.php +++ b/Zotlabs/Module/Filestorage.php @@ -6,7 +6,6 @@ namespace Zotlabs\Module; */ require_once('include/attach.php'); -require_once('include/PermissionDescription.php'); /** @@ -134,7 +133,7 @@ class Filestorage extends \Zotlabs\Web\Controller { $cloudpath = get_cloudpath($f) . (intval($f['is_dir']) ? '?f=&davguest=1' : ''); $parentpath = get_parent_cloudpath($channel['channel_id'], $channel['channel_address'], $f['hash']); - $aclselect_e = populate_acl($f, false, \PermissionDescription::fromGlobalPermission('view_storage')); + $aclselect_e = populate_acl($f, false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')); $is_a_dir = (intval($f['is_dir']) ? true : false); $lockstate = (($f['allow_cid'] || $f['allow_gid'] || $f['deny_cid'] || $f['deny_gid']) ? 'lock' : 'unlock'); diff --git a/Zotlabs/Module/Home.php b/Zotlabs/Module/Home.php index f3ba96fdd..79449c3b2 100644 --- a/Zotlabs/Module/Home.php +++ b/Zotlabs/Module/Home.php @@ -28,6 +28,19 @@ class Home extends \Zotlabs\Web\Controller { goaway($dest); } + + if(remote_channel() && (! $splash) && $_SESSION['atoken']) { + $r = q("select * from atoken where atoken_id = %d", + intval($_SESSION['atoken']) + ); + if($r) { + $x = channelx_by_n($r[0]['atoken_uid']); + if($x) { + goaway(z_root() . '/channel/' . $x['channel_address']); + } + } + } + if(get_account_id() && ! $splash) { goaway(z_root() . '/new_channel'); diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php index 58d39da83..235c5528e 100644 --- a/Zotlabs/Module/Item.php +++ b/Zotlabs/Module/Item.php @@ -905,7 +905,7 @@ class Item extends \Zotlabs\Web\Controller { if($r) { xchan_query($r); $sync_item = fetch_post_tags($r); - build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true)))); + build_sync_packet($profile_uid,array('item' => array(encode_item($sync_item[0],true)))); } } if(! $nopush) @@ -1000,7 +1000,7 @@ class Item extends \Zotlabs\Web\Controller { if($r) { xchan_query($r); $sync_item = fetch_post_tags($r); - build_sync_packet($uid,array('item' => array(encode_item($sync_item[0],true)))); + build_sync_packet($profile_uid,array('item' => array(encode_item($sync_item[0],true)))); } } @@ -1014,11 +1014,6 @@ class Item extends \Zotlabs\Web\Controller { logger('post_complete'); - - - - - // figure out how to return, depending on from whence we came if($api_source) diff --git a/Zotlabs/Module/Lockview.php b/Zotlabs/Module/Lockview.php index 4776e1c56..d86a3c1d8 100644 --- a/Zotlabs/Module/Lockview.php +++ b/Zotlabs/Module/Lockview.php @@ -1,17 +1,31 @@ <?php namespace Zotlabs\Module; - +require_once('include/security.php'); class Lockview extends \Zotlabs\Web\Controller { function get() { + + $atokens = array(); + + if(local_channel()) { + $at = q("select * from atoken where atoken_uid = %d", + intval(local_channel()) + ); + if($at) { + foreach($at as $t) { + $atokens[] = atoken_xchan($t); + } + } + } $type = ((argc() > 1) ? argv(1) : 0); if (is_numeric($type)) { $item_id = intval($type); $type='item'; - } else { + } + else { $item_id = ((argc() > 2) ? intval(argv(2)) : 0); } @@ -98,6 +112,13 @@ class Lockview extends \Zotlabs\Web\Controller { if($r) foreach($r as $rr) $l[] = '<li>' . $rr['xchan_name'] . '</li>'; + if($atokens) { + foreach($atokens as $at) { + if(in_array("'" . $at['xchan_hash'] . "'",$allowed_users)) { + $l[] = '<li>' . $at['xchan_name'] . '</li>'; + } + } + } } if(count($deny_groups)) { $r = q("SELECT gname FROM `groups` WHERE hash IN ( " . implode(', ', $deny_groups) . " )"); @@ -110,6 +131,16 @@ class Lockview extends \Zotlabs\Web\Controller { if($r) foreach($r as $rr) $l[] = '<li><strike>' . $rr['xchan_name'] . '</strike></li>'; + + if($atokens) { + foreach($atokens as $at) { + if(in_array("'" . $at['xchan_hash'] . "'",$deny_users)) { + $l[] = '<li><strike>' . $at['xchan_name'] . '</strike></li>'; + } + } + } + + } echo $o . implode($l); diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php index 87ed326e2..3b88cd8d6 100644 --- a/Zotlabs/Module/Network.php +++ b/Zotlabs/Module/Network.php @@ -6,8 +6,6 @@ require_once('include/group.php'); require_once('include/contact_widgets.php'); require_once('include/conversation.php'); require_once('include/acl_selectors.php'); -require_once('include/PermissionDescription.php'); - class Network extends \Zotlabs\Web\Controller { @@ -171,7 +169,7 @@ class Network extends \Zotlabs\Web\Controller { 'default_location' => $channel['channel_location'], 'nickname' => $channel['channel_address'], 'lockstate' => (($private_editing || $channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'), - 'acl' => populate_acl((($private_editing) ? $def_acl : $channel_acl), true, \PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'), + 'acl' => populate_acl((($private_editing) ? $def_acl : $channel_acl), true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'), 'bang' => (($private_editing) ? '!' : ''), 'visitor' => true, 'profile_uid' => local_channel(), diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php index 1633e08ef..1eeab1461 100644 --- a/Zotlabs/Module/Photos.php +++ b/Zotlabs/Module/Photos.php @@ -9,8 +9,6 @@ require_once('include/bbcode.php'); require_once('include/security.php'); require_once('include/attach.php'); require_once('include/text.php'); -require_once('include/PermissionDescription.php'); - class Photos extends \Zotlabs\Web\Controller { @@ -633,7 +631,7 @@ class Photos extends \Zotlabs\Web\Controller { $lockstate = (($acl->is_private()) ? 'lock' : 'unlock'); } - $aclselect = (($_is_owner) ? populate_acl($channel_acl,false, \PermissionDescription::fromGlobalPermission('view_storage')) : ''); + $aclselect = (($_is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : ''); // this is wrong but is to work around an issue with js_upload wherein it chokes if these variables // don't exist. They really should be set to a parseable representation of the channel's default permissions @@ -1023,7 +1021,7 @@ class Photos extends \Zotlabs\Web\Controller { if($can_post) { $album_e = $ph[0]['album']; $caption_e = $ph[0]['description']; - $aclselect_e = (($_is_owner) ? populate_acl($ph[0], true, \PermissionDescription::fromGlobalPermission('view_storage')) : ''); + $aclselect_e = (($_is_owner) ? populate_acl($ph[0], true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_storage')) : ''); $albums = ((array_key_exists('albums', \App::$data)) ? \App::$data['albums'] : photos_albums_list(\App::$data['channel'],\App::$data['observer'])); $_SESSION['album_return'] = bin2hex($ph[0]['album']); diff --git a/Zotlabs/Module/Rpost.php b/Zotlabs/Module/Rpost.php index 1396f2a55..9e3043d10 100644 --- a/Zotlabs/Module/Rpost.php +++ b/Zotlabs/Module/Rpost.php @@ -7,7 +7,6 @@ require_once('include/items.php'); require_once('include/taxonomy.php'); require_once('include/conversation.php'); require_once('include/zot.php'); -require_once('include/PermissionDescription.php'); /** * remote post @@ -116,7 +115,7 @@ class Rpost extends \Zotlabs\Web\Controller { 'default_location' => $channel['channel_location'], 'nickname' => $channel['channel_address'], 'lockstate' => (($acl->is_private()) ? 'lock' : 'unlock'), - 'acl' => populate_acl($channel_acl, true, \PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'), + 'acl' => populate_acl($channel_acl, true, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_stream'), get_post_aclDialogDescription(), 'acl_dialog_post'), 'bang' => '', 'visitor' => true, 'profile_uid' => local_channel(), diff --git a/Zotlabs/Module/Settings.php b/Zotlabs/Module/Settings.php index 875004fae..b1258e049 100644 --- a/Zotlabs/Module/Settings.php +++ b/Zotlabs/Module/Settings.php @@ -2,8 +2,6 @@ namespace Zotlabs\Module; /** @file */ require_once('include/zot.php'); -require_once('include/PermissionDescription.php'); - class Settings extends \Zotlabs\Web\Controller { @@ -30,7 +28,7 @@ class Settings extends \Zotlabs\Web\Controller { } - function post() { + function post() { if(! local_channel()) return; @@ -119,6 +117,60 @@ class Settings extends \Zotlabs\Web\Controller { build_sync_packet(); return; } + + + if((argc() > 1) && (argv(1) == 'tokens')) { + check_form_security_token_redirectOnErr('/settings/tokens', 'settings_tokens'); + $token_errs = 0; + if(array_key_exists('token',$_POST)) { + $atoken_id = (($_POST['atoken_id']) ? intval($_POST['atoken_id']) : 0); + $name = trim(escape_tags($_POST['name'])); + $token = trim($_POST['token']); + if((! $name) || (! $token)) + $token_errs ++; + if(trim($_POST['expires'])) + $expires = datetime_convert(date_default_timezone_get(),'UTC',$_POST['expires']); + else + $expires = NULL_DATE; + $max_atokens = service_class_fetch(local_channel(),'access_tokens'); + if($max_atokens) { + $r = q("select count(atoken_id) as total where atoken_uid = %d", + intval(local_channel()) + ); + if($r && intval($r[0]['total']) >= $max_tokens) { + notice( sprintf( t('This channel is limited to %d tokens'), $max_tokens) . EOL); + return; + } + } + } + if($token_errs) { + notice( t('Name and Password are required.') . EOL); + return; + } + if($atoken_id) { + $r = q("update atoken set atoken_name = '%s', atoken_token = '%s' atoken_expires = '%s' + where atoken_id = %d and atoken_uid = %d", + dbesc($name), + dbesc($token), + dbesc($expires), + intval($atoken_id), + intval($channel['channel_id']) + ); + } + else { + $r = q("insert into atoken ( atoken_aid, atoken_uid, atoken_name, atoken_token, atoken_expires ) + values ( %d, %d, '%s', '%s', '%s' ) ", + intval($channel['channel_account_id']), + intval($channel['channel_id']), + dbesc($name), + dbesc($token), + dbesc($expires) + ); + } + + info( t('Token saved.') . EOL); + return; + } @@ -708,6 +760,53 @@ class Settings extends \Zotlabs\Web\Controller { )); return $o; } + + if((argc() > 1) && (argv(1) === 'tokens')) { + $atoken = null; + if(argc() > 2) { + $id = argv(2); + + $atoken = q("select * from atoken where atoken_id = %d and atoken_uid = %d", + intval($id), + intval(local_channel()) + ); + + if($atoken) + $atoken = $atoken[0]; + + if($atoken && argc() > 3 && argv(3) === 'drop') { + $r = q("delete from atoken where atoken_id = %d", + intval($id) + ); + } + } + $t = q("select * from atoken where atoken_uid = %d", + intval(local_channel()) + ); + + $desc = t('Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access the private content.'); + + $desc2 = t('You may also provide <em>dropbox</em> style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:'); + + $tpl = get_markup_template("settings_tokens.tpl"); + $o .= replace_macros($tpl, array( + '$form_security_token' => get_form_security_token("settings_tokens"), + '$title' => t('Guest Access Tokens'), + '$desc' => $desc, + '$desc2' => $desc2, + '$tokens' => $t, + '$atoken' => $atoken, + '$url1' => z_root() . '/channel/' . $channel['channel_address'], + '$url2' => z_root() . '/photos/' . $channel['channel_address'], + '$name' => array('name', t('Login Name') . ' <span class="required">*</span>', (($atoken) ? $atoken['atoken_name'] : ''),''), + '$token'=> array('token', t('Login Password') . ' <span class="required">*</span>',(($atoken) ? $atoken['atoken_token'] : autoname(8)), ''), + '$expires'=> array('expires', t('Expires (yyyy-mm-dd)'), (($atoken['atoken_expires'] && $atoken['atoken_expires'] != NULL_DATE) ? datetime_convert('UTC',date_default_timezone_get(),$atoken['atoken_expires']) : ''), ''), + '$submit' => t('Submit') + )); + return $o; + } + + @@ -1066,7 +1165,7 @@ class Settings extends \Zotlabs\Web\Controller { '$maxreq' => array('maxreq', t('Maximum Friend Requests/Day:'), intval($channel['channel_max_friend_req']) , t('May reduce spam activity')), '$permissions' => t('Default Post and Publish Permissions'), '$permdesc' => t("\x28click to open/close\x29"), - '$aclselect' => populate_acl($perm_defaults, false, \PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))), + '$aclselect' => populate_acl($perm_defaults, false, \Zotlabs\Lib\PermissionDescription::fromDescription(t('Use my default audience setting for the type of object published'))), '$suggestme' => $suggestme, '$group_select' => $group_select, '$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', get_roles()), diff --git a/Zotlabs/Module/Setup.php b/Zotlabs/Module/Setup.php index c5d0ccc21..802f0c216 100644 --- a/Zotlabs/Module/Setup.php +++ b/Zotlabs/Module/Setup.php @@ -493,7 +493,6 @@ class Setup extends \Zotlabs\Web\Controller { $this->check_add($ck_funcs, t('OpenSSL PHP module'), true, true); $this->check_add($ck_funcs, t('mysqli or postgres PHP module'), true, true); $this->check_add($ck_funcs, t('mb_string PHP module'), true, true); - $this->check_add($ck_funcs, t('mcrypt PHP module'), true, true); $this->check_add($ck_funcs, t('xml PHP module'), true, true); if(function_exists('apache_get_modules')){ @@ -530,10 +529,6 @@ class Setup extends \Zotlabs\Web\Controller { $ck_funcs[4]['status'] = false; $ck_funcs[4]['help'] = t('Error: mb_string PHP module required but not installed.'); } - if(! function_exists('mcrypt_encrypt')) { - $ck_funcs[5]['status'] = false; - $ck_funcs[5]['help'] = t('Error: mcrypt PHP module required but not installed.'); - } if(! extension_loaded('xml')) { $ck_funcs[6]['status'] = false; $ck_funcs[6]['help'] = t('Error: xml PHP module required for DAV but not installed.'); diff --git a/Zotlabs/Module/Webpages.php b/Zotlabs/Module/Webpages.php index bb8d9c6ed..cc0a01cce 100644 --- a/Zotlabs/Module/Webpages.php +++ b/Zotlabs/Module/Webpages.php @@ -4,7 +4,6 @@ namespace Zotlabs\Module; require_once('include/channel.php'); require_once('include/conversation.php'); require_once('include/acl_selectors.php'); -require_once('include/PermissionDescription.php'); class Webpages extends \Zotlabs\Web\Controller { @@ -105,7 +104,7 @@ class Webpages extends \Zotlabs\Web\Controller { 'is_owner' => true, 'nickname' => \App::$profile['channel_address'], 'lockstate' => (($channel['channel_allow_cid'] || $channel['channel_allow_gid'] || $channel['channel_deny_cid'] || $channel['channel_deny_gid']) ? 'lock' : 'unlock'), - 'acl' => (($is_owner) ? populate_acl($channel_acl,false, \PermissionDescription::fromGlobalPermission('view_pages')) : ''), + 'acl' => (($is_owner) ? populate_acl($channel_acl,false, \Zotlabs\Lib\PermissionDescription::fromGlobalPermission('view_pages')) : ''), 'showacl' => (($is_owner) ? true : false), 'visitor' => true, 'hide_location' => true, diff --git a/Zotlabs/Storage/BasicAuth.php b/Zotlabs/Storage/BasicAuth.php index 60fc2c988..9c73b47b9 100644 --- a/Zotlabs/Storage/BasicAuth.php +++ b/Zotlabs/Storage/BasicAuth.php @@ -231,7 +231,7 @@ class BasicAuth extends DAV\Auth\Backend\AbstractBasic { } /** - * @brief Sets the timezone from the channel in RedBasicAuth. + * @brief Sets the timezone from the channel in BasicAuth. * * Set in mod/cloud.php if the channel has a timezone set. * diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php index b524b3cab..6242d5274 100644 --- a/Zotlabs/Storage/Directory.php +++ b/Zotlabs/Storage/Directory.php @@ -206,7 +206,6 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota { throw new DAV\Exception\Forbidden('Permission denied.'); } - require_once('include/attach.php'); $mimetype = z_mime_content_type($name); diff --git a/Zotlabs/Storage/File.php b/Zotlabs/Storage/File.php index ecd15cc55..5a70a99f1 100644 --- a/Zotlabs/Storage/File.php +++ b/Zotlabs/Storage/File.php @@ -337,6 +337,10 @@ class File extends DAV\Node implements DAV\IFile { } } + if(get_pconfig($this->auth->owner_id,'system','os_delete_prohibit') && \App::$module == 'dav') { + throw new DAV\Exception\Forbidden('Permission denied.'); + } + attach_delete($this->auth->owner_id, $this->data['hash']); $ch = channelx_by_n($this->auth->owner_id); diff --git a/Zotlabs/Web/SessionHandler.php b/Zotlabs/Web/SessionHandler.php index 6e7333b4b..93b27a7e8 100644 --- a/Zotlabs/Web/SessionHandler.php +++ b/Zotlabs/Web/SessionHandler.php @@ -24,7 +24,8 @@ class SessionHandler implements \SessionHandlerInterface { return $r[0]['sess_data']; } else { - q("INSERT INTO `session` (sid, expire) values ('%s', '%s')", + q("INSERT INTO `session` (sess_data, sid, expire) values ('%s', '%s', '%s')", + dbesc(''), dbesc($id), dbesc(time() + 300) ); diff --git a/Zotlabs/Web/WebServer.php b/Zotlabs/Web/WebServer.php index 88ab4995b..d4f3cb9ea 100644 --- a/Zotlabs/Web/WebServer.php +++ b/Zotlabs/Web/WebServer.php @@ -59,7 +59,14 @@ class WebServer { \App::$query_string = strip_zids(\App::$query_string); if(! local_channel()) { $_SESSION['my_address'] = $_GET['zid']; - zid_init($a); + zid_init(); + } + } + + if((x($_GET,'zat')) && (! \App::$install)) { + \App::$query_string = strip_zats(\App::$query_string); + if(! local_channel()) { + zat_init(); } } @@ -44,10 +44,10 @@ require_once('include/account.php'); define ( 'PLATFORM_NAME', 'hubzilla' ); -define ( 'STD_VERSION', '1.9' ); +define ( 'STD_VERSION', '1.11' ); define ( 'ZOT_REVISION', '1.1' ); -define ( 'DB_UPDATE_VERSION', 1179 ); +define ( 'DB_UPDATE_VERSION', 1180 ); /** @@ -1703,7 +1703,7 @@ function login($register = false, $form_id = 'main-login', $hiddens=false) { '$logout' => t('Logout'), '$login' => t('Login'), '$form_id' => $form_id, - '$lname' => array('username', t('Email') , '', ''), + '$lname' => array('username', t('Login/Email') , '', ''), '$lpassword' => array('password', t('Password'), '', ''), '$remember_me' => array('remember_me', t('Remember me'), '', '',array(t('No'),t('Yes'))), '$hiddens' => $hiddens, @@ -2457,24 +2457,16 @@ function check_cron_broken() { set_config('system','lastcroncheck',datetime_convert()); return; } - $t = get_config('system','lastcroncheck'); - if($t === false) { - // This is serious. Config storage isn't working. - // We just set lastcroncheck. The system is horked. - // However don't add insult to injury by sending an email - // to the admin every time a page is accessed. - // just quietly - return; - } if($t > datetime_convert('UTC','UTC','now - 3 days')) { // Wait for 3 days before we do anything so as not to swamp the admin with messages return; } + set_config('system','lastcroncheck',datetime_convert()); + if(($d) && ($d > datetime_convert('UTC','UTC','now - 3 days'))) { // Scheduled tasks have run successfully in the last 3 days. - set_config('system','lastcroncheck',datetime_convert()); return; } diff --git a/doc/hook/change_channel.bb b/doc/hook/change_channel.bb new file mode 100644 index 000000000..4514b9265 --- /dev/null +++ b/doc/hook/change_channel.bb @@ -0,0 +1,11 @@ +[h2]change_channel[/h2] + +Called when entering a logged in state in a channel context (as opposed to an account context). +The hook array provides two arguments, 'channel_id' and 'chanx'. 'chanx' is a union of the channel +and xchan records for the now active channel. + +Use this to capture what would traditionally be known as 'login events'. In this platform, login is +a separate authentication activity and doesn't necessarily require "connecting to an identity", which +is what the change_channel activity represents. + + diff --git a/doc/hooklist.bb b/doc/hooklist.bb index bb1bffcf0..66ff1cf71 100644 --- a/doc/hooklist.bb +++ b/doc/hooklist.bb @@ -73,6 +73,9 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the [zrl=[baseurl]/help/hook/bb_translate_video]bb_translate_video[/zrl] Called when extracting embedded services from bbcode video elements (rarely used) +[zrl=[baseurl]/help/hook/change_channel]change_channel[/zrl] + Called when logging in to a channel (either during login or afterward through the channel manager) + [zrl=[baseurl]/help/hook/channel_remove]channel_remove[/zrl] Called when removing a channel diff --git a/doc/service_classes.bb b/doc/service_classes.bb index e5d4ecfad..4dead5d29 100644 --- a/doc/service_classes.bb +++ b/doc/service_classes.bb @@ -35,3 +35,4 @@ attach_upload_limit - maximum file upload storage (bytes) minimum_feedcheck_minutes - lowest setting allowed for polling rss feeds chatrooms - maximum chatrooms chatters_inroom - maximum chatters per room +access_tokens - maximum number of Guest Access Tokens per channel
\ No newline at end of file diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 89d054e3b..148c67a6c 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -7,8 +7,6 @@ * @package acl_selectors */ -require_once("include/PermissionDescription.php"); - function group_select($selname,$selclass,$preselected = false,$size = 4) { $o = ''; @@ -231,7 +229,7 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti if(! $emptyACL_description) { $showall_caption = t('Visible to your default audience'); - } else if (is_a($emptyACL_description, 'PermissionDescription')) { + } else if (is_a($emptyACL_description, '\\Zotlabs\\Lib\\PermissionDescription')) { $showall_caption = $emptyACL_description->get_permission_description(); $showall_origin = (($role === 'custom') ? $emptyACL_description->get_permission_origin_description() : ''); $showall_icon = $emptyACL_description->get_permission_icon(); diff --git a/include/auth.php b/include/auth.php index 01fcf0094..79d04c728 100644 --- a/include/auth.php +++ b/include/auth.php @@ -36,22 +36,33 @@ function account_verify_password($email, $pass) { // you have to verify the email and then go through the account approval workflow before // letting them login. - if(($email_verify) && ($register_policy == REGISTER_OPEN) && ($record['account_flags'] & ACCOUNT_UNVERIFIED)) - return null; + // @bug there is no record here + //if(($email_verify) && ($register_policy == REGISTER_OPEN) && ($record['account_flags'] & ACCOUNT_UNVERIFIED)) + // return null; $r = q("select * from account where account_email = '%s'", dbesc($email) ); - if(! ($r && count($r))) - return null; - - foreach($r as $record) { - if(($record['account_flags'] == ACCOUNT_OK) - && (hash('whirlpool', $record['account_salt'] . $pass) === $record['account_password'])) { - logger('password verified for ' . $email); - return $record; + if($r) { + + foreach($r as $record) { + if(($record['account_flags'] == ACCOUNT_OK) + && (hash('whirlpool', $record['account_salt'] . $pass) === $record['account_password'])) { + logger('password verified for ' . $email); + return $record; + } } } + + $x = q("select * from atoken where atoken_name = '%s' and atoken_token = '%s' limit 1", + dbesc($email), + dbesc($pass) + ); + if($x) { + atoken_login($x[0]); + return $x[0]; + } + $error = 'password failed for ' . $email; logger($error); @@ -123,10 +134,18 @@ if((isset($_SESSION)) && (x($_SESSION, 'authenticated')) && authenticate_success($x[0], true, true); } } - - $r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where xchan_hash = '%s' limit 1", - dbesc($_SESSION['visitor_id']) - ); + if(array_key_exists('atoken',$_SESSION)) { + $y = q("select * from atoken where atoken_id = %d limit 1", + intval($_SESSION['atoken']) + ); + if($y) + $r = array(atoken_xchan($y[0])); + } + else { + $r = q("select * from xchan left join hubloc on xchan_hash = hubloc_hash where xchan_hash = '%s' limit 1", + dbesc($_SESSION['visitor_id']) + ); + } if($r) { App::set_observer($r[0]); } @@ -199,20 +218,27 @@ else { call_hooks('authenticate', $addon_auth); + $atoken = false; + if(($addon_auth['authenticated']) && (count($addon_auth['user_record']))) { $record = $addon_auth['user_record']; } else { - $record = App::$account = account_verify_password($_POST['username'], $_POST['password']); - - if(App::$account) { - $_SESSION['account_id'] = App::$account['account_id']; - } - else { - notice( t('Failed authentication') . EOL); + $x = account_verify_password($_POST['username'], $_POST['password']); + if(array_key_exists('atoken',$x)) + $atoken = true; + if(! $atoken) { + $record = App::$account = $x; + + if(App::$account) { + $_SESSION['account_id'] = App::$account['account_id']; + } + else { + notice( t('Failed authentication') . EOL); + } + + logger('authenticate: ' . print_r(App::$account, true), LOGGER_ALL); } - - logger('authenticate: ' . print_r(App::$account, true), LOGGER_ALL); } if((! $record) || (! count($record))) { @@ -252,7 +278,8 @@ else { // if we haven't failed up this point, log them in. $_SESSION['last_login_date'] = datetime_convert(); - authenticate_success($record, true, true); + if(! $atoken) + authenticate_success($record, true, true); } } @@ -270,6 +297,7 @@ else { * @return int|bool * Return channel_id from pconfig or false. */ + function match_openid($authid) { // Query the uid/channel_id from pconfig for a given value. $r = q("SELECT uid FROM pconfig WHERE cat = 'system' AND k = 'openid' AND v = '%s' LIMIT 1", diff --git a/include/channel.php b/include/channel.php index 95506ed78..1a6508803 100644 --- a/include/channel.php +++ b/include/channel.php @@ -1310,13 +1310,12 @@ function get_my_address() { * If somebody arrives at our site using a zid, add their xchan to our DB if we don't have it already. * And if they aren't already authenticated here, attempt reverse magic auth. * - * @param App &$a * * @hooks 'zid_init' * string 'zid' - their zid * string 'url' - the destination url */ -function zid_init(&$a) { +function zid_init() { $tmp_str = get_my_address(); if(validate_email($tmp_str)) { Zotlabs\Daemon\Master::Summon(array('Gprobe',bin2hex($tmp_str))); @@ -1343,6 +1342,28 @@ function zid_init(&$a) { } /** + * @brief + * + * If somebody arrives at our site using a zat, authenticate them + * + */ + +function zat_init() { + if(local_channel() || remote_channel()) + return; + + $r = q("select * from atoken where atoken_token = '%s' limit 1", + dbesc($_REQUEST['zat']) + ); + if($r) { + atoken_login($r[0]); + } + +} + + + +/** * @brief Adds a zid parameter to a url. * * @param string $s diff --git a/include/config.php b/include/config.php index ece22793f..08810e298 100644 --- a/include/config.php +++ b/include/config.php @@ -98,8 +98,8 @@ function del_aconfig($account_id, $family, $key) { } -function load_abconfig($chan,$xhash) { - Zlib\AbConfig::Load($chan,$xhash); +function load_abconfig($chan, $xhash, $family = '') { + return Zlib\AbConfig::Load($chan,$xhash,$family); } function get_abconfig($chan,$xhash,$family,$key) { diff --git a/include/items.php b/include/items.php index 72f0896ad..373090d41 100755 --- a/include/items.php +++ b/include/items.php @@ -4154,32 +4154,19 @@ function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remo } if($page_type) { - // store page info as an alternate message_id so we can access it via // https://sitename/page/$channelname/$pagetitle // if no pagetitle was given or it couldn't be transliterated into a url, use the first // sixteen bytes of the mid - which makes the link portable and not quite as daunting // as the entire mid. If it were the post_id the link would be less portable. - $r = q("select * from item_id where iid = %d and uid = %d and service = '%s' limit 1", + \Zotlabs\Lib\IConfig::Set( intval($post_id), - intval($channel['channel_id']), - dbesc($page_type) + 'system', + $page_type, + ($pagetitle) ? $pagetitle : substr($mid,0,16), + false ); - if($r) { - q("update item_id set sid = '%s' where id = %d", - dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)), - intval($r[0]['id']) - ); - } - else { - q("insert into item_id ( iid, uid, sid, service ) values ( %d, %d, '%s','%s' )", - intval($post_id), - intval($channel['channel_id']), - dbesc(($pagetitle) ? $pagetitle : substr($mid,0,16)), - dbesc($page_type) - ); - } } } diff --git a/include/plugin.php b/include/plugin.php index 6dfda1cc9..cb206d944 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -626,6 +626,7 @@ function head_get_js() { $str = ''; if(App::$js_sources) { + ksort(App::$js_sources,SORT_NUMERIC); foreach(App::$js_sources as $sources) { if(count($sources)) { foreach($sources as $source) { diff --git a/include/security.php b/include/security.php index 38045c8a9..e345636e7 100644 --- a/include/security.php +++ b/include/security.php @@ -82,6 +82,44 @@ function authenticate_success($user_record, $login_initial = false, $interactive /* else just return */ } +function atoken_login($atoken) { + if(! $atoken) + return false; + + $xchan = atoken_xchan($atoken); + + $_SESSION['authenticated'] = 1; + $_SESSION['visitor_id'] = $xchan['xchan_hash']; + $_SESSION['atoken'] = $atoken['atoken_id']; + + \App::set_observer($xchan); + + return [ 'atoken' => true ]; +} + + +function atoken_xchan($atoken) { + + $c = channelx_by_n($atoken['atoken_uid']); + if($c) { + return [ + 'xchan_hash' => substr($c['channel_hash'],0,16) . '.' . $atoken['atoken_name'], + 'xchan_name' => $atoken['atoken_name'], + 'xchan_addr' => t('guest:') . $atoken['atoken_name'] . '@' . \App::get_hostname(), + 'xchan_network' => 'unknown', + 'xchan_hidden' => 1, + 'xchan_photo_mimetype' => 'image/jpeg', + 'xchan_photo_l' => get_default_profile_photo(300), + 'xchan_photo_m' => get_default_profile_photo(80), + 'xchan_photo_s' => get_default_profile_photo(48) + + ]; + } + +} + + + /** * @brief Change to another channel with current logged-in account. * @@ -125,13 +163,17 @@ function change_channel($change_channel) { ); if($x) { $_SESSION['my_url'] = $x[0]['xchan_url']; - $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . substr(z_root(), strpos(z_root(), '://') + 3); + $_SESSION['my_address'] = $r[0]['channel_address'] . '@' . App::get_hostname(); App::set_observer($x[0]); App::set_perms(get_all_perms(local_channel(), $hash)); } if(! is_dir('store/' . $r[0]['channel_address'])) @os_mkdir('store/' . $r[0]['channel_address'], STORAGE_DEFAULT_PERMISSIONS,true); + + $arr = [ 'channel_id' => $change_channel, 'chanx' => $ret ]; + call_hooks('change_channel', $arr); + } return $ret; diff --git a/include/text.php b/include/text.php index 986e3b56c..d4d151f2e 100644 --- a/include/text.php +++ b/include/text.php @@ -687,7 +687,7 @@ function get_tags($s) { // ignore anything in a code block - $s = preg_replace('/\[code\](.*?)\[\/code\]/sm','',$s); + $s = preg_replace('/\[code(.*?)\](.*?)\[\/code\]/sm','',$s); // ignore anything in [style= ] $s = preg_replace('/\[style=(.*?)\]/sm','',$s); @@ -774,6 +774,10 @@ function strip_zids($s) { return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s); } +function strip_zats($s) { + return preg_replace('/[\?&]zat=(.*?)(&|$)/ism','$2',$s); +} + // quick and dirty quoted_printable encoding diff --git a/include/widgets.php b/include/widgets.php index a4a6fb55a..da73657f5 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -296,7 +296,7 @@ function widget_filer($arr) { $selected = ((x($_REQUEST,'file')) ? $_REQUEST['file'] : ''); $terms = array(); - $r = q("select distinct(term) from term where uid = %d and ttype = %d order by term asc", + $r = q("select distinct term from term where uid = %d and ttype = %d order by term asc", intval(local_channel()), intval(TERM_FILE) ); @@ -609,6 +609,15 @@ function widget_settings_menu($arr) { 'selected' => ((argv(1) === 'oauth') ? 'active' : ''), ); + if(! UNO) { + $tabs[] = array( + 'label' => t('Guest Access Tokens'), + 'url' => z_root() . '/settings/tokens', + 'selected' => ((argv(1) === 'tokens') ? 'active' : ''), + ); + } + + if($role === false || $role === 'custom') { $tabs[] = array( 'label' => t('Connection Default Permissions'), diff --git a/include/zot.php b/include/zot.php index 6dd789181..45347ef22 100644 --- a/include/zot.php +++ b/include/zot.php @@ -3014,7 +3014,12 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { if($x['hubloc_host'] == App::get_hostname()) continue; - $synchubs[] = $x; + $y = q("select site_dead from site where site_url = '%s' limit 1", + dbesc($x['hubloc_url']) + ); + + if((! $y) || ($y[0]['site_dead'] == 0)) + $synchubs[] = $x; } if(! $synchubs) diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index d2a5ac85e..5335c231e 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -1,7 +1,7 @@ CREATE TABLE IF NOT EXISTS `abconfig` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `chan` int(10) unsigned NOT NULL DEFAULT '', + `chan` int(10) unsigned NOT NULL DEFAULT '0', `xchan` char(255) NOT NULL DEFAULT '', `cat` char(255) NOT NULL DEFAULT '', `k` char(255) NOT NULL DEFAULT '', @@ -141,6 +141,23 @@ CREATE TABLE IF NOT EXISTS `app` ( KEY `app_edited` (`app_edited`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `atoken` ( + `atoken_id` int(11) NOT NULL AUTO_INCREMENT, + `atoken_aid` int(11) NOT NULL DEFAULT 0, + `atoken_uid` int(11) NOT NULL DEFAULT 0, + `atoken_name` char(255) NOT NULL DEFAULT '', + `atoken_token` char(255) NOT NULL DEFAULT '', + `atoken_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`atoken_id`), + KEY `atoken_aid` (`atoken_aid`), + KEY `atoken_uid` (`atoken_uid`), + KEY `atoken_uid_2` (`atoken_uid`), + KEY `atoken_name` (`atoken_name`), + KEY `atoken_token` (`atoken_token`), + KEY `atoken_expires` (`atoken_expires`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + CREATE TABLE IF NOT EXISTS `attach` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `aid` int(10) unsigned NOT NULL DEFAULT '0', diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 378308233..1a770d4ff 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -1,6 +1,6 @@ CREATE TABLE "abconfig" ( "id" serial NOT NULL, - "chan" bigint NOT NULL, + "chan" bigint NOT NULL DEFAULT '0', "xchan" text NOT NULL, "cat" text NOT NULL, "k" text NOT NULL, @@ -137,6 +137,21 @@ create index "app_created" on app ("app_created"); create index "app_edited" on app ("app_edited"); create index "app_deleted" on app ("app_deleted"); create index "app_system" on app ("app_system"); + +CREATE TABLE "atoken" ( + "atoken_id" serial NOT NULL, + "atoken_aid" bigint NOT NULL DEFAULT 0, + "atoken_uid" bigint NOT NULL DEFAULT 0, + "atoken_name" varchar(255) NOT NULL DEFAULT '', + "atoken_token" varchar(255) NOT NULL DEFAULT '', + "atoken_expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', + PRIMARY KEY ("atoken_id")); +create index atoken_aid on atoken (atoken_aid); +create index atoken_uid on atoken (atoken_uid); +create index atoken_name on atoken (atoken_name); +create index atoken_token on atoken (atoken_token); +create index atoken_expires on atoken (atoken_expires); + CREATE TABLE "attach" ( "id" serial NOT NULL, "aid" bigint NOT NULL DEFAULT '0', diff --git a/install/update.php b/install/update.php index 3cb5010eb..f2d97430b 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ <?php -define( 'UPDATE_VERSION' , 1179 ); +define( 'UPDATE_VERSION' , 1180 ); /** * @@ -2360,4 +2360,47 @@ function update_r1178() { if($r1) return UPDATE_SUCCESS; return UPDATE_FAILED; +} + +function update_r1179() { + + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + $r1 = q("CREATE TABLE atoken ( + atoken_id serial NOT NULL, + atoken_aid bigint NOT NULL DEFAULT 0, + atoken_uid bigint NOT NULL DEFAULT 0, + atoken_name varchar(255) NOT NULL DEFAULT '', + atoken_token varchar(255) NOT NULL DEFAULT '', + atoken_expires timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', + PRIMARY KEY (atoken_id)) "); + $r2 = q("create index atoken_aid on atoken (atoken_aid)"); + $r3 = q("create index atoken_uid on atoken (atoken_uid)"); + $r4 = q("create index atoken_name on atoken (atoken_name)"); + $r5 = q("create index atoken_token on atoken (atoken_token)"); + $r6 = q("create index atoken_expires on atoken (atoken_expires)"); + + $r = $r1 && $r2 && $r3 && $r4 && $r5 && $r6; + + } + else { + $r = q("CREATE TABLE IF NOT EXISTS `atoken` ( + `atoken_id` int(11) NOT NULL AUTO_INCREMENT, + `atoken_aid` int(11) NOT NULL DEFAULT 0, + `atoken_uid` int(11) NOT NULL DEFAULT 0, + `atoken_name` char(255) NOT NULL DEFAULT '', + `atoken_token` char(255) NOT NULL DEFAULT '', + `atoken_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (`atoken_id`), + KEY `atoken_aid` (`atoken_aid`), + KEY `atoken_uid` (`atoken_uid`), + KEY `atoken_name` (`atoken_name`), + KEY `atoken_token` (`atoken_token`), + KEY `atoken_expires` (`atoken_expires`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 "); + } + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; + + }
\ No newline at end of file diff --git a/util/hmessages.po b/util/hmessages.po index 8ab5226e5..b076aadf8 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-07-08 00:02-0700\n" +"POT-Creation-Date: 2016-07-15 00:02-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -21,7 +21,7 @@ msgstr "" msgid "parent" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2609 +#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2613 msgid "Collection" msgstr "" @@ -45,17 +45,17 @@ msgstr "" msgid "Schedule Outbox" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:798 -#: ../../Zotlabs/Module/Photos.php:1243 +#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:796 +#: ../../Zotlabs/Module/Photos.php:1241 #: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490 -#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1035 -#: ../../include/widgets.php:1563 +#: ../../Zotlabs/Lib/Apps.php:565 ../../include/widgets.php:1594 +#: ../../include/conversation.php:1035 msgid "Unknown" msgstr "" #: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85 -#: ../../Zotlabs/Lib/Apps.php:217 ../../include/conversation.php:1654 -#: ../../include/nav.php:93 +#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:93 +#: ../../include/conversation.php:1654 msgid "Files" msgstr "" @@ -70,21 +70,21 @@ msgstr "" #: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:306 #: ../../Zotlabs/Module/Layouts.php:184 ../../Zotlabs/Module/Menu.php:118 #: ../../Zotlabs/Module/New_channel.php:142 -#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Webpages.php:194 +#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Webpages.php:193 msgid "Create" msgstr "" #: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:308 #: ../../Zotlabs/Module/Cover_photo.php:357 -#: ../../Zotlabs/Module/Photos.php:825 ../../Zotlabs/Module/Photos.php:1364 +#: ../../Zotlabs/Module/Photos.php:823 ../../Zotlabs/Module/Photos.php:1362 #: ../../Zotlabs/Module/Profile_photo.php:390 -#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1576 +#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1607 msgid "Upload" msgstr "" #: ../../Zotlabs/Storage/Browser.php:235 ../../Zotlabs/Module/Chat.php:247 -#: ../../Zotlabs/Module/Admin.php:1223 ../../Zotlabs/Module/Settings.php:592 -#: ../../Zotlabs/Module/Settings.php:618 +#: ../../Zotlabs/Module/Admin.php:1223 ../../Zotlabs/Module/Settings.php:627 +#: ../../Zotlabs/Module/Settings.php:653 #: ../../Zotlabs/Module/Sharedwithme.php:99 msgid "Name" msgstr "" @@ -94,7 +94,7 @@ msgid "Type" msgstr "" #: ../../Zotlabs/Storage/Browser.php:237 -#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1320 +#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1324 msgid "Size" msgstr "" @@ -107,27 +107,27 @@ msgstr "" #: ../../Zotlabs/Module/Connections.php:290 #: ../../Zotlabs/Module/Connections.php:310 #: ../../Zotlabs/Module/Editlayout.php:114 -#: ../../Zotlabs/Module/Editwebpage.php:146 +#: ../../Zotlabs/Module/Editwebpage.php:145 #: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Menu.php:112 #: ../../Zotlabs/Module/Admin.php:2113 ../../Zotlabs/Module/Blocks.php:160 #: ../../Zotlabs/Module/Editblock.php:109 -#: ../../Zotlabs/Module/Settings.php:652 ../../Zotlabs/Module/Thing.php:260 -#: ../../Zotlabs/Module/Webpages.php:195 ../../Zotlabs/Lib/Apps.php:341 +#: ../../Zotlabs/Module/Settings.php:687 ../../Zotlabs/Module/Thing.php:260 +#: ../../Zotlabs/Module/Webpages.php:194 ../../Zotlabs/Lib/Apps.php:341 #: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/page_widgets.php:9 -#: ../../include/page_widgets.php:39 ../../include/menu.php:108 -#: ../../include/channel.php:961 ../../include/channel.php:965 +#: ../../include/page_widgets.php:39 ../../include/channel.php:961 +#: ../../include/channel.php:965 ../../include/menu.php:108 msgid "Edit" msgstr "" #: ../../Zotlabs/Storage/Browser.php:241 ../../Zotlabs/Module/Connedit.php:578 #: ../../Zotlabs/Module/Connections.php:263 #: ../../Zotlabs/Module/Editlayout.php:137 -#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177 -#: ../../Zotlabs/Module/Photos.php:1173 ../../Zotlabs/Module/Admin.php:1039 +#: ../../Zotlabs/Module/Editwebpage.php:169 ../../Zotlabs/Module/Group.php:177 +#: ../../Zotlabs/Module/Photos.php:1171 ../../Zotlabs/Module/Admin.php:1039 #: ../../Zotlabs/Module/Admin.php:1213 ../../Zotlabs/Module/Admin.php:2114 #: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editblock.php:134 -#: ../../Zotlabs/Module/Settings.php:653 ../../Zotlabs/Module/Thing.php:261 -#: ../../Zotlabs/Module/Webpages.php:197 ../../Zotlabs/Lib/Apps.php:342 +#: ../../Zotlabs/Module/Settings.php:688 ../../Zotlabs/Module/Thing.php:261 +#: ../../Zotlabs/Module/Webpages.php:196 ../../Zotlabs/Lib/Apps.php:342 #: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660 msgid "Delete" msgstr "" @@ -154,7 +154,7 @@ msgstr "" msgid "Upload file" msgstr "" -#: ../../Zotlabs/Web/WebServer.php:120 ../../Zotlabs/Module/Dreport.php:10 +#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10 #: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72 #: ../../Zotlabs/Module/Like.php:284 ../../Zotlabs/Module/Import_items.php:114 #: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62 @@ -162,10 +162,10 @@ msgstr "" msgid "Permission denied" msgstr "" -#: ../../Zotlabs/Web/WebServer.php:121 ../../Zotlabs/Web/Router.php:65 +#: ../../Zotlabs/Web/WebServer.php:128 ../../Zotlabs/Web/Router.php:65 #: ../../Zotlabs/Module/Achievements.php:34 #: ../../Zotlabs/Module/Connedit.php:366 ../../Zotlabs/Module/Id.php:76 -#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Events.php:265 +#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Events.php:264 #: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Editpost.php:17 #: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91 #: ../../Zotlabs/Module/Connections.php:33 @@ -173,26 +173,26 @@ msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Chat.php:100 #: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Editlayout.php:67 #: ../../Zotlabs/Module/Editlayout.php:90 -#: ../../Zotlabs/Module/Editwebpage.php:69 -#: ../../Zotlabs/Module/Editwebpage.php:90 -#: ../../Zotlabs/Module/Editwebpage.php:105 -#: ../../Zotlabs/Module/Editwebpage.php:127 ../../Zotlabs/Module/Group.php:13 +#: ../../Zotlabs/Module/Editwebpage.php:68 +#: ../../Zotlabs/Module/Editwebpage.php:89 +#: ../../Zotlabs/Module/Editwebpage.php:104 +#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Group.php:13 #: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Pdledit.php:26 -#: ../../Zotlabs/Module/Filestorage.php:24 -#: ../../Zotlabs/Module/Filestorage.php:79 -#: ../../Zotlabs/Module/Filestorage.php:94 -#: ../../Zotlabs/Module/Filestorage.php:121 +#: ../../Zotlabs/Module/Filestorage.php:23 +#: ../../Zotlabs/Module/Filestorage.php:78 +#: ../../Zotlabs/Module/Filestorage.php:93 +#: ../../Zotlabs/Module/Filestorage.php:120 #: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 #: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Like.php:181 #: ../../Zotlabs/Module/Profiles.php:203 ../../Zotlabs/Module/Profiles.php:601 #: ../../Zotlabs/Module/Item.php:211 ../../Zotlabs/Module/Item.php:219 -#: ../../Zotlabs/Module/Item.php:1072 ../../Zotlabs/Module/Photos.php:75 +#: ../../Zotlabs/Module/Item.php:1067 ../../Zotlabs/Module/Photos.php:73 #: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:91 #: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Mail.php:129 #: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Menu.php:78 #: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Mood.php:116 -#: ../../Zotlabs/Module/Network.php:17 ../../Zotlabs/Module/Channel.php:105 -#: ../../Zotlabs/Module/Channel.php:226 ../../Zotlabs/Module/Channel.php:267 +#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Channel.php:104 +#: ../../Zotlabs/Module/Channel.php:225 ../../Zotlabs/Module/Channel.php:266 #: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/New_channel.php:77 #: ../../Zotlabs/Module/New_channel.php:104 #: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137 @@ -205,22 +205,22 @@ msgstr "" #: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Register.php:77 #: ../../Zotlabs/Module/Regmod.php:21 #: ../../Zotlabs/Module/Service_limits.php:11 -#: ../../Zotlabs/Module/Settings.php:572 ../../Zotlabs/Module/Setup.php:215 +#: ../../Zotlabs/Module/Settings.php:607 ../../Zotlabs/Module/Setup.php:215 #: ../../Zotlabs/Module/Sharedwithme.php:11 ../../Zotlabs/Module/Thing.php:274 #: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:331 #: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30 -#: ../../Zotlabs/Module/Webpages.php:74 +#: ../../Zotlabs/Module/Webpages.php:73 #: ../../Zotlabs/Module/Viewconnections.php:28 #: ../../Zotlabs/Module/Viewconnections.php:33 #: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Api.php:13 #: ../../Zotlabs/Module/Api.php:18 ../../Zotlabs/Lib/Chatroom.php:137 -#: ../../include/photos.php:27 ../../include/attach.php:141 -#: ../../include/attach.php:189 ../../include/attach.php:252 -#: ../../include/attach.php:266 ../../include/attach.php:273 -#: ../../include/attach.php:338 ../../include/attach.php:352 -#: ../../include/attach.php:359 ../../include/attach.php:439 -#: ../../include/attach.php:901 ../../include/attach.php:972 -#: ../../include/attach.php:1124 ../../include/items.php:3449 +#: ../../include/photos.php:27 ../../include/items.php:3449 +#: ../../include/attach.php:141 ../../include/attach.php:189 +#: ../../include/attach.php:252 ../../include/attach.php:266 +#: ../../include/attach.php:273 ../../include/attach.php:338 +#: ../../include/attach.php:352 ../../include/attach.php:359 +#: ../../include/attach.php:439 ../../include/attach.php:901 +#: ../../include/attach.php:972 ../../include/attach.php:1124 msgid "Permission denied." msgstr "" @@ -248,10 +248,10 @@ msgstr "" #: ../../Zotlabs/Module/Achievements.php:15 #: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31 -#: ../../Zotlabs/Module/Editwebpage.php:33 ../../Zotlabs/Module/Hcard.php:12 -#: ../../Zotlabs/Module/Filestorage.php:60 ../../Zotlabs/Module/Layouts.php:31 +#: ../../Zotlabs/Module/Editwebpage.php:32 ../../Zotlabs/Module/Hcard.php:12 +#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Layouts.php:31 #: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33 -#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Webpages.php:34 +#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Webpages.php:33 #: ../../include/channel.php:861 msgid "Requested profile is not available." msgstr "" @@ -289,32 +289,32 @@ msgid "is now connected to" msgstr "" #: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Connedit.php:660 -#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:460 -#: ../../Zotlabs/Module/Events.php:469 -#: ../../Zotlabs/Module/Filestorage.php:157 -#: ../../Zotlabs/Module/Filestorage.php:165 -#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:666 +#: ../../Zotlabs/Module/Events.php:458 ../../Zotlabs/Module/Events.php:459 +#: ../../Zotlabs/Module/Events.php:468 +#: ../../Zotlabs/Module/Filestorage.php:156 +#: ../../Zotlabs/Module/Filestorage.php:164 +#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:664 #: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 #: ../../Zotlabs/Module/Mitem.php:158 ../../Zotlabs/Module/Mitem.php:159 #: ../../Zotlabs/Module/Mitem.php:232 ../../Zotlabs/Module/Mitem.php:233 #: ../../Zotlabs/Module/Admin.php:459 ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Settings.php:581 ../../Zotlabs/Module/Api.php:89 +#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Module/Api.php:89 #: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144 #: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105 #: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1708 msgid "No" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Events.php:459 -#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:469 -#: ../../Zotlabs/Module/Filestorage.php:157 -#: ../../Zotlabs/Module/Filestorage.php:165 -#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:666 +#: ../../Zotlabs/Module/Connedit.php:379 ../../Zotlabs/Module/Events.php:458 +#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:468 +#: ../../Zotlabs/Module/Filestorage.php:156 +#: ../../Zotlabs/Module/Filestorage.php:164 +#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Photos.php:664 #: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 #: ../../Zotlabs/Module/Mitem.php:158 ../../Zotlabs/Module/Mitem.php:159 #: ../../Zotlabs/Module/Mitem.php:232 ../../Zotlabs/Module/Mitem.php:233 #: ../../Zotlabs/Module/Admin.php:461 ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Settings.php:581 ../../Zotlabs/Module/Api.php:88 +#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Module/Api.php:88 #: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144 #: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:105 #: ../../view/theme/redbasic/php/config.php:130 ../../boot.php:1708 @@ -340,7 +340,7 @@ msgid "Connection has been removed." msgstr "" #: ../../Zotlabs/Module/Connedit.php:525 ../../Zotlabs/Lib/Apps.php:221 -#: ../../include/conversation.php:957 ../../include/nav.php:86 +#: ../../include/nav.php:86 ../../include/conversation.php:957 msgid "View Profile" msgstr "" @@ -444,12 +444,12 @@ msgstr "" msgid "Family" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:598 ../../Zotlabs/Module/Settings.php:342 -#: ../../Zotlabs/Module/Settings.php:346 ../../Zotlabs/Module/Settings.php:347 -#: ../../Zotlabs/Module/Settings.php:350 ../../Zotlabs/Module/Settings.php:361 -#: ../../include/selectors.php:123 ../../include/widgets.php:495 -#: ../../include/channel.php:389 ../../include/channel.php:390 -#: ../../include/channel.php:397 +#: ../../Zotlabs/Module/Connedit.php:598 ../../Zotlabs/Module/Settings.php:377 +#: ../../Zotlabs/Module/Settings.php:381 ../../Zotlabs/Module/Settings.php:382 +#: ../../Zotlabs/Module/Settings.php:385 ../../Zotlabs/Module/Settings.php:396 +#: ../../include/widgets.php:495 ../../include/channel.php:389 +#: ../../include/channel.php:390 ../../include/channel.php:397 +#: ../../include/selectors.php:123 msgid "Friends" msgstr "" @@ -487,7 +487,7 @@ msgstr "" msgid "none" msgstr "" -#: ../../Zotlabs/Module/Connedit.php:708 ../../include/widgets.php:614 +#: ../../Zotlabs/Module/Connedit.php:708 ../../include/widgets.php:623 msgid "Connection Default Permissions" msgstr "" @@ -570,14 +570,14 @@ msgid "inherited" msgstr "" #: ../../Zotlabs/Module/Connedit.php:737 ../../Zotlabs/Module/Connect.php:98 -#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Cal.php:338 +#: ../../Zotlabs/Module/Events.php:474 ../../Zotlabs/Module/Cal.php:338 #: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:238 #: ../../Zotlabs/Module/Group.php:85 ../../Zotlabs/Module/Appman.php:126 #: ../../Zotlabs/Module/Pdledit.php:66 -#: ../../Zotlabs/Module/Filestorage.php:162 +#: ../../Zotlabs/Module/Filestorage.php:161 #: ../../Zotlabs/Module/Profiles.php:687 ../../Zotlabs/Module/Import.php:551 -#: ../../Zotlabs/Module/Photos.php:677 ../../Zotlabs/Module/Photos.php:1052 -#: ../../Zotlabs/Module/Photos.php:1092 ../../Zotlabs/Module/Photos.php:1210 +#: ../../Zotlabs/Module/Photos.php:675 ../../Zotlabs/Module/Photos.php:1050 +#: ../../Zotlabs/Module/Photos.php:1090 ../../Zotlabs/Module/Photos.php:1208 #: ../../Zotlabs/Module/Import_items.php:122 #: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121 #: ../../Zotlabs/Module/Mail.php:378 ../../Zotlabs/Module/Mood.php:139 @@ -587,15 +587,16 @@ msgstr "" #: ../../Zotlabs/Module/Admin.php:1421 ../../Zotlabs/Module/Admin.php:1648 #: ../../Zotlabs/Module/Admin.php:1733 ../../Zotlabs/Module/Admin.php:2116 #: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107 -#: ../../Zotlabs/Module/Rate.php:170 ../../Zotlabs/Module/Settings.php:590 -#: ../../Zotlabs/Module/Settings.php:703 ../../Zotlabs/Module/Settings.php:731 -#: ../../Zotlabs/Module/Settings.php:754 ../../Zotlabs/Module/Settings.php:842 -#: ../../Zotlabs/Module/Settings.php:1034 ../../Zotlabs/Module/Setup.php:312 +#: ../../Zotlabs/Module/Rate.php:170 ../../Zotlabs/Module/Settings.php:625 +#: ../../Zotlabs/Module/Settings.php:738 ../../Zotlabs/Module/Settings.php:779 +#: ../../Zotlabs/Module/Settings.php:805 ../../Zotlabs/Module/Settings.php:828 +#: ../../Zotlabs/Module/Settings.php:916 +#: ../../Zotlabs/Module/Settings.php:1108 ../../Zotlabs/Module/Setup.php:312 #: ../../Zotlabs/Module/Setup.php:353 ../../Zotlabs/Module/Thing.php:316 #: ../../Zotlabs/Module/Thing.php:362 ../../Zotlabs/Module/Sources.php:114 #: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15 -#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:22 -#: ../../include/widgets.php:754 ../../view/theme/redbasic/php/config.php:99 +#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/widgets.php:763 +#: ../../include/js_strings.php:22 ../../view/theme/redbasic/php/config.php:99 msgid "Submit" msgstr "" @@ -638,13 +639,13 @@ msgid "Last update:" msgstr "" #: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Directory.php:63 -#: ../../Zotlabs/Module/Photos.php:522 ../../Zotlabs/Module/Ratings.php:86 +#: ../../Zotlabs/Module/Photos.php:520 ../../Zotlabs/Module/Ratings.php:86 #: ../../Zotlabs/Module/Search.php:17 #: ../../Zotlabs/Module/Viewconnections.php:23 msgid "Public access denied." msgstr "" -#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:33 +#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:32 #: ../../Zotlabs/Module/Admin.php:164 ../../Zotlabs/Module/Admin.php:1255 #: ../../Zotlabs/Module/Admin.php:1561 ../../Zotlabs/Module/Thing.php:89 #: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3370 @@ -771,9 +772,9 @@ msgstr "" msgid "Age:" msgstr "" -#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52 -#: ../../include/event.php:84 ../../include/bb2diaspora.php:507 -#: ../../include/channel.php:1051 +#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1051 +#: ../../include/event.php:52 ../../include/event.php:84 +#: ../../include/bb2diaspora.php:507 msgid "Location:" msgstr "" @@ -790,9 +791,9 @@ msgid "About:" msgstr "" #: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68 -#: ../../Zotlabs/Module/Suggest.php:56 ../../include/conversation.php:959 -#: ../../include/connections.php:78 ../../include/widgets.php:147 +#: ../../Zotlabs/Module/Suggest.php:56 ../../include/widgets.php:147 #: ../../include/widgets.php:184 ../../include/channel.php:1036 +#: ../../include/conversation.php:959 ../../include/connections.php:78 msgid "Connect" msgstr "" @@ -911,203 +912,203 @@ msgstr "" msgid "Restricted or Premium Channel" msgstr "" -#: ../../Zotlabs/Module/Events.php:26 +#: ../../Zotlabs/Module/Events.php:25 msgid "Calendar entries imported." msgstr "" -#: ../../Zotlabs/Module/Events.php:28 +#: ../../Zotlabs/Module/Events.php:27 msgid "No calendar entries found." msgstr "" -#: ../../Zotlabs/Module/Events.php:105 +#: ../../Zotlabs/Module/Events.php:104 msgid "Event can not end before it has started." msgstr "" -#: ../../Zotlabs/Module/Events.php:107 ../../Zotlabs/Module/Events.php:116 -#: ../../Zotlabs/Module/Events.php:136 +#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115 +#: ../../Zotlabs/Module/Events.php:135 msgid "Unable to generate preview." msgstr "" -#: ../../Zotlabs/Module/Events.php:114 +#: ../../Zotlabs/Module/Events.php:113 msgid "Event title and start time are required." msgstr "" -#: ../../Zotlabs/Module/Events.php:134 ../../Zotlabs/Module/Events.php:259 +#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258 msgid "Event not found." msgstr "" -#: ../../Zotlabs/Module/Events.php:254 ../../Zotlabs/Module/Like.php:373 -#: ../../Zotlabs/Module/Tagger.php:51 ../../include/conversation.php:123 -#: ../../include/event.php:949 ../../include/text.php:1920 +#: ../../Zotlabs/Module/Events.php:253 ../../Zotlabs/Module/Like.php:373 +#: ../../Zotlabs/Module/Tagger.php:51 ../../include/event.php:949 +#: ../../include/conversation.php:123 ../../include/text.php:1924 msgid "event" msgstr "" -#: ../../Zotlabs/Module/Events.php:449 +#: ../../Zotlabs/Module/Events.php:448 msgid "Edit event title" msgstr "" -#: ../../Zotlabs/Module/Events.php:449 +#: ../../Zotlabs/Module/Events.php:448 msgid "Event title" msgstr "" -#: ../../Zotlabs/Module/Events.php:449 ../../Zotlabs/Module/Events.php:454 +#: ../../Zotlabs/Module/Events.php:448 ../../Zotlabs/Module/Events.php:453 #: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116 #: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713 #: ../../include/datetime.php:245 msgid "Required" msgstr "" -#: ../../Zotlabs/Module/Events.php:451 +#: ../../Zotlabs/Module/Events.php:450 msgid "Categories (comma-separated list)" msgstr "" -#: ../../Zotlabs/Module/Events.php:452 +#: ../../Zotlabs/Module/Events.php:451 msgid "Edit Category" msgstr "" -#: ../../Zotlabs/Module/Events.php:452 +#: ../../Zotlabs/Module/Events.php:451 msgid "Category" msgstr "" -#: ../../Zotlabs/Module/Events.php:455 +#: ../../Zotlabs/Module/Events.php:454 msgid "Edit start date and time" msgstr "" -#: ../../Zotlabs/Module/Events.php:455 +#: ../../Zotlabs/Module/Events.php:454 msgid "Start date and time" msgstr "" -#: ../../Zotlabs/Module/Events.php:456 ../../Zotlabs/Module/Events.php:459 +#: ../../Zotlabs/Module/Events.php:455 ../../Zotlabs/Module/Events.php:458 msgid "Finish date and time are not known or not relevant" msgstr "" -#: ../../Zotlabs/Module/Events.php:458 +#: ../../Zotlabs/Module/Events.php:457 msgid "Edit finish date and time" msgstr "" -#: ../../Zotlabs/Module/Events.php:458 +#: ../../Zotlabs/Module/Events.php:457 msgid "Finish date and time" msgstr "" -#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:461 +#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:460 msgid "Adjust for viewer timezone" msgstr "" -#: ../../Zotlabs/Module/Events.php:460 +#: ../../Zotlabs/Module/Events.php:459 msgid "" "Important for events that happen in a particular place. Not practical for " "global holidays." msgstr "" -#: ../../Zotlabs/Module/Events.php:462 +#: ../../Zotlabs/Module/Events.php:461 msgid "Edit Description" msgstr "" -#: ../../Zotlabs/Module/Events.php:462 ../../Zotlabs/Module/Appman.php:117 +#: ../../Zotlabs/Module/Events.php:461 ../../Zotlabs/Module/Appman.php:117 #: ../../Zotlabs/Module/Rbmark.php:101 msgid "Description" msgstr "" -#: ../../Zotlabs/Module/Events.php:464 +#: ../../Zotlabs/Module/Events.php:463 msgid "Edit Location" msgstr "" -#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Profiles.php:477 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Profiles.php:477 #: ../../Zotlabs/Module/Profiles.php:698 ../../Zotlabs/Module/Locs.php:117 #: ../../Zotlabs/Module/Pubsites.php:41 ../../include/js_strings.php:25 msgid "Location" msgstr "" -#: ../../Zotlabs/Module/Events.php:467 ../../Zotlabs/Module/Events.php:469 +#: ../../Zotlabs/Module/Events.php:466 ../../Zotlabs/Module/Events.php:468 msgid "Share this event" msgstr "" -#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Photos.php:1093 -#: ../../Zotlabs/Module/Webpages.php:202 ../../Zotlabs/Lib/ThreadItem.php:719 -#: ../../include/conversation.php:1198 ../../include/page_widgets.php:43 +#: ../../Zotlabs/Module/Events.php:469 ../../Zotlabs/Module/Photos.php:1091 +#: ../../Zotlabs/Module/Webpages.php:201 ../../Zotlabs/Lib/ThreadItem.php:719 +#: ../../include/page_widgets.php:43 ../../include/conversation.php:1198 msgid "Preview" msgstr "" -#: ../../Zotlabs/Module/Events.php:471 ../../include/conversation.php:1247 +#: ../../Zotlabs/Module/Events.php:470 ../../include/conversation.php:1247 msgid "Permission settings" msgstr "" -#: ../../Zotlabs/Module/Events.php:476 +#: ../../Zotlabs/Module/Events.php:475 msgid "Advanced Options" msgstr "" -#: ../../Zotlabs/Module/Events.php:588 ../../Zotlabs/Module/Cal.php:259 +#: ../../Zotlabs/Module/Events.php:587 ../../Zotlabs/Module/Cal.php:259 msgid "l, F j" msgstr "" -#: ../../Zotlabs/Module/Events.php:610 +#: ../../Zotlabs/Module/Events.php:609 msgid "Edit event" msgstr "" -#: ../../Zotlabs/Module/Events.php:612 +#: ../../Zotlabs/Module/Events.php:611 msgid "Delete event" msgstr "" -#: ../../Zotlabs/Module/Events.php:637 ../../Zotlabs/Module/Cal.php:308 -#: ../../include/text.php:1708 +#: ../../Zotlabs/Module/Events.php:636 ../../Zotlabs/Module/Cal.php:308 +#: ../../include/text.php:1712 msgid "Link to Source" msgstr "" -#: ../../Zotlabs/Module/Events.php:646 +#: ../../Zotlabs/Module/Events.php:645 msgid "calendar" msgstr "" -#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Cal.php:331 +#: ../../Zotlabs/Module/Events.php:664 ../../Zotlabs/Module/Cal.php:331 msgid "Edit Event" msgstr "" -#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Cal.php:331 +#: ../../Zotlabs/Module/Events.php:664 ../../Zotlabs/Module/Cal.php:331 msgid "Create Event" msgstr "" -#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:675 +#: ../../Zotlabs/Module/Events.php:665 ../../Zotlabs/Module/Events.php:674 #: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339 -#: ../../Zotlabs/Module/Photos.php:949 +#: ../../Zotlabs/Module/Photos.php:947 msgid "Previous" msgstr "" -#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Events.php:676 +#: ../../Zotlabs/Module/Events.php:666 ../../Zotlabs/Module/Events.php:675 #: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340 -#: ../../Zotlabs/Module/Photos.php:958 ../../Zotlabs/Module/Setup.php:267 +#: ../../Zotlabs/Module/Photos.php:956 ../../Zotlabs/Module/Setup.php:267 msgid "Next" msgstr "" -#: ../../Zotlabs/Module/Events.php:668 ../../Zotlabs/Module/Cal.php:334 +#: ../../Zotlabs/Module/Events.php:667 ../../Zotlabs/Module/Cal.php:334 msgid "Export" msgstr "" -#: ../../Zotlabs/Module/Events.php:671 ../../Zotlabs/Module/Layouts.php:197 +#: ../../Zotlabs/Module/Events.php:670 ../../Zotlabs/Module/Layouts.php:197 #: ../../Zotlabs/Module/Pubsites.php:47 ../../Zotlabs/Module/Blocks.php:166 -#: ../../Zotlabs/Module/Webpages.php:201 ../../include/page_widgets.php:42 +#: ../../Zotlabs/Module/Webpages.php:200 ../../include/page_widgets.php:42 msgid "View" msgstr "" -#: ../../Zotlabs/Module/Events.php:672 +#: ../../Zotlabs/Module/Events.php:671 msgid "Month" msgstr "" -#: ../../Zotlabs/Module/Events.php:673 +#: ../../Zotlabs/Module/Events.php:672 msgid "Week" msgstr "" -#: ../../Zotlabs/Module/Events.php:674 +#: ../../Zotlabs/Module/Events.php:673 msgid "Day" msgstr "" -#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:341 +#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Cal.php:341 msgid "Today" msgstr "" -#: ../../Zotlabs/Module/Events.php:708 +#: ../../Zotlabs/Module/Events.php:707 msgid "Event removed" msgstr "" -#: ../../Zotlabs/Module/Events.php:711 +#: ../../Zotlabs/Module/Events.php:710 msgid "Failed to remove event" msgstr "" @@ -1124,7 +1125,7 @@ msgid "My Connections Bookmarks" msgstr "" #: ../../Zotlabs/Module/Editpost.php:24 ../../Zotlabs/Module/Editlayout.php:79 -#: ../../Zotlabs/Module/Editwebpage.php:81 +#: ../../Zotlabs/Module/Editwebpage.php:80 #: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 msgid "Item not found" msgstr "" @@ -1133,18 +1134,18 @@ msgstr "" msgid "Item is not editable" msgstr "" -#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:135 +#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:134 msgid "Edit post" msgstr "" #: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 -#: ../../include/conversation.php:1647 ../../include/nav.php:92 +#: ../../include/nav.php:92 ../../include/conversation.php:1647 msgid "Photos" msgstr "" #: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88 -#: ../../Zotlabs/Module/Admin.php:1406 ../../Zotlabs/Module/Settings.php:591 -#: ../../Zotlabs/Module/Settings.php:617 ../../Zotlabs/Module/Tagrm.php:15 +#: ../../Zotlabs/Module/Admin.php:1406 ../../Zotlabs/Module/Settings.php:626 +#: ../../Zotlabs/Module/Settings.php:652 ../../Zotlabs/Module/Tagrm.php:15 #: ../../Zotlabs/Module/Tagrm.php:138 ../../Zotlabs/Module/Wiki.php:166 #: ../../Zotlabs/Module/Wiki.php:202 ../../include/conversation.php:1235 #: ../../include/conversation.php:1274 @@ -1181,7 +1182,7 @@ msgstr "" #: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin.php:2033 #: ../../Zotlabs/Module/Admin.php:2053 ../../Zotlabs/Module/Rbmark.php:32 #: ../../Zotlabs/Module/Rbmark.php:104 ../../include/widgets.php:201 -#: ../../include/text.php:922 ../../include/text.php:934 +#: ../../include/text.php:926 ../../include/text.php:938 msgid "Save" msgstr "" @@ -1299,14 +1300,14 @@ msgid "Recent activity" msgstr "" #: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 -#: ../../include/nav.php:188 ../../include/text.php:851 +#: ../../include/nav.php:188 ../../include/text.php:855 msgid "Connections" msgstr "" #: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 -#: ../../Zotlabs/Lib/Apps.php:230 ../../include/acl_selectors.php:276 -#: ../../include/nav.php:167 ../../include/text.php:921 -#: ../../include/text.php:933 +#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:167 +#: ../../include/acl_selectors.php:274 ../../include/text.php:925 +#: ../../include/text.php:937 msgid "Search" msgstr "" @@ -1348,30 +1349,30 @@ msgstr "" msgid "Unable to process image." msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4297 +#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4284 msgid "female" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4298 +#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4285 #, php-format msgid "%1$s updated her %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4299 +#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4286 msgid "male" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4300 +#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4287 #, php-format msgid "%1$s updated his %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4302 +#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4289 #, php-format msgid "%1$s updated their %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1687 +#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1708 msgid "cover photo" msgstr "" @@ -1398,7 +1399,7 @@ msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 #: ../../Zotlabs/Module/Profile_photo.php:396 -#: ../../Zotlabs/Module/Settings.php:985 +#: ../../Zotlabs/Module/Settings.php:1059 msgid "or" msgstr "" @@ -1469,7 +1470,7 @@ msgstr "" msgid "This directory server requires an access token" msgstr "" -#: ../../Zotlabs/Module/Chat.php:25 ../../Zotlabs/Module/Channel.php:29 +#: ../../Zotlabs/Module/Chat.php:25 ../../Zotlabs/Module/Channel.php:28 #: ../../Zotlabs/Module/Wiki.php:20 msgid "You must be logged in to see this page." msgstr "" @@ -1509,7 +1510,7 @@ msgstr "" msgid "Encrypt text" msgstr "" -#: ../../Zotlabs/Module/Chat.php:207 ../../Zotlabs/Module/Editwebpage.php:147 +#: ../../Zotlabs/Module/Chat.php:207 ../../Zotlabs/Module/Editwebpage.php:146 #: ../../Zotlabs/Module/Mail.php:252 ../../Zotlabs/Module/Mail.php:377 #: ../../Zotlabs/Module/Editblock.php:111 ../../include/conversation.php:1146 msgid "Insert web link" @@ -1531,10 +1532,10 @@ msgstr "" msgid "Expiration of chats (minutes)" msgstr "" -#: ../../Zotlabs/Module/Chat.php:235 ../../Zotlabs/Module/Filestorage.php:153 -#: ../../Zotlabs/Module/Photos.php:671 ../../Zotlabs/Module/Photos.php:1045 +#: ../../Zotlabs/Module/Chat.php:235 ../../Zotlabs/Module/Filestorage.php:152 +#: ../../Zotlabs/Module/Photos.php:669 ../../Zotlabs/Module/Photos.php:1043 #: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:359 -#: ../../include/acl_selectors.php:283 +#: ../../include/acl_selectors.php:281 msgid "Permissions" msgstr "" @@ -1639,11 +1640,11 @@ msgstr "" msgid "Edit Layout" msgstr "" -#: ../../Zotlabs/Module/Editwebpage.php:143 +#: ../../Zotlabs/Module/Editwebpage.php:142 msgid "Page link" msgstr "" -#: ../../Zotlabs/Module/Editwebpage.php:169 +#: ../../Zotlabs/Module/Editwebpage.php:168 msgid "Edit Webpage" msgstr "" @@ -1803,59 +1804,59 @@ msgstr "" msgid "Activate the Firefox $Projectname provider" msgstr "" -#: ../../Zotlabs/Module/Acl.php:227 +#: ../../Zotlabs/Module/Acl.php:288 msgid "network" msgstr "" -#: ../../Zotlabs/Module/Acl.php:237 +#: ../../Zotlabs/Module/Acl.php:298 msgid "RSS" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:88 +#: ../../Zotlabs/Module/Filestorage.php:87 msgid "Permission Denied." msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:104 +#: ../../Zotlabs/Module/Filestorage.php:103 msgid "File not found." msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:147 +#: ../../Zotlabs/Module/Filestorage.php:146 msgid "Edit file permissions" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:156 +#: ../../Zotlabs/Module/Filestorage.php:155 msgid "Set/edit permissions" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:157 +#: ../../Zotlabs/Module/Filestorage.php:156 msgid "Include all files and sub folders" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:158 +#: ../../Zotlabs/Module/Filestorage.php:157 msgid "Return to file list" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:159 msgid "Copy/paste this code to attach file to a post" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:161 +#: ../../Zotlabs/Module/Filestorage.php:160 msgid "Copy/paste this URL to link file from a web page" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:163 +#: ../../Zotlabs/Module/Filestorage.php:162 msgid "Share this file" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:164 +#: ../../Zotlabs/Module/Filestorage.php:163 msgid "Show URL to this file" msgstr "" -#: ../../Zotlabs/Module/Filestorage.php:165 +#: ../../Zotlabs/Module/Filestorage.php:164 msgid "Notify your contacts about this file" msgstr "" -#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2244 +#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2248 msgid "Layouts" msgstr "" @@ -1868,19 +1869,19 @@ msgid "Layout Description" msgstr "" #: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Menu.php:114 -#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Webpages.php:206 +#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Webpages.php:205 #: ../../include/page_widgets.php:47 msgid "Created" msgstr "" #: ../../Zotlabs/Module/Layouts.php:191 ../../Zotlabs/Module/Menu.php:115 -#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Webpages.php:207 +#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Webpages.php:206 #: ../../include/page_widgets.php:48 msgid "Edited" msgstr "" -#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1072 -#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Webpages.php:196 +#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1070 +#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Webpages.php:195 #: ../../include/conversation.php:1219 msgid "Share" msgstr "" @@ -1926,12 +1927,12 @@ msgstr "" #: ../../Zotlabs/Module/Like.php:371 ../../Zotlabs/Module/Subthread.php:87 #: ../../Zotlabs/Module/Tagger.php:47 ../../include/conversation.php:120 -#: ../../include/text.php:1917 +#: ../../include/text.php:1921 msgid "photo" msgstr "" #: ../../Zotlabs/Module/Like.php:371 ../../Zotlabs/Module/Subthread.php:87 -#: ../../include/conversation.php:148 ../../include/text.php:1923 +#: ../../include/conversation.php:148 ../../include/text.php:1927 msgid "status" msgstr "" @@ -2106,8 +2107,8 @@ msgstr "" msgid "Add profile things" msgstr "" -#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1541 -#: ../../include/widgets.php:105 +#: ../../Zotlabs/Module/Profiles.php:697 ../../include/widgets.php:105 +#: ../../include/conversation.php:1541 msgid "Personal" msgstr "" @@ -2382,25 +2383,25 @@ msgstr "" msgid "System error. Post not saved." msgstr "" -#: ../../Zotlabs/Module/Item.php:1243 +#: ../../Zotlabs/Module/Item.php:1238 msgid "Unable to obtain post information from database." msgstr "" -#: ../../Zotlabs/Module/Item.php:1250 +#: ../../Zotlabs/Module/Item.php:1245 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "" -#: ../../Zotlabs/Module/Item.php:1257 +#: ../../Zotlabs/Module/Item.php:1252 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "" -#: ../../Zotlabs/Module/Photos.php:84 +#: ../../Zotlabs/Module/Photos.php:82 msgid "Page owner information could not be retrieved." msgstr "" -#: ../../Zotlabs/Module/Photos.php:99 ../../Zotlabs/Module/Photos.php:743 +#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:741 #: ../../Zotlabs/Module/Profile_photo.php:115 #: ../../Zotlabs/Module/Profile_photo.php:212 #: ../../Zotlabs/Module/Profile_photo.php:311 @@ -2408,237 +2409,237 @@ msgstr "" msgid "Profile Photos" msgstr "" -#: ../../Zotlabs/Module/Photos.php:105 ../../Zotlabs/Module/Photos.php:149 +#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:147 msgid "Album not found." msgstr "" -#: ../../Zotlabs/Module/Photos.php:132 +#: ../../Zotlabs/Module/Photos.php:130 msgid "Delete Album" msgstr "" -#: ../../Zotlabs/Module/Photos.php:153 +#: ../../Zotlabs/Module/Photos.php:151 msgid "" "Multiple storage folders exist with this album name, but within different " "directories. Please remove the desired folder or folders using the Files " "manager" msgstr "" -#: ../../Zotlabs/Module/Photos.php:210 ../../Zotlabs/Module/Photos.php:1053 +#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1051 msgid "Delete Photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:533 +#: ../../Zotlabs/Module/Photos.php:531 msgid "No photos selected" msgstr "" -#: ../../Zotlabs/Module/Photos.php:582 +#: ../../Zotlabs/Module/Photos.php:580 msgid "Access to this item is restricted." msgstr "" -#: ../../Zotlabs/Module/Photos.php:621 +#: ../../Zotlabs/Module/Photos.php:619 #, php-format msgid "%1$.2f MB of %2$.2f MB photo storage used." msgstr "" -#: ../../Zotlabs/Module/Photos.php:624 +#: ../../Zotlabs/Module/Photos.php:622 #, php-format msgid "%1$.2f MB photo storage used." msgstr "" -#: ../../Zotlabs/Module/Photos.php:660 +#: ../../Zotlabs/Module/Photos.php:658 msgid "Upload Photos" msgstr "" -#: ../../Zotlabs/Module/Photos.php:664 +#: ../../Zotlabs/Module/Photos.php:662 msgid "Enter an album name" msgstr "" -#: ../../Zotlabs/Module/Photos.php:665 +#: ../../Zotlabs/Module/Photos.php:663 msgid "or select an existing album (doubleclick)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:666 +#: ../../Zotlabs/Module/Photos.php:664 msgid "Create a status post for this upload" msgstr "" -#: ../../Zotlabs/Module/Photos.php:667 +#: ../../Zotlabs/Module/Photos.php:665 msgid "Caption (optional):" msgstr "" -#: ../../Zotlabs/Module/Photos.php:668 +#: ../../Zotlabs/Module/Photos.php:666 msgid "Description (optional):" msgstr "" -#: ../../Zotlabs/Module/Photos.php:695 +#: ../../Zotlabs/Module/Photos.php:693 msgid "Album name could not be decoded" msgstr "" -#: ../../Zotlabs/Module/Photos.php:743 +#: ../../Zotlabs/Module/Photos.php:741 msgid "Contact Photos" msgstr "" -#: ../../Zotlabs/Module/Photos.php:766 +#: ../../Zotlabs/Module/Photos.php:764 msgid "Show Newest First" msgstr "" -#: ../../Zotlabs/Module/Photos.php:768 +#: ../../Zotlabs/Module/Photos.php:766 msgid "Show Oldest First" msgstr "" -#: ../../Zotlabs/Module/Photos.php:792 ../../Zotlabs/Module/Photos.php:1331 -#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1557 +#: ../../Zotlabs/Module/Photos.php:790 ../../Zotlabs/Module/Photos.php:1329 +#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1588 msgid "View Photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:823 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1574 +#: ../../Zotlabs/Module/Photos.php:821 +#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1605 msgid "Edit Album" msgstr "" -#: ../../Zotlabs/Module/Photos.php:870 +#: ../../Zotlabs/Module/Photos.php:868 msgid "Permission denied. Access to this item may be restricted." msgstr "" -#: ../../Zotlabs/Module/Photos.php:872 +#: ../../Zotlabs/Module/Photos.php:870 msgid "Photo not available" msgstr "" -#: ../../Zotlabs/Module/Photos.php:930 +#: ../../Zotlabs/Module/Photos.php:928 msgid "Use as profile photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:931 +#: ../../Zotlabs/Module/Photos.php:929 msgid "Use as cover photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:938 +#: ../../Zotlabs/Module/Photos.php:936 msgid "Private Photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:953 +#: ../../Zotlabs/Module/Photos.php:951 msgid "View Full Size" msgstr "" -#: ../../Zotlabs/Module/Photos.php:998 ../../Zotlabs/Module/Admin.php:1437 +#: ../../Zotlabs/Module/Photos.php:996 ../../Zotlabs/Module/Admin.php:1437 #: ../../Zotlabs/Module/Tagrm.php:137 msgid "Remove" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1032 +#: ../../Zotlabs/Module/Photos.php:1030 msgid "Edit photo" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1034 +#: ../../Zotlabs/Module/Photos.php:1032 msgid "Rotate CW (right)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1035 +#: ../../Zotlabs/Module/Photos.php:1033 msgid "Rotate CCW (left)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1038 +#: ../../Zotlabs/Module/Photos.php:1036 msgid "Enter a new album name" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1039 +#: ../../Zotlabs/Module/Photos.php:1037 msgid "or select an existing one (doubleclick)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1042 +#: ../../Zotlabs/Module/Photos.php:1040 msgid "Caption" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1044 +#: ../../Zotlabs/Module/Photos.php:1042 msgid "Add a Tag" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1048 +#: ../../Zotlabs/Module/Photos.php:1046 msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1051 +#: ../../Zotlabs/Module/Photos.php:1049 msgid "Flag as adult in album view" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1070 ../../Zotlabs/Lib/ThreadItem.php:261 +#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Lib/ThreadItem.php:261 msgid "I like this (toggle)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1071 ../../Zotlabs/Lib/ThreadItem.php:262 +#: ../../Zotlabs/Module/Photos.php:1069 ../../Zotlabs/Lib/ThreadItem.php:262 msgid "I don't like this (toggle)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1073 ../../Zotlabs/Lib/ThreadItem.php:397 +#: ../../Zotlabs/Module/Photos.php:1071 ../../Zotlabs/Lib/ThreadItem.php:397 #: ../../include/conversation.php:743 msgid "Please wait" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1089 ../../Zotlabs/Module/Photos.php:1207 +#: ../../Zotlabs/Module/Photos.php:1087 ../../Zotlabs/Module/Photos.php:1205 #: ../../Zotlabs/Lib/ThreadItem.php:707 msgid "This is you" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1091 ../../Zotlabs/Module/Photos.php:1209 +#: ../../Zotlabs/Module/Photos.php:1089 ../../Zotlabs/Module/Photos.php:1207 #: ../../Zotlabs/Lib/ThreadItem.php:709 ../../include/js_strings.php:6 msgid "Comment" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:577 +#: ../../Zotlabs/Module/Photos.php:1105 ../../include/conversation.php:577 msgctxt "title" msgid "Likes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:577 +#: ../../Zotlabs/Module/Photos.php:1105 ../../include/conversation.php:577 msgctxt "title" msgid "Dislikes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578 msgctxt "title" msgid "Agree" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578 msgctxt "title" msgid "Disagree" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1108 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1106 ../../include/conversation.php:578 msgctxt "title" msgid "Abstain" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579 msgctxt "title" msgid "Attending" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579 msgctxt "title" msgid "Not attending" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1109 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1107 ../../include/conversation.php:579 msgctxt "title" msgid "Might attend" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1126 ../../Zotlabs/Module/Photos.php:1138 +#: ../../Zotlabs/Module/Photos.php:1124 ../../Zotlabs/Module/Photos.php:1136 #: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193 #: ../../include/conversation.php:1738 msgid "View all" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1130 ../../Zotlabs/Lib/ThreadItem.php:185 -#: ../../include/conversation.php:1762 ../../include/taxonomy.php:403 -#: ../../include/channel.php:1183 +#: ../../Zotlabs/Module/Photos.php:1128 ../../Zotlabs/Lib/ThreadItem.php:185 +#: ../../include/taxonomy.php:403 ../../include/channel.php:1183 +#: ../../include/conversation.php:1762 msgctxt "noun" msgid "Like" msgid_plural "Likes" msgstr[0] "" msgstr[1] "" -#: ../../Zotlabs/Module/Photos.php:1135 ../../Zotlabs/Lib/ThreadItem.php:190 +#: ../../Zotlabs/Module/Photos.php:1133 ../../Zotlabs/Lib/ThreadItem.php:190 #: ../../include/conversation.php:1765 msgctxt "noun" msgid "Dislike" @@ -2646,39 +2647,39 @@ msgid_plural "Dislikes" msgstr[0] "" msgstr[1] "" -#: ../../Zotlabs/Module/Photos.php:1235 +#: ../../Zotlabs/Module/Photos.php:1233 msgid "Photo Tools" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1244 +#: ../../Zotlabs/Module/Photos.php:1242 msgid "In This Photo:" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1249 +#: ../../Zotlabs/Module/Photos.php:1247 msgid "Map" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1257 ../../Zotlabs/Lib/ThreadItem.php:386 +#: ../../Zotlabs/Module/Photos.php:1255 ../../Zotlabs/Lib/ThreadItem.php:386 msgctxt "noun" msgid "Likes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1258 ../../Zotlabs/Lib/ThreadItem.php:387 +#: ../../Zotlabs/Module/Photos.php:1256 ../../Zotlabs/Lib/ThreadItem.php:387 msgctxt "noun" msgid "Dislikes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:392 -#: ../../include/acl_selectors.php:285 +#: ../../Zotlabs/Module/Photos.php:1261 ../../Zotlabs/Lib/ThreadItem.php:392 +#: ../../include/acl_selectors.php:283 msgid "Close" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1337 +#: ../../Zotlabs/Module/Photos.php:1335 msgid "View Album" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1348 ../../Zotlabs/Module/Photos.php:1361 -#: ../../Zotlabs/Module/Photos.php:1362 +#: ../../Zotlabs/Module/Photos.php:1346 ../../Zotlabs/Module/Photos.php:1359 +#: ../../Zotlabs/Module/Photos.php:1360 msgid "Recent Photos" msgstr "" @@ -3005,7 +3006,7 @@ msgstr "" msgid "Submit and proceed" msgstr "" -#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2243 +#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2247 msgid "Menus" msgstr "" @@ -3153,31 +3154,31 @@ msgstr "" msgid "Set your current mood and tell your friends" msgstr "" -#: ../../Zotlabs/Module/Network.php:96 +#: ../../Zotlabs/Module/Network.php:94 msgid "No such group" msgstr "" -#: ../../Zotlabs/Module/Network.php:136 +#: ../../Zotlabs/Module/Network.php:134 msgid "No such channel" msgstr "" -#: ../../Zotlabs/Module/Network.php:141 +#: ../../Zotlabs/Module/Network.php:139 msgid "forum" msgstr "" -#: ../../Zotlabs/Module/Network.php:153 +#: ../../Zotlabs/Module/Network.php:151 msgid "Search Results For:" msgstr "" -#: ../../Zotlabs/Module/Network.php:217 +#: ../../Zotlabs/Module/Network.php:215 msgid "Privacy group is empty" msgstr "" -#: ../../Zotlabs/Module/Network.php:226 +#: ../../Zotlabs/Module/Network.php:224 msgid "Privacy group: " msgstr "" -#: ../../Zotlabs/Module/Network.php:252 +#: ../../Zotlabs/Module/Network.php:250 msgid "Invalid connection." msgstr "" @@ -3207,15 +3208,15 @@ msgstr "" msgid "No matches" msgstr "" -#: ../../Zotlabs/Module/Channel.php:41 +#: ../../Zotlabs/Module/Channel.php:40 msgid "Posts and comments" msgstr "" -#: ../../Zotlabs/Module/Channel.php:42 +#: ../../Zotlabs/Module/Channel.php:41 msgid "Only posts" msgstr "" -#: ../../Zotlabs/Module/Channel.php:102 +#: ../../Zotlabs/Module/Channel.php:101 msgid "Insufficient permissions. Request redirected to profile page." msgstr "" @@ -3236,7 +3237,7 @@ msgid "Menu Item Permissions" msgstr "" #: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:227 -#: ../../Zotlabs/Module/Settings.php:1068 +#: ../../Zotlabs/Module/Settings.php:1142 msgid "(click to open/close)" msgstr "" @@ -3421,11 +3422,11 @@ msgstr "" msgid "Site settings updated." msgstr "" -#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2833 +#: ../../Zotlabs/Module/Admin.php:400 ../../include/text.php:2837 msgid "Default" msgstr "" -#: ../../Zotlabs/Module/Admin.php:410 ../../Zotlabs/Module/Settings.php:798 +#: ../../Zotlabs/Module/Admin.php:410 ../../Zotlabs/Module/Settings.php:872 msgid "mobile" msgstr "" @@ -3457,7 +3458,7 @@ msgstr "" msgid "My site offers free accounts with optional paid upgrades" msgstr "" -#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1440 +#: ../../Zotlabs/Module/Admin.php:491 ../../include/widgets.php:1471 msgid "Site" msgstr "" @@ -3744,12 +3745,12 @@ msgid "0 for no expiration of imported content" msgstr "" #: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678 -#: ../../Zotlabs/Module/Settings.php:722 +#: ../../Zotlabs/Module/Settings.php:796 msgid "Off" msgstr "" #: ../../Zotlabs/Module/Admin.php:677 ../../Zotlabs/Module/Admin.php:678 -#: ../../Zotlabs/Module/Settings.php:722 +#: ../../Zotlabs/Module/Settings.php:796 msgid "On" msgstr "" @@ -3806,7 +3807,7 @@ msgid "" "embedded content from that site is explicitly blocked." msgstr "" -#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1443 +#: ../../Zotlabs/Module/Admin.php:756 ../../include/widgets.php:1474 msgid "Security" msgstr "" @@ -3973,7 +3974,7 @@ msgid "Account '%s' unblocked" msgstr "" #: ../../Zotlabs/Module/Admin.php:1031 ../../Zotlabs/Module/Admin.php:1044 -#: ../../include/widgets.php:1441 +#: ../../include/widgets.php:1472 msgid "Accounts" msgstr "" @@ -4079,7 +4080,7 @@ msgstr "" msgid "Channel '%s' code disallowed" msgstr "" -#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1442 +#: ../../Zotlabs/Module/Admin.php:1210 ../../include/widgets.php:1473 msgid "Channels" msgstr "" @@ -4138,7 +4139,7 @@ msgid "Enable" msgstr "" #: ../../Zotlabs/Module/Admin.php:1330 ../../Zotlabs/Module/Admin.php:1420 -#: ../../include/widgets.php:1445 +#: ../../include/widgets.php:1476 msgid "Plugins" msgstr "" @@ -4147,8 +4148,8 @@ msgid "Toggle" msgstr "" #: ../../Zotlabs/Module/Admin.php:1332 ../../Zotlabs/Module/Admin.php:1615 -#: ../../Zotlabs/Lib/Apps.php:216 ../../include/nav.php:210 -#: ../../include/widgets.php:638 +#: ../../Zotlabs/Lib/Apps.php:216 ../../include/widgets.php:647 +#: ../../include/nav.php:210 msgid "Settings" msgstr "" @@ -4220,8 +4221,8 @@ msgstr "" msgid "Install a New Plugin Repository" msgstr "" -#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:77 -#: ../../Zotlabs/Module/Settings.php:616 ../../Zotlabs/Lib/Apps.php:334 +#: ../../Zotlabs/Module/Admin.php:1435 ../../Zotlabs/Module/Settings.php:75 +#: ../../Zotlabs/Module/Settings.php:651 ../../Zotlabs/Lib/Apps.php:334 msgid "Update" msgstr "" @@ -4238,7 +4239,7 @@ msgid "Screenshot" msgstr "" #: ../../Zotlabs/Module/Admin.php:1613 ../../Zotlabs/Module/Admin.php:1647 -#: ../../include/widgets.php:1446 +#: ../../include/widgets.php:1477 msgid "Themes" msgstr "" @@ -4254,8 +4255,8 @@ msgstr "" msgid "Log settings updated." msgstr "" -#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1467 -#: ../../include/widgets.php:1477 +#: ../../Zotlabs/Module/Admin.php:1732 ../../include/widgets.php:1498 +#: ../../include/widgets.php:1508 msgid "Logs" msgstr "" @@ -4321,7 +4322,7 @@ msgstr "" msgid "Edit Profile Field" msgstr "" -#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1448 +#: ../../Zotlabs/Module/Admin.php:2106 ../../include/widgets.php:1479 msgid "Profile Fields" msgstr "" @@ -4478,7 +4479,7 @@ msgstr "" msgid "OpenID protocol error. No ID returned." msgstr "" -#: ../../Zotlabs/Module/Openid.php:193 ../../include/auth.php:226 +#: ../../Zotlabs/Module/Openid.php:193 ../../include/auth.php:252 msgid "Login failed." msgstr "" @@ -4606,7 +4607,7 @@ msgstr "" msgid "Authenticate" msgstr "" -#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1328 +#: ../../Zotlabs/Module/Pubsites.php:22 ../../include/widgets.php:1337 msgid "Public Hubs" msgstr "" @@ -4663,7 +4664,7 @@ msgstr "" msgid "Block Name" msgstr "" -#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2242 +#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2246 msgid "Blocks" msgstr "" @@ -4704,8 +4705,8 @@ msgstr "" msgid "Description: " msgstr "" -#: ../../Zotlabs/Module/Apps.php:47 ../../include/nav.php:165 -#: ../../include/widgets.php:102 +#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102 +#: ../../include/nav.php:165 msgid "Apps" msgstr "" @@ -4890,7 +4891,7 @@ msgid "" msgstr "" #: ../../Zotlabs/Module/Removeaccount.php:60 -#: ../../Zotlabs/Module/Settings.php:705 +#: ../../Zotlabs/Module/Settings.php:740 msgid "Remove Account" msgstr "" @@ -4918,7 +4919,7 @@ msgid "" "removed from the network" msgstr "" -#: ../../Zotlabs/Module/Removeme.php:62 ../../Zotlabs/Module/Settings.php:1124 +#: ../../Zotlabs/Module/Removeme.php:62 ../../Zotlabs/Module/Settings.php:1198 msgid "Remove Channel" msgstr "" @@ -4994,608 +4995,628 @@ msgstr "" msgid "No service class restrictions found." msgstr "" -#: ../../Zotlabs/Module/Settings.php:69 +#: ../../Zotlabs/Module/Settings.php:67 msgid "Name is required" msgstr "" -#: ../../Zotlabs/Module/Settings.php:73 +#: ../../Zotlabs/Module/Settings.php:71 msgid "Key and Secret are required" msgstr "" -#: ../../Zotlabs/Module/Settings.php:225 +#: ../../Zotlabs/Module/Settings.php:154 +msgid "Token saved." +msgstr "" + +#: ../../Zotlabs/Module/Settings.php:260 msgid "Not valid email." msgstr "" -#: ../../Zotlabs/Module/Settings.php:228 +#: ../../Zotlabs/Module/Settings.php:263 msgid "Protected email address. Cannot change to that email." msgstr "" -#: ../../Zotlabs/Module/Settings.php:237 +#: ../../Zotlabs/Module/Settings.php:272 msgid "System failure storing new email. Please try again." msgstr "" -#: ../../Zotlabs/Module/Settings.php:254 +#: ../../Zotlabs/Module/Settings.php:289 msgid "Password verification failed." msgstr "" -#: ../../Zotlabs/Module/Settings.php:261 +#: ../../Zotlabs/Module/Settings.php:296 msgid "Passwords do not match. Password unchanged." msgstr "" -#: ../../Zotlabs/Module/Settings.php:265 +#: ../../Zotlabs/Module/Settings.php:300 msgid "Empty passwords are not allowed. Password unchanged." msgstr "" -#: ../../Zotlabs/Module/Settings.php:279 +#: ../../Zotlabs/Module/Settings.php:314 msgid "Password changed." msgstr "" -#: ../../Zotlabs/Module/Settings.php:281 +#: ../../Zotlabs/Module/Settings.php:316 msgid "Password update failed. Please try again." msgstr "" -#: ../../Zotlabs/Module/Settings.php:525 +#: ../../Zotlabs/Module/Settings.php:560 msgid "Settings updated." msgstr "" -#: ../../Zotlabs/Module/Settings.php:589 ../../Zotlabs/Module/Settings.php:615 -#: ../../Zotlabs/Module/Settings.php:651 +#: ../../Zotlabs/Module/Settings.php:624 ../../Zotlabs/Module/Settings.php:650 +#: ../../Zotlabs/Module/Settings.php:686 msgid "Add application" msgstr "" -#: ../../Zotlabs/Module/Settings.php:592 +#: ../../Zotlabs/Module/Settings.php:627 msgid "Name of application" msgstr "" -#: ../../Zotlabs/Module/Settings.php:593 ../../Zotlabs/Module/Settings.php:619 +#: ../../Zotlabs/Module/Settings.php:628 ../../Zotlabs/Module/Settings.php:654 msgid "Consumer Key" msgstr "" -#: ../../Zotlabs/Module/Settings.php:593 ../../Zotlabs/Module/Settings.php:594 +#: ../../Zotlabs/Module/Settings.php:628 ../../Zotlabs/Module/Settings.php:629 msgid "Automatically generated - change if desired. Max length 20" msgstr "" -#: ../../Zotlabs/Module/Settings.php:594 ../../Zotlabs/Module/Settings.php:620 +#: ../../Zotlabs/Module/Settings.php:629 ../../Zotlabs/Module/Settings.php:655 msgid "Consumer Secret" msgstr "" -#: ../../Zotlabs/Module/Settings.php:595 ../../Zotlabs/Module/Settings.php:621 +#: ../../Zotlabs/Module/Settings.php:630 ../../Zotlabs/Module/Settings.php:656 msgid "Redirect" msgstr "" -#: ../../Zotlabs/Module/Settings.php:595 +#: ../../Zotlabs/Module/Settings.php:630 msgid "" "Redirect URI - leave blank unless your application specifically requires this" msgstr "" -#: ../../Zotlabs/Module/Settings.php:596 ../../Zotlabs/Module/Settings.php:622 +#: ../../Zotlabs/Module/Settings.php:631 ../../Zotlabs/Module/Settings.php:657 msgid "Icon url" msgstr "" -#: ../../Zotlabs/Module/Settings.php:596 ../../Zotlabs/Module/Sources.php:112 +#: ../../Zotlabs/Module/Settings.php:631 ../../Zotlabs/Module/Sources.php:112 #: ../../Zotlabs/Module/Sources.php:147 msgid "Optional" msgstr "" -#: ../../Zotlabs/Module/Settings.php:607 +#: ../../Zotlabs/Module/Settings.php:642 msgid "Application not found." msgstr "" -#: ../../Zotlabs/Module/Settings.php:650 +#: ../../Zotlabs/Module/Settings.php:685 msgid "Connected Apps" msgstr "" -#: ../../Zotlabs/Module/Settings.php:654 +#: ../../Zotlabs/Module/Settings.php:689 msgid "Client key starts with" msgstr "" -#: ../../Zotlabs/Module/Settings.php:655 +#: ../../Zotlabs/Module/Settings.php:690 msgid "No name" msgstr "" -#: ../../Zotlabs/Module/Settings.php:656 +#: ../../Zotlabs/Module/Settings.php:691 msgid "Remove authorization" msgstr "" -#: ../../Zotlabs/Module/Settings.php:669 +#: ../../Zotlabs/Module/Settings.php:704 msgid "No feature settings configured" msgstr "" -#: ../../Zotlabs/Module/Settings.php:676 +#: ../../Zotlabs/Module/Settings.php:711 msgid "Feature/Addon Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:699 +#: ../../Zotlabs/Module/Settings.php:734 msgid "Account Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:700 +#: ../../Zotlabs/Module/Settings.php:735 msgid "Current Password" msgstr "" -#: ../../Zotlabs/Module/Settings.php:701 +#: ../../Zotlabs/Module/Settings.php:736 msgid "Enter New Password" msgstr "" -#: ../../Zotlabs/Module/Settings.php:702 +#: ../../Zotlabs/Module/Settings.php:737 msgid "Confirm New Password" msgstr "" -#: ../../Zotlabs/Module/Settings.php:702 +#: ../../Zotlabs/Module/Settings.php:737 msgid "Leave password fields blank unless changing" msgstr "" -#: ../../Zotlabs/Module/Settings.php:704 -#: ../../Zotlabs/Module/Settings.php:1041 +#: ../../Zotlabs/Module/Settings.php:739 +#: ../../Zotlabs/Module/Settings.php:1115 msgid "Email Address:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:706 +#: ../../Zotlabs/Module/Settings.php:741 msgid "Remove this account including all its channels" msgstr "" -#: ../../Zotlabs/Module/Settings.php:729 +#: ../../Zotlabs/Module/Settings.php:773 ../../include/widgets.php:614 +msgid "Guest Access Tokens" +msgstr "" + +#: ../../Zotlabs/Module/Settings.php:776 +msgid "Login Name" +msgstr "" + +#: ../../Zotlabs/Module/Settings.php:777 +msgid "Login Password" +msgstr "" + +#: ../../Zotlabs/Module/Settings.php:778 +msgid "Expires (yyyy-mm-dd)" +msgstr "" + +#: ../../Zotlabs/Module/Settings.php:803 msgid "Additional Features" msgstr "" -#: ../../Zotlabs/Module/Settings.php:753 +#: ../../Zotlabs/Module/Settings.php:827 msgid "Connector Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:792 +#: ../../Zotlabs/Module/Settings.php:866 msgid "No special theme for mobile devices" msgstr "" -#: ../../Zotlabs/Module/Settings.php:795 +#: ../../Zotlabs/Module/Settings.php:869 #, php-format msgid "%s - (Experimental)" msgstr "" -#: ../../Zotlabs/Module/Settings.php:837 +#: ../../Zotlabs/Module/Settings.php:911 msgid "Display Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:838 +#: ../../Zotlabs/Module/Settings.php:912 msgid "Theme Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:839 +#: ../../Zotlabs/Module/Settings.php:913 msgid "Custom Theme Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:840 +#: ../../Zotlabs/Module/Settings.php:914 msgid "Content Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:846 +#: ../../Zotlabs/Module/Settings.php:920 msgid "Display Theme:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:847 +#: ../../Zotlabs/Module/Settings.php:921 msgid "Mobile Theme:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:848 +#: ../../Zotlabs/Module/Settings.php:922 msgid "Preload images before rendering the page" msgstr "" -#: ../../Zotlabs/Module/Settings.php:848 +#: ../../Zotlabs/Module/Settings.php:922 msgid "" "The subjective page load time will be longer but the page will be ready when " "displayed" msgstr "" -#: ../../Zotlabs/Module/Settings.php:849 +#: ../../Zotlabs/Module/Settings.php:923 msgid "Enable user zoom on mobile devices" msgstr "" -#: ../../Zotlabs/Module/Settings.php:850 +#: ../../Zotlabs/Module/Settings.php:924 msgid "Update browser every xx seconds" msgstr "" -#: ../../Zotlabs/Module/Settings.php:850 +#: ../../Zotlabs/Module/Settings.php:924 msgid "Minimum of 10 seconds, no maximum" msgstr "" -#: ../../Zotlabs/Module/Settings.php:851 +#: ../../Zotlabs/Module/Settings.php:925 msgid "Maximum number of conversations to load at any time:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:851 +#: ../../Zotlabs/Module/Settings.php:925 msgid "Maximum of 100 items" msgstr "" -#: ../../Zotlabs/Module/Settings.php:852 +#: ../../Zotlabs/Module/Settings.php:926 msgid "Show emoticons (smilies) as images" msgstr "" -#: ../../Zotlabs/Module/Settings.php:853 +#: ../../Zotlabs/Module/Settings.php:927 msgid "Link post titles to source" msgstr "" -#: ../../Zotlabs/Module/Settings.php:854 +#: ../../Zotlabs/Module/Settings.php:928 msgid "System Page Layout Editor - (advanced)" msgstr "" -#: ../../Zotlabs/Module/Settings.php:857 +#: ../../Zotlabs/Module/Settings.php:931 msgid "Use blog/list mode on channel page" msgstr "" -#: ../../Zotlabs/Module/Settings.php:857 ../../Zotlabs/Module/Settings.php:858 +#: ../../Zotlabs/Module/Settings.php:931 ../../Zotlabs/Module/Settings.php:932 msgid "(comments displayed separately)" msgstr "" -#: ../../Zotlabs/Module/Settings.php:858 +#: ../../Zotlabs/Module/Settings.php:932 msgid "Use blog/list mode on grid page" msgstr "" -#: ../../Zotlabs/Module/Settings.php:859 +#: ../../Zotlabs/Module/Settings.php:933 msgid "Channel page max height of content (in pixels)" msgstr "" -#: ../../Zotlabs/Module/Settings.php:859 ../../Zotlabs/Module/Settings.php:860 +#: ../../Zotlabs/Module/Settings.php:933 ../../Zotlabs/Module/Settings.php:934 msgid "click to expand content exceeding this height" msgstr "" -#: ../../Zotlabs/Module/Settings.php:860 +#: ../../Zotlabs/Module/Settings.php:934 msgid "Grid page max height of content (in pixels)" msgstr "" -#: ../../Zotlabs/Module/Settings.php:894 +#: ../../Zotlabs/Module/Settings.php:968 msgid "Nobody except yourself" msgstr "" -#: ../../Zotlabs/Module/Settings.php:895 +#: ../../Zotlabs/Module/Settings.php:969 msgid "Only those you specifically allow" msgstr "" -#: ../../Zotlabs/Module/Settings.php:896 +#: ../../Zotlabs/Module/Settings.php:970 msgid "Approved connections" msgstr "" -#: ../../Zotlabs/Module/Settings.php:897 +#: ../../Zotlabs/Module/Settings.php:971 msgid "Any connections" msgstr "" -#: ../../Zotlabs/Module/Settings.php:898 +#: ../../Zotlabs/Module/Settings.php:972 msgid "Anybody on this website" msgstr "" -#: ../../Zotlabs/Module/Settings.php:899 +#: ../../Zotlabs/Module/Settings.php:973 msgid "Anybody in this network" msgstr "" -#: ../../Zotlabs/Module/Settings.php:900 +#: ../../Zotlabs/Module/Settings.php:974 msgid "Anybody authenticated" msgstr "" -#: ../../Zotlabs/Module/Settings.php:901 +#: ../../Zotlabs/Module/Settings.php:975 msgid "Anybody on the internet" msgstr "" -#: ../../Zotlabs/Module/Settings.php:976 +#: ../../Zotlabs/Module/Settings.php:1050 msgid "Publish your default profile in the network directory" msgstr "" -#: ../../Zotlabs/Module/Settings.php:981 +#: ../../Zotlabs/Module/Settings.php:1055 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "" -#: ../../Zotlabs/Module/Settings.php:990 +#: ../../Zotlabs/Module/Settings.php:1064 msgid "Your channel address is" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1032 +#: ../../Zotlabs/Module/Settings.php:1106 msgid "Channel Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1039 +#: ../../Zotlabs/Module/Settings.php:1113 msgid "Basic Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1040 ../../include/channel.php:1165 +#: ../../Zotlabs/Module/Settings.php:1114 ../../include/channel.php:1165 msgid "Full Name:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1042 +#: ../../Zotlabs/Module/Settings.php:1116 msgid "Your Timezone:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1043 +#: ../../Zotlabs/Module/Settings.php:1117 msgid "Default Post Location:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1043 +#: ../../Zotlabs/Module/Settings.php:1117 msgid "Geographical location to display on your posts" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1044 +#: ../../Zotlabs/Module/Settings.php:1118 msgid "Use Browser Location:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1046 +#: ../../Zotlabs/Module/Settings.php:1120 msgid "Adult Content" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1046 +#: ../../Zotlabs/Module/Settings.php:1120 msgid "" "This channel frequently or regularly publishes adult content. (Please tag " "any adult material and/or nudity with #NSFW)" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1048 +#: ../../Zotlabs/Module/Settings.php:1122 msgid "Security and Privacy Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1051 +#: ../../Zotlabs/Module/Settings.php:1125 msgid "Your permissions are already configured. Click to view/adjust" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1053 +#: ../../Zotlabs/Module/Settings.php:1127 msgid "Hide my online presence" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1053 +#: ../../Zotlabs/Module/Settings.php:1127 msgid "Prevents displaying in your profile that you are online" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1055 +#: ../../Zotlabs/Module/Settings.php:1129 msgid "Simple Privacy Settings:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1056 +#: ../../Zotlabs/Module/Settings.php:1130 msgid "" "Very Public - <em>extremely permissive (should be used with caution)</em>" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1057 +#: ../../Zotlabs/Module/Settings.php:1131 msgid "" "Typical - <em>default public, privacy when desired (similar to social " "network permissions but with improved privacy)</em>" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1058 +#: ../../Zotlabs/Module/Settings.php:1132 msgid "Private - <em>default private, never open or public</em>" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1059 +#: ../../Zotlabs/Module/Settings.php:1133 msgid "Blocked - <em>default blocked to/from everybody</em>" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1061 +#: ../../Zotlabs/Module/Settings.php:1135 msgid "Allow others to tag your posts" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1061 +#: ../../Zotlabs/Module/Settings.php:1135 msgid "" "Often used by the community to retro-actively flag inappropriate content" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1063 +#: ../../Zotlabs/Module/Settings.php:1137 msgid "Advanced Privacy Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1065 +#: ../../Zotlabs/Module/Settings.php:1139 msgid "Expire other channel content after this many days" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1065 +#: ../../Zotlabs/Module/Settings.php:1139 msgid "0 or blank to use the website limit." msgstr "" -#: ../../Zotlabs/Module/Settings.php:1065 +#: ../../Zotlabs/Module/Settings.php:1139 #, php-format msgid "This website expires after %d days." msgstr "" -#: ../../Zotlabs/Module/Settings.php:1065 +#: ../../Zotlabs/Module/Settings.php:1139 msgid "This website does not expire imported content." msgstr "" -#: ../../Zotlabs/Module/Settings.php:1065 +#: ../../Zotlabs/Module/Settings.php:1139 msgid "The website limit takes precedence if lower than your limit." msgstr "" -#: ../../Zotlabs/Module/Settings.php:1066 +#: ../../Zotlabs/Module/Settings.php:1140 msgid "Maximum Friend Requests/Day:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1066 +#: ../../Zotlabs/Module/Settings.php:1140 msgid "May reduce spam activity" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1067 +#: ../../Zotlabs/Module/Settings.php:1141 msgid "Default Post and Publish Permissions" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1069 +#: ../../Zotlabs/Module/Settings.php:1143 msgid "Use my default audience setting for the type of object published" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1072 +#: ../../Zotlabs/Module/Settings.php:1146 msgid "Channel permissions category:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1078 +#: ../../Zotlabs/Module/Settings.php:1152 msgid "Maximum private messages per day from unknown people:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1078 +#: ../../Zotlabs/Module/Settings.php:1152 msgid "Useful to reduce spamming" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1081 +#: ../../Zotlabs/Module/Settings.php:1155 msgid "Notification Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1082 +#: ../../Zotlabs/Module/Settings.php:1156 msgid "By default post a status message when:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1083 +#: ../../Zotlabs/Module/Settings.php:1157 msgid "accepting a friend request" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1084 +#: ../../Zotlabs/Module/Settings.php:1158 msgid "joining a forum/community" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1085 +#: ../../Zotlabs/Module/Settings.php:1159 msgid "making an <em>interesting</em> profile change" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1086 +#: ../../Zotlabs/Module/Settings.php:1160 msgid "Send a notification email when:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1087 +#: ../../Zotlabs/Module/Settings.php:1161 msgid "You receive a connection request" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1088 +#: ../../Zotlabs/Module/Settings.php:1162 msgid "Your connections are confirmed" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1089 +#: ../../Zotlabs/Module/Settings.php:1163 msgid "Someone writes on your profile wall" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1090 +#: ../../Zotlabs/Module/Settings.php:1164 msgid "Someone writes a followup comment" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1091 +#: ../../Zotlabs/Module/Settings.php:1165 msgid "You receive a private message" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1092 +#: ../../Zotlabs/Module/Settings.php:1166 msgid "You receive a friend suggestion" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1093 +#: ../../Zotlabs/Module/Settings.php:1167 msgid "You are tagged in a post" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1094 +#: ../../Zotlabs/Module/Settings.php:1168 msgid "You are poked/prodded/etc. in a post" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1097 +#: ../../Zotlabs/Module/Settings.php:1171 msgid "Show visual notifications including:" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1099 +#: ../../Zotlabs/Module/Settings.php:1173 msgid "Unseen grid activity" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1100 +#: ../../Zotlabs/Module/Settings.php:1174 msgid "Unseen channel activity" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1101 +#: ../../Zotlabs/Module/Settings.php:1175 msgid "Unseen private messages" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1101 -#: ../../Zotlabs/Module/Settings.php:1106 -#: ../../Zotlabs/Module/Settings.php:1107 -#: ../../Zotlabs/Module/Settings.php:1108 +#: ../../Zotlabs/Module/Settings.php:1175 +#: ../../Zotlabs/Module/Settings.php:1180 +#: ../../Zotlabs/Module/Settings.php:1181 +#: ../../Zotlabs/Module/Settings.php:1182 msgid "Recommended" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1102 +#: ../../Zotlabs/Module/Settings.php:1176 msgid "Upcoming events" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1103 +#: ../../Zotlabs/Module/Settings.php:1177 msgid "Events today" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1104 +#: ../../Zotlabs/Module/Settings.php:1178 msgid "Upcoming birthdays" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1104 +#: ../../Zotlabs/Module/Settings.php:1178 msgid "Not available in all themes" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1105 +#: ../../Zotlabs/Module/Settings.php:1179 msgid "System (personal) notifications" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1106 +#: ../../Zotlabs/Module/Settings.php:1180 msgid "System info messages" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1107 +#: ../../Zotlabs/Module/Settings.php:1181 msgid "System critical alerts" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1108 +#: ../../Zotlabs/Module/Settings.php:1182 msgid "New connections" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1109 +#: ../../Zotlabs/Module/Settings.php:1183 msgid "System Registrations" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1110 +#: ../../Zotlabs/Module/Settings.php:1184 msgid "" "Also show new wall posts, private messages and connections under Notices" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1112 +#: ../../Zotlabs/Module/Settings.php:1186 msgid "Notify me of events this many days in advance" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1112 +#: ../../Zotlabs/Module/Settings.php:1186 msgid "Must be greater than 0" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1114 +#: ../../Zotlabs/Module/Settings.php:1188 msgid "Advanced Account/Page Type Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1115 +#: ../../Zotlabs/Module/Settings.php:1189 msgid "Change the behaviour of this account for special situations" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1118 +#: ../../Zotlabs/Module/Settings.php:1192 msgid "" "Please enable expert mode (in <a href=\"settings/features\">Settings > " "Additional features</a>) to adjust!" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1119 +#: ../../Zotlabs/Module/Settings.php:1193 msgid "Miscellaneous Settings" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1120 +#: ../../Zotlabs/Module/Settings.php:1194 msgid "Default photo upload folder" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1120 -#: ../../Zotlabs/Module/Settings.php:1121 +#: ../../Zotlabs/Module/Settings.php:1194 +#: ../../Zotlabs/Module/Settings.php:1195 msgid "%Y - current year, %m - current month" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1121 +#: ../../Zotlabs/Module/Settings.php:1195 msgid "Default file upload folder" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1123 +#: ../../Zotlabs/Module/Settings.php:1197 msgid "Personal menu to display in your channel pages" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1125 +#: ../../Zotlabs/Module/Settings.php:1199 msgid "Remove this channel." msgstr "" -#: ../../Zotlabs/Module/Settings.php:1126 +#: ../../Zotlabs/Module/Settings.php:1200 msgid "Firefox Share $Projectname provider" msgstr "" -#: ../../Zotlabs/Module/Settings.php:1127 +#: ../../Zotlabs/Module/Settings.php:1201 msgid "Start calendar week on monday" msgstr "" @@ -5628,7 +5649,7 @@ msgid "" msgstr "" #: ../../Zotlabs/Module/Setup.php:204 ../../Zotlabs/Module/Setup.php:266 -#: ../../Zotlabs/Module/Setup.php:727 +#: ../../Zotlabs/Module/Setup.php:722 msgid "Please see the file \"install/INSTALL.txt\"." msgstr "" @@ -5828,170 +5849,162 @@ msgid "mb_string PHP module" msgstr "" #: ../../Zotlabs/Module/Setup.php:496 -msgid "mcrypt PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:497 msgid "xml PHP module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:501 ../../Zotlabs/Module/Setup.php:503 +#: ../../Zotlabs/Module/Setup.php:500 ../../Zotlabs/Module/Setup.php:502 msgid "Apache mod_rewrite module" msgstr "" -#: ../../Zotlabs/Module/Setup.php:501 +#: ../../Zotlabs/Module/Setup.php:500 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:507 ../../Zotlabs/Module/Setup.php:510 +#: ../../Zotlabs/Module/Setup.php:506 ../../Zotlabs/Module/Setup.php:509 msgid "proc_open" msgstr "" -#: ../../Zotlabs/Module/Setup.php:507 +#: ../../Zotlabs/Module/Setup.php:506 msgid "" "Error: proc_open is required but is either not installed or has been " "disabled in php.ini" msgstr "" -#: ../../Zotlabs/Module/Setup.php:515 +#: ../../Zotlabs/Module/Setup.php:514 msgid "Error: libCURL PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:519 +#: ../../Zotlabs/Module/Setup.php:518 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:523 +#: ../../Zotlabs/Module/Setup.php:522 msgid "Error: openssl PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:527 +#: ../../Zotlabs/Module/Setup.php:526 msgid "" "Error: mysqli or postgres PHP module required but neither are installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:531 +#: ../../Zotlabs/Module/Setup.php:530 msgid "Error: mb_string PHP module required but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:535 -msgid "Error: mcrypt PHP module required but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:539 +#: ../../Zotlabs/Module/Setup.php:534 msgid "Error: xml PHP module required for DAV but not installed." msgstr "" -#: ../../Zotlabs/Module/Setup.php:557 +#: ../../Zotlabs/Module/Setup.php:552 msgid "" "The web installer needs to be able to create a file called \".htconfig.php\" " "in the top folder of your web server and it is unable to do so." msgstr "" -#: ../../Zotlabs/Module/Setup.php:558 +#: ../../Zotlabs/Module/Setup.php:553 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "" -#: ../../Zotlabs/Module/Setup.php:559 +#: ../../Zotlabs/Module/Setup.php:554 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named .htconfig.php in your Red top folder." msgstr "" -#: ../../Zotlabs/Module/Setup.php:560 +#: ../../Zotlabs/Module/Setup.php:555 msgid "" "You can alternatively skip this procedure and perform a manual installation. " "Please see the file \"install/INSTALL.txt\" for instructions." msgstr "" -#: ../../Zotlabs/Module/Setup.php:563 +#: ../../Zotlabs/Module/Setup.php:558 msgid ".htconfig.php is writable" msgstr "" -#: ../../Zotlabs/Module/Setup.php:577 +#: ../../Zotlabs/Module/Setup.php:572 msgid "" "Red uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "" -#: ../../Zotlabs/Module/Setup.php:578 +#: ../../Zotlabs/Module/Setup.php:573 #, php-format msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory %s under the top level web folder." msgstr "" -#: ../../Zotlabs/Module/Setup.php:579 ../../Zotlabs/Module/Setup.php:600 +#: ../../Zotlabs/Module/Setup.php:574 ../../Zotlabs/Module/Setup.php:595 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has " "write access to this folder." msgstr "" -#: ../../Zotlabs/Module/Setup.php:580 +#: ../../Zotlabs/Module/Setup.php:575 #, php-format msgid "" "Note: as a security measure, you should give the web server write access to " "%s only--not the template files (.tpl) that it contains." msgstr "" -#: ../../Zotlabs/Module/Setup.php:583 +#: ../../Zotlabs/Module/Setup.php:578 #, php-format msgid "%s is writable" msgstr "" -#: ../../Zotlabs/Module/Setup.php:599 +#: ../../Zotlabs/Module/Setup.php:594 msgid "" "This software uses the store directory to save uploaded files. The web " "server needs to have write access to the store directory under the Red top " "level folder" msgstr "" -#: ../../Zotlabs/Module/Setup.php:603 +#: ../../Zotlabs/Module/Setup.php:598 msgid "store is writable" msgstr "" -#: ../../Zotlabs/Module/Setup.php:636 +#: ../../Zotlabs/Module/Setup.php:631 msgid "" "SSL certificate cannot be validated. Fix certificate or disable https access " "to this site." msgstr "" -#: ../../Zotlabs/Module/Setup.php:637 +#: ../../Zotlabs/Module/Setup.php:632 msgid "" "If you have https access to your website or allow connections to TCP port " "443 (the https: port), you MUST use a browser-valid certificate. You MUST " "NOT use self-signed certificates!" msgstr "" -#: ../../Zotlabs/Module/Setup.php:638 +#: ../../Zotlabs/Module/Setup.php:633 msgid "" "This restriction is incorporated because public posts from you may for " "example contain references to images on your own hub." msgstr "" -#: ../../Zotlabs/Module/Setup.php:639 +#: ../../Zotlabs/Module/Setup.php:634 msgid "" "If your certificate is not recognized, members of other sites (who may " "themselves have valid certificates) will get a warning message on their own " "site complaining about security issues." msgstr "" -#: ../../Zotlabs/Module/Setup.php:640 +#: ../../Zotlabs/Module/Setup.php:635 msgid "" "This can cause usability issues elsewhere (not just on your own site) so we " "must insist on this requirement." msgstr "" -#: ../../Zotlabs/Module/Setup.php:641 +#: ../../Zotlabs/Module/Setup.php:636 msgid "" "Providers are available that issue free certificates which are browser-valid." msgstr "" -#: ../../Zotlabs/Module/Setup.php:643 +#: ../../Zotlabs/Module/Setup.php:638 msgid "" "If you are confident that the certificate is valid and signed by a trusted " "authority, check to see if you have failed to install an intermediate cert. " @@ -5999,36 +6012,36 @@ msgid "" "server communications." msgstr "" -#: ../../Zotlabs/Module/Setup.php:646 +#: ../../Zotlabs/Module/Setup.php:641 msgid "SSL certificate validation" msgstr "" -#: ../../Zotlabs/Module/Setup.php:652 +#: ../../Zotlabs/Module/Setup.php:647 msgid "" "Url rewrite in .htaccess is not working. Check your server configuration." "Test: " msgstr "" -#: ../../Zotlabs/Module/Setup.php:655 +#: ../../Zotlabs/Module/Setup.php:650 msgid "Url rewrite is working" msgstr "" -#: ../../Zotlabs/Module/Setup.php:664 +#: ../../Zotlabs/Module/Setup.php:659 msgid "" "The database configuration file \".htconfig.php\" could not be written. " "Please use the enclosed text to create a configuration file in your web " "server root." msgstr "" -#: ../../Zotlabs/Module/Setup.php:688 +#: ../../Zotlabs/Module/Setup.php:683 msgid "Errors encountered creating database tables." msgstr "" -#: ../../Zotlabs/Module/Setup.php:725 +#: ../../Zotlabs/Module/Setup.php:720 msgid "<h1>What next</h1>" msgstr "" -#: ../../Zotlabs/Module/Setup.php:726 +#: ../../Zotlabs/Module/Setup.php:721 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the poller." msgstr "" @@ -6122,7 +6135,7 @@ msgstr "" msgid "*" msgstr "" -#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:630 +#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:639 #: ../../include/features.php:72 msgid "Channel Sources" msgstr "" @@ -6204,7 +6217,7 @@ msgid "post" msgstr "" #: ../../Zotlabs/Module/Tagger.php:57 ../../include/conversation.php:150 -#: ../../include/text.php:1925 +#: ../../include/text.php:1929 msgid "comment" msgstr "" @@ -6225,20 +6238,20 @@ msgstr "" msgid "Select a tag to remove: " msgstr "" -#: ../../Zotlabs/Module/Webpages.php:192 ../../Zotlabs/Lib/Apps.php:218 -#: ../../include/conversation.php:1700 ../../include/nav.php:106 +#: ../../Zotlabs/Module/Webpages.php:191 ../../Zotlabs/Lib/Apps.php:218 +#: ../../include/nav.php:106 ../../include/conversation.php:1700 msgid "Webpages" msgstr "" -#: ../../Zotlabs/Module/Webpages.php:203 ../../include/page_widgets.php:44 +#: ../../Zotlabs/Module/Webpages.php:202 ../../include/page_widgets.php:44 msgid "Actions" msgstr "" -#: ../../Zotlabs/Module/Webpages.php:204 ../../include/page_widgets.php:45 +#: ../../Zotlabs/Module/Webpages.php:203 ../../include/page_widgets.php:45 msgid "Page Link" msgstr "" -#: ../../Zotlabs/Module/Webpages.php:205 +#: ../../Zotlabs/Module/Webpages.php:204 msgid "Page Title" msgstr "" @@ -6247,8 +6260,8 @@ msgid "Not found" msgstr "" #: ../../Zotlabs/Module/Wiki.php:92 ../../Zotlabs/Lib/Apps.php:219 -#: ../../include/conversation.php:1710 ../../include/conversation.php:1713 -#: ../../include/nav.php:108 ../../include/features.php:55 +#: ../../include/nav.php:108 ../../include/conversation.php:1710 +#: ../../include/conversation.php:1713 ../../include/features.php:55 msgid "Wiki" msgstr "" @@ -6627,8 +6640,8 @@ msgstr "" msgid "Channel Home" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:223 ../../include/conversation.php:1664 -#: ../../include/conversation.php:1667 ../../include/nav.php:203 +#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:203 +#: ../../include/conversation.php:1664 ../../include/conversation.php:1667 msgid "Events" msgstr "" @@ -6660,7 +6673,7 @@ msgstr "" msgid "Invite" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1444 +#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1475 msgid "Features" msgstr "" @@ -6848,888 +6861,829 @@ msgstr "" msgid "Video" msgstr "" -#: ../../include/Import/import_diaspora.php:16 -msgid "No username found in import file." +#: ../../Zotlabs/Lib/PermissionDescription.php:31 +#: ../../include/acl_selectors.php:230 +msgid "Visible to your default audience" msgstr "" -#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:50 -msgid "Unable to create a unique channel address. Import failed." +#: ../../Zotlabs/Lib/PermissionDescription.php:115 +#: ../../include/acl_selectors.php:266 +msgid "Only me" msgstr "" -#: ../../include/dba/dba_driver.php:171 -#, php-format -msgid "Cannot locate DNS info for database server '%s'" +#: ../../Zotlabs/Lib/PermissionDescription.php:116 +msgid "Public" msgstr "" -#: ../../include/acl_selectors.php:232 -#: ../../include/PermissionDescription.php:31 -msgid "Visible to your default audience" +#: ../../Zotlabs/Lib/PermissionDescription.php:117 +msgid "Anybody in the $Projectname network" msgstr "" -#: ../../include/acl_selectors.php:268 -#: ../../include/PermissionDescription.php:115 -msgid "Only me" +#: ../../Zotlabs/Lib/PermissionDescription.php:118 +#, php-format +msgid "Any account on %s" msgstr "" -#: ../../include/acl_selectors.php:271 -msgid "Who can see this?" +#: ../../Zotlabs/Lib/PermissionDescription.php:119 +msgid "Any of my connections" msgstr "" -#: ../../include/acl_selectors.php:272 -msgid "Custom selection" +#: ../../Zotlabs/Lib/PermissionDescription.php:120 +msgid "Only connections I specifically allow" msgstr "" -#: ../../include/acl_selectors.php:273 -msgid "" -"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit " -"the scope of \"Show\"." +#: ../../Zotlabs/Lib/PermissionDescription.php:121 +msgid "Anybody authenticated (could include visitors from other networks)" msgstr "" -#: ../../include/acl_selectors.php:274 -msgid "Show" +#: ../../Zotlabs/Lib/PermissionDescription.php:122 +msgid "Any connections including those who haven't yet been approved" msgstr "" -#: ../../include/acl_selectors.php:275 -msgid "Don't show" +#: ../../Zotlabs/Lib/PermissionDescription.php:161 +msgid "" +"This is your default setting for the audience of your normal stream, and " +"posts." msgstr "" -#: ../../include/acl_selectors.php:281 -msgid "Other networks and post services" +#: ../../Zotlabs/Lib/PermissionDescription.php:162 +msgid "" +"This is your default setting for who can view your default channel profile" msgstr "" -#: ../../include/acl_selectors.php:311 -#, php-format +#: ../../Zotlabs/Lib/PermissionDescription.php:163 +msgid "This is your default setting for who can view your connections" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:164 msgid "" -"Post permissions %s cannot be changed %s after a post is shared.</br />These " -"permissions set who is allowed to view the post." +"This is your default setting for who can view your file storage and photos" msgstr "" -#: ../../include/conversation.php:204 -#, php-format -msgid "%1$s is now connected with %2$s" +#: ../../Zotlabs/Lib/PermissionDescription.php:165 +msgid "This is your default setting for the audience of your webpages" msgstr "" -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" +#: ../../include/Import/import_diaspora.php:16 +msgid "No username found in import file." msgstr "" -#: ../../include/conversation.php:243 ../../include/text.php:1009 -#: ../../include/text.php:1014 -msgid "poked" +#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:50 +msgid "Unable to create a unique channel address. Import failed." msgstr "" -#: ../../include/conversation.php:694 +#: ../../include/dba/dba_driver.php:171 #, php-format -msgid "View %s's profile @ %s" +msgid "Cannot locate DNS info for database server '%s'" msgstr "" -#: ../../include/conversation.php:713 -msgid "Categories:" +#: ../../include/widgets.php:46 ../../include/widgets.php:429 +#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 +#: ../../include/contact_widgets.php:91 +msgid "Categories" msgstr "" -#: ../../include/conversation.php:714 -msgid "Filed under:" +#: ../../include/widgets.php:103 +msgid "System" msgstr "" -#: ../../include/conversation.php:741 -msgid "View in context" +#: ../../include/widgets.php:106 +msgid "New App" msgstr "" -#: ../../include/conversation.php:850 -msgid "remove" +#: ../../include/widgets.php:154 +msgid "Suggestions" msgstr "" -#: ../../include/conversation.php:854 ../../include/nav.php:249 -msgid "Loading..." +#: ../../include/widgets.php:155 +msgid "See more..." msgstr "" -#: ../../include/conversation.php:855 -msgid "Delete Selected Items" +#: ../../include/widgets.php:175 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." msgstr "" -#: ../../include/conversation.php:951 -msgid "View Source" +#: ../../include/widgets.php:181 +msgid "Add New Connection" msgstr "" -#: ../../include/conversation.php:952 -msgid "Follow Thread" +#: ../../include/widgets.php:182 +msgid "Enter channel address" msgstr "" -#: ../../include/conversation.php:953 -msgid "Unfollow Thread" +#: ../../include/widgets.php:183 +msgid "Examples: bob@example.com, https://example.com/barbara" msgstr "" -#: ../../include/conversation.php:958 -msgid "Activity/Posts" +#: ../../include/widgets.php:199 +msgid "Notes" msgstr "" -#: ../../include/conversation.php:960 -msgid "Edit Connection" +#: ../../include/widgets.php:273 +msgid "Remove term" msgstr "" -#: ../../include/conversation.php:961 -msgid "Message" +#: ../../include/widgets.php:281 ../../include/features.php:85 +msgid "Saved Searches" msgstr "" -#: ../../include/conversation.php:1078 -#, php-format -msgid "%s likes this." +#: ../../include/widgets.php:282 ../../include/group.php:316 +msgid "add" msgstr "" -#: ../../include/conversation.php:1078 -#, php-format -msgid "%s doesn't like this." +#: ../../include/widgets.php:310 ../../include/features.php:99 +#: ../../include/contact_widgets.php:53 +msgid "Saved Folders" msgstr "" -#: ../../include/conversation.php:1082 -#, php-format -msgid "<span %1$s>%2$d people</span> like this." -msgid_plural "<span %1$s>%2$d people</span> like this." -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1084 -#, php-format -msgid "<span %1$s>%2$d people</span> don't like this." -msgid_plural "<span %1$s>%2$d people</span> don't like this." -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1090 -msgid "and" +#: ../../include/widgets.php:313 ../../include/widgets.php:432 +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 +msgid "Everything" msgstr "" -#: ../../include/conversation.php:1093 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1094 -#, php-format -msgid "%s like this." +#: ../../include/widgets.php:354 +msgid "Archives" msgstr "" -#: ../../include/conversation.php:1094 -#, php-format -msgid "%s don't like this." +#: ../../include/widgets.php:516 +msgid "Refresh" msgstr "" -#: ../../include/conversation.php:1133 -msgid "Set your location" +#: ../../include/widgets.php:556 +msgid "Account settings" msgstr "" -#: ../../include/conversation.php:1134 -msgid "Clear browser location" +#: ../../include/widgets.php:562 +msgid "Channel settings" msgstr "" -#: ../../include/conversation.php:1182 -msgid "Tag term:" +#: ../../include/widgets.php:571 +msgid "Additional features" msgstr "" -#: ../../include/conversation.php:1183 -msgid "Where are you right now?" +#: ../../include/widgets.php:578 +msgid "Feature/Addon settings" msgstr "" -#: ../../include/conversation.php:1221 -msgid "Page link name" +#: ../../include/widgets.php:584 +msgid "Display settings" msgstr "" -#: ../../include/conversation.php:1224 -msgid "Post as" +#: ../../include/widgets.php:591 +msgid "Manage locations" msgstr "" -#: ../../include/conversation.php:1238 -msgid "Toggle voting" +#: ../../include/widgets.php:600 +msgid "Export channel" msgstr "" -#: ../../include/conversation.php:1246 -msgid "Categories (optional, comma-separated list)" +#: ../../include/widgets.php:607 +msgid "Connected apps" msgstr "" -#: ../../include/conversation.php:1269 -msgid "Set publish date" +#: ../../include/widgets.php:631 +msgid "Premium Channel Settings" msgstr "" -#: ../../include/conversation.php:1518 -msgid "Discover" +#: ../../include/widgets.php:660 +msgid "Private Mail Menu" msgstr "" -#: ../../include/conversation.php:1521 -msgid "Imported public streams" +#: ../../include/widgets.php:662 +msgid "Combined View" msgstr "" -#: ../../include/conversation.php:1526 -msgid "Commented Order" +#: ../../include/widgets.php:667 ../../include/nav.php:198 +msgid "Inbox" msgstr "" -#: ../../include/conversation.php:1529 -msgid "Sort by Comment Date" +#: ../../include/widgets.php:672 ../../include/nav.php:199 +msgid "Outbox" msgstr "" -#: ../../include/conversation.php:1533 -msgid "Posted Order" +#: ../../include/widgets.php:677 ../../include/nav.php:200 +msgid "New Message" msgstr "" -#: ../../include/conversation.php:1536 -msgid "Sort by Post Date" +#: ../../include/widgets.php:694 ../../include/widgets.php:706 +msgid "Conversations" msgstr "" -#: ../../include/conversation.php:1544 -msgid "Posts that mention or involve you" +#: ../../include/widgets.php:698 +msgid "Received Messages" msgstr "" -#: ../../include/conversation.php:1553 -msgid "Activity Stream - by date" +#: ../../include/widgets.php:702 +msgid "Sent Messages" msgstr "" -#: ../../include/conversation.php:1559 -msgid "Starred" +#: ../../include/widgets.php:716 +msgid "No messages." msgstr "" -#: ../../include/conversation.php:1562 -msgid "Favourite Posts" +#: ../../include/widgets.php:734 +msgid "Delete conversation" msgstr "" -#: ../../include/conversation.php:1569 -msgid "Spam" +#: ../../include/widgets.php:760 +msgid "Events Tools" msgstr "" -#: ../../include/conversation.php:1572 -msgid "Posts flagged as SPAM" +#: ../../include/widgets.php:761 +msgid "Export Calendar" msgstr "" -#: ../../include/conversation.php:1629 -msgid "Status Messages and Posts" +#: ../../include/widgets.php:762 +msgid "Import Calendar" msgstr "" -#: ../../include/conversation.php:1638 -msgid "About" +#: ../../include/widgets.php:836 ../../include/conversation.php:1677 +#: ../../include/conversation.php:1680 +msgid "Chatrooms" msgstr "" -#: ../../include/conversation.php:1641 -msgid "Profile Details" +#: ../../include/widgets.php:840 +msgid "Overview" msgstr "" -#: ../../include/conversation.php:1650 ../../include/photos.php:506 -msgid "Photo Albums" +#: ../../include/widgets.php:847 +msgid "Chat Members" msgstr "" -#: ../../include/conversation.php:1657 -msgid "Files and Storage" +#: ../../include/widgets.php:869 +msgid "Wiki List" msgstr "" -#: ../../include/conversation.php:1677 ../../include/conversation.php:1680 -#: ../../include/widgets.php:827 -msgid "Chatrooms" +#: ../../include/widgets.php:907 +msgid "Wiki Pages" msgstr "" -#: ../../include/conversation.php:1690 ../../include/nav.php:102 -msgid "Bookmarks" +#: ../../include/widgets.php:942 +msgid "Bookmarked Chatrooms" msgstr "" -#: ../../include/conversation.php:1693 -msgid "Saved Bookmarks" +#: ../../include/widgets.php:965 +msgid "Suggested Chatrooms" msgstr "" -#: ../../include/conversation.php:1703 -msgid "Manage Webpages" +#: ../../include/widgets.php:1111 ../../include/widgets.php:1223 +msgid "photo/image" msgstr "" -#: ../../include/conversation.php:1768 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1771 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1774 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "" -msgstr[1] "" +#: ../../include/widgets.php:1166 +msgid "Click to show more" +msgstr "" -#: ../../include/conversation.php:1777 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "" -msgstr[1] "" +#: ../../include/widgets.php:1317 +msgid "Rating Tools" +msgstr "" -#: ../../include/conversation.php:1780 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "" -msgstr[1] "" +#: ../../include/widgets.php:1321 ../../include/widgets.php:1323 +msgid "Rate Me" +msgstr "" -#: ../../include/conversation.php:1783 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "" -msgstr[1] "" +#: ../../include/widgets.php:1326 +msgid "View Ratings" +msgstr "" -#: ../../include/connections.php:95 -msgid "New window" +#: ../../include/widgets.php:1405 +msgid "Forums" msgstr "" -#: ../../include/connections.php:96 -msgid "Open the selected location in a different window or browser tab" +#: ../../include/widgets.php:1434 +msgid "Tasks" msgstr "" -#: ../../include/connections.php:214 -#, php-format -msgid "User '%s' deleted" +#: ../../include/widgets.php:1443 +msgid "Documentation" msgstr "" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"<strong>may</strong> apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." +#: ../../include/widgets.php:1445 +msgid "Project/Site Information" msgstr "" -#: ../../include/group.php:248 -msgid "Add new connections to this privacy group" +#: ../../include/widgets.php:1446 +msgid "For Members" msgstr "" -#: ../../include/group.php:289 -msgid "edit" +#: ../../include/widgets.php:1447 +msgid "For Administrators" msgstr "" -#: ../../include/group.php:311 ../../include/features.php:84 -msgid "Privacy Groups" +#: ../../include/widgets.php:1448 +msgid "For Developers" msgstr "" -#: ../../include/group.php:312 -msgid "Edit group" +#: ../../include/widgets.php:1472 ../../include/widgets.php:1510 +msgid "Member registrations waiting for confirmation" msgstr "" -#: ../../include/group.php:313 -msgid "Add privacy group" +#: ../../include/widgets.php:1478 +msgid "Inspect queue" msgstr "" -#: ../../include/group.php:314 -msgid "Channels not in any privacy group" +#: ../../include/widgets.php:1480 +msgid "DB updates" msgstr "" -#: ../../include/group.php:316 ../../include/widgets.php:282 -msgid "add" +#: ../../include/widgets.php:1505 ../../include/nav.php:218 +msgid "Admin" msgstr "" -#: ../../include/js_strings.php:5 -msgid "Delete this item?" +#: ../../include/widgets.php:1506 +msgid "Plugin Features" msgstr "" -#: ../../include/js_strings.php:8 -#, php-format -msgid "%s show less" +#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703 +msgid "Logout" msgstr "" -#: ../../include/js_strings.php:9 -#, php-format -msgid "%s expand" +#: ../../include/nav.php:82 ../../include/nav.php:115 +msgid "End this session" msgstr "" -#: ../../include/js_strings.php:10 -#, php-format -msgid "%s collapse" +#: ../../include/nav.php:85 ../../include/nav.php:146 +msgid "Home" msgstr "" -#: ../../include/js_strings.php:11 -msgid "Password too short" +#: ../../include/nav.php:85 +msgid "Your posts and conversations" msgstr "" -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" +#: ../../include/nav.php:86 +msgid "Your profile page" msgstr "" -#: ../../include/js_strings.php:13 -msgid "everybody" +#: ../../include/nav.php:88 +msgid "Manage/Edit profiles" msgstr "" -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" +#: ../../include/nav.php:90 ../../include/channel.php:965 +msgid "Edit Profile" msgstr "" -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" +#: ../../include/nav.php:90 +msgid "Edit your profile" msgstr "" -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." +#: ../../include/nav.php:92 +msgid "Your photos" msgstr "" -#: ../../include/js_strings.php:17 -msgid "close all" +#: ../../include/nav.php:93 +msgid "Your files" msgstr "" -#: ../../include/js_strings.php:18 -msgid "Nothing new here" +#: ../../include/nav.php:96 +msgid "Your chatrooms" msgstr "" -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" +#: ../../include/nav.php:102 ../../include/conversation.php:1690 +msgid "Bookmarks" msgstr "" -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" +#: ../../include/nav.php:102 +msgid "Your bookmarks" msgstr "" -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" +#: ../../include/nav.php:106 +msgid "Your webpages" msgstr "" -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" +#: ../../include/nav.php:108 +msgid "Your wiki" msgstr "" -#: ../../include/js_strings.php:27 -msgid "timeago.prefixAgo" +#: ../../include/nav.php:112 +msgid "Sign in" msgstr "" -#: ../../include/js_strings.php:28 -msgid "timeago.prefixFromNow" +#: ../../include/nav.php:129 +#, php-format +msgid "%s - click to logout" msgstr "" -#: ../../include/js_strings.php:29 -msgid "ago" +#: ../../include/nav.php:132 +msgid "Remote authentication" msgstr "" -#: ../../include/js_strings.php:30 -msgid "from now" +#: ../../include/nav.php:132 +msgid "Click to authenticate to your home hub" msgstr "" -#: ../../include/js_strings.php:31 -msgid "less than a minute" +#: ../../include/nav.php:146 +msgid "Home Page" msgstr "" -#: ../../include/js_strings.php:32 -msgid "about a minute" +#: ../../include/nav.php:149 +msgid "Create an account" msgstr "" -#: ../../include/js_strings.php:33 -#, php-format -msgid "%d minutes" +#: ../../include/nav.php:161 +msgid "Help and documentation" msgstr "" -#: ../../include/js_strings.php:34 -msgid "about an hour" +#: ../../include/nav.php:165 +msgid "Applications, utilities, links, games" msgstr "" -#: ../../include/js_strings.php:35 -#, php-format -msgid "about %d hours" +#: ../../include/nav.php:167 +msgid "Search site @name, #tag, ?docs, content" msgstr "" -#: ../../include/js_strings.php:36 -msgid "a day" +#: ../../include/nav.php:169 +msgid "Channel Directory" msgstr "" -#: ../../include/js_strings.php:37 -#, php-format -msgid "%d days" +#: ../../include/nav.php:181 +msgid "Your grid" msgstr "" -#: ../../include/js_strings.php:38 -msgid "about a month" +#: ../../include/nav.php:182 +msgid "Mark all grid notifications seen" msgstr "" -#: ../../include/js_strings.php:39 -#, php-format -msgid "%d months" +#: ../../include/nav.php:184 +msgid "Channel home" msgstr "" -#: ../../include/js_strings.php:40 -msgid "about a year" +#: ../../include/nav.php:185 +msgid "Mark all channel notifications seen" msgstr "" -#: ../../include/js_strings.php:41 -#, php-format -msgid "%d years" +#: ../../include/nav.php:191 +msgid "Notices" msgstr "" -#: ../../include/js_strings.php:42 -msgid " " +#: ../../include/nav.php:191 +msgid "Notifications" msgstr "" -#: ../../include/js_strings.php:43 -msgid "timeago.numbers" +#: ../../include/nav.php:192 +msgid "See all notifications" msgstr "" -#: ../../include/js_strings.php:45 ../../include/text.php:1237 -msgid "January" +#: ../../include/nav.php:195 +msgid "Private mail" msgstr "" -#: ../../include/js_strings.php:46 ../../include/text.php:1237 -msgid "February" +#: ../../include/nav.php:196 +msgid "See all private messages" msgstr "" -#: ../../include/js_strings.php:47 ../../include/text.php:1237 -msgid "March" +#: ../../include/nav.php:197 +msgid "Mark all private messages seen" msgstr "" -#: ../../include/js_strings.php:48 ../../include/text.php:1237 -msgid "April" +#: ../../include/nav.php:203 +msgid "Event Calendar" msgstr "" -#: ../../include/js_strings.php:49 -msgctxt "long" -msgid "May" +#: ../../include/nav.php:204 +msgid "See all events" msgstr "" -#: ../../include/js_strings.php:50 ../../include/text.php:1237 -msgid "June" +#: ../../include/nav.php:205 +msgid "Mark all events seen" msgstr "" -#: ../../include/js_strings.php:51 ../../include/text.php:1237 -msgid "July" +#: ../../include/nav.php:208 +msgid "Manage Your Channels" msgstr "" -#: ../../include/js_strings.php:52 ../../include/text.php:1237 -msgid "August" +#: ../../include/nav.php:210 +msgid "Account/Channel Settings" msgstr "" -#: ../../include/js_strings.php:53 ../../include/text.php:1237 -msgid "September" +#: ../../include/nav.php:218 +msgid "Site Setup and Configuration" msgstr "" -#: ../../include/js_strings.php:54 ../../include/text.php:1237 -msgid "October" +#: ../../include/nav.php:249 ../../include/conversation.php:854 +msgid "Loading..." msgstr "" -#: ../../include/js_strings.php:55 ../../include/text.php:1237 -msgid "November" +#: ../../include/nav.php:254 +msgid "@name, #tag, ?doc, content" msgstr "" -#: ../../include/js_strings.php:56 ../../include/text.php:1237 -msgid "December" +#: ../../include/nav.php:255 +msgid "Please wait..." msgstr "" -#: ../../include/js_strings.php:57 -msgid "Jan" +#: ../../include/network.php:704 +msgid "view full size" msgstr "" -#: ../../include/js_strings.php:58 -msgid "Feb" +#: ../../include/network.php:1930 ../../include/account.php:317 +#: ../../include/account.php:344 ../../include/account.php:404 +msgid "Administrator" msgstr "" -#: ../../include/js_strings.php:59 -msgid "Mar" +#: ../../include/network.php:1944 +msgid "No Subject" msgstr "" -#: ../../include/js_strings.php:60 -msgid "Apr" +#: ../../include/network.php:2198 ../../include/network.php:2199 +msgid "Friendica" msgstr "" -#: ../../include/js_strings.php:61 -msgctxt "short" -msgid "May" +#: ../../include/network.php:2200 +msgid "OStatus" msgstr "" -#: ../../include/js_strings.php:62 -msgid "Jun" +#: ../../include/network.php:2201 +msgid "GNU-Social" msgstr "" -#: ../../include/js_strings.php:63 -msgid "Jul" +#: ../../include/network.php:2202 +msgid "RSS/Atom" msgstr "" -#: ../../include/js_strings.php:64 -msgid "Aug" +#: ../../include/network.php:2204 +msgid "Diaspora" msgstr "" -#: ../../include/js_strings.php:65 -msgid "Sep" +#: ../../include/network.php:2205 +msgid "Facebook" msgstr "" -#: ../../include/js_strings.php:66 -msgid "Oct" +#: ../../include/network.php:2206 +msgid "Zot" msgstr "" -#: ../../include/js_strings.php:67 -msgid "Nov" +#: ../../include/network.php:2207 +msgid "LinkedIn" msgstr "" -#: ../../include/js_strings.php:68 -msgid "Dec" +#: ../../include/network.php:2208 +msgid "XMPP/IM" msgstr "" -#: ../../include/js_strings.php:69 ../../include/text.php:1233 -msgid "Sunday" +#: ../../include/network.php:2209 +msgid "MySpace" msgstr "" -#: ../../include/js_strings.php:70 ../../include/text.php:1233 -msgid "Monday" +#: ../../include/oembed.php:325 +msgid "Embedded content" msgstr "" -#: ../../include/js_strings.php:71 ../../include/text.php:1233 -msgid "Tuesday" +#: ../../include/oembed.php:334 +msgid "Embedding disabled" msgstr "" -#: ../../include/js_strings.php:72 ../../include/text.php:1233 -msgid "Wednesday" +#: ../../include/page_widgets.php:7 +msgid "New Page" msgstr "" -#: ../../include/js_strings.php:73 ../../include/text.php:1233 -msgid "Thursday" +#: ../../include/page_widgets.php:46 +msgid "Title" msgstr "" -#: ../../include/js_strings.php:74 ../../include/text.php:1233 -msgid "Friday" +#: ../../include/photos.php:114 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" msgstr "" -#: ../../include/js_strings.php:75 ../../include/text.php:1233 -msgid "Saturday" +#: ../../include/photos.php:121 +msgid "Image file is empty." msgstr "" -#: ../../include/js_strings.php:76 -msgid "Sun" +#: ../../include/photos.php:259 +msgid "Photo storage failed." msgstr "" -#: ../../include/js_strings.php:77 -msgid "Mon" +#: ../../include/photos.php:299 +msgid "a new photo" msgstr "" -#: ../../include/js_strings.php:78 -msgid "Tue" +#: ../../include/photos.php:303 +#, php-format +msgctxt "photo_upload" +msgid "%1$s posted %2$s to %3$s" msgstr "" -#: ../../include/js_strings.php:79 -msgid "Wed" +#: ../../include/photos.php:506 ../../include/conversation.php:1650 +msgid "Photo Albums" msgstr "" -#: ../../include/js_strings.php:80 -msgid "Thu" +#: ../../include/photos.php:510 +msgid "Upload New Photos" msgstr "" -#: ../../include/js_strings.php:81 -msgid "Fri" +#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 +msgid "Tags" msgstr "" -#: ../../include/js_strings.php:82 -msgid "Sat" +#: ../../include/taxonomy.php:293 +msgid "Keywords" msgstr "" -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "today" +#: ../../include/taxonomy.php:314 +msgid "have" msgstr "" -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "month" +#: ../../include/taxonomy.php:314 +msgid "has" msgstr "" -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "week" +#: ../../include/taxonomy.php:315 +msgid "want" msgstr "" -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "day" +#: ../../include/taxonomy.php:315 +msgid "wants" msgstr "" -#: ../../include/js_strings.php:87 -msgctxt "calendar" -msgid "All day" +#: ../../include/taxonomy.php:316 +msgid "likes" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:115 ../../boot.php:1703 -msgid "Logout" +#: ../../include/taxonomy.php:317 +msgid "dislikes" msgstr "" -#: ../../include/nav.php:82 ../../include/nav.php:115 -msgid "End this session" +#: ../../include/follow.php:27 +msgid "Channel is blocked on this site." msgstr "" -#: ../../include/nav.php:85 ../../include/nav.php:146 -msgid "Home" +#: ../../include/follow.php:32 +msgid "Channel location missing." msgstr "" -#: ../../include/nav.php:85 -msgid "Your posts and conversations" +#: ../../include/follow.php:81 +msgid "Response from remote channel was incomplete." msgstr "" -#: ../../include/nav.php:86 -msgid "Your profile page" +#: ../../include/follow.php:98 +msgid "Channel was deleted and no longer exists." msgstr "" -#: ../../include/nav.php:88 -msgid "Manage/Edit profiles" +#: ../../include/follow.php:154 ../../include/follow.php:190 +msgid "Protocol disabled." msgstr "" -#: ../../include/nav.php:90 ../../include/channel.php:965 -msgid "Edit Profile" +#: ../../include/follow.php:178 +msgid "Channel discovery failed." msgstr "" -#: ../../include/nav.php:90 -msgid "Edit your profile" +#: ../../include/follow.php:216 +msgid "Cannot connect to yourself." msgstr "" -#: ../../include/nav.php:92 -msgid "Your photos" +#: ../../include/channel.php:32 +msgid "Unable to obtain identity information from database" msgstr "" -#: ../../include/nav.php:93 -msgid "Your files" +#: ../../include/channel.php:66 +msgid "Empty name" msgstr "" -#: ../../include/nav.php:96 -msgid "Your chatrooms" +#: ../../include/channel.php:69 +msgid "Name too long" msgstr "" -#: ../../include/nav.php:102 -msgid "Your bookmarks" +#: ../../include/channel.php:180 +msgid "No account identifier" msgstr "" -#: ../../include/nav.php:106 -msgid "Your webpages" +#: ../../include/channel.php:192 +msgid "Nickname is required." msgstr "" -#: ../../include/nav.php:108 -msgid "Your wiki" +#: ../../include/channel.php:206 +msgid "Reserved nickname. Please choose another." msgstr "" -#: ../../include/nav.php:112 -msgid "Sign in" +#: ../../include/channel.php:211 +msgid "" +"Nickname has unsupported characters or is already being used on this site." msgstr "" -#: ../../include/nav.php:129 -#, php-format -msgid "%s - click to logout" +#: ../../include/channel.php:287 +msgid "Unable to retrieve created identity" msgstr "" -#: ../../include/nav.php:132 -msgid "Remote authentication" +#: ../../include/channel.php:345 +msgid "Default Profile" msgstr "" -#: ../../include/nav.php:132 -msgid "Click to authenticate to your home hub" +#: ../../include/channel.php:815 +msgid "Requested channel is not available." msgstr "" -#: ../../include/nav.php:146 -msgid "Home Page" +#: ../../include/channel.php:962 +msgid "Create New Profile" msgstr "" -#: ../../include/nav.php:149 -msgid "Create an account" +#: ../../include/channel.php:982 +msgid "Visible to everybody" msgstr "" -#: ../../include/nav.php:161 -msgid "Help and documentation" +#: ../../include/channel.php:1055 ../../include/channel.php:1167 +msgid "Gender:" msgstr "" -#: ../../include/nav.php:165 -msgid "Applications, utilities, links, games" +#: ../../include/channel.php:1056 ../../include/channel.php:1211 +msgid "Status:" msgstr "" -#: ../../include/nav.php:167 -msgid "Search site @name, #tag, ?docs, content" +#: ../../include/channel.php:1057 ../../include/channel.php:1222 +msgid "Homepage:" msgstr "" -#: ../../include/nav.php:169 -msgid "Channel Directory" +#: ../../include/channel.php:1058 +msgid "Online Now" msgstr "" -#: ../../include/nav.php:181 -msgid "Your grid" +#: ../../include/channel.php:1172 +msgid "Like this channel" msgstr "" -#: ../../include/nav.php:182 -msgid "Mark all grid notifications seen" +#: ../../include/channel.php:1196 +msgid "j F, Y" msgstr "" -#: ../../include/nav.php:184 -msgid "Channel home" +#: ../../include/channel.php:1197 +msgid "j F" msgstr "" -#: ../../include/nav.php:185 -msgid "Mark all channel notifications seen" +#: ../../include/channel.php:1204 +msgid "Birthday:" msgstr "" -#: ../../include/nav.php:191 -msgid "Notices" +#: ../../include/channel.php:1217 +#, php-format +msgid "for %1$d %2$s" msgstr "" -#: ../../include/nav.php:191 -msgid "Notifications" +#: ../../include/channel.php:1220 +msgid "Sexual Preference:" msgstr "" -#: ../../include/nav.php:192 -msgid "See all notifications" +#: ../../include/channel.php:1226 +msgid "Tags:" msgstr "" -#: ../../include/nav.php:195 -msgid "Private mail" +#: ../../include/channel.php:1228 +msgid "Political Views:" msgstr "" -#: ../../include/nav.php:196 -msgid "See all private messages" +#: ../../include/channel.php:1230 +msgid "Religion:" msgstr "" -#: ../../include/nav.php:197 -msgid "Mark all private messages seen" +#: ../../include/channel.php:1234 +msgid "Hobbies/Interests:" msgstr "" -#: ../../include/nav.php:198 ../../include/widgets.php:658 -msgid "Inbox" +#: ../../include/channel.php:1236 +msgid "Likes:" msgstr "" -#: ../../include/nav.php:199 ../../include/widgets.php:663 -msgid "Outbox" +#: ../../include/channel.php:1238 +msgid "Dislikes:" msgstr "" -#: ../../include/nav.php:200 ../../include/widgets.php:668 -msgid "New Message" +#: ../../include/channel.php:1240 +msgid "Contact information and Social Networks:" msgstr "" -#: ../../include/nav.php:203 -msgid "Event Calendar" +#: ../../include/channel.php:1242 +msgid "My other channels:" msgstr "" -#: ../../include/nav.php:204 -msgid "See all events" +#: ../../include/channel.php:1244 +msgid "Musical interests:" msgstr "" -#: ../../include/nav.php:205 -msgid "Mark all events seen" +#: ../../include/channel.php:1246 +msgid "Books, literature:" msgstr "" -#: ../../include/nav.php:208 -msgid "Manage Your Channels" +#: ../../include/channel.php:1248 +msgid "Television:" msgstr "" -#: ../../include/nav.php:210 -msgid "Account/Channel Settings" +#: ../../include/channel.php:1250 +msgid "Film/dance/culture/entertainment:" msgstr "" -#: ../../include/nav.php:218 ../../include/widgets.php:1474 -msgid "Admin" +#: ../../include/channel.php:1252 +msgid "Love/Romance:" msgstr "" -#: ../../include/nav.php:218 -msgid "Site Setup and Configuration" +#: ../../include/channel.php:1254 +msgid "Work/employment:" msgstr "" -#: ../../include/nav.php:254 -msgid "@name, #tag, ?doc, content" +#: ../../include/channel.php:1256 +msgid "School/education:" msgstr "" -#: ../../include/nav.php:255 -msgid "Please wait..." +#: ../../include/channel.php:1277 +msgid "Like this thing" msgstr "" #: ../../include/selectors.php:30 @@ -8107,1240 +8061,1349 @@ msgstr "" msgid "Happy Birthday %1$s" msgstr "" -#: ../../include/follow.php:27 -msgid "Channel is blocked on this site." +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" msgstr "" -#: ../../include/follow.php:32 -msgid "Channel location missing." +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" msgstr "" -#: ../../include/follow.php:81 -msgid "Response from remote channel was incomplete." +#: ../../include/conversation.php:243 ../../include/text.php:1013 +#: ../../include/text.php:1018 +msgid "poked" msgstr "" -#: ../../include/follow.php:98 -msgid "Channel was deleted and no longer exists." +#: ../../include/conversation.php:694 +#, php-format +msgid "View %s's profile @ %s" msgstr "" -#: ../../include/follow.php:154 ../../include/follow.php:190 -msgid "Protocol disabled." +#: ../../include/conversation.php:713 +msgid "Categories:" msgstr "" -#: ../../include/follow.php:178 -msgid "Channel discovery failed." +#: ../../include/conversation.php:714 +msgid "Filed under:" msgstr "" -#: ../../include/follow.php:216 -msgid "Cannot connect to yourself." +#: ../../include/conversation.php:741 +msgid "View in context" msgstr "" -#: ../../include/import.php:29 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." +#: ../../include/conversation.php:850 +msgid "remove" msgstr "" -#: ../../include/import.php:76 -msgid "Channel clone failed. Import failed." +#: ../../include/conversation.php:855 +msgid "Delete Selected Items" msgstr "" -#: ../../include/security.php:383 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." +#: ../../include/conversation.php:951 +msgid "View Source" msgstr "" -#: ../../include/api.php:1326 -msgid "Public Timeline" +#: ../../include/conversation.php:952 +msgid "Follow Thread" msgstr "" -#: ../../include/page_widgets.php:7 -msgid "New Page" +#: ../../include/conversation.php:953 +msgid "Unfollow Thread" msgstr "" -#: ../../include/page_widgets.php:46 -msgid "Title" +#: ../../include/conversation.php:958 +msgid "Activity/Posts" msgstr "" -#: ../../include/photos.php:114 -#, php-format -msgid "Image exceeds website size limit of %lu bytes" +#: ../../include/conversation.php:960 +msgid "Edit Connection" msgstr "" -#: ../../include/photos.php:121 -msgid "Image file is empty." +#: ../../include/conversation.php:961 +msgid "Message" msgstr "" -#: ../../include/photos.php:259 -msgid "Photo storage failed." +#: ../../include/conversation.php:1078 +#, php-format +msgid "%s likes this." msgstr "" -#: ../../include/photos.php:299 -msgid "a new photo" +#: ../../include/conversation.php:1078 +#, php-format +msgid "%s doesn't like this." msgstr "" -#: ../../include/photos.php:303 +#: ../../include/conversation.php:1082 #, php-format -msgctxt "photo_upload" -msgid "%1$s posted %2$s to %3$s" +msgid "<span %1$s>%2$d people</span> like this." +msgid_plural "<span %1$s>%2$d people</span> like this." +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1084 +#, php-format +msgid "<span %1$s>%2$d people</span> don't like this." +msgid_plural "<span %1$s>%2$d people</span> don't like this." +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1090 +msgid "and" msgstr "" -#: ../../include/photos.php:510 -msgid "Upload New Photos" +#: ../../include/conversation.php:1093 +#, php-format +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1094 +#, php-format +msgid "%s like this." msgstr "" -#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 -#: ../../include/widgets.php:46 ../../include/widgets.php:429 -#: ../../include/contact_widgets.php:91 -msgid "Categories" +#: ../../include/conversation.php:1094 +#, php-format +msgid "%s don't like this." msgstr "" -#: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 -msgid "Tags" +#: ../../include/conversation.php:1133 +msgid "Set your location" msgstr "" -#: ../../include/taxonomy.php:293 -msgid "Keywords" +#: ../../include/conversation.php:1134 +msgid "Clear browser location" msgstr "" -#: ../../include/taxonomy.php:314 -msgid "have" +#: ../../include/conversation.php:1182 +msgid "Tag term:" msgstr "" -#: ../../include/taxonomy.php:314 -msgid "has" +#: ../../include/conversation.php:1183 +msgid "Where are you right now?" msgstr "" -#: ../../include/taxonomy.php:315 -msgid "want" +#: ../../include/conversation.php:1221 +msgid "Page link name" msgstr "" -#: ../../include/taxonomy.php:315 -msgid "wants" +#: ../../include/conversation.php:1224 +msgid "Post as" msgstr "" -#: ../../include/taxonomy.php:316 -msgid "likes" +#: ../../include/conversation.php:1238 +msgid "Toggle voting" msgstr "" -#: ../../include/taxonomy.php:317 -msgid "dislikes" +#: ../../include/conversation.php:1246 +msgid "Categories (optional, comma-separated list)" msgstr "" -#: ../../include/zot.php:709 -msgid "Invalid data packet" +#: ../../include/conversation.php:1269 +msgid "Set publish date" msgstr "" -#: ../../include/zot.php:725 -msgid "Unable to verify channel signature" +#: ../../include/conversation.php:1518 +msgid "Discover" msgstr "" -#: ../../include/zot.php:2373 -#, php-format -msgid "Unable to verify site signature for %s" +#: ../../include/conversation.php:1521 +msgid "Imported public streams" msgstr "" -#: ../../include/zot.php:3718 -msgid "invalid target signature" +#: ../../include/conversation.php:1526 +msgid "Commented Order" msgstr "" -#: ../../include/attach.php:247 ../../include/attach.php:333 -msgid "Item was not found." +#: ../../include/conversation.php:1529 +msgid "Sort by Comment Date" msgstr "" -#: ../../include/attach.php:499 -msgid "No source file." +#: ../../include/conversation.php:1533 +msgid "Posted Order" msgstr "" -#: ../../include/attach.php:521 -msgid "Cannot locate file to replace" +#: ../../include/conversation.php:1536 +msgid "Sort by Post Date" msgstr "" -#: ../../include/attach.php:539 -msgid "Cannot locate file to revise/update" +#: ../../include/conversation.php:1544 +msgid "Posts that mention or involve you" msgstr "" -#: ../../include/attach.php:674 -#, php-format -msgid "File exceeds size limit of %d" +#: ../../include/conversation.php:1553 +msgid "Activity Stream - by date" msgstr "" -#: ../../include/attach.php:688 -#, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +#: ../../include/conversation.php:1559 +msgid "Starred" msgstr "" -#: ../../include/attach.php:846 -msgid "File upload failed. Possible system limit or action terminated." +#: ../../include/conversation.php:1562 +msgid "Favourite Posts" msgstr "" -#: ../../include/attach.php:859 -msgid "Stored file could not be verified. Upload failed." +#: ../../include/conversation.php:1569 +msgid "Spam" msgstr "" -#: ../../include/attach.php:915 ../../include/attach.php:931 -msgid "Path not available." +#: ../../include/conversation.php:1572 +msgid "Posts flagged as SPAM" msgstr "" -#: ../../include/attach.php:977 ../../include/attach.php:1129 -msgid "Empty pathname" +#: ../../include/conversation.php:1629 +msgid "Status Messages and Posts" msgstr "" -#: ../../include/attach.php:1003 -msgid "duplicate filename or path" +#: ../../include/conversation.php:1638 +msgid "About" msgstr "" -#: ../../include/attach.php:1025 -msgid "Path not found." +#: ../../include/conversation.php:1641 +msgid "Profile Details" msgstr "" -#: ../../include/attach.php:1083 -msgid "mkdir failed." +#: ../../include/conversation.php:1657 +msgid "Files and Storage" msgstr "" -#: ../../include/attach.php:1087 -msgid "database storage failed." +#: ../../include/conversation.php:1693 +msgid "Saved Bookmarks" msgstr "" -#: ../../include/attach.php:1135 -msgid "Empty path" +#: ../../include/conversation.php:1703 +msgid "Manage Webpages" msgstr "" -#: ../../include/widgets.php:103 -msgid "System" +#: ../../include/conversation.php:1768 +msgctxt "noun" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1771 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1774 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1777 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1780 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1783 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/items.php:898 ../../include/items.php:943 +msgid "(Unknown)" msgstr "" -#: ../../include/widgets.php:106 -msgid "New App" +#: ../../include/items.php:1142 +msgid "Visible to anybody on the internet." msgstr "" -#: ../../include/widgets.php:154 -msgid "Suggestions" +#: ../../include/items.php:1144 +msgid "Visible to you only." msgstr "" -#: ../../include/widgets.php:155 -msgid "See more..." +#: ../../include/items.php:1146 +msgid "Visible to anybody in this network." msgstr "" -#: ../../include/widgets.php:175 +#: ../../include/items.php:1148 +msgid "Visible to anybody authenticated." +msgstr "" + +#: ../../include/items.php:1150 #, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." +msgid "Visible to anybody on %s." msgstr "" -#: ../../include/widgets.php:181 -msgid "Add New Connection" +#: ../../include/items.php:1152 +msgid "Visible to all connections." msgstr "" -#: ../../include/widgets.php:182 -msgid "Enter channel address" +#: ../../include/items.php:1154 +msgid "Visible to approved connections." msgstr "" -#: ../../include/widgets.php:183 -msgid "Examples: bob@example.com, https://example.com/barbara" +#: ../../include/items.php:1156 +msgid "Visible to specific connections." msgstr "" -#: ../../include/widgets.php:199 -msgid "Notes" +#: ../../include/items.php:3919 +msgid "Privacy group is empty." msgstr "" -#: ../../include/widgets.php:273 -msgid "Remove term" +#: ../../include/items.php:3926 +#, php-format +msgid "Privacy group: %s" msgstr "" -#: ../../include/widgets.php:281 ../../include/features.php:85 -msgid "Saved Searches" +#: ../../include/items.php:3938 +msgid "Connection not found." msgstr "" -#: ../../include/widgets.php:310 ../../include/features.php:99 -#: ../../include/contact_widgets.php:53 -msgid "Saved Folders" +#: ../../include/items.php:4291 +msgid "profile photo" msgstr "" -#: ../../include/widgets.php:313 ../../include/widgets.php:432 -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 -msgid "Everything" +#: ../../include/connections.php:95 +msgid "New window" msgstr "" -#: ../../include/widgets.php:354 -msgid "Archives" +#: ../../include/connections.php:96 +msgid "Open the selected location in a different window or browser tab" msgstr "" -#: ../../include/widgets.php:516 -msgid "Refresh" +#: ../../include/connections.php:214 +#, php-format +msgid "User '%s' deleted" msgstr "" -#: ../../include/widgets.php:556 -msgid "Account settings" +#: ../../include/features.php:48 +msgid "General Features" msgstr "" -#: ../../include/widgets.php:562 -msgid "Channel settings" +#: ../../include/features.php:50 +msgid "Content Expiration" msgstr "" -#: ../../include/widgets.php:571 -msgid "Additional features" +#: ../../include/features.php:50 +msgid "Remove posts/comments and/or private messages at a future time" msgstr "" -#: ../../include/widgets.php:578 -msgid "Feature/Addon settings" +#: ../../include/features.php:51 +msgid "Multiple Profiles" msgstr "" -#: ../../include/widgets.php:584 -msgid "Display settings" +#: ../../include/features.php:51 +msgid "Ability to create multiple profiles" msgstr "" -#: ../../include/widgets.php:591 -msgid "Manage locations" +#: ../../include/features.php:52 +msgid "Advanced Profiles" msgstr "" -#: ../../include/widgets.php:600 -msgid "Export channel" +#: ../../include/features.php:52 +msgid "Additional profile sections and selections" msgstr "" -#: ../../include/widgets.php:607 -msgid "Connected apps" +#: ../../include/features.php:53 +msgid "Profile Import/Export" msgstr "" -#: ../../include/widgets.php:622 -msgid "Premium Channel Settings" +#: ../../include/features.php:53 +msgid "Save and load profile details across sites/channels" msgstr "" -#: ../../include/widgets.php:651 -msgid "Private Mail Menu" +#: ../../include/features.php:54 +msgid "Web Pages" msgstr "" -#: ../../include/widgets.php:653 -msgid "Combined View" +#: ../../include/features.php:54 +msgid "Provide managed web pages on your channel" msgstr "" -#: ../../include/widgets.php:685 ../../include/widgets.php:697 -msgid "Conversations" +#: ../../include/features.php:55 +msgid "Provide a wiki for your channel" msgstr "" -#: ../../include/widgets.php:689 -msgid "Received Messages" +#: ../../include/features.php:56 +msgid "Hide Rating" msgstr "" -#: ../../include/widgets.php:693 -msgid "Sent Messages" +#: ../../include/features.php:56 +msgid "" +"Hide the rating buttons on your channel and profile pages. Note: People can " +"still rate you somewhere else." msgstr "" -#: ../../include/widgets.php:707 -msgid "No messages." +#: ../../include/features.php:57 +msgid "Private Notes" msgstr "" -#: ../../include/widgets.php:725 -msgid "Delete conversation" +#: ../../include/features.php:57 +msgid "Enables a tool to store notes and reminders (note: not encrypted)" msgstr "" -#: ../../include/widgets.php:751 -msgid "Events Tools" +#: ../../include/features.php:58 +msgid "Navigation Channel Select" msgstr "" -#: ../../include/widgets.php:752 -msgid "Export Calendar" +#: ../../include/features.php:58 +msgid "Change channels directly from within the navigation dropdown menu" msgstr "" -#: ../../include/widgets.php:753 -msgid "Import Calendar" +#: ../../include/features.php:59 +msgid "Photo Location" msgstr "" -#: ../../include/widgets.php:831 -msgid "Overview" +#: ../../include/features.php:59 +msgid "If location data is available on uploaded photos, link this to a map." msgstr "" -#: ../../include/widgets.php:838 -msgid "Chat Members" +#: ../../include/features.php:60 +msgid "Access Controlled Chatrooms" msgstr "" -#: ../../include/widgets.php:860 -msgid "Wiki List" +#: ../../include/features.php:60 +msgid "Provide chatrooms and chat services with access control." msgstr "" -#: ../../include/widgets.php:898 -msgid "Wiki Pages" +#: ../../include/features.php:61 +msgid "Smart Birthdays" msgstr "" -#: ../../include/widgets.php:933 -msgid "Bookmarked Chatrooms" +#: ../../include/features.php:61 +msgid "" +"Make birthday events timezone aware in case your friends are scattered " +"across the planet." msgstr "" -#: ../../include/widgets.php:956 -msgid "Suggested Chatrooms" +#: ../../include/features.php:62 +msgid "Expert Mode" msgstr "" -#: ../../include/widgets.php:1102 ../../include/widgets.php:1214 -msgid "photo/image" +#: ../../include/features.php:62 +msgid "Enable Expert Mode to provide advanced configuration options" msgstr "" -#: ../../include/widgets.php:1157 -msgid "Click to show more" +#: ../../include/features.php:63 +msgid "Premium Channel" msgstr "" -#: ../../include/widgets.php:1308 -msgid "Rating Tools" +#: ../../include/features.php:63 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" msgstr "" -#: ../../include/widgets.php:1312 ../../include/widgets.php:1314 -msgid "Rate Me" +#: ../../include/features.php:68 +msgid "Post Composition Features" msgstr "" -#: ../../include/widgets.php:1317 -msgid "View Ratings" +#: ../../include/features.php:71 +msgid "Large Photos" msgstr "" -#: ../../include/widgets.php:1374 -msgid "Forums" +#: ../../include/features.php:71 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" msgstr "" -#: ../../include/widgets.php:1403 -msgid "Tasks" +#: ../../include/features.php:72 +msgid "Automatically import channel content from other channels or feeds" msgstr "" -#: ../../include/widgets.php:1412 -msgid "Documentation" +#: ../../include/features.php:73 +msgid "Even More Encryption" msgstr "" -#: ../../include/widgets.php:1414 -msgid "Project/Site Information" +#: ../../include/features.php:73 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" msgstr "" -#: ../../include/widgets.php:1415 -msgid "For Members" +#: ../../include/features.php:74 +msgid "Enable Voting Tools" msgstr "" -#: ../../include/widgets.php:1416 -msgid "For Administrators" +#: ../../include/features.php:74 +msgid "Provide a class of post which others can vote on" msgstr "" -#: ../../include/widgets.php:1417 -msgid "For Developers" +#: ../../include/features.php:75 +msgid "Delayed Posting" msgstr "" -#: ../../include/widgets.php:1441 ../../include/widgets.php:1479 -msgid "Member registrations waiting for confirmation" +#: ../../include/features.php:75 +msgid "Allow posts to be published at a later date" msgstr "" -#: ../../include/widgets.php:1447 -msgid "Inspect queue" +#: ../../include/features.php:76 +msgid "Suppress Duplicate Posts/Comments" msgstr "" -#: ../../include/widgets.php:1449 -msgid "DB updates" +#: ../../include/features.php:76 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." msgstr "" -#: ../../include/widgets.php:1475 -msgid "Plugin Features" +#: ../../include/features.php:82 +msgid "Network and Stream Filtering" msgstr "" -#: ../../include/text.php:404 -msgid "prev" +#: ../../include/features.php:83 +msgid "Search by Date" msgstr "" -#: ../../include/text.php:406 -msgid "first" +#: ../../include/features.php:83 +msgid "Ability to select posts by date ranges" msgstr "" -#: ../../include/text.php:435 -msgid "last" +#: ../../include/features.php:84 ../../include/group.php:311 +msgid "Privacy Groups" msgstr "" -#: ../../include/text.php:438 -msgid "next" +#: ../../include/features.php:84 +msgid "Enable management and selection of privacy groups" msgstr "" -#: ../../include/text.php:448 -msgid "older" +#: ../../include/features.php:85 +msgid "Save search terms for re-use" msgstr "" -#: ../../include/text.php:450 -msgid "newer" +#: ../../include/features.php:86 +msgid "Network Personal Tab" msgstr "" -#: ../../include/text.php:839 -msgid "No connections" +#: ../../include/features.php:86 +msgid "Enable tab to display only Network posts that you've interacted on" msgstr "" -#: ../../include/text.php:864 -#, php-format -msgid "View all %s connections" +#: ../../include/features.php:87 +msgid "Network New Tab" msgstr "" -#: ../../include/text.php:1009 ../../include/text.php:1014 -msgid "poke" +#: ../../include/features.php:87 +msgid "Enable tab to display all new Network activity" msgstr "" -#: ../../include/text.php:1015 -msgid "ping" +#: ../../include/features.php:88 +msgid "Affinity Tool" msgstr "" -#: ../../include/text.php:1015 -msgid "pinged" +#: ../../include/features.php:88 +msgid "Filter stream activity by depth of relationships" msgstr "" -#: ../../include/text.php:1016 -msgid "prod" +#: ../../include/features.php:89 +msgid "Connection Filtering" msgstr "" -#: ../../include/text.php:1016 -msgid "prodded" +#: ../../include/features.php:89 +msgid "Filter incoming posts from connections based on keywords/content" msgstr "" -#: ../../include/text.php:1017 -msgid "slap" +#: ../../include/features.php:90 +msgid "Show channel suggestions" msgstr "" -#: ../../include/text.php:1017 -msgid "slapped" +#: ../../include/features.php:95 +msgid "Post/Comment Tools" msgstr "" -#: ../../include/text.php:1018 -msgid "finger" +#: ../../include/features.php:96 +msgid "Community Tagging" msgstr "" -#: ../../include/text.php:1018 -msgid "fingered" +#: ../../include/features.php:96 +msgid "Ability to tag existing posts" msgstr "" -#: ../../include/text.php:1019 -msgid "rebuff" +#: ../../include/features.php:97 +msgid "Post Categories" msgstr "" -#: ../../include/text.php:1019 -msgid "rebuffed" +#: ../../include/features.php:97 +msgid "Add categories to your posts" msgstr "" -#: ../../include/text.php:1031 -msgid "happy" +#: ../../include/features.php:98 +msgid "Emoji Reactions" msgstr "" -#: ../../include/text.php:1032 -msgid "sad" +#: ../../include/features.php:98 +msgid "Add emoji reaction ability to posts" msgstr "" -#: ../../include/text.php:1033 -msgid "mellow" +#: ../../include/features.php:99 +msgid "Ability to file posts under folders" msgstr "" -#: ../../include/text.php:1034 -msgid "tired" +#: ../../include/features.php:100 +msgid "Dislike Posts" msgstr "" -#: ../../include/text.php:1035 -msgid "perky" +#: ../../include/features.php:100 +msgid "Ability to dislike posts/comments" msgstr "" -#: ../../include/text.php:1036 -msgid "angry" +#: ../../include/features.php:101 +msgid "Star Posts" msgstr "" -#: ../../include/text.php:1037 -msgid "stupefied" +#: ../../include/features.php:101 +msgid "Ability to mark special posts with a star indicator" msgstr "" -#: ../../include/text.php:1038 -msgid "puzzled" +#: ../../include/features.php:102 +msgid "Tag Cloud" msgstr "" -#: ../../include/text.php:1039 -msgid "interested" +#: ../../include/features.php:102 +msgid "Provide a personal tag cloud on your channel page" msgstr "" -#: ../../include/text.php:1040 -msgid "bitter" +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"<strong>may</strong> apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." msgstr "" -#: ../../include/text.php:1041 -msgid "cheerful" +#: ../../include/group.php:248 +msgid "Add new connections to this privacy group" msgstr "" -#: ../../include/text.php:1042 -msgid "alive" +#: ../../include/group.php:289 +msgid "edit" msgstr "" -#: ../../include/text.php:1043 -msgid "annoyed" +#: ../../include/group.php:312 +msgid "Edit group" msgstr "" -#: ../../include/text.php:1044 -msgid "anxious" +#: ../../include/group.php:313 +msgid "Add privacy group" msgstr "" -#: ../../include/text.php:1045 -msgid "cranky" +#: ../../include/group.php:314 +msgid "Channels not in any privacy group" msgstr "" -#: ../../include/text.php:1046 -msgid "disturbed" +#: ../../include/permissions.php:26 +msgid "Can view my normal stream and posts" msgstr "" -#: ../../include/text.php:1047 -msgid "frustrated" +#: ../../include/permissions.php:27 +msgid "Can view my default channel profile" msgstr "" -#: ../../include/text.php:1048 -msgid "depressed" +#: ../../include/permissions.php:28 +msgid "Can view my connections" msgstr "" -#: ../../include/text.php:1049 -msgid "motivated" +#: ../../include/permissions.php:29 +msgid "Can view my file storage and photos" msgstr "" -#: ../../include/text.php:1050 -msgid "relaxed" +#: ../../include/permissions.php:30 +msgid "Can view my webpages" msgstr "" -#: ../../include/text.php:1051 -msgid "surprised" +#: ../../include/permissions.php:33 +msgid "Can send me their channel stream and posts" msgstr "" -#: ../../include/text.php:1237 -msgid "May" +#: ../../include/permissions.php:34 +msgid "Can post on my channel page (\"wall\")" msgstr "" -#: ../../include/text.php:1314 ../../include/text.php:1318 -msgid "Unknown Attachment" +#: ../../include/permissions.php:35 +msgid "Can comment on or like my posts" msgstr "" -#: ../../include/text.php:1320 -msgid "unknown" +#: ../../include/permissions.php:36 +msgid "Can send me private mail messages" msgstr "" -#: ../../include/text.php:1356 -msgid "remove category" +#: ../../include/permissions.php:37 +msgid "Can like/dislike stuff" msgstr "" -#: ../../include/text.php:1433 -msgid "remove from file" +#: ../../include/permissions.php:37 +msgid "Profiles and things other than posts/comments" msgstr "" -#: ../../include/text.php:1730 ../../include/text.php:1801 -msgid "default" +#: ../../include/permissions.php:39 +msgid "Can forward to all my channel contacts via post @mentions" msgstr "" -#: ../../include/text.php:1738 -msgid "Page layout" +#: ../../include/permissions.php:39 +msgid "Advanced - useful for creating group forum channels" msgstr "" -#: ../../include/text.php:1738 -msgid "You can create your own with the layouts tool" +#: ../../include/permissions.php:40 +msgid "Can chat with me (when available)" msgstr "" -#: ../../include/text.php:1780 -msgid "Page content type" +#: ../../include/permissions.php:41 +msgid "Can write to my file storage and photos" msgstr "" -#: ../../include/text.php:1813 -msgid "Select an alternate language" +#: ../../include/permissions.php:42 +msgid "Can edit my webpages" msgstr "" -#: ../../include/text.php:1930 -msgid "activity" +#: ../../include/permissions.php:44 +msgid "Can source my public posts in derived channels" msgstr "" -#: ../../include/text.php:2239 -msgid "Design Tools" +#: ../../include/permissions.php:44 +msgid "Somewhat advanced - very useful in open communities" msgstr "" -#: ../../include/text.php:2245 -msgid "Pages" +#: ../../include/permissions.php:46 +msgid "Can administer my channel resources" msgstr "" -#: ../../include/items.php:898 ../../include/items.php:943 -msgid "(Unknown)" +#: ../../include/permissions.php:46 +msgid "Extremely advanced. Leave this alone unless you know what you are doing" msgstr "" -#: ../../include/items.php:1142 -msgid "Visible to anybody on the internet." +#: ../../include/permissions.php:877 +msgid "Social Networking" msgstr "" -#: ../../include/items.php:1144 -msgid "Visible to you only." +#: ../../include/permissions.php:877 +msgid "Social - Mostly Public" msgstr "" -#: ../../include/items.php:1146 -msgid "Visible to anybody in this network." +#: ../../include/permissions.php:877 +msgid "Social - Restricted" msgstr "" -#: ../../include/items.php:1148 -msgid "Visible to anybody authenticated." +#: ../../include/permissions.php:877 +msgid "Social - Private" msgstr "" -#: ../../include/items.php:1150 -#, php-format -msgid "Visible to anybody on %s." +#: ../../include/permissions.php:878 +msgid "Community Forum" msgstr "" -#: ../../include/items.php:1152 -msgid "Visible to all connections." +#: ../../include/permissions.php:878 +msgid "Forum - Mostly Public" msgstr "" -#: ../../include/items.php:1154 -msgid "Visible to approved connections." +#: ../../include/permissions.php:878 +msgid "Forum - Restricted" msgstr "" -#: ../../include/items.php:1156 -msgid "Visible to specific connections." +#: ../../include/permissions.php:878 +msgid "Forum - Private" msgstr "" -#: ../../include/items.php:3919 -msgid "Privacy group is empty." +#: ../../include/permissions.php:879 +msgid "Feed Republish" msgstr "" -#: ../../include/items.php:3926 -#, php-format -msgid "Privacy group: %s" +#: ../../include/permissions.php:879 +msgid "Feed - Mostly Public" msgstr "" -#: ../../include/items.php:3938 -msgid "Connection not found." +#: ../../include/permissions.php:879 +msgid "Feed - Restricted" msgstr "" -#: ../../include/items.php:4304 -msgid "profile photo" +#: ../../include/permissions.php:880 +msgid "Special Purpose" msgstr "" -#: ../../include/bbcode.php:123 ../../include/bbcode.php:878 -#: ../../include/bbcode.php:881 ../../include/bbcode.php:886 -#: ../../include/bbcode.php:889 ../../include/bbcode.php:892 -#: ../../include/bbcode.php:895 ../../include/bbcode.php:900 -#: ../../include/bbcode.php:903 ../../include/bbcode.php:908 -#: ../../include/bbcode.php:911 ../../include/bbcode.php:914 -#: ../../include/bbcode.php:917 -msgid "Image/photo" +#: ../../include/permissions.php:880 +msgid "Special - Celebrity/Soapbox" msgstr "" -#: ../../include/bbcode.php:162 ../../include/bbcode.php:928 -msgid "Encrypted content" +#: ../../include/permissions.php:880 +msgid "Special - Group Repository" msgstr "" -#: ../../include/bbcode.php:178 -#, php-format -msgid "Install %s element: " +#: ../../include/permissions.php:881 +msgid "Custom/Expert Mode" msgstr "" -#: ../../include/bbcode.php:182 -#, php-format -msgid "" -"This post contains an installable %s element, however you lack permissions " -"to install it on this site." +#: ../../include/account.php:28 +msgid "Not a valid email address" msgstr "" -#: ../../include/bbcode.php:261 -#, php-format -msgid "%1$s wrote the following %2$s %3$s" +#: ../../include/account.php:30 +msgid "Your email domain is not among those allowed on this site" msgstr "" -#: ../../include/bbcode.php:338 ../../include/bbcode.php:346 -msgid "Click to open/close" +#: ../../include/account.php:36 +msgid "Your email address is already registered at this site." msgstr "" -#: ../../include/bbcode.php:346 -msgid "spoiler" +#: ../../include/account.php:68 +msgid "An invitation is required." msgstr "" -#: ../../include/bbcode.php:619 -msgid "Different viewers will see this text differently" +#: ../../include/account.php:72 +msgid "Invitation could not be verified." msgstr "" -#: ../../include/bbcode.php:866 -msgid "$1 wrote:" +#: ../../include/account.php:122 +msgid "Please enter the required information." msgstr "" -#: ../../include/network.php:704 -msgid "view full size" +#: ../../include/account.php:189 +msgid "Failed to store account information." msgstr "" -#: ../../include/network.php:1930 ../../include/account.php:317 -#: ../../include/account.php:344 ../../include/account.php:404 -msgid "Administrator" +#: ../../include/account.php:249 +#, php-format +msgid "Registration confirmation for %s" msgstr "" -#: ../../include/network.php:1944 -msgid "No Subject" +#: ../../include/account.php:315 +#, php-format +msgid "Registration request at %s" msgstr "" -#: ../../include/network.php:2198 ../../include/network.php:2199 -msgid "Friendica" +#: ../../include/account.php:339 +msgid "your registration password" msgstr "" -#: ../../include/network.php:2200 -msgid "OStatus" +#: ../../include/account.php:342 ../../include/account.php:402 +#, php-format +msgid "Registration details for %s" msgstr "" -#: ../../include/network.php:2201 -msgid "GNU-Social" +#: ../../include/account.php:414 +msgid "Account approved." msgstr "" -#: ../../include/network.php:2202 -msgid "RSS/Atom" +#: ../../include/account.php:454 +#, php-format +msgid "Registration revoked for %s" msgstr "" -#: ../../include/network.php:2204 -msgid "Diaspora" +#: ../../include/account.php:739 ../../include/account.php:741 +msgid "Click here to upgrade." msgstr "" -#: ../../include/network.php:2205 -msgid "Facebook" +#: ../../include/account.php:747 +msgid "This action exceeds the limits set by your subscription plan." msgstr "" -#: ../../include/network.php:2206 -msgid "Zot" +#: ../../include/account.php:752 +msgid "This action is not available under your subscription plan." msgstr "" -#: ../../include/network.php:2207 -msgid "LinkedIn" +#: ../../include/api.php:1326 +msgid "Public Timeline" msgstr "" -#: ../../include/network.php:2208 -msgid "XMPP/IM" +#: ../../include/attach.php:247 ../../include/attach.php:333 +msgid "Item was not found." msgstr "" -#: ../../include/network.php:2209 -msgid "MySpace" +#: ../../include/attach.php:499 +msgid "No source file." msgstr "" -#: ../../include/activities.php:41 -msgid " and " +#: ../../include/attach.php:521 +msgid "Cannot locate file to replace" msgstr "" -#: ../../include/activities.php:49 -msgid "public profile" +#: ../../include/attach.php:539 +msgid "Cannot locate file to revise/update" msgstr "" -#: ../../include/activities.php:58 +#: ../../include/attach.php:674 #, php-format -msgid "%1$s changed %2$s to “%3$s”" +msgid "File exceeds size limit of %d" msgstr "" -#: ../../include/activities.php:59 +#: ../../include/attach.php:688 #, php-format -msgid "Visit %1$s's %2$s" +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." msgstr "" -#: ../../include/activities.php:62 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." +#: ../../include/attach.php:846 +msgid "File upload failed. Possible system limit or action terminated." msgstr "" -#: ../../include/bb2diaspora.php:398 -msgid "Attachments:" +#: ../../include/attach.php:859 +msgid "Stored file could not be verified. Upload failed." msgstr "" -#: ../../include/bb2diaspora.php:487 -msgid "$Projectname event notification:" +#: ../../include/attach.php:915 ../../include/attach.php:931 +msgid "Path not available." msgstr "" -#: ../../include/features.php:48 -msgid "General Features" +#: ../../include/attach.php:977 ../../include/attach.php:1129 +msgid "Empty pathname" msgstr "" -#: ../../include/features.php:50 -msgid "Content Expiration" +#: ../../include/attach.php:1003 +msgid "duplicate filename or path" msgstr "" -#: ../../include/features.php:50 -msgid "Remove posts/comments and/or private messages at a future time" +#: ../../include/attach.php:1025 +msgid "Path not found." msgstr "" -#: ../../include/features.php:51 -msgid "Multiple Profiles" +#: ../../include/attach.php:1083 +msgid "mkdir failed." msgstr "" -#: ../../include/features.php:51 -msgid "Ability to create multiple profiles" +#: ../../include/attach.php:1087 +msgid "database storage failed." msgstr "" -#: ../../include/features.php:52 -msgid "Advanced Profiles" +#: ../../include/attach.php:1135 +msgid "Empty path" msgstr "" -#: ../../include/features.php:52 -msgid "Additional profile sections and selections" +#: ../../include/bbcode.php:123 ../../include/bbcode.php:878 +#: ../../include/bbcode.php:881 ../../include/bbcode.php:886 +#: ../../include/bbcode.php:889 ../../include/bbcode.php:892 +#: ../../include/bbcode.php:895 ../../include/bbcode.php:900 +#: ../../include/bbcode.php:903 ../../include/bbcode.php:908 +#: ../../include/bbcode.php:911 ../../include/bbcode.php:914 +#: ../../include/bbcode.php:917 +msgid "Image/photo" msgstr "" -#: ../../include/features.php:53 -msgid "Profile Import/Export" +#: ../../include/bbcode.php:162 ../../include/bbcode.php:928 +msgid "Encrypted content" msgstr "" -#: ../../include/features.php:53 -msgid "Save and load profile details across sites/channels" +#: ../../include/bbcode.php:178 +#, php-format +msgid "Install %s element: " msgstr "" -#: ../../include/features.php:54 -msgid "Web Pages" +#: ../../include/bbcode.php:182 +#, php-format +msgid "" +"This post contains an installable %s element, however you lack permissions " +"to install it on this site." msgstr "" -#: ../../include/features.php:54 -msgid "Provide managed web pages on your channel" +#: ../../include/bbcode.php:261 +#, php-format +msgid "%1$s wrote the following %2$s %3$s" msgstr "" -#: ../../include/features.php:55 -msgid "Provide a wiki for your channel" +#: ../../include/bbcode.php:338 ../../include/bbcode.php:346 +msgid "Click to open/close" msgstr "" -#: ../../include/features.php:56 -msgid "Hide Rating" +#: ../../include/bbcode.php:346 +msgid "spoiler" msgstr "" -#: ../../include/features.php:56 +#: ../../include/bbcode.php:619 +msgid "Different viewers will see this text differently" +msgstr "" + +#: ../../include/bbcode.php:866 +msgid "$1 wrote:" +msgstr "" + +#: ../../include/import.php:29 msgid "" -"Hide the rating buttons on your channel and profile pages. Note: People can " -"still rate you somewhere else." +"Cannot create a duplicate channel identifier on this system. Import failed." msgstr "" -#: ../../include/features.php:57 -msgid "Private Notes" +#: ../../include/import.php:76 +msgid "Channel clone failed. Import failed." msgstr "" -#: ../../include/features.php:57 -msgid "Enables a tool to store notes and reminders (note: not encrypted)" +#: ../../include/auth.php:116 +msgid "Logged out." msgstr "" -#: ../../include/features.php:58 -msgid "Navigation Channel Select" +#: ../../include/auth.php:237 +msgid "Failed authentication" msgstr "" -#: ../../include/features.php:58 -msgid "Change channels directly from within the navigation dropdown menu" +#: ../../include/activities.php:41 +msgid " and " msgstr "" -#: ../../include/features.php:59 -msgid "Photo Location" +#: ../../include/activities.php:49 +msgid "public profile" msgstr "" -#: ../../include/features.php:59 -msgid "If location data is available on uploaded photos, link this to a map." +#: ../../include/activities.php:58 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../include/features.php:60 -msgid "Access Controlled Chatrooms" +#: ../../include/activities.php:59 +#, php-format +msgid "Visit %1$s's %2$s" msgstr "" -#: ../../include/features.php:60 -msgid "Provide chatrooms and chat services with access control." +#: ../../include/activities.php:62 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" -#: ../../include/features.php:61 -msgid "Smart Birthdays" +#: ../../include/zot.php:709 +msgid "Invalid data packet" msgstr "" -#: ../../include/features.php:61 -msgid "" -"Make birthday events timezone aware in case your friends are scattered " -"across the planet." +#: ../../include/zot.php:725 +msgid "Unable to verify channel signature" msgstr "" -#: ../../include/features.php:62 -msgid "Expert Mode" +#: ../../include/zot.php:2373 +#, php-format +msgid "Unable to verify site signature for %s" msgstr "" -#: ../../include/features.php:62 -msgid "Enable Expert Mode to provide advanced configuration options" +#: ../../include/zot.php:3723 +msgid "invalid target signature" msgstr "" -#: ../../include/features.php:63 -msgid "Premium Channel" +#: ../../include/bb2diaspora.php:398 +msgid "Attachments:" msgstr "" -#: ../../include/features.php:63 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" +#: ../../include/bb2diaspora.php:487 +msgid "$Projectname event notification:" msgstr "" -#: ../../include/features.php:68 -msgid "Post Composition Features" +#: ../../include/js_strings.php:5 +msgid "Delete this item?" msgstr "" -#: ../../include/features.php:71 -msgid "Large Photos" +#: ../../include/js_strings.php:8 +#, php-format +msgid "%s show less" msgstr "" -#: ../../include/features.php:71 -msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" +#: ../../include/js_strings.php:9 +#, php-format +msgid "%s expand" msgstr "" -#: ../../include/features.php:72 -msgid "Automatically import channel content from other channels or feeds" +#: ../../include/js_strings.php:10 +#, php-format +msgid "%s collapse" msgstr "" -#: ../../include/features.php:73 -msgid "Even More Encryption" +#: ../../include/js_strings.php:11 +msgid "Password too short" msgstr "" -#: ../../include/features.php:73 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" +#: ../../include/js_strings.php:12 +msgid "Passwords do not match" msgstr "" -#: ../../include/features.php:74 -msgid "Enable Voting Tools" +#: ../../include/js_strings.php:13 +msgid "everybody" msgstr "" -#: ../../include/features.php:74 -msgid "Provide a class of post which others can vote on" +#: ../../include/js_strings.php:14 +msgid "Secret Passphrase" msgstr "" -#: ../../include/features.php:75 -msgid "Delayed Posting" +#: ../../include/js_strings.php:15 +msgid "Passphrase hint" msgstr "" -#: ../../include/features.php:75 -msgid "Allow posts to be published at a later date" +#: ../../include/js_strings.php:16 +msgid "Notice: Permissions have changed but have not yet been submitted." msgstr "" -#: ../../include/features.php:76 -msgid "Suppress Duplicate Posts/Comments" +#: ../../include/js_strings.php:17 +msgid "close all" msgstr "" -#: ../../include/features.php:76 -msgid "" -"Prevent posts with identical content to be published with less than two " -"minutes in between submissions." +#: ../../include/js_strings.php:18 +msgid "Nothing new here" msgstr "" -#: ../../include/features.php:82 -msgid "Network and Stream Filtering" +#: ../../include/js_strings.php:19 +msgid "Rate This Channel (this is public)" msgstr "" -#: ../../include/features.php:83 -msgid "Search by Date" +#: ../../include/js_strings.php:21 +msgid "Describe (optional)" msgstr "" -#: ../../include/features.php:83 -msgid "Ability to select posts by date ranges" +#: ../../include/js_strings.php:23 +msgid "Please enter a link URL" msgstr "" -#: ../../include/features.php:84 -msgid "Enable management and selection of privacy groups" +#: ../../include/js_strings.php:24 +msgid "Unsaved changes. Are you sure you wish to leave this page?" msgstr "" -#: ../../include/features.php:85 -msgid "Save search terms for re-use" +#: ../../include/js_strings.php:27 +msgid "timeago.prefixAgo" msgstr "" -#: ../../include/features.php:86 -msgid "Network Personal Tab" +#: ../../include/js_strings.php:28 +msgid "timeago.prefixFromNow" msgstr "" -#: ../../include/features.php:86 -msgid "Enable tab to display only Network posts that you've interacted on" +#: ../../include/js_strings.php:29 +msgid "ago" msgstr "" -#: ../../include/features.php:87 -msgid "Network New Tab" +#: ../../include/js_strings.php:30 +msgid "from now" msgstr "" -#: ../../include/features.php:87 -msgid "Enable tab to display all new Network activity" +#: ../../include/js_strings.php:31 +msgid "less than a minute" msgstr "" -#: ../../include/features.php:88 -msgid "Affinity Tool" +#: ../../include/js_strings.php:32 +msgid "about a minute" msgstr "" -#: ../../include/features.php:88 -msgid "Filter stream activity by depth of relationships" +#: ../../include/js_strings.php:33 +#, php-format +msgid "%d minutes" msgstr "" -#: ../../include/features.php:89 -msgid "Connection Filtering" +#: ../../include/js_strings.php:34 +msgid "about an hour" msgstr "" -#: ../../include/features.php:89 -msgid "Filter incoming posts from connections based on keywords/content" +#: ../../include/js_strings.php:35 +#, php-format +msgid "about %d hours" msgstr "" -#: ../../include/features.php:90 -msgid "Show channel suggestions" +#: ../../include/js_strings.php:36 +msgid "a day" msgstr "" -#: ../../include/features.php:95 -msgid "Post/Comment Tools" +#: ../../include/js_strings.php:37 +#, php-format +msgid "%d days" msgstr "" -#: ../../include/features.php:96 -msgid "Community Tagging" +#: ../../include/js_strings.php:38 +msgid "about a month" msgstr "" -#: ../../include/features.php:96 -msgid "Ability to tag existing posts" +#: ../../include/js_strings.php:39 +#, php-format +msgid "%d months" msgstr "" -#: ../../include/features.php:97 -msgid "Post Categories" +#: ../../include/js_strings.php:40 +msgid "about a year" msgstr "" -#: ../../include/features.php:97 -msgid "Add categories to your posts" +#: ../../include/js_strings.php:41 +#, php-format +msgid "%d years" msgstr "" -#: ../../include/features.php:98 -msgid "Emoji Reactions" +#: ../../include/js_strings.php:42 +msgid " " msgstr "" -#: ../../include/features.php:98 -msgid "Add emoji reaction ability to posts" +#: ../../include/js_strings.php:43 +msgid "timeago.numbers" msgstr "" -#: ../../include/features.php:99 -msgid "Ability to file posts under folders" +#: ../../include/js_strings.php:45 ../../include/text.php:1241 +msgid "January" msgstr "" -#: ../../include/features.php:100 -msgid "Dislike Posts" +#: ../../include/js_strings.php:46 ../../include/text.php:1241 +msgid "February" msgstr "" -#: ../../include/features.php:100 -msgid "Ability to dislike posts/comments" +#: ../../include/js_strings.php:47 ../../include/text.php:1241 +msgid "March" msgstr "" -#: ../../include/features.php:101 -msgid "Star Posts" +#: ../../include/js_strings.php:48 ../../include/text.php:1241 +msgid "April" msgstr "" -#: ../../include/features.php:101 -msgid "Ability to mark special posts with a star indicator" +#: ../../include/js_strings.php:49 +msgctxt "long" +msgid "May" msgstr "" -#: ../../include/features.php:102 -msgid "Tag Cloud" +#: ../../include/js_strings.php:50 ../../include/text.php:1241 +msgid "June" msgstr "" -#: ../../include/features.php:102 -msgid "Provide a personal tag cloud on your channel page" +#: ../../include/js_strings.php:51 ../../include/text.php:1241 +msgid "July" msgstr "" -#: ../../include/oembed.php:325 -msgid "Embedded content" +#: ../../include/js_strings.php:52 ../../include/text.php:1241 +msgid "August" msgstr "" -#: ../../include/oembed.php:334 -msgid "Embedding disabled" +#: ../../include/js_strings.php:53 ../../include/text.php:1241 +msgid "September" msgstr "" -#: ../../include/account.php:28 -msgid "Not a valid email address" +#: ../../include/js_strings.php:54 ../../include/text.php:1241 +msgid "October" msgstr "" -#: ../../include/account.php:30 -msgid "Your email domain is not among those allowed on this site" +#: ../../include/js_strings.php:55 ../../include/text.php:1241 +msgid "November" msgstr "" -#: ../../include/account.php:36 -msgid "Your email address is already registered at this site." +#: ../../include/js_strings.php:56 ../../include/text.php:1241 +msgid "December" msgstr "" -#: ../../include/account.php:68 -msgid "An invitation is required." +#: ../../include/js_strings.php:57 +msgid "Jan" msgstr "" -#: ../../include/account.php:72 -msgid "Invitation could not be verified." +#: ../../include/js_strings.php:58 +msgid "Feb" msgstr "" -#: ../../include/account.php:122 -msgid "Please enter the required information." +#: ../../include/js_strings.php:59 +msgid "Mar" msgstr "" -#: ../../include/account.php:189 -msgid "Failed to store account information." +#: ../../include/js_strings.php:60 +msgid "Apr" msgstr "" -#: ../../include/account.php:249 -#, php-format -msgid "Registration confirmation for %s" +#: ../../include/js_strings.php:61 +msgctxt "short" +msgid "May" msgstr "" -#: ../../include/account.php:315 -#, php-format -msgid "Registration request at %s" +#: ../../include/js_strings.php:62 +msgid "Jun" msgstr "" -#: ../../include/account.php:339 -msgid "your registration password" +#: ../../include/js_strings.php:63 +msgid "Jul" msgstr "" -#: ../../include/account.php:342 ../../include/account.php:402 -#, php-format -msgid "Registration details for %s" +#: ../../include/js_strings.php:64 +msgid "Aug" msgstr "" -#: ../../include/account.php:414 -msgid "Account approved." +#: ../../include/js_strings.php:65 +msgid "Sep" msgstr "" -#: ../../include/account.php:454 -#, php-format -msgid "Registration revoked for %s" +#: ../../include/js_strings.php:66 +msgid "Oct" msgstr "" -#: ../../include/account.php:739 ../../include/account.php:741 -msgid "Click here to upgrade." +#: ../../include/js_strings.php:67 +msgid "Nov" msgstr "" -#: ../../include/account.php:747 -msgid "This action exceeds the limits set by your subscription plan." +#: ../../include/js_strings.php:68 +msgid "Dec" msgstr "" -#: ../../include/account.php:752 -msgid "This action is not available under your subscription plan." +#: ../../include/js_strings.php:69 ../../include/text.php:1237 +msgid "Sunday" msgstr "" -#: ../../include/PermissionDescription.php:116 -msgid "Public" +#: ../../include/js_strings.php:70 ../../include/text.php:1237 +msgid "Monday" msgstr "" -#: ../../include/PermissionDescription.php:117 -msgid "Anybody in the $Projectname network" +#: ../../include/js_strings.php:71 ../../include/text.php:1237 +msgid "Tuesday" msgstr "" -#: ../../include/PermissionDescription.php:118 -#, php-format -msgid "Any account on %s" +#: ../../include/js_strings.php:72 ../../include/text.php:1237 +msgid "Wednesday" msgstr "" -#: ../../include/PermissionDescription.php:119 -msgid "Any of my connections" +#: ../../include/js_strings.php:73 ../../include/text.php:1237 +msgid "Thursday" msgstr "" -#: ../../include/PermissionDescription.php:120 -msgid "Only connections I specifically allow" +#: ../../include/js_strings.php:74 ../../include/text.php:1237 +msgid "Friday" msgstr "" -#: ../../include/PermissionDescription.php:121 -msgid "Anybody authenticated (could include visitors from other networks)" +#: ../../include/js_strings.php:75 ../../include/text.php:1237 +msgid "Saturday" msgstr "" -#: ../../include/PermissionDescription.php:122 -msgid "Any connections including those who haven't yet been approved" +#: ../../include/js_strings.php:76 +msgid "Sun" msgstr "" -#: ../../include/PermissionDescription.php:161 -msgid "" -"This is your default setting for the audience of your normal stream, and " -"posts." +#: ../../include/js_strings.php:77 +msgid "Mon" msgstr "" -#: ../../include/PermissionDescription.php:162 -msgid "" -"This is your default setting for who can view your default channel profile" +#: ../../include/js_strings.php:78 +msgid "Tue" msgstr "" -#: ../../include/PermissionDescription.php:163 -msgid "This is your default setting for who can view your connections" +#: ../../include/js_strings.php:79 +msgid "Wed" msgstr "" -#: ../../include/PermissionDescription.php:164 -msgid "" -"This is your default setting for who can view your file storage and photos" +#: ../../include/js_strings.php:80 +msgid "Thu" msgstr "" -#: ../../include/PermissionDescription.php:165 -msgid "This is your default setting for the audience of your webpages" +#: ../../include/js_strings.php:81 +msgid "Fri" +msgstr "" + +#: ../../include/js_strings.php:82 +msgid "Sat" +msgstr "" + +#: ../../include/js_strings.php:83 +msgctxt "calendar" +msgid "today" +msgstr "" + +#: ../../include/js_strings.php:84 +msgctxt "calendar" +msgid "month" +msgstr "" + +#: ../../include/js_strings.php:85 +msgctxt "calendar" +msgid "week" +msgstr "" + +#: ../../include/js_strings.php:86 +msgctxt "calendar" +msgid "day" +msgstr "" + +#: ../../include/js_strings.php:87 +msgctxt "calendar" +msgid "All day" msgstr "" #: ../../include/contact_widgets.php:11 @@ -9421,306 +9484,260 @@ msgstr "" msgid "Stored post could not be verified." msgstr "" -#: ../../include/channel.php:32 -msgid "Unable to obtain identity information from database" -msgstr "" - -#: ../../include/channel.php:66 -msgid "Empty name" -msgstr "" - -#: ../../include/channel.php:69 -msgid "Name too long" -msgstr "" - -#: ../../include/channel.php:180 -msgid "No account identifier" -msgstr "" - -#: ../../include/channel.php:192 -msgid "Nickname is required." +#: ../../include/acl_selectors.php:269 +msgid "Who can see this?" msgstr "" -#: ../../include/channel.php:206 -msgid "Reserved nickname. Please choose another." +#: ../../include/acl_selectors.php:270 +msgid "Custom selection" msgstr "" -#: ../../include/channel.php:211 +#: ../../include/acl_selectors.php:271 msgid "" -"Nickname has unsupported characters or is already being used on this site." +"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit " +"the scope of \"Show\"." msgstr "" -#: ../../include/channel.php:287 -msgid "Unable to retrieve created identity" +#: ../../include/acl_selectors.php:272 +msgid "Show" msgstr "" -#: ../../include/channel.php:345 -msgid "Default Profile" +#: ../../include/acl_selectors.php:273 +msgid "Don't show" msgstr "" -#: ../../include/channel.php:815 -msgid "Requested channel is not available." +#: ../../include/acl_selectors.php:279 +msgid "Other networks and post services" msgstr "" -#: ../../include/channel.php:962 -msgid "Create New Profile" +#: ../../include/acl_selectors.php:309 +#, php-format +msgid "" +"Post permissions %s cannot be changed %s after a post is shared.</br />These " +"permissions set who is allowed to view the post." msgstr "" -#: ../../include/channel.php:982 -msgid "Visible to everybody" +#: ../../include/security.php:108 +msgid "guest:" msgstr "" -#: ../../include/channel.php:1055 ../../include/channel.php:1167 -msgid "Gender:" +#: ../../include/security.php:425 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." msgstr "" -#: ../../include/channel.php:1056 ../../include/channel.php:1211 -msgid "Status:" +#: ../../include/text.php:404 +msgid "prev" msgstr "" -#: ../../include/channel.php:1057 ../../include/channel.php:1222 -msgid "Homepage:" +#: ../../include/text.php:406 +msgid "first" msgstr "" -#: ../../include/channel.php:1058 -msgid "Online Now" +#: ../../include/text.php:435 +msgid "last" msgstr "" -#: ../../include/channel.php:1172 -msgid "Like this channel" +#: ../../include/text.php:438 +msgid "next" msgstr "" -#: ../../include/channel.php:1196 -msgid "j F, Y" +#: ../../include/text.php:448 +msgid "older" msgstr "" -#: ../../include/channel.php:1197 -msgid "j F" +#: ../../include/text.php:450 +msgid "newer" msgstr "" -#: ../../include/channel.php:1204 -msgid "Birthday:" +#: ../../include/text.php:843 +msgid "No connections" msgstr "" -#: ../../include/channel.php:1217 +#: ../../include/text.php:868 #, php-format -msgid "for %1$d %2$s" -msgstr "" - -#: ../../include/channel.php:1220 -msgid "Sexual Preference:" -msgstr "" - -#: ../../include/channel.php:1226 -msgid "Tags:" -msgstr "" - -#: ../../include/channel.php:1228 -msgid "Political Views:" -msgstr "" - -#: ../../include/channel.php:1230 -msgid "Religion:" -msgstr "" - -#: ../../include/channel.php:1234 -msgid "Hobbies/Interests:" -msgstr "" - -#: ../../include/channel.php:1236 -msgid "Likes:" -msgstr "" - -#: ../../include/channel.php:1238 -msgid "Dislikes:" -msgstr "" - -#: ../../include/channel.php:1240 -msgid "Contact information and Social Networks:" -msgstr "" - -#: ../../include/channel.php:1242 -msgid "My other channels:" +msgid "View all %s connections" msgstr "" -#: ../../include/channel.php:1244 -msgid "Musical interests:" +#: ../../include/text.php:1013 ../../include/text.php:1018 +msgid "poke" msgstr "" -#: ../../include/channel.php:1246 -msgid "Books, literature:" +#: ../../include/text.php:1019 +msgid "ping" msgstr "" -#: ../../include/channel.php:1248 -msgid "Television:" +#: ../../include/text.php:1019 +msgid "pinged" msgstr "" -#: ../../include/channel.php:1250 -msgid "Film/dance/culture/entertainment:" +#: ../../include/text.php:1020 +msgid "prod" msgstr "" -#: ../../include/channel.php:1252 -msgid "Love/Romance:" +#: ../../include/text.php:1020 +msgid "prodded" msgstr "" -#: ../../include/channel.php:1254 -msgid "Work/employment:" +#: ../../include/text.php:1021 +msgid "slap" msgstr "" -#: ../../include/channel.php:1256 -msgid "School/education:" +#: ../../include/text.php:1021 +msgid "slapped" msgstr "" -#: ../../include/channel.php:1277 -msgid "Like this thing" +#: ../../include/text.php:1022 +msgid "finger" msgstr "" -#: ../../include/permissions.php:26 -msgid "Can view my normal stream and posts" +#: ../../include/text.php:1022 +msgid "fingered" msgstr "" -#: ../../include/permissions.php:27 -msgid "Can view my default channel profile" +#: ../../include/text.php:1023 +msgid "rebuff" msgstr "" -#: ../../include/permissions.php:28 -msgid "Can view my connections" +#: ../../include/text.php:1023 +msgid "rebuffed" msgstr "" -#: ../../include/permissions.php:29 -msgid "Can view my file storage and photos" +#: ../../include/text.php:1035 +msgid "happy" msgstr "" -#: ../../include/permissions.php:30 -msgid "Can view my webpages" +#: ../../include/text.php:1036 +msgid "sad" msgstr "" -#: ../../include/permissions.php:33 -msgid "Can send me their channel stream and posts" +#: ../../include/text.php:1037 +msgid "mellow" msgstr "" -#: ../../include/permissions.php:34 -msgid "Can post on my channel page (\"wall\")" +#: ../../include/text.php:1038 +msgid "tired" msgstr "" -#: ../../include/permissions.php:35 -msgid "Can comment on or like my posts" +#: ../../include/text.php:1039 +msgid "perky" msgstr "" -#: ../../include/permissions.php:36 -msgid "Can send me private mail messages" +#: ../../include/text.php:1040 +msgid "angry" msgstr "" -#: ../../include/permissions.php:37 -msgid "Can like/dislike stuff" +#: ../../include/text.php:1041 +msgid "stupefied" msgstr "" -#: ../../include/permissions.php:37 -msgid "Profiles and things other than posts/comments" +#: ../../include/text.php:1042 +msgid "puzzled" msgstr "" -#: ../../include/permissions.php:39 -msgid "Can forward to all my channel contacts via post @mentions" +#: ../../include/text.php:1043 +msgid "interested" msgstr "" -#: ../../include/permissions.php:39 -msgid "Advanced - useful for creating group forum channels" +#: ../../include/text.php:1044 +msgid "bitter" msgstr "" -#: ../../include/permissions.php:40 -msgid "Can chat with me (when available)" +#: ../../include/text.php:1045 +msgid "cheerful" msgstr "" -#: ../../include/permissions.php:41 -msgid "Can write to my file storage and photos" +#: ../../include/text.php:1046 +msgid "alive" msgstr "" -#: ../../include/permissions.php:42 -msgid "Can edit my webpages" +#: ../../include/text.php:1047 +msgid "annoyed" msgstr "" -#: ../../include/permissions.php:44 -msgid "Can source my public posts in derived channels" +#: ../../include/text.php:1048 +msgid "anxious" msgstr "" -#: ../../include/permissions.php:44 -msgid "Somewhat advanced - very useful in open communities" +#: ../../include/text.php:1049 +msgid "cranky" msgstr "" -#: ../../include/permissions.php:46 -msgid "Can administer my channel resources" +#: ../../include/text.php:1050 +msgid "disturbed" msgstr "" -#: ../../include/permissions.php:46 -msgid "Extremely advanced. Leave this alone unless you know what you are doing" +#: ../../include/text.php:1051 +msgid "frustrated" msgstr "" -#: ../../include/permissions.php:877 -msgid "Social Networking" +#: ../../include/text.php:1052 +msgid "depressed" msgstr "" -#: ../../include/permissions.php:877 -msgid "Social - Mostly Public" +#: ../../include/text.php:1053 +msgid "motivated" msgstr "" -#: ../../include/permissions.php:877 -msgid "Social - Restricted" +#: ../../include/text.php:1054 +msgid "relaxed" msgstr "" -#: ../../include/permissions.php:877 -msgid "Social - Private" +#: ../../include/text.php:1055 +msgid "surprised" msgstr "" -#: ../../include/permissions.php:878 -msgid "Community Forum" +#: ../../include/text.php:1241 +msgid "May" msgstr "" -#: ../../include/permissions.php:878 -msgid "Forum - Mostly Public" +#: ../../include/text.php:1318 ../../include/text.php:1322 +msgid "Unknown Attachment" msgstr "" -#: ../../include/permissions.php:878 -msgid "Forum - Restricted" +#: ../../include/text.php:1324 +msgid "unknown" msgstr "" -#: ../../include/permissions.php:878 -msgid "Forum - Private" +#: ../../include/text.php:1360 +msgid "remove category" msgstr "" -#: ../../include/permissions.php:879 -msgid "Feed Republish" +#: ../../include/text.php:1437 +msgid "remove from file" msgstr "" -#: ../../include/permissions.php:879 -msgid "Feed - Mostly Public" +#: ../../include/text.php:1734 ../../include/text.php:1805 +msgid "default" msgstr "" -#: ../../include/permissions.php:879 -msgid "Feed - Restricted" +#: ../../include/text.php:1742 +msgid "Page layout" msgstr "" -#: ../../include/permissions.php:880 -msgid "Special Purpose" +#: ../../include/text.php:1742 +msgid "You can create your own with the layouts tool" msgstr "" -#: ../../include/permissions.php:880 -msgid "Special - Celebrity/Soapbox" +#: ../../include/text.php:1784 +msgid "Page content type" msgstr "" -#: ../../include/permissions.php:880 -msgid "Special - Group Repository" +#: ../../include/text.php:1817 +msgid "Select an alternate language" msgstr "" -#: ../../include/permissions.php:881 -msgid "Custom/Expert Mode" +#: ../../include/text.php:1934 +msgid "activity" msgstr "" -#: ../../include/auth.php:105 -msgid "Logged out." +#: ../../include/text.php:2243 +msgid "Design Tools" msgstr "" -#: ../../include/auth.php:212 -msgid "Failed authentication" +#: ../../include/text.php:2249 +msgid "Pages" msgstr "" #: ../../view/theme/redbasic/php/config.php:82 diff --git a/util/service_class b/util/service_class index 2b5998615..50f01afff 100755 --- a/util/service_class +++ b/util/service_class @@ -56,7 +56,7 @@ if($argc == 3) { echo "service_class $oclass\t\t\033[1m" . $argv[2] . "\033[0m\n"; $new = get_config('service_class', $argv[2]); - foreach(array('photo_upload_limit','total_items','total_pages','total_identities','total_channels','total_feeds','attach_upload_limit','minimum_feedcheck_minutes','chatrooms','chatters_inroom') as $prop) { + foreach(array('photo_upload_limit','total_items','total_pages','total_identities','total_channels','total_feeds','attach_upload_limit','minimum_feedcheck_minutes','chatrooms','chatters_inroom','access_tokens') as $prop) { echo $prop . str_repeat(' ',26 - strlen($prop)) . (($old && $old[$prop]) ? $old[$prop] : 'unlimited') . "\t\t\033[1m" . (($new && $new[$prop]) ? $new[$prop] : 'unlimited') . "\033[0m\n"; } $r = ''; diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css index 26321ab3c..b68517e25 100644 --- a/view/css/bootstrap-red.css +++ b/view/css/bootstrap-red.css @@ -5,6 +5,7 @@ nav .badge { position: relative; top: -49px; + left: 2px; float: left; font-size: 10px; line-height: 20px; @@ -59,7 +60,8 @@ aside .nav-pills > li > a, padding: 6px 10px; } -.wall-item-tools .dropdown-menu { +.wall-item-tools .dropdown-menu, +.section-title-wrapper .dropdown-menu { min-width: auto; } diff --git a/view/css/conversation.css b/view/css/conversation.css index b6e316121..68aa8bfbe 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -121,7 +121,7 @@ a.wall-item-name-link { } .wall-item-content { - overflow: auto; + overflow: hidden; } .wall-item-content h1, @@ -316,4 +316,4 @@ code.inline-code { img.smiley.emoji:hover { width: 32px; height: 32px; -}
\ No newline at end of file +} diff --git a/view/css/mod_directory.css b/view/css/mod_directory.css index 9bfea856d..af89e597d 100644 --- a/view/css/mod_directory.css +++ b/view/css/mod_directory.css @@ -30,5 +30,5 @@ } .directory-collapse { - overflow: auto; + overflow: hidden; } diff --git a/view/css/mod_settings.css b/view/css/mod_settings.css index e81d115d4..4236b3dff 100644 --- a/view/css/mod_settings.css +++ b/view/css/mod_settings.css @@ -7,5 +7,22 @@ } .channel-menu { - margin-top: 24px; + margin-top: 24px; +} + +.zat-example { + color: red; +} + +#atoken-index { + width: 100%; +} + +#atoken-index td:nth-child(1){ + padding: 7px 3px 7px 10px; + white-space: nowrap; +} + +.atoken-index-tool { + padding: 7px 10px; } diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js index 59a9ed355..63f1e9a13 100644 --- a/view/js/autocomplete.js +++ b/view/js/autocomplete.js @@ -1,5 +1,5 @@ /** - * Red people autocomplete + * general autocomplete support * * require jQuery, jquery.textcomplete */ diff --git a/view/js/jquery-migrate-1.1.1.js b/view/js/jquery-migrate-1.1.1.js deleted file mode 100644 index e99f954e6..000000000 --- a/view/js/jquery-migrate-1.1.1.js +++ /dev/null @@ -1,511 +0,0 @@ -/*!
- * jQuery Migrate - v1.1.1 - 2013-02-16
- * https://github.com/jquery/jquery-migrate
- * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
- */
-(function( jQuery, window, undefined ) {
-// See http://bugs.jquery.com/ticket/13335
-// "use strict";
-
-
-var warnedAbout = {};
-
-// List of warnings already given; public read only
-jQuery.migrateWarnings = [];
-
-// Set to true to prevent console output; migrateWarnings still maintained
-// jQuery.migrateMute = false;
-
-// Show a message on the console so devs know we're active
-if ( !jQuery.migrateMute && window.console && console.log ) {
- console.log("JQMIGRATE: Logging is active");
-}
-
-// Set to false to disable traces that appear with warnings
-if ( jQuery.migrateTrace === undefined ) {
- jQuery.migrateTrace = true;
-}
-
-// Forget any warnings we've already given; public
-jQuery.migrateReset = function() {
- warnedAbout = {};
- jQuery.migrateWarnings.length = 0;
-};
-
-function migrateWarn( msg) {
- if ( !warnedAbout[ msg ] ) {
- warnedAbout[ msg ] = true;
- jQuery.migrateWarnings.push( msg );
- if ( window.console && console.warn && !jQuery.migrateMute ) {
- console.warn( "JQMIGRATE: " + msg );
- if ( jQuery.migrateTrace && console.trace ) {
- console.trace();
- }
- }
- }
-}
-
-function migrateWarnProp( obj, prop, value, msg ) {
- if ( Object.defineProperty ) {
- // On ES5 browsers (non-oldIE), warn if the code tries to get prop;
- // allow property to be overwritten in case some other plugin wants it
- try {
- Object.defineProperty( obj, prop, {
- configurable: true,
- enumerable: true,
- get: function() {
- migrateWarn( msg );
- return value;
- },
- set: function( newValue ) {
- migrateWarn( msg );
- value = newValue;
- }
- });
- return;
- } catch( err ) {
- // IE8 is a dope about Object.defineProperty, can't warn there
- }
- }
-
- // Non-ES5 (or broken) browser; just set the property
- jQuery._definePropertyBroken = true;
- obj[ prop ] = value;
-}
-
-if ( document.compatMode === "BackCompat" ) {
- // jQuery has never supported or tested Quirks Mode
- migrateWarn( "jQuery is not compatible with Quirks Mode" );
-}
-
-
-var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
- oldAttr = jQuery.attr,
- valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
- function() { return null; },
- valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
- function() { return undefined; },
- rnoType = /^(?:input|button)$/i,
- rnoAttrNodeType = /^[238]$/,
- rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
- ruseDefault = /^(?:checked|selected)$/i;
-
-// jQuery.attrFn
-migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
-
-jQuery.attr = function( elem, name, value, pass ) {
- var lowerName = name.toLowerCase(),
- nType = elem && elem.nodeType;
-
- if ( pass ) {
- // Since pass is used internally, we only warn for new jQuery
- // versions where there isn't a pass arg in the formal params
- if ( oldAttr.length < 4 ) {
- migrateWarn("jQuery.fn.attr( props, pass ) is deprecated");
- }
- if ( elem && !rnoAttrNodeType.test( nType ) &&
- (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
- return jQuery( elem )[ name ]( value );
- }
- }
-
- // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
- // for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
- if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
- migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8");
- }
-
- // Restore boolHook for boolean property/attribute synchronization
- if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
- jQuery.attrHooks[ lowerName ] = {
- get: function( elem, name ) {
- // Align boolean attributes with corresponding properties
- // Fall back to attribute presence where some booleans are not supported
- var attrNode,
- property = jQuery.prop( elem, name );
- return property === true || typeof property !== "boolean" &&
- ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
-
- name.toLowerCase() :
- undefined;
- },
- set: function( elem, value, name ) {
- var propName;
- if ( value === false ) {
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else {
- // value is true since we know at this point it's type boolean and not false
- // Set boolean attributes to the same name and set the DOM property
- propName = jQuery.propFix[ name ] || name;
- if ( propName in elem ) {
- // Only set the IDL specifically if it already exists on the element
- elem[ propName ] = true;
- }
-
- elem.setAttribute( name, name.toLowerCase() );
- }
- return name;
- }
- };
-
- // Warn only for attributes that can remain distinct from their properties post-1.9
- if ( ruseDefault.test( lowerName ) ) {
- migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute" );
- }
- }
-
- return oldAttr.call( jQuery, elem, name, value );
-};
-
-// attrHooks: value
-jQuery.attrHooks.value = {
- get: function( elem, name ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "button" ) {
- return valueAttrGet.apply( this, arguments );
- }
- if ( nodeName !== "input" && nodeName !== "option" ) {
- migrateWarn("jQuery.fn.attr('value') no longer gets properties");
- }
- return name in elem ?
- elem.value :
- null;
- },
- set: function( elem, value ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "button" ) {
- return valueAttrSet.apply( this, arguments );
- }
- if ( nodeName !== "input" && nodeName !== "option" ) {
- migrateWarn("jQuery.fn.attr('value', val) no longer sets properties");
- }
- // Does not return so that setAttribute is also used
- elem.value = value;
- }
-};
-
-
-var matched, browser,
- oldInit = jQuery.fn.init,
- oldParseJSON = jQuery.parseJSON,
- // Note this does NOT include the #9521 XSS fix from 1.7!
- rquickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*|#([\w\-]*))$/;
-
-// $(html) "looks like html" rule change
-jQuery.fn.init = function( selector, context, rootjQuery ) {
- var match;
-
- if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
- (match = rquickExpr.exec( selector )) && match[1] ) {
- // This is an HTML string according to the "old" rules; is it still?
- if ( selector.charAt( 0 ) !== "<" ) {
- migrateWarn("$(html) HTML strings must start with '<' character");
- }
- // Now process using loose rules; let pre-1.8 play too
- if ( context && context.context ) {
- // jQuery object as context; parseHTML expects a DOM object
- context = context.context;
- }
- if ( jQuery.parseHTML ) {
- return oldInit.call( this, jQuery.parseHTML( jQuery.trim(selector), context, true ),
- context, rootjQuery );
- }
- }
- return oldInit.apply( this, arguments );
-};
-jQuery.fn.init.prototype = jQuery.fn;
-
-// Let $.parseJSON(falsy_value) return null
-jQuery.parseJSON = function( json ) {
- if ( !json && json !== null ) {
- migrateWarn("jQuery.parseJSON requires a valid JSON string");
- return null;
- }
- return oldParseJSON.apply( this, arguments );
-};
-
-jQuery.uaMatch = function( ua ) {
- ua = ua.toLowerCase();
-
- var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- return {
- browser: match[ 1 ] || "",
- version: match[ 2 ] || "0"
- };
-};
-
-// Don't clobber any existing jQuery.browser in case it's different
-if ( !jQuery.browser ) {
- matched = jQuery.uaMatch( navigator.userAgent );
- browser = {};
-
- if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- }
-
- // Chrome is Webkit, but Webkit is also Safari.
- if ( browser.chrome ) {
- browser.webkit = true;
- } else if ( browser.webkit ) {
- browser.safari = true;
- }
-
- jQuery.browser = browser;
-}
-
-// Warn if the code tries to get jQuery.browser
-migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );
-
-jQuery.sub = function() {
- function jQuerySub( selector, context ) {
- return new jQuerySub.fn.init( selector, context );
- }
- jQuery.extend( true, jQuerySub, this );
- jQuerySub.superclass = this;
- jQuerySub.fn = jQuerySub.prototype = this();
- jQuerySub.fn.constructor = jQuerySub;
- jQuerySub.sub = this.sub;
- jQuerySub.fn.init = function init( selector, context ) {
- if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
- context = jQuerySub( context );
- }
-
- return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
- };
- jQuerySub.fn.init.prototype = jQuerySub.fn;
- var rootjQuerySub = jQuerySub(document);
- migrateWarn( "jQuery.sub() is deprecated" );
- return jQuerySub;
-};
-
-
-// Ensure that $.ajax gets the new parseJSON defined in core.js
-jQuery.ajaxSetup({
- converters: {
- "text json": jQuery.parseJSON
- }
-});
-
-
-var oldFnData = jQuery.fn.data;
-
-jQuery.fn.data = function( name ) {
- var ret, evt,
- elem = this[0];
-
- // Handles 1.7 which has this behavior and 1.8 which doesn't
- if ( elem && name === "events" && arguments.length === 1 ) {
- ret = jQuery.data( elem, name );
- evt = jQuery._data( elem, name );
- if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
- migrateWarn("Use of jQuery.fn.data('events') is deprecated");
- return evt;
- }
- }
- return oldFnData.apply( this, arguments );
-};
-
-
-var rscriptType = /\/(java|ecma)script/i,
- oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
-
-jQuery.fn.andSelf = function() {
- migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");
- return oldSelf.apply( this, arguments );
-};
-
-// Since jQuery.clean is used internally on older versions, we only shim if it's missing
-if ( !jQuery.clean ) {
- jQuery.clean = function( elems, context, fragment, scripts ) {
- // Set context per 1.8 logic
- context = context || document;
- context = !context.nodeType && context[0] || context;
- context = context.ownerDocument || context;
-
- migrateWarn("jQuery.clean() is deprecated");
-
- var i, elem, handleScript, jsTags,
- ret = [];
-
- jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );
-
- // Complex logic lifted directly from jQuery 1.8
- if ( fragment ) {
- // Special handling of each script element
- handleScript = function( elem ) {
- // Check if we consider it executable
- if ( !elem.type || rscriptType.test( elem.type ) ) {
- // Detach the script and store it in the scripts array (if provided) or the fragment
- // Return truthy to indicate that it has been handled
- return scripts ?
- scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
- fragment.appendChild( elem );
- }
- };
-
- for ( i = 0; (elem = ret[i]) != null; i++ ) {
- // Check if we're done after handling an executable script
- if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
- // Append to fragment and handle embedded scripts
- fragment.appendChild( elem );
- if ( typeof elem.getElementsByTagName !== "undefined" ) {
- // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
- jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
-
- // Splice the scripts into ret after their former ancestor and advance our index beyond them
- ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
- i += jsTags.length;
- }
- }
- }
- }
-
- return ret;
- };
-}
-
-var eventAdd = jQuery.event.add,
- eventRemove = jQuery.event.remove,
- eventTrigger = jQuery.event.trigger,
- oldToggle = jQuery.fn.toggle,
- oldLive = jQuery.fn.live,
- oldDie = jQuery.fn.die,
- ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
- rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
- rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
- hoverHack = function( events ) {
- if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
- return events;
- }
- if ( rhoverHack.test( events ) ) {
- migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'");
- }
- return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
- };
-
-// Event props removed in 1.9, put them back if needed; no practical way to warn them
-if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
- jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
-}
-
-// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
-if ( jQuery.event.dispatch ) {
- migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" );
-}
-
-// Support for 'hover' pseudo-event and ajax event warnings
-jQuery.event.add = function( elem, types, handler, data, selector ){
- if ( elem !== document && rajaxEvent.test( types ) ) {
- migrateWarn( "AJAX events should be attached to document: " + types );
- }
- eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
-};
-jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
- eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
-};
-
-jQuery.fn.error = function() {
- var args = Array.prototype.slice.call( arguments, 0);
- migrateWarn("jQuery.fn.error() is deprecated");
- args.splice( 0, 0, "error" );
- if ( arguments.length ) {
- return this.bind.apply( this, args );
- }
- // error event should not bubble to window, although it does pre-1.7
- this.triggerHandler.apply( this, args );
- return this;
-};
-
-jQuery.fn.toggle = function( fn, fn2 ) {
-
- // Don't mess with animation or css toggles
- if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
- return oldToggle.apply( this, arguments );
- }
- migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");
-
- // Save reference to arguments for access in closure
- var args = arguments,
- guid = fn.guid || jQuery.guid++,
- i = 0,
- toggler = function( event ) {
- // Figure out which function to execute
- var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
- jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
- // Make sure that clicks stop
- event.preventDefault();
-
- // and execute the function
- return args[ lastToggle ].apply( this, arguments ) || false;
- };
-
- // link all the functions, so any of them can unbind this click handler
- toggler.guid = guid;
- while ( i < args.length ) {
- args[ i++ ].guid = guid;
- }
-
- return this.click( toggler );
-};
-
-jQuery.fn.live = function( types, data, fn ) {
- migrateWarn("jQuery.fn.live() is deprecated");
- if ( oldLive ) {
- return oldLive.apply( this, arguments );
- }
- jQuery( this.context ).on( types, this.selector, data, fn );
- return this;
-};
-
-jQuery.fn.die = function( types, fn ) {
- migrateWarn("jQuery.fn.die() is deprecated");
- if ( oldDie ) {
- return oldDie.apply( this, arguments );
- }
- jQuery( this.context ).off( types, this.selector || "**", fn );
- return this;
-};
-
-// Turn global events into document-triggered events
-jQuery.event.trigger = function( event, data, elem, onlyHandlers ){
- if ( !elem && !rajaxEvent.test( event ) ) {
- migrateWarn( "Global events are undocumented and deprecated" );
- }
- return eventTrigger.call( this, event, data, elem || document, onlyHandlers );
-};
-jQuery.each( ajaxEvents.split("|"),
- function( _, name ) {
- jQuery.event.special[ name ] = {
- setup: function() {
- var elem = this;
-
- // The document needs no shimming; must be !== for oldIE
- if ( elem !== document ) {
- jQuery.event.add( document, name + "." + jQuery.guid, function() {
- jQuery.event.trigger( name, null, elem, true );
- });
- jQuery._data( this, name, jQuery.guid++ );
- }
- return false;
- },
- teardown: function() {
- if ( this !== document ) {
- jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
- }
- return false;
- }
- };
- }
-);
-
-
-})( jQuery, window );
diff --git a/view/js/jquery.js b/view/js/jquery.js index d26ce7f6a..046447ce9 100644 --- a/view/js/jquery.js +++ b/view/js/jquery.js @@ -1,5 +1,5 @@ -/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1; -return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[m.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=Z.test(e)?this.mouseHooks:Y.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new m.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||y),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||y,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==cb()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===cb()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return m.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return m.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=m.extend(new m.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?m.event.trigger(e,null,b):m.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},m.removeEvent=y.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===K&&(a[d]=null),a.detachEvent(d,c))},m.Event=function(a,b){return this instanceof m.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ab:bb):this.type=a,b&&m.extend(this,b),this.timeStamp=a&&a.timeStamp||m.now(),void(this[m.expando]=!0)):new m.Event(a,b)},m.Event.prototype={isDefaultPrevented:bb,isPropagationStopped:bb,isImmediatePropagationStopped:bb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ab,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ab,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ab,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},m.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){m.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!m.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.submitBubbles||(m.event.special.submit={setup:function(){return m.nodeName(this,"form")?!1:void m.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=m.nodeName(b,"input")||m.nodeName(b,"button")?b.form:void 0;c&&!m._data(c,"submitBubbles")&&(m.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),m._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&m.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return m.nodeName(this,"form")?!1:void m.event.remove(this,"._submit")}}),k.changeBubbles||(m.event.special.change={setup:function(){return X.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(m.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),m.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),m.event.simulate("change",this,a,!0)})),!1):void m.event.add(this,"beforeactivate._change",function(a){var b=a.target;X.test(b.nodeName)&&!m._data(b,"changeBubbles")&&(m.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||m.event.simulate("change",this.parentNode,a,!0)}),m._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return m.event.remove(this,"._change"),!X.test(this.nodeName)}}),k.focusinBubbles||m.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){m.event.simulate(b,a.target,m.event.fix(a),!0)};m.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=m._data(d,b);e||d.addEventListener(a,c,!0),m._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=m._data(d,b)-1;e?m._data(d,b,e):(d.removeEventListener(a,c,!0),m._removeData(d,b))}}}),m.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=bb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return m().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=m.guid++)),this.each(function(){m.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,m(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=bb),this.each(function(){m.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){m.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?m.event.trigger(a,b,c,!0):void 0}});function db(a){var b=eb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var eb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",fb=/ jQuery\d+="(?:null|\d+)"/g,gb=new RegExp("<(?:"+eb+")[\\s/>]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/<tbody/i,lb=/<|&#?\w+;/,mb=/<(?:script|style|link)/i,nb=/checked\s*(?:[^=]|=\s*.checked.)/i,ob=/^$|\/(?:java|ecma)script/i,pb=/^true\/(.*)/,qb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,rb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:k.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1></$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?"<table>"!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e) -}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||m.fx.stop(),$b=void 0},m.fx.timer=function(a){m.timers.push(a),a()?m.fx.start():m.timers.pop()},m.fx.interval=13,m.fx.start=function(){_b||(_b=setInterval(m.fx.tick,m.fx.interval))},m.fx.stop=function(){clearInterval(_b),_b=null},m.fx.speeds={slow:600,fast:200,_default:400},m.fn.delay=function(a,b){return a=m.fx?m.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e;b=y.createElement("div"),b.setAttribute("className","t"),b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("<div>").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m}); +/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0, +r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),aa=["Top","Right","Bottom","Left"],ba=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ba(d)&&(e[f]=fa(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,"<select multiple='multiple'>","</select>"],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,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var na=/<|&#?\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ia.exec(f)||["",""])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==va()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===va()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.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,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:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/<script|<style|<link/i,za=/checked\s*(?:[^=]|=\s*.checked.)/i,Aa=/^true\/(.*)/,Ba=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ha.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;l<i;l++)j=h[l],ja.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,""),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;d<e;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,"script"),g.length>0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",pa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:"absolute",visibility:"hidden",display:"block"},Qa={letterSpacing:"0",fontWeight:"400"},Ra=["Webkit","Moz","ms"],Sa=d.createElement("div").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Va(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+aa[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+aa[f]+"Width",!0,e))):(g+=r.css(a,"padding"+aa[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+aa[f]+"Width",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Ma(a,b,f),(d<0||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),"normal"===e&&b in Qa&&(e=Qa[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Oa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)})},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=_.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ma(a,"marginLeft"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,"display"),ga([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);f<g;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration="number"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb("show"),slideUp:cb("hide"),slideToggle:cb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K); +if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.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(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,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":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r}); diff --git a/view/js/jquery.migrate-3.0.0.js b/view/js/jquery.migrate-3.0.0.js new file mode 100644 index 000000000..99e0dd20a --- /dev/null +++ b/view/js/jquery.migrate-3.0.0.js @@ -0,0 +1,2 @@ +/*! jQuery Migrate v3.0.0 | (c) jQuery Foundation and other contributors | jquery.org/license */ +"undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(a,b){"use strict";function c(c){var d=b.console;e[c]||(e[c]=!0,a.migrateWarnings.push(c),d&&d.warn&&!a.migrateMute&&(d.warn("JQMIGRATE: "+c),a.migrateTrace&&d.trace&&d.trace()))}function d(a,b,d,e){Object.defineProperty(a,b,{configurable:!0,enumerable:!0,get:function(){return c(e),d}})}a.migrateVersion="3.0.0",function(){var c=b.console&&b.console.log&&function(){b.console.log.apply(b.console,arguments)},d=/^[12]\./;c&&(a&&!d.test(a.fn.jquery)||c("JQMIGRATE: jQuery 3.0.0+ REQUIRED"),a.migrateWarnings&&c("JQMIGRATE: Migrate plugin loaded multiple times"),c("JQMIGRATE: Migrate is installed"+(a.migrateMute?"":" with logging active")+", version "+a.migrateVersion))}();var e={};a.migrateWarnings=[],void 0===a.migrateTrace&&(a.migrateTrace=!0),a.migrateReset=function(){e={},a.migrateWarnings.length=0},"BackCompat"===document.compatMode&&c("jQuery is not compatible with Quirks Mode");var f=a.fn.init,g=a.isNumeric,h=a.find,i=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,j=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g;a.fn.init=function(a){var b=Array.prototype.slice.call(arguments);return"string"==typeof a&&"#"===a&&(c("jQuery( '#' ) is not a valid selector"),b[0]=[]),f.apply(this,b)},a.fn.init.prototype=a.fn,a.find=function(a){var b=Array.prototype.slice.call(arguments);if("string"==typeof a&&i.test(a))try{document.querySelector(a)}catch(d){a=a.replace(j,function(a,b,c,d){return"["+b+c+'"'+d+'"]'});try{document.querySelector(a),c("Attribute selector with '#' must be quoted: "+b[0]),b[0]=a}catch(e){c("Attribute selector with '#' was not fixed: "+b[0])}}return h.apply(this,b)};var k;for(k in h)Object.prototype.hasOwnProperty.call(h,k)&&(a.find[k]=h[k]);a.fn.size=function(){return c("jQuery.fn.size() is deprecated; use the .length property"),this.length},a.parseJSON=function(){return c("jQuery.parseJSON is deprecated; use JSON.parse"),JSON.parse.apply(null,arguments)},a.isNumeric=function(b){function d(b){var c=b&&b.toString();return!a.isArray(b)&&c-parseFloat(c)+1>=0}var e=g(b),f=d(b);return e!==f&&c("jQuery.isNumeric() should not be called on constructed objects"),f},d(a,"unique",a.uniqueSort,"jQuery.unique is deprecated, use jQuery.uniqueSort"),d(a.expr,"filters",a.expr.pseudos,"jQuery.expr.filters is now jQuery.expr.pseudos"),d(a.expr,":",a.expr.pseudos,'jQuery.expr[":"] is now jQuery.expr.pseudos');var l=a.ajax;a.ajax=function(){var a=l.apply(this,arguments);return a.promise&&(d(a,"success",a.done,"jQXHR.success is deprecated and removed"),d(a,"error",a.fail,"jQXHR.error is deprecated and removed"),d(a,"complete",a.always,"jQXHR.complete is deprecated and removed")),a};var m=a.fn.removeAttr,n=a.fn.toggleClass,o=/\S+/g;a.fn.removeAttr=function(b){var d=this;return a.each(b.match(o),function(b,e){a.expr.match.bool.test(e)&&(c("jQuery.fn.removeAttr no longer sets boolean properties: "+e),d.prop(e,!1))}),m.apply(this,arguments)},a.fn.toggleClass=function(b){return void 0!==b&&"boolean"!=typeof b?n.apply(this,arguments):(c("jQuery.fn.toggleClass( boolean ) is deprecated"),this.each(function(){var c=this.getAttribute&&this.getAttribute("class")||"";c&&a.data(this,"__className__",c),this.setAttribute&&this.setAttribute("class",c||b===!1?"":a.data(this,"__className__")||"")}))};var p=!1;a.swap&&a.each(["height","width","reliableMarginRight"],function(b,c){var d=a.cssHooks[c]&&a.cssHooks[c].get;d&&(a.cssHooks[c].get=function(){var a;return p=!0,a=d.apply(this,arguments),p=!1,a})}),a.swap=function(a,b,d,e){var f,g,h={};p||c("jQuery.swap() is undocumented and deprecated");for(g in b)h[g]=a.style[g],a.style[g]=b[g];f=d.apply(a,e||[]);for(g in b)a.style[g]=h[g];return f};var q=a.data;a.data=function(b,d,e){var f;return d&&d!==a.camelCase(d)&&(f=a.hasData(b)&&q.call(this,b),f&&d in f)?(c("jQuery.data() always sets/gets camelCased names: "+d),arguments.length>2&&(f[d]=e),f[d]):q.apply(this,arguments)};var r=a.Tween.prototype.run;a.Tween.prototype.run=function(b){a.easing[this.easing].length>1&&(c('easing function "jQuery.easing.'+this.easing.toString()+'" should use only first argument'),a.easing[this.easing]=a.easing[this.easing].bind(a.easing,b,this.options.duration*b,0,1,this.options.duration)),r.apply(this,arguments)};var s=a.fn.load,t=a.event.fix;a.event.props=[],a.event.fixHooks={},a.event.fix=function(b){var d,e=b.type,f=this.fixHooks[e],g=a.event.props;if(g.length)for(c("jQuery.event.props are deprecated and removed: "+g.join());g.length;)a.event.addProp(g.pop());if(f&&!f._migrated_&&(f._migrated_=!0,c("jQuery.event.fixHooks are deprecated and removed: "+e),(g=f.props)&&g.length))for(;g.length;)a.event.addProp(g.pop());return d=t.call(this,b),f&&f.filter?f.filter(d,b):d},a.each(["load","unload","error"],function(b,d){a.fn[d]=function(){var a=Array.prototype.slice.call(arguments,0);return"load"===d&&"string"==typeof a[0]?s.apply(this,a):(c("jQuery.fn."+d+"() is deprecated"),a.splice(0,0,d),arguments.length?this.on.apply(this,a):(this.triggerHandler.apply(this,a),this))}}),a(function(){a(document).triggerHandler("ready")}),a.event.special.ready={setup:function(){this===document&&c("'ready' event is deprecated")}},a.fn.extend({bind:function(a,b,d){return c("jQuery.fn.bind() is deprecated"),this.on(a,null,b,d)},unbind:function(a,b){return c("jQuery.fn.unbind() is deprecated"),this.off(a,null,b)},delegate:function(a,b,d,e){return c("jQuery.fn.delegate() is deprecated"),this.on(b,a,d,e)},undelegate:function(a,b,d){return c("jQuery.fn.undelegate() is deprecated"),1===arguments.length?this.off(a,"**"):this.off(b,a||"**",d)}});var u=a.fn.offset;a.fn.offset=function(){var b,d=this[0],e={top:0,left:0};return d&&d.nodeType?(b=(d.ownerDocument||document).documentElement,a.contains(b,d)?u.apply(this,arguments):(c("jQuery.fn.offset() requires an element connected to a document"),e)):(c("jQuery.fn.offset() requires a valid DOM element"),e)};var v=a.param;a.param=function(b,d){var e=a.ajaxSettings&&a.ajaxSettings.traditional;return void 0===d&&e&&(c("jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),d=e),v.call(this,b,d)};var w=a.fn.andSelf||a.fn.addBack;a.fn.andSelf=function(){return c("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)};var x=a.Deferred,y=[["resolve","done",a.Callbacks("once memory"),a.Callbacks("once memory"),"resolved"],["reject","fail",a.Callbacks("once memory"),a.Callbacks("once memory"),"rejected"],["notify","progress",a.Callbacks("memory"),a.Callbacks("memory")]];a.Deferred=function(b){var d=x(),e=d.promise();return d.pipe=e.pipe=function(){var b=arguments;return c("deferred.pipe() is deprecated"),a.Deferred(function(c){a.each(y,function(f,g){var h=a.isFunction(b[f])&&b[f];d[g[1]](function(){var b=h&&h.apply(this,arguments);b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[g[0]+"With"](this===e?c.promise():this,h?[b]:arguments)})}),b=null}).promise()},b&&b.call(d,d),d}}(jQuery,window); diff --git a/view/js/main.js b/view/js/main.js index 2caf5a1dd..a288f98f5 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -283,12 +283,13 @@ $(function() { /* Turn elements with one of our special rel tags into popup menus */ /* CHANGES: let bootstrap handle popups and only do the loading here */ - $('a[rel^=#]').click(function(e){ + + $('a[rel^="#"]').click(function(e){ manage_popup_menu(this, e); return; }); - $('span[rel^=#]').click(function(e){ + $('span[rel^="#"]').click(function(e){ manage_popup_menu(this, e); return; }); @@ -639,7 +640,7 @@ function updateConvItems(mode,data) { var bimgcount = bimgs.length; if (bimgcount) { - bimgs.load(function() { + bimgs.on('load',function() { bimgcount--; if (! bimgcount) { collapseHeight(); @@ -652,7 +653,7 @@ function updateConvItems(mode,data) { } function collapseHeight() { - var origContentHeight = parseInt($("#region_2").height()); + var origContentHeight = Math.ceil($("#region_2").height()); var cDiff = 0; var i = 0; var position = $(window).scrollTop(); @@ -662,25 +663,19 @@ function collapseHeight() { if(orgHeight > divmore_height) { if(! $(this).hasClass('divmore')) { - //var trigger = $(window).scrollTop() < $(this).offset().top ? true : false; - //console.log($(this).offset().top + divmore_height - $(window).scrollTop() + cDiff - ($(".divgrow-showmore").outerHeight() * i)); - // check if we will collapse some content above the visible content and compensate the diff later if($(this).offset().top + divmore_height - $(window).scrollTop() + cDiff - ($(".divgrow-showmore").outerHeight() * i) < 65) { - //$(this).css('color', 'red'); - //console.log($(this).offset().top + divmore_height + ' / ' + $(window).scrollTop()); diff = orgHeight - divmore_height; cDiff = cDiff + diff; i++; } - //if(trigger) { $(this).readmore({ speed: 0, heightMargin: 50, collapsedHeight: divmore_height, - moreLink: '<a href="#" class="divgrow-showmore">' + aStr.divgrowmore + '</a>', - lessLink: '<a href="#" class="divgrow-showmore">' + aStr.divgrowless + '</a>', + moreLink: '<a href="#" class="divgrow-showmore fakelink">' + aStr.divgrowmore + '</a>', + lessLink: '<a href="#" class="divgrow-showmore fakelink">' + aStr.divgrowless + '</a>', beforeToggle: function(trigger, element, expanded) { if(expanded) { if((($(element).offset().top + divmore_height) - $(window).scrollTop()) < 65 ) { @@ -690,12 +685,11 @@ function collapseHeight() { } }); $(this).addClass('divmore'); - //} } } }); - var collapsedContentHeight = parseInt($("#region_2").height()); + var collapsedContentHeight = Math.ceil($("#region_2").height()); contentHeightDiff = origContentHeight - collapsedContentHeight; console.log('collapseHeight() - contentHeightDiff: ' + contentHeightDiff + 'px'); diff --git a/view/js/mod_mail.js b/view/js/mod_mail.js index 3e55c8aeb..46574a63d 100644 --- a/view/js/mod_mail.js +++ b/view/js/mod_mail.js @@ -1,5 +1,5 @@ $(document).ready(function() { - $("#recip").name_autocomplete(baseurl + '/acl', '', false, function(data) { + $("#recip").name_autocomplete(baseurl + '/acl', 'm', false, function(data) { $("#recip-complete").val(data.xid); }); $(".autotime").timeago() diff --git a/view/js/mod_photos.js b/view/js/mod_photos.js index 006be5f23..e3df3ca68 100644 --- a/view/js/mod_photos.js +++ b/view/js/mod_photos.js @@ -3,7 +3,7 @@ */ $(document).ready(function() { - $("#photo-edit-newtag").contact_autocomplete(baseurl + '/acl', 'p', false, function(data) { + $("#photo-edit-newtag").contact_autocomplete(baseurl + '/acl', 'a', false, function(data) { $("#photo-edit-newtag").val('@' + data.name); }); diff --git a/view/js/mod_settings.js b/view/js/mod_settings.js index 640c154dd..0f45e0d16 100644 --- a/view/js/mod_settings.js +++ b/view/js/mod_settings.js @@ -5,6 +5,9 @@ $(document).ready(function() { $('form').areYouSure({'addRemoveFieldsMarksDirty':true, 'message': aStr['leavethispage'] }); // Warn user about unsaved settings + $('.token-mirror').html($('#id_token').val()); + $('#id_token').keyup( function() { $('.token-mirror').html($('#id_token').val()); }); + $("#id_permissions_role").change(function() { var role = $("#id_permissions_role").val(); if(role == 'custom') diff --git a/view/php/theme_init.php b/view/php/theme_init.php index e9ba2aa05..46aadaa7d 100644 --- a/view/php/theme_init.php +++ b/view/php/theme_init.php @@ -13,7 +13,7 @@ head_add_css('library/justifiedGallery/justifiedGallery.min.css'); head_add_css('library/Text_Highlighter/sample.css'); head_add_js('jquery.js'); -//head_add_js('jquery-migrate-1.1.1.js'); +//head_add_js('jquery.migrate-3.0.0.js'); head_add_js('library/justifiedGallery/jquery.justifiedGallery.min.js'); head_add_js('library/sprintf.js/dist/sprintf.min.js'); diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index a63042b87..6cc3e2f10 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -1416,9 +1416,6 @@ img.mail-conv-sender-photo { display: block; border-top: 1px dashed #ccc; text-align: center; - font-size: $body_font_size; - color: $link_colour; - cursor: pointer; } .divgrow-showmore:hover { @@ -1658,6 +1655,7 @@ main.fullscreen .section-content-wrapper-np { display: none; } +.atoken-index-row:hover td, .chatroom-index-row:hover td, .locs-index-row:hover td, [id^="cloud-index-"]:hover td, diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index 5209ad945..999b46268 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -56,13 +56,14 @@ $(document).ready(function() { function makeFullScreen(full) { if(typeof full=='undefined' || full == true) { $('main').css({'transition': 'none'}).addClass('fullscreen'); - $('#fullscreen-btn, header, nav, aside, #tabs-collapse-1').css({'visibility': 'hidden'}); + $('header, nav, aside, #fullscreen-btn').hide(); + $('#tabs-collapse-1').css({'visibility': 'hidden'}); $('#inline-btn').show(); - } else { $('main').removeClass('fullscreen'); - $('#fullscreen-btn, header, nav, aside, #tabs-collapse-1').css({'visibility': ''}); + $('header, nav, aside, #fullscreen-btn').show(); + $('#tabs-collapse-1').css({'visibility': ''}); $('#inline-btn').hide(); $('main').css({'transition': ''}); } diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php index 83c35935a..2db0d4c44 100644 --- a/view/theme/redbasic/php/style.php +++ b/view/theme/redbasic/php/style.php @@ -153,6 +153,18 @@ if(file_exists('view/theme/redbasic/css/style.css')) { $x = file_get_contents('view/theme/redbasic/css/style.css'); + if($narrow_navbar && file_exists('view/theme/redbasic/css/narrow_navbar.css')) { + $x .= file_get_contents('view/theme/redbasic/css/narrow_navbar.css'); + } + + if($align_left && file_exists('view/theme/redbasic/css/align_left.css')) { + $x .= file_get_contents('view/theme/redbasic/css/align_left.css'); + } + + if($schemecss) { + $x .= $schemecss; + } + $aside_width = 287; // left aside and right aside are 285px + converse width @@ -204,18 +216,6 @@ if(file_exists('view/theme/redbasic/css/style.css')) { } -if($narrow_navbar && file_exists('view/theme/redbasic/css/narrow_navbar.css')) { - echo file_get_contents('view/theme/redbasic/css/narrow_navbar.css'); -} - -if($align_left && file_exists('view/theme/redbasic/css/align_left.css')) { - echo file_get_contents('view/theme/redbasic/css/align_left.css'); -} - -if($schemecss) { - echo $schemecss; -} - // Set the schema to the default schema in derived themes. See the documentation for creating derived themes how to override this. if(local_channel() && App::$channel && App::$channel['channel_theme'] != 'redbasic') diff --git a/view/tpl/chat.tpl b/view/tpl/chat.tpl index 341ff7649..31be4136f 100644 --- a/view/tpl/chat.tpl +++ b/view/tpl/chat.tpl @@ -1,8 +1,6 @@ <div class="generic-content-wrapper"> <div class="section-title-wrapper"> <div class="pull-right"> - <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(); adjustFullscreenTopBarHeight();"><i class="fa fa-expand"></i></button> - <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false); adjustInlineTopBarHeight();"><i class="fa fa-compress"></i></button> {{if $is_owner}} <form id="chat-destroy" method="post" action="chat"> <input type="hidden" name="room_name" value="{{$room_name}}" /> @@ -10,6 +8,8 @@ <button class="btn btn-danger btn-xs" type="submit" name="submit" value="{{$drop}}" onclick="return confirmDelete();"><i class="fa fa-trash-o"></i> {{$drop}}</button> </form> {{/if}} + <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(); adjustFullscreenTopBarHeight();"><i class="fa fa-expand"></i></button> + <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false); adjustInlineTopBarHeight();"><i class="fa fa-compress"></i></button> </div> <h2>{{$room_name}}</h2> <div class="clear"></div> diff --git a/view/tpl/contact_block.tpl b/view/tpl/contact_block.tpl index a32437212..6a29abaef 100755 --- a/view/tpl/contact_block.tpl +++ b/view/tpl/contact_block.tpl @@ -11,4 +11,3 @@ </div> {{/if}} </div> -<div class="clear"></div> diff --git a/view/tpl/cover_photo_widget.tpl b/view/tpl/cover_photo_widget.tpl index 8254fc87d..4e210a300 100755 --- a/view/tpl/cover_photo_widget.tpl +++ b/view/tpl/cover_photo_widget.tpl @@ -1,8 +1,17 @@ <script> + var aside_padding_top; + var section_padding_top; + $(document).ready(function() { + + aside_padding_top = parseInt($('aside').css('padding-top')); + section_padding_top = parseInt($('section').css('padding-top')); + if($('#cover-photo').length && $(window).width() > 755) { $('.navbar-fixed-top').css('position', 'relative'); - $('aside, section').css('padding-top', 0 + 'px'); + $('main').css('margin-top', - $('nav').outerHeight(true) + 'px'); + $('aside').css('padding-top', aside_padding_top - $('nav').outerHeight() + 'px'); + $('section').css('padding-top', section_padding_top - $('nav').outerHeight() + 'px'); $('main').css('opacity', 0); $('header').hide(); } @@ -15,9 +24,11 @@ if($('#cover-photo').length && $(window).width() > 755 && $(window).scrollTop() >= $('#cover-photo').height()) { $('header').fadeIn(); $('main').css('opacity', 1); - $('aside, section').css('padding-top', $('nav').outerHeight(true) + 'px'); + $('aside').css('padding-top', aside_padding_top + 'px'); + $('section').css('padding-top', section_padding_top + 'px'); $(window).scrollTop($(window).scrollTop() - $('#cover-photo').height()) $('.navbar-fixed-top').css('position', 'fixed'); + $('main').css('margin-top', ''); $('#cover-photo').remove(); } if($('#cover-photo').length) { @@ -28,7 +39,8 @@ $(window).resize(function () { if($('#cover-photo').length && $(window).width() < 755) { $('main').css('opacity', 1); - $('aside, section').css('padding-top', $('nav').outerHeight(true) + 'px'); + $('aside').css('padding-top', aside_padding_top + 'px'); + $('section').css('padding-top', section_padding_top + 'px'); $('.navbar-fixed-top').css('position', 'fixed'); $('#cover-photo').remove(); } @@ -36,7 +48,7 @@ }); function slideUpCover() { - $('html, body').animate({scrollTop: $('#cover-photo').height() + 'px'}); + $('html, body').animate({scrollTop: Math.ceil($('#cover-photo').height()) + 'px' }); } </script> diff --git a/view/tpl/events-js.tpl b/view/tpl/events-js.tpl index 3397411a8..6299242ce 100755 --- a/view/tpl/events-js.tpl +++ b/view/tpl/events-js.tpl @@ -2,8 +2,6 @@ <div class="section-title-wrapper"> <div class="pull-right"> <div class="dropdown"> - <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> - <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown"><i class="fa fa-caret-down"></i> {{$view_label}}</button> <ul class="dropdown-menu"> <li><a href="#" onclick="changeView('changeView', 'month'); return false;">{{$month}}</a></li> @@ -16,6 +14,8 @@ <button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="fa fa-bullseye"></i></button> <button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="fa fa-forward"></i></button> </div> + <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> + <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> </div> </div> <h2 id="title"></h2> diff --git a/view/tpl/events_cal-js.tpl b/view/tpl/events_cal-js.tpl index 121c06cb5..b7836cfab 100755 --- a/view/tpl/events_cal-js.tpl +++ b/view/tpl/events_cal-js.tpl @@ -2,13 +2,13 @@ <div class="generic-content-wrapper"> <div class="section-title-wrapper"> <div class="pull-right"> - <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> - <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> <div class="btn-group"> <button class="btn btn-default btn-xs" onclick="changeView('prev', false);" title="{{$prev}}"><i class="fa fa-backward"></i></button> <button id="events-spinner" class="btn btn-default btn-xs" onclick="changeView('today', false);" title="{{$today}}"><i class="fa fa-bullseye"></i></button> <button class="btn btn-default btn-xs" onclick="changeView('next', false);" title="{{$next}}"><i class="fa fa-forward"></i></button> </div> + <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> + <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> </div> <h2 id="title"></h2> <div class="clear"></div> diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl index e6cb61637..f097646e4 100755 --- a/view/tpl/photo_album.tpl +++ b/view/tpl/photo_album.tpl @@ -1,8 +1,6 @@ <div class="generic-content-wrapper"> <div class="section-title-wrapper"> <div class="pull-right"> - <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> - <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> {{if $order}} <a class="btn btn-default btn-xs" href="{{$order.1}}" title="{{$order.0}}"><i class="fa fa-sort"></i></a> {{/if}} @@ -14,6 +12,10 @@ <button class="btn btn-xs btn-success btn-xs" title="{{$usage}}" onclick="openClose('photo-upload-form'); closeMenu('photo-album-edit-wrapper');"><i class="fa fa-arrow-circle-o-up"></i> {{$upload.0}}</button> {{/if}} </div> + {{if !$no_fullscreen_btn}} + <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> + <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> + {{/if}} </div> <h2>{{$album}}</h2> <div class="clear"></div> diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl index c40dda145..139f27a23 100755 --- a/view/tpl/photos_recent.tpl +++ b/view/tpl/photos_recent.tpl @@ -1,11 +1,11 @@ <div class="generic-content-wrapper"> <div class="section-title-wrapper"> <div class="pull-right"> - <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> - <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> {{if $can_post}} <button class="btn btn-xs btn-success" title="{{$usage}}" onclick="openClose('photo-upload-form');"><i class="fa fa-arrow-circle-o-up"></i> {{$upload.0}}</button> {{/if}} + <button id="fullscreen-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen();"><i class="fa fa-expand"></i></button> + <button id="inline-btn" type="button" class="btn btn-default btn-xs" onclick="makeFullScreen(false);"><i class="fa fa-compress"></i></button> </div> <h2>{{$title}}</h2> <div class="clear"></div> diff --git a/view/tpl/settings_tokens.tpl b/view/tpl/settings_tokens.tpl new file mode 100644 index 000000000..22af381e9 --- /dev/null +++ b/view/tpl/settings_tokens.tpl @@ -0,0 +1,40 @@ +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + <h2>{{$title}}</h2> + <div class="clear"></div> + </div> + <div class="section-content-tools-wrapper"> + <div class="section-content-info-wrapper"> + {{$desc}} + </div> + + <form action="settings/tokens" id="settings-account-form" method="post" autocomplete="off" > + <input type='hidden' name='form_security_token' value='{{$form_security_token}}'> + {{if $atoken}}<input type="hidden" name="atoken_id" value="{{$atoken.atoken_id}}" />{{/if}} + {{include file="field_input.tpl" field=$name}} + {{include file="field_input.tpl" field=$token}} + {{include file="field_input.tpl" field=$expires}} + <div class="settings-submit-wrapper form-group"> + <button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button> + </div> + </form> + <div class="descriptive-text">{{$desc2}}</div> + <ul> + <li>{{$url1}}<span class="zat-example">?f=&zat=<span class="token-mirror"></span></span></li> + <li>{{$url2}}<span class="zat-example">?f=&zat=<span class="token-mirror"></span></span></li> + </ul> + </div> + {{if $tokens}} + <div class="section-content-wrapper-np"> + <table id="atoken-index"> + {{foreach $tokens as $t}} + <tr id="atoken-index-{{$t.atoken_id}}" class="atoken-index-row"> + <td width="99%"><a href="settings/tokens/{{$t.atoken_id}}">{{$t.atoken_name}}</a></td> + <td width="1%" class="atoken-index-tool"><i class="fa fa-trash-o drop-icons" onClick="dropItem('/settings/tokens/{{$t.atoken_id}}/drop', '#atoken-index-{{$t.atoken_id}}')"></i></td> + </tr> + {{/foreach}} + </table> + + </div> + {{/if}} +</div> |