From 96f23758b4c0e2b997a8c3579639a57f5c533649 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Tue, 20 Oct 2015 09:40:32 +0200 Subject: [PATCH 001/150] hubzilla photo object compatibility --- include/ItemObject.php | 16 +++++++++++++++- view/tpl/conv_item.tpl | 5 +++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/include/ItemObject.php b/include/ItemObject.php index d5601edf5..0add87510 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -263,7 +263,19 @@ class Item extends BaseObject { localize_item($item); - $body = prepare_body($item,true); + + $is_photo = (($item['obj_type'] == ACTIVITY_OBJ_PHOTO) ? true : false); + if($is_photo) { + $object = json_decode($item['object'],true); + $photo = array( + 'url' => rawurldecode($object['id']) . '?zid=' . $observer['xchan_addr'], + 'link' => rawurldecode(get_rel_link($object['link'],'alternate')) . '?zid=' . $observer['xchan_addr'], + 'width' => $object['width'], + 'height' => $object['height'] + ); + } + + $body .= prepare_body($item,true); // $viewthread (below) is only valid in list mode. If this is a channel page, build the thread viewing link // since we can't depend on llink or plink pointing to the right local location. @@ -323,6 +335,8 @@ class Item extends BaseObject { 'owner_url' => $this->get_owner_url(), 'owner_photo' => $this->get_owner_photo(), 'owner_name' => $this->get_owner_name(), + 'is_photo' => $is_photo, + 'photo' => (($is_photo) ? $photo : ''), // Item toolbar buttons 'like' => $like, diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index 30a007bd6..c16e7d6a6 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -33,6 +33,11 @@
+ {{if $item.is_photo}} +
+ +
+ {{/if}} {{$item.body}} {{if $item.tags}}
From 9cbca24f7a333187961d35a77e5426dc4f2e122e Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 22 Oct 2015 10:56:24 +0200 Subject: [PATCH 002/150] photo object compatibility revamped --- include/ItemObject.php | 15 +-------------- include/text.php | 9 ++++++++- view/tpl/conv_item.tpl | 5 ----- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/include/ItemObject.php b/include/ItemObject.php index 0add87510..dea2f75bf 100644 --- a/include/ItemObject.php +++ b/include/ItemObject.php @@ -264,18 +264,7 @@ class Item extends BaseObject { localize_item($item); - $is_photo = (($item['obj_type'] == ACTIVITY_OBJ_PHOTO) ? true : false); - if($is_photo) { - $object = json_decode($item['object'],true); - $photo = array( - 'url' => rawurldecode($object['id']) . '?zid=' . $observer['xchan_addr'], - 'link' => rawurldecode(get_rel_link($object['link'],'alternate')) . '?zid=' . $observer['xchan_addr'], - 'width' => $object['width'], - 'height' => $object['height'] - ); - } - - $body .= prepare_body($item,true); + $body = prepare_body($item,true); // $viewthread (below) is only valid in list mode. If this is a channel page, build the thread viewing link // since we can't depend on llink or plink pointing to the right local location. @@ -335,8 +324,6 @@ class Item extends BaseObject { 'owner_url' => $this->get_owner_url(), 'owner_photo' => $this->get_owner_photo(), 'owner_name' => $this->get_owner_name(), - 'is_photo' => $is_photo, - 'photo' => (($is_photo) ? $photo : ''), // Item toolbar buttons 'like' => $like, diff --git a/include/text.php b/include/text.php index f4122845e..2a8905efe 100644 --- a/include/text.php +++ b/include/text.php @@ -1440,12 +1440,19 @@ function generate_named_map($location) { function prepare_body(&$item,$attach = false) { + require_once('include/identity.php'); call_hooks('prepare_body_init', $item); unobscure($item); - $s = prepare_text($item['body'],$item['mimetype']); + $is_photo = (($item['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false); + if($is_photo) { + $object = json_decode($item['object'],true); + $s = ''; + } + + $s .= prepare_text($item['body'],$item['mimetype']); $prep_arr = array('item' => $item, 'html' => $s); call_hooks('prepare_body', $prep_arr); diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl index c16e7d6a6..30a007bd6 100755 --- a/view/tpl/conv_item.tpl +++ b/view/tpl/conv_item.tpl @@ -33,11 +33,6 @@
- {{if $item.is_photo}} -
- -
- {{/if}} {{$item.body}} {{if $item.tags}}
From 4442da306a6a2ac88c6dd0ab10b21616fb66daf0 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 25 Oct 2015 18:02:45 +0100 Subject: [PATCH 003/150] hubzilla compatibility: improve photo item object - we now provide the infos for all available photo sizes --- include/text.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/text.php b/include/text.php index 2a8905efe..c3abaeedf 100644 --- a/include/text.php +++ b/include/text.php @@ -1449,7 +1449,8 @@ function prepare_body(&$item,$attach = false) { $is_photo = (($item['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false); if($is_photo) { $object = json_decode($item['object'],true); - $s = ''; + $scale = ((($object['link'][1]['width'] == 1024) || ($object['link'][1]['height'] == 1024)) ? 1 : 0); + $s = '
'; } $s .= prepare_text($item['body'],$item['mimetype']); From a1163b70a6daf2f29eef4af8a4c97ceaaf96aa99 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 25 Oct 2015 14:26:02 -0700 Subject: [PATCH 004/150] version and strings --- util/messages.po | 8 ++++++-- version.inc | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/util/messages.po b/util/messages.po index 6380cdfac..51a915d80 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2015-10-17.1188\n" +"Project-Id-Version: 2015-10-23.1194\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-10-17 16:47-0700\n" +"POT-Creation-Date: 2015-10-23 00:04-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4522,6 +4522,10 @@ msgstr "" msgid "Location" msgstr "" +#: ../../mod/pubsites.php:26 +msgid "Project" +msgstr "" + #: ../../mod/pubsites.php:26 msgid "View hub ratings" msgstr "" diff --git a/version.inc b/version.inc index 25638166c..a451b30bc 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-10-19.1190 +2015-10-25.1196 From 35857931efa5fb9fa3fc660f4992879249ce5f0b Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Mon, 26 Oct 2015 22:47:47 +0100 Subject: [PATCH 005/150] 2 more tpl files with generic-content-wrapper-styled --- view/tpl/login.tpl | 2 ++ view/tpl/register.tpl | 2 ++ 2 files changed, 4 insertions(+) diff --git a/view/tpl/login.tpl b/view/tpl/login.tpl index 9472bd961..da38f3571 100755 --- a/view/tpl/login.tpl +++ b/view/tpl/login.tpl @@ -1,3 +1,4 @@ +
@@ -16,4 +17,5 @@ {{/foreach}} +
diff --git a/view/tpl/register.tpl b/view/tpl/register.tpl index ed673031a..005b122cf 100755 --- a/view/tpl/register.tpl +++ b/view/tpl/register.tpl @@ -1,3 +1,4 @@ +

{{$title}}

@@ -49,3 +50,4 @@
+
From 0fd60d1e80393eb1f1d778c7ce8dfec9fb86eda5 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 26 Oct 2015 16:59:52 -0700 Subject: [PATCH 006/150] version --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index a451b30bc..ad916e0f3 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-10-25.1196 +2015-10-26.1197 From fc65496d1dffd74aba1d2f7ec62cfcc398a96114 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Tue, 27 Oct 2015 01:11:50 +0100 Subject: [PATCH 007/150] NEW: Redbasic schema, based on the Hubzilla project page layout. --- images/bggrid.png | Bin 0 -> 200 bytes view/theme/redbasic/schema/bluegrid.css | 330 ++++++++++++++++++++++++ view/theme/redbasic/schema/bluegrid.php | 28 ++ 3 files changed, 358 insertions(+) create mode 100644 images/bggrid.png create mode 100644 view/theme/redbasic/schema/bluegrid.css create mode 100644 view/theme/redbasic/schema/bluegrid.php diff --git a/images/bggrid.png b/images/bggrid.png new file mode 100644 index 0000000000000000000000000000000000000000..7d7ef571800709ea99ffa1bd990308b96ae8455e GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq zq}PKmW1Q4P8K9tKiEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0wno-U3d z5v^~pZ{%fA6gcA0e8O{nmB)(SWr|L}_{=s+@3@#2{_Iw}!{gTsSB`wFXJX+HP;h8q kV1zIns^ha({a_N`C&F~?6#ui;Km!>(UHx3vIVCg!06!EwZ~y=R literal 0 HcmV?d00001 diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css new file mode 100644 index 000000000..9638e4696 --- /dev/null +++ b/view/theme/redbasic/schema/bluegrid.css @@ -0,0 +1,330 @@ +body { + background-size: auto; +} + +.generic-content-wrapper-styled, #profile-jot-wrapper { + background-color: rgba(67,72,138,.8); + color: #FFF; +} + +.generic-content-wrapper-styled .btn-default:hover, #profile-jot-wrapper .btn-default:hover { + border: 1px solid #FFF; +} + +.generic-content-wrapper-styled a:hover, .generic-content-wrapper-styled a:focus, .generic-content-wrapper-styled .field.checkbox:hover label, .generic-content-wrapper-styled .field.checkbox:focus label { + color: rgba(255,255,255,.8); +} + +.generic-content-wrapper, .profile-jot-text, .comment-edit-text-empty, .comment-edit-text-full, input.widget-input, .wall-item-content-wrapper, .section-title-wrapper, .section-content-wrapper { + border-radius: 0px !important; +} + +.generic-content-wrapper { + background-color: #FFF; +} + +.generic-content-wrapper-styled .generic-content-wrapper { + color: #4d4d4d; +} +.generic-content-wrapper-styled .generic-content-wrapper a { + color: #43488A; +} + +.fn, .widget h3, .nav-tabs a, .generic-content-wrapper-styled a, .dropdown-menu > li > a, #channels-desc, input#jot-title { + color: #fff; + border-radius: 0px +} + +input#jot-title:hover, input#jot-title:focus { + color: #43488A; + border-radius: 0px; +} + +.navbar-inverse { + background-color: transparent; + border-color: transparent; + background-image: none; +} + +.navbar-inverse .navbar-nav > .active > a { + background-image: none; + background: rgba(255,255,255,.5); +} + +.navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { + background: rgba(255,255,255,.5); +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #43488A; + background: rgba(255,255,255,.5); +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + background-color: #43488A; + color: #fff; +} + +#nav-search-text { + color: #fff; + background-color: #43488A; + border-radius: 0px; + border-color: transparent; +} + +nav .dropdown-menu, .wall-item-tools .dropdown-menu, .section-title-wrapper .dropdown-menu { + background-color: rgba(67,72,138,.95); + color: #fff; + border-radius: 0; + border: none; + box-shadow: 0px 6px 12px rgba(45,48,92,.176); +} + +.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover { + color: #43488A; + background-color: rgba(255,255,255,.7); + text-decoration: underline; +} + +nav .badge { + background-color: rgba(255,255,255,.8); + color: #43488A; + border-radius: 0px !important; +} + +nav .badge:hover, nav .badge:focus { + background-color: rgba(67,72,138,.8); + color: #FFF; +} + +.field.checkbox > div > input:checked + label .onoffswitch-switch { + background-color: #43488A; +} + +.widget .field.checkbox:hover label { + color: rgba(255,255,255,.8); +} + +.help-block, .comment-icon, .jot-icons { + color: inherit; +} + +.wall-item-tools .btn { + border-color: #43488A; +} + +.vcard, #contact-block, .widget { + background-color: rgba(67,72,138,.8); + color: #fff; + border-radius: 0; + border: none; + box-shadow: 0px 6px 12px rgba(45,48,92,.176); +} + +#profile-photo-wrapper { + border: none; +} + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + color: #43488A; + text-decoration: none; + border: none; +} + +.nav-tabs > li.active { + background-color: rgba(255,255,255,.5); +} + +.nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover { + border-color: transparent; +} + +.nav-tabs.nav-justified { + background-color: rgba(67,72,138,.8); + border-bottom: 1px solid rgba(255,255,255,.5); + border-radius: 0px; +} + +.nav-tabs.nav-justified > li > a { + border-bottom: 1px solid transparent; + border-radius: 0px; +} + +.nav > li > a:focus, .nav > li > a:hover { + text-decoration: underline; + background-color: rgba(255,255,255,.5); + color: #43488A; + border-radius: 0; + border-color: transparent; +} + +.nav > li > a { + color: #FFF; + border-radius: 0px; +} + +.fc-event { + border: none !important; + background-color: rgba(255,255,255,.7) !important; + color: #43488A !important; + text-shadow: none !important; +} + +.fc-today { + color: #43488A; +} + +div.rateme { + border-radius: 0px; + font-weight: 400; +} + +div.rateme:hover, div.rateme:focus, a.rateme:hover, a.rateme:focus { + background-color: #43488A; + border-radius: 0px; + color: #FFF; + font-weight: 400; + -webkit-transition: all .3s ease-in-out; + -moz-transition: all .3s ease-in-out; + transition: all .3s ease-in-out; +} + +.info { + background: rgba(255,255,255,.7) url("/images/hz-32.png") no-repeat scroll 15px center !important; + color: #43488A !important; +} + +input { + -moz-border-radius: 0px; + border-radius: 0px; +} + +#login-main { + max-width: 100%; + margin-top: 0; +} + +.contact-entry-wrapper { + border: 1px solid rgba(255,255,255,.5); +} + +.contact-entry-edit a:hover, .contact-entry-edit a:focus { + color: #43488A; +} + +.btn, #event-edit-form .btn { + border: 1px solid #FFF; + color: #FFF; + background-color: #43488A; + border-radius: 0; + font-weight: 400; + -webkit-transition: all .3s ease-in-out; + -moz-transition: all .3s ease-in-out; + transition: all .3s ease-in-out; +} + +.btn:hover, .btn:focus, #event-edit-form .btn:hover, #event-edit-form .btn:focus { + border: 1px solid #FFF; + outline: 0; + color: #43488A; + background-color: #FFF; +} + +.btn-default:hover, .btn-default:focus, .open > .dropdown-toggle.btn-default { + border: 1px solid #43488A; + outline: 0; + color: #43488A; + background-color: #FFF; +} + +.btn-success { + color: #FFF; + background-color: #5CB85C; + border-color: #4CAE4C; +} + +.btn-success:hover, .btn-success:focus { + color: #FFF; + background-color: #449D44; + border-color: #398439; +} + +.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit { + background-color: #FFF; + color: #43488A; + border-radius: 0px; + -webkit-transition: all .3s ease-in-out; + -moz-transition: all .3s ease-in-out; + transition: all .3s ease-in-out; +} + +.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus { + border-color: #FFF; + background-color: #43488A; + color: #FFF; + border-radius: 0px; +} + +.comment-tools .btn, #prvmail-tools .btn { + border: 1px solid #43488A; + color: #43488A; + background-color: #FFF; +} + +.comment-tools .btn:hover, .comment-tools .btn:focus, #prvmail-tools .btn:hover, #prvmail-tools .btn:focus { + border: 1px solid #43488A; + color: #FFF; + background-color: #43488A; +} + +.comment-tools .btn-primary, #prvmail-submit .btn-primary, .settings-submit-wrapper .btn-primary { + background-color: #43488A; + color: #FFF; + border: 1px solid #43488A; +} + +.comment-tools .btn-primary:hover, .comment-tools .btn-primary:focus, #prvmail-submit .btn-primary:hover, #prvmail-submit .btn-primary:focus, .settings-submit-wrapper .btn-primary:hover, .settings-submit-wrapper .btn-primary:focus { + border-color: #43488A; + background-color: #FFF; + color: #43488A; +} + +.btn-danger { + background-color: #D9534F; + border-color: #D43F3A; +} +.btn-danger:hover, .btn-danger:focus { + color: #FFF; + background-color: #C9302C; + border-color: #AC2925; +} + +@media screen and (max-width: 767px) { + .navbar-inverse .navbar-collapse { + background-color: #43488A; + border: none; + } + .navbar-inverse .navbar-toggle { + border-color: #576295; + background-color: #43488A; + border-radius: 0px; + } + .navbar-inverse .navbar-toggle .icon-bar { + background-color: #FFF; + } + .navbar-inverse .navbar-toggle .icon-circle-arrow-down, .navbar-inverse .navbar-toggle .icon-circle-arrow-right, .navbar-inverse .navbar-toggle .icon-circle-arrow-up, .navbar-inverse .navbar-toggle .icon-circle-arrow-left { + color: #FFF; + } + .navbar-inverse .navbar-toggle:hover .icon-circle-arrow-down, .navbar-inverse .navbar-toggle:focus .icon-circle-arrow-down, .navbar-inverse .navbar-toggle:hover .icon-circle-arrow-right, .navbar-inverse .navbar-toggle:focus .icon-circle-arrow-right, .navbar-inverse .navbar-toggle:hover .icon-circle-arrow-up, .navbar-inverse .navbar-toggle:focus .icon-circle-arrow-up, .navbar-inverse .navbar-toggle:hover .icon-circle-arrow-left, .navbar-inverse .navbar-toggle:focus .icon-circle-arrow-left { + color: #43488A; + } + .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { + background-color: #FFF !important; + } + .navbar-toggle:hover .icon-bar , .navbar-toggle:focus .icon-bar { + background-color: #43488A !important; + } +} diff --git a/view/theme/redbasic/schema/bluegrid.php b/view/theme/redbasic/schema/bluegrid.php new file mode 100644 index 000000000..fdb552611 --- /dev/null +++ b/view/theme/redbasic/schema/bluegrid.php @@ -0,0 +1,28 @@ + Date: Tue, 27 Oct 2015 01:20:48 +0100 Subject: [PATCH 008/150] Another .generic-content-wrapper --- view/tpl/siteinfo.tpl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/view/tpl/siteinfo.tpl b/view/tpl/siteinfo.tpl index 0b16f5602..476b68512 100755 --- a/view/tpl/siteinfo.tpl +++ b/view/tpl/siteinfo.tpl @@ -1,3 +1,4 @@ +

{{$title}}

{{$description}}

@@ -22,3 +23,4 @@
{{$plugins_list}}
{{/if}}

{{$donate}}

+
From 02527552fd6d17efdf4eb36a5e0403b2b7e19789 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Tue, 27 Oct 2015 01:23:30 +0100 Subject: [PATCH 009/150] Better -styled. --- view/tpl/siteinfo.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/tpl/siteinfo.tpl b/view/tpl/siteinfo.tpl index 476b68512..e50284b9c 100755 --- a/view/tpl/siteinfo.tpl +++ b/view/tpl/siteinfo.tpl @@ -1,4 +1,4 @@ -
+

{{$title}}

{{$description}}

From 3f1dc22c0edc87e332c436d0426f9616e6500880 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Tue, 27 Oct 2015 11:07:40 +0100 Subject: [PATCH 010/150] fix sharing of photo items --- include/photos.php | 11 ++++++----- mod/share.php | 12 +++++++++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/photos.php b/include/photos.php index a8619c372..d62d5aeb8 100644 --- a/include/photos.php +++ b/include/photos.php @@ -292,18 +292,19 @@ function photo_upload($channel, $observer, $args) { $tag = (($r2) ? '[zmg=' . $width . 'x' . $height . ']' : '[zmg]'); } + $body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' + . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' + . '[/zrl]'; + // Create item object $object = array( 'type' => ACTIVITY_OBJ_PHOTO, 'title' => $title, 'id' => rawurlencode(z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash), - 'link' => $link + 'link' => $link, + 'bbcode' => $body ); - $body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' - . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' - . '[/zrl]'; - // Create item container if($args['item']) { foreach($args['item'] as $i) { diff --git a/mod/share.php b/mod/share.php index d5a389bdf..12938ae0d 100644 --- a/mod/share.php +++ b/mod/share.php @@ -42,6 +42,12 @@ function share_init(&$a) { xchan_query($r); + $is_photo = (($r[0]['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false); + if($is_photo) { + $object = json_decode($r[0]['object'],true); + $photo_bb = $object['bbcode']; + } + if (strpos($r[0]['body'], "[/share]") !== false) { $pos = strpos($r[0]['body'], "[share"); $o = substr($r[0]['body'], $pos); @@ -53,9 +59,9 @@ function share_init(&$a) { "' posted='".$r[0]['created']. "' message_id='".$r[0]['mid']."']"; if($r[0]['title']) - $o .= '[b]'.$r[0]['title'].'[/b]'."\n"; - $o .= $r[0]['body']; - $o.= "[/share]"; + $o .= '[b]'.$r[0]['title'].'[/b]'."\r\n"; + $o .= (($is_photo) ? $r[0]['body'] . "\r\n" . $photo_bb : $r[0]['body']); + $o .= "[/share]"; } if(local_channel()) { From c6daf4d41cd4de744f59ae0e8284eab2dc44fe19 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Tue, 27 Oct 2015 11:26:48 +0100 Subject: [PATCH 011/150] first the image than the body --- mod/share.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/share.php b/mod/share.php index 12938ae0d..7ed6cf9a6 100644 --- a/mod/share.php +++ b/mod/share.php @@ -60,7 +60,7 @@ function share_init(&$a) { "' message_id='".$r[0]['mid']."']"; if($r[0]['title']) $o .= '[b]'.$r[0]['title'].'[/b]'."\r\n"; - $o .= (($is_photo) ? $r[0]['body'] . "\r\n" . $photo_bb : $r[0]['body']); + $o .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']); $o .= "[/share]"; } From 71f70b4377fa33ceba6b8e6a198d5871c8a8f143 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Tue, 27 Oct 2015 12:52:21 +0100 Subject: [PATCH 012/150] css fixes --- view/tpl/cloud_actionspanel.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/view/tpl/cloud_actionspanel.tpl b/view/tpl/cloud_actionspanel.tpl index 44e4eb54c..81a586e75 100644 --- a/view/tpl/cloud_actionspanel.tpl +++ b/view/tpl/cloud_actionspanel.tpl @@ -1,4 +1,4 @@ -
+
@@ -7,7 +7,7 @@
-
+
{{if $quota.limit || $quota.used}}{{/if}}
From 605381f83deecc384a0ed7630dd1577e93b2cf8f Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Tue, 27 Oct 2015 22:52:54 +0100 Subject: [PATCH 013/150] More fine tuning bluegrid schema. Extra generic-wrapper-styled. --- view/theme/redbasic/schema/bluegrid.css | 57 ++++++++++++++++++++----- view/tpl/404.tpl | 2 + view/tpl/chat.tpl | 2 + view/tpl/chatroom_new.tpl | 4 +- view/tpl/chatrooms.tpl | 2 + view/tpl/locmanage.tpl | 3 +- view/tpl/profile_photo.tpl | 2 + 7 files changed, 58 insertions(+), 14 deletions(-) diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css index 9638e4696..a2b795be9 100644 --- a/view/theme/redbasic/schema/bluegrid.css +++ b/view/theme/redbasic/schema/bluegrid.css @@ -11,7 +11,7 @@ body { border: 1px solid #FFF; } -.generic-content-wrapper-styled a:hover, .generic-content-wrapper-styled a:focus, .generic-content-wrapper-styled .field.checkbox:hover label, .generic-content-wrapper-styled .field.checkbox:focus label { +.generic-content-wrapper-styled a:hover, .generic-content-wrapper-styled a:focus, .generic-content-wrapper-styled .field.checkbox:hover label, .generic-content-wrapper-styled .field.checkbox:focus label, .allcontact-link:hover, .allcontact-link:focus { color: rgba(255,255,255,.8); } @@ -20,9 +20,18 @@ body { } .generic-content-wrapper { + background-color: rgba(255,255,255,.8); + color: #4d4d4d; +} + +.wall-item-content-wrapper { background-color: #FFF; } +.hide-comments-outer, .wall-item-content-wrapper.comment, .wall-item-comment-wrapper { + background-color: transparent; +} + .generic-content-wrapper-styled .generic-content-wrapper { color: #4d4d4d; } @@ -76,7 +85,7 @@ input#jot-title:hover, input#jot-title:focus { } nav .dropdown-menu, .wall-item-tools .dropdown-menu, .section-title-wrapper .dropdown-menu { - background-color: rgba(67,72,138,.95); + background-color: rgba(67,72,138,.97); color: #fff; border-radius: 0; border: none; @@ -89,6 +98,23 @@ nav .dropdown-menu, .wall-item-tools .dropdown-menu, .section-title-wrapper .dro text-decoration: underline; } +.vcard .dropdown-menu { + background-color: rgba(255,255,255,.97); + border-radius: 0; + border: none; + box-shadow: 0px 6px 12px rgba(169,169,169,.176); +} + +.vcard .dropdown-menu a, .fc-today { + color: #43488A; +} + +.vcard .dropdown-menu > li > a:focus, .vcard .dropdown-menu > li > a:hover { + color: #43488A; + background-color: rgba( 255,255,255,.7); + text-decoration: underline; +} + nav .badge { background-color: rgba(255,255,255,.8); color: #43488A; @@ -173,10 +199,6 @@ nav .badge:hover, nav .badge:focus { text-shadow: none !important; } -.fc-today { - color: #43488A; -} - div.rateme { border-radius: 0px; font-weight: 400; @@ -197,8 +219,12 @@ div.rateme:hover, div.rateme:focus, a.rateme:hover, a.rateme:focus { color: #43488A !important; } +.notice { + background: rgba(215,43,52,.7) url("/images/hz-white-32.png") no-repeat scroll 15px center !important; + color: #FFF !important; +} + input { - -moz-border-radius: 0px; border-radius: 0px; } @@ -211,9 +237,18 @@ input { border: 1px solid rgba(255,255,255,.5); } -.contact-entry-edit a:hover, .contact-entry-edit a:focus { +.contact-entry-edit a:hover, .contact-entry-edit a:focus, .generic-content-wrapper-styled > p > span.btn.btn-default > a:hover,.generic-content-wrapper-styled > p > span.btn.btn-default > a:focus, div#profile-edit-links a:hover, div#profile-edit-links a:focus { color: #43488A; -} +} + +.profile-edit-side-link, input#profile-photo-upload, .allcontact-link { + color: #FFF; +} + +.profile-edit-side-link:hover, .profile-edit-side-link:focus { + color: #FFF; + text-decoration: none; +} .btn, #event-edit-form .btn { border: 1px solid #FFF; @@ -252,7 +287,7 @@ input { border-color: #398439; } -.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit { +.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit { background-color: #FFF; color: #43488A; border-radius: 0px; @@ -261,7 +296,7 @@ input { transition: all .3s ease-in-out; } -.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus { +.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus { border-color: #FFF; background-color: #43488A; color: #FFF; diff --git a/view/tpl/404.tpl b/view/tpl/404.tpl index 518ad1d29..c9b51a63b 100755 --- a/view/tpl/404.tpl +++ b/view/tpl/404.tpl @@ -1 +1,3 @@ +

{{$message}}

+
diff --git a/view/tpl/chat.tpl b/view/tpl/chat.tpl index 9f95d2999..003e0192b 100644 --- a/view/tpl/chat.tpl +++ b/view/tpl/chat.tpl @@ -1,3 +1,4 @@ +

{{$room_name}}

@@ -33,6 +34,7 @@
+
+
{{$sync_text}}
+
+
{{$drop_text}}
+
{{$last_resort}}
+
+ + + + {{foreach $hubs as $hub}} @@ -25,3 +34,5 @@ function drophub(id) { {{/foreach}}
{{$loc}}{{$mkprm}}{{$drop}}
+
+ From 14e92f53f16b0f98bb4574f98c54c68e08d528dc Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 1 Nov 2015 16:19:28 -0800 Subject: [PATCH 055/150] hubloc filtering to eliminate dead and deleted entries --- mod/connedit.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mod/connedit.php b/mod/connedit.php index c8f83b0e8..87ca55703 100644 --- a/mod/connedit.php +++ b/mod/connedit.php @@ -654,7 +654,8 @@ function connedit_content(&$a) { $locstr = ''; - $locs = q("select hubloc_addr as location from hubloc where hubloc_hash = '%s' and hubloc_network = 'zot'", + $locs = q("select hubloc_addr as location from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' + and hubloc_network = 'zot' and hubloc_deleted = 0 and site_dead = 0", dbesc($contact['xchan_hash']) ); From 954957bd8ac961ba06ccbb0105af438afe5afadf Mon Sep 17 00:00:00 2001 From: redmatrix Date: Sun, 1 Nov 2015 19:07:32 -0800 Subject: [PATCH 056/150] provide discovery for local deletes in zot-finger and mark the hublocs invalid/deleted --- include/zot.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/zot.php b/include/zot.php index ed4bdc264..f8b8ba43f 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2464,6 +2464,13 @@ function zot_encode_locations($channel) { if($x && count($x)) { foreach($x as $hub) { + + // if this is a local channel that has been deleted, the hubloc is no good - make sure it is marked deleted + // so that nobody tries to use it. + + if(intval($channel['channel_removed']) && $hub['hubloc_url'] === z_root()) + $hub['hubloc_deleted'] = true; + $ret[] = array( 'host' => $hub['hubloc_host'], 'address' => $hub['hubloc_addr'], @@ -3736,6 +3743,8 @@ function zotinfo($arr) { $ret['public_forum'] = $public_forum; if($deleted) $ret['deleted'] = $deleted; + if(intval($e['channel_removed'])) + $ret['deleted_locally'] = true; // premium or other channel desiring some contact with potential followers before connecting. // This is a template - %s will be replaced with the follow_url we discover for the return channel. From 6ec021aafabb2d01d1965ab763aad5435251958a Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 2 Nov 2015 08:36:43 +0100 Subject: [PATCH 057/150] revert filtering by metwork --- mod/connedit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/connedit.php b/mod/connedit.php index 87ca55703..877c12dc7 100644 --- a/mod/connedit.php +++ b/mod/connedit.php @@ -655,7 +655,7 @@ function connedit_content(&$a) { $locstr = ''; $locs = q("select hubloc_addr as location from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' - and hubloc_network = 'zot' and hubloc_deleted = 0 and site_dead = 0", + and hubloc_deleted = 0 and site_dead = 0", dbesc($contact['xchan_hash']) ); From 18feef0753e40c2534433f6f12624c00e473202f Mon Sep 17 00:00:00 2001 From: Haakon Meland Eriksen Date: Mon, 2 Nov 2015 18:53:40 +0100 Subject: [PATCH 058/150] Added new directory server https://blablanet.com --- .openshift/action_hooks/deploy | 1 + 1 file changed, 1 insertion(+) diff --git a/.openshift/action_hooks/deploy b/.openshift/action_hooks/deploy index 9e3413f98..8d8d65d8f 100755 --- a/.openshift/action_hooks/deploy +++ b/.openshift/action_hooks/deploy @@ -184,6 +184,7 @@ cd ${OPENSHIFT_REPO_DIR} util/config system expire_delivery_reports 3 util/config system feed_contacts 0 util/config system disable_discover_tab 1 +util/config system https://blablanet.com # Hubzill addons echo "Try to add or update Hubzilla addons" From fe52400b75a9e6e79e489028097c2261aa4c8dc9 Mon Sep 17 00:00:00 2001 From: Haakon Meland Eriksen Date: Mon, 2 Nov 2015 19:40:34 +0100 Subject: [PATCH 059/150] Added new directory server https://blablanet.com --- .openshift/action_hooks/deploy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openshift/action_hooks/deploy b/.openshift/action_hooks/deploy index 8d8d65d8f..3facd514b 100755 --- a/.openshift/action_hooks/deploy +++ b/.openshift/action_hooks/deploy @@ -184,7 +184,7 @@ cd ${OPENSHIFT_REPO_DIR} util/config system expire_delivery_reports 3 util/config system feed_contacts 0 util/config system disable_discover_tab 1 -util/config system https://blablanet.com +util/config system directory_server https://blablanet.com # Hubzill addons echo "Try to add or update Hubzilla addons" From 4e74c7e3b1c7709a8aab83e4ed881dcf3e55851a Mon Sep 17 00:00:00 2001 From: Haakon Meland Eriksen Date: Mon, 2 Nov 2015 19:57:49 +0100 Subject: [PATCH 060/150] Changed default config to util/config system expire_delivery_reports 3 util/config system feed_contacts 0 util/config system diaspora_enabled 0 util/config system disable_discover_tab 1 util/config system directory_server https://blablanet.com util/config directory safemode 0 util/config directory globaldir 1 util/config directory pubforums 0 --- .openshift/action_hooks/deploy | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.openshift/action_hooks/deploy b/.openshift/action_hooks/deploy index 3facd514b..7b4c9f477 100755 --- a/.openshift/action_hooks/deploy +++ b/.openshift/action_hooks/deploy @@ -183,8 +183,12 @@ echo "Changing default configuration to conserve space" cd ${OPENSHIFT_REPO_DIR} util/config system expire_delivery_reports 3 util/config system feed_contacts 0 +util/config system diaspora_enabled 0 util/config system disable_discover_tab 1 util/config system directory_server https://blablanet.com +util/config directory safemode 0 +util/config directory globaldir 1 +util/config directory pubforums 0 # Hubzill addons echo "Try to add or update Hubzilla addons" From 54eae7830eb37a55d358ac23768d700babc4b14c Mon Sep 17 00:00:00 2001 From: ken restivo Date: Mon, 2 Nov 2015 12:52:23 -0800 Subject: [PATCH 061/150] Update RSS setting docs. --- doc/hidden_configs.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb index 76213851c..554eb55de 100644 --- a/doc/hidden_configs.bb +++ b/doc/hidden_configs.bb @@ -112,7 +112,7 @@ This document assumes you're an administrator. [b]system > cron_hour[/b] Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC. [b]system > minimum_feedcheck_minutes[/b] - The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob + The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob. Defaults to 60 if not set. The site setting can also be over-ridden on a channel by channel basis by a service class setting aptly named 'minimum_feedcheck_minutes'. [b]system > blacklisted_sites[/b] An array of specific hubs to block from this hub completely. [b]system > ignore_imagick[/b] From 5041774fd3b9aaf7bc77b95ef57ab634e320d7a6 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 2 Nov 2015 14:46:02 -0800 Subject: [PATCH 062/150] directory doco --- doc/admins.bb | 1 + doc/directories.bb | 95 ++++++++++++++++++++++++++++++++++++++++++++++ version.inc | 2 +- 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 doc/directories.bb diff --git a/doc/admins.bb b/doc/admins.bb index c77b004a4..484212024 100644 --- a/doc/admins.bb +++ b/doc/admins.bb @@ -9,6 +9,7 @@ [zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl] [zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl] [zrl=[baseurl]/help/service_classes]Service Classes[/zrl] +[zrl=[baseurl]/help/directories]Working with and configuring Directories[/zrl] [zrl=[baseurl]/help/theme_management]Theme Management[/zrl] diff --git a/doc/directories.bb b/doc/directories.bb new file mode 100644 index 000000000..d81dd84c5 --- /dev/null +++ b/doc/directories.bb @@ -0,0 +1,95 @@ +[h3]Directory Configuration[/h3] + +Directories in $Projectname serve the purpose of searching and locating members anywhere in the network. They are also used to store and query "ratings" of members and sites. The directory services are distributed and mirrored so that a failure of one will not take down or disrupt the entire network. + +[b]Standard Configuration[/b] + +New sites operating as directory clients will automatically select from a hard-coded list of directory servers during their first directory access. You may examine or over-ride this decision using + +[code] +util/config system directory_server +[/code] + +To set a different server, + +[code] +util/config system directory_server https://newdirectory.something +[/code] + + +[b]Standalone configuration[/b] + +Some sites may wish to operate in 'standalone' mode and not connect to any external directory services. This is useful for isolated sites ("off the gird") and test sites, but can also be useful for small organisations who do not wish to connect with other sites in the network. + +To configure this, please look in your .htconfig.php file for the following text and set the configuration accordingly. + +[code] +// Configure how we communicate with directory servers. +// DIRECTORY_MODE_NORMAL = directory client, we will find a directory +// DIRECTORY_MODE_SECONDARY = caching directory or mirror +// DIRECTORY_MODE_PRIMARY = main directory server +// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services + +$a->config['system']['directory_mode'] = DIRECTORY_MODE_STANDALONE; +[/code] + + +[b]Secondary server configuration[/b] + +You may also configure your site as a secondary server. This operates as a mirror of the primary directory and allows disitribution of the load amongst available servers. There is very little functional difference between a primary and secondary sever, however there may only be *one* primary directory server per realm (realms are discussed later in this document). + +Before choosing to be a directory server, please be advised that you should be an active member of the network and have the resources and time available to manage these services. They don't typically require management, but the requirement is more for stability as losing a directory server can cause issues to directory clients which are reliant on it. + + +[b]Changing the directory server[/b] + +If a directory server indicates that it is no longer a directory server, this should be detected by the software and the configuration for that server will be removed (blanked). If it goes offline permanently without warning, you will only know if site members report that directory services are unavailable. Currently this can only be repaired manually by the site administrator by selecting a new directory and performing: + +[code] +util/config system directory_server https://newdirectory.something +[/code] + +Eventually we hope to make this a selectable box from the site admin panel. + + +[h2]Directory realms[/h2] + +Large organisations may wish to use directory 'realms' rather than a single standalone directory. The standard and default realm is known as RED_GLOBAL. By creating a new realm, your organisation has the ability to create its own hierarchy of primary and secondary servers and clients. + +[code] +util/config system directory_realm MY_REALM +[/code] + +Your realm *must* have a primary directory. Create this first. Then set the realm the same on all sites within your directory realm (servers and clients). + +You may also provide a "sub-realm" that operates indepently from the RED_GLOBAL realm (or any other realm) but allows cross membership and some ability to lookup members of the entire directory space. This has only undergone light testing so be prepared to help out and fix any issues that may arise. A sub-realm contains its parent realm within the realm name. + + +[code] +util/config system directory_realm RED_GLOBAL:MY_REALM +[/code] + + +[b]Realm access[/b] + +You may wish that your directory servers and services are only used by members of your realm. To do this a token or password must be supplied to access the realm directory services. This token is not encrypted during transit, but is sufficient to prevent casual access to your directory servers. The following must be configured for all sites (clients and directory servers) within the realm: + +[code] +util/config system realm_token my-secret-realm-password +[/code] + + + +[h2]Directory mirrors[/h2] + +Mirroring occurs with a daily transaction log of activities which are shared between directory servers. In the case of directory and profile updates, the channel address performing the update is transmitted, and the other directory servers probe that channel at its source for changes. We do not and should not trust any information given us by other directory servers. We always check the information at the source. + +Ratings are handled slightly differently - an encrypted packet (signed by the channel that created the rating) is passed between the servers. This signature needs to be verified before the rating is accepted. Ratings are always published to the primary directory server and propagated to all other directory servers from there. For this reason there can only be one primary server in a realm. If a misconfigured site claims to be a primary directory, it is ignored in the RED_GLOBAL realm. For other realms there is currently no such protection. Be aware of this when working with alternate realms. + +Newly created directory servers are not provided a "full dump", but for performance reasons and minimal disruption to the other servers in the network, they are brought online slowly. It may take up to a month for a new secondary directory server to provide a full view of the network. Please do not add any secondary servers to the hard-coded list of fallback directory servers until it has been operating as a directory for at least a month. + +All channels are configured to "ping" their directory server once a month, at somewhat random times during the month. This gives the ability for the directory to discover dead channels and sites (they stop pinging). Subsequently they are marked dead or unreachable and over time will be removed from the directory results. + +Channels may be configured to be "hidden" from the directory. These channels may still exist in the directory but will be un-searchable and some "sensitive" personal information will not be stored at all. + + \ No newline at end of file diff --git a/version.inc b/version.inc index 820093fdc..c2d20dbc4 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-11-01.1203 +2015-11-02.1204 From 5513feb15bcacdfe4d80aee2b8393a1f4b7df0cb Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 2 Nov 2015 17:07:40 -0800 Subject: [PATCH 063/150] several more hidden configs --- doc/hidden_configs.bb | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb index f92f23f59..77e68272e 100644 --- a/doc/hidden_configs.bb +++ b/doc/hidden_configs.bb @@ -134,14 +134,44 @@ This document assumes you're an administrator. Longer time increases performance, but it also means it takes longer for changed permissions to apply. [b]system > poco_rating_enable[/b] Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections. - + [b]system > register_link[/b] + path to direct to from the "register" link on the login form. On closed sites this will direct to 'pubsites'. For open sites it will normally redirect to 'register' but you may change this to a custom site page offering subscriptions or whatever. + [b]system > max_import_size[/b] + If configured, the maximum length of an imported text message. This is normally left at 200Kbytes or more to accomodate Friendica private photos, which are embedded. + [b]system > tempdir[/b] + Place to store temporary files, default is defined in the PHP configuration + [b]system uploaddir[/b] + Location to upload files (default is system.tempdir) + [b]system > disable_discover_tab[/b] + This allows you to completely disable the ability to discover public content from external sites. + [b]system > sys_expire_days[/b] + How many days to keep discovered public content from other sites + [b]system openssl_encrypt[/b] + Use openssl encryption engine, default is false (uses mcrypt for AES encryption) + [b]system max_tagged_forums[/b] + Spam prevention. Limits the number of tagged forums which are recognised in any post. Default is 2. Only the first 'n' tags will be delivered as forums, the others will not cause any delivery. + [b]system openssl_conf_file[/b] + Needed in some Windows installations to locate the openssl configuration file on the system. + + [b]Directory config[/b] +[b]Directory search defaults[/b] [b]directory > safemode[/b] 0 or 1. [b]directory > globaldir[/b] 0 or 1. Default 0. If you visit the directory on a site you'll just see the members of that site by default. You have to go through an extra step to see the people in the rest of the network; and by doing so there's a clear delineation that these people *aren't* members of that site but of a larger network. [b]directory > pubforums[/b] 0 or 1. Public forums *should* be default 0. +[b]Directory server configuration (see [zrl=[baseurl]/help/directories]help/directories[/zrl])[/b] + [b]system > directory_server[/b] + [b]system > directory_primary[/b] + [b]system > directory_realm[/b] + [b]system > realm_token[/b] + [b]system > directory_mode[/b] + + + + #include doc/macros/main_footer.bb; From 0998ef0c4e6541807f64a6c635a0ba978371968f Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 2 Nov 2015 17:10:47 -0800 Subject: [PATCH 064/150] readability --- doc/hidden_configs.bb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/hidden_configs.bb b/doc/hidden_configs.bb index 77e68272e..44114967b 100644 --- a/doc/hidden_configs.bb +++ b/doc/hidden_configs.bb @@ -140,17 +140,17 @@ This document assumes you're an administrator. If configured, the maximum length of an imported text message. This is normally left at 200Kbytes or more to accomodate Friendica private photos, which are embedded. [b]system > tempdir[/b] Place to store temporary files, default is defined in the PHP configuration - [b]system uploaddir[/b] + [b]system > uploaddir[/b] Location to upload files (default is system.tempdir) [b]system > disable_discover_tab[/b] This allows you to completely disable the ability to discover public content from external sites. [b]system > sys_expire_days[/b] How many days to keep discovered public content from other sites - [b]system openssl_encrypt[/b] + [b]system > openssl_encrypt[/b] Use openssl encryption engine, default is false (uses mcrypt for AES encryption) - [b]system max_tagged_forums[/b] + [b]system > max_tagged_forums[/b] Spam prevention. Limits the number of tagged forums which are recognised in any post. Default is 2. Only the first 'n' tags will be delivered as forums, the others will not cause any delivery. - [b]system openssl_conf_file[/b] + [b]system > openssl_conf_file[/b] Needed in some Windows installations to locate the openssl configuration file on the system. From d13dae6b060ad1147426ae88791cac5970ab3b03 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Mon, 2 Nov 2015 21:02:30 -0800 Subject: [PATCH 065/150] bug in hub/location sync --- include/zot.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/include/zot.php b/include/zot.php index f8b8ba43f..b13111f04 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2364,16 +2364,15 @@ function sync_locations($sender, $arr, $absolute = false) { $changed = true; } } - if((intval($r[0]['hubloc_deleted']) && (! $location['deleted'])) - || ((! (intval($r[0]['hubloc_deleted']))) && ($location['deleted']))) { + if(intval($r[0]['hubloc_deleted']) && (! intval($location['deleted']))) { $n = q("update hubloc set hubloc_deleted = 0, hubloc_updated = '%s' where hubloc_id = %d", dbesc(datetime_convert()), intval($r[0]['hubloc_id']) ); - $what .= 'delete_hub '; + $what .= 'undelete_hub '; $changed = true; } - elseif((! intval($r[0]['hubloc_deleted'])) && ($location['deleted'])) { + elseif((! intval($r[0]['hubloc_deleted'])) && (intval($location['deleted']))) { $n = q("update hubloc set hubloc_deleted = 1, hubloc_updated = '%s' where hubloc_id = %d", dbesc(datetime_convert()), intval($r[0]['hubloc_id']) From 43d80901825b95d881d4e072a9bd0898b0b8ab16 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Tue, 3 Nov 2015 11:19:22 +0100 Subject: [PATCH 066/150] timeago() works best with iso format. fix #118 --- include/widgets.php | 2 +- mod/mail.php | 2 +- view/js/main.js | 1 - view/js/mod_mail.js | 1 + view/tpl/prv_message.tpl | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/widgets.php b/include/widgets.php index 3e6fdb04c..0f61a04a0 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -642,7 +642,7 @@ function widget_conversations($arr) { 'subject' => (($rr['seen']) ? $rr['title'] : '' . $rr['title'] . ''), 'delete' => t('Delete conversation'), 'body' => $rr['body'], - 'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], t('D, d M Y - g:i A')), + 'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], 'c'), 'seen' => $rr['seen'], 'selected' => ((argv(2)) ? (argv(2) == $rr['id']) : ($r[0]['id'] == $rr['id'])) ); diff --git a/mod/mail.php b/mod/mail.php index 884c41565..536149a28 100644 --- a/mod/mail.php +++ b/mod/mail.php @@ -335,7 +335,7 @@ function mail_content(&$a) { 'recall' => t('Recall message'), 'can_recall' => (($channel['channel_hash'] == $message['from_xchan']) ? true : false), 'is_recalled' => (intval($message['mail_recalled']) ? t('Message has been recalled.') : ''), - 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'],'D, d M Y - g:i A'), + 'date' => datetime_convert('UTC',date_default_timezone_get(),$message['created'], 'c'), ); $seen = $message['seen']; diff --git a/view/js/main.js b/view/js/main.js index acdc2e5f5..fd03802c5 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -1156,7 +1156,6 @@ $(document).ready(function() { numbers : aStr['t17'], }; - $(".autotime").timeago(); $("#toc").toc(); }); diff --git a/view/js/mod_mail.js b/view/js/mod_mail.js index 36b22138f..561df7229 100644 --- a/view/js/mod_mail.js +++ b/view/js/mod_mail.js @@ -2,4 +2,5 @@ $(document).ready(function() { $("#recip").name_autocomplete(baseurl + '/acl', '', false, function(data) { $("#recip-complete").val(data.xid); }); + $(".autotime").timeago() }); diff --git a/view/tpl/prv_message.tpl b/view/tpl/prv_message.tpl index b0ea8b753..20f5df39a 100755 --- a/view/tpl/prv_message.tpl +++ b/view/tpl/prv_message.tpl @@ -31,7 +31,7 @@
- +
From 39245238fda0406a2195f6074b865b41dfaf6600 Mon Sep 17 00:00:00 2001 From: sasiflo Date: Tue, 3 Nov 2015 11:31:19 +0100 Subject: [PATCH 067/150] Some small rebranding for Hubzilla transition from Red Matrix --- doc/addons.bb | 2 +- doc/de/main.bb | 28 ++++++++++++++-------------- view/de/htconfig.tpl | 2 +- view/de/update_fail_eml.tpl | 6 +++--- view/fr/htconfig.tpl | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/doc/addons.bb b/doc/addons.bb index 1be88150d..a6d2cfc2f 100644 --- a/doc/addons.bb +++ b/doc/addons.bb @@ -42,7 +42,7 @@ [*] qrator - generate QR code images [*] rainbowtag - display your tag and category clouds in colours [*] randpost - post/reply bot based on and requires fortunate -[*] redred - Crosspost to another Redmatrix or Hubzilla channel +[*] redred - Crosspost to another Red Matrix or Hubzilla channel [*] rtof - Crosspost to Friendica [*] smiley_pack - extend the built-in smilie (emoticon) support [*] smileybutton - provides a smiley selector on the post window diff --git a/doc/de/main.bb b/doc/de/main.bb index f310d0ab5..dab34c19a 100644 --- a/doc/de/main.bb +++ b/doc/de/main.bb @@ -1,19 +1,19 @@ [img][baseurl]/assets/hashlogo.png[/img] -[zrl=[baseurl]/help/about]Was ist die RedMatrix?[/zrl] -Die RedMatrix ist eine dezentrale Kommunikations- und Publishing-Plattform. Sie ermöglicht Dir die volle Kontrolle über all Deine Kommunikation mit Hilfe von automatischer Verschlüsselung und detaillierter Zugriffskontrolle. Du, und [i]nur[/i] Du, entscheidest, wer Deine Beiträge sehen darf. +[zrl=[baseurl]/help/about]Was ist Hubzilla?[/zrl] +Hubzilla ist eine dezentrale Kommunikations- und Publishing-Plattform. Sie ermöglicht Dir die volle Kontrolle über all Deine Kommunikation mit Hilfe von automatischer Verschlüsselung und detaillierter Zugriffskontrolle. Du, und [i]nur[/i] Du, entscheidest, wer Deine Beiträge sehen darf. Hubzilla ist der Nachfolger, der seit einigen Jahren erfolgreichen Plattformen Firendica und Red Matrix. -[zrl=[baseurl]/help/features]Features der RedMatrix[/zrl] -Die RedMatrix funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich ihre Vielseitigkeit und Skalierbarkeit auf kleinen Privatservern wie auch auf riesigen Sites. -Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, die RedMatrix unterstützt Dich in Deinem kreativen Schaffen. +[zrl=[baseurl]/help/features]Features von Hubzilla[/zrl] +Hubzilla, basierend auf der Red Matrix, funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich ihre Vielseitigkeit und Skalierbarkeit - auf kleinen Privatservern wie auch auf riesigen Sites. +Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, Hubzilla unterstützt Dich in Deinem kreativen Schaffen. [zrl=[baseurl]/help/what_is_zot]Got Zot? Hast Du schon Zot? Wenn nicht wird es Zeit.[/zrl] -Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatrix entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil der RedMatrix, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Red-Server betrachtest. Zot ist, was die RedMatrix besonders macht. +Zot ist ein großartiges neues Kommunikationsprotokoll, das für Hubzilla - und vorher die Red Matrix - entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder einen einzigen Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil des Hubzilla-Netzwerkes, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Hub (den Hubzilla-Servern) betrachtest. Zot ist es, was das Hubzilla-Netzwerk besonders macht. [h3]Erste Schritte[/h3] [zrl=[baseurl]/help/Privacy]Datenschutz[/zrl] [zrl=[baseurl]/help/registration]Ein Konto registrieren[/zrl] -[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du in der RedMatrix: Konten, Profile und Kanäle kurz erklärt[/zrl] +[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du im Hubzilla-Netzwerk: Konten, Profile und Kanäle kurz erklärt[/zrl] [zrl=[baseurl]/help/profiles]Profile[/zrl] [zrl=[baseurl]/help/channels]Kanäle[/zrl] [zrl=[baseurl]/help/roles]Zugriffsrechte-Kategorien und Kanaltypen[/zrl] @@ -26,7 +26,7 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr [h3]Hilfe für $Projectname-Mitglieder[/h3] [zrl=[baseurl]/help/tags_and_mentions]Tags und Erwähnungen[/zrl] [zrl=[baseurl]/help/webpages]Webseiten[/zrl] -[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Posts und Kommentare[/zrl] +[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Beiträge und Kommentare[/zrl] [zrl=[baseurl]/help/checking_account_quota_usage]Überprüfung der Kontenlimits[/zrl] [zrl=[baseurl]/help/cloud_desktop_clients]Desktop-Anwendungen und die Cloud[/zrl] [zrl=[baseurl]/help/AdvancedSearch]Fortgeschrittene Suche im Kanalverzeichnis[/zrl] @@ -36,7 +36,7 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr [h3]Hilfe für Administratoren[/h3] [zrl=[baseurl]/help/install]Installation[/zrl] -[zrl=[baseurl]/help/red2pi]Red auf einem Raspberry Pi installieren[/zrl] +[zrl=[baseurl]/help/red2pi]Hubzilla auf einem Raspberry Pi installieren[/zrl] [zrl=[baseurl]/help/troubleshooting]Troubleshooting-Tipps[/zrl] [zrl=[baseurl]/help/hidden_configs]Versteckte Konfigurations-Optionen[/zrl] [zrl=[baseurl]/help/faq_admins]FAQ für Admins[/zrl] @@ -60,9 +60,9 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr [zrl=[baseurl]/help/database]Datenbank-Schema[/zrl] [zrl=[baseurl]/help/api_functions]API-Funktionen[/zrl] [zrl=[baseurl]/help/api_posting]Mit der API einen Beitrag erstellen[/zrl] -[zrl=[baseurl]/help/developer_function_primer]Übersicht der wichtigsten Red-Funktionen[/zrl] +[zrl=[baseurl]/help/developer_function_primer]Übersicht der wichtigsten Hubzilla-Funktionen[/zrl] [zrl=[baseurl]/doc/html/]Code-Referenz (mit doxygen generiert - setzt Cookies)[/zrl] -[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt Red-Dokumentation[/zrl] +[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt Hubzilla-Dokumentation[/zrl] [zrl=[baseurl]/help/to_do_code]To-Do-Liste für Entwickler[/zrl] [zrl=[baseurl]/help/roadmap]Roadmap für Version 3[/zrl] [zrl=[baseurl]/help/git_for_non_developers]Git für Nicht-Entwickler[/zrl] @@ -80,7 +80,7 @@ Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatr [url=[baseurl]/help/credits]$Projectname Credits[/url] -[h3]Über diesen Red-Server[/h3] -[zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen dieses Red-Servers[/zrl] -[zrl=[baseurl]/siteinfo]Informationen zu diesem Server und der Red-Version[/zrl] +[h3]Über diesen Hub (Hubzilla-Server)[/h3] +[zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen dieses Hubs (Hubzilla-Servers)[/zrl] +[zrl=[baseurl]/siteinfo]Informationen zu diesem Server und der Hubzilla-Version[/zrl] [zrl=[baseurl]/siteinfo/json]Detaillierte technische Informationen zu diesem Server im JSON-Format[/zrl] diff --git a/view/de/htconfig.tpl b/view/de/htconfig.tpl index 550b018fe..928694769 100644 --- a/view/de/htconfig.tpl +++ b/view/de/htconfig.tpl @@ -30,7 +30,7 @@ $default_timezone = '{{$timezone}}'; // What is your site name? $a->config['system']['baseurl'] = '{{$siteurl}}'; -$a->config['system']['sitename'] = "Red Matrix"; +$a->config['system']['sitename'] = "Hubzilla"; $a->config['system']['location_hash'] = '{{$site_id}}'; diff --git a/view/de/update_fail_eml.tpl b/view/de/update_fail_eml.tpl index ca1a4985d..d28bed717 100644 --- a/view/de/update_fail_eml.tpl +++ b/view/de/update_fail_eml.tpl @@ -1,13 +1,13 @@ Hallo, ich bin der Webserver für {{$sitename}}; -Die RedMatrix-Entwickler haben kürzlich das Update {{$update}} veröffentlicht, +Die Hubzilla-Entwickler haben kürzlich das Update {{$update}} veröffentlicht, aber als ich versuchte, es zu installieren, ging irgendwas furchtbar schief. Das muss so bald als möglich gelöst werden und erfordert einen manuellen Eingriff. -Bitte kontaktiere einen Red-Entwickler, wenn Du nicht weißt, wie Du das Problem +Bitte kontaktiere einen Hubzilla-Entwickler, wenn Du nicht weißt, wie Du das Problem selbst beheben kannst. Meine Datenbank ist eventuell ungültig. Die Fehlermeldung ist '{{$error}}'. Bitte entschuldige die Unannehmlichkeit, - Dein Web-Server auf {{$siteurl}} \ No newline at end of file + Dein Hubzilla-Server auf {{$siteurl}} diff --git a/view/fr/htconfig.tpl b/view/fr/htconfig.tpl index a3b4c0644..430d97a47 100644 --- a/view/fr/htconfig.tpl +++ b/view/fr/htconfig.tpl @@ -31,7 +31,7 @@ $default_timezone = '{{$timezone}}'; // Quel sera le nom de votre site? $a->config['system']['baseurl'] = '{{$siteurl}}'; -$a->config['system']['sitename'] = "Matrice Rouge"; +$a->config['system']['sitename'] = "Hubzilla"; $a->config['system']['location_hash'] = '{{$site_id}}'; // Vos choix sont REGISTER_OPEN, REGISTER_APPROVE, ou REGISTER_CLOSED. From d1aa67238833542d7d3bc5e74992b70eeda2de63 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Tue, 3 Nov 2015 21:19:23 +0100 Subject: [PATCH 068/150] small update Ducth strings + fix dark schema --- view/nl/hmessages.po | 8 +++--- view/nl/hstrings.php | 6 ++--- view/theme/redbasic/schema/dark.css | 40 +++++++++++++++++++---------- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/view/nl/hmessages.po b/view/nl/hmessages.po index 89a0670ec..3c6739909 100644 --- a/view/nl/hmessages.po +++ b/view/nl/hmessages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2015-10-30 00:03-0700\n" -"PO-Revision-Date: 2015-10-31 20:03+0000\n" +"PO-Revision-Date: 2015-11-03 20:14+0000\n" "Last-Translator: jeroenpraat \n" "Language-Team: Dutch (http://www.transifex.com/Friendica/red-matrix/language/nl/)\n" "MIME-Version: 1.0\n" @@ -569,11 +569,11 @@ msgstr "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde g #: ../../include/features.php:61 msgid "Enable Voting Tools" -msgstr "Stemmen inschakelen" +msgstr "Peilingen inschakelen" #: ../../include/features.php:61 msgid "Provide a class of post which others can vote on" -msgstr "Creëert een berichtenoptie zodat anderen op jouw vraag kunnen stemmen." +msgstr "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen." #: ../../include/features.php:62 msgid "Delayed Posting" @@ -3476,7 +3476,7 @@ msgstr "locatie instellen" #: ../../include/conversation.php:1207 ../../mod/editpost.php:126 msgid "Toggle voting" -msgstr "Stemmen in- of uitschakelen" +msgstr "Peiling in- of uitschakelen" #: ../../include/conversation.php:1210 ../../mod/editblock.php:149 #: ../../mod/editpost.php:125 ../../mod/editlayout.php:147 diff --git a/view/nl/hstrings.php b/view/nl/hstrings.php index f48043c76..366167657 100644 --- a/view/nl/hstrings.php +++ b/view/nl/hstrings.php @@ -121,8 +121,8 @@ $a->strings["Channel Sources"] = "Kanaalbronnen"; $a->strings["Automatically import channel content from other channels or feeds"] = "Automatisch inhoud uit andere kanalen of feeds importeren."; $a->strings["Even More Encryption"] = "Extra encryptie"; $a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Sta toe dat inhoud extra end-to-end wordt versleuteld met een gedeelde geheime sleutel."; -$a->strings["Enable Voting Tools"] = "Stemmen inschakelen"; -$a->strings["Provide a class of post which others can vote on"] = "Creëert een berichtenoptie zodat anderen op jouw vraag kunnen stemmen."; +$a->strings["Enable Voting Tools"] = "Peilingen inschakelen"; +$a->strings["Provide a class of post which others can vote on"] = "Maakt het mogelijk om een bericht op te stellen, waar mensen op kunnen stemmen."; $a->strings["Delayed Posting"] = "Berichten uitstellen"; $a->strings["Allow posts to be published at a later date"] = "Maakt het mogelijk dat berichten op een toekomstig moment gepubliceerd kunnen worden."; $a->strings["Network and Stream Filtering"] = "Netwerk- en streamfilter"; @@ -807,7 +807,7 @@ $a->strings["Insert audio link"] = "Audiolink invoegen"; $a->strings["audio link"] = "audiolink"; $a->strings["Set your location"] = "Locatie instellen"; $a->strings["set location"] = "locatie instellen"; -$a->strings["Toggle voting"] = "Stemmen in- of uitschakelen"; +$a->strings["Toggle voting"] = "Peiling in- of uitschakelen"; $a->strings["Clear browser location"] = "Locatie van webbrowser wissen"; $a->strings["clear location"] = "locatie wissen"; $a->strings["Title (optional)"] = "Titel (optioneel)"; diff --git a/view/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css index 7020309fc..9574df182 100644 --- a/view/theme/redbasic/schema/dark.css +++ b/view/theme/redbasic/schema/dark.css @@ -119,26 +119,38 @@ } .btn-success { - color: #FFF; - background-color: #5CB85C; - border-color: #4CAE4C; + color: #FFF !important; + background-color: #5CB85C !important; + border-color: #4CAE4C !important; } .btn-success:hover, .btn-success:focus { - color: #FFF; - background-color: #449D44; - border-color: #398439; + color: #FFF !important; + background-color: #449D44 !important; + border-color: #398439 !important; } -.btn-danger { - background-color: #D9534F; - border-color: #D43F3A; - color: #FFF; +.btn-warning { + color: #FFF !important; + background-color: #F0AD4E !important; + border-color: #EEA236 !important; } -.btn-danger:hover, .btn-danger:focus { - color: #FFF; - background-color: #C9302C; - border-color: #AC2925; + +.btn-warning:hover, .btn-warning:focus { + color: #FFF !important; + background-color: #EC971F !important; + border-color: #D58512 !important; +} + +.btn-danger, form#chat-destroy > input { + background-color: #D9534F !important; + border-color: #D43F3A !important; + color: #FFF !important; +} +.btn-danger:hover, .btn-danger:focus, form#chat-destroy > input:hover, form#chat-destroy > input:focus { + color: #FFF !important; + background-color: #C9302C !important; + border-color: #AC2925 !important; } .pager_first, From 9fa771f9fe28a88d61ed4b269036482fcb6f5f49 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Tue, 3 Nov 2015 21:24:28 +0100 Subject: [PATCH 069/150] Time for using my real name --- doc/credits.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/credits.bb b/doc/credits.bb index 200f1fc85..5219d7bf5 100644 --- a/doc/credits.bb +++ b/doc/credits.bb @@ -14,7 +14,7 @@ tommy tomson Simon zottel Christian Vogeley -jeroenpraat +Jeroen van Riet Paap (jeroenpraat) Michael Vogel erik Zach Prezkuta From 288697cda28712c6d02f36d2882024f1d6d97d7c Mon Sep 17 00:00:00 2001 From: ken restivo Date: Tue, 3 Nov 2015 12:24:29 -0800 Subject: [PATCH 070/150] Add documentation for argv/argc. --- doc/developers.bb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/developers.bb b/doc/developers.bb index e9dddc695..6f7752577 100644 --- a/doc/developers.bb +++ b/doc/developers.bb @@ -64,6 +64,8 @@ In the interests of consistency we adopt the following code styling. We may acce [li] Generally speaking, opening braces go on the same line as the thing which opens the brace. They are the last character on the line. Closing braces are on a line by themselves. [/li] +[li] Some functions take arguments in argc/argv style like main() in C or function args in bash or Perl. Urls are broken up within a module. e.g, given "http://example.com/module/arg1/arg2", then $this->argc will be 3 (integer) and $this->argv will contain: [0] => 'module', [1] => 'arg1', [2] => 'arg2'. There will always be one argument. If provided a naked domain URL, $this->argv[0] is set to "home".[/li] + [b]See Also[/b] [zrl=[baseurl]/help/sql_conventions]SQL Conventions[/zrl] From 2c299a9f379b9e8af33cae4270ec1c0c5cf2bc99 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 14:59:14 -0800 Subject: [PATCH 071/150] implement unfollow thread --- include/conversation.php | 4 ++ include/items.php | 13 +++++ mod/subthread.php | 109 +++++---------------------------------- version.inc | 2 +- view/js/main.js | 12 ++++- 5 files changed, 41 insertions(+), 99 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index b2d58a025..a5fe573cd 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -917,6 +917,9 @@ function item_photo_menu($item){ if($item['parent'] == $item['id'] && $channel && ($channel_hash != $item['author_xchan'])) { $sub_link = 'javascript:dosubthread(' . $item['id'] . '); return false;'; } + if($channel) { + $unsub_link = 'javascript:dounsubthread(' . $item['id'] . '); return false;'; + } } $profile_link = chanlink_hash($item['author_xchan']); @@ -941,6 +944,7 @@ function item_photo_menu($item){ $menu = Array( t("View Source") => $vsrc_link, t("Follow Thread") => $sub_link, + t("Stop Following") => $unsub_link, t("View Status") => $status_link, t("View Profile") => $profile_link, t("View Photos") => $photos_link, diff --git a/include/items.php b/include/items.php index 4d8fce60f..3e4805212 100755 --- a/include/items.php +++ b/include/items.php @@ -2837,6 +2837,8 @@ function store_diaspora_comment_sig($datarray, $channel, $parent_item, $post_id, function send_status_notifications($post_id,$item) { $notify = false; + $unfollowed = false; + $parent = 0; $r = q("select channel_hash from channel where channel_id = %d limit 1", @@ -2864,6 +2866,14 @@ function send_status_notifications($post_id,$item) { foreach($x as $xx) { if($xx['author_xchan'] === $r[0]['channel_hash']) { $notify = true; + + // check for an unfollow thread activity - we should probably decode the obj and check the id + // but it will be extremely rare for this to be wrong. + + if(($xx['verb'] === ACTIVITY_UNFOLLOW) + && ($xx['obj_type'] === ACTIVITY_OBJ_NOTE || $xx['obj_type'] === ACTIVITY_OBJ_PHOTO) + && ($xx['parent'] != $xx['id'])) + $unfollowed = true; } if($xx['id'] == $xx['parent']) { $parent = $xx['parent']; @@ -2871,6 +2881,9 @@ function send_status_notifications($post_id,$item) { } } + if($unfollowed) + return; + $link = get_app()->get_baseurl() . '/display/' . $item['mid']; $y = q("select id from notify where link = '%s' and uid = %d limit 1", diff --git a/mod/subthread.php b/mod/subthread.php index 9cfe5c24d..162545a2f 100755 --- a/mod/subthread.php +++ b/mod/subthread.php @@ -11,9 +11,12 @@ function subthread_content(&$a) { return; } - $activity = ACTIVITY_FOLLOW; + if(argv(1) === 'sub') + $activity = ACTIVITY_FOLLOW; + elseif(argv(1) === 'unsub') + $activity = ACTIVITY_UNFOLLOW; - $item_id = ((argc() > 1) ? notags(trim(argv(1))) : 0); + $item_id = ((argc() > 2) ? notags(trim(argv(2))) : 0); $r = q("SELECT * FROM `item` WHERE `parent` = '%s' OR `parent_mid` = '%s' and parent = id LIMIT 1", dbesc($item_id), @@ -67,6 +70,8 @@ function subthread_content(&$a) { killme(); + + $mid = item_message_id(); $post_type = (($item['resource_type'] === 'photo') ? t('photo') : t('status')); @@ -99,7 +104,10 @@ function subthread_content(&$a) { if(! intval($item['item_thread_top'])) $post_type = 'comment'; - $bodyverb = t('%1$s is following %2$s\'s %3$s'); + if($activity === ACTIVITY_FOLLOW) + $bodyverb = t('%1$s is following %2$s\'s %3$s'); + if($activity === ACTIVITY_UNFOLLOW) + $bodyverb = t('%1$s stopped following %2$s\'s %3$s'); $arr = array(); @@ -144,100 +152,7 @@ function subthread_content(&$a) { killme(); - - - - - - - - - - - - - - - - - - - - - - - - - - $post_type = (($item['resource_id']) ? t('photo') : t('status')); - $objtype = (($item['resource_id']) ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE ); - - $link = xmlify('' . "\n") ; - $body = $item['body']; - - $obj = <<< EOT - - - $objtype - 1 - {$item['mid']} - $link - - $body - -EOT; - - $arr = array(); - - $arr['mid'] = $mid; - $arr['uid'] = $owner_uid; - $arr['contact-id'] = $contact['id']; - $arr['type'] = 'activity'; - $arr['wall'] = $item['wall']; - $arr['origin'] = 1; - $arr['gravity'] = GRAVITY_LIKE; - $arr['parent'] = $item['id']; - $arr['parent-mid'] = $item['mid']; - $arr['thr_parent'] = $item['mid']; - $arr['owner-name'] = $remote_owner['name']; - $arr['owner-link'] = $remote_owner['url']; - $arr['owner-avatar'] = $remote_owner['thumb']; - $arr['author-name'] = $contact['name']; - $arr['author-link'] = $contact['url']; - $arr['author-avatar'] = $contact['thumb']; - - $ulink = '[zrl=' . $contact['url'] . ']' . $contact['name'] . '[/zrl]'; - $alink = '[zrl=' . $item['author-link'] . ']' . $item['author-name'] . '[/zrl]'; - $plink = '[zrl=' . $a->get_baseurl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/zrl]'; - $arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink ); - - $arr['verb'] = $activity; - $arr['object-type'] = $objtype; - $arr['object'] = $obj; - $arr['allow_cid'] = $item['allow_cid']; - $arr['allow_gid'] = $item['allow_gid']; - $arr['deny_cid'] = $item['deny_cid']; - $arr['deny_gid'] = $item['deny_gid']; - $arr['visible'] = 1; - $arr['unseen'] = 1; - $arr['last-child'] = 0; - - $post = item_store($arr); - $post_id = $post['item_id']; - - if(! $item['visible']) { - $r = q("UPDATE `item` SET `visible` = 1 WHERE `id` = %d AND `uid` = %d", - intval($item['id']), - intval($owner_uid) - ); - } - - $arr['id'] = $post_id; - - call_hooks('post_local_end', $arr); - - killme(); - } + diff --git a/version.inc b/version.inc index c2d20dbc4..4013cd9db 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-11-02.1204 +2015-11-03.1205 diff --git a/view/js/main.js b/view/js/main.js index acdc2e5f5..527e6716a 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -836,10 +836,20 @@ function dropItem(url, object) { function dosubthread(ident) { unpause(); $('#like-rotator-' + ident.toString()).spin('tiny'); - $.get('subthread/' + ident.toString(), NavUpdate ); + $.get('subthread/sub/' + ident.toString(), NavUpdate ); liking = 1; } + +function dounsubthread(ident) { + unpause(); + $('#like-rotator-' + ident.toString()).spin('tiny'); + $.get('subthread/unsub/' + ident.toString(), NavUpdate ); + liking = 1; +} + + + function dostar(ident) { ident = ident.toString(); $('#like-rotator-' + ident).spin('tiny'); From 14b74069f889862b4d2f8510ae828a51bdfaaa8d Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 17:40:05 -0800 Subject: [PATCH 072/150] version --- util/messages.po | 777 +++++++++++++++++++++++------------------------ version.inc | 2 +- 2 files changed, 389 insertions(+), 390 deletions(-) diff --git a/util/messages.po b/util/messages.po index 51a915d80..9693476e9 100644 --- a/util/messages.po +++ b/util/messages.po @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: 2015-10-23.1194\n" +"Project-Id-Version: 2015-10-30.1201\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-10-23 00:04-0700\n" +"POT-Creation-Date: 2015-10-30 00:04-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" msgid "Cannot locate DNS info for database server '%s'" msgstr "" -#: ../../include/photo/photo_driver.php:687 ../../mod/profile_photo.php:143 +#: ../../include/photo/photo_driver.php:694 ../../mod/profile_photo.php:143 #: ../../mod/profile_photo.php:302 ../../mod/profile_photo.php:424 #: ../../mod/photos.php:92 ../../mod/photos.php:637 msgid "Profile Photos" @@ -386,7 +386,7 @@ msgstr "" msgid "View" msgstr "" -#: ../../include/page_widgets.php:40 ../../include/ItemObject.php:677 +#: ../../include/page_widgets.php:40 ../../include/ItemObject.php:678 #: ../../include/conversation.php:1166 ../../mod/webpages.php:188 #: ../../mod/events.php:690 ../../mod/editpost.php:143 #: ../../mod/photos.php:982 ../../mod/editwebpage.php:214 @@ -429,12 +429,12 @@ msgstr "" msgid "Delete this item?" msgstr "" -#: ../../include/js_strings.php:6 ../../include/ItemObject.php:667 +#: ../../include/js_strings.php:6 ../../include/ItemObject.php:668 #: ../../mod/photos.php:980 ../../mod/photos.php:1098 msgid "Comment" msgstr "" -#: ../../include/js_strings.php:7 ../../include/ItemObject.php:384 +#: ../../include/js_strings.php:7 ../../include/ItemObject.php:385 msgid "[+] show all" msgstr "" @@ -495,7 +495,7 @@ msgstr "" msgid "Describe (optional)" msgstr "" -#: ../../include/js_strings.php:22 ../../include/ItemObject.php:668 +#: ../../include/js_strings.php:22 ../../include/ItemObject.php:669 #: ../../mod/xchan.php:11 ../../mod/connect.php:93 ../../mod/thing.php:303 #: ../../mod/thing.php:346 ../../mod/events.php:511 ../../mod/events.php:693 #: ../../mod/group.php:81 ../../mod/photos.php:577 ../../mod/photos.php:654 @@ -600,367 +600,15 @@ msgstr "" msgid "timeago.numbers" msgstr "" -#: ../../include/text.php:391 -msgid "prev" -msgstr "" - -#: ../../include/text.php:393 -msgid "first" -msgstr "" - -#: ../../include/text.php:422 -msgid "last" -msgstr "" - -#: ../../include/text.php:425 -msgid "next" -msgstr "" - -#: ../../include/text.php:435 -msgid "older" -msgstr "" - -#: ../../include/text.php:437 -msgid "newer" -msgstr "" - -#: ../../include/text.php:830 -msgid "No connections" -msgstr "" - -#: ../../include/text.php:844 -#, php-format -msgid "%d Connection" -msgid_plural "%d Connections" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/text.php:857 ../../mod/viewconnections.php:104 -msgid "View Connections" -msgstr "" - -#: ../../include/text.php:914 ../../include/text.php:926 -#: ../../include/nav.php:165 ../../include/apps.php:147 -#: ../../mod/search.php:38 -msgid "Search" -msgstr "" - -#: ../../include/text.php:915 ../../include/text.php:927 -#: ../../include/widgets.php:192 ../../mod/rbmark.php:28 -#: ../../mod/rbmark.php:98 ../../mod/filer.php:50 ../../mod/admin.php:1457 -#: ../../mod/admin.php:1477 -msgid "Save" -msgstr "" - -#: ../../include/text.php:990 -msgid "poke" -msgstr "" - -#: ../../include/text.php:990 ../../include/conversation.php:243 -msgid "poked" -msgstr "" - -#: ../../include/text.php:991 -msgid "ping" -msgstr "" - -#: ../../include/text.php:991 -msgid "pinged" -msgstr "" - -#: ../../include/text.php:992 -msgid "prod" -msgstr "" - -#: ../../include/text.php:992 -msgid "prodded" -msgstr "" - -#: ../../include/text.php:993 -msgid "slap" -msgstr "" - -#: ../../include/text.php:993 -msgid "slapped" -msgstr "" - -#: ../../include/text.php:994 -msgid "finger" -msgstr "" - -#: ../../include/text.php:994 -msgid "fingered" -msgstr "" - -#: ../../include/text.php:995 -msgid "rebuff" -msgstr "" - -#: ../../include/text.php:995 -msgid "rebuffed" -msgstr "" - -#: ../../include/text.php:1005 -msgid "happy" -msgstr "" - -#: ../../include/text.php:1006 -msgid "sad" -msgstr "" - -#: ../../include/text.php:1007 -msgid "mellow" -msgstr "" - -#: ../../include/text.php:1008 -msgid "tired" -msgstr "" - -#: ../../include/text.php:1009 -msgid "perky" -msgstr "" - -#: ../../include/text.php:1010 -msgid "angry" -msgstr "" - -#: ../../include/text.php:1011 -msgid "stupified" -msgstr "" - -#: ../../include/text.php:1012 -msgid "puzzled" -msgstr "" - -#: ../../include/text.php:1013 -msgid "interested" -msgstr "" - -#: ../../include/text.php:1014 -msgid "bitter" -msgstr "" - -#: ../../include/text.php:1015 -msgid "cheerful" -msgstr "" - -#: ../../include/text.php:1016 -msgid "alive" -msgstr "" - -#: ../../include/text.php:1017 -msgid "annoyed" -msgstr "" - -#: ../../include/text.php:1018 -msgid "anxious" -msgstr "" - -#: ../../include/text.php:1019 -msgid "cranky" -msgstr "" - -#: ../../include/text.php:1020 -msgid "disturbed" -msgstr "" - -#: ../../include/text.php:1021 -msgid "frustrated" -msgstr "" - -#: ../../include/text.php:1022 -msgid "depressed" -msgstr "" - -#: ../../include/text.php:1023 -msgid "motivated" -msgstr "" - -#: ../../include/text.php:1024 -msgid "relaxed" -msgstr "" - -#: ../../include/text.php:1025 -msgid "surprised" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Monday" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Tuesday" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Wednesday" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Thursday" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Friday" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Saturday" -msgstr "" - -#: ../../include/text.php:1197 -msgid "Sunday" -msgstr "" - -#: ../../include/text.php:1201 -msgid "January" -msgstr "" - -#: ../../include/text.php:1201 -msgid "February" -msgstr "" - -#: ../../include/text.php:1201 -msgid "March" -msgstr "" - -#: ../../include/text.php:1201 -msgid "April" -msgstr "" - -#: ../../include/text.php:1201 ../../mod/uexport.php:58 -#: ../../mod/uexport.php:59 -msgid "May" -msgstr "" - -#: ../../include/text.php:1201 -msgid "June" -msgstr "" - -#: ../../include/text.php:1201 -msgid "July" -msgstr "" - -#: ../../include/text.php:1201 -msgid "August" -msgstr "" - -#: ../../include/text.php:1201 -msgid "September" -msgstr "" - -#: ../../include/text.php:1201 -msgid "October" -msgstr "" - -#: ../../include/text.php:1201 -msgid "November" -msgstr "" - -#: ../../include/text.php:1201 -msgid "December" -msgstr "" - -#: ../../include/text.php:1306 -msgid "unknown.???" -msgstr "" - -#: ../../include/text.php:1307 -msgid "bytes" -msgstr "" - -#: ../../include/text.php:1343 -msgid "remove category" -msgstr "" - -#: ../../include/text.php:1418 -msgid "remove from file" -msgstr "" - -#: ../../include/text.php:1494 ../../include/text.php:1505 -msgid "Click to open/close" -msgstr "" - -#: ../../include/text.php:1661 ../../mod/events.php:474 -msgid "Link to Source" -msgstr "" - -#: ../../include/text.php:1682 ../../include/text.php:1753 -msgid "default" -msgstr "" - -#: ../../include/text.php:1690 -msgid "Page layout" -msgstr "" - -#: ../../include/text.php:1690 -msgid "You can create your own with the layouts tool" -msgstr "" - -#: ../../include/text.php:1731 -msgid "Page content type" -msgstr "" - -#: ../../include/text.php:1765 -msgid "Select an alternate language" -msgstr "" - -#: ../../include/text.php:1884 ../../include/diaspora.php:2119 -#: ../../include/conversation.php:120 ../../mod/like.php:349 -#: ../../mod/subthread.php:72 ../../mod/subthread.php:174 -#: ../../mod/tagger.php:43 -msgid "photo" -msgstr "" - -#: ../../include/text.php:1887 ../../include/conversation.php:123 -#: ../../mod/like.php:351 ../../mod/tagger.php:47 -msgid "event" -msgstr "" - -#: ../../include/text.php:1890 ../../include/diaspora.php:2119 -#: ../../include/conversation.php:148 ../../mod/like.php:349 -#: ../../mod/subthread.php:72 ../../mod/subthread.php:174 -msgid "status" -msgstr "" - -#: ../../include/text.php:1892 ../../include/conversation.php:150 -#: ../../mod/tagger.php:53 -msgid "comment" -msgstr "" - -#: ../../include/text.php:1897 -msgid "activity" -msgstr "" - -#: ../../include/text.php:2192 -msgid "Design Tools" -msgstr "" - -#: ../../include/text.php:2195 ../../mod/blocks.php:147 -msgid "Blocks" -msgstr "" - -#: ../../include/text.php:2196 ../../mod/menu.php:101 -msgid "Menus" -msgstr "" - -#: ../../include/text.php:2197 ../../mod/layouts.php:174 -msgid "Layouts" -msgstr "" - -#: ../../include/text.php:2198 -msgid "Pages" -msgstr "" - -#: ../../include/text.php:2549 ../../include/RedDAV/RedBrowser.php:131 -msgid "Collection" -msgstr "" - #: ../../include/RedDAV/RedBrowser.php:107 #: ../../include/RedDAV/RedBrowser.php:265 msgid "parent" msgstr "" +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2561 +msgid "Collection" +msgstr "" + #: ../../include/RedDAV/RedBrowser.php:134 msgid "Principal" msgstr "" @@ -1413,6 +1061,12 @@ msgstr "" msgid "Notes" msgstr "" +#: ../../include/widgets.php:192 ../../include/text.php:915 +#: ../../include/text.php:927 ../../mod/rbmark.php:28 ../../mod/rbmark.php:98 +#: ../../mod/filer.php:50 ../../mod/admin.php:1457 ../../mod/admin.php:1477 +msgid "Save" +msgstr "" + #: ../../include/widgets.php:266 msgid "Remove term" msgstr "" @@ -1755,6 +1409,19 @@ msgstr "" msgid "Stored post could not be verified." msgstr "" +#: ../../include/diaspora.php:2119 ../../include/conversation.php:120 +#: ../../include/text.php:1896 ../../mod/like.php:349 +#: ../../mod/subthread.php:72 ../../mod/subthread.php:174 +#: ../../mod/tagger.php:43 +msgid "photo" +msgstr "" + +#: ../../include/diaspora.php:2119 ../../include/conversation.php:148 +#: ../../include/text.php:1902 ../../mod/like.php:349 +#: ../../mod/subthread.php:72 ../../mod/subthread.php:174 +msgid "status" +msgstr "" + #: ../../include/diaspora.php:2148 ../../include/conversation.php:164 #: ../../mod/like.php:397 #, php-format @@ -1924,77 +1591,77 @@ msgstr "" msgid "share" msgstr "" -#: ../../include/ItemObject.php:276 +#: ../../include/ItemObject.php:277 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "" msgstr[1] "" -#: ../../include/ItemObject.php:294 ../../include/ItemObject.php:295 +#: ../../include/ItemObject.php:295 ../../include/ItemObject.php:296 #, php-format msgid "View %s's profile - %s" msgstr "" -#: ../../include/ItemObject.php:298 +#: ../../include/ItemObject.php:299 msgid "to" msgstr "" -#: ../../include/ItemObject.php:299 +#: ../../include/ItemObject.php:300 msgid "via" msgstr "" -#: ../../include/ItemObject.php:300 +#: ../../include/ItemObject.php:301 msgid "Wall-to-Wall" msgstr "" -#: ../../include/ItemObject.php:301 +#: ../../include/ItemObject.php:302 msgid "via Wall-To-Wall:" msgstr "" -#: ../../include/ItemObject.php:312 ../../include/conversation.php:727 +#: ../../include/ItemObject.php:313 ../../include/conversation.php:727 #, php-format msgid "from %s" msgstr "" -#: ../../include/ItemObject.php:315 ../../include/conversation.php:730 +#: ../../include/ItemObject.php:316 ../../include/conversation.php:730 #, php-format msgid "last edited: %s" msgstr "" -#: ../../include/ItemObject.php:316 ../../include/conversation.php:731 +#: ../../include/ItemObject.php:317 ../../include/conversation.php:731 #, php-format msgid "Expires: %s" msgstr "" -#: ../../include/ItemObject.php:337 +#: ../../include/ItemObject.php:338 msgid "Save Bookmarks" msgstr "" -#: ../../include/ItemObject.php:338 +#: ../../include/ItemObject.php:339 msgid "Add to Calendar" msgstr "" -#: ../../include/ItemObject.php:347 +#: ../../include/ItemObject.php:348 msgid "Mark all seen" msgstr "" -#: ../../include/ItemObject.php:353 ../../mod/photos.php:1145 +#: ../../include/ItemObject.php:354 ../../mod/photos.php:1145 msgctxt "noun" msgid "Likes" msgstr "" -#: ../../include/ItemObject.php:354 ../../mod/photos.php:1146 +#: ../../include/ItemObject.php:355 ../../mod/photos.php:1146 msgctxt "noun" msgid "Dislikes" msgstr "" -#: ../../include/ItemObject.php:359 ../../include/acl_selectors.php:249 +#: ../../include/ItemObject.php:360 ../../include/acl_selectors.php:249 #: ../../mod/photos.php:1151 msgid "Close" msgstr "" -#: ../../include/ItemObject.php:364 ../../include/conversation.php:748 +#: ../../include/ItemObject.php:365 ../../include/conversation.php:748 #: ../../include/conversation.php:1220 ../../mod/editpost.php:123 #: ../../mod/photos.php:962 ../../mod/editlayout.php:147 #: ../../mod/editwebpage.php:192 ../../mod/editblock.php:149 @@ -2002,54 +1669,54 @@ msgstr "" msgid "Please wait" msgstr "" -#: ../../include/ItemObject.php:665 ../../mod/photos.php:978 +#: ../../include/ItemObject.php:666 ../../mod/photos.php:978 #: ../../mod/photos.php:1096 msgid "This is you" msgstr "" -#: ../../include/ItemObject.php:669 ../../include/conversation.php:1192 +#: ../../include/ItemObject.php:670 ../../include/conversation.php:1192 #: ../../mod/editpost.php:107 ../../mod/editlayout.php:134 #: ../../mod/editwebpage.php:179 ../../mod/editblock.php:135 msgid "Bold" msgstr "" -#: ../../include/ItemObject.php:670 ../../include/conversation.php:1193 +#: ../../include/ItemObject.php:671 ../../include/conversation.php:1193 #: ../../mod/editpost.php:108 ../../mod/editlayout.php:135 #: ../../mod/editwebpage.php:180 ../../mod/editblock.php:136 msgid "Italic" msgstr "" -#: ../../include/ItemObject.php:671 ../../include/conversation.php:1194 +#: ../../include/ItemObject.php:672 ../../include/conversation.php:1194 #: ../../mod/editpost.php:109 ../../mod/editlayout.php:136 #: ../../mod/editwebpage.php:181 ../../mod/editblock.php:137 msgid "Underline" msgstr "" -#: ../../include/ItemObject.php:672 ../../include/conversation.php:1195 +#: ../../include/ItemObject.php:673 ../../include/conversation.php:1195 #: ../../mod/editpost.php:110 ../../mod/editlayout.php:137 #: ../../mod/editwebpage.php:182 ../../mod/editblock.php:138 msgid "Quote" msgstr "" -#: ../../include/ItemObject.php:673 ../../include/conversation.php:1196 +#: ../../include/ItemObject.php:674 ../../include/conversation.php:1196 #: ../../mod/editpost.php:111 ../../mod/editlayout.php:138 #: ../../mod/editwebpage.php:183 ../../mod/editblock.php:139 msgid "Code" msgstr "" -#: ../../include/ItemObject.php:674 +#: ../../include/ItemObject.php:675 msgid "Image" msgstr "" -#: ../../include/ItemObject.php:675 +#: ../../include/ItemObject.php:676 msgid "Insert Link" msgstr "" -#: ../../include/ItemObject.php:676 +#: ../../include/ItemObject.php:677 msgid "Video" msgstr "" -#: ../../include/ItemObject.php:680 ../../include/conversation.php:1247 +#: ../../include/ItemObject.php:681 ../../include/conversation.php:1247 #: ../../mod/editpost.php:151 ../../mod/mail.php:247 ../../mod/mail.php:361 msgid "Encrypt text" msgstr "" @@ -2201,6 +1868,12 @@ msgstr "" msgid "Applications, utilities, links, games" msgstr "" +#: ../../include/nav.php:165 ../../include/text.php:914 +#: ../../include/text.php:926 ../../include/apps.php:147 +#: ../../mod/search.php:38 +msgid "Search" +msgstr "" + #: ../../include/nav.php:165 msgid "Search site content" msgstr "" @@ -2529,10 +2202,20 @@ msgstr "" msgid "Custom/Expert Mode" msgstr "" +#: ../../include/conversation.php:123 ../../include/text.php:1899 +#: ../../mod/like.php:351 ../../mod/tagger.php:47 +msgid "event" +msgstr "" + #: ../../include/conversation.php:126 ../../mod/like.php:113 msgid "channel" msgstr "" +#: ../../include/conversation.php:150 ../../include/text.php:1904 +#: ../../mod/tagger.php:53 +msgid "comment" +msgstr "" + #: ../../include/conversation.php:167 ../../mod/like.php:399 #, php-format msgid "%1$s doesn't like %2$s's %3$s" @@ -2548,6 +2231,10 @@ msgstr "" msgid "%1$s poked %2$s" msgstr "" +#: ../../include/conversation.php:243 ../../include/text.php:990 +msgid "poked" +msgstr "" + #: ../../include/conversation.php:260 ../../mod/mood.php:63 #, php-format msgctxt "mood" @@ -3222,6 +2909,318 @@ msgstr "" msgid "Permissions" msgstr "" +#: ../../include/text.php:391 +msgid "prev" +msgstr "" + +#: ../../include/text.php:393 +msgid "first" +msgstr "" + +#: ../../include/text.php:422 +msgid "last" +msgstr "" + +#: ../../include/text.php:425 +msgid "next" +msgstr "" + +#: ../../include/text.php:435 +msgid "older" +msgstr "" + +#: ../../include/text.php:437 +msgid "newer" +msgstr "" + +#: ../../include/text.php:830 +msgid "No connections" +msgstr "" + +#: ../../include/text.php:844 +#, php-format +msgid "%d Connection" +msgid_plural "%d Connections" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/text.php:857 ../../mod/viewconnections.php:104 +msgid "View Connections" +msgstr "" + +#: ../../include/text.php:990 +msgid "poke" +msgstr "" + +#: ../../include/text.php:991 +msgid "ping" +msgstr "" + +#: ../../include/text.php:991 +msgid "pinged" +msgstr "" + +#: ../../include/text.php:992 +msgid "prod" +msgstr "" + +#: ../../include/text.php:992 +msgid "prodded" +msgstr "" + +#: ../../include/text.php:993 +msgid "slap" +msgstr "" + +#: ../../include/text.php:993 +msgid "slapped" +msgstr "" + +#: ../../include/text.php:994 +msgid "finger" +msgstr "" + +#: ../../include/text.php:994 +msgid "fingered" +msgstr "" + +#: ../../include/text.php:995 +msgid "rebuff" +msgstr "" + +#: ../../include/text.php:995 +msgid "rebuffed" +msgstr "" + +#: ../../include/text.php:1005 +msgid "happy" +msgstr "" + +#: ../../include/text.php:1006 +msgid "sad" +msgstr "" + +#: ../../include/text.php:1007 +msgid "mellow" +msgstr "" + +#: ../../include/text.php:1008 +msgid "tired" +msgstr "" + +#: ../../include/text.php:1009 +msgid "perky" +msgstr "" + +#: ../../include/text.php:1010 +msgid "angry" +msgstr "" + +#: ../../include/text.php:1011 +msgid "stupified" +msgstr "" + +#: ../../include/text.php:1012 +msgid "puzzled" +msgstr "" + +#: ../../include/text.php:1013 +msgid "interested" +msgstr "" + +#: ../../include/text.php:1014 +msgid "bitter" +msgstr "" + +#: ../../include/text.php:1015 +msgid "cheerful" +msgstr "" + +#: ../../include/text.php:1016 +msgid "alive" +msgstr "" + +#: ../../include/text.php:1017 +msgid "annoyed" +msgstr "" + +#: ../../include/text.php:1018 +msgid "anxious" +msgstr "" + +#: ../../include/text.php:1019 +msgid "cranky" +msgstr "" + +#: ../../include/text.php:1020 +msgid "disturbed" +msgstr "" + +#: ../../include/text.php:1021 +msgid "frustrated" +msgstr "" + +#: ../../include/text.php:1022 +msgid "depressed" +msgstr "" + +#: ../../include/text.php:1023 +msgid "motivated" +msgstr "" + +#: ../../include/text.php:1024 +msgid "relaxed" +msgstr "" + +#: ../../include/text.php:1025 +msgid "surprised" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Monday" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Tuesday" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Wednesday" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Thursday" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Friday" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Saturday" +msgstr "" + +#: ../../include/text.php:1197 +msgid "Sunday" +msgstr "" + +#: ../../include/text.php:1201 +msgid "January" +msgstr "" + +#: ../../include/text.php:1201 +msgid "February" +msgstr "" + +#: ../../include/text.php:1201 +msgid "March" +msgstr "" + +#: ../../include/text.php:1201 +msgid "April" +msgstr "" + +#: ../../include/text.php:1201 ../../mod/uexport.php:58 +#: ../../mod/uexport.php:59 +msgid "May" +msgstr "" + +#: ../../include/text.php:1201 +msgid "June" +msgstr "" + +#: ../../include/text.php:1201 +msgid "July" +msgstr "" + +#: ../../include/text.php:1201 +msgid "August" +msgstr "" + +#: ../../include/text.php:1201 +msgid "September" +msgstr "" + +#: ../../include/text.php:1201 +msgid "October" +msgstr "" + +#: ../../include/text.php:1201 +msgid "November" +msgstr "" + +#: ../../include/text.php:1201 +msgid "December" +msgstr "" + +#: ../../include/text.php:1306 +msgid "unknown.???" +msgstr "" + +#: ../../include/text.php:1307 +msgid "bytes" +msgstr "" + +#: ../../include/text.php:1343 +msgid "remove category" +msgstr "" + +#: ../../include/text.php:1418 +msgid "remove from file" +msgstr "" + +#: ../../include/text.php:1506 ../../include/text.php:1517 +msgid "Click to open/close" +msgstr "" + +#: ../../include/text.php:1673 ../../mod/events.php:474 +msgid "Link to Source" +msgstr "" + +#: ../../include/text.php:1694 ../../include/text.php:1765 +msgid "default" +msgstr "" + +#: ../../include/text.php:1702 +msgid "Page layout" +msgstr "" + +#: ../../include/text.php:1702 +msgid "You can create your own with the layouts tool" +msgstr "" + +#: ../../include/text.php:1743 +msgid "Page content type" +msgstr "" + +#: ../../include/text.php:1777 +msgid "Select an alternate language" +msgstr "" + +#: ../../include/text.php:1909 +msgid "activity" +msgstr "" + +#: ../../include/text.php:2204 +msgid "Design Tools" +msgstr "" + +#: ../../include/text.php:2207 ../../mod/blocks.php:147 +msgid "Blocks" +msgstr "" + +#: ../../include/text.php:2208 ../../mod/menu.php:101 +msgid "Menus" +msgstr "" + +#: ../../include/text.php:2209 ../../mod/layouts.php:174 +msgid "Layouts" +msgstr "" + +#: ../../include/text.php:2210 +msgid "Pages" +msgstr "" + #: ../../include/attach.php:242 ../../include/attach.php:300 msgid "Item was not found." msgstr "" diff --git a/version.inc b/version.inc index a451b30bc..4013cd9db 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-10-25.1196 +2015-11-03.1205 From e09b49288fa415c85d5ee1e77218c0b4c2b54a1d Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 18:34:16 -0800 Subject: [PATCH 073/150] provide admin setting to change directory server --- include/dir_fns.php | 5 +++-- mod/admin.php | 27 ++++++++++++++++++++++++++- view/tpl/admin_site.tpl | 4 +++- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/include/dir_fns.php b/include/dir_fns.php index ecc5f6d96..e5f0e1e2b 100644 --- a/include/dir_fns.php +++ b/include/dir_fns.php @@ -190,8 +190,9 @@ function sync_directories($dirmode) { intval($r[0]['site_valid']) ); - $r = q("select * from site where (site_flags & %d) > 0 and site_url != '%s' and site_type = %d ", - intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY), + $r = q("select * from site where site_flags in (%d, %d) and site_url != '%s' and site_type = %d ", + intval(DIRECTORY_MODE_PRIMARY), + intval(DIRECTORY_MODE_SECONDARY), dbesc(z_root()), intval(SITE_TYPE_ZOT) ); diff --git a/mod/admin.php b/mod/admin.php index 8fe9c8336..a884b7658 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -237,7 +237,7 @@ function admin_page_site_post(&$a){ $register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : ''); $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : ''); $mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0); - + $directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : ''); $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : ''); $allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : ''); $not_allowed_email = ((x($_POST,'not_allowed_email')) ? notags(trim($_POST['not_allowed_email'])) : ''); @@ -272,6 +272,9 @@ function admin_page_site_post(&$a){ set_config('system', 'verify_email', $verify_email); set_config('system', 'default_expire_days', $default_expire_days); + if($directory_server) + set_config('system','directory_server',$directory_server); + if ($banner == '') { del_config('system', 'banner'); } else { @@ -371,6 +374,26 @@ function admin_page_site(&$a) { } } + $dir_choices = null; + $dirmode = get_config('system','directory_mode'); + $realm = get_directory_realm(); + + // directory server should not be set or settable unless we are a directory client + + if($dirmode == DIRECTORY_MODE_NORMAL) { + $x = q("select site_url from site where site_flags in (%d,%d) and site_realm = '%s'", + intval(DIRECTORY_MODE_SECONDARY), + intval(DIRECTORY_MODE_PRIMARY), + dbesc($realm) + ); + if($x) { + $dir_choices = array(); + foreach($x as $xx) { + $dir_choices[$xx['site_url']] = $xx['site_url']; + } + } + } + /* Banner */ $banner = get_config('system', 'banner'); if($banner == false) @@ -440,6 +463,8 @@ function admin_page_site(&$a) { '$disable_discover_tab' => array('disable_discover_tab', t("Disable discovery tab"), get_config('system','disable_discover_tab'), t("Remove the tab in the network view with public content pulled from sources chosen for this site.")), '$login_on_homepage' => array('login_on_homepage', t("login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")), + '$directory_server' => (($dir_choices) ? array('directory_server', t("Directory Server URL"), get_config('system','directory_server'), t("Default directory server"), $dir_choices) : null), + '$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""), '$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""), '$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")), diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl index 26434b20a..4add59a0d 100755 --- a/view/tpl/admin_site.tpl +++ b/view/tpl/admin_site.tpl @@ -49,7 +49,9 @@ {{include file="field_input.tpl" field=$frontpage}} {{include file="field_checkbox.tpl" field=$mirror_frontpage}} {{include file="field_checkbox.tpl" field=$login_on_homepage}} - + {{if $directory_server}} + {{include file="field_select.tpl" field=$directory_server}} + {{/if}}
From 2fbfc2a8f176ef6ca9389f04b67e5734596ed0da Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 19:50:40 -0800 Subject: [PATCH 074/150] need better peer verification due to re-install issue, this is temporary --- include/Contact.php | 5 +++- include/zot.php | 5 ++-- mod/post.php | 73 +++++++++++++++++++++++++-------------------- 3 files changed, 47 insertions(+), 36 deletions(-) diff --git a/include/Contact.php b/include/Contact.php index 8e22c608e..3bd5f9936 100644 --- a/include/Contact.php +++ b/include/Contact.php @@ -292,7 +292,8 @@ function channel_remove($channel_id, $local = true, $unset_session=true) { intval($channel_id) ); - + logger('deleting hublocs',LOGGER_DEBUG); + $r = q("update hubloc set hubloc_deleted = 1 where hubloc_hash = '%s'", dbesc($channel['channel_hash']) ); @@ -349,6 +350,8 @@ function channel_remove($channel_id, $local = true, $unset_session=true) { } + logger('deleting hublocs',LOGGER_DEBUG); + $r = q("update hubloc set hubloc_deleted = 1 where hubloc_hash = '%s' and hubloc_url = '%s' ", dbesc($channel['channel_hash']), dbesc(z_root()) diff --git a/include/zot.php b/include/zot.php index b13111f04..d7b865ee8 100644 --- a/include/zot.php +++ b/include/zot.php @@ -2373,6 +2373,7 @@ function sync_locations($sender, $arr, $absolute = false) { $changed = true; } elseif((! intval($r[0]['hubloc_deleted'])) && (intval($location['deleted']))) { + logger('deleting hubloc: ' . $r[0]['hubloc_addr']); $n = q("update hubloc set hubloc_deleted = 1, hubloc_updated = '%s' where hubloc_id = %d", dbesc(datetime_convert()), intval($r[0]['hubloc_id']) @@ -2427,7 +2428,7 @@ function sync_locations($sender, $arr, $absolute = false) { if($absolute && $xisting) { foreach($xisting as $x) { if(! array_key_exists('updated',$x)) { - logger('sync_locations: deleting unreferenced hub location ' . $x['hubloc_url']); + logger('sync_locations: deleting unreferenced hub location ' . $x['hubloc_addr']); $r = q("update hubloc set hubloc_deleted = 1, hubloc_updated = '%s' where hubloc_id = %d", dbesc(datetime_convert()), intval($x['hubloc_id']) @@ -2468,7 +2469,7 @@ function zot_encode_locations($channel) { // so that nobody tries to use it. if(intval($channel['channel_removed']) && $hub['hubloc_url'] === z_root()) - $hub['hubloc_deleted'] = true; + $hub['hubloc_deleted'] = 1; $ret[] = array( 'host' => $hub['hubloc_host'], diff --git a/mod/post.php b/mod/post.php index 00e599b49..e03e1321b 100644 --- a/mod/post.php +++ b/mod/post.php @@ -663,16 +663,16 @@ function post_post(&$a) { /* Check if the sender is already verified here */ - $hub = zot_gethub($sender); + $hubs = zot_gethub($sender,true); - if (! $hub) { + if (! $hubs) { /* Have never seen this guid or this guid coming from this location. Check it and register it. */ // (!!) this will validate the sender $result = zot_register_hub($sender); - if ((! $result['success']) || (! ($hub = zot_gethub($sender)))) { + if ((! $result['success']) || (! ($hubs = zot_gethub($sender,true)))) { $ret['message'] = 'Hub not available.'; logger('mod_zot: no hub'); json_return_and_die($ret); @@ -680,42 +680,49 @@ function post_post(&$a) { } - // Update our DB to show when we last communicated successfully with this hub - // This will allow us to prune dead hubs from using up resources + foreach($hubs as $hub) { - $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d", - dbesc(datetime_convert()), - intval($hub['hubloc_id']) - ); + // Update our DB to show when we last communicated successfully with this hub + // This will allow us to prune dead hubs from using up resources - // a dead hub came back to life - reset any tombstones we might have - - if(intval($hub['hubloc_error'])) { - q("update hubloc set hubloc_error = 0 where hubloc_id = %d", - intval($hub['hubloc_id']) + $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d", + dbesc(datetime_convert()), + intval($hub['hubloc_id']) ); - if(intval($r[0]['hubloc_orphancheck'])) { - q("update hubloc set hubloc_orhpancheck = 0 where hubloc_id = %d", - intval($hub['hubloc_id']) + + // a dead hub came back to life - reset any tombstones we might have + + if(intval($hub['hubloc_error'])) { + q("update hubloc set hubloc_error = 0 where hubloc_id = %d", + intval($hub['hubloc_id']) + ); + if(intval($r[0]['hubloc_orphancheck'])) { + q("update hubloc set hubloc_orhpancheck = 0 where hubloc_id = %d", + intval($hub['hubloc_id']) + ); + } + q("update xchan set xchan_orphan = 0 where xchan_orphan = 1 and xchan_hash = '%s'", + dbesc($hub['hubloc_hash']) ); } - q("update xchan set xchan_orphan = 0 where xchan_orphan = 1 and xchan_hash = '%s'", - dbesc($hub['hubloc_hash']) - ); + + + /* + * This hub has now been proven to be valid. + * Any hub with the same URL and a different sitekey cannot be valid. + * Get rid of them (mark them deleted). There's a good chance they were re-installs. + */ + + +// q("update hubloc set hubloc_deleted = 1 where hubloc_url = '%s' and hubloc_sitekey != '%s' ", +// dbesc($hub['hubloc_url']), +// dbesc($hub['hubloc_sitekey']) +// ); + + $connecting_url = $hub['hubloc_url']; + } - - /* - * This hub has now been proven to be valid. - * Any hub with the same URL and a different sitekey cannot be valid. - * Get rid of them (mark them deleted). There's a good chance they were re-installs. - */ - - q("update hubloc set hubloc_deleted = 1 where hubloc_url = '%s' and hubloc_sitekey != '%s' ", - dbesc($hub['hubloc_url']), - dbesc($hub['hubloc_sitekey']) - ); - /** @TODO check which hub is primary and take action if mismatched */ if (array_key_exists('recipients', $data)) @@ -917,7 +924,7 @@ function post_post(&$a) { if ($msgtype === 'notify') { - logger('notify received from ' . $hub['hubloc_url']); + logger('notify received from ' . $connecting_url); $async = get_config('system','queued_fetch'); From 877b3361c8145465f81ef9435031826f72b37001 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 20:28:56 -0800 Subject: [PATCH 075/150] better re-install detection/protection. This necessitated a slight protocol change but should not introduce any compatibility issues with older software. Things just work better if you use an up-to-date server. --- include/zot.php | 8 +++++--- mod/post.php | 54 ++++++++++++++++++++++++++++++------------------- 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/include/zot.php b/include/zot.php index d7b865ee8..d5d68f72c 100644 --- a/include/zot.php +++ b/include/zot.php @@ -117,7 +117,8 @@ function zot_build_packet($channel, $type = 'notify', $recipients = null, $remot 'guid' => $channel['channel_guid'], 'guid_sig' => base64url_encode(rsa_sign($channel['channel_guid'],$channel['channel_prvkey'])), 'url' => z_root(), - 'url_sig' => base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey'])) + 'url_sig' => base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey'])), + 'sitekey' => get_config('system','pubkey') ), 'callback' => '/post', 'version' => ZOT_REVISION @@ -569,11 +570,12 @@ function zot_gethub($arr,$multiple = false) { } $limit = (($multiple) ? '' : ' limit 1 '); - + $sitekey = ((array_key_exists('sitekey',$arr) && $arr['sitekey']) ? " and hubloc_sitekey = '" . protect_sprintf($arr['sitekey']) . "' " : ''); + $r = q("select * from hubloc where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_url = '%s' and hubloc_url_sig = '%s' - $limit", + $sitekey $limit", dbesc($arr['guid']), dbesc($arr['guid_sig']), dbesc($arr['url']), diff --git a/mod/post.php b/mod/post.php index e03e1321b..2a5e819a2 100644 --- a/mod/post.php +++ b/mod/post.php @@ -682,45 +682,57 @@ function post_post(&$a) { foreach($hubs as $hub) { + $sitekey = $hub['hubloc_sitekey']; + + if(array_key_exists('sitekey',$sender) && $sender['sitekey']) { + + /* + * This hub has now been proven to be valid. + * Any hub with the same URL and a different sitekey cannot be valid. + * Get rid of them (mark them deleted). There's a good chance they were re-installs. + */ + + q("update hubloc set hubloc_deleted = 1, hubloc_error = 1 where hubloc_url = '%s' and hubloc_sitekey != '%s' ", + dbesc($hub['hubloc_url']), + dbesc($sender['sitekey']) + ); + + $sitekey = $sender['sitekey']; + } + + // $sender['sitekey'] is a new addition to the protcol to distinguish + // hublocs coming from re-installed sites. Older sites will not provide + // this field and we have to still mark them valid, since we can't tell + // if this hubloc has the same sitekey as the packet we received. + // Update our DB to show when we last communicated successfully with this hub // This will allow us to prune dead hubs from using up resources - $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d", + $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d and hubloc_sitekey = '%s' ", dbesc(datetime_convert()), - intval($hub['hubloc_id']) + intval($hub['hubloc_id']), + dbesc($sitekey) ); // a dead hub came back to life - reset any tombstones we might have if(intval($hub['hubloc_error'])) { - q("update hubloc set hubloc_error = 0 where hubloc_id = %d", - intval($hub['hubloc_id']) + q("update hubloc set hubloc_error = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ", + intval($hub['hubloc_id']), + dbesc($sitekey) ); if(intval($r[0]['hubloc_orphancheck'])) { - q("update hubloc set hubloc_orhpancheck = 0 where hubloc_id = %d", - intval($hub['hubloc_id']) + q("update hubloc set hubloc_orhpancheck = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ", + intval($hub['hubloc_id']), + dbesc($sitekey) ); } q("update xchan set xchan_orphan = 0 where xchan_orphan = 1 and xchan_hash = '%s'", dbesc($hub['hubloc_hash']) ); } - - - /* - * This hub has now been proven to be valid. - * Any hub with the same URL and a different sitekey cannot be valid. - * Get rid of them (mark them deleted). There's a good chance they were re-installs. - */ - - -// q("update hubloc set hubloc_deleted = 1 where hubloc_url = '%s' and hubloc_sitekey != '%s' ", -// dbesc($hub['hubloc_url']), -// dbesc($hub['hubloc_sitekey']) -// ); - + $connecting_url = $hub['hubloc_url']; - } /** @TODO check which hub is primary and take action if mismatched */ From 5dade2b608affa50e830bf0b93888c2b0570a2bb Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 20:40:43 -0800 Subject: [PATCH 076/150] backport small bits of the re-install fix; at least the damaging bits --- mod/post.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mod/post.php b/mod/post.php index a429dc33a..682e04818 100644 --- a/mod/post.php +++ b/mod/post.php @@ -724,12 +724,12 @@ function post_post(&$a) { * Any hub with the same URL and a different sitekey cannot be valid. * Get rid of them (mark them deleted). There's a good chance they were re-installs. */ - - q("update hubloc set hubloc_flags = ( hubloc_flags | %d ) where hubloc_url = '%s' and hubloc_sitekey != '%s' ", - intval(HUBLOC_FLAGS_DELETED), - dbesc($hub['hubloc_url']), - dbesc($hub['hubloc_sitekey']) - ); +// fixed in hubzilla with a protocol change +// q("update hubloc set hubloc_flags = ( hubloc_flags | %d ) where hubloc_url = '%s' and hubloc_sitekey != '%s' ", +// intval(HUBLOC_FLAGS_DELETED), +// dbesc($hub['hubloc_url']), +// dbesc($hub['hubloc_sitekey']) +// ); /** @TODO check which hub is primary and take action if mismatched */ From 380e3e64cb88c3456e279a9f55a65d5049859159 Mon Sep 17 00:00:00 2001 From: ken restivo Date: Tue, 3 Nov 2015 20:57:07 -0800 Subject: [PATCH 077/150] Add generated docs for hooks. Link them into the developer docs so they can be found more easily. --- doc/Hooks.md | 136 ------------------------------------------------- doc/develop.bb | 1 + doc/hooks.html | 1 + 3 files changed, 2 insertions(+), 136 deletions(-) delete mode 100644 doc/Hooks.md create mode 100644 doc/hooks.html diff --git a/doc/Hooks.md b/doc/Hooks.md deleted file mode 100644 index 90edff623..000000000 --- a/doc/Hooks.md +++ /dev/null @@ -1,136 +0,0 @@ -Hooks - Complete List -===================== - - -* 'about_hook' -* 'account_settings' -* 'app_menu' -* 'atom_author' -* 'atom_entry' -* 'atom_feed' -* 'atom_feed_end' -* 'authenticate' -* 'avatar_lookup' -* 'bb2diaspora' -* 'bbcode' -* 'channel_remove' -* 'check_account_email' -* 'check_account_invite' -* 'check_account_password' -* 'connect_premium' -* 'connector_settings' -* 'contact_block_end' -* 'contact_edit' -* 'contact_edit_post' -* 'contact_photo_menu' -* 'contact_select_options' -* 'conversation_start' -* 'cron' -* 'directory_item' -* 'display_item' -* 'display_item' -* 'display_settings' -* 'display_settings_post' -* 'enotify' -* 'enotify_mail' -* 'enotify_store' -* 'event_created' -* 'event_updated' -* 'feature_enabled' -* 'feature_settings' -* 'feature_settings_post' -* 'follow' -* 'gender_selector' -* 'get_all_perms' -* 'get_features' -* 'get_widgets' -* 'global_permissions' -* 'home_content' -* 'home_init' -* 'html2bbcode' -* 'import_directory_profile' -* 'init_1' -* 'item_photo_menu' -* 'item_translate' -* 'jot_networks' -* 'jot_tool' -* 'logged_in' -* 'login_hook' -* 'logging_out' -* 'magic_auth' -* 'magic_auth_success' -* 'main_slider' -* 'marital_selector' -* 'mood_verbs' -* 'network_content_init' -* 'network_ping' -* 'network_tabs' -* 'network_to_name' -* 'notifier_end' -* 'notifier_normal' -* 'obj_verbs' -* 'oembed_probe' -* 'page_content_top' -* 'page_end' -* 'page_header' -* 'parse_atom' -* 'parse_link' -* 'pdl_selector' -* 'perm_is_allowed' -* 'personal_xrd' -* 'photo_post_end' -* 'photo_post_end' -* 'photo_upload_begin' -* 'photo_upload_end' -* 'photo_upload_file' -* 'photo_upload_form' -* 'poke_verbs' -* 'post_local' -* 'post_local_end' -* 'post_local_start' -* 'post_mail' -* 'post_mail_end' -* 'post_remote' -* 'post_remote_end' -* 'post_remote_update' -* 'post_remote_update_end' -* 'prepare_body' -* 'prepare_body_final' -* 'prepare_body_init' -* 'proc_run' -* 'profile_advanced' -* 'profile_edit' -* 'profile_post' -* 'profile_sidebar' -* 'profile_sidebar_enter' -* 'profile_tabs' -* 'register_account' -* 'render_location' -* 'settings_account' -* 'settings_form' -* 'settings_post' -* 'sexpref_selector' -* 'smilie' -* 'validate_channelname' -* 'webfinger' -* 'zid' -* 'zid_init' - -***General Module Hooks*** - -* $a->module . '_mod_aftercontent' -* $a->module . '_mod_aside' -* $a->module . '_mod_content' -* $a->module . '_mod_init' -* $a->module . '_mod_post' - -***General Selector Hooks*** - -* $a->module . '_post_' . $selname -* $a->module . '_post_' . $selname -* $a->module . '_post_' . $selname -* $a->module . '_pre_' . $selname -* $a->module . '_pre_' . $selname -* $a->module . '_pre_' . $selname - -#include doc/macros/main_footer.bb; diff --git a/doc/develop.bb b/doc/develop.bb index c46447cce..67515c1ab 100644 --- a/doc/develop.bb +++ b/doc/develop.bb @@ -8,6 +8,7 @@ [zrl=[baseurl]/help/Creating-Templates]Creating Comanche Templates[/zrl] [zrl=[baseurl]/help/Widgets]Widgets[/zrl] [zrl=[baseurl]/help/plugins]Plugins[/zrl] +[zrl=[baseurl]/help/hooks]Hooks[/zrl] [zrl=[baseurl]/help/doco]Contributing Documentation[/zrl] [zrl=[baseurl]/help/DerivedTheme1]Creating Derivative Themes[/zrl] [zrl=[baseurl]/help/schema_development]Schemas[/zrl] diff --git a/doc/hooks.html b/doc/hooks.html new file mode 100644 index 000000000..e488e8a97 --- /dev/null +++ b/doc/hooks.html @@ -0,0 +1 @@ +

Hooks

FunctionSource FileArg
$a->module . _mod_aftercontentindex.php$arr
$a->module . _mod_contentindex.php$arr
$a->module . _mod_initindex.php$placeholder
$a->module . _mod_postindex.php$_POST
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$nameinclude/plugin.php&$data = null
about_hookmod/siteinfo.php$o
accept_followmod/connedit.php$arr
account_downgradeinclude/account.php$ret
account_downgradeinclude/account.php$ret
account_settingsmod/settings.php$account_settings
activity_receivedinclude/zot.php$parr
affinity_labelsinclude/widgets.php$labels
affinity_labelsmod/connedit.php$labels
api_perm_is_allowedinclude/permissions.php$arr
app_menuindex.php$arr
atom_authorinclude/items.php$o
atom_entryinclude/items.php$o
atom_feedinclude/items.php$atom
atom_feed_endinclude/items.php$atom
attach_upload_fileinclude/attach.php$f
authenticateinclude/auth.php$addon_auth
avatar_lookupinclude/network.php$avatar
bb2diasporainclude/bb2diaspora.php$Text
bbcodeinclude/bbcode.php$Text
channel_removeinclude/Contact.php$r[0]
chat_messageinclude/chat.php$arr
chat_postmod/chatsvc.php$arr
check_account_emailinclude/account.php$arr
check_account_inviteinclude/account.php$arr
check_account_passwordinclude/account.php$arr
connect_premiummod/connect.php$arr
connector_settingsmod/settings.php$settings_connectors
construct_pageboot.php$arr
contact_block_endinclude/text.php$arr
contact_editmod/connedit.php$arr
contact_edit_postmod/connedit.php$_POST
contact_select_optionsinclude/acl_selectors.php$x
conversation_startinclude/conversation.php$cb
create_identityinclude/identity.php$newuid
croninclude/cronhooks.php$d
cron_dailyinclude/poller.phpdatetime_convert()
cron_weeklyinclude/poller.phpdatetime_convert()
directory_itemmod/directory.php$arr
discover_by_webbieinclude/network.php$arr
display_iteminclude/ItemObject.php$arr
display_iteminclude/conversation.php$arr
display_settingsmod/settings.php$o
display_settings_postmod/settings.php$_POST
donate_contributorsextend/addon/matrix/donate/donate.php$contributors
donate_pluginextend/addon/matrix/donate/donate.php$o
donate_sponsorsextend/addon/matrix/donate/donate.php$sponsors
dreport_is_storableinclude/zot.php$dr
drop_iteminclude/items.php$arr
enotifyinclude/enotify.php$h
enotify_mailinclude/enotify.php$datarray
enotify_storeinclude/enotify.php$datarray
event_createdinclude/event.php$event[id]
event_updatedinclude/event.php$event[id]
externals_url_selectinclude/externals.php$arr
feature_enabledinclude/features.php$arr
feature_settingsmod/settings.php$settings_addons
feature_settings_postmod/settings.php$_POST
followinclude/follow.php$arr
followinclude/follow.php$arr
follow_allowinclude/follow.php$x
gender_selectorinclude/profile_selectors.php$select
gender_selector_mininclude/profile_selectors.php$select
generate_mapinclude/text.php$arr
generate_named_mapinclude/text.php$arr
get_all_api_permsinclude/permissions.php$arr
get_all_permsinclude/permissions.php$arr
get_featuresinclude/features.php$arr
get_role_permsinclude/permissions.php$ret
get_widgetsboot.php$arr
get_widgetsboot.php$arr
global_permissionsinclude/permissions.php$ret
home_contentmod/home.php$o
home_initmod/home.php$ret
hostxrdmod/hostxrd.php$arr
html2bbcodeinclude/html2bbcode.php$message
identity_basic_exportinclude/identity.php$addon
import_author_xchaninclude/items.php$arr
import_channelmod/import.php$addon
import_directory_profileinclude/zot.php$d
import_xchaninclude/zot.php$arr
item_photo_menuinclude/conversation.php$args
item_storeinclude/items.php$d
item_storeinclude/items.php$arr
item_store_updateinclude/items.php$d
item_translateinclude/items.php$translate
item_translateinclude/items.php$translate
jot_networksinclude/acl_selectors.php$jotnets
jot_networksinclude/conversation.php$jotnets
jot_networksmod/editblock.php$jotnets
jot_networksmod/editpost.php$jotnets
jot_networksmod/editwebpage.php$jotnets
jot_networksmod/editlayout.php$jotnets
jot_toolinclude/conversation.php$jotplugins
jot_toolmod/editblock.php$jotplugins
jot_toolmod/editpost.php$jotplugins
jot_toolmod/editwebpage.php$jotplugins
jot_toolmod/editlayout.php$jotplugins
load_pdlboot.php$arr
local_dir_updateinclude/dir_fns.php$arr
logged_ininclude/oauth.php$a->user
logged_ininclude/api.php$a->user
logged_ininclude/security.php$a->account
logged_ininclude/security.php$user_record
logging_outinclude/auth.php$args
login_hookboot.php$o
magic_authmod/magic.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_successmod/post.php$arr
main_sliderinclude/widgets.php$arr
marital_selectorinclude/profile_selectors.php$select
marital_selector_mininclude/profile_selectors.php$select
module_loadedindex.php$x
mood_verbsinclude/text.php$arr
navinclude/nav.php$x
network_content_initmod/network.php$arr
network_pingmod/ping.php$arr
network_tabsinclude/conversation.php$arr
network_to_nameinclude/contact_selectors.php$nets
notifier_endinclude/notifier.php$target_item
notifier_hubinclude/notifier.php$narr
notifier_normalinclude/deliver_hooks.php$r[0]
obj_verbsinclude/taxonomy.php$arr
oembed_probeinclude/oembed.php$x
page_content_topindex.php$a->page[content]
page_endindex.php$a->page[content]
page_headerinclude/nav.php$a->page[nav]
parse_atominclude/items.php$arr
parse_linkmod/linkinfo.php$arr
pdl_selectorinclude/comanche.php$arr
perm_is_allowedinclude/permissions.php$arr
permissions_createinclude/notifier.php$perm_update
permissions_updateinclude/notifier.php$perm_update
personal_xrdmod/xrd.php$arr
photo_post_endinclude/photos.php$ret
photo_post_endinclude/photos.php$ret
photo_upload_begininclude/attach.php$arr
photo_upload_begininclude/photos.php$args
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_fileinclude/attach.php$f
photo_upload_fileinclude/photos.php$f
photo_upload_formmod/photos.php$ret
poke_verbsinclude/text.php$arr
post_localinclude/zot.php$arr
post_localinclude/items.php$arr
post_localmod/item.php$datarray
post_local_endinclude/items.php$arr
post_local_endinclude/attach.php$arr
post_local_endinclude/attach.php$arr
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endmod/mood.php$arr
post_local_endmod/like.php$arr
post_local_endmod/item.php$datarray
post_local_endmod/subthread.php$arr
post_local_endmod/subthread.php$arr
post_local_startmod/item.php$_REQUEST
post_mailinclude/items.php$arr
post_mail_endinclude/items.php$arr
post_remoteinclude/items.php$arr
post_remote_endinclude/items.php$arr
post_remote_updateinclude/items.php$arr
post_remote_update_endinclude/items.php$arr
prepare_bodyinclude/text.php$prep_arr
prepare_body_finalinclude/text.php$prep_arr
prepare_body_initinclude/text.php$item
probe_well_knowninclude/probe.php$ret
proc_runboot.php$arr
process_channel_sync_deliveryinclude/zot.php$addon
profile_advancedmod/profile.php$o
profile_editmod/profiles.php$arr
profile_photo_content_endmod/profile_photo.php$o
profile_postmod/profiles.php$_POST
profile_sidebarinclude/identity.php$arr
profile_sidebar_enterinclude/identity.php$profile
profile_tabsinclude/conversation.php$arr
register_accountinclude/account.php$result
render_locationinclude/conversation.php$locate
replace_macrosinclude/text.php$arr
reverse_magic_authmod/rmagic.php$arr
settings_accountmod/settings.php$_POST
settings_formmod/settings.php$o
settings_postmod/settings.php$_POST
sexpref_selectorinclude/profile_selectors.php$select
sexpref_selector_mininclude/profile_selectors.php$select
smilieinclude/text.php$params
smilieextend/addon/matrix/smileybutton/smileybutton.php$params
taggedinclude/items.php$arr
validate_channelnameinclude/identity.php$arr
webfingermod/wfinger.php$arr
well_knownmod/_well_known.php$arr
zidinclude/identity.php$arr
zid_initinclude/identity.php$arr
zot_fingerinclude/zot.php$ret
\ No newline at end of file From d9c7b39b884511b38ca339d032f4688b86472af1 Mon Sep 17 00:00:00 2001 From: ken restivo Date: Tue, 3 Nov 2015 21:15:49 -0800 Subject: [PATCH 078/150] Commit the tool used to generate the hooks docs. --- doc/hooks.html | 2 +- util/generate-hooks-index/.gitignore | 11 + util/generate-hooks-index/CHANGELOG.md | 24 ++ util/generate-hooks-index/LICENSE | 214 ++++++++++++++++++ util/generate-hooks-index/README.md | 30 +++ util/generate-hooks-index/doc/intro.md | 3 + util/generate-hooks-index/project.clj | 10 + .../src/generate_hooks_index/core.clj | 82 +++++++ .../test/generate_hooks_index/core_test.clj | 7 + 9 files changed, 382 insertions(+), 1 deletion(-) create mode 100644 util/generate-hooks-index/.gitignore create mode 100644 util/generate-hooks-index/CHANGELOG.md create mode 100644 util/generate-hooks-index/LICENSE create mode 100644 util/generate-hooks-index/README.md create mode 100644 util/generate-hooks-index/doc/intro.md create mode 100644 util/generate-hooks-index/project.clj create mode 100644 util/generate-hooks-index/src/generate_hooks_index/core.clj create mode 100644 util/generate-hooks-index/test/generate_hooks_index/core_test.clj diff --git a/doc/hooks.html b/doc/hooks.html index e488e8a97..da46b399c 100644 --- a/doc/hooks.html +++ b/doc/hooks.html @@ -1 +1 @@ -

Hooks

FunctionSource FileArg
$a->module . _mod_aftercontentindex.php$arr
$a->module . _mod_contentindex.php$arr
$a->module . _mod_initindex.php$placeholder
$a->module . _mod_postindex.php$_POST
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$nameinclude/plugin.php&$data = null
about_hookmod/siteinfo.php$o
accept_followmod/connedit.php$arr
account_downgradeinclude/account.php$ret
account_downgradeinclude/account.php$ret
account_settingsmod/settings.php$account_settings
activity_receivedinclude/zot.php$parr
affinity_labelsinclude/widgets.php$labels
affinity_labelsmod/connedit.php$labels
api_perm_is_allowedinclude/permissions.php$arr
app_menuindex.php$arr
atom_authorinclude/items.php$o
atom_entryinclude/items.php$o
atom_feedinclude/items.php$atom
atom_feed_endinclude/items.php$atom
attach_upload_fileinclude/attach.php$f
authenticateinclude/auth.php$addon_auth
avatar_lookupinclude/network.php$avatar
bb2diasporainclude/bb2diaspora.php$Text
bbcodeinclude/bbcode.php$Text
channel_removeinclude/Contact.php$r[0]
chat_messageinclude/chat.php$arr
chat_postmod/chatsvc.php$arr
check_account_emailinclude/account.php$arr
check_account_inviteinclude/account.php$arr
check_account_passwordinclude/account.php$arr
connect_premiummod/connect.php$arr
connector_settingsmod/settings.php$settings_connectors
construct_pageboot.php$arr
contact_block_endinclude/text.php$arr
contact_editmod/connedit.php$arr
contact_edit_postmod/connedit.php$_POST
contact_select_optionsinclude/acl_selectors.php$x
conversation_startinclude/conversation.php$cb
create_identityinclude/identity.php$newuid
croninclude/cronhooks.php$d
cron_dailyinclude/poller.phpdatetime_convert()
cron_weeklyinclude/poller.phpdatetime_convert()
directory_itemmod/directory.php$arr
discover_by_webbieinclude/network.php$arr
display_iteminclude/ItemObject.php$arr
display_iteminclude/conversation.php$arr
display_settingsmod/settings.php$o
display_settings_postmod/settings.php$_POST
donate_contributorsextend/addon/matrix/donate/donate.php$contributors
donate_pluginextend/addon/matrix/donate/donate.php$o
donate_sponsorsextend/addon/matrix/donate/donate.php$sponsors
dreport_is_storableinclude/zot.php$dr
drop_iteminclude/items.php$arr
enotifyinclude/enotify.php$h
enotify_mailinclude/enotify.php$datarray
enotify_storeinclude/enotify.php$datarray
event_createdinclude/event.php$event[id]
event_updatedinclude/event.php$event[id]
externals_url_selectinclude/externals.php$arr
feature_enabledinclude/features.php$arr
feature_settingsmod/settings.php$settings_addons
feature_settings_postmod/settings.php$_POST
followinclude/follow.php$arr
followinclude/follow.php$arr
follow_allowinclude/follow.php$x
gender_selectorinclude/profile_selectors.php$select
gender_selector_mininclude/profile_selectors.php$select
generate_mapinclude/text.php$arr
generate_named_mapinclude/text.php$arr
get_all_api_permsinclude/permissions.php$arr
get_all_permsinclude/permissions.php$arr
get_featuresinclude/features.php$arr
get_role_permsinclude/permissions.php$ret
get_widgetsboot.php$arr
get_widgetsboot.php$arr
global_permissionsinclude/permissions.php$ret
home_contentmod/home.php$o
home_initmod/home.php$ret
hostxrdmod/hostxrd.php$arr
html2bbcodeinclude/html2bbcode.php$message
identity_basic_exportinclude/identity.php$addon
import_author_xchaninclude/items.php$arr
import_channelmod/import.php$addon
import_directory_profileinclude/zot.php$d
import_xchaninclude/zot.php$arr
item_photo_menuinclude/conversation.php$args
item_storeinclude/items.php$d
item_storeinclude/items.php$arr
item_store_updateinclude/items.php$d
item_translateinclude/items.php$translate
item_translateinclude/items.php$translate
jot_networksinclude/acl_selectors.php$jotnets
jot_networksinclude/conversation.php$jotnets
jot_networksmod/editblock.php$jotnets
jot_networksmod/editpost.php$jotnets
jot_networksmod/editwebpage.php$jotnets
jot_networksmod/editlayout.php$jotnets
jot_toolinclude/conversation.php$jotplugins
jot_toolmod/editblock.php$jotplugins
jot_toolmod/editpost.php$jotplugins
jot_toolmod/editwebpage.php$jotplugins
jot_toolmod/editlayout.php$jotplugins
load_pdlboot.php$arr
local_dir_updateinclude/dir_fns.php$arr
logged_ininclude/oauth.php$a->user
logged_ininclude/api.php$a->user
logged_ininclude/security.php$a->account
logged_ininclude/security.php$user_record
logging_outinclude/auth.php$args
login_hookboot.php$o
magic_authmod/magic.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_successmod/post.php$arr
main_sliderinclude/widgets.php$arr
marital_selectorinclude/profile_selectors.php$select
marital_selector_mininclude/profile_selectors.php$select
module_loadedindex.php$x
mood_verbsinclude/text.php$arr
navinclude/nav.php$x
network_content_initmod/network.php$arr
network_pingmod/ping.php$arr
network_tabsinclude/conversation.php$arr
network_to_nameinclude/contact_selectors.php$nets
notifier_endinclude/notifier.php$target_item
notifier_hubinclude/notifier.php$narr
notifier_normalinclude/deliver_hooks.php$r[0]
obj_verbsinclude/taxonomy.php$arr
oembed_probeinclude/oembed.php$x
page_content_topindex.php$a->page[content]
page_endindex.php$a->page[content]
page_headerinclude/nav.php$a->page[nav]
parse_atominclude/items.php$arr
parse_linkmod/linkinfo.php$arr
pdl_selectorinclude/comanche.php$arr
perm_is_allowedinclude/permissions.php$arr
permissions_createinclude/notifier.php$perm_update
permissions_updateinclude/notifier.php$perm_update
personal_xrdmod/xrd.php$arr
photo_post_endinclude/photos.php$ret
photo_post_endinclude/photos.php$ret
photo_upload_begininclude/attach.php$arr
photo_upload_begininclude/photos.php$args
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_fileinclude/attach.php$f
photo_upload_fileinclude/photos.php$f
photo_upload_formmod/photos.php$ret
poke_verbsinclude/text.php$arr
post_localinclude/zot.php$arr
post_localinclude/items.php$arr
post_localmod/item.php$datarray
post_local_endinclude/items.php$arr
post_local_endinclude/attach.php$arr
post_local_endinclude/attach.php$arr
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endmod/mood.php$arr
post_local_endmod/like.php$arr
post_local_endmod/item.php$datarray
post_local_endmod/subthread.php$arr
post_local_endmod/subthread.php$arr
post_local_startmod/item.php$_REQUEST
post_mailinclude/items.php$arr
post_mail_endinclude/items.php$arr
post_remoteinclude/items.php$arr
post_remote_endinclude/items.php$arr
post_remote_updateinclude/items.php$arr
post_remote_update_endinclude/items.php$arr
prepare_bodyinclude/text.php$prep_arr
prepare_body_finalinclude/text.php$prep_arr
prepare_body_initinclude/text.php$item
probe_well_knowninclude/probe.php$ret
proc_runboot.php$arr
process_channel_sync_deliveryinclude/zot.php$addon
profile_advancedmod/profile.php$o
profile_editmod/profiles.php$arr
profile_photo_content_endmod/profile_photo.php$o
profile_postmod/profiles.php$_POST
profile_sidebarinclude/identity.php$arr
profile_sidebar_enterinclude/identity.php$profile
profile_tabsinclude/conversation.php$arr
register_accountinclude/account.php$result
render_locationinclude/conversation.php$locate
replace_macrosinclude/text.php$arr
reverse_magic_authmod/rmagic.php$arr
settings_accountmod/settings.php$_POST
settings_formmod/settings.php$o
settings_postmod/settings.php$_POST
sexpref_selectorinclude/profile_selectors.php$select
sexpref_selector_mininclude/profile_selectors.php$select
smilieinclude/text.php$params
smilieextend/addon/matrix/smileybutton/smileybutton.php$params
taggedinclude/items.php$arr
validate_channelnameinclude/identity.php$arr
webfingermod/wfinger.php$arr
well_knownmod/_well_known.php$arr
zidinclude/identity.php$arr
zid_initinclude/identity.php$arr
zot_fingerinclude/zot.php$ret
\ No newline at end of file +

Hooks

Generated Tue Nov 03 21:14:33 PST 2015

FunctionSource FileArg
$a->module . _mod_aftercontentindex.php$arr
$a->module . _mod_contentindex.php$arr
$a->module . _mod_initindex.php$placeholder
$a->module . _mod_postindex.php$_POST
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$nameinclude/plugin.php&$data = null
about_hookmod/siteinfo.php$o
accept_followmod/connedit.php$arr
account_downgradeinclude/account.php$ret
account_downgradeinclude/account.php$ret
account_settingsmod/settings.php$account_settings
activity_receivedinclude/zot.php$parr
affinity_labelsinclude/widgets.php$labels
affinity_labelsmod/connedit.php$labels
api_perm_is_allowedinclude/permissions.php$arr
app_menuindex.php$arr
atom_authorinclude/items.php$o
atom_entryinclude/items.php$o
atom_feedinclude/items.php$atom
atom_feed_endinclude/items.php$atom
attach_upload_fileinclude/attach.php$f
authenticateinclude/auth.php$addon_auth
avatar_lookupinclude/network.php$avatar
bb2diasporainclude/bb2diaspora.php$Text
bbcodeinclude/bbcode.php$Text
channel_removeinclude/Contact.php$r[0]
chat_messageinclude/chat.php$arr
chat_postmod/chatsvc.php$arr
check_account_emailinclude/account.php$arr
check_account_inviteinclude/account.php$arr
check_account_passwordinclude/account.php$arr
connect_premiummod/connect.php$arr
connector_settingsmod/settings.php$settings_connectors
construct_pageboot.php$arr
contact_block_endinclude/text.php$arr
contact_editmod/connedit.php$arr
contact_edit_postmod/connedit.php$_POST
contact_select_optionsinclude/acl_selectors.php$x
conversation_startinclude/conversation.php$cb
create_identityinclude/identity.php$newuid
croninclude/cronhooks.php$d
cron_dailyinclude/poller.phpdatetime_convert()
cron_weeklyinclude/poller.phpdatetime_convert()
directory_itemmod/directory.php$arr
discover_by_webbieinclude/network.php$arr
display_iteminclude/ItemObject.php$arr
display_iteminclude/conversation.php$arr
display_settingsmod/settings.php$o
display_settings_postmod/settings.php$_POST
donate_contributorsextend/addon/matrix/donate/donate.php$contributors
donate_pluginextend/addon/matrix/donate/donate.php$o
donate_sponsorsextend/addon/matrix/donate/donate.php$sponsors
dreport_is_storableinclude/zot.php$dr
drop_iteminclude/items.php$arr
enotifyinclude/enotify.php$h
enotify_mailinclude/enotify.php$datarray
enotify_storeinclude/enotify.php$datarray
event_createdinclude/event.php$event[id]
event_updatedinclude/event.php$event[id]
externals_url_selectinclude/externals.php$arr
feature_enabledinclude/features.php$arr
feature_settingsmod/settings.php$settings_addons
feature_settings_postmod/settings.php$_POST
followinclude/follow.php$arr
followinclude/follow.php$arr
follow_allowinclude/follow.php$x
gender_selectorinclude/profile_selectors.php$select
gender_selector_mininclude/profile_selectors.php$select
generate_mapinclude/text.php$arr
generate_named_mapinclude/text.php$arr
get_all_api_permsinclude/permissions.php$arr
get_all_permsinclude/permissions.php$arr
get_featuresinclude/features.php$arr
get_role_permsinclude/permissions.php$ret
get_widgetsboot.php$arr
get_widgetsboot.php$arr
global_permissionsinclude/permissions.php$ret
home_contentmod/home.php$o
home_initmod/home.php$ret
hostxrdmod/hostxrd.php$arr
html2bbcodeinclude/html2bbcode.php$message
identity_basic_exportinclude/identity.php$addon
import_author_xchaninclude/items.php$arr
import_channelmod/import.php$addon
import_directory_profileinclude/zot.php$d
import_xchaninclude/zot.php$arr
item_photo_menuinclude/conversation.php$args
item_storeinclude/items.php$d
item_storeinclude/items.php$arr
item_store_updateinclude/items.php$d
item_translateinclude/items.php$translate
item_translateinclude/items.php$translate
jot_networksinclude/acl_selectors.php$jotnets
jot_networksinclude/conversation.php$jotnets
jot_networksmod/editblock.php$jotnets
jot_networksmod/editpost.php$jotnets
jot_networksmod/editwebpage.php$jotnets
jot_networksmod/editlayout.php$jotnets
jot_toolinclude/conversation.php$jotplugins
jot_toolmod/editblock.php$jotplugins
jot_toolmod/editpost.php$jotplugins
jot_toolmod/editwebpage.php$jotplugins
jot_toolmod/editlayout.php$jotplugins
load_pdlboot.php$arr
local_dir_updateinclude/dir_fns.php$arr
logged_ininclude/oauth.php$a->user
logged_ininclude/api.php$a->user
logged_ininclude/security.php$a->account
logged_ininclude/security.php$user_record
logging_outinclude/auth.php$args
login_hookboot.php$o
magic_authmod/magic.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_successmod/post.php$arr
main_sliderinclude/widgets.php$arr
marital_selectorinclude/profile_selectors.php$select
marital_selector_mininclude/profile_selectors.php$select
module_loadedindex.php$x
mood_verbsinclude/text.php$arr
navinclude/nav.php$x
network_content_initmod/network.php$arr
network_pingmod/ping.php$arr
network_tabsinclude/conversation.php$arr
network_to_nameinclude/contact_selectors.php$nets
notifier_endinclude/notifier.php$target_item
notifier_hubinclude/notifier.php$narr
notifier_normalinclude/deliver_hooks.php$r[0]
obj_verbsinclude/taxonomy.php$arr
oembed_probeinclude/oembed.php$x
page_content_topindex.php$a->page[content]
page_endindex.php$a->page[content]
page_headerinclude/nav.php$a->page[nav]
parse_atominclude/items.php$arr
parse_linkmod/linkinfo.php$arr
pdl_selectorinclude/comanche.php$arr
perm_is_allowedinclude/permissions.php$arr
permissions_createinclude/notifier.php$perm_update
permissions_updateinclude/notifier.php$perm_update
personal_xrdmod/xrd.php$arr
photo_post_endinclude/photos.php$ret
photo_post_endinclude/photos.php$ret
photo_upload_begininclude/attach.php$arr
photo_upload_begininclude/photos.php$args
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_fileinclude/attach.php$f
photo_upload_fileinclude/photos.php$f
photo_upload_formmod/photos.php$ret
poke_verbsinclude/text.php$arr
post_localinclude/zot.php$arr
post_localinclude/items.php$arr
post_localmod/item.php$datarray
post_local_endinclude/items.php$arr
post_local_endinclude/attach.php$arr
post_local_endinclude/attach.php$arr
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endmod/mood.php$arr
post_local_endmod/like.php$arr
post_local_endmod/item.php$datarray
post_local_endmod/subthread.php$arr
post_local_startmod/item.php$_REQUEST
post_mailinclude/items.php$arr
post_mail_endinclude/items.php$arr
post_remoteinclude/items.php$arr
post_remote_endinclude/items.php$arr
post_remote_updateinclude/items.php$arr
post_remote_update_endinclude/items.php$arr
prepare_bodyinclude/text.php$prep_arr
prepare_body_finalinclude/text.php$prep_arr
prepare_body_initinclude/text.php$item
probe_well_knowninclude/probe.php$ret
proc_runboot.php$arr
process_channel_sync_deliveryinclude/zot.php$addon
profile_advancedmod/profile.php$o
profile_editmod/profiles.php$arr
profile_photo_content_endmod/profile_photo.php$o
profile_postmod/profiles.php$_POST
profile_sidebarinclude/identity.php$arr
profile_sidebar_enterinclude/identity.php$profile
profile_tabsinclude/conversation.php$arr
register_accountinclude/account.php$result
render_locationinclude/conversation.php$locate
replace_macrosinclude/text.php$arr
reverse_magic_authmod/rmagic.php$arr
settings_accountmod/settings.php$_POST
settings_formmod/settings.php$o
settings_postmod/settings.php$_POST
sexpref_selectorinclude/profile_selectors.php$select
sexpref_selector_mininclude/profile_selectors.php$select
smilieinclude/text.php$params
smilieextend/addon/matrix/smileybutton/smileybutton.php$params
taggedinclude/items.php$arr
validate_channelnameinclude/identity.php$arr
webfingermod/wfinger.php$arr
well_knownmod/_well_known.php$arr
zidinclude/identity.php$arr
zid_initinclude/identity.php$arr
zot_fingerinclude/zot.php$ret
\ No newline at end of file diff --git a/util/generate-hooks-index/.gitignore b/util/generate-hooks-index/.gitignore new file mode 100644 index 000000000..c53038ec0 --- /dev/null +++ b/util/generate-hooks-index/.gitignore @@ -0,0 +1,11 @@ +/target +/classes +/checkouts +pom.xml +pom.xml.asc +*.jar +*.class +/.lein-* +/.nrepl-port +.hgignore +.hg/ diff --git a/util/generate-hooks-index/CHANGELOG.md b/util/generate-hooks-index/CHANGELOG.md new file mode 100644 index 000000000..5e3bde1c9 --- /dev/null +++ b/util/generate-hooks-index/CHANGELOG.md @@ -0,0 +1,24 @@ +# Change Log +All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/). + +## [Unreleased][unreleased] +### Changed +- Add a new arity to `make-widget-async` to provide a different widget shape. + +## [0.1.1] - 2015-11-03 +### Changed +- Documentation on how to make the widgets. + +### Removed +- `make-widget-sync` - we're all async, all the time. + +### Fixed +- Fixed widget maker to keep working when daylight savings switches over. + +## 0.1.0 - 2015-11-03 +### Added +- Files from the new template. +- Widget maker public API - `make-widget-sync`. + +[unreleased]: https://github.com/your-name/generate-hooks-index/compare/0.1.1...HEAD +[0.1.1]: https://github.com/your-name/generate-hooks-index/compare/0.1.0...0.1.1 diff --git a/util/generate-hooks-index/LICENSE b/util/generate-hooks-index/LICENSE new file mode 100644 index 000000000..7689f30ef --- /dev/null +++ b/util/generate-hooks-index/LICENSE @@ -0,0 +1,214 @@ +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and +documentation distributed under this Agreement, and + +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from and are +distributed by that particular Contributor. A Contribution 'originates' from +a Contributor if it was added to the Program by such Contributor itself or +anyone acting on such Contributor's behalf. Contributions do not include +additions to the Program which: (i) are separate modules of software +distributed in conjunction with the Program under their own license +agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free copyright license to +reproduce, prepare derivative works of, publicly display, publicly perform, +distribute and sublicense the Contribution of such Contributor, if any, and +such derivative works, in source code and object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free patent license under +Licensed Patents to make, use, sell, offer to sell, import and otherwise +transfer the Contribution of such Contributor, if any, in source code and +object code form. This patent license shall apply to the combination of the +Contribution and the Program if, at the time the Contribution is added by the +Contributor, such addition of the Contribution causes such combination to be +covered by the Licensed Patents. The patent license shall not apply to any +other combinations which include the Contribution. No hardware per se is +licensed hereunder. + +c) Recipient understands that although each Contributor grants the licenses +to its Contributions set forth herein, no assurances are provided by any +Contributor that the Program does not infringe the patent or other +intellectual property rights of any other entity. Each Contributor disclaims +any liability to Recipient for claims brought by any other entity based on +infringement of intellectual property rights or otherwise. As a condition to +exercising the rights and licenses granted hereunder, each Recipient hereby +assumes sole responsibility to secure any other intellectual property rights +needed, if any. For example, if a third party patent license is required to +allow Recipient to distribute the Program, it is Recipient's responsibility +to acquire that license before distributing the Program. + +d) Each Contributor represents that to its knowledge it has sufficient +copyright rights in its Contribution, if any, to grant the copyright license +set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under +its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability for +damages, including direct, indirect, special, incidental and consequential +damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement are offered +by that Contributor alone and not by any other party; and + +iv) states that source code for the Program is available from such +Contributor, and informs licensees how to obtain it in a reasonable manner on +or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within +the Program. + +Each Contributor must identify itself as the originator of its Contribution, +if any, in a manner that reasonably allows subsequent Recipients to identify +the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a +manner which does not create potential liability for other Contributors. +Therefore, if a Contributor includes the Program in a commercial product +offering, such Contributor ("Commercial Contributor") hereby agrees to defend +and indemnify every other Contributor ("Indemnified Contributor") against any +losses, damages and costs (collectively "Losses") arising from claims, +lawsuits and other legal actions brought by a third party against the +Indemnified Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the Program in +a commercial product offering. The obligations in this section do not apply +to any claims or Losses relating to any actual or alleged intellectual +property infringement. In order to qualify, an Indemnified Contributor must: +a) promptly notify the Commercial Contributor in writing of such claim, and +b) allow the Commercial Contributor tocontrol, and cooperate with the +Commercial Contributor in, the defense and any related settlement +negotiations. The Indemnified Contributor may participate in any such claim +at its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If +that Commercial Contributor then makes performance claims, or offers +warranties related to Product X, those performance claims and warranties are +such Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON +AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER +EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR +CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the +appropriateness of using and distributing the Program and assumes all risks +associated with its exercise of rights under this Agreement , including but +not limited to the risks and costs of program errors, compliance with +applicable laws, damage to or loss of data, programs or equipment, and +unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION +LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of the +remainder of the terms of this Agreement, and without further action by the +parties hereto, such provision shall be reformed to the minimum extent +necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Program itself +(excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted +under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and +does not cure such failure in a reasonable period of time after becoming +aware of such noncompliance. If all Recipient's rights under this Agreement +terminate, Recipient agrees to cease use and distribution of the Program as +soon as reasonably practicable. However, Recipient's obligations under this +Agreement and any licenses granted by Recipient relating to the Program shall +continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to +time. No one other than the Agreement Steward has the right to modify this +Agreement. The Eclipse Foundation is the initial Agreement Steward. The +Eclipse Foundation may assign the responsibility to serve as the Agreement +Steward to a suitable separate entity. Each new version of the Agreement will +be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the +Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly +stated in Sections 2(a) and 2(b) above, Recipient receives no rights or +licenses to the intellectual property of any Contributor under this +Agreement, whether expressly, by implication, estoppel or otherwise. All +rights in the Program not expressly granted under this Agreement are +reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial +in any resulting litigation. diff --git a/util/generate-hooks-index/README.md b/util/generate-hooks-index/README.md new file mode 100644 index 000000000..a3d4f7666 --- /dev/null +++ b/util/generate-hooks-index/README.md @@ -0,0 +1,30 @@ +# Generate hooks + +This program generates hooks.html documentation from the Hubzilla source. + +## Usage + +Download and install leiningen + +Change directory into hubzilla/util/generate-hooks-index + +At shell prompt, do: + +```sh +lein run +``` + +Hooks docs will get dumped into hubzilla/doc/hooks.html + +## Requirements + +* JVM like OpenJDK etc + +* [Leiningen](http://leiningen.org/) + +## License + +Copyright © 2015 ken restivo (ken@restivo.org) + +Distributed under the Eclipse Public License either version 1.0 or (at +your option) any later version. diff --git a/util/generate-hooks-index/doc/intro.md b/util/generate-hooks-index/doc/intro.md new file mode 100644 index 000000000..203ef8b8c --- /dev/null +++ b/util/generate-hooks-index/doc/intro.md @@ -0,0 +1,3 @@ +# Introduction to generate-hooks-index + +TODO: write [great documentation](http://jacobian.org/writing/what-to-write/) diff --git a/util/generate-hooks-index/project.clj b/util/generate-hooks-index/project.clj new file mode 100644 index 000000000..730fe76d8 --- /dev/null +++ b/util/generate-hooks-index/project.clj @@ -0,0 +1,10 @@ +(defproject generate-hooks-index "0.1.0-SNAPSHOT" + :description "Generates Hooks docs for Hubzilla" + :url "https://github.com/redmatrix/hubzilla" + :license {:name "Eclipse Public License" + :url "http://www.eclipse.org/legal/epl-v10.html"} + :dependencies [[org.clojure/clojure "1.7.0"] + [com.taoensso/timbre "4.1.2"] + [hiccup "1.0.0"]] + :main generate-hooks-index.core) + diff --git a/util/generate-hooks-index/src/generate_hooks_index/core.clj b/util/generate-hooks-index/src/generate_hooks_index/core.clj new file mode 100644 index 000000000..ac9e72f90 --- /dev/null +++ b/util/generate-hooks-index/src/generate_hooks_index/core.clj @@ -0,0 +1,82 @@ +(ns generate-hooks-index.core + (:require [clojure.string :as str] + [hiccup.core :as h] + [taoensso.timbre :as log] + [clojure.java.shell :as sh]) + (:gen-class)) + +(log/set-level! :info) + +(defn clean-fn-arg + [s] + (-> s + (str/replace #"'" "") + (str/replace #"\"" "") + str/trim)) + +(defn check-fn-args + [xs] + (when (-> xs first empty?) + (throw (Exception. "empty function"))) + (map clean-fn-arg xs)) + + +(defn get-fn-arg + [s] + (->> s + (re-matches #".*call_hooks\((.+)\,(.*)\).*") + rest + check-fn-args)) + + + +(defn fix-path + [path file] + (str/replace file path "")) + + +(defn show-hooks + [path] + (for [s (-> (sh/sh "rgrep" "call_hooks" path) + :out + str/split-lines) + :let [[file hook] (str/split s #"\t*:")]] + (try + (-> (zipmap [:function :arg] (get-fn-arg hook)) + (assoc :file (fix-path path file))) + (catch Exception e + (log/debug e s file hook))))) + + + +(defn hiccupy + [path] + [:div + [:h3 "Hooks"] + [:p "Generated " (-> (java.util.Date.) str)] + [:table + [:tr (map #(vector :td %) ["Function" "Source File" "Arg"])] + (for [{:keys [function arg file]} + (->> path + show-hooks + (sort-by :function))] + [:tr (map #(vector :td (h/h %)) [function file arg])])]]) + + +(defn make-hook-docs + [path-to-hubzillla] + (->> path-to-hubzillla + hiccupy + h/html + (spit (str path-to-hubzillla "doc/hooks.html")))) + + +(defn -main + [& args] + (log/info "Starting..") + (make-hook-docs (str (System/getProperty "user.dir") "/../../")) + (log/info "Done!") + (System/exit 0)) + + + diff --git a/util/generate-hooks-index/test/generate_hooks_index/core_test.clj b/util/generate-hooks-index/test/generate_hooks_index/core_test.clj new file mode 100644 index 000000000..913864ce4 --- /dev/null +++ b/util/generate-hooks-index/test/generate_hooks_index/core_test.clj @@ -0,0 +1,7 @@ +(ns generate-hooks-index.core-test + (:require [clojure.test :refer :all] + [generate-hooks-index.core :refer :all])) + +(deftest a-test + (testing "FIXME, I fail." + (is (= 0 1)))) From 4bd0e083d16d622c9ed36c810a7fd729830dcdd6 Mon Sep 17 00:00:00 2001 From: ken restivo Date: Tue, 3 Nov 2015 21:19:16 -0800 Subject: [PATCH 079/150] Put generated date at end of data. --- doc/hooks.html | 2 +- util/generate-hooks-index/src/generate_hooks_index/core.clj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/hooks.html b/doc/hooks.html index da46b399c..c05de58ef 100644 --- a/doc/hooks.html +++ b/doc/hooks.html @@ -1 +1 @@ -

Hooks

Generated Tue Nov 03 21:14:33 PST 2015

FunctionSource FileArg
$a->module . _mod_aftercontentindex.php$arr
$a->module . _mod_contentindex.php$arr
$a->module . _mod_initindex.php$placeholder
$a->module . _mod_postindex.php$_POST
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$nameinclude/plugin.php&$data = null
about_hookmod/siteinfo.php$o
accept_followmod/connedit.php$arr
account_downgradeinclude/account.php$ret
account_downgradeinclude/account.php$ret
account_settingsmod/settings.php$account_settings
activity_receivedinclude/zot.php$parr
affinity_labelsinclude/widgets.php$labels
affinity_labelsmod/connedit.php$labels
api_perm_is_allowedinclude/permissions.php$arr
app_menuindex.php$arr
atom_authorinclude/items.php$o
atom_entryinclude/items.php$o
atom_feedinclude/items.php$atom
atom_feed_endinclude/items.php$atom
attach_upload_fileinclude/attach.php$f
authenticateinclude/auth.php$addon_auth
avatar_lookupinclude/network.php$avatar
bb2diasporainclude/bb2diaspora.php$Text
bbcodeinclude/bbcode.php$Text
channel_removeinclude/Contact.php$r[0]
chat_messageinclude/chat.php$arr
chat_postmod/chatsvc.php$arr
check_account_emailinclude/account.php$arr
check_account_inviteinclude/account.php$arr
check_account_passwordinclude/account.php$arr
connect_premiummod/connect.php$arr
connector_settingsmod/settings.php$settings_connectors
construct_pageboot.php$arr
contact_block_endinclude/text.php$arr
contact_editmod/connedit.php$arr
contact_edit_postmod/connedit.php$_POST
contact_select_optionsinclude/acl_selectors.php$x
conversation_startinclude/conversation.php$cb
create_identityinclude/identity.php$newuid
croninclude/cronhooks.php$d
cron_dailyinclude/poller.phpdatetime_convert()
cron_weeklyinclude/poller.phpdatetime_convert()
directory_itemmod/directory.php$arr
discover_by_webbieinclude/network.php$arr
display_iteminclude/ItemObject.php$arr
display_iteminclude/conversation.php$arr
display_settingsmod/settings.php$o
display_settings_postmod/settings.php$_POST
donate_contributorsextend/addon/matrix/donate/donate.php$contributors
donate_pluginextend/addon/matrix/donate/donate.php$o
donate_sponsorsextend/addon/matrix/donate/donate.php$sponsors
dreport_is_storableinclude/zot.php$dr
drop_iteminclude/items.php$arr
enotifyinclude/enotify.php$h
enotify_mailinclude/enotify.php$datarray
enotify_storeinclude/enotify.php$datarray
event_createdinclude/event.php$event[id]
event_updatedinclude/event.php$event[id]
externals_url_selectinclude/externals.php$arr
feature_enabledinclude/features.php$arr
feature_settingsmod/settings.php$settings_addons
feature_settings_postmod/settings.php$_POST
followinclude/follow.php$arr
followinclude/follow.php$arr
follow_allowinclude/follow.php$x
gender_selectorinclude/profile_selectors.php$select
gender_selector_mininclude/profile_selectors.php$select
generate_mapinclude/text.php$arr
generate_named_mapinclude/text.php$arr
get_all_api_permsinclude/permissions.php$arr
get_all_permsinclude/permissions.php$arr
get_featuresinclude/features.php$arr
get_role_permsinclude/permissions.php$ret
get_widgetsboot.php$arr
get_widgetsboot.php$arr
global_permissionsinclude/permissions.php$ret
home_contentmod/home.php$o
home_initmod/home.php$ret
hostxrdmod/hostxrd.php$arr
html2bbcodeinclude/html2bbcode.php$message
identity_basic_exportinclude/identity.php$addon
import_author_xchaninclude/items.php$arr
import_channelmod/import.php$addon
import_directory_profileinclude/zot.php$d
import_xchaninclude/zot.php$arr
item_photo_menuinclude/conversation.php$args
item_storeinclude/items.php$d
item_storeinclude/items.php$arr
item_store_updateinclude/items.php$d
item_translateinclude/items.php$translate
item_translateinclude/items.php$translate
jot_networksinclude/acl_selectors.php$jotnets
jot_networksinclude/conversation.php$jotnets
jot_networksmod/editblock.php$jotnets
jot_networksmod/editpost.php$jotnets
jot_networksmod/editwebpage.php$jotnets
jot_networksmod/editlayout.php$jotnets
jot_toolinclude/conversation.php$jotplugins
jot_toolmod/editblock.php$jotplugins
jot_toolmod/editpost.php$jotplugins
jot_toolmod/editwebpage.php$jotplugins
jot_toolmod/editlayout.php$jotplugins
load_pdlboot.php$arr
local_dir_updateinclude/dir_fns.php$arr
logged_ininclude/oauth.php$a->user
logged_ininclude/api.php$a->user
logged_ininclude/security.php$a->account
logged_ininclude/security.php$user_record
logging_outinclude/auth.php$args
login_hookboot.php$o
magic_authmod/magic.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_successmod/post.php$arr
main_sliderinclude/widgets.php$arr
marital_selectorinclude/profile_selectors.php$select
marital_selector_mininclude/profile_selectors.php$select
module_loadedindex.php$x
mood_verbsinclude/text.php$arr
navinclude/nav.php$x
network_content_initmod/network.php$arr
network_pingmod/ping.php$arr
network_tabsinclude/conversation.php$arr
network_to_nameinclude/contact_selectors.php$nets
notifier_endinclude/notifier.php$target_item
notifier_hubinclude/notifier.php$narr
notifier_normalinclude/deliver_hooks.php$r[0]
obj_verbsinclude/taxonomy.php$arr
oembed_probeinclude/oembed.php$x
page_content_topindex.php$a->page[content]
page_endindex.php$a->page[content]
page_headerinclude/nav.php$a->page[nav]
parse_atominclude/items.php$arr
parse_linkmod/linkinfo.php$arr
pdl_selectorinclude/comanche.php$arr
perm_is_allowedinclude/permissions.php$arr
permissions_createinclude/notifier.php$perm_update
permissions_updateinclude/notifier.php$perm_update
personal_xrdmod/xrd.php$arr
photo_post_endinclude/photos.php$ret
photo_post_endinclude/photos.php$ret
photo_upload_begininclude/attach.php$arr
photo_upload_begininclude/photos.php$args
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_fileinclude/attach.php$f
photo_upload_fileinclude/photos.php$f
photo_upload_formmod/photos.php$ret
poke_verbsinclude/text.php$arr
post_localinclude/zot.php$arr
post_localinclude/items.php$arr
post_localmod/item.php$datarray
post_local_endinclude/items.php$arr
post_local_endinclude/attach.php$arr
post_local_endinclude/attach.php$arr
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endmod/mood.php$arr
post_local_endmod/like.php$arr
post_local_endmod/item.php$datarray
post_local_endmod/subthread.php$arr
post_local_startmod/item.php$_REQUEST
post_mailinclude/items.php$arr
post_mail_endinclude/items.php$arr
post_remoteinclude/items.php$arr
post_remote_endinclude/items.php$arr
post_remote_updateinclude/items.php$arr
post_remote_update_endinclude/items.php$arr
prepare_bodyinclude/text.php$prep_arr
prepare_body_finalinclude/text.php$prep_arr
prepare_body_initinclude/text.php$item
probe_well_knowninclude/probe.php$ret
proc_runboot.php$arr
process_channel_sync_deliveryinclude/zot.php$addon
profile_advancedmod/profile.php$o
profile_editmod/profiles.php$arr
profile_photo_content_endmod/profile_photo.php$o
profile_postmod/profiles.php$_POST
profile_sidebarinclude/identity.php$arr
profile_sidebar_enterinclude/identity.php$profile
profile_tabsinclude/conversation.php$arr
register_accountinclude/account.php$result
render_locationinclude/conversation.php$locate
replace_macrosinclude/text.php$arr
reverse_magic_authmod/rmagic.php$arr
settings_accountmod/settings.php$_POST
settings_formmod/settings.php$o
settings_postmod/settings.php$_POST
sexpref_selectorinclude/profile_selectors.php$select
sexpref_selector_mininclude/profile_selectors.php$select
smilieinclude/text.php$params
smilieextend/addon/matrix/smileybutton/smileybutton.php$params
taggedinclude/items.php$arr
validate_channelnameinclude/identity.php$arr
webfingermod/wfinger.php$arr
well_knownmod/_well_known.php$arr
zidinclude/identity.php$arr
zid_initinclude/identity.php$arr
zot_fingerinclude/zot.php$ret
\ No newline at end of file +

Hooks

FunctionSource FileArg
$a->module . _mod_aftercontentindex.php$arr
$a->module . _mod_contentindex.php$arr
$a->module . _mod_initindex.php$placeholder
$a->module . _mod_postindex.php$_POST
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _post_ . $selnameinclude/acl_selectors.php$o
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$a->module . _pre_ . $selnameinclude/acl_selectors.php$arr
$nameinclude/plugin.php&$data = null
about_hookmod/siteinfo.php$o
accept_followmod/connedit.php$arr
account_downgradeinclude/account.php$ret
account_downgradeinclude/account.php$ret
account_settingsmod/settings.php$account_settings
activity_receivedinclude/zot.php$parr
affinity_labelsinclude/widgets.php$labels
affinity_labelsmod/connedit.php$labels
api_perm_is_allowedinclude/permissions.php$arr
app_menuindex.php$arr
atom_authorinclude/items.php$o
atom_entryinclude/items.php$o
atom_feedinclude/items.php$atom
atom_feed_endinclude/items.php$atom
attach_upload_fileinclude/attach.php$f
authenticateinclude/auth.php$addon_auth
avatar_lookupinclude/network.php$avatar
bb2diasporainclude/bb2diaspora.php$Text
bbcodeinclude/bbcode.php$Text
channel_removeinclude/Contact.php$r[0]
chat_messageinclude/chat.php$arr
chat_postmod/chatsvc.php$arr
check_account_emailinclude/account.php$arr
check_account_inviteinclude/account.php$arr
check_account_passwordinclude/account.php$arr
connect_premiummod/connect.php$arr
connector_settingsmod/settings.php$settings_connectors
construct_pageboot.php$arr
contact_block_endinclude/text.php$arr
contact_editmod/connedit.php$arr
contact_edit_postmod/connedit.php$_POST
contact_select_optionsinclude/acl_selectors.php$x
conversation_startinclude/conversation.php$cb
create_identityinclude/identity.php$newuid
croninclude/cronhooks.php$d
cron_dailyinclude/poller.phpdatetime_convert()
cron_weeklyinclude/poller.phpdatetime_convert()
directory_itemmod/directory.php$arr
discover_by_webbieinclude/network.php$arr
display_iteminclude/ItemObject.php$arr
display_iteminclude/conversation.php$arr
display_settingsmod/settings.php$o
display_settings_postmod/settings.php$_POST
donate_contributorsextend/addon/matrix/donate/donate.php$contributors
donate_pluginextend/addon/matrix/donate/donate.php$o
donate_sponsorsextend/addon/matrix/donate/donate.php$sponsors
dreport_is_storableinclude/zot.php$dr
drop_iteminclude/items.php$arr
enotifyinclude/enotify.php$h
enotify_mailinclude/enotify.php$datarray
enotify_storeinclude/enotify.php$datarray
event_createdinclude/event.php$event[id]
event_updatedinclude/event.php$event[id]
externals_url_selectinclude/externals.php$arr
feature_enabledinclude/features.php$arr
feature_settingsmod/settings.php$settings_addons
feature_settings_postmod/settings.php$_POST
followinclude/follow.php$arr
followinclude/follow.php$arr
follow_allowinclude/follow.php$x
gender_selectorinclude/profile_selectors.php$select
gender_selector_mininclude/profile_selectors.php$select
generate_mapinclude/text.php$arr
generate_named_mapinclude/text.php$arr
get_all_api_permsinclude/permissions.php$arr
get_all_permsinclude/permissions.php$arr
get_featuresinclude/features.php$arr
get_role_permsinclude/permissions.php$ret
get_widgetsboot.php$arr
get_widgetsboot.php$arr
global_permissionsinclude/permissions.php$ret
home_contentmod/home.php$o
home_initmod/home.php$ret
hostxrdmod/hostxrd.php$arr
html2bbcodeinclude/html2bbcode.php$message
identity_basic_exportinclude/identity.php$addon
import_author_xchaninclude/items.php$arr
import_channelmod/import.php$addon
import_directory_profileinclude/zot.php$d
import_xchaninclude/zot.php$arr
item_photo_menuinclude/conversation.php$args
item_storeinclude/items.php$d
item_storeinclude/items.php$arr
item_store_updateinclude/items.php$d
item_translateinclude/items.php$translate
item_translateinclude/items.php$translate
jot_networksinclude/acl_selectors.php$jotnets
jot_networksinclude/conversation.php$jotnets
jot_networksmod/editblock.php$jotnets
jot_networksmod/editpost.php$jotnets
jot_networksmod/editwebpage.php$jotnets
jot_networksmod/editlayout.php$jotnets
jot_toolinclude/conversation.php$jotplugins
jot_toolmod/editblock.php$jotplugins
jot_toolmod/editpost.php$jotplugins
jot_toolmod/editwebpage.php$jotplugins
jot_toolmod/editlayout.php$jotplugins
load_pdlboot.php$arr
local_dir_updateinclude/dir_fns.php$arr
logged_ininclude/oauth.php$a->user
logged_ininclude/api.php$a->user
logged_ininclude/security.php$a->account
logged_ininclude/security.php$user_record
logging_outinclude/auth.php$args
login_hookboot.php$o
magic_authmod/magic.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_openid_successmod/openid.php$arr
magic_auth_successmod/post.php$arr
main_sliderinclude/widgets.php$arr
marital_selectorinclude/profile_selectors.php$select
marital_selector_mininclude/profile_selectors.php$select
module_loadedindex.php$x
mood_verbsinclude/text.php$arr
navinclude/nav.php$x
network_content_initmod/network.php$arr
network_pingmod/ping.php$arr
network_tabsinclude/conversation.php$arr
network_to_nameinclude/contact_selectors.php$nets
notifier_endinclude/notifier.php$target_item
notifier_hubinclude/notifier.php$narr
notifier_normalinclude/deliver_hooks.php$r[0]
obj_verbsinclude/taxonomy.php$arr
oembed_probeinclude/oembed.php$x
page_content_topindex.php$a->page[content]
page_endindex.php$a->page[content]
page_headerinclude/nav.php$a->page[nav]
parse_atominclude/items.php$arr
parse_linkmod/linkinfo.php$arr
pdl_selectorinclude/comanche.php$arr
perm_is_allowedinclude/permissions.php$arr
permissions_createinclude/notifier.php$perm_update
permissions_updateinclude/notifier.php$perm_update
personal_xrdmod/xrd.php$arr
photo_post_endinclude/photos.php$ret
photo_post_endinclude/photos.php$ret
photo_upload_begininclude/attach.php$arr
photo_upload_begininclude/photos.php$args
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/attach.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_endinclude/photos.php$ret
photo_upload_fileinclude/attach.php$f
photo_upload_fileinclude/photos.php$f
photo_upload_formmod/photos.php$ret
poke_verbsinclude/text.php$arr
post_localinclude/zot.php$arr
post_localinclude/items.php$arr
post_localmod/item.php$datarray
post_local_endinclude/items.php$arr
post_local_endinclude/attach.php$arr
post_local_endinclude/attach.php$arr
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endextend/addon/matrix/randpost/randpost.php$x
post_local_endmod/mood.php$arr
post_local_endmod/like.php$arr
post_local_endmod/item.php$datarray
post_local_endmod/subthread.php$arr
post_local_startmod/item.php$_REQUEST
post_mailinclude/items.php$arr
post_mail_endinclude/items.php$arr
post_remoteinclude/items.php$arr
post_remote_endinclude/items.php$arr
post_remote_updateinclude/items.php$arr
post_remote_update_endinclude/items.php$arr
prepare_bodyinclude/text.php$prep_arr
prepare_body_finalinclude/text.php$prep_arr
prepare_body_initinclude/text.php$item
probe_well_knowninclude/probe.php$ret
proc_runboot.php$arr
process_channel_sync_deliveryinclude/zot.php$addon
profile_advancedmod/profile.php$o
profile_editmod/profiles.php$arr
profile_photo_content_endmod/profile_photo.php$o
profile_postmod/profiles.php$_POST
profile_sidebarinclude/identity.php$arr
profile_sidebar_enterinclude/identity.php$profile
profile_tabsinclude/conversation.php$arr
register_accountinclude/account.php$result
render_locationinclude/conversation.php$locate
replace_macrosinclude/text.php$arr
reverse_magic_authmod/rmagic.php$arr
settings_accountmod/settings.php$_POST
settings_formmod/settings.php$o
settings_postmod/settings.php$_POST
sexpref_selectorinclude/profile_selectors.php$select
sexpref_selector_mininclude/profile_selectors.php$select
smilieinclude/text.php$params
smilieextend/addon/matrix/smileybutton/smileybutton.php$params
taggedinclude/items.php$arr
validate_channelnameinclude/identity.php$arr
webfingermod/wfinger.php$arr
well_knownmod/_well_known.php$arr
zidinclude/identity.php$arr
zid_initinclude/identity.php$arr
zot_fingerinclude/zot.php$ret

Generated Tue Nov 03 21:19:02 PST 2015

\ No newline at end of file diff --git a/util/generate-hooks-index/src/generate_hooks_index/core.clj b/util/generate-hooks-index/src/generate_hooks_index/core.clj index ac9e72f90..2112647b0 100644 --- a/util/generate-hooks-index/src/generate_hooks_index/core.clj +++ b/util/generate-hooks-index/src/generate_hooks_index/core.clj @@ -53,14 +53,14 @@ [path] [:div [:h3 "Hooks"] - [:p "Generated " (-> (java.util.Date.) str)] [:table [:tr (map #(vector :td %) ["Function" "Source File" "Arg"])] (for [{:keys [function arg file]} (->> path show-hooks (sort-by :function))] - [:tr (map #(vector :td (h/h %)) [function file arg])])]]) + [:tr (map #(vector :td (h/h %)) [function file arg])])] + [:p "Generated " (-> (java.util.Date.) str)]]) (defn make-hook-docs From b6b2420ff77fb1c19306dfc8be2b916e5a34c375 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Tue, 3 Nov 2015 23:54:53 -0800 Subject: [PATCH 080/150] protocol upgrade --- include/zot.php | 3 +- mod/post.php | 94 ++++++++++++++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 38 deletions(-) diff --git a/include/zot.php b/include/zot.php index a23742fac..75ce40ffc 100644 --- a/include/zot.php +++ b/include/zot.php @@ -570,11 +570,12 @@ function zot_gethub($arr,$multiple = false) { } $limit = (($multiple) ? '' : ' limit 1 '); + $sitekey = ((array_key_exists('sitekey',$arr) && $arr['sitekey']) ? " and hubloc_sitekey = '" . protect_sprintf($arr['sitekey']) . "' " : ''); $r = q("select * from hubloc where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_url = '%s' and hubloc_url_sig = '%s' - $limit", + $sitekey $limit", dbesc($arr['guid']), dbesc($arr['guid_sig']), dbesc($arr['url']), diff --git a/mod/post.php b/mod/post.php index 682e04818..c68ce9646 100644 --- a/mod/post.php +++ b/mod/post.php @@ -673,16 +673,16 @@ function post_post(&$a) { /* Check if the sender is already verified here */ - $hub = zot_gethub($sender); + $hubs = zot_gethub($sender,true); - if (! $hub) { + if (! $hubs) { /* Have never seen this guid or this guid coming from this location. Check it and register it. */ // (!!) this will validate the sender $result = zot_register_hub($sender); - if ((! $result['success']) || (! ($hub = zot_gethub($sender)))) { + if ((! $result['success']) || (! ($hubs = zot_gethub($sender,true)))) { $ret['message'] = 'Hub not available.'; logger('mod_zot: no hub'); json_return_and_die($ret); @@ -690,47 +690,67 @@ function post_post(&$a) { } - // Update our DB to show when we last communicated successfully with this hub - // This will allow us to prune dead hubs from using up resources + foreach($hubs as $hub) { - $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d", - dbesc(datetime_convert()), - intval($hub['hubloc_id']) - ); + $sitekey = $hub['hubloc_sitekey']; - // a dead hub came back to life - reset any tombstones we might have + if(array_key_exists('sitekey',$sender) && $sender['sitekey']) { - if ($hub['hubloc_status'] & HUBLOC_OFFLINE) { - q("update hubloc set hubloc_status = (hubloc_status & ~%d) where hubloc_id = %d", - intval(HUBLOC_OFFLINE), - intval($hub['hubloc_id']) + /* + * This hub has now been proven to be valid. + * Any hub with the same URL and a different sitekey cannot be valid. + * Get rid of them (mark them deleted). There's a good chance they were re-installs. + */ + + q("update hubloc set hubloc_flags = ( hubloc_flags | %d ) where hubloc_url = '%s' and hubloc_sitekey != '%s' ", + intval(HUBLOC_FLAGS_DELETED), + dbesc($hub['hubloc_url']), + dbesc($sender['sitekey']) + ); + + $sitekey = $sender['sitekey']; + } + + // $sender['sitekey'] is a new addition to the protcol to distinguish + // hublocs coming from re-installed sites. Older sites will not provide + // this field and we have to still mark them valid, since we can't tell + // if this hubloc has the same sitekey as the packet we received. + + // Update our DB to show when we last communicated successfully with this hub + // This will allow us to prune dead hubs from using up resources + + $r = q("update hubloc set hubloc_connected = '%s' where hubloc_id = %d and hubloc_sitekey = '%s' ", + dbesc(datetime_convert()), + intval($hub['hubloc_id']), + dbesc($sitekey) ); - if ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_ORPHANCHECK) { - q("update hubloc set hubloc_flags = (hubloc_flags & ~%d) where hubloc_id = %d", - intval(HUBLOC_FLAGS_ORPHANCHECK), - intval($hub['hubloc_id']) + + // a dead hub came back to life - reset any tombstones we might have + + if ($hub['hubloc_status'] & HUBLOC_OFFLINE) { + q("update hubloc set hubloc_status = (hubloc_status & ~%d) where hubloc_id = %d and hubloc_sitekey = '%s' ", + intval(HUBLOC_OFFLINE), + intval($hub['hubloc_id']), + dbesc($sitekey) + ); + if ($r[0]['hubloc_flags'] & HUBLOC_FLAGS_ORPHANCHECK) { + q("update hubloc set hubloc_flags = (hubloc_flags & ~%d) where hubloc_id = %d and hubloc_sitekey = '%s' ", + intval(HUBLOC_FLAGS_ORPHANCHECK), + intval($hub['hubloc_id']), + dbesc($sitekey) + ); + } + + q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'", + intval(XCHAN_FLAGS_ORPHAN), + intval(XCHAN_FLAGS_ORPHAN), + dbesc($hub['hubloc_hash']) ); } - q("update xchan set xchan_flags = (xchan_flags & ~%d) where (xchan_flags & %d)>0 and xchan_hash = '%s'", - intval(XCHAN_FLAGS_ORPHAN), - intval(XCHAN_FLAGS_ORPHAN), - dbesc($hub['hubloc_hash']) - ); + + $connecting_url = $hub['hubloc_url']; } - - /* - * This hub has now been proven to be valid. - * Any hub with the same URL and a different sitekey cannot be valid. - * Get rid of them (mark them deleted). There's a good chance they were re-installs. - */ -// fixed in hubzilla with a protocol change -// q("update hubloc set hubloc_flags = ( hubloc_flags | %d ) where hubloc_url = '%s' and hubloc_sitekey != '%s' ", -// intval(HUBLOC_FLAGS_DELETED), -// dbesc($hub['hubloc_url']), -// dbesc($hub['hubloc_sitekey']) -// ); - /** @TODO check which hub is primary and take action if mismatched */ if (array_key_exists('recipients', $data)) @@ -932,7 +952,7 @@ function post_post(&$a) { if ($msgtype === 'notify') { - logger('notify received from ' . $hub['hubloc_url']); + logger('notify received from ' . $connecting_url); $async = get_config('system','queued_fetch'); From bf55a8e98c156491b59ffb06b07ddce3134af1d0 Mon Sep 17 00:00:00 2001 From: ken restivo Date: Wed, 4 Nov 2015 00:32:29 -0800 Subject: [PATCH 081/150] Add app object detailed example. --- doc/faq_developers.bb | 422 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 422 insertions(+) diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb index 027efe8f4..6b9231578 100644 --- a/doc/faq_developers.bb +++ b/doc/faq_developers.bb @@ -29,5 +29,427 @@ function foo() { +An example (large) &$a object showing some of its many members and structures is here: + +[code] { + "category": null, + "nav_sel": { + "home": null, + "community": null, + "contacts": null, + "directory": null, + "settings": null, + "notifications": null, + "intros": null, + "messages": null, + "register": null, + "manage": null, + "profiles": null, + "network": null, + "help": "active" + }, + "argc": 2, + "install": false, + "is_mobile": false, + "timezone": "America/Los_Angeles", + "sourcename": "", + "module_loaded": true, + "contacts": null, + "interactive": true, + "config": { + "system": { + "max_import_size": 200000, + "logfile": "/tmp/hubzilla.log", + "channels_active_monthly_stat": "3", + "last_expire_day": "4", + "loglevel": "4", + "sitename": "Hubzilla", + "access_policy": 0, + "directory_mode": 0, + "debugging": "1", + "verify_email": 1, + "register_text": "", + "urlverify": "687474703a2f2f6875627a696c6c61", + "register_policy": 2, + "theme": "redbasic", + "smarty3_folder": "/home/src/hubzilla/store/[data]/smarty3", + "channels_total_stat": "4", + "admin_email": "foo@bar.com", + "channels_active_halfyear_stat": "3", + "location_hash": "910792b7bf75296cbf238ae29a5493f3c78805812652d3f0396e88763a26ce1b", + "local_posts_stat": "63", + "lastpollcheck": "2015-11-03 07:40:38", + "baseurl": "http://hubzilla", + "config_loaded": true, + "pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuR4neYAxuWwZg34fqofU\nZg8y1YSTX39Tzhgcgn7QFCeH600NHJBHWXbPdS5imdYq6W+P1vtKxsVNLI9d01+j\ns3MF3amgEuJH0X+JLLjyittQksyAiukvh/o4MSit8mcYcXs8Dxaybe+KaY09N4ys\ndxKcn6EPlthUiQPJMPitybp4vYkw9LupWZOQWThz9ur6T5wnk9ehBIPFN8gYvKrT\nAG9RFfbq3y59rTOiSHNA2PIUMzo2HEh4QBVCvVolKt7GPhUM4Bze40VRe8ELZTPp\nyehNxEHyhHZfnC+XRVNlvSPXBU2vtE+zcok+5DXsKAqMt8YgFIThNEOLQKvff/lv\nsdGvk6jJZok7+9lKtYfwnNnRWf51aVVuSAO3aIIVLroLyhiji0KA7G5YRHeF1rNL\np88e8peMyUMCX2Svv1wudJzqOfWSvOpY0NLZrdGZXRN2/rXyHPRD/TtS3SNDdd7J\nYQUjyxGjF1/zB3xqvPr09s8tzXqJl9pZNcN9iz58oPBbTuGdUr8CJro/3nVHgkRf\nw7/zhapSW1UaroJjecrC9yWx5QUD3KNU51phsP9iHCFdMyPBdUHjmNvE5f7YJWBh\nO1rRKUoE3i+eHLYAWeYblFX7T+EKOCB2hd3NUrIqDL98OSpfDiZT7rf9PdcWCOY5\nuddm6KzwHjffl5kZd8MM8bMCAwEAAQ==\n-----END PUBLIC KEY-----\n", + "addon": "converse", + "lastpoll": "2015-11-04 07:40:01", + "php_path": "/usr/bin/php", + "allowed_themes": "redbasic", + "sellpage": "", + "prvkey": "-----BEGIN PRIVATE KEY-----\n-----END PRIVATE KEY-----\n", + "directory_server": "https://red.zottel.red", + "curl_ssl_ciphers": "ALL:!eNULL", + "db_version": "1158" + }, + "config": { + "config_loaded": true + }, + "feature": { + "config_loaded": true + }, + "2": { + "redbasic": { + "schema": "dark", + "comment_indent": "", + "toolicon_activecolour": "", + "item_colour": "", + "nav_gradient_top": "", + "nav_active_icon_colour": "", + "nav_active_gradient_top": "", + "top_photo": "", + "converse_width": "", + "nav_min_opacity": "", + "body_font_size": "", + "reply_photo": "", + "background_colour": "", + "radius": "", + "nav_gradient_bottom": "", + "toolicon_colour": "", + "nav_active_gradient_bottom": "", + "nav_icon_colour": "", + "narrow_navbar": "", + "nav_bg": "", + "comment_item_colour": "", + "config_loaded": true, + "banner_colour": "", + "comment_border_colour": "", + "align_left": "", + "font_size": "", + "font_colour": "", + "nav_bd": "", + "photo_shadow": "", + "background_image": "", + "link_colour": "" + }, + "system": { + "network_list_mode": "0", + "post_joingroup": "0", + "channel_list_mode": "0", + "title_tosource": "0", + "blocktags": "0", + "photo_path": "%Y-%m", + "suggestme": "0", + "autoperms": "0", + "hide_presence": "0", + "channel_divmore_height": "400", + "network_divmore_height": "400", + "post_profilechange": "0", + "channel_menu": "", + "always_show_in_notices": "0", + "use_browser_location": "0", + "update_interval": "80000", + "itemspage": "20", + "attach_path": "%Y-%m", + "permissions_role": "social", + "vnotify": "2047", + "post_newfriend": "0", + "config_loaded": true, + "no_smilies": "0", + "evdays": "3", + "user_scalable": "1" + } + } + }, + "layout": { + "region_aside": "\n<div class="widget"><h3>Documentation</h3><ul class="nav nav-pills nav-stacked"><li><a href="help/general">Project/Site Information</a></li><li><a href="help/members">For Members</a></li><li><a href="help/admins">For Administrators</a></li><li><a href="help/develop">For Developers</a></li></ul></div>\n" + }, + "is_sys": false, + "content": null, + "cid": null, + "profile_uid": 0, + "hooks": { + "construct_page": [ + [ + "addon/converse/converse.php", + "converse_content" + ] + ] + }, + "strings": [], + "js_sources": [ + "jquery.js", + "library/justifiedGallery/jquery.justifiedGallery.min.js", + "library/sprintf.js/dist/sprintf.min.js", + "spin.js", + "jquery.spin.js", + "jquery.textinputs.js", + "autocomplete.js", + "library/jquery-textcomplete/jquery.textcomplete.js", + "library/jquery.timeago.js", + "library/readmore.js/readmore.js", + "library/jgrowl/jquery.jgrowl_minimized.js", + "library/cryptojs/components/core-min.js", + "library/cryptojs/rollups/aes.js", + "library/cryptojs/rollups/rabbit.js", + "library/cryptojs/rollups/tripledes.js", + "acl.js", + "webtoolkit.base64.js", + "main.js", + "crypto.js", + "library/jRange/jquery.range.js", + "library/colorbox/jquery.colorbox-min.js", + "library/jquery.AreYouSure/jquery.are-you-sure.js", + "library/tableofcontents/jquery.toc.js", + "library/bootstrap/js/bootstrap.min.js", + "library/bootbox/bootbox.min.js", + "library/bootstrap-tagsinput/bootstrap-tagsinput.js", + "library/datetimepicker/jquery.datetimepicker.js", + "library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js", + "view/theme/redbasic/js/redbasic.js", + "mod_help.js" + ], + "channel": { + "channel_hash": "uRy0nF-urp6k_bFrkdtCc2EkBynwpgCJL_FQFoTwyw2Hep7AHkrSt1MZcHWV_8DQucNlHSY1vHgUNS2Fvoirpw", + "channel_address": "testes", + "channel_primary": "1", + "channel_allow_gid": "", + "xchan_deleted": "0", + "xchan_connpage": "", + "channel_r_storage": "1", + "xchan_pubforum": "0", + "channel_pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7MP/xxsq/srA8I7m+WKf\nHlguwwg0b1tz+I3o+djp7b+wF8q03XPKQpYmKfXIj47vpAOu75nKA4Tn90lLymmk\nSXUHogOqOMy1CHoaVrAw2T2/tAeRoMAjAJ5IxSOAM7Xda0nVUK6FmfxPcvftKf9y\nPmvvFadXpaHT4JGPH0tszDhGXLkqlt9xSkIkpsgMA6emj/7bacc6x8eTdtvzo2e5\n/NyPXvBKH4henmYaKjq/4aIYZcBWYVGt6onxaP2j1cSNbksnOY7GbJl+hy95iFoZ\nDWGxiFwQd+CroiBbdlpVGp13cV/WKp2spZzlzkmCRGYoNbbM5RlgFLnmyTa4XMZE\nwnA3ZUB59MsrUJK+0H/utiZrpX5NQcFl33z8k5zB3pPnhc5S5/P+UJZRnqhet1wQ\n7AZVmdP30D75QD8LZ4SytZ1DHn/N76EsVhSADNMnUfEphs708V33Z0gFWultYDoK\nlvXUf4O0/V8GTufFHb6XdAiy92IUzrormXCpXoOmdOcJdaH9RnotZi/DkuQ0zP+Y\nCvxU9nrjyZvAwAdew//XFDjw4HoThVM4k4jzkIhCTlCao/yRnNM7A/i3OKcXq9wU\n7OZqcRfM9o0BFpZTIoXB7BMtpeioJcBi/7FUaV9U9uYLFuLL0qWa1YxLwfsN9rDk\n6A1gbhD60G9/dAbolp8xAHkCAwEAAQ==\n-----END PUBLIC KEY-----\n", + "xchan_flags": "0", + "channel_allow_cid": "", + "xchan_censored": "0", + "channel_w_pages": "128", + "xchan_instance_url": "", + "xchan_photo_s": "http://hubzilla/photo/profile/s/2", + "channel_w_stream": "128", + "channel_timezone": "America/Los_Angeles", + "xchan_pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7MP/xxsq/srA8I7m+WKf\nHlguwwg0b1tz+I3o+djp7b+wF8q03XPKQpYmKfXIj47vpAOu75nKA4Tn90lLymmk\nSXUHogOqOMy1CHoaVrAw2T2/tAeRoMAjAJ5IxSOAM7Xda0nVUK6FmfxPcvftKf9y\nPmvvFadXpaHT4JGPH0tszDhGXLkqlt9xSkIkpsgMA6emj/7bacc6x8eTdtvzo2e5\n/NyPXvBKH4henmYaKjq/4aIYZcBWYVGt6onxaP2j1cSNbksnOY7GbJl+hy95iFoZ\nDWGxiFwQd+CroiBbdlpVGp13cV/WKp2spZzlzkmCRGYoNbbM5RlgFLnmyTa4XMZE\nwnA3ZUB59MsrUJK+0H/utiZrpX5NQcFl33z8k5zB3pPnhc5S5/P+UJZRnqhet1wQ\n7AZVmdP30D75QD8LZ4SytZ1DHn/N76EsVhSADNMnUfEphs708V33Z0gFWultYDoK\nlvXUf4O0/V8GTufFHb6XdAiy92IUzrormXCpXoOmdOcJdaH9RnotZi/DkuQ0zP+Y\nCvxU9nrjyZvAwAdew//XFDjw4HoThVM4k4jzkIhCTlCao/yRnNM7A/i3OKcXq9wU\n7OZqcRfM9o0BFpZTIoXB7BMtpeioJcBi/7FUaV9U9uYLFuLL0qWa1YxLwfsN9rDk\n6A1gbhD60G9/dAbolp8xAHkCAwEAAQ==\n-----END PUBLIC KEY-----\n", + "channel_w_chat": "128", + "xchan_connurl": "http://hubzilla/poco/testes", + "channel_guid_sig": "XXX", + "xchan_name_date": "2015-10-09 00:45:41", + "channel_expire_days": "0", + "xchan_system": "0", + "xchan_photo_date": "2015-10-09 00:45:41", + "channel_startpage": "", + "channel_deny_gid": "", + "channel_lastpost": "2015-10-09 02:53:23", + "xchan_photo_m": "http://hubzilla/photo/profile/m/2", + "channel_passwd_reset": "", + "xchan_hidden": "0", + "xchan_selfcensored": "0", + "xchan_photo_mimetype": "image/jpeg", + "channel_a_republish": "128", + "channel_w_tagwall": "128", + "channel_r_stream": "1", + "channel_w_comment": "128", + "channel_system": "0", + "channel_w_mail": "128", + "channel_pageflags": "0", + "xchan_network": "zot", + "channel_id": "2", + "xchan_guid": "Ok-ycNKQYMzjokLnIz5OTCF8M5f4CtRT4vJCUeUivJhIOJWk3ORwIQgGx3P5g2Yz79KxQ-rs_Cn2G_jsgM6hmw", + "channel_removed": "0", + "channel_dirdate": "2015-10-09 00:46:00", + "channel_w_storage": "128", + "channel_w_photos": "0", + "channel_prvkey": "-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n", + "channel_guid": "Ok-ycNKQYMzjokLnIz5OTCF8M5f4CtRT4vJCUeUivJhIOJWk3ORwIQgGx3P5g2Yz79KxQ-rs_Cn2G_jsgM6hmw", + "channel_max_friend_req": "0", + "channel_w_wall": "128", + "channel_r_abook": "1", + "channel_max_anon_mail": "0", + "channel_location": "", + "channel_a_delegate": "128", + "channel_deny_cid": "", + "channel_r_profile": "1", + "channel_name": "testes", + "xchan_guid_sig": "XXX", + "xchan_hash": "uRy0nF-urp6k_bFrkdtCc2EkBynwpgCJL_FQFoTwyw2Hep7AHkrSt1MZcHWV_8DQucNlHSY1vHgUNS2Fvoirpw", + "channel_notifyflags": "703", + "channel_theme": "redbasic", + "channel_w_like": "2", + "xchan_url": "http://hubzilla/channel/testes", + "channel_default_group": "", + "channel_r_photos": "0", + "channel_account_id": "1", + "xchan_addr": "testes@hubzilla", + "channel_r_pages": "1", + "channel_deleted": "0000-00-00 00:00:00", + "xchan_orphan": "0", + "xchan_follow": "http://hubzilla/follow?f=&url=%s", + "xchan_name": "testes", + "xchan_photo_l": "http://hubzilla/photo/profile/l/2" + }, + "page": { + "content": "<div id="help-content" class="generic-content-wrapper">\n\t<div class="section-title-wrapper">\n\t<h2>Hubzilla Documentation</h2>\n\t</div>\n\t<div class="section-content-wrapper">\n\t<h2>Documentation for Developers</h2><br /><br /><h3>Technical Documentation</h3><br /><a class="zrl" href="http://hubzilla/help/Zot---A-High-Level-Overview" target="_newwin" >A high level overview of Zot</a><br /><a class="zrl" href="http://hubzilla/help/zot" target="_newwin" >An introduction to Zot</a><br /><a class="zrl" href="http://hubzilla/help/zot_structures" target="_newwin" >Zot Stuctures</a><br /><a class="zrl" href="http://hubzilla/help/comanche" target="_newwin" >Comanche Page Descriptions</a><br /><a class="zrl" href="http://hubzilla/help/Creating-Templates" target="_newwin" >Creating Comanche Templates</a><br /><a class="zrl" href="http://hubzilla/help/Widgets" target="_newwin" >Widgets</a><br /><a class="zrl" href="http://hubzilla/help/plugins" target="_newwin" >Plugins</a><br /><a class="zrl" href="http://hubzilla/help/hooks" target="_newwin" >Hooks</a><br /><a class="zrl" href="http://hubzilla/help/doco" target="_newwin" >Contributing Documentation</a><br /><a class="zrl" href="http://hubzilla/help/DerivedTheme1" target="_newwin" >Creating Derivative Themes</a><br /><a class="zrl" href="http://hubzilla/help/schema_development" target="_newwin" >Schemas</a><br /><a class="zrl" href="http://hubzilla/help/Translations" target="_newwin" >Translations</a><br /><a class="zrl" href="http://hubzilla/help/developers" target="_newwin" >Developers</a><br /><a class="zrl" href="http://hubzilla/help/intro_for_developers" target="_newwin" >Intro for Developers</a><br /><a class="zrl" href="http://hubzilla/help/database" target="_newwin" >Database schema documantation</a><br /><a class="zrl" href="http://hubzilla/help/api_functions" target="_newwin" >API functions</a><br /><a class="zrl" href="http://hubzilla/help/api_posting" target="_newwin" >Posting to the red# using the API</a><br /><a class="zrl" href="http://hubzilla/help/developer_function_primer" target="_newwin" >Red Functions 101</a><br /><a class="zrl" href="http://hubzilla/doc/html/" target="_newwin" >Code Reference (Doxygen generated - sets cookies)</a><br /><a class="zrl" href="http://hubzilla/help/to_do_doco" target="_newwin" >To-Do list for the Red Documentation Project</a><br /><a class="zrl" href="http://hubzilla/help/to_do_code" target="_newwin" >To-Do list for Developers</a><br /><a class="zrl" href="http://hubzilla/help/roadmap" target="_newwin" >Version 3 roadmap</a><br /><a class="zrl" href="http://hubzilla/help/git_for_non_developers" target="_newwin" >Git for Non-Developers</a><br /><a class="zrl" href="http://hubzilla/help/dev_beginner" target="_newwin" >Step-for-step manual for beginning developers</a><br /><br /><h3>Frequently Asked Questions For Developers</h3><br /><a class="zrl" href="http://hubzilla/help/faq_developers" target="_newwin" >FAQ For Developers</a><br /><br /><h3>External Resources</h3><br /><br /><a href="https://zothub.com/channel/one" target="_newwin" >Development Channel</a><br /><a href="https://federated.social/channel/postgres" target="_newwin" >Postgres-specific Hubzilla Admin Support Channel</a><br />\n\t</div>\n</div>\n<script>var homebase = "http://hubzilla/channel/testes";</script>", + "page_title": "help", + "title": "Help: Develop", + "nav": "\t<div class="container-fluid">\n\t\t<div class="navbar-header">\n\t\t\t<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">\n\t\t\t\t<span class="icon-bar"></span>\n\t\t\t\t<span class="icon-bar"></span>\n\t\t\t\t<span class="icon-bar"></span>\n\t\t\t</button>\n\t\t\t<button id="expand-tabs" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#tabs-collapse-1">\n\t\t\t\t<i class="icon-circle-arrow-down" id="expand-tabs-icon"></i>\n\t\t\t</button>\n\t\t\t<button id="expand-aside" type="button" class="navbar-toggle" data-toggle="offcanvas" data-target="#region_1">\n\t\t\t\t<i class="icon-circle-arrow-right" id="expand-aside-icon"></i>\n\t\t\t</button>\n\t\t\t\t\t\t\t<img class="dropdown-toggle fakelink" data-toggle="dropdown" id="avatar" src="http://hubzilla/photo/profile/m/2" alt="testes@hubzilla"><span class="caret" id="usermenu-caret"></span>\n\t\t\t\t\t\t\t\t\t<ul class="dropdown-menu" role="menu" aria-labelledby="avatar">\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="channel/testes" title="Your posts and conversations" role="menuitem" id="channel_nav_btn">Home</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="profile/testes" title="Your profile page" role="menuitem" id="profile_nav_btn">View Profile</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="profiles/2" title="Edit your profile" role="menuitem" id="profiles_nav_btn">Edit Profile</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="photos/testes" title="Your photos" role="menuitem" id="photos_nav_btn">Photos</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="cloud/testes" title="Your files" role="menuitem" id="cloud_nav_btn">Files</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="chat/testes/new" title="Your chatrooms" role="menuitem" id="chat_nav_btn">Chat</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation" class="divider"></li>\n\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation"><a href="settings" title="Account/Channel Settings" role="menuitem" id="settings_nav_btn">Settings</a></li>\t\t\t\t\t\t<li role="presentation"><a href="manage" title="Manage Your Channels" role="menuitem" id="manage_nav_btn">Channel Manager</a></li>\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation" class="divider"></li>\n\t\t\t\t\t\t<li role="presentation"><a href="admin/" title="Site Setup and Configuration" role="menuitem" id="admin_nav_btn">Admin</a></li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li role="presentation" class="divider"></li>\n\t\t\t\t\t\t<li role="presentation"><a href="logout" title="End this session" role="menuitem" id="logout_nav_btn">Logout</a></li>\n\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t<div class="collapse navbar-collapse" id="navbar-collapse-1">\n\t\t\t<ul class="nav navbar-nav navbar-left">\n\t\t\t\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a href="network" title="Your grid" id="network_nav_btn"><i class="icon-th"></i></a>\n\t\t\t\t\t<span class="net-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-network-menu"></span>\n\t\t\t\t\t<ul id="nav-network-menu" role="menu" class="dropdown-menu" rel="network">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li id="nav-network-mark-all"><a href="#" onclick="markRead('network'); return false;">Mark all grid notifications seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a href="network" title="Your grid" ><i class="icon-th"></i></a>\n\t\t\t\t\t<span class="net-update badge" rel="#nav-network-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="channel/testes" title="Channel home" id="home_nav_btn"><i class="icon-home"></i></a>\n\t\t\t\t\t<span class="home-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-home-menu"></span>\n\t\t\t\t\t<ul id="nav-home-menu" class="dropdown-menu" rel="home">\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li id="nav-home-mark-all"><a href="#" onclick="markRead('home'); return false;">Mark all channel notifications seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="channel/testes" title="Channel home" ><i class="icon-home"></i></a>\n\t\t\t\t\t<span class="home-update badge" rel="#nav-home-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="mail/combined" title="Private mail" id="mail_nav_btn"><i class="icon-envelope"></i></a>\n\t\t\t\t\t<span class="mail-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-messages-menu"></span>\n\t\t\t\t\t<ul id="nav-messages-menu" class="dropdown-menu" rel="messages">\n\t\t\t\t\t\t<li id="nav-messages-see-all"><a href="mail/combined">See all private messages</a></li>\n\t\t\t\t\t\t<li id="nav-messages-mark-all"><a href="#" onclick="markRead('messages'); return false;">Mark all private messages seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="mail/combined" title="Private mail" ><i class="icon-envelope"></i></a>\n\t\t\t\t\t<span class="mail-update badge" rel="#nav-messages-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="events" title="Event Calendar" id='events_nav_btn'><i class="icon-calendar"></i></a>\n\t\t\t\t\t<span class="all_events-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-all_events-menu"></span>\n\t\t\t\t\t<ul id="nav-all_events-menu" class="dropdown-menu" rel="all_events">\n\t\t\t\t\t\t<li id="nav-all_events-see-all"><a href="events">See all events</a></li>\n\t\t\t\t\t\t<li id="nav-all_events-mark-all"><a href="#" onclick="markRead('all_events'); return false;">Mark all events seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="events" title="Event Calendar" ><i class="icon-calendar"></i></a>\n\t\t\t\t\t<span class="all_events-update badge" rel="#nav-all_events-menu"></span>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a class="" href="connections/ifpending" title="Connections" id="connections_nav_btn"><i class="icon-user"></i></a>\n\t\t\t\t\t<span class="intro-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-intros-menu"></span>\n\t\t\t\t\t<ul id="nav-intros-menu" class="dropdown-menu" rel="intros">\n\t\t\t\t\t\t<li id="nav-intros-see-all"><a href=""></a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a class="" href="connections/ifpending" title="Connections" ><i class="icon-user"></i></a>\n\t\t\t\t\t<span class="intro-update badge" rel="#nav-intros-menu"></span>\n\t\t\t\t</li>\n\t\t\t\t\t\n\t\t\t\t\t\t\t<li class=" hidden-xs">\n\t\t\t\t\t<a href="notifications/system" title="Notices" id="notifications_nav_btn"><i class="icon-exclamation"></i></a>\n\t\t\t\t\t<span class="notify-update badge dropdown-toggle" data-toggle="dropdown" rel="#nav-notify-menu"></span>\n\t\t\t\t\t<ul id="nav-notify-menu" class="dropdown-menu" rel="notify">\n\t\t\t\t\t\t<li id="nav-notify-see-all"><a href="notifications/system">See all notifications</a></li>\n\t\t\t\t\t\t<li id="nav-notify-mark-all"><a href="#" onclick="markRead('notify'); return false;">Mark all system notifications seen</a></li>\n\t\t\t\t\t\t<li class="empty">Loading...</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li class=" visible-xs">\n\t\t\t\t\t<a href="notifications/system" title="Notices"><i class="icon-exclamation"></i></a>\n\t\t\t\t\t<span class="notify-update badge" rel="#nav-notify-menu"></span>\n\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t\t<ul class="nav navbar-nav navbar-right">\n\t\t\t\t<li class="hidden-xs">\n\t\t\t\t\t<form method="get" action="search" role="search">\n\t\t\t\t\t\t<div id="nav-search-spinner"></div><input class="icon-search" id="nav-search-text" type="text" value="" placeholder="&#xf002; @name, #tag, ?doc, content" name="search" title="Search site @name, #tag, ?docs, content" onclick="this.submit();"/>\n\t\t\t\t\t</form>\n\t\t\t\t</li>\n\t\t\t\t<li class="visible-xs">\n\t\t\t\t\t<a href="/search" title="Search site @name, #tag, ?docs, content"><i class="icon-search"></i></a>\n\t\t\t\t</li>\n\n\t\t\t\t\t\t\t\t\t\t<li class="">\n\t\t\t\t\t<a class="" href="directory" title="Channel Directory" id="directory_nav_btn"><i class="icon-sitemap"></i></a>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class="">\n\t\t\t\t\t<a class="" href="apps" title="Applications, utilities, links, games" id="apps_nav_btn"><i class="icon-cogs"></i></a>\n\t\t\t\t</li>\n\t\t\t\n\t\t\t\t\t\t\t<li class="active">\n\t\t\t\t\t<a class="" target="hubzilla-help" href="http://hubzilla/help?f=&cmd=help/develop" title="Help and documentation" id="help_nav_btn"><i class="icon-question"></i></a>\n\t\t\t\t</li>\n\t\t\t\t\t\t</ul>\n\t\t</div>\n\t</div>\n", + "htmlhead": "<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />\n<base href="http://hubzilla/" />\n<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=1" />\n<meta name="generator" content="hubzilla 2015-11-03.1205H" />\n\n<!--[if IE]>\n<script src="http://hubzilla/library/html5.js"></script>\n<![endif]-->\n\n<link rel="stylesheet" href="http://hubzilla/library/font_awesome/css/font-awesome.min.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/bootstrap/css/bootstrap.min.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/bootstrap-tagsinput/bootstrap-tagsinput.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/view/css/bootstrap-red.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/datetimepicker/jquery.datetimepicker.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/tiptip/tipTip.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/jgrowl/jquery.jgrowl.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/jRange/jquery.range.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/view/css/conversation.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/view/css/widgets.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/view/css/colorbox.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/library/justifiedGallery/justifiedGallery.min.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/view/css/default.css" type="text/css" media="screen">\r\n<link rel="stylesheet" href="http://hubzilla/view/theme/redbasic/php/style.pcss" type="text/css" media="screen">\r\n\n\n<script>\n\n\tvar aStr = {\n\n\t\t'delitem' : "Delete this item?",\n\t\t'comment' : "Comment",\n\t\t'showmore' : "[+] show all",\n\t\t'showfewer' : "[-] show less",\n\t\t'divgrowmore' : "[+] expand",\n\t\t'divgrowless' : "[-] collapse",\n\t\t'pwshort' : "Password too short",\n\t\t'pwnomatch' : "Passwords do not match",\n\t\t'everybody' : "everybody",\n\t\t'passphrase' : "Secret Passphrase",\n\t\t'passhint' : "Passphrase hint",\n\t\t'permschange' : "Notice: Permissions have changed but have not yet been submitted.",\n\t\t'closeAll' : "close all",\n\t\t'nothingnew' : "Nothing new here",\n\t\t'rating_desc' : "Rate This Channel (this is public)",\n\t\t'rating_val' : "Rating",\n\t\t'rating_text' : "Describe (optional)",\n\t\t'submit' : "Submit",\n\t\t'linkurl' : "Please enter a link URL",\n\t\t'leavethispage' : "Unsaved changes. Are you sure you wish to leave this page?",\n\n\t\t't01' : "",\n\t\t't02' : "",\n\t\t't03' : "ago",\n\t\t't04' : "from now",\n\t\t't05' : "less than a minute",\n\t\t't06' : "about a minute",\n\t\t't07' : "%d minutes",\n\t\t't08' : "about an hour",\n\t\t't09' : "about %d hours",\n\t\t't10' : "a day",\n\t\t't11' : "%d days",\n\t\t't12' : "about a month",\n\t\t't13' : "%d months",\n\t\t't14' : "about a year",\n\t\t't15' : "%d years",\n\t\t't16' : " ",\n\t\t't17' : "[]",\n\n\t\t'monthNames' : [ "January","February","March","April","May","June","July","August","September","October","November","December" ],\n\t\t'monthNamesShort' : [ "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" ],\n\t\t'dayNames' : ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],\n\t\t'dayNamesShort' : ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],\n\t\t'today' : "today",\n\t\t'month' : "month",\n\t\t'week' : "week",\n\t\t'day' : "day",\n\t\t'allday' : "All day"\n\t};\n\n</script>\n\t\t\n\n\n<script src="http://hubzilla/view/js/jquery.js" ></script>\r\n<script src="http://hubzilla/library/justifiedGallery/jquery.justifiedGallery.min.js" ></script>\r\n<script src="http://hubzilla/library/sprintf.js/dist/sprintf.min.js" ></script>\r\n<script src="http://hubzilla/view/js/spin.js" ></script>\r\n<script src="http://hubzilla/view/js/jquery.spin.js" ></script>\r\n<script src="http://hubzilla/view/js/jquery.textinputs.js" ></script>\r\n<script src="http://hubzilla/view/js/autocomplete.js" ></script>\r\n<script src="http://hubzilla/library/jquery-textcomplete/jquery.textcomplete.js" ></script>\r\n<script src="http://hubzilla/library/jquery.timeago.js" ></script>\r\n<script src="http://hubzilla/library/readmore.js/readmore.js" ></script>\r\n<script src="http://hubzilla/library/jgrowl/jquery.jgrowl_minimized.js" ></script>\r\n<script src="http://hubzilla/library/cryptojs/components/core-min.js" ></script>\r\n<script src="http://hubzilla/library/cryptojs/rollups/aes.js" ></script>\r\n<script src="http://hubzilla/library/cryptojs/rollups/rabbit.js" ></script>\r\n<script src="http://hubzilla/library/cryptojs/rollups/tripledes.js" ></script>\r\n<script src="http://hubzilla/view/js/acl.js" ></script>\r\n<script src="http://hubzilla/view/js/webtoolkit.base64.js" ></script>\r\n<script src="http://hubzilla/view/js/crypto.js" ></script>\r\n<script src="http://hubzilla/library/jRange/jquery.range.js" ></script>\r\n<script src="http://hubzilla/library/colorbox/jquery.colorbox-min.js" ></script>\r\n<script src="http://hubzilla/library/jquery.AreYouSure/jquery.are-you-sure.js" ></script>\r\n<script src="http://hubzilla/library/tableofcontents/jquery.toc.js" ></script>\r\n<script src="http://hubzilla/library/bootstrap/js/bootstrap.min.js" ></script>\r\n<script src="http://hubzilla/library/bootbox/bootbox.min.js" ></script>\r\n<script src="http://hubzilla/library/bootstrap-tagsinput/bootstrap-tagsinput.js" ></script>\r\n<script src="http://hubzilla/library/datetimepicker/jquery.datetimepicker.js" ></script>\r\n<script src="http://hubzilla/library/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js" ></script>\r\n<script src="http://hubzilla/view/theme/redbasic/js/redbasic.js" ></script>\r\n\n\n<link rel="shortcut icon" href="http://hubzilla/images/hz-32.png" />\n<link rel="search"\n href="http://hubzilla/opensearch" \n type="application/opensearchdescription+xml" \n title="Search in the Hubzilla" />\n\n\n<script>\n\n\tvar updateInterval = 80000;\n\tvar localUser = 2;\n\tvar zid = 'testes@hubzilla';\n\tvar justifiedGalleryActive = false;\n\t\t\n</script>\n\n\n\n\n<script>$(document).ready(function() {\n\t$("#nav-search-text").search_autocomplete('http://hubzilla/acl');\n});\n\n</script><script src="http://hubzilla/view/js/main.js" ></script>\r\n<link rel="stylesheet" href="http://hubzilla/addon/converse/converse.min.js" media="all" /><script src="http://hubzilla/addon/converse/converse.min.js"></script>", + "header": "<div id="banner" class="hidden-sm hidden-xs">Hubzilla</div>\n\n<ul id="nav-notifications-template" style="display:none;" rel="template">\n\t<li class="{5}"><a href="{0}" title="{2} {3}"><img data-src="{1}"><span class="contactname">{2}</span><span class="dropdown-sub-text">{3}<br>{4}</span></a></li>\n</ul>\n" + }, + "poi": null, + "force_max_items": 0, + "module": "help", + "template_engines": { + "smarty3": "FriendicaSmartyEngine", + "internal": "Template" + }, + "account": { + "account_flags": "0", + "account_service_class": "", + "account_id": "1", + "account_salt": "9bf8c193c35a56c4c666f47728fe20da", + "account_expires": "0000-00-00 00:00:00", + "account_lastlog": "2015-11-04 07:47:55", + "account_password_changed": "0000-00-00 00:00:00", + "account_language": "en", + "account_default_channel": "2", + "account_password": "", + "account_parent": "1", + "account_expire_notified": "0000-00-00 00:00:00", + "account_reset": "", + "account_email": "foo@bar.com", + "account_level": "0", + "account_roles": "4096", + "account_external": "", + "account_created": "2015-10-09 00:44:51" + }, + "theme_info": [], + "argv": [ + "help", + "develop" + ], + "template_engine_instance": { + "smarty3": {} + }, + "language": "en", + "pager": { + "page": 1, + "itemspage": 60, + "start": 0, + "total": 0 + }, + "plugins": [ + "converse" + ], + "error": false, + "pdl": "[region=aside]\n[widget=helpindex][/widget]\n[/region]\n", + "query_string": "help/develop", + "cmd": "help/develop", + "groups": null, + "videowidth": 425, + "css_sources": [ + [ + "library/font_awesome/css/font-awesome.min.css", + "screen" + ], + [ + "library/bootstrap/css/bootstrap.min.css", + "screen" + ], + [ + "library/bootstrap-tagsinput/bootstrap-tagsinput.css", + "screen" + ], + [ + "view/css/bootstrap-red.css", + "screen" + ], + [ + "library/datetimepicker/jquery.datetimepicker.css", + "screen" + ], + [ + "library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css", + "screen" + ], + [ + "library/tiptip/tipTip.css", + "screen" + ], + [ + "library/jgrowl/jquery.jgrowl.css", + "screen" + ], + [ + "library/jRange/jquery.range.css", + "screen" + ], + [ + "view/css/conversation.css", + "screen" + ], + [ + "view/css/widgets.css", + "screen" + ], + [ + "view/css/colorbox.css", + "screen" + ], + [ + "library/justifiedGallery/justifiedGallery.min.css", + "screen" + ], + [ + "default.css", + "screen" + ], + [ + "mod_help.css", + "screen" + ], + [ + "view/theme/redbasic/php/style.pcss", + "screen" + ] + ], + "is_tablet": false, + "observer": { + "xchan_deleted": "0", + "xchan_connpage": "", + "xchan_pubforum": "0", + "xchan_flags": "0", + "xchan_censored": "0", + "xchan_instance_url": "", + "xchan_photo_s": "http://hubzilla/photo/profile/s/2", + "xchan_pubkey": "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7MP/xxsq/srA8I7m+WKf\nHlguwwg0b1tz+I3o+djp7b+wF8q03XPKQpYmKfXIj47vpAOu75nKA4Tn90lLymmk\nSXUHogOqOMy1CHoaVrAw2T2/tAeRoMAjAJ5IxSOAM7Xda0nVUK6FmfxPcvftKf9y\nPmvvFadXpaHT4JGPH0tszDhGXLkqlt9xSkIkpsgMA6emj/7bacc6x8eTdtvzo2e5\n/NyPXvBKH4henmYaKjq/4aIYZcBWYVGt6onxaP2j1cSNbksnOY7GbJl+hy95iFoZ\nDWGxiFwQd+CroiBbdlpVGp13cV/WKp2spZzlzkmCRGYoNbbM5RlgFLnmyTa4XMZE\nwnA3ZUB59MsrUJK+0H/utiZrpX5NQcFl33z8k5zB3pPnhc5S5/P+UJZRnqhet1wQ\n7AZVmdP30D75QD8LZ4SytZ1DHn/N76EsVhSADNMnUfEphs708V33Z0gFWultYDoK\nlvXUf4O0/V8GTufFHb6XdAiy92IUzrormXCpXoOmdOcJdaH9RnotZi/DkuQ0zP+Y\nCvxU9nrjyZvAwAdew//XFDjw4HoThVM4k4jzkIhCTlCao/yRnNM7A/i3OKcXq9wU\n7OZqcRfM9o0BFpZTIoXB7BMtpeioJcBi/7FUaV9U9uYLFuLL0qWa1YxLwfsN9rDk\n6A1gbhD60G9/dAbolp8xAHkCAwEAAQ==\n-----END PUBLIC KEY-----\n", + "xchan_connurl": "http://hubzilla/poco/testes", + "xchan_name_date": "2015-10-09 00:45:41", + "xchan_system": "0", + "xchan_photo_date": "2015-10-09 00:45:41", + "xchan_photo_m": "http://hubzilla/photo/profile/m/2", + "xchan_hidden": "0", + "xchan_selfcensored": "0", + "xchan_photo_mimetype": "image/jpeg", + "xchan_network": "zot", + "xchan_guid": "Ok-ycNKQYMzjokLnIz5OTCF8M5f4CtRT4vJCUeUivJhIOJWk3ORwIQgGx3P5g2Yz79KxQ-rs_Cn2G_jsgM6hmw", + "xchan_guid_sig": "XXX", + "xchan_hash": "uRy0nF-urp6k_bFrkdtCc2EkBynwpgCJL_FQFoTwyw2Hep7AHkrSt1MZcHWV_8DQucNlHSY1vHgUNS2Fvoirpw", + "xchan_url": "http://hubzilla/channel/testes", + "xchan_addr": "testes@hubzilla", + "xchan_orphan": "0", + "xchan_follow": "http://hubzilla/follow?f=&url=%s", + "xchan_name": "testes", + "xchan_photo_l": "http://hubzilla/photo/profile/l/2" + }, + "contact": null, + "identities": null, + "user": null, + "videoheight": 350, + "profile": null, + "theme_thread_allow": true, + "data": { + "pageicon": "/images/hz-32.png" + } +}[/code] + + #include doc/macros/main_footer.bb; From 5d64fb5946ced30988e5619984b46be994d19081 Mon Sep 17 00:00:00 2001 From: ken restivo Date: Wed, 4 Nov 2015 00:34:10 -0800 Subject: [PATCH 082/150] Clarify format. --- doc/faq_developers.bb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/faq_developers.bb b/doc/faq_developers.bb index 6b9231578..c74ec3c56 100644 --- a/doc/faq_developers.bb +++ b/doc/faq_developers.bb @@ -28,8 +28,7 @@ function foo() { [/code] - -An example (large) &$a object showing some of its many members and structures is here: +An example (large) &$a object showing some of its many members and structures-- in JSON format for easier readability-- is here: [code] { "category": null, From 50cf095c000813d0b1408d929c1fa7422b131a3d Mon Sep 17 00:00:00 2001 From: Paolo Tacconi Date: Wed, 4 Nov 2015 14:58:52 +0100 Subject: [PATCH 083/150] Updated Italian strings --- view/it/hmessages.po | 1168 ++++++++++++++++++++++-------------------- view/it/hstrings.php | 148 +++--- 2 files changed, 678 insertions(+), 638 deletions(-) diff --git a/view/it/hmessages.po b/view/it/hmessages.po index 956477e67..5d1014fad 100644 --- a/view/it/hmessages.po +++ b/view/it/hmessages.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-10-23 00:03-0700\n" -"PO-Revision-Date: 2015-10-24 09:56+0000\n" +"POT-Creation-Date: 2015-10-30 00:03-0700\n" +"PO-Revision-Date: 2015-11-04 13:49+0000\n" "Last-Translator: tuscanhobbit \n" "Language-Team: Italian (http://www.transifex.com/Friendica/red-matrix/language/it/)\n" "MIME-Version: 1.0\n" @@ -19,32 +19,6 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../include/bb2diaspora.php:388 -msgid "Attachments:" -msgstr "Allegati:" - -#: ../../include/bb2diaspora.php:474 ../../include/event.php:22 -msgid "l F d, Y \\@ g:i A" -msgstr "l d F Y \\@ G:i" - -#: ../../include/bb2diaspora.php:476 -msgid "$Projectname event notification:" -msgstr "Notifica evento $Projectname:" - -#: ../../include/bb2diaspora.php:480 ../../include/event.php:30 -msgid "Starts:" -msgstr "Inizio:" - -#: ../../include/bb2diaspora.php:488 ../../include/event.php:40 -msgid "Finishes:" -msgstr "Fine:" - -#: ../../include/bb2diaspora.php:496 ../../include/event.php:50 -#: ../../include/identity.php:1016 ../../mod/directory.php:302 -#: ../../mod/events.php:701 -msgid "Location:" -msgstr "Luogo:" - #: ../../include/Import/import_diaspora.php:17 msgid "No username found in import file." msgstr "Impossibile trovare il nome utente nel file da importare." @@ -62,7 +36,7 @@ msgstr "L'importazione è terminata con successo." msgid "parent" msgstr "cartella superiore" -#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2509 +#: ../../include/RedDAV/RedBrowser.php:131 ../../include/text.php:2529 msgid "Collection" msgstr "Cartella" @@ -88,12 +62,12 @@ msgstr "Appuntamenti inviati" #: ../../include/RedDAV/RedBrowser.php:164 ../../include/apps.php:360 #: ../../include/apps.php:415 ../../include/conversation.php:1023 -#: ../../mod/photos.php:756 ../../mod/photos.php:1195 +#: ../../mod/photos.php:759 ../../mod/photos.php:1198 msgid "Unknown" msgstr "Sconosciuto" #: ../../include/RedDAV/RedBrowser.php:226 ../../include/apps.php:135 -#: ../../include/conversation.php:1613 ../../include/nav.php:93 +#: ../../include/conversation.php:1620 ../../include/nav.php:93 #: ../../mod/fbrowser.php:114 msgid "Files" msgstr "Archivio file" @@ -114,8 +88,8 @@ msgid "Create" msgstr "Crea" #: ../../include/RedDAV/RedBrowser.php:231 -#: ../../include/RedDAV/RedBrowser.php:305 ../../mod/photos.php:781 -#: ../../mod/photos.php:1314 ../../mod/profile_photo.php:450 +#: ../../include/RedDAV/RedBrowser.php:305 ../../mod/photos.php:784 +#: ../../mod/photos.php:1317 ../../mod/profile_photo.php:450 msgid "Upload" msgstr "Carica" @@ -141,7 +115,7 @@ msgstr "Ultima modifica" #: ../../include/page_widgets.php:8 ../../include/page_widgets.php:36 #: ../../include/apps.php:259 ../../include/ItemObject.php:100 #: ../../mod/layouts.php:183 ../../mod/editblock.php:135 -#: ../../mod/editpost.php:113 ../../mod/menu.php:108 +#: ../../mod/editpost.php:112 ../../mod/menu.php:108 #: ../../mod/webpages.php:181 ../../mod/blocks.php:153 ../../mod/thing.php:257 #: ../../mod/settings.php:645 ../../mod/connections.php:235 #: ../../mod/connections.php:248 ../../mod/connections.php:267 @@ -151,7 +125,7 @@ msgstr "Modifica" #: ../../include/RedDAV/RedBrowser.php:241 ../../include/apps.php:260 #: ../../include/ItemObject.php:120 ../../include/conversation.php:657 -#: ../../mod/connedit.php:546 ../../mod/photos.php:1126 +#: ../../mod/connedit.php:546 ../../mod/photos.php:1129 #: ../../mod/editblock.php:181 ../../mod/admin.php:783 ../../mod/admin.php:942 #: ../../mod/webpages.php:183 ../../mod/blocks.php:155 ../../mod/thing.php:258 #: ../../mod/settings.php:646 ../../mod/editlayout.php:179 @@ -327,31 +301,31 @@ msgstr "Il nome della chat non è valido." msgid "Room not found." msgstr "Chat non trovata." -#: ../../include/chat.php:133 ../../include/items.php:4376 -#: ../../include/photos.php:26 ../../include/attach.php:137 -#: ../../include/attach.php:185 ../../include/attach.php:248 -#: ../../include/attach.php:262 ../../include/attach.php:269 -#: ../../include/attach.php:334 ../../include/attach.php:348 -#: ../../include/attach.php:355 ../../include/attach.php:433 -#: ../../include/attach.php:875 ../../include/attach.php:946 -#: ../../include/attach.php:1098 ../../mod/achievements.php:30 +#: ../../include/chat.php:133 ../../include/items.php:4377 +#: ../../include/photos.php:29 ../../include/attach.php:140 +#: ../../include/attach.php:188 ../../include/attach.php:251 +#: ../../include/attach.php:265 ../../include/attach.php:272 +#: ../../include/attach.php:337 ../../include/attach.php:351 +#: ../../include/attach.php:358 ../../include/attach.php:436 +#: ../../include/attach.php:884 ../../include/attach.php:955 +#: ../../include/attach.php:1107 ../../mod/achievements.php:30 #: ../../mod/fsuggest.php:78 ../../mod/authtest.php:13 #: ../../mod/bookmarks.php:48 ../../mod/block.php:22 ../../mod/block.php:72 #: ../../mod/id.php:71 ../../mod/like.php:177 ../../mod/common.php:35 #: ../../mod/mitem.php:111 ../../mod/connedit.php:347 ../../mod/mood.php:112 -#: ../../mod/photos.php:70 ../../mod/filestorage.php:18 -#: ../../mod/filestorage.php:73 ../../mod/filestorage.php:88 -#: ../../mod/filestorage.php:115 ../../mod/layouts.php:69 -#: ../../mod/layouts.php:76 ../../mod/layouts.php:87 ../../mod/poke.php:133 -#: ../../mod/network.php:12 ../../mod/chat.php:94 ../../mod/chat.php:99 -#: ../../mod/rate.php:111 ../../mod/mail.php:118 ../../mod/editblock.php:65 +#: ../../mod/filestorage.php:18 ../../mod/filestorage.php:73 +#: ../../mod/filestorage.php:88 ../../mod/filestorage.php:115 +#: ../../mod/layouts.php:69 ../../mod/layouts.php:76 ../../mod/layouts.php:87 +#: ../../mod/poke.php:133 ../../mod/network.php:12 ../../mod/chat.php:94 +#: ../../mod/chat.php:99 ../../mod/rate.php:111 ../../mod/mail.php:118 +#: ../../mod/photos.php:70 ../../mod/editblock.php:65 #: ../../mod/editpost.php:13 ../../mod/appman.php:66 ../../mod/profile.php:64 #: ../../mod/profile.php:72 ../../mod/menu.php:74 ../../mod/page.php:31 #: ../../mod/page.php:86 ../../mod/new_channel.php:68 #: ../../mod/new_channel.php:99 ../../mod/notifications.php:66 #: ../../mod/pdledit.php:21 ../../mod/events.php:256 #: ../../mod/profile_photo.php:338 ../../mod/profile_photo.php:351 -#: ../../mod/item.php:205 ../../mod/item.php:213 ../../mod/item.php:1002 +#: ../../mod/item.php:205 ../../mod/item.php:213 ../../mod/item.php:1004 #: ../../mod/message.php:16 ../../mod/webpages.php:69 #: ../../mod/register.php:72 ../../mod/blocks.php:69 ../../mod/blocks.php:76 #: ../../mod/service_limits.php:7 ../../mod/sources.php:66 @@ -595,131 +569,139 @@ msgid "" msgstr "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi" #: ../../include/features.php:61 -msgid "Enable voting tools" -msgstr "Permetti i post con votazione" +msgid "Enable Voting Tools" +msgstr "Abilita gli strumenti per votare" #: ../../include/features.php:61 msgid "Provide a class of post which others can vote on" msgstr "Rende possibile la creazione di post in cui sarà possibile votare" -#: ../../include/features.php:67 +#: ../../include/features.php:62 +msgid "Delayed Posting" +msgstr "Pubblicazione ritardata" + +#: ../../include/features.php:62 +msgid "Allow posts to be published at a later date" +msgstr "Per scegliere una data e un'ora a cui far uscire i post" + +#: ../../include/features.php:68 msgid "Network and Stream Filtering" msgstr "Filtraggio dei contenuti" -#: ../../include/features.php:68 +#: ../../include/features.php:69 msgid "Search by Date" msgstr "Ricerca per data" -#: ../../include/features.php:68 +#: ../../include/features.php:69 msgid "Ability to select posts by date ranges" msgstr "Per selezionare i post in un intervallo tra date" -#: ../../include/features.php:69 +#: ../../include/features.php:70 msgid "Collections Filter" msgstr "Filtra per insiemi di canali" -#: ../../include/features.php:69 +#: ../../include/features.php:70 msgid "Enable widget to display Network posts only from selected collections" msgstr "Mostra il riquadro per filtrare i post di certi insiemi di canali" -#: ../../include/features.php:70 ../../include/widgets.php:273 +#: ../../include/features.php:71 ../../include/widgets.php:273 msgid "Saved Searches" msgstr "Ricerche salvate" -#: ../../include/features.php:70 +#: ../../include/features.php:71 msgid "Save search terms for re-use" msgstr "Salva i termini delle ricerche per poterle ripetere" -#: ../../include/features.php:71 +#: ../../include/features.php:72 msgid "Network Personal Tab" msgstr "Attività personale" -#: ../../include/features.php:71 +#: ../../include/features.php:72 msgid "Enable tab to display only Network posts that you've interacted on" msgstr "Abilita il link per mostrare solamente i contenuti con cui hai interagito" -#: ../../include/features.php:72 +#: ../../include/features.php:73 msgid "Network New Tab" msgstr "Contenuti nuovi" -#: ../../include/features.php:72 +#: ../../include/features.php:73 msgid "Enable tab to display all new Network activity" msgstr "Abilita il link per visualizzare solo i nuovi contenuti" -#: ../../include/features.php:73 +#: ../../include/features.php:74 msgid "Affinity Tool" msgstr "Filtro per affinità" -#: ../../include/features.php:73 +#: ../../include/features.php:74 msgid "Filter stream activity by depth of relationships" msgstr "Permette di selezionare i contenuti in base al livello di amicizia" -#: ../../include/features.php:74 +#: ../../include/features.php:75 msgid "Connection Filtering" msgstr "Filtro sui contatti" -#: ../../include/features.php:74 +#: ../../include/features.php:75 msgid "Filter incoming posts from connections based on keywords/content" msgstr "Filtra i post che ricevi con parole chiave" -#: ../../include/features.php:75 +#: ../../include/features.php:76 msgid "Suggest Channels" msgstr "Suggerisci canali" -#: ../../include/features.php:75 +#: ../../include/features.php:76 msgid "Show channel suggestions" msgstr "Mostra alcuni canali che potrebbero interessarti" -#: ../../include/features.php:80 +#: ../../include/features.php:81 msgid "Post/Comment Tools" msgstr "Gestione post e commenti" -#: ../../include/features.php:81 +#: ../../include/features.php:82 msgid "Tagging" msgstr "Tag" -#: ../../include/features.php:81 +#: ../../include/features.php:82 msgid "Ability to tag existing posts" msgstr "Permetti l'aggiunta di tag su post già esistenti" -#: ../../include/features.php:82 +#: ../../include/features.php:83 msgid "Post Categories" msgstr "Categorie dei post" -#: ../../include/features.php:82 +#: ../../include/features.php:83 msgid "Add categories to your posts" msgstr "Abilita le categorie per i tuoi post" -#: ../../include/features.php:83 ../../include/contact_widgets.php:57 +#: ../../include/features.php:84 ../../include/contact_widgets.php:57 #: ../../include/widgets.php:303 msgid "Saved Folders" msgstr "Cartelle salvate" -#: ../../include/features.php:83 +#: ../../include/features.php:84 msgid "Ability to file posts under folders" msgstr "Abilita la raccolta dei tuoi articoli in cartelle" -#: ../../include/features.php:84 +#: ../../include/features.php:85 msgid "Dislike Posts" msgstr "Non mi piace" -#: ../../include/features.php:84 +#: ../../include/features.php:85 msgid "Ability to dislike posts/comments" msgstr "Abilità la funzionalità \"non mi piace\" per i tuoi post" -#: ../../include/features.php:85 +#: ../../include/features.php:86 msgid "Star Posts" msgstr "Post con stella" -#: ../../include/features.php:85 +#: ../../include/features.php:86 msgid "Ability to mark special posts with a star indicator" msgstr "Mostra la stella per segnare i post preferiti" -#: ../../include/features.php:86 +#: ../../include/features.php:87 msgid "Tag Cloud" msgstr "Nuvola di tag" -#: ../../include/features.php:86 +#: ../../include/features.php:87 msgid "Provide a personal tag cloud on your channel page" msgstr "Mostra la nuvola dei tag che usi di più sulla pagina del tuo canale" @@ -732,7 +714,7 @@ msgid "Delete this item?" msgstr "Eliminare questo elemento?" #: ../../include/js_strings.php:6 ../../include/ItemObject.php:681 -#: ../../mod/photos.php:1044 ../../mod/photos.php:1162 +#: ../../mod/photos.php:1047 ../../mod/photos.php:1165 msgid "Comment" msgstr "Commento" @@ -788,7 +770,7 @@ msgstr "Niente di nuovo qui" msgid "Rate This Channel (this is public)" msgstr "Valuta questo canale (visibile a tutti)" -#: ../../include/js_strings.php:20 ../../mod/connedit.php:666 +#: ../../include/js_strings.php:20 ../../mod/connedit.php:684 #: ../../mod/rate.php:157 msgid "Rating" msgstr "Valutazioni" @@ -799,17 +781,17 @@ msgstr "Descrizione (facoltativa)" #: ../../include/js_strings.php:22 ../../include/ItemObject.php:682 #: ../../mod/fsuggest.php:108 ../../mod/mitem.php:231 -#: ../../mod/connedit.php:687 ../../mod/mood.php:135 ../../mod/pconfig.php:108 -#: ../../mod/photos.php:634 ../../mod/photos.php:1005 -#: ../../mod/photos.php:1045 ../../mod/photos.php:1163 +#: ../../mod/connedit.php:705 ../../mod/mood.php:135 ../../mod/pconfig.php:108 #: ../../mod/filestorage.php:156 ../../mod/poke.php:171 ../../mod/chat.php:184 #: ../../mod/chat.php:213 ../../mod/rate.php:168 ../../mod/mail.php:371 -#: ../../mod/admin.php:411 ../../mod/admin.php:776 ../../mod/admin.php:940 -#: ../../mod/admin.php:1072 ../../mod/admin.php:1266 ../../mod/admin.php:1351 -#: ../../mod/appman.php:99 ../../mod/pdledit.php:58 ../../mod/events.php:534 -#: ../../mod/events.php:710 ../../mod/sources.php:104 -#: ../../mod/sources.php:138 ../../mod/import.php:517 ../../mod/thing.php:313 -#: ../../mod/thing.php:359 ../../mod/invite.php:142 ../../mod/settings.php:583 +#: ../../mod/photos.php:637 ../../mod/photos.php:1008 +#: ../../mod/photos.php:1048 ../../mod/photos.php:1166 ../../mod/admin.php:411 +#: ../../mod/admin.php:776 ../../mod/admin.php:940 ../../mod/admin.php:1072 +#: ../../mod/admin.php:1266 ../../mod/admin.php:1351 ../../mod/appman.php:99 +#: ../../mod/pdledit.php:58 ../../mod/events.php:534 ../../mod/events.php:710 +#: ../../mod/sources.php:104 ../../mod/sources.php:138 +#: ../../mod/import.php:517 ../../mod/thing.php:313 ../../mod/thing.php:359 +#: ../../mod/invite.php:142 ../../mod/settings.php:583 #: ../../mod/settings.php:695 ../../mod/settings.php:723 #: ../../mod/settings.php:746 ../../mod/settings.php:831 #: ../../mod/settings.php:1020 ../../mod/xchan.php:11 ../../mod/group.php:81 @@ -900,19 +882,19 @@ msgstr " " msgid "timeago.numbers" msgstr "timeago.numbers" -#: ../../include/js_strings.php:44 ../../include/text.php:1144 +#: ../../include/js_strings.php:44 ../../include/text.php:1153 msgid "January" msgstr "gennaio" -#: ../../include/js_strings.php:45 ../../include/text.php:1144 +#: ../../include/js_strings.php:45 ../../include/text.php:1153 msgid "February" msgstr "febbraio" -#: ../../include/js_strings.php:46 ../../include/text.php:1144 +#: ../../include/js_strings.php:46 ../../include/text.php:1153 msgid "March" msgstr "marzo" -#: ../../include/js_strings.php:47 ../../include/text.php:1144 +#: ../../include/js_strings.php:47 ../../include/text.php:1153 msgid "April" msgstr "aprile" @@ -921,31 +903,31 @@ msgctxt "long" msgid "May" msgstr "maggio" -#: ../../include/js_strings.php:49 ../../include/text.php:1144 +#: ../../include/js_strings.php:49 ../../include/text.php:1153 msgid "June" msgstr "giugno" -#: ../../include/js_strings.php:50 ../../include/text.php:1144 +#: ../../include/js_strings.php:50 ../../include/text.php:1153 msgid "July" msgstr "luglio" -#: ../../include/js_strings.php:51 ../../include/text.php:1144 +#: ../../include/js_strings.php:51 ../../include/text.php:1153 msgid "August" msgstr "agosto" -#: ../../include/js_strings.php:52 ../../include/text.php:1144 +#: ../../include/js_strings.php:52 ../../include/text.php:1153 msgid "September" msgstr "settembre" -#: ../../include/js_strings.php:53 ../../include/text.php:1144 +#: ../../include/js_strings.php:53 ../../include/text.php:1153 msgid "October" msgstr "ottobre" -#: ../../include/js_strings.php:54 ../../include/text.php:1144 +#: ../../include/js_strings.php:54 ../../include/text.php:1153 msgid "November" msgstr "novembre" -#: ../../include/js_strings.php:55 ../../include/text.php:1144 +#: ../../include/js_strings.php:55 ../../include/text.php:1153 msgid "December" msgstr "dicembre" @@ -998,31 +980,31 @@ msgstr "Nov" msgid "Dec" msgstr "Dic" -#: ../../include/js_strings.php:68 ../../include/text.php:1140 +#: ../../include/js_strings.php:68 ../../include/text.php:1149 msgid "Sunday" msgstr "domenica" -#: ../../include/js_strings.php:69 ../../include/text.php:1140 +#: ../../include/js_strings.php:69 ../../include/text.php:1149 msgid "Monday" msgstr "lunedì" -#: ../../include/js_strings.php:70 ../../include/text.php:1140 +#: ../../include/js_strings.php:70 ../../include/text.php:1149 msgid "Tuesday" msgstr "martedì" -#: ../../include/js_strings.php:71 ../../include/text.php:1140 +#: ../../include/js_strings.php:71 ../../include/text.php:1149 msgid "Wednesday" msgstr "mercoledì" -#: ../../include/js_strings.php:72 ../../include/text.php:1140 +#: ../../include/js_strings.php:72 ../../include/text.php:1149 msgid "Thursday" msgstr "giovedì" -#: ../../include/js_strings.php:73 ../../include/text.php:1140 +#: ../../include/js_strings.php:73 ../../include/text.php:1149 msgid "Friday" msgstr "venerdì" -#: ../../include/js_strings.php:74 ../../include/text.php:1140 +#: ../../include/js_strings.php:74 ../../include/text.php:1149 msgid "Saturday" msgstr "sabato" @@ -1237,36 +1219,36 @@ msgstr "Visibile ai contatti approvati." msgid "Visible to specific connections." msgstr "Visibile ad alcuni contatti scelti." -#: ../../include/items.php:4297 ../../mod/display.php:36 +#: ../../include/items.php:4298 ../../mod/display.php:36 #: ../../mod/filestorage.php:27 ../../mod/admin.php:127 #: ../../mod/admin.php:979 ../../mod/admin.php:1179 ../../mod/thing.php:86 #: ../../mod/viewsrc.php:20 msgid "Item not found." msgstr "Elemento non trovato." -#: ../../include/items.php:4806 ../../mod/group.php:38 ../../mod/group.php:137 +#: ../../include/items.php:4807 ../../mod/group.php:38 ../../mod/group.php:137 msgid "Collection not found." msgstr "Insieme di canali non trovato." -#: ../../include/items.php:4822 +#: ../../include/items.php:4823 msgid "Collection is empty." msgstr "L'insieme di canali è vuoto." -#: ../../include/items.php:4829 +#: ../../include/items.php:4830 #, php-format msgid "Collection: %s" msgstr "Insieme: %s" -#: ../../include/items.php:4839 ../../mod/connedit.php:657 +#: ../../include/items.php:4840 ../../mod/connedit.php:673 #, php-format msgid "Connection: %s" msgstr "Contatto: %s" -#: ../../include/items.php:4841 +#: ../../include/items.php:4842 msgid "Connection not found." msgstr "Contatto non trovato." -#: ../../include/api.php:1321 +#: ../../include/api.php:1324 msgid "Public Timeline" msgstr "Diario pubblico" @@ -1317,15 +1299,14 @@ msgstr "Mostra" msgid "Don't show" msgstr "Non mostrare" -#: ../../include/acl_selectors.php:247 ../../mod/photos.php:628 -#: ../../mod/photos.php:998 ../../mod/filestorage.php:147 -#: ../../mod/chat.php:211 ../../mod/events.php:708 ../../mod/thing.php:310 -#: ../../mod/thing.php:356 +#: ../../include/acl_selectors.php:247 ../../mod/filestorage.php:147 +#: ../../mod/chat.php:211 ../../mod/photos.php:631 ../../mod/photos.php:1001 +#: ../../mod/events.php:708 ../../mod/thing.php:310 ../../mod/thing.php:356 msgid "Permissions" msgstr "Permessi" #: ../../include/acl_selectors.php:248 ../../include/ItemObject.php:369 -#: ../../mod/photos.php:1215 +#: ../../mod/photos.php:1218 msgid "Close" msgstr "Chiudi" @@ -1342,28 +1323,28 @@ msgstr "Impossibile clonare il canale. L'importazione è fallita." msgid "Cloned channel not found. Import failed." msgstr "Impossibile trovare il canale clonato. L'importazione è fallita." -#: ../../include/photos.php:109 +#: ../../include/photos.php:112 #, php-format msgid "Image exceeds website size limit of %lu bytes" msgstr "L'immagine supera il limite massimo di %lu bytes" -#: ../../include/photos.php:116 +#: ../../include/photos.php:119 msgid "Image file is empty." msgstr "Il file dell'immagine è vuoto." -#: ../../include/photos.php:143 ../../mod/profile_photo.php:222 +#: ../../include/photos.php:146 ../../mod/profile_photo.php:222 msgid "Unable to process image" msgstr "Impossibile elaborare l'immagine" -#: ../../include/photos.php:232 +#: ../../include/photos.php:257 msgid "Photo storage failed." msgstr "Impossibile salvare la foto." -#: ../../include/photos.php:452 ../../include/conversation.php:1609 +#: ../../include/photos.php:483 ../../include/conversation.php:1616 msgid "Photo Albums" msgstr "Album foto" -#: ../../include/photos.php:456 +#: ../../include/photos.php:487 msgid "Upload New Photos" msgstr "Carica nuove foto" @@ -1386,8 +1367,8 @@ msgid "View" msgstr "Guarda" #: ../../include/page_widgets.php:40 ../../include/ItemObject.php:691 -#: ../../include/conversation.php:1160 ../../mod/photos.php:1046 -#: ../../mod/editblock.php:171 ../../mod/editpost.php:150 +#: ../../include/conversation.php:1160 ../../mod/photos.php:1049 +#: ../../mod/editblock.php:171 ../../mod/editpost.php:149 #: ../../mod/events.php:707 ../../mod/webpages.php:188 #: ../../mod/editwebpage.php:212 msgid "Preview" @@ -1415,8 +1396,8 @@ msgstr "Creato" msgid "Edited" msgstr "Modificato" -#: ../../include/photo/photo_driver.php:705 ../../mod/photos.php:94 -#: ../../mod/photos.php:696 ../../mod/profile_photo.php:146 +#: ../../include/photo/photo_driver.php:708 ../../mod/photos.php:94 +#: ../../mod/photos.php:699 ../../mod/profile_photo.php:146 #: ../../mod/profile_photo.php:236 ../../mod/profile_photo.php:376 msgid "Profile Photos" msgstr "Foto del profilo" @@ -1674,11 +1655,29 @@ msgstr "Contenuti incorporati" msgid "Embedding disabled" msgstr "Disabilita la creazione di contenuti incorporati" +#: ../../include/event.php:22 ../../include/bb2diaspora.php:468 +msgid "l F d, Y \\@ g:i A" +msgstr "l d F Y \\@ G:i" + +#: ../../include/event.php:30 ../../include/bb2diaspora.php:474 +msgid "Starts:" +msgstr "Inizio:" + +#: ../../include/event.php:40 ../../include/bb2diaspora.php:482 +msgid "Finishes:" +msgstr "Fine:" + +#: ../../include/event.php:50 ../../include/identity.php:1016 +#: ../../include/bb2diaspora.php:490 ../../mod/directory.php:302 +#: ../../mod/events.php:701 +msgid "Location:" +msgstr "Luogo:" + #: ../../include/event.php:766 msgid "This event has been added to your calendar." msgstr "Questo evento è stato aggiunto al tuo calendario" -#: ../../include/event.php:896 ../../include/text.php:1846 +#: ../../include/event.php:896 ../../include/text.php:1866 #: ../../include/conversation.php:123 ../../mod/like.php:363 #: ../../mod/tagger.php:47 ../../mod/events.php:245 msgid "event" @@ -1708,7 +1707,7 @@ msgstr "Annullato" msgid "Site Admin" msgstr "Amministrazione sito" -#: ../../include/apps.php:129 ../../include/conversation.php:1639 +#: ../../include/apps.php:129 ../../include/conversation.php:1646 #: ../../include/nav.php:103 msgid "Bookmarks" msgstr "Segnalibri" @@ -1735,7 +1734,7 @@ msgstr "Rete" msgid "Settings" msgstr "Impostazioni" -#: ../../include/apps.php:136 ../../include/conversation.php:1649 +#: ../../include/apps.php:136 ../../include/conversation.php:1656 #: ../../include/nav.php:107 ../../mod/webpages.php:178 msgid "Webpages" msgstr "Pagine web" @@ -1749,7 +1748,7 @@ msgstr "Bacheca del canale" msgid "Profile" msgstr "Profilo" -#: ../../include/apps.php:139 ../../include/conversation.php:1606 +#: ../../include/apps.php:139 ../../include/conversation.php:1613 #: ../../include/nav.php:92 ../../mod/fbrowser.php:25 msgid "Photos" msgstr "Foto" @@ -1786,7 +1785,7 @@ msgstr "Chat" #: ../../include/apps.php:147 ../../include/text.php:857 #: ../../include/text.php:869 ../../include/nav.php:159 -#: ../../mod/search.php:38 +#: ../../mod/search.php:40 msgid "Search" msgstr "Cerca" @@ -1836,6 +1835,68 @@ msgstr "Installa" msgid "Purchase" msgstr "Acquista" +#: ../../include/attach.php:246 ../../include/attach.php:332 +msgid "Item was not found." +msgstr "Elemento non trovato." + +#: ../../include/attach.php:496 +msgid "No source file." +msgstr "Nessun file di origine." + +#: ../../include/attach.php:514 +msgid "Cannot locate file to replace" +msgstr "Il file da sostituire non è stato trovato" + +#: ../../include/attach.php:532 +msgid "Cannot locate file to revise/update" +msgstr "Il file da aggiornare non è stato trovato" + +#: ../../include/attach.php:667 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "Il file supera la dimensione massima di %d" + +#: ../../include/attach.php:681 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati." + +#: ../../include/attach.php:837 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato." + +#: ../../include/attach.php:850 +msgid "Stored file could not be verified. Upload failed." +msgstr "Il file non può essere verificato. Caricamento fallito." + +#: ../../include/attach.php:898 ../../include/attach.php:914 +msgid "Path not available." +msgstr "Percorso non disponibile." + +#: ../../include/attach.php:960 ../../include/attach.php:1112 +msgid "Empty pathname" +msgstr "Il percorso del file è vuoto" + +#: ../../include/attach.php:986 +msgid "duplicate filename or path" +msgstr "il file o il percorso del file è duplicato" + +#: ../../include/attach.php:1008 +msgid "Path not found." +msgstr "Percorso del file non trovato." + +#: ../../include/attach.php:1066 +msgid "mkdir failed." +msgstr "mkdir fallito." + +#: ../../include/attach.php:1070 +msgid "database storage failed." +msgstr "scrittura su database fallita." + +#: ../../include/attach.php:1118 +msgid "Empty path" +msgstr "La posizione è vuota" + #: ../../include/auth.php:131 msgid "Logged out." msgstr "Uscita effettuata." @@ -2064,22 +2125,22 @@ msgid "I abstain" msgstr "Mi astengo" #: ../../include/ItemObject.php:175 ../../include/ItemObject.php:187 -#: ../../include/conversation.php:1681 ../../mod/photos.php:1079 -#: ../../mod/photos.php:1091 +#: ../../include/conversation.php:1688 ../../mod/photos.php:1082 +#: ../../mod/photos.php:1094 msgid "View all" msgstr "Vedi tutto" #: ../../include/ItemObject.php:179 ../../include/identity.php:1276 -#: ../../include/taxonomy.php:403 ../../include/conversation.php:1705 -#: ../../mod/photos.php:1083 +#: ../../include/taxonomy.php:403 ../../include/conversation.php:1712 +#: ../../mod/photos.php:1086 msgctxt "noun" msgid "Like" msgid_plural "Likes" msgstr[0] "Mi piace" msgstr[1] "Mi piace" -#: ../../include/ItemObject.php:184 ../../include/conversation.php:1708 -#: ../../mod/photos.php:1088 +#: ../../include/ItemObject.php:184 ../../include/conversation.php:1715 +#: ../../mod/photos.php:1091 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -2114,7 +2175,7 @@ msgstr "Massaggio con firma non corretta" msgid "Add Tag" msgstr "Aggiungi un tag" -#: ../../include/ItemObject.php:254 ../../mod/photos.php:1023 +#: ../../include/ItemObject.php:254 ../../mod/photos.php:1026 msgid "I like this (toggle)" msgstr "Attiva/disattiva Mi piace" @@ -2122,7 +2183,7 @@ msgstr "Attiva/disattiva Mi piace" msgid "like" msgstr "mi piace" -#: ../../include/ItemObject.php:255 ../../mod/photos.php:1024 +#: ../../include/ItemObject.php:255 ../../mod/photos.php:1027 msgid "I don't like this (toggle)" msgstr "Attiva/disattiva Non mi piace" @@ -2197,54 +2258,54 @@ msgstr "Aggiungi al calendario" msgid "Mark all seen" msgstr "Marca tutto come letto" -#: ../../include/ItemObject.php:363 ../../mod/photos.php:1209 +#: ../../include/ItemObject.php:363 ../../mod/photos.php:1212 msgctxt "noun" msgid "Likes" msgstr "Mi piace" -#: ../../include/ItemObject.php:364 ../../mod/photos.php:1210 +#: ../../include/ItemObject.php:364 ../../mod/photos.php:1213 msgctxt "noun" msgid "Dislikes" msgstr "Non mi piace" #: ../../include/ItemObject.php:374 ../../include/conversation.php:739 -#: ../../include/conversation.php:1214 ../../mod/photos.php:1026 -#: ../../mod/editblock.php:150 ../../mod/editpost.php:130 +#: ../../include/conversation.php:1218 ../../mod/photos.php:1029 +#: ../../mod/editblock.php:150 ../../mod/editpost.php:129 #: ../../mod/editlayout.php:148 ../../mod/editwebpage.php:190 msgid "Please wait" msgstr "Attendere" -#: ../../include/ItemObject.php:679 ../../mod/photos.php:1042 -#: ../../mod/photos.php:1160 +#: ../../include/ItemObject.php:679 ../../mod/photos.php:1045 +#: ../../mod/photos.php:1163 msgid "This is you" msgstr "Questo sei tu" -#: ../../include/ItemObject.php:683 ../../include/conversation.php:1186 -#: ../../mod/editblock.php:136 ../../mod/editpost.php:114 +#: ../../include/ItemObject.php:683 ../../include/conversation.php:1190 +#: ../../mod/editblock.php:136 ../../mod/editpost.php:113 #: ../../mod/editlayout.php:135 ../../mod/editwebpage.php:177 msgid "Bold" msgstr "Grassetto" -#: ../../include/ItemObject.php:684 ../../include/conversation.php:1187 -#: ../../mod/editblock.php:137 ../../mod/editpost.php:115 +#: ../../include/ItemObject.php:684 ../../include/conversation.php:1191 +#: ../../mod/editblock.php:137 ../../mod/editpost.php:114 #: ../../mod/editlayout.php:136 ../../mod/editwebpage.php:178 msgid "Italic" msgstr "Corsivo" -#: ../../include/ItemObject.php:685 ../../include/conversation.php:1188 -#: ../../mod/editblock.php:138 ../../mod/editpost.php:116 +#: ../../include/ItemObject.php:685 ../../include/conversation.php:1192 +#: ../../mod/editblock.php:138 ../../mod/editpost.php:115 #: ../../mod/editlayout.php:137 ../../mod/editwebpage.php:179 msgid "Underline" msgstr "Sottolineato" -#: ../../include/ItemObject.php:686 ../../include/conversation.php:1189 -#: ../../mod/editblock.php:139 ../../mod/editpost.php:117 +#: ../../include/ItemObject.php:686 ../../include/conversation.php:1193 +#: ../../mod/editblock.php:139 ../../mod/editpost.php:116 #: ../../mod/editlayout.php:138 ../../mod/editwebpage.php:180 msgid "Quote" msgstr "Citazione" -#: ../../include/ItemObject.php:687 ../../include/conversation.php:1190 -#: ../../mod/editblock.php:140 ../../mod/editpost.php:118 +#: ../../include/ItemObject.php:687 ../../include/conversation.php:1194 +#: ../../mod/editblock.php:140 ../../mod/editpost.php:117 #: ../../mod/editlayout.php:139 ../../mod/editwebpage.php:181 msgid "Code" msgstr "Codice" @@ -2261,8 +2322,8 @@ msgstr "Collegamento" msgid "Video" msgstr "Video" -#: ../../include/ItemObject.php:694 ../../include/conversation.php:1241 -#: ../../mod/mail.php:247 ../../mod/mail.php:376 ../../mod/editpost.php:158 +#: ../../include/ItemObject.php:694 ../../include/conversation.php:1248 +#: ../../mod/mail.php:247 ../../mod/mail.php:376 ../../mod/editpost.php:157 msgid "Encrypt text" msgstr "Cifratura del messaggio" @@ -2312,228 +2373,228 @@ msgstr "Elenco contatti" msgid "Save" msgstr "Salva" -#: ../../include/text.php:933 +#: ../../include/text.php:942 msgid "poke" msgstr "poke" -#: ../../include/text.php:933 ../../include/conversation.php:243 +#: ../../include/text.php:942 ../../include/conversation.php:243 msgid "poked" msgstr "ha ricevuto un poke" -#: ../../include/text.php:934 +#: ../../include/text.php:943 msgid "ping" msgstr "ping" -#: ../../include/text.php:934 +#: ../../include/text.php:943 msgid "pinged" msgstr "ha ricevuto un ping" -#: ../../include/text.php:935 +#: ../../include/text.php:944 msgid "prod" msgstr "spintone" -#: ../../include/text.php:935 +#: ../../include/text.php:944 msgid "prodded" msgstr "ha ricevuto uno spintone" -#: ../../include/text.php:936 +#: ../../include/text.php:945 msgid "slap" msgstr "schiaffo" -#: ../../include/text.php:936 +#: ../../include/text.php:945 msgid "slapped" msgstr "ha ricevuto uno schiaffo" -#: ../../include/text.php:937 +#: ../../include/text.php:946 msgid "finger" msgstr "finger" -#: ../../include/text.php:937 +#: ../../include/text.php:946 msgid "fingered" msgstr "ha ricevuto un finger" -#: ../../include/text.php:938 +#: ../../include/text.php:947 msgid "rebuff" msgstr "rifiuto" -#: ../../include/text.php:938 +#: ../../include/text.php:947 msgid "rebuffed" msgstr "ha ricevuto un rifiuto" -#: ../../include/text.php:948 +#: ../../include/text.php:957 msgid "happy" msgstr "felice" -#: ../../include/text.php:949 +#: ../../include/text.php:958 msgid "sad" msgstr "triste" -#: ../../include/text.php:950 +#: ../../include/text.php:959 msgid "mellow" msgstr "calmo" -#: ../../include/text.php:951 +#: ../../include/text.php:960 msgid "tired" msgstr "stanco" -#: ../../include/text.php:952 +#: ../../include/text.php:961 msgid "perky" msgstr "vivace" -#: ../../include/text.php:953 +#: ../../include/text.php:962 msgid "angry" msgstr "arrabbiato" -#: ../../include/text.php:954 +#: ../../include/text.php:963 msgid "stupified" msgstr "stordito" -#: ../../include/text.php:955 +#: ../../include/text.php:964 msgid "puzzled" msgstr "confuso" -#: ../../include/text.php:956 +#: ../../include/text.php:965 msgid "interested" msgstr "attento" -#: ../../include/text.php:957 +#: ../../include/text.php:966 msgid "bitter" msgstr "amaro" -#: ../../include/text.php:958 +#: ../../include/text.php:967 msgid "cheerful" msgstr "allegro" -#: ../../include/text.php:959 +#: ../../include/text.php:968 msgid "alive" msgstr "vivace" -#: ../../include/text.php:960 +#: ../../include/text.php:969 msgid "annoyed" msgstr "seccato" -#: ../../include/text.php:961 +#: ../../include/text.php:970 msgid "anxious" msgstr "ansioso" -#: ../../include/text.php:962 +#: ../../include/text.php:971 msgid "cranky" msgstr "irritabile" -#: ../../include/text.php:963 +#: ../../include/text.php:972 msgid "disturbed" msgstr "turbato" -#: ../../include/text.php:964 +#: ../../include/text.php:973 msgid "frustrated" msgstr "frustrato" -#: ../../include/text.php:965 +#: ../../include/text.php:974 msgid "depressed" msgstr "in depressione" -#: ../../include/text.php:966 +#: ../../include/text.php:975 msgid "motivated" msgstr "motivato" -#: ../../include/text.php:967 +#: ../../include/text.php:976 msgid "relaxed" msgstr "rilassato" -#: ../../include/text.php:968 +#: ../../include/text.php:977 msgid "surprised" msgstr "sorpreso" -#: ../../include/text.php:1144 +#: ../../include/text.php:1153 msgid "May" msgstr "maggio" -#: ../../include/text.php:1221 ../../include/text.php:1225 +#: ../../include/text.php:1230 ../../include/text.php:1234 msgid "Unknown Attachment" msgstr "Allegato non riconoscuto" -#: ../../include/text.php:1227 +#: ../../include/text.php:1236 msgid "Attachment" msgstr "Allegato" -#: ../../include/text.php:1227 +#: ../../include/text.php:1236 msgid "Size Unknown" msgstr "Dimensioni non note" -#: ../../include/text.php:1263 +#: ../../include/text.php:1272 msgid "remove category" msgstr "rimuovi la categoria" -#: ../../include/text.php:1340 +#: ../../include/text.php:1349 msgid "remove from file" msgstr "rimuovi dal file" -#: ../../include/text.php:1441 ../../include/text.php:1452 +#: ../../include/text.php:1461 ../../include/text.php:1472 msgid "Click to open/close" msgstr "Clicca per aprire/chiudere" -#: ../../include/text.php:1620 ../../mod/events.php:497 +#: ../../include/text.php:1640 ../../mod/events.php:497 msgid "Link to Source" msgstr "Link al sito d'origine" -#: ../../include/text.php:1641 ../../include/text.php:1712 +#: ../../include/text.php:1661 ../../include/text.php:1732 msgid "default" msgstr "predefinito" -#: ../../include/text.php:1649 +#: ../../include/text.php:1669 msgid "Page layout" msgstr "Layout della pagina" -#: ../../include/text.php:1649 +#: ../../include/text.php:1669 msgid "You can create your own with the layouts tool" msgstr "Con la configurazione del layout puoi crearne uno tuo" -#: ../../include/text.php:1690 +#: ../../include/text.php:1710 msgid "Page content type" msgstr "Tipo di contenuto della pagina" -#: ../../include/text.php:1724 +#: ../../include/text.php:1744 msgid "Select an alternate language" msgstr "Seleziona una lingua diversa" -#: ../../include/text.php:1843 ../../include/conversation.php:120 +#: ../../include/text.php:1863 ../../include/conversation.php:120 #: ../../mod/like.php:361 ../../mod/tagger.php:43 ../../mod/subthread.php:72 #: ../../mod/subthread.php:172 msgid "photo" msgstr "la foto" -#: ../../include/text.php:1849 ../../include/conversation.php:148 +#: ../../include/text.php:1869 ../../include/conversation.php:148 #: ../../mod/like.php:361 ../../mod/subthread.php:72 #: ../../mod/subthread.php:172 msgid "status" msgstr "il messaggio di stato" -#: ../../include/text.php:1851 ../../include/conversation.php:150 +#: ../../include/text.php:1871 ../../include/conversation.php:150 #: ../../mod/tagger.php:53 msgid "comment" msgstr "il commento" -#: ../../include/text.php:1856 +#: ../../include/text.php:1876 msgid "activity" msgstr "l'attività" -#: ../../include/text.php:2151 +#: ../../include/text.php:2171 msgid "Design Tools" msgstr "Strumenti di design" -#: ../../include/text.php:2154 ../../mod/blocks.php:147 +#: ../../include/text.php:2174 ../../mod/blocks.php:147 msgid "Blocks" msgstr "Riquadri" -#: ../../include/text.php:2155 ../../mod/menu.php:103 +#: ../../include/text.php:2175 ../../mod/menu.php:103 msgid "Menus" msgstr "Menù" -#: ../../include/text.php:2156 ../../mod/layouts.php:174 +#: ../../include/text.php:2176 ../../mod/layouts.php:174 msgid "Layouts" msgstr "Layout" -#: ../../include/text.php:2157 +#: ../../include/text.php:2177 msgid "Pages" msgstr "Pagine" @@ -3091,6 +3152,14 @@ msgstr "Scuola:" msgid "Like this thing" msgstr "Mi piace" +#: ../../include/bb2diaspora.php:382 +msgid "Attachments:" +msgstr "Allegati:" + +#: ../../include/bb2diaspora.php:470 +msgid "$Projectname event notification:" +msgstr "Notifica evento $Projectname:" + #: ../../include/taxonomy.php:229 ../../include/taxonomy.php:250 msgid "Tags" msgstr "Tag" @@ -3123,68 +3192,6 @@ msgstr "gli piace" msgid "dislikes" msgstr "non gli piace" -#: ../../include/attach.php:243 ../../include/attach.php:329 -msgid "Item was not found." -msgstr "Elemento non trovato." - -#: ../../include/attach.php:493 -msgid "No source file." -msgstr "Nessun file di origine." - -#: ../../include/attach.php:511 -msgid "Cannot locate file to replace" -msgstr "Il file da sostituire non è stato trovato" - -#: ../../include/attach.php:529 -msgid "Cannot locate file to revise/update" -msgstr "Il file da aggiornare non è stato trovato" - -#: ../../include/attach.php:664 -#, php-format -msgid "File exceeds size limit of %d" -msgstr "Il file supera la dimensione massima di %d" - -#: ../../include/attach.php:678 -#, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati." - -#: ../../include/attach.php:828 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato." - -#: ../../include/attach.php:841 -msgid "Stored file could not be verified. Upload failed." -msgstr "Il file non può essere verificato. Caricamento fallito." - -#: ../../include/attach.php:889 ../../include/attach.php:905 -msgid "Path not available." -msgstr "Percorso non disponibile." - -#: ../../include/attach.php:951 ../../include/attach.php:1103 -msgid "Empty pathname" -msgstr "Il percorso del file è vuoto" - -#: ../../include/attach.php:977 -msgid "duplicate filename or path" -msgstr "il file o il percorso del file è duplicato" - -#: ../../include/attach.php:999 -msgid "Path not found." -msgstr "Percorso del file non trovato." - -#: ../../include/attach.php:1057 -msgid "mkdir failed." -msgstr "mkdir fallito." - -#: ../../include/attach.php:1061 -msgid "database storage failed." -msgstr "scrittura su database fallita." - -#: ../../include/attach.php:1109 -msgid "Empty path" -msgstr "La posizione è vuota" - #: ../../include/conversation.php:126 ../../mod/like.php:113 msgid "channel" msgstr "il canale" @@ -3215,42 +3222,42 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s è %2$s" -#: ../../include/conversation.php:574 ../../mod/photos.php:1060 +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 msgctxt "title" msgid "Likes" msgstr "Mi piace" -#: ../../include/conversation.php:574 ../../mod/photos.php:1060 +#: ../../include/conversation.php:574 ../../mod/photos.php:1063 msgctxt "title" msgid "Dislikes" msgstr "Non mi piace" -#: ../../include/conversation.php:575 ../../mod/photos.php:1061 +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 msgctxt "title" msgid "Agree" msgstr "D'accordo" -#: ../../include/conversation.php:575 ../../mod/photos.php:1061 +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 msgctxt "title" msgid "Disagree" msgstr "Non d'accordo" -#: ../../include/conversation.php:575 ../../mod/photos.php:1061 +#: ../../include/conversation.php:575 ../../mod/photos.php:1064 msgctxt "title" msgid "Abstain" msgstr "Astenuti" -#: ../../include/conversation.php:576 ../../mod/photos.php:1062 +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 msgctxt "title" msgid "Attending" msgstr "Partecipano" -#: ../../include/conversation.php:576 ../../mod/photos.php:1062 +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 msgctxt "title" msgid "Not attending" msgstr "Non partecipano" -#: ../../include/conversation.php:576 ../../mod/photos.php:1062 +#: ../../include/conversation.php:576 ../../mod/photos.php:1065 msgctxt "title" msgid "Might attend" msgstr "Forse partecipano" @@ -3396,269 +3403,273 @@ msgstr "Dove sei ora?" msgid "Expires YYYY-MM-DD HH:MM" msgstr "Scade il YYYY-MM-DD HH:MM" -#: ../../include/conversation.php:1179 ../../mod/photos.php:1025 -#: ../../mod/layouts.php:184 ../../mod/webpages.php:182 +#: ../../include/conversation.php:1183 ../../mod/layouts.php:184 +#: ../../mod/photos.php:1028 ../../mod/webpages.php:182 #: ../../mod/blocks.php:154 msgid "Share" msgstr "Condividi" -#: ../../include/conversation.php:1181 +#: ../../include/conversation.php:1185 msgid "Page link name" msgstr "Nome del link alla pagina" -#: ../../include/conversation.php:1184 +#: ../../include/conversation.php:1188 msgid "Post as" msgstr "Pubblica come " -#: ../../include/conversation.php:1191 ../../mod/editblock.php:142 -#: ../../mod/editpost.php:119 ../../mod/editlayout.php:140 +#: ../../include/conversation.php:1195 ../../mod/editblock.php:142 +#: ../../mod/editpost.php:118 ../../mod/editlayout.php:140 #: ../../mod/editwebpage.php:182 msgid "Upload photo" msgstr "Carica foto" -#: ../../include/conversation.php:1192 +#: ../../include/conversation.php:1196 msgid "upload photo" msgstr "carica foto" -#: ../../include/conversation.php:1193 ../../mod/mail.php:240 +#: ../../include/conversation.php:1197 ../../mod/mail.php:240 #: ../../mod/mail.php:369 ../../mod/editblock.php:143 -#: ../../mod/editpost.php:120 ../../mod/editlayout.php:141 +#: ../../mod/editpost.php:119 ../../mod/editlayout.php:141 #: ../../mod/editwebpage.php:183 msgid "Attach file" msgstr "Allega file" -#: ../../include/conversation.php:1194 +#: ../../include/conversation.php:1198 msgid "attach file" msgstr "allega file" -#: ../../include/conversation.php:1195 ../../mod/mail.php:241 +#: ../../include/conversation.php:1199 ../../mod/mail.php:241 #: ../../mod/mail.php:370 ../../mod/editblock.php:144 -#: ../../mod/editpost.php:121 ../../mod/editlayout.php:142 +#: ../../mod/editpost.php:120 ../../mod/editlayout.php:142 #: ../../mod/editwebpage.php:184 msgid "Insert web link" msgstr "Inserisci un indirizzo web" -#: ../../include/conversation.php:1196 +#: ../../include/conversation.php:1200 msgid "web link" msgstr "link web" -#: ../../include/conversation.php:1197 +#: ../../include/conversation.php:1201 msgid "Insert video link" msgstr "Inserisci l'indirizzo del video" -#: ../../include/conversation.php:1198 +#: ../../include/conversation.php:1202 msgid "video link" msgstr "link video" -#: ../../include/conversation.php:1199 +#: ../../include/conversation.php:1203 msgid "Insert audio link" msgstr "Inserisci l'indirizzo dell'audio" -#: ../../include/conversation.php:1200 +#: ../../include/conversation.php:1204 msgid "audio link" msgstr "link audio" -#: ../../include/conversation.php:1201 ../../mod/editblock.php:148 -#: ../../mod/editpost.php:125 ../../mod/editlayout.php:146 +#: ../../include/conversation.php:1205 ../../mod/editblock.php:148 +#: ../../mod/editpost.php:124 ../../mod/editlayout.php:146 #: ../../mod/editwebpage.php:188 msgid "Set your location" msgstr "La tua località" -#: ../../include/conversation.php:1202 +#: ../../include/conversation.php:1206 msgid "set location" msgstr "la tua località" -#: ../../include/conversation.php:1203 ../../mod/editpost.php:127 +#: ../../include/conversation.php:1207 ../../mod/editpost.php:126 msgid "Toggle voting" msgstr "Abilita/disabilita il voto" -#: ../../include/conversation.php:1206 ../../mod/editblock.php:149 -#: ../../mod/editpost.php:126 ../../mod/editlayout.php:147 +#: ../../include/conversation.php:1210 ../../mod/editblock.php:149 +#: ../../mod/editpost.php:125 ../../mod/editlayout.php:147 #: ../../mod/editwebpage.php:189 msgid "Clear browser location" msgstr "Rimuovi la località data dal browser" -#: ../../include/conversation.php:1207 +#: ../../include/conversation.php:1211 msgid "clear location" msgstr "rimuovi la località" -#: ../../include/conversation.php:1209 ../../mod/editblock.php:162 -#: ../../mod/editpost.php:142 ../../mod/editwebpage.php:205 +#: ../../include/conversation.php:1213 ../../mod/editblock.php:162 +#: ../../mod/editpost.php:141 ../../mod/editwebpage.php:205 msgid "Title (optional)" -msgstr "Titolo (opzionale)" +msgstr "Titolo (facoltativo)" -#: ../../include/conversation.php:1213 ../../mod/editblock.php:165 -#: ../../mod/editpost.php:144 ../../mod/editlayout.php:163 +#: ../../include/conversation.php:1217 ../../mod/editblock.php:165 +#: ../../mod/editpost.php:143 ../../mod/editlayout.php:163 #: ../../mod/editwebpage.php:207 msgid "Categories (optional, comma-separated list)" -msgstr "Categorie (lista separata da virgole)" +msgstr "Categorie (facoltative, lista separata da virgole)" -#: ../../include/conversation.php:1215 ../../mod/editblock.php:151 -#: ../../mod/editpost.php:131 ../../mod/editlayout.php:149 +#: ../../include/conversation.php:1219 ../../mod/editblock.php:151 +#: ../../mod/editpost.php:130 ../../mod/editlayout.php:149 #: ../../mod/editwebpage.php:191 msgid "Permission settings" msgstr "Permessi dei tuoi contatti" -#: ../../include/conversation.php:1216 +#: ../../include/conversation.php:1220 msgid "permissions" msgstr "permessi" -#: ../../include/conversation.php:1224 ../../mod/editblock.php:159 -#: ../../mod/editpost.php:139 ../../mod/editlayout.php:156 +#: ../../include/conversation.php:1228 ../../mod/editblock.php:159 +#: ../../mod/editpost.php:138 ../../mod/editlayout.php:156 #: ../../mod/editwebpage.php:200 msgid "Public post" msgstr "Post pubblico" -#: ../../include/conversation.php:1226 ../../mod/editblock.php:166 -#: ../../mod/editpost.php:145 ../../mod/editlayout.php:164 +#: ../../include/conversation.php:1230 ../../mod/editblock.php:166 +#: ../../mod/editpost.php:144 ../../mod/editlayout.php:164 #: ../../mod/editwebpage.php:208 msgid "Example: bob@example.com, mary@example.com" msgstr "Per esempio: mario@esempio.com, simona@esempio.com" -#: ../../include/conversation.php:1239 ../../mod/mail.php:245 +#: ../../include/conversation.php:1243 ../../mod/mail.php:245 #: ../../mod/mail.php:374 ../../mod/editblock.php:176 -#: ../../mod/editpost.php:156 ../../mod/editlayout.php:173 +#: ../../mod/editpost.php:155 ../../mod/editlayout.php:173 #: ../../mod/editwebpage.php:217 msgid "Set expiration date" msgstr "Data di scadenza" -#: ../../include/conversation.php:1243 ../../mod/editpost.php:160 +#: ../../include/conversation.php:1246 +msgid "Set publish date" +msgstr "Data di uscita programmata" + +#: ../../include/conversation.php:1250 ../../mod/editpost.php:159 #: ../../mod/events.php:691 msgid "OK" msgstr "OK" -#: ../../include/conversation.php:1244 ../../mod/fbrowser.php:82 -#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:161 +#: ../../include/conversation.php:1251 ../../mod/fbrowser.php:82 +#: ../../mod/fbrowser.php:117 ../../mod/editpost.php:160 #: ../../mod/events.php:690 ../../mod/tagrm.php:11 ../../mod/tagrm.php:134 #: ../../mod/settings.php:584 ../../mod/settings.php:610 msgid "Cancel" msgstr "Annulla" -#: ../../include/conversation.php:1487 +#: ../../include/conversation.php:1494 msgid "Discover" msgstr "Scopri" -#: ../../include/conversation.php:1490 +#: ../../include/conversation.php:1497 msgid "Imported public streams" msgstr "Contenuti pubblici importati" -#: ../../include/conversation.php:1495 +#: ../../include/conversation.php:1502 msgid "Commented Order" msgstr "Ultimi commenti" -#: ../../include/conversation.php:1498 +#: ../../include/conversation.php:1505 msgid "Sort by Comment Date" msgstr "Per data del commento" -#: ../../include/conversation.php:1502 +#: ../../include/conversation.php:1509 msgid "Posted Order" msgstr "Ultimi post" -#: ../../include/conversation.php:1505 +#: ../../include/conversation.php:1512 msgid "Sort by Post Date" msgstr "Per data di creazione" -#: ../../include/conversation.php:1510 ../../include/widgets.php:94 +#: ../../include/conversation.php:1517 ../../include/widgets.php:94 msgid "Personal" msgstr "Personali" -#: ../../include/conversation.php:1513 +#: ../../include/conversation.php:1520 msgid "Posts that mention or involve you" msgstr "Post che ti riguardano" -#: ../../include/conversation.php:1519 ../../mod/menu.php:112 +#: ../../include/conversation.php:1526 ../../mod/menu.php:112 #: ../../mod/connections.php:72 ../../mod/connections.php:82 msgid "New" msgstr "Novità" -#: ../../include/conversation.php:1522 +#: ../../include/conversation.php:1529 msgid "Activity Stream - by date" msgstr "Elenco attività - per data" -#: ../../include/conversation.php:1528 +#: ../../include/conversation.php:1535 msgid "Starred" msgstr "Preferiti" -#: ../../include/conversation.php:1531 +#: ../../include/conversation.php:1538 msgid "Favourite Posts" msgstr "Post preferiti" -#: ../../include/conversation.php:1538 +#: ../../include/conversation.php:1545 msgid "Spam" msgstr "Spam" -#: ../../include/conversation.php:1541 +#: ../../include/conversation.php:1548 msgid "Posts flagged as SPAM" msgstr "Post marcati come spam" -#: ../../include/conversation.php:1585 ../../mod/admin.php:947 +#: ../../include/conversation.php:1592 ../../mod/admin.php:947 msgid "Channel" msgstr "Canale" -#: ../../include/conversation.php:1588 +#: ../../include/conversation.php:1595 msgid "Status Messages and Posts" msgstr "Post e messaggi di stato" -#: ../../include/conversation.php:1597 +#: ../../include/conversation.php:1604 msgid "About" msgstr "Informazioni" -#: ../../include/conversation.php:1600 +#: ../../include/conversation.php:1607 msgid "Profile Details" msgstr "Dettagli del profilo" -#: ../../include/conversation.php:1616 +#: ../../include/conversation.php:1623 msgid "Files and Storage" msgstr "Archivio file" -#: ../../include/conversation.php:1626 ../../include/conversation.php:1629 +#: ../../include/conversation.php:1633 ../../include/conversation.php:1636 msgid "Chatrooms" msgstr "Chat" -#: ../../include/conversation.php:1642 +#: ../../include/conversation.php:1649 msgid "Saved Bookmarks" msgstr "Segnalibri salvati" -#: ../../include/conversation.php:1652 +#: ../../include/conversation.php:1659 msgid "Manage Webpages" msgstr "Gestisci le pagine web" -#: ../../include/conversation.php:1711 +#: ../../include/conversation.php:1718 msgctxt "noun" msgid "Attending" msgid_plural "Attending" msgstr[0] "Partecipa" msgstr[1] "Partecipano" -#: ../../include/conversation.php:1714 +#: ../../include/conversation.php:1721 msgctxt "noun" msgid "Not Attending" msgid_plural "Not Attending" msgstr[0] "Non partecipa" msgstr[1] "Non partecipano" -#: ../../include/conversation.php:1717 +#: ../../include/conversation.php:1724 msgctxt "noun" msgid "Undecided" msgid_plural "Undecided" msgstr[0] "Indeciso" msgstr[1] "Indecisi" -#: ../../include/conversation.php:1720 +#: ../../include/conversation.php:1727 msgctxt "noun" msgid "Agree" msgid_plural "Agrees" msgstr[0] "D'accordo" msgstr[1] "D'accordo" -#: ../../include/conversation.php:1723 +#: ../../include/conversation.php:1730 msgctxt "noun" msgid "Disagree" msgid_plural "Disagrees" msgstr[0] "Non d'accordo" msgstr[1] "Non d'accordo" -#: ../../include/conversation.php:1726 +#: ../../include/conversation.php:1733 msgctxt "noun" msgid "Abstain" msgid_plural "Abstains" @@ -3772,7 +3783,7 @@ msgstr "App connesse" msgid "Export channel" msgstr "Esporta il canale" -#: ../../include/widgets.php:529 ../../mod/connedit.php:657 +#: ../../include/widgets.php:529 ../../mod/connedit.php:673 msgid "Connection Default Permissions" msgstr "Permessi predefiniti dei nuovi contatti" @@ -4120,8 +4131,8 @@ msgstr "Modalità SafeSearch" #: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 #: ../../mod/mitem.php:229 ../../mod/connedit.php:630 -#: ../../mod/connedit.php:658 ../../mod/photos.php:625 -#: ../../mod/filestorage.php:151 ../../mod/filestorage.php:159 +#: ../../mod/connedit.php:674 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/photos.php:626 #: ../../mod/admin.php:386 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:574 ../../mod/api.php:106 #: ../../view/theme/redbasic/php/config.php:104 @@ -4132,8 +4143,8 @@ msgstr "No" #: ../../include/dir_fns.php:128 ../../include/dir_fns.php:129 #: ../../include/dir_fns.php:130 ../../mod/removeme.php:60 #: ../../mod/mitem.php:154 ../../mod/mitem.php:155 ../../mod/mitem.php:228 -#: ../../mod/mitem.php:229 ../../mod/photos.php:625 -#: ../../mod/filestorage.php:151 ../../mod/filestorage.php:159 +#: ../../mod/mitem.php:229 ../../mod/filestorage.php:151 +#: ../../mod/filestorage.php:159 ../../mod/photos.php:626 #: ../../mod/admin.php:388 ../../mod/menu.php:96 ../../mod/menu.php:153 #: ../../mod/settings.php:574 ../../mod/api.php:105 #: ../../view/theme/redbasic/php/config.php:104 @@ -4170,8 +4181,8 @@ msgstr "Suggerisci amici" msgid "Suggest a friend for %s" msgstr "Suggerisci un amico a %s" -#: ../../mod/directory.php:59 ../../mod/display.php:13 -#: ../../mod/photos.php:489 ../../mod/search.php:13 ../../mod/ratings.php:82 +#: ../../mod/directory.php:59 ../../mod/display.php:13 ../../mod/search.php:13 +#: ../../mod/photos.php:490 ../../mod/ratings.php:82 #: ../../mod/viewconnections.php:17 msgid "Public access denied." msgstr "Accesso pubblico negato." @@ -4856,100 +4867,109 @@ msgstr "Scegli il profilo da mostrare" msgid "Set Affinity & Profile" msgstr "Affinità e profilo" -#: ../../mod/connedit.php:658 +#: ../../mod/connedit.php:669 +msgid "none" +msgstr "--" + +#: ../../mod/connedit.php:674 msgid "Apply these permissions automatically" msgstr "Applica automaticamente questi permessi" -#: ../../mod/connedit.php:660 -msgid "This connection's address is" -msgstr "Indirizzo di questo contatto" +#: ../../mod/connedit.php:676 +msgid "This connection's primary address is" +msgstr "Indirizzo primario di questo canale" -#: ../../mod/connedit.php:663 +#: ../../mod/connedit.php:677 +msgid "Available locations:" +msgstr "Indirizzi disponibili" + +#: ../../mod/connedit.php:681 msgid "" "The permissions indicated on this page will be applied to all new " "connections." msgstr "I permessi indicati su questa pagina saranno applicati a tutti i nuovi contatti da ora in poi." -#: ../../mod/connedit.php:665 +#: ../../mod/connedit.php:683 msgid "Slide to adjust your degree of friendship" msgstr "Trascina per restringere il grado di amicizia da mostrare" -#: ../../mod/connedit.php:667 +#: ../../mod/connedit.php:685 msgid "Slide to adjust your rating" msgstr "Trascina per cambiare la tua valutazione" -#: ../../mod/connedit.php:668 ../../mod/connedit.php:673 +#: ../../mod/connedit.php:686 ../../mod/connedit.php:691 msgid "Optionally explain your rating" -msgstr "Commento opzionale" +msgstr "Commento facoltativo" -#: ../../mod/connedit.php:670 +#: ../../mod/connedit.php:688 msgid "Custom Filter" msgstr "Filtro personalizzato" -#: ../../mod/connedit.php:671 +#: ../../mod/connedit.php:689 msgid "Only import posts with this text" msgstr "Importa solo i post che contengono queste parole chiave" -#: ../../mod/connedit.php:671 ../../mod/connedit.php:672 +#: ../../mod/connedit.php:689 ../../mod/connedit.php:690 msgid "" -"words one per line or #tags or /patterns/, leave blank to import all posts" -msgstr "una parola per riga, oppure #tag o /pattern/ oppure lascia vuoto per importare tutto" +"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " +"all posts" +msgstr "per ogni riga: parole, #tag, /pattern/ o lang=xx , lascia vuoto per importare tutto" -#: ../../mod/connedit.php:672 +#: ../../mod/connedit.php:690 msgid "Do not import posts with this text" msgstr "Non importare i post con queste parole chiave" -#: ../../mod/connedit.php:674 +#: ../../mod/connedit.php:692 msgid "This information is public!" msgstr "Questa informazione è pubblica!" -#: ../../mod/connedit.php:679 +#: ../../mod/connedit.php:697 msgid "Connection Pending Approval" msgstr "Contatti in attesa di approvazione" -#: ../../mod/connedit.php:680 +#: ../../mod/connedit.php:698 msgid "Connection Request" msgstr "Richiesta di entrare in contatto" -#: ../../mod/connedit.php:681 +#: ../../mod/connedit.php:699 #, php-format msgid "" "(%s) would like to connect with you. Please approve this connection to allow" " communication." msgstr "(%s) vorrebbe entrare in contatto con te. Per permettere la comunicazione è necessario che tu approvi." -#: ../../mod/connedit.php:682 ../../mod/admin.php:781 +#: ../../mod/connedit.php:700 ../../mod/admin.php:781 msgid "Approve" msgstr "Approva" -#: ../../mod/connedit.php:683 +#: ../../mod/connedit.php:701 msgid "Approve Later" msgstr "Approva più tardi" -#: ../../mod/connedit.php:686 +#: ../../mod/connedit.php:704 msgid "inherited" msgstr "derivato" -#: ../../mod/connedit.php:688 +#: ../../mod/connedit.php:706 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Seleziona il profilo che vuoi mostrare a %s dopo che ha effettuato l'accesso." -#: ../../mod/connedit.php:690 +#: ../../mod/connedit.php:708 msgid "Their Settings" msgstr "Permessi concessi a te" -#: ../../mod/connedit.php:691 +#: ../../mod/connedit.php:709 msgid "My Settings" msgstr "Permessi che concedo" -#: ../../mod/connedit.php:693 +#: ../../mod/connedit.php:711 msgid "Individual Permissions" msgstr "Permessi individuali" -#: ../../mod/connedit.php:694 +#: ../../mod/connedit.php:712 msgid "" "Some permissions may be inherited from your channel's privacy settings, which have higher " @@ -4957,7 +4977,7 @@ msgid "" " settings here." msgstr "Alcuni permessi derivano dalle impostazioni di privacy del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Da questa pagina non puoi cambiarle." -#: ../../mod/connedit.php:695 +#: ../../mod/connedit.php:713 msgid "" "Some permissions may be inherited from your channel's privacy settings, which have higher " @@ -4965,7 +4985,7 @@ msgid "" "they wont have any impact unless the inherited setting changes." msgstr "Alcuni permessi derivano dalle impostazioni di privacy del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Le personalizzazioni che effettuerai qui potrebbero non essere effettive a meno che tu non cambi le impostazioni generali." -#: ../../mod/connedit.php:696 +#: ../../mod/connedit.php:714 msgid "Last update:" msgstr "Ultimo aggiornamento:" @@ -4992,165 +5012,6 @@ msgid "" " to correctly use this feature." msgstr "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare." -#: ../../mod/photos.php:79 -msgid "Page owner information could not be retrieved." -msgstr "Impossibile ottenere informazioni sul proprietario della pagina." - -#: ../../mod/photos.php:100 -msgid "Album not found." -msgstr "Album non trovato." - -#: ../../mod/photos.php:127 -msgid "Delete Album" -msgstr "Elimina album" - -#: ../../mod/photos.php:171 ../../mod/photos.php:1006 -msgid "Delete Photo" -msgstr "Elimina foto" - -#: ../../mod/photos.php:500 -msgid "No photos selected" -msgstr "Nessuna foto selezionata" - -#: ../../mod/photos.php:549 -msgid "Access to this item is restricted." -msgstr "Questo elemento non è visibile a tutti." - -#: ../../mod/photos.php:588 -#, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." -msgstr "Hai usato %1$.2f Mb dei %2$.2f Mb di spazio disponibile." - -#: ../../mod/photos.php:591 -#, php-format -msgid "%1$.2f MB photo storage used." -msgstr "Hai usato %1$.2f Mb del tuo spazio disponibile." - -#: ../../mod/photos.php:619 -msgid "Upload Photos" -msgstr "Carica foto" - -#: ../../mod/photos.php:623 -msgid "Enter an album name" -msgstr "Scegli il nome dell'album" - -#: ../../mod/photos.php:624 -msgid "or select an existing album (doubleclick)" -msgstr "o seleziona un album esistente (doppio click)" - -#: ../../mod/photos.php:625 -msgid "Create a status post for this upload" -msgstr "Pubblica sulla bacheca" - -#: ../../mod/photos.php:652 -msgid "Album name could not be decoded" -msgstr "Non è stato possibile leggere il nome dell'album" - -#: ../../mod/photos.php:696 ../../mod/photos.php:1233 -#: ../../mod/photos.php:1250 -msgid "Contact Photos" -msgstr "Foto dei contatti" - -#: ../../mod/photos.php:724 -msgid "Show Newest First" -msgstr "Prima i più recenti" - -#: ../../mod/photos.php:726 -msgid "Show Oldest First" -msgstr "Prima i più vecchi" - -#: ../../mod/photos.php:750 ../../mod/photos.php:1283 -msgid "View Photo" -msgstr "Guarda la foto" - -#: ../../mod/photos.php:779 -msgid "Edit Album" -msgstr "Modifica album" - -#: ../../mod/photos.php:824 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato." - -#: ../../mod/photos.php:826 -msgid "Photo not available" -msgstr "Foto non disponibile" - -#: ../../mod/photos.php:884 -msgid "Use as profile photo" -msgstr "Usa come foto del profilo" - -#: ../../mod/photos.php:891 -msgid "Private Photo" -msgstr "Foto privata" - -#: ../../mod/photos.php:902 ../../mod/events.php:528 -msgid "Previous" -msgstr "Precendente" - -#: ../../mod/photos.php:906 -msgid "View Full Size" -msgstr "Vedi nelle dimensioni originali" - -#: ../../mod/photos.php:911 ../../mod/events.php:529 ../../mod/setup.php:285 -msgid "Next" -msgstr "Successivo" - -#: ../../mod/photos.php:951 ../../mod/tagrm.php:133 -msgid "Remove" -msgstr "Rimuovi" - -#: ../../mod/photos.php:985 -msgid "Edit photo" -msgstr "Modifica la foto" - -#: ../../mod/photos.php:987 -msgid "Rotate CW (right)" -msgstr "Ruota (senso orario)" - -#: ../../mod/photos.php:988 -msgid "Rotate CCW (left)" -msgstr "Ruota (senso antiorario)" - -#: ../../mod/photos.php:991 -msgid "Enter a new album name" -msgstr "Inserisci il nome del nuovo album" - -#: ../../mod/photos.php:992 -msgid "or select an existing one (doubleclick)" -msgstr "o seleziona uno esistente (doppio click)" - -#: ../../mod/photos.php:995 -msgid "Caption" -msgstr "Didascalia" - -#: ../../mod/photos.php:997 -msgid "Add a Tag" -msgstr "Aggiungi tag" - -#: ../../mod/photos.php:1001 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" -msgstr "Esempio: @bob, @Barbara_Jensen, @jim@example.com" - -#: ../../mod/photos.php:1004 -msgid "Flag as adult in album view" -msgstr "Marca come 'per adulti'" - -#: ../../mod/photos.php:1196 -msgid "In This Photo:" -msgstr "In questa foto:" - -#: ../../mod/photos.php:1201 -msgid "Map" -msgstr "Mappa" - -#: ../../mod/photos.php:1289 -msgid "View Album" -msgstr "Guarda l'album" - -#: ../../mod/photos.php:1312 -msgid "Recent Photos" -msgstr "Foto recenti" - #: ../../mod/filestorage.php:82 msgid "Permission Denied." msgstr "Permesso negato." @@ -5306,19 +5167,19 @@ msgstr "Nome della chat" #: ../../mod/chat.php:210 msgid "Expiration of chats (minutes)" -msgstr "Scadenza dei messaggi in chat (minuti)" +msgstr "Scadenza dei messaggi della chat (minuti)" #: ../../mod/chat.php:227 #, php-format msgid "%1$s's Chatrooms" msgstr "Le chat di %1$s" -#: ../../mod/search.php:209 +#: ../../mod/search.php:211 #, php-format msgid "Items tagged with: %s" msgstr "Elementi taggati con: %s" -#: ../../mod/search.php:211 +#: ../../mod/search.php:213 #, php-format msgid "Search results for: %s" msgstr "Risultati ricerca: %s" @@ -5427,6 +5288,173 @@ msgstr "Invia la risposta" msgid "Your message for %s (%s):" msgstr "Il tuo messaggio per %s (%s):" +#: ../../mod/photos.php:79 +msgid "Page owner information could not be retrieved." +msgstr "Impossibile ottenere informazioni sul proprietario della pagina." + +#: ../../mod/photos.php:100 +msgid "Album not found." +msgstr "Album non trovato." + +#: ../../mod/photos.php:127 +msgid "Delete Album" +msgstr "Elimina album" + +#: ../../mod/photos.php:171 ../../mod/photos.php:1009 +msgid "Delete Photo" +msgstr "Elimina foto" + +#: ../../mod/photos.php:501 +msgid "No photos selected" +msgstr "Nessuna foto selezionata" + +#: ../../mod/photos.php:550 +msgid "Access to this item is restricted." +msgstr "Questo elemento non è visibile a tutti." + +#: ../../mod/photos.php:589 +#, php-format +msgid "%1$.2f MB of %2$.2f MB photo storage used." +msgstr "Hai usato %1$.2f Mb dei %2$.2f Mb di spazio disponibile." + +#: ../../mod/photos.php:592 +#, php-format +msgid "%1$.2f MB photo storage used." +msgstr "Hai usato %1$.2f Mb del tuo spazio disponibile." + +#: ../../mod/photos.php:620 +msgid "Upload Photos" +msgstr "Carica foto" + +#: ../../mod/photos.php:624 +msgid "Enter an album name" +msgstr "Scegli il nome dell'album" + +#: ../../mod/photos.php:625 +msgid "or select an existing album (doubleclick)" +msgstr "o seleziona un album esistente (doppio click)" + +#: ../../mod/photos.php:626 +msgid "Create a status post for this upload" +msgstr "Pubblica sulla bacheca" + +#: ../../mod/photos.php:627 +msgid "Caption (optional):" +msgstr "Titolo (facoltativo):" + +#: ../../mod/photos.php:628 +msgid "Description (optional):" +msgstr "Descrizione (facoltativa):" + +#: ../../mod/photos.php:655 +msgid "Album name could not be decoded" +msgstr "Non è stato possibile leggere il nome dell'album" + +#: ../../mod/photos.php:699 ../../mod/photos.php:1236 +#: ../../mod/photos.php:1253 +msgid "Contact Photos" +msgstr "Foto dei contatti" + +#: ../../mod/photos.php:727 +msgid "Show Newest First" +msgstr "Prima i più recenti" + +#: ../../mod/photos.php:729 +msgid "Show Oldest First" +msgstr "Prima i più vecchi" + +#: ../../mod/photos.php:753 ../../mod/photos.php:1286 +msgid "View Photo" +msgstr "Guarda la foto" + +#: ../../mod/photos.php:782 +msgid "Edit Album" +msgstr "Modifica album" + +#: ../../mod/photos.php:827 +msgid "Permission denied. Access to this item may be restricted." +msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato." + +#: ../../mod/photos.php:829 +msgid "Photo not available" +msgstr "Foto non disponibile" + +#: ../../mod/photos.php:887 +msgid "Use as profile photo" +msgstr "Usa come foto del profilo" + +#: ../../mod/photos.php:894 +msgid "Private Photo" +msgstr "Foto privata" + +#: ../../mod/photos.php:905 ../../mod/events.php:528 +msgid "Previous" +msgstr "Precendente" + +#: ../../mod/photos.php:909 +msgid "View Full Size" +msgstr "Vedi nelle dimensioni originali" + +#: ../../mod/photos.php:914 ../../mod/events.php:529 ../../mod/setup.php:285 +msgid "Next" +msgstr "Successivo" + +#: ../../mod/photos.php:954 ../../mod/tagrm.php:133 +msgid "Remove" +msgstr "Rimuovi" + +#: ../../mod/photos.php:988 +msgid "Edit photo" +msgstr "Modifica la foto" + +#: ../../mod/photos.php:990 +msgid "Rotate CW (right)" +msgstr "Ruota (senso orario)" + +#: ../../mod/photos.php:991 +msgid "Rotate CCW (left)" +msgstr "Ruota (senso antiorario)" + +#: ../../mod/photos.php:994 +msgid "Enter a new album name" +msgstr "Inserisci il nome del nuovo album" + +#: ../../mod/photos.php:995 +msgid "or select an existing one (doubleclick)" +msgstr "o seleziona uno esistente (doppio click)" + +#: ../../mod/photos.php:998 +msgid "Caption" +msgstr "Didascalia" + +#: ../../mod/photos.php:1000 +msgid "Add a Tag" +msgstr "Aggiungi tag" + +#: ../../mod/photos.php:1004 +msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" +msgstr "Esempio: @bob, @Barbara_Jensen, @jim@example.com" + +#: ../../mod/photos.php:1007 +msgid "Flag as adult in album view" +msgstr "Marca come 'per adulti'" + +#: ../../mod/photos.php:1199 +msgid "In This Photo:" +msgstr "In questa foto:" + +#: ../../mod/photos.php:1204 +msgid "Map" +msgstr "Mappa" + +#: ../../mod/photos.php:1292 +msgid "View Album" +msgstr "Guarda l'album" + +#: ../../mod/photos.php:1315 +msgid "Recent Photos" +msgstr "Foto recenti" + #: ../../mod/dreport.php:23 msgid "Invalid message" msgstr "Messaggio non valido" @@ -5494,17 +5522,17 @@ msgstr "Elemento non trovato" msgid "Delete block?" msgstr "Vuoi eliminare questo riquadro?" -#: ../../mod/editblock.php:145 ../../mod/editpost.php:122 +#: ../../mod/editblock.php:145 ../../mod/editpost.php:121 #: ../../mod/editlayout.php:143 ../../mod/editwebpage.php:185 msgid "Insert YouTube video" msgstr "Inserisci video da YouTube" -#: ../../mod/editblock.php:146 ../../mod/editpost.php:123 +#: ../../mod/editblock.php:146 ../../mod/editpost.php:122 #: ../../mod/editlayout.php:144 ../../mod/editwebpage.php:186 msgid "Insert Vorbis [.ogg] video" msgstr "Inserisci video Vorbis [.ogg]" -#: ../../mod/editblock.php:147 ../../mod/editpost.php:124 +#: ../../mod/editblock.php:147 ../../mod/editpost.php:123 #: ../../mod/editlayout.php:145 ../../mod/editwebpage.php:187 msgid "Insert Vorbis [.ogg] audio" msgstr "Inserisci audio Vorbis [.ogg]" @@ -5525,7 +5553,7 @@ msgstr "L'elemento non è modificabile" msgid "Delete item?" msgstr "Eliminare questo elemento?" -#: ../../mod/editpost.php:165 ../../mod/rpost.php:128 +#: ../../mod/editpost.php:164 ../../mod/rpost.php:128 msgid "Edit post" msgstr "Modifica post" @@ -6265,7 +6293,7 @@ msgstr "Testo di aiuto" #: ../../mod/admin.php:1410 ../../mod/admin.php:1430 msgid "Additional info (optional)" -msgstr "Informazioni aggiuntive (opzionali)" +msgstr "Informazioni aggiuntive (facoltative)" #: ../../mod/admin.php:1420 msgid "Field definition not found" @@ -6871,20 +6899,20 @@ msgstr "Il post vuoto è stato ignorato." msgid "Executable content type not permitted to this channel." msgstr "I contenuti eseguibili non sono permessi su questo canale." -#: ../../mod/item.php:906 +#: ../../mod/item.php:908 msgid "System error. Post not saved." msgstr "Errore di sistema. Post non salvato." -#: ../../mod/item.php:1173 +#: ../../mod/item.php:1175 msgid "Unable to obtain post information from database." msgstr "Impossibile caricare il post dal database." -#: ../../mod/item.php:1180 +#: ../../mod/item.php:1182 #, php-format msgid "You have reached your limit of %1$.0f top level posts." msgstr "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale." -#: ../../mod/item.php:1187 +#: ../../mod/item.php:1189 #, php-format msgid "You have reached your limit of %1$.0f webpages." msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web." @@ -7364,7 +7392,7 @@ msgstr "Nome dell'oggetto" #: ../../mod/thing.php:306 ../../mod/thing.php:354 msgid "URL of thing (optional)" -msgstr "Indirizzo web dell'oggetto (opzionale)" +msgstr "Indirizzo web dell'oggetto (facoltativo)" #: ../../mod/thing.php:308 ../../mod/thing.php:355 msgid "URL for photo of thing (optional)" @@ -7527,7 +7555,7 @@ msgstr "Url icona" #: ../../mod/settings.php:589 msgid "Optional" -msgstr "Opzionale" +msgstr "Facoltativo" #: ../../mod/settings.php:600 msgid "You can't edit this application." @@ -9034,6 +9062,10 @@ msgid "" "Use this form to import existing posts and content from an export file." msgstr "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza." +#: ../../mod/wholikesme.php:13 +msgid "Who likes me?" +msgstr "Chi mi ha dato un \"Mi piace\"?" + #: ../../view/theme/redbasic/php/config.php:82 msgid "Focus (Hubzilla default)" msgstr "Focus (predefinito)" diff --git a/view/it/hstrings.php b/view/it/hstrings.php index 4ecbab3f1..e69c42745 100644 --- a/view/it/hstrings.php +++ b/view/it/hstrings.php @@ -5,12 +5,6 @@ function string_plural_select_it($n){ return ($n != 1);; }} ; -$a->strings["Attachments:"] = "Allegati:"; -$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; -$a->strings["\$Projectname event notification:"] = "Notifica evento \$Projectname:"; -$a->strings["Starts:"] = "Inizio:"; -$a->strings["Finishes:"] = "Fine:"; -$a->strings["Location:"] = "Luogo:"; $a->strings["No username found in import file."] = "Impossibile trovare il nome utente nel file da importare."; $a->strings["Unable to create a unique channel address. Import failed."] = "Impossibile creare un indirizzo univoco per il canale. L'import è fallito."; $a->strings["Import completed."] = "L'importazione è terminata con successo."; @@ -127,8 +121,10 @@ $a->strings["Channel Sources"] = "Sorgenti del canale"; $a->strings["Automatically import channel content from other channels or feeds"] = "Importa automaticamente il contenuto del canale da altri canali o feed"; $a->strings["Even More Encryption"] = "Cifratura addizionale"; $a->strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Rendi possibile la crifratura aggiuntiva tra mittente e destinatario usando una parola chiave conosciuta a entrambi"; -$a->strings["Enable voting tools"] = "Permetti i post con votazione"; +$a->strings["Enable Voting Tools"] = "Abilita gli strumenti per votare"; $a->strings["Provide a class of post which others can vote on"] = "Rende possibile la creazione di post in cui sarà possibile votare"; +$a->strings["Delayed Posting"] = "Pubblicazione ritardata"; +$a->strings["Allow posts to be published at a later date"] = "Per scegliere una data e un'ora a cui far uscire i post"; $a->strings["Network and Stream Filtering"] = "Filtraggio dei contenuti"; $a->strings["Search by Date"] = "Ricerca per data"; $a->strings["Ability to select posts by date ranges"] = "Per selezionare i post in un intervallo tra date"; @@ -375,6 +371,10 @@ $a->strings["Don't care"] = "Chi se ne frega"; $a->strings["Ask me"] = "Chiedimelo"; $a->strings["Embedded content"] = "Contenuti incorporati"; $a->strings["Embedding disabled"] = "Disabilita la creazione di contenuti incorporati"; +$a->strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; +$a->strings["Starts:"] = "Inizio:"; +$a->strings["Finishes:"] = "Fine:"; +$a->strings["Location:"] = "Luogo:"; $a->strings["This event has been added to your calendar."] = "Questo evento è stato aggiunto al tuo calendario"; $a->strings["event"] = "l'evento"; $a->strings["Not specified"] = "Non specificato"; @@ -412,6 +412,21 @@ $a->strings["Profile Photo"] = "Foto del profilo"; $a->strings["Update"] = "Aggiorna"; $a->strings["Install"] = "Installa"; $a->strings["Purchase"] = "Acquista"; +$a->strings["Item was not found."] = "Elemento non trovato."; +$a->strings["No source file."] = "Nessun file di origine."; +$a->strings["Cannot locate file to replace"] = "Il file da sostituire non è stato trovato"; +$a->strings["Cannot locate file to revise/update"] = "Il file da aggiornare non è stato trovato"; +$a->strings["File exceeds size limit of %d"] = "Il file supera la dimensione massima di %d"; +$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati."; +$a->strings["File upload failed. Possible system limit or action terminated."] = "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato."; +$a->strings["Stored file could not be verified. Upload failed."] = "Il file non può essere verificato. Caricamento fallito."; +$a->strings["Path not available."] = "Percorso non disponibile."; +$a->strings["Empty pathname"] = "Il percorso del file è vuoto"; +$a->strings["duplicate filename or path"] = "il file o il percorso del file è duplicato"; +$a->strings["Path not found."] = "Percorso del file non trovato."; +$a->strings["mkdir failed."] = "mkdir fallito."; +$a->strings["database storage failed."] = "scrittura su database fallita."; +$a->strings["Empty path"] = "La posizione è vuota"; $a->strings["Logged out."] = "Uscita effettuata."; $a->strings["Failed authentication"] = "Autenticazione fallita"; $a->strings["Login failed."] = "Accesso fallito."; @@ -713,6 +728,8 @@ $a->strings["Love/Romance:"] = "Amore:"; $a->strings["Work/employment:"] = "Lavoro:"; $a->strings["School/education:"] = "Scuola:"; $a->strings["Like this thing"] = "Mi piace"; +$a->strings["Attachments:"] = "Allegati:"; +$a->strings["\$Projectname event notification:"] = "Notifica evento \$Projectname:"; $a->strings["Tags"] = "Tag"; $a->strings["Keywords"] = "Parole chiave"; $a->strings["have"] = "ho"; @@ -721,21 +738,6 @@ $a->strings["want"] = "voglio"; $a->strings["wants"] = "vuole"; $a->strings["likes"] = "gli piace"; $a->strings["dislikes"] = "non gli piace"; -$a->strings["Item was not found."] = "Elemento non trovato."; -$a->strings["No source file."] = "Nessun file di origine."; -$a->strings["Cannot locate file to replace"] = "Il file da sostituire non è stato trovato"; -$a->strings["Cannot locate file to revise/update"] = "Il file da aggiornare non è stato trovato"; -$a->strings["File exceeds size limit of %d"] = "Il file supera la dimensione massima di %d"; -$a->strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Hai raggiunto il limite complessivo di %1$.0f Mbytes per gli allegati."; -$a->strings["File upload failed. Possible system limit or action terminated."] = "Caricamento file fallito, potrebbe essere stato interrotto o potrebbe aver superato lo spazio assegnato."; -$a->strings["Stored file could not be verified. Upload failed."] = "Il file non può essere verificato. Caricamento fallito."; -$a->strings["Path not available."] = "Percorso non disponibile."; -$a->strings["Empty pathname"] = "Il percorso del file è vuoto"; -$a->strings["duplicate filename or path"] = "il file o il percorso del file è duplicato"; -$a->strings["Path not found."] = "Percorso del file non trovato."; -$a->strings["mkdir failed."] = "mkdir fallito."; -$a->strings["database storage failed."] = "scrittura su database fallita."; -$a->strings["Empty path"] = "La posizione è vuota"; $a->strings["channel"] = "il canale"; $a->strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s piace %3\$s di %2\$s"; $a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s non piace %3\$s di %2\$s"; @@ -808,13 +810,14 @@ $a->strings["set location"] = "la tua località"; $a->strings["Toggle voting"] = "Abilita/disabilita il voto"; $a->strings["Clear browser location"] = "Rimuovi la località data dal browser"; $a->strings["clear location"] = "rimuovi la località"; -$a->strings["Title (optional)"] = "Titolo (opzionale)"; -$a->strings["Categories (optional, comma-separated list)"] = "Categorie (lista separata da virgole)"; +$a->strings["Title (optional)"] = "Titolo (facoltativo)"; +$a->strings["Categories (optional, comma-separated list)"] = "Categorie (facoltative, lista separata da virgole)"; $a->strings["Permission settings"] = "Permessi dei tuoi contatti"; $a->strings["permissions"] = "permessi"; $a->strings["Public post"] = "Post pubblico"; $a->strings["Example: bob@example.com, mary@example.com"] = "Per esempio: mario@esempio.com, simona@esempio.com"; $a->strings["Set expiration date"] = "Data di scadenza"; +$a->strings["Set publish date"] = "Data di uscita programmata"; $a->strings["OK"] = "OK"; $a->strings["Cancel"] = "Annulla"; $a->strings["Discover"] = "Scopri"; @@ -1146,15 +1149,17 @@ $a->strings["Accept connection to allow communication"] = "Entra in contatto per $a->strings["Set Affinity"] = "Scegli l'affinità"; $a->strings["Set Profile"] = "Scegli il profilo da mostrare"; $a->strings["Set Affinity & Profile"] = "Affinità e profilo"; +$a->strings["none"] = "--"; $a->strings["Apply these permissions automatically"] = "Applica automaticamente questi permessi"; -$a->strings["This connection's address is"] = "Indirizzo di questo contatto"; +$a->strings["This connection's primary address is"] = "Indirizzo primario di questo canale"; +$a->strings["Available locations:"] = "Indirizzi disponibili"; $a->strings["The permissions indicated on this page will be applied to all new connections."] = "I permessi indicati su questa pagina saranno applicati a tutti i nuovi contatti da ora in poi."; $a->strings["Slide to adjust your degree of friendship"] = "Trascina per restringere il grado di amicizia da mostrare"; $a->strings["Slide to adjust your rating"] = "Trascina per cambiare la tua valutazione"; -$a->strings["Optionally explain your rating"] = "Commento opzionale"; +$a->strings["Optionally explain your rating"] = "Commento facoltativo"; $a->strings["Custom Filter"] = "Filtro personalizzato"; $a->strings["Only import posts with this text"] = "Importa solo i post che contengono queste parole chiave"; -$a->strings["words one per line or #tags or /patterns/, leave blank to import all posts"] = "una parola per riga, oppure #tag o /pattern/ oppure lascia vuoto per importare tutto"; +$a->strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "per ogni riga: parole, #tag, /pattern/ o lang=xx , lascia vuoto per importare tutto"; $a->strings["Do not import posts with this text"] = "Non importare i post con queste parole chiave"; $a->strings["This information is public!"] = "Questa informazione è pubblica!"; $a->strings["Connection Pending Approval"] = "Contatti in attesa di approvazione"; @@ -1175,45 +1180,6 @@ $a->strings["Hub not found."] = "Hub non trovato."; $a->strings["This setting requires special processing and editing has been blocked."] = "Questa impostazione è bloccata, richiede criteri di modifica speciali"; $a->strings["Configuration Editor"] = "Editor di configurazione"; $a->strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare."; -$a->strings["Page owner information could not be retrieved."] = "Impossibile ottenere informazioni sul proprietario della pagina."; -$a->strings["Album not found."] = "Album non trovato."; -$a->strings["Delete Album"] = "Elimina album"; -$a->strings["Delete Photo"] = "Elimina foto"; -$a->strings["No photos selected"] = "Nessuna foto selezionata"; -$a->strings["Access to this item is restricted."] = "Questo elemento non è visibile a tutti."; -$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "Hai usato %1$.2f Mb dei %2$.2f Mb di spazio disponibile."; -$a->strings["%1$.2f MB photo storage used."] = "Hai usato %1$.2f Mb del tuo spazio disponibile."; -$a->strings["Upload Photos"] = "Carica foto"; -$a->strings["Enter an album name"] = "Scegli il nome dell'album"; -$a->strings["or select an existing album (doubleclick)"] = "o seleziona un album esistente (doppio click)"; -$a->strings["Create a status post for this upload"] = "Pubblica sulla bacheca"; -$a->strings["Album name could not be decoded"] = "Non è stato possibile leggere il nome dell'album"; -$a->strings["Contact Photos"] = "Foto dei contatti"; -$a->strings["Show Newest First"] = "Prima i più recenti"; -$a->strings["Show Oldest First"] = "Prima i più vecchi"; -$a->strings["View Photo"] = "Guarda la foto"; -$a->strings["Edit Album"] = "Modifica album"; -$a->strings["Permission denied. Access to this item may be restricted."] = "Permesso negato. L'accesso a questo elemento può essere stato limitato."; -$a->strings["Photo not available"] = "Foto non disponibile"; -$a->strings["Use as profile photo"] = "Usa come foto del profilo"; -$a->strings["Private Photo"] = "Foto privata"; -$a->strings["Previous"] = "Precendente"; -$a->strings["View Full Size"] = "Vedi nelle dimensioni originali"; -$a->strings["Next"] = "Successivo"; -$a->strings["Remove"] = "Rimuovi"; -$a->strings["Edit photo"] = "Modifica la foto"; -$a->strings["Rotate CW (right)"] = "Ruota (senso orario)"; -$a->strings["Rotate CCW (left)"] = "Ruota (senso antiorario)"; -$a->strings["Enter a new album name"] = "Inserisci il nome del nuovo album"; -$a->strings["or select an existing one (doubleclick)"] = "o seleziona uno esistente (doppio click)"; -$a->strings["Caption"] = "Didascalia"; -$a->strings["Add a Tag"] = "Aggiungi tag"; -$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Esempio: @bob, @Barbara_Jensen, @jim@example.com"; -$a->strings["Flag as adult in album view"] = "Marca come 'per adulti'"; -$a->strings["In This Photo:"] = "In questa foto:"; -$a->strings["Map"] = "Mappa"; -$a->strings["View Album"] = "Guarda l'album"; -$a->strings["Recent Photos"] = "Foto recenti"; $a->strings["Permission Denied."] = "Permesso negato."; $a->strings["File not found."] = "File non trovato."; $a->strings["Edit file permissions"] = "Modifica i permessi del file"; @@ -1252,7 +1218,7 @@ $a->strings["I am online"] = "Sono online"; $a->strings["Bookmark this room"] = "Aggiungi questa chat ai segnalibri"; $a->strings["New Chatroom"] = "Nuova chat"; $a->strings["Chatroom Name"] = "Nome della chat"; -$a->strings["Expiration of chats (minutes)"] = "Scadenza dei messaggi in chat (minuti)"; +$a->strings["Expiration of chats (minutes)"] = "Scadenza dei messaggi della chat (minuti)"; $a->strings["%1\$s's Chatrooms"] = "Le chat di %1\$s"; $a->strings["Items tagged with: %s"] = "Elementi taggati con: %s"; $a->strings["Search results for: %s"] = "Risultati ricerca: %s"; @@ -1281,6 +1247,47 @@ $a->strings["Delete Conversation"] = "Elimina la conversazione"; $a->strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Non è disponibile alcun modo sicuro di comunicare con questo canale. Se possibile, prova a rispondere direttamente dalla pagina del profilo del mittente."; $a->strings["Send Reply"] = "Invia la risposta"; $a->strings["Your message for %s (%s):"] = "Il tuo messaggio per %s (%s):"; +$a->strings["Page owner information could not be retrieved."] = "Impossibile ottenere informazioni sul proprietario della pagina."; +$a->strings["Album not found."] = "Album non trovato."; +$a->strings["Delete Album"] = "Elimina album"; +$a->strings["Delete Photo"] = "Elimina foto"; +$a->strings["No photos selected"] = "Nessuna foto selezionata"; +$a->strings["Access to this item is restricted."] = "Questo elemento non è visibile a tutti."; +$a->strings["%1$.2f MB of %2$.2f MB photo storage used."] = "Hai usato %1$.2f Mb dei %2$.2f Mb di spazio disponibile."; +$a->strings["%1$.2f MB photo storage used."] = "Hai usato %1$.2f Mb del tuo spazio disponibile."; +$a->strings["Upload Photos"] = "Carica foto"; +$a->strings["Enter an album name"] = "Scegli il nome dell'album"; +$a->strings["or select an existing album (doubleclick)"] = "o seleziona un album esistente (doppio click)"; +$a->strings["Create a status post for this upload"] = "Pubblica sulla bacheca"; +$a->strings["Caption (optional):"] = "Titolo (facoltativo):"; +$a->strings["Description (optional):"] = "Descrizione (facoltativa):"; +$a->strings["Album name could not be decoded"] = "Non è stato possibile leggere il nome dell'album"; +$a->strings["Contact Photos"] = "Foto dei contatti"; +$a->strings["Show Newest First"] = "Prima i più recenti"; +$a->strings["Show Oldest First"] = "Prima i più vecchi"; +$a->strings["View Photo"] = "Guarda la foto"; +$a->strings["Edit Album"] = "Modifica album"; +$a->strings["Permission denied. Access to this item may be restricted."] = "Permesso negato. L'accesso a questo elemento può essere stato limitato."; +$a->strings["Photo not available"] = "Foto non disponibile"; +$a->strings["Use as profile photo"] = "Usa come foto del profilo"; +$a->strings["Private Photo"] = "Foto privata"; +$a->strings["Previous"] = "Precendente"; +$a->strings["View Full Size"] = "Vedi nelle dimensioni originali"; +$a->strings["Next"] = "Successivo"; +$a->strings["Remove"] = "Rimuovi"; +$a->strings["Edit photo"] = "Modifica la foto"; +$a->strings["Rotate CW (right)"] = "Ruota (senso orario)"; +$a->strings["Rotate CCW (left)"] = "Ruota (senso antiorario)"; +$a->strings["Enter a new album name"] = "Inserisci il nome del nuovo album"; +$a->strings["or select an existing one (doubleclick)"] = "o seleziona uno esistente (doppio click)"; +$a->strings["Caption"] = "Didascalia"; +$a->strings["Add a Tag"] = "Aggiungi tag"; +$a->strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Esempio: @bob, @Barbara_Jensen, @jim@example.com"; +$a->strings["Flag as adult in album view"] = "Marca come 'per adulti'"; +$a->strings["In This Photo:"] = "In questa foto:"; +$a->strings["Map"] = "Mappa"; +$a->strings["View Album"] = "Guarda l'album"; +$a->strings["Recent Photos"] = "Foto recenti"; $a->strings["Invalid message"] = "Messaggio non valido"; $a->strings["no results"] = "nessun risultato"; $a->strings["Delivery report for %1\$s"] = "Rapporto di consegna - %1\$s"; @@ -1484,7 +1491,7 @@ $a->strings["Input type"] = "Tipo di dati"; $a->strings["Field Name"] = "Nome del campo"; $a->strings["Label on profile pages"] = "Etichetta da mostrare sulla pagina del profilo"; $a->strings["Help text"] = "Testo di aiuto"; -$a->strings["Additional info (optional)"] = "Informazioni aggiuntive (opzionali)"; +$a->strings["Additional info (optional)"] = "Informazioni aggiuntive (facoltative)"; $a->strings["Field definition not found"] = "Impossibile trovare la definizione del campo"; $a->strings["Edit Profile Field"] = "Modifica campo del profilo"; $a->strings["App installed."] = "App installata"; @@ -1738,7 +1745,7 @@ $a->strings["Select a profile"] = "Scegli un profilo"; $a->strings["Post an activity"] = "Pubblica un'attività"; $a->strings["Only sends to viewers of the applicable profile"] = "Invia solo a chi può vedere il profilo scelto"; $a->strings["Name of thing e.g. something"] = "Nome dell'oggetto"; -$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto (opzionale)"; +$a->strings["URL of thing (optional)"] = "Indirizzo web dell'oggetto (facoltativo)"; $a->strings["URL for photo of thing (optional)"] = "Indirizzo di un'immagine dell'oggetto (facoltativo)"; $a->strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo"; $a->strings["Total invitation limit exceeded."] = "Hai superato il numero massimo di inviti."; @@ -1779,7 +1786,7 @@ $a->strings["Consumer Secret"] = "Consumer Secret"; $a->strings["Redirect"] = "Redirect"; $a->strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI di riderezione - lasciare vuoto se non richiesto specificamente dall'applicazione"; $a->strings["Icon url"] = "Url icona"; -$a->strings["Optional"] = "Opzionale"; +$a->strings["Optional"] = "Facoltativo"; $a->strings["You can't edit this application."] = "Non puoi modificare questa applicazione."; $a->strings["Connected Apps"] = "App connesse"; $a->strings["Client key starts with"] = "La client key inizia con"; @@ -2130,6 +2137,7 @@ $a->strings["Or enter new bookmark folder name"] = "O inserisci il nome di una n $a->strings["Import completed"] = "Importazione completata"; $a->strings["Import Items"] = "Importa i contenuti"; $a->strings["Use this form to import existing posts and content from an export file."] = "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza."; +$a->strings["Who likes me?"] = "Chi mi ha dato un \"Mi piace\"?"; $a->strings["Focus (Hubzilla default)"] = "Focus (predefinito)"; $a->strings["Theme settings"] = "Impostazioni del tema"; $a->strings["Select scheme"] = "Scegli uno schema"; From 73bef17365b6ca1a92c78243eed5252ec4869f86 Mon Sep 17 00:00:00 2001 From: Haakon Meland Eriksen Date: Wed, 4 Nov 2015 19:06:25 +0100 Subject: [PATCH 084/150] Removed fixed directory server - new list available in admin panel if one becomes unavailable --- .openshift/action_hooks/deploy | 1 - 1 file changed, 1 deletion(-) diff --git a/.openshift/action_hooks/deploy b/.openshift/action_hooks/deploy index 7b4c9f477..f61cb43f2 100755 --- a/.openshift/action_hooks/deploy +++ b/.openshift/action_hooks/deploy @@ -185,7 +185,6 @@ util/config system expire_delivery_reports 3 util/config system feed_contacts 0 util/config system diaspora_enabled 0 util/config system disable_discover_tab 1 -util/config system directory_server https://blablanet.com util/config directory safemode 0 util/config directory globaldir 1 util/config directory pubforums 0 From 1c0fe8936819f760800bf0d0fd79aa42c21933b2 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Wed, 4 Nov 2015 22:52:40 +0100 Subject: [PATCH 085/150] Chat page improved (I think). Works now better with diff. resolutions, font sizes and languages. Fixed follow field on conn. page. Small schemas updates. --- view/css/mod_chat.css | 17 ++++++++++++--- view/css/widgets.css | 1 + view/theme/redbasic/schema/bluegrid.css | 4 ++-- view/theme/redbasic/schema/dark.css | 5 +++++ view/tpl/chat.tpl | 28 ++++++++++++++----------- view/tpl/follow.tpl | 2 +- 6 files changed, 39 insertions(+), 18 deletions(-) diff --git a/view/css/mod_chat.css b/view/css/mod_chat.css index 99037aeef..ded4b0ceb 100644 --- a/view/css/mod_chat.css +++ b/view/css/mod_chat.css @@ -6,18 +6,19 @@ #chatTopBar { float: left; height: 400px; - width: 400px; + width: 77%; overflow-y: auto; } #chatSide { float: right; - width: 150px; + width: 20%; height: 100%; } #chatDrop { - margin-bottom: 20px; + margin: 20px 0; + float: right; } #chatUsers { @@ -31,6 +32,14 @@ margin-top: 20px; } +#chatOptionsBar { + margin-top: 20px; +} + + #chatText { + width: 100%; + } + section { padding-bottom: 0; } @@ -60,3 +69,5 @@ padding: 3px; display: inline-block; } + + diff --git a/view/css/widgets.css b/view/css/widgets.css index 516e59e6f..eb771cc06 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -27,6 +27,7 @@ #side-follow-url { margin-top: 5px; + width: 100%; } #side-follow-submit { diff --git a/view/theme/redbasic/schema/bluegrid.css b/view/theme/redbasic/schema/bluegrid.css index 15e17c48b..2c6f34558 100644 --- a/view/theme/redbasic/schema/bluegrid.css +++ b/view/theme/redbasic/schema/bluegrid.css @@ -337,7 +337,7 @@ input { background-color: #FFF; } -.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit, form#chat-form > input, div#adminpage > form > div.submit > input, input.sources-submit, input.contact-edit-submit { +.btn-primary, input#event-submit, input#rmagic-submit-button, input#lostpass-submit-button, input#side-follow-submit, .profile-edit-submit-wrapper > input.profile-edit-submit-button, input#profile-photo-submit, form#chat-form > input, div#adminpage > form > div.submit > input, input.sources-submit, input.contact-edit-submit, input#dbtn-submit { background-color: #FFF; color: #43488A; border-radius: 0px; @@ -346,7 +346,7 @@ input { transition: all .3s ease-in-out; } -.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus, form#chat-form > input:hover, form#chat-form > input:focus, div#adminpage > form > div.submit > input:hover, div#adminpage > form > div.submit > input:focus, input.sources-submit:hover, input.sources-submit:focus, input.contact-edit-submit:focus, input.contact-edit-submit:hover { +.btn-primary:hover, .btn-primary:focus, input#event-submit:hover, input#event-submit:focus, input#rmagic-submit-button:hover, input#rmagic-submit-button:focus, input#lostpass-submit-button:hover, input#lostpass-submit-button:focus, input#side-follow-submit:hover, input#side-follow-submit:focus, .profile-edit-submit-wrapper > input.profile-edit-submit-button:hover, .profile-edit-submit-wrapper > input.profile-edit-submit-button:focus, input#profile-photo-submit:hover, input#profile-photo-submit:focus, form#chat-form > input:hover, form#chat-form > input:focus, div#adminpage > form > div.submit > input:hover, div#adminpage > form > div.submit > input:focus, input.sources-submit:hover, input.sources-submit:focus, input.contact-edit-submit:focus, input.contact-edit-submit:hover, input#dbtn-submit:hover, input#dbtn-submit:focus { border-color: #FFF; background-color: #43488A; color: #FFF; diff --git a/view/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css index 9574df182..20f9e0833 100644 --- a/view/theme/redbasic/schema/dark.css +++ b/view/theme/redbasic/schema/dark.css @@ -307,6 +307,11 @@ pre { border-color: #222; } +.pmenu-item:hover a { + background-color: #333 !important; + color: #ddd; +} + .preview { background: url('../img/gray_and_black_diagonal_stripes_background_seamless.gif'); } diff --git a/view/tpl/chat.tpl b/view/tpl/chat.tpl index 003e0192b..18576fd56 100644 --- a/view/tpl/chat.tpl +++ b/view/tpl/chat.tpl @@ -1,12 +1,5 @@
-

{{$room_name}}

-
-
-
-
- -
{{if $is_owner}}
@@ -14,9 +7,20 @@ -

+
{{/if}} +

{{$room_name}}

+ + +
+ +
+
+
+ +
+

@@ -25,14 +29,14 @@
-
+
- {{$leave}} | {{$away}} | {{$online}}{{if $bookmark_link}} | {{$bookmark}}{{/if}} -
- +
+ {{$leave}} | {{$away}} | {{$online}}{{if $bookmark_link}} | {{$bookmark}}{{/if}} +
diff --git a/view/tpl/follow.tpl b/view/tpl/follow.tpl index f643a3597..0c808b9a5 100755 --- a/view/tpl/follow.tpl +++ b/view/tpl/follow.tpl @@ -2,7 +2,7 @@

{{$connect}}

{{$desc}}
- +
{{if $abook_usage_message}} From f4a9529968fedb65289d49ec0901739df17df698 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 17:47:24 -0800 Subject: [PATCH 086/150] Firefox Share API provider interface (first cut, only has share ability) --- mod/ffsapi.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ version.inc | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 mod/ffsapi.php diff --git a/mod/ffsapi.php b/mod/ffsapi.php new file mode 100644 index 000000000..15cc8365f --- /dev/null +++ b/mod/ffsapi.php @@ -0,0 +1,64 @@ + + +var baseurl = '$baseurl'; + +var data = { + "origin": baseurl, + // currently required + "name": '$name', + "iconURL": baseurl+"/images/hz-16.png", + "icon32URL": baseurl+"/images/hz-32.png", + "icon64URL": baseurl+"/images/hz-64.png", + + // at least one of these must be defined + // "workerURL": baseurl+"/worker.js", + // "sidebarURL": baseurl+"/sidebar.htm", + "shareURL": baseurl+"/rpost?f=&url=%{url}", + + // status buttons are scheduled for Firefox 26 or 27 + //"statusURL": baseurl+"/statusPanel.html", + + // social bookmarks are available in Firefox 26 + //"markURL": baseurl+"/mark.html?url=%{url}", + // icons should be 32x32 pixels + //"markedIcon": baseurl+"/unchecked.jpg", + //"unmarkedIcon": baseurl+"/checked.jpg", + + // should be available for display purposes + "description": '$description', + "author": '$author', + "homepageURL": '$homepage', + + // optional + "version": "1.0" +} + +function activate(node) { + var event = new CustomEvent("ActivateSocialFeature"); + var jdata = JSON.stringify(data); + node.setAttribute("data-service", JSON.stringify(data)); + node.dispatchEvent(event); +} + + + + +EOT; + +return $s; + +} \ No newline at end of file diff --git a/version.inc b/version.inc index 4013cd9db..d0eb99d9c 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-11-03.1205 +2015-11-04.1206 From 5dfaeaf526a115a4699cebed7a28b97a7aad019f Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 18:15:03 -0800 Subject: [PATCH 087/150] add bookmarking to FF social api provider --- images/checkbox-checked-32.png | Bin 0 -> 1397 bytes images/checkbox-unchecked-32.png | Bin 0 -> 1063 bytes mod/ffsapi.php | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 images/checkbox-checked-32.png create mode 100644 images/checkbox-unchecked-32.png diff --git a/images/checkbox-checked-32.png b/images/checkbox-checked-32.png new file mode 100644 index 0000000000000000000000000000000000000000..01e51c2031cee21f6a6864774a8b9986f9fe0afa GIT binary patch literal 1397 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFlS_jM3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWv2L<~p`n7AnVzAE zshOFfj)IYap^?4;5Si&3npl~dSs9rtK!Fm_wxX0Ys~{IQs9ivwtx`rwNr9EVetCJh zUb(Seeo?xx^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal@=Hr> zm4GgVcpk{1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ8NHOu6f1LQb4wFT z6H@~NBO@~lLqiK^LlYNs6DJdA7gG~+7bBP%*z{VMm^iySy1KZSI=UDdx*9oII2pM( z8ao*}xf!`w7(2rBdgc|EB<3Zj!tBii+6&bSv;~h|E9aur#FG4?ko^1{SPBTp$S=t+ z&d4uNa1J(8(C|%6&ddV|Xo4aL;$N54qRg_?6t|-MTm^6lTV-N#0b!p*^rny#YWhIO z=!236QgVR_0n;Fe2~Ye$4m|s$<^l6e5ioQ7=5&u?U|?MA>EaktaVyEk-#>kUYC_Ti z!-U3wty@Jy%y;eF$(+cjtgM_{%dn+so7jar?2E+&&an49X;OCYOG|zF@6S)+;4UsP z2H*8-)>zj6b1E#9TqZjus^Ht3ovT*OvakQgu$B4d(xsvix(CGB|Nr}&oOCE|+8n#u zWg9j;xxW5>fna#J_?or@wFg?-_SOBJHfz?#`u~nTnh7%)eA(ML?@a0H+H~LmgGuU- zCXN-B`s*KDT6+3`gGI>;gH2bit`5KGvwn>ZKQFJM?xgN6uZCsJM;jeu!onE0GiO*C zoUQr$OEj-4FV8IOGH1kt=g+zMYZu5qeLD4k!~W9OWoc=An_gB{T6%hR?g(OxQd#V> zZ2NX|114$d*$Q{!_t!Bx_cS*%-~96C&6*`kR6Z3K1q3Kuc)NCOuE0BggND;gvh$`* z^U4eql#^o<$;-@i7G|Fn7cjv;E3(CQZ+p8t!{zMy|13K^e0)k06BSLlcRzXZX)BEi7#xt`hm@0CVSLFnn~=d#Wzp$P!>I_g0H literal 0 HcmV?d00001 diff --git a/images/checkbox-unchecked-32.png b/images/checkbox-unchecked-32.png new file mode 100644 index 0000000000000000000000000000000000000000..80ce922433c4effd686809104d5975c8dbdba494 GIT binary patch literal 1063 zcmbVL&ui0A98XtaGTF(?6vStCQLy>dByGdGt<7s)!OYop*rRFkx`r)zS@LGHp%*8j z0}p~Hy}5&U5%H!X?w|*c1MwjK1;QL`DuNz-Y1iptDj1Ty_rCA@`FwxhoSHl{IB;}; zVVJ?n1gz2(#NWX_`u{Psxki^Gq*N!u{0lQ#8Yjj77d_%^?CBXx8!a?AG&_EO6{RdqFV-!`D&EnOF|c^zvlQ zTAs6VHaj*7Mk0+8xQLh_a_7BJi}GxTSEKt_%(I}QLgw;p*QvTO1#}!Bpm6DwC5R$W zRZf%@RTWPINf0Gops$(|Wld2vDFb#NmRbw!rdEaJU0d{&XIq5$8qc@eZLXc>a4^e@ zxm+&hkfapVNQFxtF{6|h4)+)!3a!BLiGw{5Gnx&&Nb)T8v>Sr!8^#{77w#sCri_nF zpBFiScilLyj&?|@=$9M&YKOHYAMsTb;>EzC^=J4Wbv>Y!MoQez7jTfT8xrFR;fL+kZu;%RJ!M`K#V(tIQ8c&_!VIC(2^=vojwdGKuG``2Tz zzP`SmeYJAq_QKo#wb7w3iOtL7JNNrOC9j{@TG^<{cUQ|-gpVtU&xseStHwQbaOOC3 ZV2Byt?tl95{LYQ6#`P{aTL literal 0 HcmV?d00001 diff --git a/mod/ffsapi.php b/mod/ffsapi.php index 15cc8365f..24ff9d5e0 100644 --- a/mod/ffsapi.php +++ b/mod/ffsapi.php @@ -33,10 +33,10 @@ var data = { //"statusURL": baseurl+"/statusPanel.html", // social bookmarks are available in Firefox 26 - //"markURL": baseurl+"/mark.html?url=%{url}", + "markURL": baseurl+"/bmark?f=&url=%{url}&title=%{title}", // icons should be 32x32 pixels - //"markedIcon": baseurl+"/unchecked.jpg", - //"unmarkedIcon": baseurl+"/checked.jpg", + "markedIcon": baseurl+"/images/checkbox-checked-32.png", + "unmarkedIcon": baseurl+"/images/checkbox-unchecked-32.png", // should be available for display purposes "description": '$description', From 42c0f83ec5cd6d54c190832db1d432f69576e104 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 18:21:36 -0800 Subject: [PATCH 088/150] typo --- mod/ffsapi.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/ffsapi.php b/mod/ffsapi.php index 24ff9d5e0..a75e60bcc 100644 --- a/mod/ffsapi.php +++ b/mod/ffsapi.php @@ -33,7 +33,7 @@ var data = { //"statusURL": baseurl+"/statusPanel.html", // social bookmarks are available in Firefox 26 - "markURL": baseurl+"/bmark?f=&url=%{url}&title=%{title}", + "markURL": baseurl+"/rbmark?f=&url=%{url}&title=%{title}", // icons should be 32x32 pixels "markedIcon": baseurl+"/images/checkbox-checked-32.png", "unmarkedIcon": baseurl+"/images/checkbox-unchecked-32.png", From 5f1ccc25b6ee38d7d6408f555a932fcee41f8fbf Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 18:34:42 -0800 Subject: [PATCH 089/150] menu_list() takes a channel_id, not the whole channel array --- mod/rbmark.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mod/rbmark.php b/mod/rbmark.php index cbd32098b..4401e3626 100644 --- a/mod/rbmark.php +++ b/mod/rbmark.php @@ -77,7 +77,9 @@ function rbmark_content(&$a) { $channel = $a->get_channel(); - $m = menu_list($channel,'',MENU_BOOKMARK); + + $m = menu_list($channel['channel_id'],'',MENU_BOOKMARK); + $menus = array(); if($m) { $menus = array(0 => ''); From 1213893a71377237807ab9609bdc103d61701744 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 19:49:41 -0800 Subject: [PATCH 090/150] api calls to fetch file (attach) meta data and to chunk file content fetching which will eventually allow us to clone large videos without hitting memory limits --- include/api.php | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/include/api.php b/include/api.php index ad29625d8..4ac4dabba 100644 --- a/include/api.php +++ b/include/api.php @@ -652,6 +652,63 @@ require_once('include/attach.php'); api_register_func('api/red/file', 'api_file_detail', true); + function api_file_meta(&$a,$type) { + if (api_user()===false) return false; + if(! $_REQUEST['file_id']) return false; + $r = q("select * from attach where uid = %d and hash = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id']) + ); + if($r) { + unset($r[0]['data']); + $ret = array('attach' => $r[0]); + json_return_and_die($ret); + } + killme(); + } + + api_register_func('api/red/filemeta', 'api_file_meta', true); + + + function api_file_data(&$a,$type) { + if (api_user()===false) return false; + if(! $_REQUEST['file_id']) return false; + $start = (($_REQUEST['start']) ? intval($_REQUEST['start']) : 0); + $length = (($_REQUEST['length']) ? intval($_REQUEST['length']) : 0); + + $r = q("select * from attach where uid = %d and hash = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id']) + ); + if($r) { + if($r[0]['is_dir']) + $r[0]['data'] = ''; + elseif(! intval($r[0]['os_storage'])) { + $r[0]['start'] = $start; + $x = substr(dbunescbin($r[0]['data'],$start,$length)); + $r[0]['length'] = strlen($x); + $r[0]['data'] = base64_encode($x); + } + else { + $fp = fopen(dbunescbin($r[0]['data'],'r')); + if($fp) { + $seek = fseek($fp,$start,SEEK_SET); + $x = fread($fp,$length); + $r[0]['start'] = $start; + $r[0]['length'] = strlen($x); + $r[0]['data'] = base64_encode($x); + } + } + + $ret = array('attach' => $r[0]); + json_return_and_die($ret); + } + killme(); + } + + api_register_func('api/red/filedata', 'api_file_data', true); + + function api_albums(&$a,$type) { json_return_and_die(photos_albums_list($a->get_channel(),$a->get_observer())); } From f7468ab473f49b9594095d29a50f8e921d0b15af Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 20:50:43 -0800 Subject: [PATCH 091/150] re-arrange file api calls so the api pathnames don't shadow each other --- include/api.php | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/include/api.php b/include/api.php index 4ac4dabba..3862ba7eb 100644 --- a/include/api.php +++ b/include/api.php @@ -628,28 +628,7 @@ require_once('include/attach.php'); api_register_func('api/red/files','api_attach_list', true); - function api_file_detail(&$a,$type) { - if (api_user()===false) return false; - if(! $_REQUEST['file_id']) return false; - $r = q("select * from attach where uid = %d and hash = '%s' limit 1", - intval(api_user()), - dbesc($_REQUEST['file_id']) - ); - if($r) { - if($r[0]['is_dir']) - $r[0]['data'] = ''; - elseif(intval($r[0]['os_storage'])) - $r[0]['data'] = base64_encode(file_get_contents(dbunescbin($r[0]['data']))); - else - $r[0]['data'] = base64_encode(dbunescbin($r[0]['data'])); - - $ret = array('attach' => $r[0]); - json_return_and_die($ret); - } - killme(); - } - api_register_func('api/red/file', 'api_file_detail', true); function api_file_meta(&$a,$type) { @@ -709,6 +688,31 @@ require_once('include/attach.php'); api_register_func('api/red/filedata', 'api_file_data', true); + + function api_file_detail(&$a,$type) { + if (api_user()===false) return false; + if(! $_REQUEST['file_id']) return false; + $r = q("select * from attach where uid = %d and hash = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id']) + ); + if($r) { + if($r[0]['is_dir']) + $r[0]['data'] = ''; + elseif(intval($r[0]['os_storage'])) + $r[0]['data'] = base64_encode(file_get_contents(dbunescbin($r[0]['data']))); + else + $r[0]['data'] = base64_encode(dbunescbin($r[0]['data'])); + + $ret = array('attach' => $r[0]); + json_return_and_die($ret); + } + killme(); + } + + api_register_func('api/red/file', 'api_file_detail', true); + + function api_albums(&$a,$type) { json_return_and_die(photos_albums_list($a->get_channel(),$a->get_observer())); } From 76043d97bd5d38e12ae84b18d48bc2dc4537ece0 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 23:06:37 -0800 Subject: [PATCH 092/150] dummy update --- install/update.php | 6 +++++- version.inc | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/install/update.php b/install/update.php index cc8dc6ae5..b05e433dc 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@ Date: Wed, 4 Nov 2015 23:21:16 -0800 Subject: [PATCH 093/150] forgot this one --- boot.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot.php b/boot.php index 57bc63f2c..78cddce5c 100755 --- a/boot.php +++ b/boot.php @@ -49,7 +49,7 @@ define ( 'PLATFORM_NAME', 'redmatrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1158 ); +define ( 'DB_UPDATE_VERSION', 1159 ); /** * @brief Constant with a HTML line break. From 2ebd9a2774a361bcdafb20d6eec6974b631609ea Mon Sep 17 00:00:00 2001 From: redmatrix Date: Wed, 4 Nov 2015 23:48:55 -0800 Subject: [PATCH 094/150] fix path for attachments using os_storage uploaded through attach_store --- boot.php | 2 +- install/update.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/boot.php b/boot.php index dafe20b83..1faeaf15a 100755 --- a/boot.php +++ b/boot.php @@ -50,7 +50,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'H'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1158 ); +define ( 'DB_UPDATE_VERSION', 1159 ); /** * @brief Constant with a HTML line break. diff --git a/install/update.php b/install/update.php index 666d2e799..38e76afda 100644 --- a/install/update.php +++ b/install/update.php @@ -1918,10 +1918,10 @@ function update_r1157() { function update_r1158() { - $r = q("select attach.id, attach.data, channel_address from attach left join channel on attach.uid = channel_id where os_storage = 1 and not attach.data like '%store%' "); + $r = q("select attach.id, attach.data, channel_address from attach left join channel on attach.uid = channel_id where os_storage = 1 and not attach.data like '%%store%%' "); if($r) { foreach($r as $rr) { - $hash_slash = ((substr($rr['data'],0,1) === '/') ? true : false); + $has_slash = ((substr($rr['data'],0,1) === '/') ? true : false); q("update attach set data = '%s' where id = %d", dbesc('store/' . $rr['channel_address']. (($has_slash) ? '' : '/' . $rr['data'])), dbesc($rr['id']) From 58fe4f5cb37bb812993850750eda201d5dccf112 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 00:00:41 -0800 Subject: [PATCH 095/150] fix the file chunking api now that we've got working data to test with --- include/api.php | 2 +- version.inc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/api.php b/include/api.php index 711b946ed..b51bcc5f0 100644 --- a/include/api.php +++ b/include/api.php @@ -673,7 +673,7 @@ require_once('include/attach.php'); $ptr['data'] = base64_encode($x); } else { - $fp = fopen(dbunescbin($ptr['data'],'r')); + $fp = fopen(dbunescbin($ptr['data']),'r'); if($fp) { $seek = fseek($fp,$start,SEEK_SET); $x = fread($fp,$length); diff --git a/version.inc b/version.inc index d0eb99d9c..b1085e3d5 100644 --- a/version.inc +++ b/version.inc @@ -1 +1 @@ -2015-11-04.1206 +2015-11-05.1207 From 91f2e05d5dc15915cb8a9ebbfb6195a6d8d6da35 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Thu, 5 Nov 2015 09:06:45 +0100 Subject: [PATCH 096/150] Style the button --- mod/ffsapi.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/ffsapi.php b/mod/ffsapi.php index a75e60bcc..de47408bd 100644 --- a/mod/ffsapi.php +++ b/mod/ffsapi.php @@ -55,10 +55,10 @@ function activate(node) { } - + EOT; return $s; -} \ No newline at end of file +} From 0db5a8673d57088ab394cdaf372fb81dbd78bcbb Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Thu, 5 Nov 2015 16:20:56 +0100 Subject: [PATCH 097/150] Firefox share (that seems now the official name) button added to misc. settings. --- mod/settings.php | 5 +++-- view/css/mod_settings.css | 8 ++++++++ view/tpl/settings.tpl | 14 +++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/mod/settings.php b/mod/settings.php index 8bfff3765..18bfaeb08 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -1102,12 +1102,13 @@ function settings_content(&$a) { '$expert' => feature_enabled(local_channel(),'expert'), '$hint' => t('Please enable expert mode (in Settings > Additional features) to adjust!'), '$lbl_misc' => t('Miscellaneous Settings'), - '$photo_path' => array('photo_path', t('Default photo upload folder'), get_pconfig(local_channel(),'system','photo_path'), '%Y - current year, %m - current month'), - '$attach_path' => array('attach_path', t('Default file upload folder'), get_pconfig(local_channel(),'system','attach_path'), '%Y - current year, %m - current month'), + '$photo_path' => array('photo_path', t('Default photo upload folder'), get_pconfig(local_channel(),'system','photo_path'), t('%Y - current year, %m - current month')), + '$attach_path' => array('attach_path', t('Default file upload folder'), get_pconfig(local_channel(),'system','attach_path'), t('%Y - current year, %m - current month')), '$menus' => $menu, '$menu_desc' => t('Personal menu to display in your channel pages'), '$removeme' => t('Remove Channel'), '$removechannel' => t('Remove this channel.'), + '$firefoxshare' => t('Firefox Share $Projectname provider'), )); call_hooks('settings_form',$o); diff --git a/view/css/mod_settings.css b/view/css/mod_settings.css index 7eff8e45b..e81d115d4 100644 --- a/view/css/mod_settings.css +++ b/view/css/mod_settings.css @@ -1,3 +1,11 @@ .group { margin-left: 10px; } + +.ffsapilink { + margin: 10px 0; +} + +.channel-menu { + margin-top: 24px; +} diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl index ab62ede45..7c1f4578d 100755 --- a/view/tpl/settings.tpl +++ b/view/tpl/settings.tpl @@ -136,7 +136,7 @@
- {{if $menus}} +
-
-
+
+ + {{if $menus}} +
- +
+ {{/if}}
- {{/if}}
From 94437a8fcd0b0b15b49deceeacef7602b801dac1 Mon Sep 17 00:00:00 2001 From: jeroenpraat Date: Thu, 5 Nov 2015 22:57:52 +0100 Subject: [PATCH 098/150] Firefox Share app. Paper plane icon is public domain. Shorted the name in ffsapi > compare it with other providers. Changed bookmark (checkmark) item to selfmade Hubzilla bookmark icon for Firefox (bookmark icon = bootstrap icon). --- app/firefoxshare.apd | 4 ++++ app/firefoxshare.png | Bin 0 -> 3170 bytes images/hz-bookmark-32.png | Bin 0 -> 973 bytes mod/ffsapi.php | 7 ++++--- 4 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 app/firefoxshare.apd create mode 100644 app/firefoxshare.png create mode 100644 images/hz-bookmark-32.png diff --git a/app/firefoxshare.apd b/app/firefoxshare.apd new file mode 100644 index 000000000..5e0f38b4e --- /dev/null +++ b/app/firefoxshare.apd @@ -0,0 +1,4 @@ +url: $baseurl/ffsapi +requires: local_channel +name: Firefox Share +photo: $baseurl/app/firefoxshare.png diff --git a/app/firefoxshare.png b/app/firefoxshare.png new file mode 100644 index 0000000000000000000000000000000000000000..755952284fadc17ff9022960b4138af320190f26 GIT binary patch literal 3170 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 Date: Thu, 5 Nov 2015 16:08:18 -0800 Subject: [PATCH 099/150] first cut at some much better hook documentation derived from bamfic's automated list (doc/hooks.html) --- doc/hooklist.bb | 372 +++++++++++++++++++++++++++++++++++++++++++++ include/bbcode.php | 8 +- 2 files changed, 379 insertions(+), 1 deletion(-) create mode 100644 doc/hooklist.bb diff --git a/doc/hooklist.bb b/doc/hooklist.bb new file mode 100644 index 000000000..db61ce1a6 --- /dev/null +++ b/doc/hooklist.bb @@ -0,0 +1,372 @@ +[zrl=[baseurl]/help/hook/module_mod_aftercontent]module_mod_aftercontent[/zrl] + General purpose hook for any module, executed after mod_content(). Replace 'module' with module name, e.g. 'photos_mod_aftercontent'. + +[zrl=[baseurl]/help/hook/module_mod_content]module_mod_content[/zrl] + General purpose hook for any module, executed before mod_content(). Replace 'module' with module name, e.g. 'photos_mod_content'. + +[zrl=[baseurl]/help/hook/module_mod_init]module_mod_init[/zrl] + General purpose hook for any module, executed before mod_init(). Replace 'module' with module name, e.g. 'photos_mod_init'. + +[zrl=[baseurl]/help/hook/module_mod_post]module_mod_post[/zrl] + General purpose hook for any module, executed before mod_post(). Replace 'module' with module name, e.g. 'photos_mod_post'. + +[zrl=[baseurl]/help/hook/about_hook]about_hook[/zrl] + Called from the siteinfo page + +[zrl=[baseurl]/help/hook/accept_follow]accept_follow[/zrl] + Called when accepting a connection (friend request) + +[zrl=[baseurl]/help/hook/account_downgrade]account_downgrade[/zrl] + Called when an account has expired, indicating a potential downgrade to "basic" service class + +[zrl=[baseurl]/help/hook/account_settings]account_settings[/zrl] + Called when account settings have been saved + +[zrl=[baseurl]/help/hook/activity_received]activity_received[/zrl] + Called when an activity (post, comment, like, etc.) has been received from a zot source + +[zrl=[baseurl]/help/hook/affinity_labels]affinity_labels[/zrl] + Used to generate alternate labels for the affinity slider. + +[zrl=[baseurl]/help/hook/api_perm_is_allowed]api_perm_is_allowed[/zrl] + Called when perm_is_allowed() is executed from an API call. + +[zrl=[baseurl]/help/hook/app_menu]app_menu[/zrl] + Used to register plugins as apps + +[zrl=[baseurl]/help/hook/atom_author]atom_author[/zrl] + Called when generating an author or owner element for an Atom ActivityStream feed + +[zrl=[baseurl]/help/hook/atom_entry]atom_entry[/zrl] + Called when generating each item entry of an Atom ActivityStreams feed + +[zrl=[baseurl]/help/hook/atom_feed]atom_feed[/zrl] + Called when generating an Atom ActivityStreams feed + +[zrl=[baseurl]/help/hook/atom_feed_end]atom_feed_end[/zrl] + Called when generation of an Atom ActivityStreams feed is completed + +[zrl=[baseurl]/help/hook/attach_upload_file]attach_upload_file[/zrl] + Called when uploading a file + +[zrl=[baseurl]/help/hook/authenticate]authenticate[/zrl] + Can provide alternate authentication mechanisms + +[zrl=[baseurl]/help/hook/avatar_lookup]avatar_lookup[/zrl] + Used for "gravatar" or libravatar profile photo lookup. + +[zrl=[baseurl]/help/hook/bb2diaspora]bb2diaspora[/zrl] + called when converting bbcode to markdown + +[zrl=[baseurl]/help/hook/bbcode]bbcode[/zrl] + Called when converting bbcode to HTML + +[zrl=[baseurl]/help/hook/channel_remove]channel_remove[/zrl] + Called when removing a channel + +[zrl=[baseurl]/help/hook/chat_message]chat_message[/zrl] + Called to create a chat message. + +[zrl=[baseurl]/help/hook/chat_post]chat_post[/zrl] + Called when a chat message has been posted + +[zrl=[baseurl]/help/hook/check_account_email]check_account_email[/zrl] + Validate the email provided in an account registration + +[zrl=[baseurl]/help/hook/check_account_invite]check_account_invite[/zrl] + Validate an invitation code when using site invitations + +[zrl=[baseurl]/help/hook/check_account_password]check_account_password[/zrl] + Used to provide policy control over account passwords (minimum length, character set inclusion, etc.) + +[zrl=[baseurl]/help/hook/connect_premium]connect_premium[/zrl] + Called when connecting to a premium channel + +[zrl=[baseurl]/help/hook/connector_settings]connector_settings[/zrl] + Called when posting to the features/addon settings page + +[zrl=[baseurl]/help/hook/construct_page]construct_page[/zrl] + General purpose hook to provide content to certain page regions. Called when constructing the Comanche page. + +[zrl=[baseurl]/help/hook/contact_block_end]contact_block_end[/zrl] + Called when generating the sidebar "Connections" widget + +[zrl=[baseurl]/help/hook/contact_edit]contact_edit[/zrl] + Called when editing a connection via connedit + +[zrl=[baseurl]/help/hook/contact_edit_post]contact_edit_post[/zrl] + Called when posting to connedit + +[zrl=[baseurl]/help/hook/contact_select_options]contact_select_options[/zrl] + Deprecated/unused + +[zrl=[baseurl]/help/hook/conversation_start]conversation_start[/zrl] + Called in the beginning of rendering a conversation (message or message collection or stream) + +[zrl=[baseurl]/help/hook/create_identity]create_identity[/zrl] + Called when creating a channel + +[zrl=[baseurl]/help/hook/cron]cron[/zrl] + Called when scheduled tasks (poller) is executed + +[zrl=[baseurl]/help/hook/cron_daily]cron_daily[/zrl] + Called when daily scheduled tasks are executed + +[zrl=[baseurl]/help/hook/cron_weekly]cron_weekly[/zrl] + Called when weekly scheduled tasks are executed + +[zrl=[baseurl]/help/hook/directory_item]directory_item[/zrl] + Called when generating a directory listing for display + +[zrl=[baseurl]/help/hook/discover_by_webbie]discover_by_webbie[/zrl] + Called when performing a webfinger lookup + +[zrl=[baseurl]/help/hook/display_item]display_item[/zrl] + +[zrl=[baseurl]/help/hook/display_settings]display_settings[/zrl] + +[zrl=[baseurl]/help/hook/display_settings_post]display_settings_post[/zrl] + +[zrl=[baseurl]/help/hook/donate_contributors]donate_contributors[/zrl] + +[zrl=[baseurl]/help/hook/donate_plugin]donate_plugin[/zrl] + +[zrl=[baseurl]/help/hook/donate_sponsors]donate_sponsors[/zrl] + +[zrl=[baseurl]/help/hook/dreport_is_storable]dreport_is_storable[/zrl] + +[zrl=[baseurl]/help/hook/drop_item]drop_item[/zrl] + +[zrl=[baseurl]/help/hook/enotify]enotify[/zrl] + +[zrl=[baseurl]/help/hook/enotify_mail]enotify_mail[/zrl] + +[zrl=[baseurl]/help/hook/enotify_store]enotify_store[/zrl] + +[zrl=[baseurl]/help/hook/event_created]event_created[/zrl] + +[zrl=[baseurl]/help/hook/event_updated]event_updated[/zrl] + +[zrl=[baseurl]/help/hook/externals_url_select]externals_url_select[/zrl] + +[zrl=[baseurl]/help/hook/feature_enabled]feature_enabled[/zrl] + +[zrl=[baseurl]/help/hook/feature_settings]feature_settings[/zrl] + +[zrl=[baseurl]/help/hook/feature_settings_post]feature_settings_post[/zrl] + +[zrl=[baseurl]/help/hook/follow]follow[/zrl] + +[zrl=[baseurl]/help/hook/follow_allow]follow_allow[/zrl] + +[zrl=[baseurl]/help/hook/gender_selector]gender_selector[/zrl] + +[zrl=[baseurl]/help/hook/gender_selector_min]gender_selector_min[/zrl] + +[zrl=[baseurl]/help/hook/generate_map]generate_map[/zrl] + +[zrl=[baseurl]/help/hook/generate_named_map]generate_named_map[/zrl] + +[zrl=[baseurl]/help/hook/get_all_api_perms]get_all_api_perms[/zrl] + +[zrl=[baseurl]/help/hook/get_all_perms]get_all_perms[/zrl] + +[zrl=[baseurl]/help/hook/get_features]get_features[/zrl] + +[zrl=[baseurl]/help/hook/get_role_perms]get_role_perms[/zrl] + +[zrl=[baseurl]/help/hook/get_widgets]get_widgets[/zrl] + +[zrl=[baseurl]/help/hook/global_permissions]global_permissions[/zrl] + +[zrl=[baseurl]/help/hook/home_content]home_content[/zrl] + +[zrl=[baseurl]/help/hook/home_init]home_init[/zrl] + +[zrl=[baseurl]/help/hook/hostxrd]hostxrd[/zrl] + +[zrl=[baseurl]/help/hook/html2bbcode]html2bbcode[/zrl] + +[zrl=[baseurl]/help/hook/identity_basic_export]identity_basic_export[/zrl] + +[zrl=[baseurl]/help/hook/import_author_xchan]import_author_xchan[/zrl] + +[zrl=[baseurl]/help/hook/import_channel]import_channel[/zrl] + +[zrl=[baseurl]/help/hook/import_directory_profile]import_directory_profile[/zrl] + +[zrl=[baseurl]/help/hook/import_xchan]import_xchan[/zrl] + +[zrl=[baseurl]/help/hook/item_photo_menu]item_photo_menu[/zrl] + +[zrl=[baseurl]/help/hook/item_store]item_store[/zrl] + +[zrl=[baseurl]/help/hook/item_store_update]item_store_update[/zrl] + +[zrl=[baseurl]/help/hook/item_translate]item_translate[/zrl] + +[zrl=[baseurl]/help/hook/jot_networks]jot_networks[/zrl] + +[zrl=[baseurl]/help/hook/jot_tool]jot_tool[/zrl] + +[zrl=[baseurl]/help/hook/load_pdl]load_pdl[/zrl] + +[zrl=[baseurl]/help/hook/local_dir_update]local_dir_update[/zrl] + +[zrl=[baseurl]/help/hook/logged_in]logged_in[/zrl] + +[zrl=[baseurl]/help/hook/logging_out]logging_out[/zrl] + +[zrl=[baseurl]/help/hook/login_hook]login_hook[/zrl] + +[zrl=[baseurl]/help/hook/magic_auth]magic_auth[/zrl] + +[zrl=[baseurl]/help/hook/magic_auth_openid_success]magic_auth_openid_success[/zrl] + +[zrl=[baseurl]/help/hook/magic_auth_success]magic_auth_success[/zrl] + +[zrl=[baseurl]/help/hook/main_slider]main_slider[/zrl] + +[zrl=[baseurl]/help/hook/marital_selector]marital_selector[/zrl] + +[zrl=[baseurl]/help/hook/marital_selector_min]marital_selector_min[/zrl] + +[zrl=[baseurl]/help/hook/module_loaded]module_loaded[/zrl] + +[zrl=[baseurl]/help/hook/mood_verbs]mood_verbs[/zrl] + +[zrl=[baseurl]/help/hook/nav]nav[/zrl] + +[zrl=[baseurl]/help/hook/network_content_init]network_content_init[/zrl] + +[zrl=[baseurl]/help/hook/network_ping]network_ping[/zrl] + +[zrl=[baseurl]/help/hook/network_tabs]network_tabs[/zrl] + +[zrl=[baseurl]/help/hook/network_to_name]network_to_name[/zrl] + +[zrl=[baseurl]/help/hook/notifier_end]notifier_end[/zrl] + +[zrl=[baseurl]/help/hook/notifier_hub]notifier_hub[/zrl] + +[zrl=[baseurl]/help/hook/notifier_normal]notifier_normal[/zrl] + +[zrl=[baseurl]/help/hook/obj_verbs]obj_verbs[/zrl] + +[zrl=[baseurl]/help/hook/oembed_probe]oembed_probe[/zrl] + +[zrl=[baseurl]/help/hook/page_content_top]page_content_top[/zrl] + +[zrl=[baseurl]/help/hook/page_end]page_end[/zrl] + +[zrl=[baseurl]/help/hook/page_header]page_header[/zrl] + +[zrl=[baseurl]/help/hook/parse_atom]parse_atom[/zrl] + +[zrl=[baseurl]/help/hook/parse_link]parse_link[/zrl] + +[zrl=[baseurl]/help/hook/pdl_selector]pdl_selector[/zrl] + +[zrl=[baseurl]/help/hook/perm_is_allowed]perm_is_allowed[/zrl] + +[zrl=[baseurl]/help/hook/permissions_create]permissions_create[/zrl] + +[zrl=[baseurl]/help/hook/personal_xrd]personal_xrd[/zrl] + +[zrl=[baseurl]/help/hook/photo_post_end]photo_post_end[/zrl] + +[zrl=[baseurl]/help/hook/photo_upload_begin]photo_upload_begin[/zrl] + +[zrl=[baseurl]/help/hook/photo_upload_end]photo_upload_end[/zrl] + +[zrl=[baseurl]/help/hook/photo_upload_file]photo_upload_file[/zrl] + +[zrl=[baseurl]/help/hook/photo_upload_form]photo_upload_form[/zrl] + +[zrl=[baseurl]/help/hook/poke_verbs]poke_verbs[/zrl] + +[zrl=[baseurl]/help/hook/post_local]post_local[/zrl] + +[zrl=[baseurl]/help/hook/post_local_end]post_local_end[/zrl] + +[zrl=[baseurl]/help/hook/post_local_start]post_local_start[/zrl] + +[zrl=[baseurl]/help/hook/post_mail]post_mail[/zrl] + +[zrl=[baseurl]/help/hook/post_mail_end]post_mail_end[/zrl] + +[zrl=[baseurl]/help/hook/post_remote]post_remote[/zrl] + +[zrl=[baseurl]/help/hook/post_remote_end]post_remote_end[/zrl] + +[zrl=[baseurl]/help/hook/post_remote_update]post_remote_update[/zrl] + +[zrl=[baseurl]/help/hook/post_remote_update_end]post_remote_update_end[/zrl] + +[zrl=[baseurl]/help/hook/prepare_body]prepare_body[/zrl] + +[zrl=[baseurl]/help/hook/prepare_body_final]prepare_body_final[/zrl] + +[zrl=[baseurl]/help/hook/prepare_body_init]prepare_body_init[/zrl] + +[zrl=[baseurl]/help/hook/probe_well_known]probe_well_known[/zrl] + +[zrl=[baseurl]/help/hook/proc_run]proc_run[/zrl] + +[zrl=[baseurl]/help/hook/process_channel_sync_delivery]process_channel_sync_delivery[/zrl] + +[zrl=[baseurl]/help/hook/profile_advanced]profile_advanced[/zrl] + +[zrl=[baseurl]/help/hook/profile_edit]profile_edit[/zrl] + +[zrl=[baseurl]/help/hook/profile_photo_content_end]profile_photo_content_end[/zrl] + +[zrl=[baseurl]/help/hook/profile_post]profile_post[/zrl] + +[zrl=[baseurl]/help/hook/profile_sidebar]profile_sidebar[/zrl] + +[zrl=[baseurl]/help/hook/profile_sidebar_enter]profile_sidebar_enter[/zrl] + +[zrl=[baseurl]/help/hook/profile_tabs]profile_tabs[/zrl] + +[zrl=[baseurl]/help/hook/register_account]register_account[/zrl] + +[zrl=[baseurl]/help/hook/render_location]render_location[/zrl] + +[zrl=[baseurl]/help/hook/replace_macros]replace_macros[/zrl] + +[zrl=[baseurl]/help/hook/reverse_magic_auth]reverse_magic_auth[/zrl] + +[zrl=[baseurl]/help/hook/settings_account]settings_account[/zrl] + +[zrl=[baseurl]/help/hook/settings_form]settings_form[/zrl] + +[zrl=[baseurl]/help/hook/settings_post]settings_post[/zrl] + +[zrl=[baseurl]/help/hook/sexpref_selector]sexpref_selector[/zrl] + +[zrl=[baseurl]/help/hook/sexpref_selector_min]sexpref_selector_min[/zrl] + +[zrl=[baseurl]/help/hook/smilie]smilie[/zrl] + +[zrl=[baseurl]/help/hook/smilie]smilie[/zrl] + +[zrl=[baseurl]/help/hook/tagged]tagged[/zrl] + +[zrl=[baseurl]/help/hook/validate_channelname]validate_channelname[/zrl] + Used to validate the names used by a channel + +[zrl=[baseurl]/help/hook/webfinger]webfinger[/zrl] + Called when visiting the webfinger (RFC7033) service + +[zrl=[baseurl]/help/hook/well_known]well_known[/zrl] + Called when accessing the '.well-known' special site addresses + +[zrl=[baseurl]/help/hook/zid]zid[/zrl] + Called when adding the observer's zid to a URL + +[zrl=[baseurl]/help/hook/zid_init]zid_init[/zrl] + Called when authenticating a visitor who has used zid + +[zrl=[baseurl]/help/hook/zot_finger]zot_finger[/zrl] + Called when a zot-info packet has been requested (this is our webfinger discovery mechanism) diff --git a/include/bbcode.php b/include/bbcode.php index 517f22bee..05802aa57 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -599,6 +599,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '$2', $Text); } + // leave open the posibility of [map=something] // this is replaced in prepare_body() which has knowledge of the item location @@ -983,7 +984,12 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace('/\[\&\;([#a-z0-9]+)\;\]/', '&$1;', $Text); // fix any escaped ampersands that may have been converted into links - $Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism", '<$1$2=$3&$4>', $Text); + + if(strpos($Text,'&') !== false) + $Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism", '<$1$2=$3&$4>', $Text); + + // This is subtle - it's an XSS filter. It only accepts links with a protocol scheme and where + // the scheme begins with z (zhttp), h (http(s)), f (ftp), m (mailto), and named anchors. $Text = preg_replace("/\<(.*?)(src|href)=\"[^zhfm#](.*?)\>/ism", '<$1$2="">', $Text); From a26d8609a9d8bb9e905050f42cd20ab24a58e61d Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 16:28:10 -0800 Subject: [PATCH 100/150] handle old files with partial paths --- include/RedDAV/RedDirectory.php | 2 +- include/RedDAV/RedFile.php | 12 ++++++++++-- include/attach.php | 10 +++++++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/include/RedDAV/RedDirectory.php b/include/RedDAV/RedDirectory.php index 507fde46f..87bdf8f13 100644 --- a/include/RedDAV/RedDirectory.php +++ b/include/RedDAV/RedDirectory.php @@ -251,7 +251,7 @@ class RedDirectory extends DAV\Node implements DAV\ICollection, DAV\IQuota { intval($filesize), intval(0), intval($is_photo), - dbesc($this->os_path . '/' . $hash), + dbesc($f), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc($allow_cid), diff --git a/include/RedDAV/RedFile.php b/include/RedDAV/RedFile.php index ec6871a69..5a1b3453a 100644 --- a/include/RedDAV/RedFile.php +++ b/include/RedDAV/RedFile.php @@ -126,7 +126,11 @@ class RedFile extends DAV\Node implements DAV\IFile { } } $fname = dbunescbin($d[0]['data']); - $f = 'store/' . $this->auth->owner_nick . '/' . (($fname) ? $fname : ''); + if(strpos($fname,'store') === false) + $f = 'store/' . $this->auth->owner_nick . '/' . (($fname) ? $fname : ''); + else + $f = $fname; + // @todo check return value and set $size directly @file_put_contents($f, $data); $size = @filesize($f); @@ -226,7 +230,11 @@ class RedFile extends DAV\Node implements DAV\IFile { } if (intval($r[0]['os_storage'])) { - $f = 'store/' . $this->auth->owner_nick . '/' . (($this->os_path) ? $this->os_path . '/' : '') . dbunescbin($r[0]['data']); + $x = dbunsecbin($r[0]['data']); + if(strpos($x,'store') === false) + $f = 'store/' . $this->auth->owner_nick . '/' . (($this->os_path) ? $this->os_path . '/' : '') . $x; + else + $f = $x; return fopen($f, 'rb'); } return dbunescbin($r[0]['data']); diff --git a/include/attach.php b/include/attach.php index 8a568d8e1..36b971712 100644 --- a/include/attach.php +++ b/include/attach.php @@ -1270,9 +1270,13 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { ); if($y) { - $f = 'store/' . $channel_address . '/' . $y[0]['data']; - if(is_dir($y[0]['data'])) - @rmdir($y[0]['data']); + if(strpos($y[0]['data'],'store') === false) + $f = 'store/' . $channel_address . '/' . $y[0]['data']; + else + $f = $y[0]['data']; + + if(is_dir($f)) + @rmdir($f); elseif(file_exists($f)) unlink($f); } From 9cad4c11feddf7225078473f9623f7e311587213 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 16:36:19 -0800 Subject: [PATCH 101/150] typo --- include/RedDAV/RedFile.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/RedDAV/RedFile.php b/include/RedDAV/RedFile.php index 5a1b3453a..2bc3f40e5 100644 --- a/include/RedDAV/RedFile.php +++ b/include/RedDAV/RedFile.php @@ -230,7 +230,7 @@ class RedFile extends DAV\Node implements DAV\IFile { } if (intval($r[0]['os_storage'])) { - $x = dbunsecbin($r[0]['data']); + $x = dbunescbin($r[0]['data']); if(strpos($x,'store') === false) $f = 'store/' . $this->auth->owner_nick . '/' . (($this->os_path) ? $this->os_path . '/' : '') . $x; else From 7df92ba62c2d6a00afda747a38fc099720009685 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 17:23:36 -0800 Subject: [PATCH 102/150] preliminary hook detail files --- doc/hook/about_hook.bb | 1 + doc/hook/accept_follow.bb | 1 + doc/hook/account_downgrade.bb | 1 + doc/hook/account_settings.bb | 1 + doc/hook/activity_received.bb | 1 + doc/hook/affinity_labels.bb | 1 + doc/hook/api_perm_is_allowed.bb | 1 + doc/hook/app_menu.bb | 1 + doc/hook/atom_author.bb | 1 + doc/hook/atom_entry.bb | 1 + doc/hook/atom_feed.bb | 1 + doc/hook/atom_feed_end.bb | 1 + doc/hook/attach_upload_file.bb | 1 + doc/hook/authenticate.bb | 1 + doc/hook/avatar_lookup.bb | 1 + doc/hook/bb2diaspora.bb | 1 + doc/hook/bbcode.bb | 1 + doc/hook/channel_remove.bb | 1 + doc/hook/chat_message.bb | 1 + doc/hook/chat_post.bb | 1 + doc/hook/check_account_email.bb | 1 + doc/hook/check_account_invite.bb | 1 + doc/hook/check_account_password.bb | 1 + doc/hook/connect_premium.bb | 1 + doc/hook/connector_settings.bb | 1 + doc/hook/construct_page.bb | 1 + doc/hook/contact_block_end.bb | 1 + doc/hook/contact_edit.bb | 1 + doc/hook/contact_edit_post.bb | 1 + doc/hook/contact_select_options.bb | 1 + doc/hook/conversation_start.bb | 1 + doc/hook/create_identity.bb | 1 + doc/hook/cron.bb | 1 + doc/hook/cron_daily.bb | 1 + doc/hook/cron_weekly.bb | 1 + doc/hook/directory_item.bb | 1 + doc/hook/discover_by_webbie.bb | 1 + doc/hook/display_item.bb | 1 + doc/hook/display_settings.bb | 1 + doc/hook/display_settings_post.bb | 1 + doc/hook/donate_contributors.bb | 1 + doc/hook/donate_plugin.bb | 1 + doc/hook/donate_sponsors.bb | 1 + doc/hook/dreport_is_storable.bb | 1 + doc/hook/drop_item.bb | 1 + doc/hook/enotify.bb | 1 + doc/hook/enotify_mail.bb | 1 + doc/hook/enotify_store.bb | 1 + doc/hook/event_created.bb | 1 + doc/hook/event_updated.bb | 1 + doc/hook/externals_url_select.bb | 1 + doc/hook/feature_enabled.bb | 1 + doc/hook/feature_settings.bb | 1 + doc/hook/feature_settings_post.bb | 1 + doc/hook/follow.bb | 1 + doc/hook/follow_allow.bb | 1 + doc/hook/gender_selector.bb | 1 + doc/hook/gender_selector_min.bb | 1 + doc/hook/generate_map.bb | 1 + doc/hook/generate_named_map.bb | 1 + doc/hook/get_all_api_perms.bb | 1 + doc/hook/get_all_perms.bb | 1 + doc/hook/get_features.bb | 1 + doc/hook/get_role_perms.bb | 1 + doc/hook/get_widgets.bb | 1 + doc/hook/global_permissions.bb | 1 + doc/hook/home_content.bb | 1 + doc/hook/home_init.bb | 1 + doc/hook/hostxrd.bb | 1 + doc/hook/html2bbcode.bb | 1 + doc/hook/identity_basic_export.bb | 1 + doc/hook/import_author_xchan.bb | 1 + doc/hook/import_channel.bb | 1 + doc/hook/import_directory_profile.bb | 1 + doc/hook/import_xchan.bb | 1 + doc/hook/item_photo_menu.bb | 1 + doc/hook/item_store.bb | 1 + doc/hook/item_store_update.bb | 1 + doc/hook/item_translate.bb | 1 + doc/hook/jot_networks.bb | 1 + doc/hook/jot_tool.bb | 1 + doc/hook/load_pdl.bb | 1 + doc/hook/local_dir_update.bb | 1 + doc/hook/logged_in.bb | 1 + doc/hook/logging_out.bb | 1 + doc/hook/login_hook.bb | 1 + doc/hook/magic_auth.bb | 1 + doc/hook/magic_auth_openid_success.bb | 1 + doc/hook/magic_auth_success.bb | 1 + doc/hook/main_slider.bb | 1 + doc/hook/marital_selector.bb | 1 + doc/hook/marital_selector_min.bb | 1 + doc/hook/module_loaded.bb | 1 + doc/hook/module_mod_aftercontent.bb | 1 + doc/hook/module_mod_content.bb | 1 + doc/hook/module_mod_init.bb | 1 + doc/hook/module_mod_post.bb | 1 + doc/hook/mood_verbs.bb | 1 + doc/hook/nav.bb | 1 + doc/hook/network_content_init.bb | 1 + doc/hook/network_ping.bb | 1 + doc/hook/network_tabs.bb | 1 + doc/hook/network_to_name.bb | 1 + doc/hook/notifier_end.bb | 1 + doc/hook/notifier_hub.bb | 1 + doc/hook/notifier_normal.bb | 1 + doc/hook/obj_verbs.bb | 1 + doc/hook/oembed_probe.bb | 1 + doc/hook/page_content_top.bb | 1 + doc/hook/page_end.bb | 1 + doc/hook/page_header.bb | 1 + doc/hook/parse_atom.bb | 1 + doc/hook/parse_link.bb | 1 + doc/hook/pdl_selector.bb | 1 + doc/hook/perm_is_allowed.bb | 1 + doc/hook/permissions_create.bb | 1 + doc/hook/personal_xrd.bb | 1 + doc/hook/photo_post_end.bb | 1 + doc/hook/photo_upload_begin.bb | 1 + doc/hook/photo_upload_end.bb | 1 + doc/hook/photo_upload_file.bb | 1 + doc/hook/photo_upload_form.bb | 1 + doc/hook/poke_verbs.bb | 1 + doc/hook/post_local.bb | 1 + doc/hook/post_local_end.bb | 1 + doc/hook/post_local_start.bb | 1 + doc/hook/post_mail.bb | 1 + doc/hook/post_mail_end.bb | 1 + doc/hook/post_remote.bb | 1 + doc/hook/post_remote_end.bb | 1 + doc/hook/post_remote_update.bb | 1 + doc/hook/post_remote_update_end.bb | 1 + doc/hook/prepare_body.bb | 1 + doc/hook/prepare_body_final.bb | 1 + doc/hook/prepare_body_init.bb | 1 + doc/hook/probe_well_known.bb | 1 + doc/hook/proc_run.bb | 1 + doc/hook/process_channel_sync_delivery.bb | 1 + doc/hook/profile_advanced.bb | 1 + doc/hook/profile_edit.bb | 1 + doc/hook/profile_photo_content_end.bb | 1 + doc/hook/profile_post.bb | 1 + doc/hook/profile_sidebar.bb | 1 + doc/hook/profile_sidebar_enter.bb | 1 + doc/hook/profile_tabs.bb | 1 + doc/hook/register_account.bb | 1 + doc/hook/render_location.bb | 1 + doc/hook/replace_macros.bb | 1 + doc/hook/reverse_magic_auth.bb | 1 + doc/hook/settings_account.bb | 1 + doc/hook/settings_form.bb | 1 + doc/hook/settings_post.bb | 1 + doc/hook/sexpref_selector.bb | 1 + doc/hook/sexpref_selector_min.bb | 1 + doc/hook/smilie.bb | 1 + doc/hook/tagged.bb | 1 + doc/hook/validate_channelname.bb | 1 + doc/hook/webfinger.bb | 1 + doc/hook/well_known.bb | 1 + doc/hook/zid.bb | 1 + doc/hook/zid_init.bb | 1 + doc/hook/zot_finger.bb | 1 + 162 files changed, 162 insertions(+) create mode 100644 doc/hook/about_hook.bb create mode 100644 doc/hook/accept_follow.bb create mode 100644 doc/hook/account_downgrade.bb create mode 100644 doc/hook/account_settings.bb create mode 100644 doc/hook/activity_received.bb create mode 100644 doc/hook/affinity_labels.bb create mode 100644 doc/hook/api_perm_is_allowed.bb create mode 100644 doc/hook/app_menu.bb create mode 100644 doc/hook/atom_author.bb create mode 100644 doc/hook/atom_entry.bb create mode 100644 doc/hook/atom_feed.bb create mode 100644 doc/hook/atom_feed_end.bb create mode 100644 doc/hook/attach_upload_file.bb create mode 100644 doc/hook/authenticate.bb create mode 100644 doc/hook/avatar_lookup.bb create mode 100644 doc/hook/bb2diaspora.bb create mode 100644 doc/hook/bbcode.bb create mode 100644 doc/hook/channel_remove.bb create mode 100644 doc/hook/chat_message.bb create mode 100644 doc/hook/chat_post.bb create mode 100644 doc/hook/check_account_email.bb create mode 100644 doc/hook/check_account_invite.bb create mode 100644 doc/hook/check_account_password.bb create mode 100644 doc/hook/connect_premium.bb create mode 100644 doc/hook/connector_settings.bb create mode 100644 doc/hook/construct_page.bb create mode 100644 doc/hook/contact_block_end.bb create mode 100644 doc/hook/contact_edit.bb create mode 100644 doc/hook/contact_edit_post.bb create mode 100644 doc/hook/contact_select_options.bb create mode 100644 doc/hook/conversation_start.bb create mode 100644 doc/hook/create_identity.bb create mode 100644 doc/hook/cron.bb create mode 100644 doc/hook/cron_daily.bb create mode 100644 doc/hook/cron_weekly.bb create mode 100644 doc/hook/directory_item.bb create mode 100644 doc/hook/discover_by_webbie.bb create mode 100644 doc/hook/display_item.bb create mode 100644 doc/hook/display_settings.bb create mode 100644 doc/hook/display_settings_post.bb create mode 100644 doc/hook/donate_contributors.bb create mode 100644 doc/hook/donate_plugin.bb create mode 100644 doc/hook/donate_sponsors.bb create mode 100644 doc/hook/dreport_is_storable.bb create mode 100644 doc/hook/drop_item.bb create mode 100644 doc/hook/enotify.bb create mode 100644 doc/hook/enotify_mail.bb create mode 100644 doc/hook/enotify_store.bb create mode 100644 doc/hook/event_created.bb create mode 100644 doc/hook/event_updated.bb create mode 100644 doc/hook/externals_url_select.bb create mode 100644 doc/hook/feature_enabled.bb create mode 100644 doc/hook/feature_settings.bb create mode 100644 doc/hook/feature_settings_post.bb create mode 100644 doc/hook/follow.bb create mode 100644 doc/hook/follow_allow.bb create mode 100644 doc/hook/gender_selector.bb create mode 100644 doc/hook/gender_selector_min.bb create mode 100644 doc/hook/generate_map.bb create mode 100644 doc/hook/generate_named_map.bb create mode 100644 doc/hook/get_all_api_perms.bb create mode 100644 doc/hook/get_all_perms.bb create mode 100644 doc/hook/get_features.bb create mode 100644 doc/hook/get_role_perms.bb create mode 100644 doc/hook/get_widgets.bb create mode 100644 doc/hook/global_permissions.bb create mode 100644 doc/hook/home_content.bb create mode 100644 doc/hook/home_init.bb create mode 100644 doc/hook/hostxrd.bb create mode 100644 doc/hook/html2bbcode.bb create mode 100644 doc/hook/identity_basic_export.bb create mode 100644 doc/hook/import_author_xchan.bb create mode 100644 doc/hook/import_channel.bb create mode 100644 doc/hook/import_directory_profile.bb create mode 100644 doc/hook/import_xchan.bb create mode 100644 doc/hook/item_photo_menu.bb create mode 100644 doc/hook/item_store.bb create mode 100644 doc/hook/item_store_update.bb create mode 100644 doc/hook/item_translate.bb create mode 100644 doc/hook/jot_networks.bb create mode 100644 doc/hook/jot_tool.bb create mode 100644 doc/hook/load_pdl.bb create mode 100644 doc/hook/local_dir_update.bb create mode 100644 doc/hook/logged_in.bb create mode 100644 doc/hook/logging_out.bb create mode 100644 doc/hook/login_hook.bb create mode 100644 doc/hook/magic_auth.bb create mode 100644 doc/hook/magic_auth_openid_success.bb create mode 100644 doc/hook/magic_auth_success.bb create mode 100644 doc/hook/main_slider.bb create mode 100644 doc/hook/marital_selector.bb create mode 100644 doc/hook/marital_selector_min.bb create mode 100644 doc/hook/module_loaded.bb create mode 100644 doc/hook/module_mod_aftercontent.bb create mode 100644 doc/hook/module_mod_content.bb create mode 100644 doc/hook/module_mod_init.bb create mode 100644 doc/hook/module_mod_post.bb create mode 100644 doc/hook/mood_verbs.bb create mode 100644 doc/hook/nav.bb create mode 100644 doc/hook/network_content_init.bb create mode 100644 doc/hook/network_ping.bb create mode 100644 doc/hook/network_tabs.bb create mode 100644 doc/hook/network_to_name.bb create mode 100644 doc/hook/notifier_end.bb create mode 100644 doc/hook/notifier_hub.bb create mode 100644 doc/hook/notifier_normal.bb create mode 100644 doc/hook/obj_verbs.bb create mode 100644 doc/hook/oembed_probe.bb create mode 100644 doc/hook/page_content_top.bb create mode 100644 doc/hook/page_end.bb create mode 100644 doc/hook/page_header.bb create mode 100644 doc/hook/parse_atom.bb create mode 100644 doc/hook/parse_link.bb create mode 100644 doc/hook/pdl_selector.bb create mode 100644 doc/hook/perm_is_allowed.bb create mode 100644 doc/hook/permissions_create.bb create mode 100644 doc/hook/personal_xrd.bb create mode 100644 doc/hook/photo_post_end.bb create mode 100644 doc/hook/photo_upload_begin.bb create mode 100644 doc/hook/photo_upload_end.bb create mode 100644 doc/hook/photo_upload_file.bb create mode 100644 doc/hook/photo_upload_form.bb create mode 100644 doc/hook/poke_verbs.bb create mode 100644 doc/hook/post_local.bb create mode 100644 doc/hook/post_local_end.bb create mode 100644 doc/hook/post_local_start.bb create mode 100644 doc/hook/post_mail.bb create mode 100644 doc/hook/post_mail_end.bb create mode 100644 doc/hook/post_remote.bb create mode 100644 doc/hook/post_remote_end.bb create mode 100644 doc/hook/post_remote_update.bb create mode 100644 doc/hook/post_remote_update_end.bb create mode 100644 doc/hook/prepare_body.bb create mode 100644 doc/hook/prepare_body_final.bb create mode 100644 doc/hook/prepare_body_init.bb create mode 100644 doc/hook/probe_well_known.bb create mode 100644 doc/hook/proc_run.bb create mode 100644 doc/hook/process_channel_sync_delivery.bb create mode 100644 doc/hook/profile_advanced.bb create mode 100644 doc/hook/profile_edit.bb create mode 100644 doc/hook/profile_photo_content_end.bb create mode 100644 doc/hook/profile_post.bb create mode 100644 doc/hook/profile_sidebar.bb create mode 100644 doc/hook/profile_sidebar_enter.bb create mode 100644 doc/hook/profile_tabs.bb create mode 100644 doc/hook/register_account.bb create mode 100644 doc/hook/render_location.bb create mode 100644 doc/hook/replace_macros.bb create mode 100644 doc/hook/reverse_magic_auth.bb create mode 100644 doc/hook/settings_account.bb create mode 100644 doc/hook/settings_form.bb create mode 100644 doc/hook/settings_post.bb create mode 100644 doc/hook/sexpref_selector.bb create mode 100644 doc/hook/sexpref_selector_min.bb create mode 100644 doc/hook/smilie.bb create mode 100644 doc/hook/tagged.bb create mode 100644 doc/hook/validate_channelname.bb create mode 100644 doc/hook/webfinger.bb create mode 100644 doc/hook/well_known.bb create mode 100644 doc/hook/zid.bb create mode 100644 doc/hook/zid_init.bb create mode 100644 doc/hook/zot_finger.bb diff --git a/doc/hook/about_hook.bb b/doc/hook/about_hook.bb new file mode 100644 index 000000000..22b60d786 --- /dev/null +++ b/doc/hook/about_hook.bb @@ -0,0 +1 @@ +[h2]about_hook[/h2] diff --git a/doc/hook/accept_follow.bb b/doc/hook/accept_follow.bb new file mode 100644 index 000000000..e8b1ed0c4 --- /dev/null +++ b/doc/hook/accept_follow.bb @@ -0,0 +1 @@ +[h2]accept_follow[/h2] diff --git a/doc/hook/account_downgrade.bb b/doc/hook/account_downgrade.bb new file mode 100644 index 000000000..63bae0a58 --- /dev/null +++ b/doc/hook/account_downgrade.bb @@ -0,0 +1 @@ +[h2]account_downgrade[/h2] diff --git a/doc/hook/account_settings.bb b/doc/hook/account_settings.bb new file mode 100644 index 000000000..91b3a8385 --- /dev/null +++ b/doc/hook/account_settings.bb @@ -0,0 +1 @@ +[h2]account_settings[/h2] diff --git a/doc/hook/activity_received.bb b/doc/hook/activity_received.bb new file mode 100644 index 000000000..2e9d68bf3 --- /dev/null +++ b/doc/hook/activity_received.bb @@ -0,0 +1 @@ +[h2]activity_received[/h2] diff --git a/doc/hook/affinity_labels.bb b/doc/hook/affinity_labels.bb new file mode 100644 index 000000000..7234b7632 --- /dev/null +++ b/doc/hook/affinity_labels.bb @@ -0,0 +1 @@ +[h2]affinity_labels[/h2] diff --git a/doc/hook/api_perm_is_allowed.bb b/doc/hook/api_perm_is_allowed.bb new file mode 100644 index 000000000..862cbd653 --- /dev/null +++ b/doc/hook/api_perm_is_allowed.bb @@ -0,0 +1 @@ +[h2]api_perm_is_allowed[/h2] diff --git a/doc/hook/app_menu.bb b/doc/hook/app_menu.bb new file mode 100644 index 000000000..0458a692a --- /dev/null +++ b/doc/hook/app_menu.bb @@ -0,0 +1 @@ +[h2]app_menu[/h2] diff --git a/doc/hook/atom_author.bb b/doc/hook/atom_author.bb new file mode 100644 index 000000000..c9d05a593 --- /dev/null +++ b/doc/hook/atom_author.bb @@ -0,0 +1 @@ +[h2]atom_author[/h2] diff --git a/doc/hook/atom_entry.bb b/doc/hook/atom_entry.bb new file mode 100644 index 000000000..0aec89f16 --- /dev/null +++ b/doc/hook/atom_entry.bb @@ -0,0 +1 @@ +[h2]atom_entry[/h2] diff --git a/doc/hook/atom_feed.bb b/doc/hook/atom_feed.bb new file mode 100644 index 000000000..69775ca5e --- /dev/null +++ b/doc/hook/atom_feed.bb @@ -0,0 +1 @@ +[h2]atom_feed[/h2] diff --git a/doc/hook/atom_feed_end.bb b/doc/hook/atom_feed_end.bb new file mode 100644 index 000000000..4f019fc8f --- /dev/null +++ b/doc/hook/atom_feed_end.bb @@ -0,0 +1 @@ +[h2]atom_feed_end[/h2] diff --git a/doc/hook/attach_upload_file.bb b/doc/hook/attach_upload_file.bb new file mode 100644 index 000000000..1f8056caa --- /dev/null +++ b/doc/hook/attach_upload_file.bb @@ -0,0 +1 @@ +[h2]attach_upload_file[/h2] diff --git a/doc/hook/authenticate.bb b/doc/hook/authenticate.bb new file mode 100644 index 000000000..2e824f082 --- /dev/null +++ b/doc/hook/authenticate.bb @@ -0,0 +1 @@ +[h2]authenticate[/h2] diff --git a/doc/hook/avatar_lookup.bb b/doc/hook/avatar_lookup.bb new file mode 100644 index 000000000..abd84de5e --- /dev/null +++ b/doc/hook/avatar_lookup.bb @@ -0,0 +1 @@ +[h2]avatar_lookup[/h2] diff --git a/doc/hook/bb2diaspora.bb b/doc/hook/bb2diaspora.bb new file mode 100644 index 000000000..c28f1883e --- /dev/null +++ b/doc/hook/bb2diaspora.bb @@ -0,0 +1 @@ +[h2]bb2diaspora[/h2] diff --git a/doc/hook/bbcode.bb b/doc/hook/bbcode.bb new file mode 100644 index 000000000..2996a8528 --- /dev/null +++ b/doc/hook/bbcode.bb @@ -0,0 +1 @@ +[h2]bbcode[/h2] diff --git a/doc/hook/channel_remove.bb b/doc/hook/channel_remove.bb new file mode 100644 index 000000000..db9e9dd82 --- /dev/null +++ b/doc/hook/channel_remove.bb @@ -0,0 +1 @@ +[h2]channel_remove[/h2] diff --git a/doc/hook/chat_message.bb b/doc/hook/chat_message.bb new file mode 100644 index 000000000..ccc93bb2c --- /dev/null +++ b/doc/hook/chat_message.bb @@ -0,0 +1 @@ +[h2]chat_message[/h2] diff --git a/doc/hook/chat_post.bb b/doc/hook/chat_post.bb new file mode 100644 index 000000000..7cb3c9fa1 --- /dev/null +++ b/doc/hook/chat_post.bb @@ -0,0 +1 @@ +[h2]chat_post[/h2] diff --git a/doc/hook/check_account_email.bb b/doc/hook/check_account_email.bb new file mode 100644 index 000000000..b309706a0 --- /dev/null +++ b/doc/hook/check_account_email.bb @@ -0,0 +1 @@ +[h2]check_account_email[/h2] diff --git a/doc/hook/check_account_invite.bb b/doc/hook/check_account_invite.bb new file mode 100644 index 000000000..8d4a40522 --- /dev/null +++ b/doc/hook/check_account_invite.bb @@ -0,0 +1 @@ +[h2]check_account_invite[/h2] diff --git a/doc/hook/check_account_password.bb b/doc/hook/check_account_password.bb new file mode 100644 index 000000000..53562ec6e --- /dev/null +++ b/doc/hook/check_account_password.bb @@ -0,0 +1 @@ +[h2]check_account_password[/h2] diff --git a/doc/hook/connect_premium.bb b/doc/hook/connect_premium.bb new file mode 100644 index 000000000..ae3aafc66 --- /dev/null +++ b/doc/hook/connect_premium.bb @@ -0,0 +1 @@ +[h2]connect_premium[/h2] diff --git a/doc/hook/connector_settings.bb b/doc/hook/connector_settings.bb new file mode 100644 index 000000000..9b59c49da --- /dev/null +++ b/doc/hook/connector_settings.bb @@ -0,0 +1 @@ +[h2]connector_settings[/h2] diff --git a/doc/hook/construct_page.bb b/doc/hook/construct_page.bb new file mode 100644 index 000000000..700d9256f --- /dev/null +++ b/doc/hook/construct_page.bb @@ -0,0 +1 @@ +[h2]construct_page[/h2] diff --git a/doc/hook/contact_block_end.bb b/doc/hook/contact_block_end.bb new file mode 100644 index 000000000..30a7d2d76 --- /dev/null +++ b/doc/hook/contact_block_end.bb @@ -0,0 +1 @@ +[h2]contact_block_end[/h2] diff --git a/doc/hook/contact_edit.bb b/doc/hook/contact_edit.bb new file mode 100644 index 000000000..5fd31fb1d --- /dev/null +++ b/doc/hook/contact_edit.bb @@ -0,0 +1 @@ +[h2]contact_edit[/h2] diff --git a/doc/hook/contact_edit_post.bb b/doc/hook/contact_edit_post.bb new file mode 100644 index 000000000..bc736f8b8 --- /dev/null +++ b/doc/hook/contact_edit_post.bb @@ -0,0 +1 @@ +[h2]contact_edit_post[/h2] diff --git a/doc/hook/contact_select_options.bb b/doc/hook/contact_select_options.bb new file mode 100644 index 000000000..65f9154ff --- /dev/null +++ b/doc/hook/contact_select_options.bb @@ -0,0 +1 @@ +[h2]contact_select_options[/h2] diff --git a/doc/hook/conversation_start.bb b/doc/hook/conversation_start.bb new file mode 100644 index 000000000..7208c8d8f --- /dev/null +++ b/doc/hook/conversation_start.bb @@ -0,0 +1 @@ +[h2]conversation_start[/h2] diff --git a/doc/hook/create_identity.bb b/doc/hook/create_identity.bb new file mode 100644 index 000000000..5c1da2d43 --- /dev/null +++ b/doc/hook/create_identity.bb @@ -0,0 +1 @@ +[h2]create_identity[/h2] diff --git a/doc/hook/cron.bb b/doc/hook/cron.bb new file mode 100644 index 000000000..ebbb64d50 --- /dev/null +++ b/doc/hook/cron.bb @@ -0,0 +1 @@ +[h2]cron[/h2] diff --git a/doc/hook/cron_daily.bb b/doc/hook/cron_daily.bb new file mode 100644 index 000000000..c5062330a --- /dev/null +++ b/doc/hook/cron_daily.bb @@ -0,0 +1 @@ +[h2]cron_daily[/h2] diff --git a/doc/hook/cron_weekly.bb b/doc/hook/cron_weekly.bb new file mode 100644 index 000000000..8dc85e494 --- /dev/null +++ b/doc/hook/cron_weekly.bb @@ -0,0 +1 @@ +[h2]cron_weekly[/h2] diff --git a/doc/hook/directory_item.bb b/doc/hook/directory_item.bb new file mode 100644 index 000000000..cb710e0b4 --- /dev/null +++ b/doc/hook/directory_item.bb @@ -0,0 +1 @@ +[h2]directory_item[/h2] diff --git a/doc/hook/discover_by_webbie.bb b/doc/hook/discover_by_webbie.bb new file mode 100644 index 000000000..f9228932e --- /dev/null +++ b/doc/hook/discover_by_webbie.bb @@ -0,0 +1 @@ +[h2]discover_by_webbie[/h2] diff --git a/doc/hook/display_item.bb b/doc/hook/display_item.bb new file mode 100644 index 000000000..a6bfd621d --- /dev/null +++ b/doc/hook/display_item.bb @@ -0,0 +1 @@ +[h2]display_item[/h2] diff --git a/doc/hook/display_settings.bb b/doc/hook/display_settings.bb new file mode 100644 index 000000000..1f1e0b491 --- /dev/null +++ b/doc/hook/display_settings.bb @@ -0,0 +1 @@ +[h2]display_settings[/h2] diff --git a/doc/hook/display_settings_post.bb b/doc/hook/display_settings_post.bb new file mode 100644 index 000000000..d3bb39359 --- /dev/null +++ b/doc/hook/display_settings_post.bb @@ -0,0 +1 @@ +[h2]display_settings_post[/h2] diff --git a/doc/hook/donate_contributors.bb b/doc/hook/donate_contributors.bb new file mode 100644 index 000000000..f97c77efa --- /dev/null +++ b/doc/hook/donate_contributors.bb @@ -0,0 +1 @@ +[h2]donate_contributors[/h2] diff --git a/doc/hook/donate_plugin.bb b/doc/hook/donate_plugin.bb new file mode 100644 index 000000000..db4a6f113 --- /dev/null +++ b/doc/hook/donate_plugin.bb @@ -0,0 +1 @@ +[h2]donate_plugin[/h2] diff --git a/doc/hook/donate_sponsors.bb b/doc/hook/donate_sponsors.bb new file mode 100644 index 000000000..3abd46d42 --- /dev/null +++ b/doc/hook/donate_sponsors.bb @@ -0,0 +1 @@ +[h2]donate_sponsors[/h2] diff --git a/doc/hook/dreport_is_storable.bb b/doc/hook/dreport_is_storable.bb new file mode 100644 index 000000000..9ca99b896 --- /dev/null +++ b/doc/hook/dreport_is_storable.bb @@ -0,0 +1 @@ +[h2]dreport_is_storable[/h2] diff --git a/doc/hook/drop_item.bb b/doc/hook/drop_item.bb new file mode 100644 index 000000000..35bb80f82 --- /dev/null +++ b/doc/hook/drop_item.bb @@ -0,0 +1 @@ +[h2]drop_item[/h2] diff --git a/doc/hook/enotify.bb b/doc/hook/enotify.bb new file mode 100644 index 000000000..703a3ffa0 --- /dev/null +++ b/doc/hook/enotify.bb @@ -0,0 +1 @@ +[h2]enotify[/h2] diff --git a/doc/hook/enotify_mail.bb b/doc/hook/enotify_mail.bb new file mode 100644 index 000000000..adeb8bd30 --- /dev/null +++ b/doc/hook/enotify_mail.bb @@ -0,0 +1 @@ +[h2]enotify_mail[/h2] diff --git a/doc/hook/enotify_store.bb b/doc/hook/enotify_store.bb new file mode 100644 index 000000000..dc44cc320 --- /dev/null +++ b/doc/hook/enotify_store.bb @@ -0,0 +1 @@ +[h2]enotify_store[/h2] diff --git a/doc/hook/event_created.bb b/doc/hook/event_created.bb new file mode 100644 index 000000000..222602e77 --- /dev/null +++ b/doc/hook/event_created.bb @@ -0,0 +1 @@ +[h2]event_created[/h2] diff --git a/doc/hook/event_updated.bb b/doc/hook/event_updated.bb new file mode 100644 index 000000000..69e3c72c1 --- /dev/null +++ b/doc/hook/event_updated.bb @@ -0,0 +1 @@ +[h2]event_updated[/h2] diff --git a/doc/hook/externals_url_select.bb b/doc/hook/externals_url_select.bb new file mode 100644 index 000000000..a542dcb29 --- /dev/null +++ b/doc/hook/externals_url_select.bb @@ -0,0 +1 @@ +[h2]externals_url_select[/h2] diff --git a/doc/hook/feature_enabled.bb b/doc/hook/feature_enabled.bb new file mode 100644 index 000000000..5630cc768 --- /dev/null +++ b/doc/hook/feature_enabled.bb @@ -0,0 +1 @@ +[h2]feature_enabled[/h2] diff --git a/doc/hook/feature_settings.bb b/doc/hook/feature_settings.bb new file mode 100644 index 000000000..d1691eb38 --- /dev/null +++ b/doc/hook/feature_settings.bb @@ -0,0 +1 @@ +[h2]feature_settings[/h2] diff --git a/doc/hook/feature_settings_post.bb b/doc/hook/feature_settings_post.bb new file mode 100644 index 000000000..eecf941ff --- /dev/null +++ b/doc/hook/feature_settings_post.bb @@ -0,0 +1 @@ +[h2]feature_settings_post[/h2] diff --git a/doc/hook/follow.bb b/doc/hook/follow.bb new file mode 100644 index 000000000..a97632b06 --- /dev/null +++ b/doc/hook/follow.bb @@ -0,0 +1 @@ +[h2]follow[/h2] diff --git a/doc/hook/follow_allow.bb b/doc/hook/follow_allow.bb new file mode 100644 index 000000000..fdab1865c --- /dev/null +++ b/doc/hook/follow_allow.bb @@ -0,0 +1 @@ +[h2]follow_allow[/h2] diff --git a/doc/hook/gender_selector.bb b/doc/hook/gender_selector.bb new file mode 100644 index 000000000..0b56b5c9b --- /dev/null +++ b/doc/hook/gender_selector.bb @@ -0,0 +1 @@ +[h2]gender_selector[/h2] diff --git a/doc/hook/gender_selector_min.bb b/doc/hook/gender_selector_min.bb new file mode 100644 index 000000000..9d143855a --- /dev/null +++ b/doc/hook/gender_selector_min.bb @@ -0,0 +1 @@ +[h2]gender_selector_min[/h2] diff --git a/doc/hook/generate_map.bb b/doc/hook/generate_map.bb new file mode 100644 index 000000000..33672d552 --- /dev/null +++ b/doc/hook/generate_map.bb @@ -0,0 +1 @@ +[h2]generate_map[/h2] diff --git a/doc/hook/generate_named_map.bb b/doc/hook/generate_named_map.bb new file mode 100644 index 000000000..5bacb846d --- /dev/null +++ b/doc/hook/generate_named_map.bb @@ -0,0 +1 @@ +[h2]generate_named_map[/h2] diff --git a/doc/hook/get_all_api_perms.bb b/doc/hook/get_all_api_perms.bb new file mode 100644 index 000000000..eb41f8a02 --- /dev/null +++ b/doc/hook/get_all_api_perms.bb @@ -0,0 +1 @@ +[h2]get_all_api_perms[/h2] diff --git a/doc/hook/get_all_perms.bb b/doc/hook/get_all_perms.bb new file mode 100644 index 000000000..149f8c78c --- /dev/null +++ b/doc/hook/get_all_perms.bb @@ -0,0 +1 @@ +[h2]get_all_perms[/h2] diff --git a/doc/hook/get_features.bb b/doc/hook/get_features.bb new file mode 100644 index 000000000..66e81f13c --- /dev/null +++ b/doc/hook/get_features.bb @@ -0,0 +1 @@ +[h2]get_features[/h2] diff --git a/doc/hook/get_role_perms.bb b/doc/hook/get_role_perms.bb new file mode 100644 index 000000000..87830f8e3 --- /dev/null +++ b/doc/hook/get_role_perms.bb @@ -0,0 +1 @@ +[h2]get_role_perms[/h2] diff --git a/doc/hook/get_widgets.bb b/doc/hook/get_widgets.bb new file mode 100644 index 000000000..54b43858a --- /dev/null +++ b/doc/hook/get_widgets.bb @@ -0,0 +1 @@ +[h2]get_widgets[/h2] diff --git a/doc/hook/global_permissions.bb b/doc/hook/global_permissions.bb new file mode 100644 index 000000000..fe998ee9c --- /dev/null +++ b/doc/hook/global_permissions.bb @@ -0,0 +1 @@ +[h2]global_permissions[/h2] diff --git a/doc/hook/home_content.bb b/doc/hook/home_content.bb new file mode 100644 index 000000000..7f32b3547 --- /dev/null +++ b/doc/hook/home_content.bb @@ -0,0 +1 @@ +[h2]home_content[/h2] diff --git a/doc/hook/home_init.bb b/doc/hook/home_init.bb new file mode 100644 index 000000000..25dd72792 --- /dev/null +++ b/doc/hook/home_init.bb @@ -0,0 +1 @@ +[h2]home_init[/h2] diff --git a/doc/hook/hostxrd.bb b/doc/hook/hostxrd.bb new file mode 100644 index 000000000..2b67320cf --- /dev/null +++ b/doc/hook/hostxrd.bb @@ -0,0 +1 @@ +[h2]hostxrd[/h2] diff --git a/doc/hook/html2bbcode.bb b/doc/hook/html2bbcode.bb new file mode 100644 index 000000000..3061f05f0 --- /dev/null +++ b/doc/hook/html2bbcode.bb @@ -0,0 +1 @@ +[h2]html2bbcode[/h2] diff --git a/doc/hook/identity_basic_export.bb b/doc/hook/identity_basic_export.bb new file mode 100644 index 000000000..3f4e88799 --- /dev/null +++ b/doc/hook/identity_basic_export.bb @@ -0,0 +1 @@ +[h2]identity_basic_export[/h2] diff --git a/doc/hook/import_author_xchan.bb b/doc/hook/import_author_xchan.bb new file mode 100644 index 000000000..e2340469d --- /dev/null +++ b/doc/hook/import_author_xchan.bb @@ -0,0 +1 @@ +[h2]import_author_xchan[/h2] diff --git a/doc/hook/import_channel.bb b/doc/hook/import_channel.bb new file mode 100644 index 000000000..b220b7415 --- /dev/null +++ b/doc/hook/import_channel.bb @@ -0,0 +1 @@ +[h2]import_channel[/h2] diff --git a/doc/hook/import_directory_profile.bb b/doc/hook/import_directory_profile.bb new file mode 100644 index 000000000..e2fac59bc --- /dev/null +++ b/doc/hook/import_directory_profile.bb @@ -0,0 +1 @@ +[h2]import_directory_profile[/h2] diff --git a/doc/hook/import_xchan.bb b/doc/hook/import_xchan.bb new file mode 100644 index 000000000..40e0783ce --- /dev/null +++ b/doc/hook/import_xchan.bb @@ -0,0 +1 @@ +[h2]import_xchan[/h2] diff --git a/doc/hook/item_photo_menu.bb b/doc/hook/item_photo_menu.bb new file mode 100644 index 000000000..8f9860a90 --- /dev/null +++ b/doc/hook/item_photo_menu.bb @@ -0,0 +1 @@ +[h2]item_photo_menu[/h2] diff --git a/doc/hook/item_store.bb b/doc/hook/item_store.bb new file mode 100644 index 000000000..5d49b725c --- /dev/null +++ b/doc/hook/item_store.bb @@ -0,0 +1 @@ +[h2]item_store[/h2] diff --git a/doc/hook/item_store_update.bb b/doc/hook/item_store_update.bb new file mode 100644 index 000000000..a7c58939a --- /dev/null +++ b/doc/hook/item_store_update.bb @@ -0,0 +1 @@ +[h2]item_store_update[/h2] diff --git a/doc/hook/item_translate.bb b/doc/hook/item_translate.bb new file mode 100644 index 000000000..695494b9c --- /dev/null +++ b/doc/hook/item_translate.bb @@ -0,0 +1 @@ +[h2]item_translate[/h2] diff --git a/doc/hook/jot_networks.bb b/doc/hook/jot_networks.bb new file mode 100644 index 000000000..4c1629ba7 --- /dev/null +++ b/doc/hook/jot_networks.bb @@ -0,0 +1 @@ +[h2]jot_networks[/h2] diff --git a/doc/hook/jot_tool.bb b/doc/hook/jot_tool.bb new file mode 100644 index 000000000..22ba9701e --- /dev/null +++ b/doc/hook/jot_tool.bb @@ -0,0 +1 @@ +[h2]jot_tool[/h2] diff --git a/doc/hook/load_pdl.bb b/doc/hook/load_pdl.bb new file mode 100644 index 000000000..149a3e766 --- /dev/null +++ b/doc/hook/load_pdl.bb @@ -0,0 +1 @@ +[h2]load_pdl[/h2] diff --git a/doc/hook/local_dir_update.bb b/doc/hook/local_dir_update.bb new file mode 100644 index 000000000..d0b0f8ac1 --- /dev/null +++ b/doc/hook/local_dir_update.bb @@ -0,0 +1 @@ +[h2]local_dir_update[/h2] diff --git a/doc/hook/logged_in.bb b/doc/hook/logged_in.bb new file mode 100644 index 000000000..b01041576 --- /dev/null +++ b/doc/hook/logged_in.bb @@ -0,0 +1 @@ +[h2]logged_in[/h2] diff --git a/doc/hook/logging_out.bb b/doc/hook/logging_out.bb new file mode 100644 index 000000000..d47b9f1df --- /dev/null +++ b/doc/hook/logging_out.bb @@ -0,0 +1 @@ +[h2]logging_out[/h2] diff --git a/doc/hook/login_hook.bb b/doc/hook/login_hook.bb new file mode 100644 index 000000000..156a0afcd --- /dev/null +++ b/doc/hook/login_hook.bb @@ -0,0 +1 @@ +[h2]login_hook[/h2] diff --git a/doc/hook/magic_auth.bb b/doc/hook/magic_auth.bb new file mode 100644 index 000000000..80d6edb27 --- /dev/null +++ b/doc/hook/magic_auth.bb @@ -0,0 +1 @@ +[h2]magic_auth[/h2] diff --git a/doc/hook/magic_auth_openid_success.bb b/doc/hook/magic_auth_openid_success.bb new file mode 100644 index 000000000..810f2e06d --- /dev/null +++ b/doc/hook/magic_auth_openid_success.bb @@ -0,0 +1 @@ +[h2]magic_auth_openid_success[/h2] diff --git a/doc/hook/magic_auth_success.bb b/doc/hook/magic_auth_success.bb new file mode 100644 index 000000000..d795e43e5 --- /dev/null +++ b/doc/hook/magic_auth_success.bb @@ -0,0 +1 @@ +[h2]magic_auth_success[/h2] diff --git a/doc/hook/main_slider.bb b/doc/hook/main_slider.bb new file mode 100644 index 000000000..a63c2170a --- /dev/null +++ b/doc/hook/main_slider.bb @@ -0,0 +1 @@ +[h2]main_slider[/h2] diff --git a/doc/hook/marital_selector.bb b/doc/hook/marital_selector.bb new file mode 100644 index 000000000..0f76c3f5a --- /dev/null +++ b/doc/hook/marital_selector.bb @@ -0,0 +1 @@ +[h2]marital_selector[/h2] diff --git a/doc/hook/marital_selector_min.bb b/doc/hook/marital_selector_min.bb new file mode 100644 index 000000000..f02d21f20 --- /dev/null +++ b/doc/hook/marital_selector_min.bb @@ -0,0 +1 @@ +[h2]marital_selector_min[/h2] diff --git a/doc/hook/module_loaded.bb b/doc/hook/module_loaded.bb new file mode 100644 index 000000000..cb0d2302d --- /dev/null +++ b/doc/hook/module_loaded.bb @@ -0,0 +1 @@ +[h2]module_loaded[/h2] diff --git a/doc/hook/module_mod_aftercontent.bb b/doc/hook/module_mod_aftercontent.bb new file mode 100644 index 000000000..902ed47a9 --- /dev/null +++ b/doc/hook/module_mod_aftercontent.bb @@ -0,0 +1 @@ +[h2]module_mod_aftercontent[/h2] diff --git a/doc/hook/module_mod_content.bb b/doc/hook/module_mod_content.bb new file mode 100644 index 000000000..a504692d0 --- /dev/null +++ b/doc/hook/module_mod_content.bb @@ -0,0 +1 @@ +[h2]module_mod_content[/h2] diff --git a/doc/hook/module_mod_init.bb b/doc/hook/module_mod_init.bb new file mode 100644 index 000000000..52fe5a616 --- /dev/null +++ b/doc/hook/module_mod_init.bb @@ -0,0 +1 @@ +[h2]module_mod_init[/h2] diff --git a/doc/hook/module_mod_post.bb b/doc/hook/module_mod_post.bb new file mode 100644 index 000000000..3adb0e737 --- /dev/null +++ b/doc/hook/module_mod_post.bb @@ -0,0 +1 @@ +[h2]module_mod_post[/h2] diff --git a/doc/hook/mood_verbs.bb b/doc/hook/mood_verbs.bb new file mode 100644 index 000000000..67fb719dd --- /dev/null +++ b/doc/hook/mood_verbs.bb @@ -0,0 +1 @@ +[h2]mood_verbs[/h2] diff --git a/doc/hook/nav.bb b/doc/hook/nav.bb new file mode 100644 index 000000000..847573620 --- /dev/null +++ b/doc/hook/nav.bb @@ -0,0 +1 @@ +[h2]nav[/h2] diff --git a/doc/hook/network_content_init.bb b/doc/hook/network_content_init.bb new file mode 100644 index 000000000..224da393a --- /dev/null +++ b/doc/hook/network_content_init.bb @@ -0,0 +1 @@ +[h2]network_content_init[/h2] diff --git a/doc/hook/network_ping.bb b/doc/hook/network_ping.bb new file mode 100644 index 000000000..78deefe78 --- /dev/null +++ b/doc/hook/network_ping.bb @@ -0,0 +1 @@ +[h2]network_ping[/h2] diff --git a/doc/hook/network_tabs.bb b/doc/hook/network_tabs.bb new file mode 100644 index 000000000..677d7f2b9 --- /dev/null +++ b/doc/hook/network_tabs.bb @@ -0,0 +1 @@ +[h2]network_tabs[/h2] diff --git a/doc/hook/network_to_name.bb b/doc/hook/network_to_name.bb new file mode 100644 index 000000000..eea4a1841 --- /dev/null +++ b/doc/hook/network_to_name.bb @@ -0,0 +1 @@ +[h2]network_to_name[/h2] diff --git a/doc/hook/notifier_end.bb b/doc/hook/notifier_end.bb new file mode 100644 index 000000000..df9d852bd --- /dev/null +++ b/doc/hook/notifier_end.bb @@ -0,0 +1 @@ +[h2]notifier_end[/h2] diff --git a/doc/hook/notifier_hub.bb b/doc/hook/notifier_hub.bb new file mode 100644 index 000000000..4255ce446 --- /dev/null +++ b/doc/hook/notifier_hub.bb @@ -0,0 +1 @@ +[h2]notifier_hub[/h2] diff --git a/doc/hook/notifier_normal.bb b/doc/hook/notifier_normal.bb new file mode 100644 index 000000000..0059baa47 --- /dev/null +++ b/doc/hook/notifier_normal.bb @@ -0,0 +1 @@ +[h2]notifier_normal[/h2] diff --git a/doc/hook/obj_verbs.bb b/doc/hook/obj_verbs.bb new file mode 100644 index 000000000..ca98229aa --- /dev/null +++ b/doc/hook/obj_verbs.bb @@ -0,0 +1 @@ +[h2]obj_verbs[/h2] diff --git a/doc/hook/oembed_probe.bb b/doc/hook/oembed_probe.bb new file mode 100644 index 000000000..4f32ac267 --- /dev/null +++ b/doc/hook/oembed_probe.bb @@ -0,0 +1 @@ +[h2]oembed_probe[/h2] diff --git a/doc/hook/page_content_top.bb b/doc/hook/page_content_top.bb new file mode 100644 index 000000000..137e3abfd --- /dev/null +++ b/doc/hook/page_content_top.bb @@ -0,0 +1 @@ +[h2]page_content_top[/h2] diff --git a/doc/hook/page_end.bb b/doc/hook/page_end.bb new file mode 100644 index 000000000..09293cf50 --- /dev/null +++ b/doc/hook/page_end.bb @@ -0,0 +1 @@ +[h2]page_end[/h2] diff --git a/doc/hook/page_header.bb b/doc/hook/page_header.bb new file mode 100644 index 000000000..ffaa791c9 --- /dev/null +++ b/doc/hook/page_header.bb @@ -0,0 +1 @@ +[h2]page_header[/h2] diff --git a/doc/hook/parse_atom.bb b/doc/hook/parse_atom.bb new file mode 100644 index 000000000..c8037317f --- /dev/null +++ b/doc/hook/parse_atom.bb @@ -0,0 +1 @@ +[h2]parse_atom[/h2] diff --git a/doc/hook/parse_link.bb b/doc/hook/parse_link.bb new file mode 100644 index 000000000..1c328059c --- /dev/null +++ b/doc/hook/parse_link.bb @@ -0,0 +1 @@ +[h2]parse_link[/h2] diff --git a/doc/hook/pdl_selector.bb b/doc/hook/pdl_selector.bb new file mode 100644 index 000000000..bee01c843 --- /dev/null +++ b/doc/hook/pdl_selector.bb @@ -0,0 +1 @@ +[h2]pdl_selector[/h2] diff --git a/doc/hook/perm_is_allowed.bb b/doc/hook/perm_is_allowed.bb new file mode 100644 index 000000000..aac647609 --- /dev/null +++ b/doc/hook/perm_is_allowed.bb @@ -0,0 +1 @@ +[h2]perm_is_allowed[/h2] diff --git a/doc/hook/permissions_create.bb b/doc/hook/permissions_create.bb new file mode 100644 index 000000000..22f80a80e --- /dev/null +++ b/doc/hook/permissions_create.bb @@ -0,0 +1 @@ +[h2]permissions_create[/h2] diff --git a/doc/hook/personal_xrd.bb b/doc/hook/personal_xrd.bb new file mode 100644 index 000000000..71d4bd8dd --- /dev/null +++ b/doc/hook/personal_xrd.bb @@ -0,0 +1 @@ +[h2]personal_xrd[/h2] diff --git a/doc/hook/photo_post_end.bb b/doc/hook/photo_post_end.bb new file mode 100644 index 000000000..8a3291763 --- /dev/null +++ b/doc/hook/photo_post_end.bb @@ -0,0 +1 @@ +[h2]photo_post_end[/h2] diff --git a/doc/hook/photo_upload_begin.bb b/doc/hook/photo_upload_begin.bb new file mode 100644 index 000000000..5e441a12a --- /dev/null +++ b/doc/hook/photo_upload_begin.bb @@ -0,0 +1 @@ +[h2]photo_upload_begin[/h2] diff --git a/doc/hook/photo_upload_end.bb b/doc/hook/photo_upload_end.bb new file mode 100644 index 000000000..956175f1d --- /dev/null +++ b/doc/hook/photo_upload_end.bb @@ -0,0 +1 @@ +[h2]photo_upload_end[/h2] diff --git a/doc/hook/photo_upload_file.bb b/doc/hook/photo_upload_file.bb new file mode 100644 index 000000000..726622ac0 --- /dev/null +++ b/doc/hook/photo_upload_file.bb @@ -0,0 +1 @@ +[h2]photo_upload_file[/h2] diff --git a/doc/hook/photo_upload_form.bb b/doc/hook/photo_upload_form.bb new file mode 100644 index 000000000..70b8318b8 --- /dev/null +++ b/doc/hook/photo_upload_form.bb @@ -0,0 +1 @@ +[h2]photo_upload_form[/h2] diff --git a/doc/hook/poke_verbs.bb b/doc/hook/poke_verbs.bb new file mode 100644 index 000000000..54d68c3a2 --- /dev/null +++ b/doc/hook/poke_verbs.bb @@ -0,0 +1 @@ +[h2]poke_verbs[/h2] diff --git a/doc/hook/post_local.bb b/doc/hook/post_local.bb new file mode 100644 index 000000000..5aa723cb9 --- /dev/null +++ b/doc/hook/post_local.bb @@ -0,0 +1 @@ +[h2]post_local[/h2] diff --git a/doc/hook/post_local_end.bb b/doc/hook/post_local_end.bb new file mode 100644 index 000000000..380166fdb --- /dev/null +++ b/doc/hook/post_local_end.bb @@ -0,0 +1 @@ +[h2]post_local_end[/h2] diff --git a/doc/hook/post_local_start.bb b/doc/hook/post_local_start.bb new file mode 100644 index 000000000..2f684f67a --- /dev/null +++ b/doc/hook/post_local_start.bb @@ -0,0 +1 @@ +[h2]post_local_start[/h2] diff --git a/doc/hook/post_mail.bb b/doc/hook/post_mail.bb new file mode 100644 index 000000000..8f67ad4f0 --- /dev/null +++ b/doc/hook/post_mail.bb @@ -0,0 +1 @@ +[h2]post_mail[/h2] diff --git a/doc/hook/post_mail_end.bb b/doc/hook/post_mail_end.bb new file mode 100644 index 000000000..7f0085773 --- /dev/null +++ b/doc/hook/post_mail_end.bb @@ -0,0 +1 @@ +[h2]post_mail_end[/h2] diff --git a/doc/hook/post_remote.bb b/doc/hook/post_remote.bb new file mode 100644 index 000000000..f8e087eee --- /dev/null +++ b/doc/hook/post_remote.bb @@ -0,0 +1 @@ +[h2]post_remote[/h2] diff --git a/doc/hook/post_remote_end.bb b/doc/hook/post_remote_end.bb new file mode 100644 index 000000000..0fef20cbf --- /dev/null +++ b/doc/hook/post_remote_end.bb @@ -0,0 +1 @@ +[h2]post_remote_end[/h2] diff --git a/doc/hook/post_remote_update.bb b/doc/hook/post_remote_update.bb new file mode 100644 index 000000000..fd358db28 --- /dev/null +++ b/doc/hook/post_remote_update.bb @@ -0,0 +1 @@ +[h2]post_remote_update[/h2] diff --git a/doc/hook/post_remote_update_end.bb b/doc/hook/post_remote_update_end.bb new file mode 100644 index 000000000..95f1e6f78 --- /dev/null +++ b/doc/hook/post_remote_update_end.bb @@ -0,0 +1 @@ +[h2]post_remote_update_end[/h2] diff --git a/doc/hook/prepare_body.bb b/doc/hook/prepare_body.bb new file mode 100644 index 000000000..3f1eaef85 --- /dev/null +++ b/doc/hook/prepare_body.bb @@ -0,0 +1 @@ +[h2]prepare_body[/h2] diff --git a/doc/hook/prepare_body_final.bb b/doc/hook/prepare_body_final.bb new file mode 100644 index 000000000..96d1ae389 --- /dev/null +++ b/doc/hook/prepare_body_final.bb @@ -0,0 +1 @@ +[h2]prepare_body_final[/h2] diff --git a/doc/hook/prepare_body_init.bb b/doc/hook/prepare_body_init.bb new file mode 100644 index 000000000..f3de79970 --- /dev/null +++ b/doc/hook/prepare_body_init.bb @@ -0,0 +1 @@ +[h2]prepare_body_init[/h2] diff --git a/doc/hook/probe_well_known.bb b/doc/hook/probe_well_known.bb new file mode 100644 index 000000000..eff690f31 --- /dev/null +++ b/doc/hook/probe_well_known.bb @@ -0,0 +1 @@ +[h2]probe_well_known[/h2] diff --git a/doc/hook/proc_run.bb b/doc/hook/proc_run.bb new file mode 100644 index 000000000..a3759794a --- /dev/null +++ b/doc/hook/proc_run.bb @@ -0,0 +1 @@ +[h2]proc_run[/h2] diff --git a/doc/hook/process_channel_sync_delivery.bb b/doc/hook/process_channel_sync_delivery.bb new file mode 100644 index 000000000..c0416c8cb --- /dev/null +++ b/doc/hook/process_channel_sync_delivery.bb @@ -0,0 +1 @@ +[h2]process_channel_sync_delivery[/h2] diff --git a/doc/hook/profile_advanced.bb b/doc/hook/profile_advanced.bb new file mode 100644 index 000000000..65e56afd6 --- /dev/null +++ b/doc/hook/profile_advanced.bb @@ -0,0 +1 @@ +[h2]profile_advanced[/h2] diff --git a/doc/hook/profile_edit.bb b/doc/hook/profile_edit.bb new file mode 100644 index 000000000..e60663d4a --- /dev/null +++ b/doc/hook/profile_edit.bb @@ -0,0 +1 @@ +[h2]profile_edit[/h2] diff --git a/doc/hook/profile_photo_content_end.bb b/doc/hook/profile_photo_content_end.bb new file mode 100644 index 000000000..518415c4d --- /dev/null +++ b/doc/hook/profile_photo_content_end.bb @@ -0,0 +1 @@ +[h2]profile_photo_content_end[/h2] diff --git a/doc/hook/profile_post.bb b/doc/hook/profile_post.bb new file mode 100644 index 000000000..d22d8fbc7 --- /dev/null +++ b/doc/hook/profile_post.bb @@ -0,0 +1 @@ +[h2]profile_post[/h2] diff --git a/doc/hook/profile_sidebar.bb b/doc/hook/profile_sidebar.bb new file mode 100644 index 000000000..bfd059e4b --- /dev/null +++ b/doc/hook/profile_sidebar.bb @@ -0,0 +1 @@ +[h2]profile_sidebar[/h2] diff --git a/doc/hook/profile_sidebar_enter.bb b/doc/hook/profile_sidebar_enter.bb new file mode 100644 index 000000000..9d6726a30 --- /dev/null +++ b/doc/hook/profile_sidebar_enter.bb @@ -0,0 +1 @@ +[h2]profile_sidebar_enter[/h2] diff --git a/doc/hook/profile_tabs.bb b/doc/hook/profile_tabs.bb new file mode 100644 index 000000000..5b3e9e707 --- /dev/null +++ b/doc/hook/profile_tabs.bb @@ -0,0 +1 @@ +[h2]profile_tabs[/h2] diff --git a/doc/hook/register_account.bb b/doc/hook/register_account.bb new file mode 100644 index 000000000..df4de2b30 --- /dev/null +++ b/doc/hook/register_account.bb @@ -0,0 +1 @@ +[h2]register_account[/h2] diff --git a/doc/hook/render_location.bb b/doc/hook/render_location.bb new file mode 100644 index 000000000..41501c087 --- /dev/null +++ b/doc/hook/render_location.bb @@ -0,0 +1 @@ +[h2]render_location[/h2] diff --git a/doc/hook/replace_macros.bb b/doc/hook/replace_macros.bb new file mode 100644 index 000000000..fac39dd7b --- /dev/null +++ b/doc/hook/replace_macros.bb @@ -0,0 +1 @@ +[h2]replace_macros[/h2] diff --git a/doc/hook/reverse_magic_auth.bb b/doc/hook/reverse_magic_auth.bb new file mode 100644 index 000000000..4cbd84b93 --- /dev/null +++ b/doc/hook/reverse_magic_auth.bb @@ -0,0 +1 @@ +[h2]reverse_magic_auth[/h2] diff --git a/doc/hook/settings_account.bb b/doc/hook/settings_account.bb new file mode 100644 index 000000000..fe22dd97b --- /dev/null +++ b/doc/hook/settings_account.bb @@ -0,0 +1 @@ +[h2]settings_account[/h2] diff --git a/doc/hook/settings_form.bb b/doc/hook/settings_form.bb new file mode 100644 index 000000000..d65341181 --- /dev/null +++ b/doc/hook/settings_form.bb @@ -0,0 +1 @@ +[h2]settings_form[/h2] diff --git a/doc/hook/settings_post.bb b/doc/hook/settings_post.bb new file mode 100644 index 000000000..f72546c11 --- /dev/null +++ b/doc/hook/settings_post.bb @@ -0,0 +1 @@ +[h2]settings_post[/h2] diff --git a/doc/hook/sexpref_selector.bb b/doc/hook/sexpref_selector.bb new file mode 100644 index 000000000..b4dad6b38 --- /dev/null +++ b/doc/hook/sexpref_selector.bb @@ -0,0 +1 @@ +[h2]sexpref_selector[/h2] diff --git a/doc/hook/sexpref_selector_min.bb b/doc/hook/sexpref_selector_min.bb new file mode 100644 index 000000000..6f49946af --- /dev/null +++ b/doc/hook/sexpref_selector_min.bb @@ -0,0 +1 @@ +[h2]sexpref_selector_min[/h2] diff --git a/doc/hook/smilie.bb b/doc/hook/smilie.bb new file mode 100644 index 000000000..cea3e0c94 --- /dev/null +++ b/doc/hook/smilie.bb @@ -0,0 +1 @@ +[h2]smilie[/h2] diff --git a/doc/hook/tagged.bb b/doc/hook/tagged.bb new file mode 100644 index 000000000..5add76713 --- /dev/null +++ b/doc/hook/tagged.bb @@ -0,0 +1 @@ +[h2]tagged[/h2] diff --git a/doc/hook/validate_channelname.bb b/doc/hook/validate_channelname.bb new file mode 100644 index 000000000..c78961017 --- /dev/null +++ b/doc/hook/validate_channelname.bb @@ -0,0 +1 @@ +[h2]validate_channelname[/h2] diff --git a/doc/hook/webfinger.bb b/doc/hook/webfinger.bb new file mode 100644 index 000000000..7cc24322f --- /dev/null +++ b/doc/hook/webfinger.bb @@ -0,0 +1 @@ +[h2]webfinger[/h2] diff --git a/doc/hook/well_known.bb b/doc/hook/well_known.bb new file mode 100644 index 000000000..778b27a02 --- /dev/null +++ b/doc/hook/well_known.bb @@ -0,0 +1 @@ +[h2]well_known[/h2] diff --git a/doc/hook/zid.bb b/doc/hook/zid.bb new file mode 100644 index 000000000..2210c1342 --- /dev/null +++ b/doc/hook/zid.bb @@ -0,0 +1 @@ +[h2]zid[/h2] diff --git a/doc/hook/zid_init.bb b/doc/hook/zid_init.bb new file mode 100644 index 000000000..131dd8f72 --- /dev/null +++ b/doc/hook/zid_init.bb @@ -0,0 +1 @@ +[h2]zid_init[/h2] diff --git a/doc/hook/zot_finger.bb b/doc/hook/zot_finger.bb new file mode 100644 index 000000000..9383b4c31 --- /dev/null +++ b/doc/hook/zot_finger.bb @@ -0,0 +1 @@ +[h2]zot_finger[/h2] From 6b26b4e3b817ead75f2aba00dc20b468a2df82cb Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 17:38:21 -0800 Subject: [PATCH 103/150] the journey of 1000 miles begins with a single step --- doc/hook/authenticate.bb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/doc/hook/authenticate.bb b/doc/hook/authenticate.bb index 2e824f082..eb8071e73 100644 --- a/doc/hook/authenticate.bb +++ b/doc/hook/authenticate.bb @@ -1 +1,29 @@ [h2]authenticate[/h2] + +Invoked when a POST request is made with non-null $_POST['auth-params'] such as from the login form. +If the hook handler does not set the 'authenticated' parameter of the passed array, normal login functions continue; + +The 'user_record' is in fact an account DB record. To provide automatic provisioning of accounts from other authentication realms, this record should be generated and stored during the verification phase. + + +[code] + $addon_auth = array( + 'username' => trim($_POST['username']), + 'password' => trim($_POST['password']), + 'authenticated' => 0, + 'user_record' => null + ); + + /** + * + * A plugin indicates successful login by setting 'authenticated' to non-zero value and returning a user record + * Plugins should never set 'authenticated' except to indicate success - as hooks may be chained + * and later plugins should not interfere with an earlier one that succeeded. + * + */ + + call_hooks('authenticate', $addon_auth); +[/code] + + +See include/auth.php From a29b8b369e59d61d14dd090323e6075d5d16d2ad Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 20:10:49 -0800 Subject: [PATCH 104/150] update hooklist --- doc/hooklist.bb | 123 ++++++++++++++++++++++++++++++++++++++++++++++-- mod/ffsapi.php | 2 +- 2 files changed, 121 insertions(+), 4 deletions(-) diff --git a/doc/hooklist.bb b/doc/hooklist.bb index db61ce1a6..87d175352 100644 --- a/doc/hooklist.bb +++ b/doc/hooklist.bb @@ -122,236 +122,353 @@ Called when performing a webfinger lookup [zrl=[baseurl]/help/hook/display_item]display_item[/zrl] + Called for each item being displayed in a conversation thread [zrl=[baseurl]/help/hook/display_settings]display_settings[/zrl] + Called from settings module when displaying the 'display settings' section [zrl=[baseurl]/help/hook/display_settings_post]display_settings_post[/zrl] + Called when posting from the settings module 'display settings' form [zrl=[baseurl]/help/hook/donate_contributors]donate_contributors[/zrl] + called by the 'donate' addon when generating a list of donation recipients [zrl=[baseurl]/help/hook/donate_plugin]donate_plugin[/zrl] + called by the 'donate' addon [zrl=[baseurl]/help/hook/donate_sponsors]donate_sponsors[/zrl] + called by the 'donate' addon [zrl=[baseurl]/help/hook/dreport_is_storable]dreport_is_storable[/zrl] + called before storing a dreport record to determine whether to store it [zrl=[baseurl]/help/hook/drop_item]drop_item[/zrl] + called when an 'item' is removed [zrl=[baseurl]/help/hook/enotify]enotify[/zrl] + called before any notification [zrl=[baseurl]/help/hook/enotify_mail]enotify_mail[/zrl] + called when sending a notification email [zrl=[baseurl]/help/hook/enotify_store]enotify_store[/zrl] + called when storing a notification record [zrl=[baseurl]/help/hook/event_created]event_created[/zrl] + called when an event record is created [zrl=[baseurl]/help/hook/event_updated]event_updated[/zrl] + called when an event record is modified [zrl=[baseurl]/help/hook/externals_url_select]externals_url_select[/zrl] + called when generating a list of random sites to pull public posts from [zrl=[baseurl]/help/hook/feature_enabled]feature_enabled[/zrl] + called when 'feature_enabled()' is used [zrl=[baseurl]/help/hook/feature_settings]feature_settings[/zrl] + called from settings page when visiting 'addon/feature settings' [zrl=[baseurl]/help/hook/feature_settings_post]feature_settings_post[/zrl] + called from settings page when posting from 'addon/feature settings' [zrl=[baseurl]/help/hook/follow]follow[/zrl] + called when a follow operation takes place [zrl=[baseurl]/help/hook/follow_allow]follow_allow[/zrl] + called before storing the results of a follow operation [zrl=[baseurl]/help/hook/gender_selector]gender_selector[/zrl] + called when creating the 'gender' drop down list (advanced profile) [zrl=[baseurl]/help/hook/gender_selector_min]gender_selector_min[/zrl] + called when creating the 'gender' drop down list (normal profile) + [zrl=[baseurl]/help/hook/generate_map]generate_map[/zrl] + called to generate the HTML for displaying a map location by coordinates [zrl=[baseurl]/help/hook/generate_named_map]generate_named_map[/zrl] + called to generate the HTML for displaying a map location by text location [zrl=[baseurl]/help/hook/get_all_api_perms]get_all_api_perms[/zrl] + Called when retrieving the permissions for API uses [zrl=[baseurl]/help/hook/get_all_perms]get_all_perms[/zrl] + called when get_all_perms() is used [zrl=[baseurl]/help/hook/get_features]get_features[/zrl] + Called when get_features() is called [zrl=[baseurl]/help/hook/get_role_perms]get_role_perms[/zrl] + Called when get_role_perms() is called to obtain permissions for named permission roles [zrl=[baseurl]/help/hook/get_widgets]get_widgets[/zrl] + No longer used - now widget placement is managed by Comanche [zrl=[baseurl]/help/hook/global_permissions]global_permissions[/zrl] + Called when the global permissions list is generated [zrl=[baseurl]/help/hook/home_content]home_content[/zrl] + Called from mod_home to replace the content of the home page [zrl=[baseurl]/help/hook/home_init]home_init[/zrl] + Called from the home page home_init() function [zrl=[baseurl]/help/hook/hostxrd]hostxrd[/zrl] + Called when generating .well-known/hosts-meta for "old webfinger" (used by Diaspora protocol) [zrl=[baseurl]/help/hook/html2bbcode]html2bbcode[/zrl] + Called when using the html2bbcode tranlsation [zrl=[baseurl]/help/hook/identity_basic_export]identity_basic_export[/zrl] + Called when exporting a channel's basic information for backup or transfer [zrl=[baseurl]/help/hook/import_author_xchan]import_author_xchan[/zrl] + Called when looking up an author of a post by xchan_hash to ensure they have an xchan record on our site [zrl=[baseurl]/help/hook/import_channel]import_channel[/zrl] + Called when importing a channel from a file or API source [zrl=[baseurl]/help/hook/import_directory_profile]import_directory_profile[/zrl] + Called when processing delivery of a profile structure from an external source (usually for directory storage) [zrl=[baseurl]/help/hook/import_xchan]import_xchan[/zrl] + Called when processing the result of zot_finger() to store the result [zrl=[baseurl]/help/hook/item_photo_menu]item_photo_menu[/zrl] + Called when generating the list of actions associated with a displayed conversation item [zrl=[baseurl]/help/hook/item_store]item_store[/zrl] + Called when item_store() stores a record of type item [zrl=[baseurl]/help/hook/item_store_update]item_store_update[/zrl] + Called when item_store_update() is called to update a stored item. [zrl=[baseurl]/help/hook/item_translate]item_translate[/zrl] + Called from item_store and item_store_update after the post language has been autodetected [zrl=[baseurl]/help/hook/jot_networks]jot_networks[/zrl] + Called to generate the list of additional post plugins to enable from the ACL form [zrl=[baseurl]/help/hook/jot_tool]jot_tool[/zrl] + Deprecated and possibly obsolete. Allows one to add action buttons to the post editor. [zrl=[baseurl]/help/hook/load_pdl]load_pdl[/zrl] + Called when we load a PDL file or description [zrl=[baseurl]/help/hook/local_dir_update]local_dir_update[/zrl] + Called when processing a directory update from a channel on the directory server [zrl=[baseurl]/help/hook/logged_in]logged_in[/zrl] + Called when authentication by any means has succeeeded [zrl=[baseurl]/help/hook/logging_out]logging_out[/zrl] + Called when logging out [zrl=[baseurl]/help/hook/login_hook]login_hook[/zrl] + Called when generating the login form [zrl=[baseurl]/help/hook/magic_auth]magic_auth[/zrl] + Called when processing a magic-auth sequence [zrl=[baseurl]/help/hook/magic_auth_openid_success]magic_auth_openid_success[/zrl] + Called when a magic-auth was successful due to openid credentials [zrl=[baseurl]/help/hook/magic_auth_success]magic_auth_success[/zrl] + Called when a magic-auth was successful [zrl=[baseurl]/help/hook/main_slider]main_slider[/zrl] + Called whne generating the affinity tool [zrl=[baseurl]/help/hook/marital_selector]marital_selector[/zrl] + Called when generating the list of choices for the 'marital status' profile dropdown (advanced profile) [zrl=[baseurl]/help/hook/marital_selector_min]marital_selector_min[/zrl] + Called when generating the list of choices for the 'marital status' profile dropdown (normal profile) [zrl=[baseurl]/help/hook/module_loaded]module_loaded[/zrl] + Called when a module has been successfully locate to server a URL request [zrl=[baseurl]/help/hook/mood_verbs]mood_verbs[/zrl] + Called when generating the list of moods [zrl=[baseurl]/help/hook/nav]nav[/zrl] + Called when generating the navigation bar [zrl=[baseurl]/help/hook/network_content_init]network_content_init[/zrl] + Called when loading cntent for the network page [zrl=[baseurl]/help/hook/network_ping]network_ping[/zrl] + Called during a ping request [zrl=[baseurl]/help/hook/network_tabs]network_tabs[/zrl] + Called when generating the list of tabs for the network page [zrl=[baseurl]/help/hook/network_to_name]network_to_name[/zrl] + Deprecated [zrl=[baseurl]/help/hook/notifier_end]notifier_end[/zrl] + Called when a delivery loop has completed [zrl=[baseurl]/help/hook/notifier_hub]notifier_hub[/zrl] + Called when a hub is delivered [zrl=[baseurl]/help/hook/notifier_normal]notifier_normal[/zrl] + Called when the notofoer is invoked for a 'normal' delivery [zrl=[baseurl]/help/hook/obj_verbs]obj_verbs[/zrl] + Called when creating the list of verbs available for profile "things". [zrl=[baseurl]/help/hook/oembed_probe]oembed_probe[/zrl] + Called when performing an oembed content lookup [zrl=[baseurl]/help/hook/page_content_top]page_content_top[/zrl] + Called when we generate a webpage (before calling the module content function) [zrl=[baseurl]/help/hook/page_end]page_end[/zrl] + Called after we have generated the page content [zrl=[baseurl]/help/hook/page_header]page_header[/zrl] + Called when generating the navigation bar [zrl=[baseurl]/help/hook/parse_atom]parse_atom[/zrl] + Called when parsing an atom/RSS feed item [zrl=[baseurl]/help/hook/parse_link]parse_link[/zrl] + Called when probing a URL to generate post content from it [zrl=[baseurl]/help/hook/pdl_selector]pdl_selector[/zrl] + Called when creating a layout selection in a form [zrl=[baseurl]/help/hook/perm_is_allowed]perm_is_allowed[/zrl] + Called during perm_is_allowed() to determine if a permission is allowed for this channel and observer [zrl=[baseurl]/help/hook/permissions_create]permissions_create[/zrl] + Called when an abook entry (connection) is created + +[zrl=[baseurl]/help/hook/permissions_update]permissions_update[/zrl] + Called when a permissions refresh is transmitted [zrl=[baseurl]/help/hook/personal_xrd]personal_xrd[/zrl] + Called when generating the personal XRD for "old webfinger" (Diaspora) [zrl=[baseurl]/help/hook/photo_post_end]photo_post_end[/zrl] + Called after uploading a photo [zrl=[baseurl]/help/hook/photo_upload_begin]photo_upload_begin[/zrl] + Called when attempting to upload a photo [zrl=[baseurl]/help/hook/photo_upload_end]photo_upload_end[/zrl] + Called when a photo upload has been processed [zrl=[baseurl]/help/hook/photo_upload_file]photo_upload_file[/zrl] + Called to generate alternate filenames for an upload [zrl=[baseurl]/help/hook/photo_upload_form]photo_upload_form[/zrl] + Called when generating a photo upload form [zrl=[baseurl]/help/hook/poke_verbs]poke_verbs[/zrl] + Called when generating the list of actions for "poke" module [zrl=[baseurl]/help/hook/post_local]post_local[/zrl] + Called when an item has been posted on this machine via mod/item.php (also via API) [zrl=[baseurl]/help/hook/post_local_end]post_local_end[/zrl] + Called after a local post operation has completed [zrl=[baseurl]/help/hook/post_local_start]post_local_start[/zrl] + Called when a local post operation is commencing [zrl=[baseurl]/help/hook/post_mail]post_mail[/zrl] + Called when a mail message has been composed [zrl=[baseurl]/help/hook/post_mail_end]post_mail_end[/zrl] + Called when a mail message has been delivered [zrl=[baseurl]/help/hook/post_remote]post_remote[/zrl] + Called when an activity arrives from another site [zrl=[baseurl]/help/hook/post_remote_end]post_remote_end[/zrl] + Called after processing a remote post [zrl=[baseurl]/help/hook/post_remote_update]post_remote_update[/zrl] + Called when processing a remote post that involved an edit or update [zrl=[baseurl]/help/hook/post_remote_update_end]post_remote_update_end[/zrl] + Called after processing a remote post that involved an edit or update [zrl=[baseurl]/help/hook/prepare_body]prepare_body[/zrl] + Called when generating the HTML for a displayed conversation item [zrl=[baseurl]/help/hook/prepare_body_final]prepare_body_final[/zrl] + Called after generating the HTML for a displayed conversation item [zrl=[baseurl]/help/hook/prepare_body_init]prepare_body_init[/zrl] + Called before generating the HTML for a displayed conversation item [zrl=[baseurl]/help/hook/probe_well_known]probe_well_known[/zrl] + under construction [zrl=[baseurl]/help/hook/proc_run]proc_run[/zrl] + Called when invoking PHP sub processes [zrl=[baseurl]/help/hook/process_channel_sync_delivery]process_channel_sync_delivery[/zrl] + Called when accepting delivery of a 'sync packet' containing structure and table updates from a channel clone [zrl=[baseurl]/help/hook/profile_advanced]profile_advanced[/zrl] + Called when generating an advanced profile page [zrl=[baseurl]/help/hook/profile_edit]profile_edit[/zrl] + Called when editing a profile [zrl=[baseurl]/help/hook/profile_photo_content_end]profile_photo_content_end[/zrl] + Called when changing a profile photo [zrl=[baseurl]/help/hook/profile_post]profile_post[/zrl] + Called when posting an edited profile [zrl=[baseurl]/help/hook/profile_sidebar]profile_sidebar[/zrl] + Called when generating the 'channel sidebar' or mini-profile [zrl=[baseurl]/help/hook/profile_sidebar_enter]profile_sidebar_enter[/zrl] + Called before generating the 'channel sidebar' or mini-profile [zrl=[baseurl]/help/hook/profile_tabs]profile_tabs[/zrl] - + Called when generating the tabs for channel related pages (channel,profile,files,etc.) + [zrl=[baseurl]/help/hook/register_account]register_account[/zrl] + Called when an account has been created [zrl=[baseurl]/help/hook/render_location]render_location[/zrl] + Called to generate an ineractive inline map [zrl=[baseurl]/help/hook/replace_macros]replace_macros[/zrl] + Called before invoking the template processor [zrl=[baseurl]/help/hook/reverse_magic_auth]reverse_magic_auth[/zrl] + Called before invoking reverse magic auth to send you to your own site to authenticate on this site [zrl=[baseurl]/help/hook/settings_account]settings_account[/zrl] + Called when generating the account settings form [zrl=[baseurl]/help/hook/settings_form]settings_form[/zrl] + Called when generating the channel settings form [zrl=[baseurl]/help/hook/settings_post]settings_post[/zrl] + Called when posting from the channel settings form [zrl=[baseurl]/help/hook/sexpref_selector]sexpref_selector[/zrl] + Called when generating a dropdown of sexual preference (advanced profile) [zrl=[baseurl]/help/hook/sexpref_selector_min]sexpref_selector_min[/zrl] + Called when generating a dropdown of sexual preference (normal profile) [zrl=[baseurl]/help/hook/smilie]smilie[/zrl] - -[zrl=[baseurl]/help/hook/smilie]smilie[/zrl] + Called when translating emoticons [zrl=[baseurl]/help/hook/tagged]tagged[/zrl] + Called when a delivery is processed which results in you being tagged [zrl=[baseurl]/help/hook/validate_channelname]validate_channelname[/zrl] Used to validate the names used by a channel diff --git a/mod/ffsapi.php b/mod/ffsapi.php index 3822a8e94..f4033e63b 100644 --- a/mod/ffsapi.php +++ b/mod/ffsapi.php @@ -4,7 +4,7 @@ function ffsapi_content(&$a) { $baseurl = z_root(); -$name = sprintf( t('%1$s'), get_config('system','sitename')); +$name = get_config('system','sitename'); $description = t('Share content from Firefox to $Projectname'); $author = 'Mike Macgirvin'; $homepage = 'http://hubzilla.org'; From 017ea0d62419cf0388e90298d8a9b8be7da77631 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 20:19:38 -0800 Subject: [PATCH 105/150] more work on hook doco --- doc/hook/account_settings_post.bb | 1 + doc/hook/permissions_update.bb | 1 + doc/hook/settings_account.bb | 1 - doc/hooklist.bb | 8 ++++---- mod/settings.php | 3 ++- 5 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 doc/hook/account_settings_post.bb create mode 100644 doc/hook/permissions_update.bb delete mode 100644 doc/hook/settings_account.bb diff --git a/doc/hook/account_settings_post.bb b/doc/hook/account_settings_post.bb new file mode 100644 index 000000000..bbd7a57a8 --- /dev/null +++ b/doc/hook/account_settings_post.bb @@ -0,0 +1 @@ +[h2]account_settings_post[/h2] diff --git a/doc/hook/permissions_update.bb b/doc/hook/permissions_update.bb new file mode 100644 index 000000000..40366b33d --- /dev/null +++ b/doc/hook/permissions_update.bb @@ -0,0 +1 @@ +[h2]permissions_update[/h2] diff --git a/doc/hook/settings_account.bb b/doc/hook/settings_account.bb deleted file mode 100644 index fe22dd97b..000000000 --- a/doc/hook/settings_account.bb +++ /dev/null @@ -1 +0,0 @@ -[h2]settings_account[/h2] diff --git a/doc/hooklist.bb b/doc/hooklist.bb index 87d175352..06b3e6de7 100644 --- a/doc/hooklist.bb +++ b/doc/hooklist.bb @@ -20,7 +20,10 @@ Called when an account has expired, indicating a potential downgrade to "basic" service class [zrl=[baseurl]/help/hook/account_settings]account_settings[/zrl] - Called when account settings have been saved + Called when generating the account settings form + +[zrl=[baseurl]/help/hook/settings_account]account_settings_post[/zrl] + Called when posting from the account settings form [zrl=[baseurl]/help/hook/activity_received]activity_received[/zrl] Called when an activity (post, comment, like, etc.) has been received from a zot source @@ -449,9 +452,6 @@ [zrl=[baseurl]/help/hook/reverse_magic_auth]reverse_magic_auth[/zrl] Called before invoking reverse magic auth to send you to your own site to authenticate on this site -[zrl=[baseurl]/help/hook/settings_account]settings_account[/zrl] - Called when generating the account settings form - [zrl=[baseurl]/help/hook/settings_form]settings_form[/zrl] Called when generating the channel settings form diff --git a/mod/settings.php b/mod/settings.php index 18bfaeb08..9a18d8e48 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -218,7 +218,8 @@ function settings_post(&$a) { check_form_security_token_redirectOnErr('/settings/account', 'settings_account'); - call_hooks('settings_account', $_POST); + call_hooks('account_settings_post', $_POST); +// call_hooks('settings_account', $_POST); $errs = array(); From 9e6547a887856efea850f9dd470e2dfbac3345e7 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 20:21:41 -0800 Subject: [PATCH 106/150] add the hook detail to the doco list --- doc/develop.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/develop.bb b/doc/develop.bb index 67515c1ab..09ea1ee71 100644 --- a/doc/develop.bb +++ b/doc/develop.bb @@ -9,6 +9,7 @@ [zrl=[baseurl]/help/Widgets]Widgets[/zrl] [zrl=[baseurl]/help/plugins]Plugins[/zrl] [zrl=[baseurl]/help/hooks]Hooks[/zrl] +[zrl=[baseurl]/help/hooklist]Hooks (detailed - under construction)[/zrl] [zrl=[baseurl]/help/doco]Contributing Documentation[/zrl] [zrl=[baseurl]/help/DerivedTheme1]Creating Derivative Themes[/zrl] [zrl=[baseurl]/help/schema_development]Schemas[/zrl] From 12db46dcad7cddcc97d4343cd81cfd42498c93b6 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 20:49:25 -0800 Subject: [PATCH 107/150] a bit of explanation at the beginning --- doc/hooklist.bb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/hooklist.bb b/doc/hooklist.bb index 06b3e6de7..9e0220013 100644 --- a/doc/hooklist.bb +++ b/doc/hooklist.bb @@ -1,3 +1,8 @@ +[h2]Hooks[/h2] + +Hooks allow plugins/addons to "hook into" the code at many points and alter the behaviour or otherwise perform independent actions when an activity takes place or when certain data structures are accessed. There are many hooks which allow you to tie into the software at most any point and do something slightly different than the default thing. These hooks are passed two variables. The first is the App structure which contains details about the entire state of the page request as we build the resulting page. The second is unique to the specific hook that is called and provides specific detail about what is happening in the software at the time the hook is invoked. + + [zrl=[baseurl]/help/hook/module_mod_aftercontent]module_mod_aftercontent[/zrl] General purpose hook for any module, executed after mod_content(). Replace 'module' with module name, e.g. 'photos_mod_aftercontent'. From 4ca0c2cfd14df5e2b6e9c7f59a10628f7653d6a4 Mon Sep 17 00:00:00 2001 From: redmatrix Date: Thu, 5 Nov 2015 21:06:09 -0800 Subject: [PATCH 108/150] more hook doco --- doc/hook/module_mod_aftercontent.bb | 11 +++++++++++ doc/hook/module_mod_content.bb | 9 +++++++++ 2 files changed, 20 insertions(+) diff --git a/doc/hook/module_mod_aftercontent.bb b/doc/hook/module_mod_aftercontent.bb index 902ed47a9..5d48435b8 100644 --- a/doc/hook/module_mod_aftercontent.bb +++ b/doc/hook/module_mod_aftercontent.bb @@ -1 +1,12 @@ [h2]module_mod_aftercontent[/h2] + + + +The hook data for this call consists of an array + + $arr['content'] + +This element contains the HTML content which was prepared for this page by calling the module_content() function. It is invoked after the content has been created. It does not contain the result of AJAX or asynchronous page load calls. + + The current module may be determined by lookin at $a->module + diff --git a/doc/hook/module_mod_content.bb b/doc/hook/module_mod_content.bb index a504692d0..39f5743b1 100644 --- a/doc/hook/module_mod_content.bb +++ b/doc/hook/module_mod_content.bb @@ -1 +1,10 @@ [h2]module_mod_content[/h2] + +The hook data for this call consists of an array + + $arr['content'] + +This element contains the HTML content before calling the module_content() function. It is invoked before the content region has been populated. This may or may not be empty as there may be other processes or addons generating content prior to your hook handler is run. Be certain to preserve any current content. Typically anything you add here will be placed at the top of the content region of the page, but in any event prior to the main content region being generated. + + The current module may be determined by lookin at $a->module + From c40f6060da9c014135e70f165fa7adbfb127bcf2 Mon Sep 17 00:00:00 2001 From: Haakon Meland Eriksen Date: Fri, 6 Nov 2015 17:26:04 +0100 Subject: [PATCH 109/150] Hubzilla report created by schemaSpy using zot.meta.xml to imply relationships --- doc/schemaspy_hubzilla/anomalies.html | 258 + doc/schemaspy_hubzilla/columns.byAuto.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/columns.byColumn.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/columns.byDefault.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/columns.byNulls.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/columns.bySize.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/columns.byTable.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/columns.byType.html | 7375 +++++++++++++++++ doc/schemaspy_hubzilla/constraints.html | 103 + doc/schemaspy_hubzilla/deletionOrder.txt | 64 + .../diagrams/abook.1degree.dot | 90 + .../diagrams/abook.1degree.png | Bin 0 -> 16073 bytes .../diagrams/abook.2degrees.dot | 431 + .../diagrams/abook.2degrees.png | Bin 0 -> 80238 bytes .../diagrams/account.1degree.dot | 49 + .../diagrams/account.1degree.png | Bin 0 -> 8695 bytes .../diagrams/account.implied2degrees.dot | 117 + .../diagrams/account.implied2degrees.png | Bin 0 -> 21949 bytes .../diagrams/addon.1degree.dot | 38 + .../diagrams/addon.1degree.png | Bin 0 -> 3440 bytes .../diagrams/addon.implied2degrees.dot | 205 + .../diagrams/addon.implied2degrees.png | Bin 0 -> 24086 bytes .../diagrams/app.1degree.dot | 47 + .../diagrams/app.1degree.png | Bin 0 -> 5263 bytes .../diagrams/app.implied2degrees.dot | 214 + .../diagrams/app.implied2degrees.png | Bin 0 -> 28776 bytes .../diagrams/attach.1degree.dot | 183 + .../diagrams/attach.1degree.png | Bin 0 -> 45434 bytes .../diagrams/attach.2degrees.dot | 497 ++ .../diagrams/attach.2degrees.png | Bin 0 -> 98172 bytes .../diagrams/attach.implied2degrees.dot | 637 ++ .../diagrams/attach.implied2degrees.png | Bin 0 -> 125911 bytes .../diagrams/auth_codes.1degree.dot | 36 + .../diagrams/auth_codes.1degree.png | Bin 0 -> 2955 bytes .../diagrams/auth_codes.implied2degrees.dot | 69 + .../diagrams/auth_codes.implied2degrees.png | Bin 0 -> 7011 bytes .../diagrams/cache.1degree.dot | 34 + .../diagrams/cache.1degree.png | Bin 0 -> 2436 bytes .../diagrams/cache.implied2degrees.dot | 176 + .../diagrams/cache.implied2degrees.png | Bin 0 -> 22350 bytes .../diagrams/channel.1degree.dot | 415 + .../diagrams/channel.1degree.png | Bin 0 -> 109873 bytes .../diagrams/channel.2degrees.dot | 595 ++ .../diagrams/channel.2degrees.png | Bin 0 -> 140410 bytes .../diagrams/channel.implied2degrees.dot | 773 ++ .../diagrams/channel.implied2degrees.png | Bin 0 -> 169025 bytes .../diagrams/chat.1degree.dot | 72 + .../diagrams/chat.1degree.png | Bin 0 -> 11047 bytes .../diagrams/chat.2degrees.dot | 413 + .../diagrams/chat.2degrees.png | Bin 0 -> 69850 bytes .../diagrams/chatpresence.1degree.dot | 73 + .../diagrams/chatpresence.1degree.png | Bin 0 -> 10836 bytes .../diagrams/chatpresence.2degrees.dot | 414 + .../diagrams/chatpresence.2degrees.png | Bin 0 -> 67594 bytes .../diagrams/clients.1degree.dot | 37 + .../diagrams/clients.1degree.png | Bin 0 -> 3082 bytes .../diagrams/clients.implied2degrees.dot | 69 + .../diagrams/clients.implied2degrees.png | Bin 0 -> 7288 bytes .../diagrams/config.1degree.dot | 35 + .../diagrams/config.1degree.png | Bin 0 -> 2667 bytes .../diagrams/config.implied2degrees.dot | 287 + .../diagrams/config.implied2degrees.png | Bin 0 -> 26131 bytes .../diagrams/conv.1degree.dot | 39 + .../diagrams/conv.1degree.png | Bin 0 -> 4535 bytes .../diagrams/conv.implied2degrees.dot | 264 + .../diagrams/conv.implied2degrees.png | Bin 0 -> 26723 bytes .../diagrams/dreport.1degree.dot | 76 + .../diagrams/dreport.1degree.png | Bin 0 -> 12119 bytes .../diagrams/dreport.2degrees.dot | 417 + .../diagrams/dreport.2degrees.png | Bin 0 -> 70509 bytes .../diagrams/event.1degree.dot | 188 + .../diagrams/event.1degree.png | Bin 0 -> 47639 bytes .../diagrams/event.2degrees.dot | 501 ++ .../diagrams/event.2degrees.png | Bin 0 -> 102591 bytes .../diagrams/event.implied2degrees.dot | 618 ++ .../diagrams/event.implied2degrees.png | Bin 0 -> 110649 bytes .../diagrams/fcontact.1degree.dot | 47 + .../diagrams/fcontact.1degree.png | Bin 0 -> 5436 bytes .../diagrams/fcontact.implied2degrees.dot | 272 + .../diagrams/fcontact.implied2degrees.png | Bin 0 -> 27521 bytes .../diagrams/ffinder.1degree.dot | 35 + .../diagrams/ffinder.1degree.png | Bin 0 -> 2199 bytes .../diagrams/ffinder.implied2degrees.dot | 260 + .../diagrams/ffinder.implied2degrees.png | Bin 0 -> 23201 bytes .../diagrams/fserver.1degree.dot | 35 + .../diagrams/fserver.1degree.png | Bin 0 -> 2638 bytes .../diagrams/fserver.implied2degrees.dot | 202 + .../diagrams/fserver.implied2degrees.png | Bin 0 -> 22565 bytes .../diagrams/fsuggest.1degree.dot | 40 + .../diagrams/fsuggest.1degree.png | Bin 0 -> 3460 bytes .../diagrams/fsuggest.implied2degrees.dot | 207 + .../diagrams/fsuggest.implied2degrees.png | Bin 0 -> 24271 bytes .../diagrams/group_member.1degree.dot | 71 + .../diagrams/group_member.1degree.png | Bin 0 -> 10041 bytes .../diagrams/group_member.2degrees.dot | 412 + .../diagrams/group_member.2degrees.png | Bin 0 -> 66683 bytes .../diagrams/group_member.implied2degrees.dot | 552 ++ .../diagrams/group_member.implied2degrees.png | Bin 0 -> 97868 bytes .../diagrams/groups.1degree.dot | 166 + .../diagrams/groups.1degree.png | Bin 0 -> 39282 bytes .../diagrams/groups.2degrees.dot | 480 ++ .../diagrams/groups.2degrees.png | Bin 0 -> 84760 bytes .../diagrams/groups.implied2degrees.dot | 620 ++ .../diagrams/groups.implied2degrees.png | Bin 0 -> 110583 bytes .../diagrams/hook.1degree.dot | 36 + .../diagrams/hook.1degree.png | Bin 0 -> 2803 bytes .../diagrams/hook.implied2degrees.dot | 203 + .../diagrams/hook.implied2degrees.png | Bin 0 -> 23450 bytes .../diagrams/hubloc.1degree.dot | 416 + .../diagrams/hubloc.1degree.png | Bin 0 -> 101241 bytes .../diagrams/hubloc.2degrees.dot | 596 ++ .../diagrams/hubloc.2degrees.png | Bin 0 -> 139847 bytes .../diagrams/hubloc.implied2degrees.dot | 733 ++ .../diagrams/hubloc.implied2degrees.png | Bin 0 -> 156313 bytes .../diagrams/item.1degree.dot | 142 + .../diagrams/item.1degree.png | Bin 0 -> 33738 bytes .../diagrams/item.2degrees.dot | 481 ++ .../diagrams/item.2degrees.png | Bin 0 -> 109171 bytes .../diagrams/item.implied2degrees.dot | 621 ++ .../diagrams/item.implied2degrees.png | Bin 0 -> 139331 bytes .../diagrams/item_id.1degree.dot | 36 + .../diagrams/item_id.1degree.png | Bin 0 -> 2688 bytes .../diagrams/item_id.implied2degrees.dot | 261 + .../diagrams/item_id.implied2degrees.png | Bin 0 -> 23870 bytes .../diagrams/likes.1degree.dot | 41 + .../diagrams/likes.1degree.png | Bin 0 -> 4461 bytes .../diagrams/likes.implied2degrees.dot | 468 ++ .../diagrams/likes.implied2degrees.png | Bin 0 -> 93582 bytes .../diagrams/mail.1degree.dot | 90 + .../diagrams/mail.1degree.png | Bin 0 -> 16364 bytes .../diagrams/mail.2degrees.dot | 430 + .../diagrams/mail.2degrees.png | Bin 0 -> 79485 bytes .../diagrams/mail.implied2degrees.dot | 645 ++ .../diagrams/mail.implied2degrees.png | Bin 0 -> 124628 bytes .../diagrams/manage.1degree.dot | 70 + .../diagrams/manage.1degree.png | Bin 0 -> 9523 bytes .../diagrams/manage.2degrees.dot | 411 + .../diagrams/manage.2degrees.png | Bin 0 -> 63293 bytes .../diagrams/manage.implied2degrees.dot | 517 ++ .../diagrams/manage.implied2degrees.png | Bin 0 -> 80224 bytes .../diagrams/notify.1degree.dot | 175 + .../diagrams/notify.1degree.png | Bin 0 -> 42260 bytes .../diagrams/notify.2degrees.dot | 489 ++ .../diagrams/notify.2degrees.png | Bin 0 -> 92802 bytes .../diagrams/notify.implied2degrees.dot | 721 ++ .../diagrams/notify.implied2degrees.png | Bin 0 -> 134456 bytes .../diagrams/outq.1degree.dot | 172 + .../diagrams/outq.1degree.png | Bin 0 -> 43060 bytes .../diagrams/outq.2degrees.dot | 486 ++ .../diagrams/outq.2degrees.png | Bin 0 -> 94060 bytes .../diagrams/outq.implied2degrees.dot | 501 ++ .../diagrams/outq.implied2degrees.png | Bin 0 -> 102028 bytes .../diagrams/pconfig.1degree.dot | 36 + .../diagrams/pconfig.1degree.png | Bin 0 -> 3016 bytes .../diagrams/pconfig.implied2degrees.dot | 265 + .../diagrams/pconfig.implied2degrees.png | Bin 0 -> 29542 bytes .../diagrams/photo.1degree.dot | 95 + .../diagrams/photo.1degree.png | Bin 0 -> 17648 bytes .../diagrams/photo.2degrees.dot | 436 + .../diagrams/photo.2degrees.png | Bin 0 -> 83963 bytes .../diagrams/photo.implied2degrees.dot | 576 ++ .../diagrams/photo.implied2degrees.png | Bin 0 -> 118209 bytes .../diagrams/profdef.1degree.dot | 37 + .../diagrams/profdef.1degree.png | Bin 0 -> 3837 bytes .../diagrams/profdef.implied2degrees.dot | 262 + .../diagrams/profdef.implied2degrees.png | Bin 0 -> 26071 bytes .../diagrams/profext.1degree.dot | 165 + .../diagrams/profext.1degree.png | Bin 0 -> 39767 bytes .../diagrams/profext.2degrees.dot | 479 ++ .../diagrams/profext.2degrees.png | Bin 0 -> 87565 bytes .../diagrams/profext.implied2degrees.dot | 647 ++ .../diagrams/profext.implied2degrees.png | Bin 0 -> 116630 bytes .../diagrams/profile.1degree.dot | 75 + .../diagrams/profile.1degree.png | Bin 0 -> 12384 bytes .../diagrams/profile.implied2degrees.dot | 242 + .../diagrams/profile.implied2degrees.png | Bin 0 -> 40619 bytes .../diagrams/profile_check.1degree.dot | 37 + .../diagrams/profile_check.1degree.png | Bin 0 -> 2986 bytes .../profile_check.implied2degrees.dot | 262 + .../profile_check.implied2degrees.png | Bin 0 -> 24039 bytes .../diagrams/register.1degree.dot | 166 + .../diagrams/register.1degree.png | Bin 0 -> 39507 bytes .../diagrams/register.2degrees.dot | 480 ++ .../diagrams/register.2degrees.png | Bin 0 -> 85020 bytes .../diagrams/register.implied2degrees.dot | 620 ++ .../diagrams/register.implied2degrees.png | Bin 0 -> 111049 bytes .../diagrams/shares.1degree.dot | 71 + .../diagrams/shares.1degree.png | Bin 0 -> 10514 bytes .../diagrams/shares.2degrees.dot | 412 + .../diagrams/shares.2degrees.png | Bin 0 -> 67013 bytes .../diagrams/sign.1degree.dot | 37 + .../diagrams/sign.1degree.png | Bin 0 -> 3747 bytes .../diagrams/sign.implied2degrees.dot | 262 + .../diagrams/sign.implied2degrees.png | Bin 0 -> 25903 bytes .../diagrams/source.1degree.dot | 73 + .../diagrams/source.1degree.png | Bin 0 -> 11464 bytes .../diagrams/source.2degrees.dot | 413 + .../diagrams/source.2degrees.png | Bin 0 -> 70463 bytes .../diagrams/spam.1degree.dot | 37 + .../diagrams/spam.1degree.png | Bin 0 -> 2766 bytes .../diagrams/spam.implied2degrees.dot | 204 + .../diagrams/spam.implied2degrees.png | Bin 0 -> 23189 bytes .../diagrams/summary/abook.1degree.dot | 52 + .../diagrams/summary/abook.1degree.png | Bin 0 -> 4956 bytes .../diagrams/summary/account.1degree.dot | 47 + .../diagrams/summary/account.1degree.png | Bin 0 -> 4820 bytes .../diagrams/summary/addon.1degree.dot | 36 + .../diagrams/summary/addon.1degree.png | Bin 0 -> 1839 bytes .../diagrams/summary/app.1degree.dot | 45 + .../diagrams/summary/app.1degree.png | Bin 0 -> 3053 bytes .../diagrams/summary/attach.1degree.dot | 52 + .../diagrams/summary/attach.1degree.png | Bin 0 -> 3980 bytes .../diagrams/summary/auth_codes.1degree.dot | 34 + .../diagrams/summary/auth_codes.1degree.png | Bin 0 -> 1401 bytes .../diagrams/summary/cache.1degree.dot | 32 + .../diagrams/summary/cache.1degree.png | Bin 0 -> 996 bytes .../diagrams/summary/channel.1degree.dot | 77 + .../diagrams/summary/channel.1degree.png | Bin 0 -> 10050 bytes .../diagrams/summary/chat.1degree.dot | 34 + .../diagrams/summary/chat.1degree.png | Bin 0 -> 1498 bytes .../diagrams/summary/chatpresence.1degree.dot | 35 + .../diagrams/summary/chatpresence.1degree.png | Bin 0 -> 1616 bytes .../diagrams/summary/chatroom.1degree.dot | 40 + .../diagrams/summary/chatroom.1degree.png | Bin 0 -> 2214 bytes .../diagrams/summary/clients.1degree.dot | 35 + .../diagrams/summary/clients.1degree.png | Bin 0 -> 1415 bytes .../diagrams/summary/config.1degree.dot | 33 + .../diagrams/summary/config.1degree.png | Bin 0 -> 993 bytes .../diagrams/summary/conv.1degree.dot | 37 + .../diagrams/summary/conv.1degree.png | Bin 0 -> 1686 bytes .../diagrams/summary/dreport.1degree.dot | 38 + .../diagrams/summary/dreport.1degree.png | Bin 0 -> 2420 bytes .../diagrams/summary/event.1degree.dot | 56 + .../diagrams/summary/event.1degree.png | Bin 0 -> 5243 bytes .../diagrams/summary/fcontact.1degree.dot | 45 + .../diagrams/summary/fcontact.1degree.png | Bin 0 -> 2657 bytes .../diagrams/summary/ffinder.1degree.dot | 33 + .../diagrams/summary/ffinder.1degree.png | Bin 0 -> 839 bytes .../diagrams/summary/fserver.1degree.dot | 33 + .../diagrams/summary/fserver.1degree.png | Bin 0 -> 1161 bytes .../diagrams/summary/fsuggest.1degree.dot | 38 + .../diagrams/summary/fsuggest.1degree.png | Bin 0 -> 1531 bytes .../diagrams/summary/group_member.1degree.dot | 33 + .../diagrams/summary/group_member.1degree.png | Bin 0 -> 1160 bytes .../diagrams/summary/groups.1degree.dot | 35 + .../diagrams/summary/groups.1degree.png | Bin 0 -> 1378 bytes .../diagrams/summary/hook.1degree.dot | 34 + .../diagrams/summary/hook.1degree.png | Bin 0 -> 1221 bytes .../diagrams/summary/hubloc.1degree.dot | 49 + .../diagrams/summary/hubloc.1degree.png | Bin 0 -> 4548 bytes .../diagrams/summary/issue.1degree.dot | 36 + .../diagrams/summary/issue.1degree.png | Bin 0 -> 2053 bytes .../diagrams/summary/item.1degree.dot | 102 + .../diagrams/summary/item.1degree.png | Bin 0 -> 13309 bytes .../diagrams/summary/item_id.1degree.dot | 34 + .../diagrams/summary/item_id.1degree.png | Bin 0 -> 1136 bytes .../diagrams/summary/likes.1degree.dot | 39 + .../diagrams/summary/likes.1degree.png | Bin 0 -> 1881 bytes .../diagrams/summary/mail.1degree.dot | 51 + .../diagrams/summary/mail.1degree.png | Bin 0 -> 4097 bytes .../diagrams/summary/manage.1degree.dot | 32 + .../diagrams/summary/manage.1degree.png | Bin 0 -> 909 bytes .../diagrams/summary/menu.1degree.dot | 36 + .../diagrams/summary/menu.1degree.png | Bin 0 -> 1975 bytes .../diagrams/summary/menu_item.1degree.dot | 40 + .../diagrams/summary/menu_item.1degree.png | Bin 0 -> 2803 bytes .../diagrams/summary/notify.1degree.dot | 44 + .../diagrams/summary/notify.1degree.png | Bin 0 -> 2360 bytes .../diagrams/summary/obj.1degree.dot | 44 + .../diagrams/summary/obj.1degree.png | Bin 0 -> 2807 bytes .../diagrams/summary/outq.1degree.dot | 41 + .../diagrams/summary/outq.1degree.png | Bin 0 -> 3023 bytes .../diagrams/summary/pconfig.1degree.dot | 34 + .../diagrams/summary/pconfig.1degree.png | Bin 0 -> 1084 bytes .../diagrams/summary/photo.1degree.dot | 57 + .../diagrams/summary/photo.1degree.png | Bin 0 -> 5141 bytes .../diagrams/summary/poll.1degree.dot | 34 + .../diagrams/summary/poll.1degree.png | Bin 0 -> 1423 bytes .../diagrams/summary/poll_elm.1degree.dot | 34 + .../diagrams/summary/poll_elm.1degree.png | Bin 0 -> 1528 bytes .../diagrams/summary/profdef.1degree.dot | 35 + .../diagrams/summary/profdef.1degree.png | Bin 0 -> 1607 bytes .../diagrams/summary/profext.1degree.dot | 34 + .../diagrams/summary/profext.1degree.png | Bin 0 -> 1184 bytes .../diagrams/summary/profile.1degree.dot | 73 + .../diagrams/summary/profile.1degree.png | Bin 0 -> 7069 bytes .../summary/profile_check.1degree.dot | 35 + .../summary/profile_check.1degree.png | Bin 0 -> 1340 bytes .../diagrams/summary/register.1degree.dot | 35 + .../diagrams/summary/register.1degree.png | Bin 0 -> 1571 bytes .../summary/relationships.implied.compact.dot | 1094 +++ .../summary/relationships.implied.compact.png | Bin 0 -> 257268 bytes .../summary/relationships.implied.large.dot | 1256 +++ .../summary/relationships.implied.large.png | Bin 0 -> 319645 bytes .../summary/relationships.real.compact.dot | 707 ++ .../summary/relationships.real.compact.png | Bin 0 -> 169572 bytes .../summary/relationships.real.large.dot | 788 ++ .../summary/relationships.real.large.png | Bin 0 -> 208837 bytes .../diagrams/summary/session.1degree.dot | 33 + .../diagrams/summary/session.1degree.png | Bin 0 -> 1134 bytes .../diagrams/summary/shares.1degree.dot | 33 + .../diagrams/summary/shares.1degree.png | Bin 0 -> 1495 bytes .../diagrams/summary/sign.1degree.dot | 35 + .../diagrams/summary/sign.1degree.png | Bin 0 -> 1473 bytes .../diagrams/summary/site.1degree.dot | 44 + .../diagrams/summary/site.1degree.png | Bin 0 -> 3468 bytes .../diagrams/summary/source.1degree.dot | 34 + .../diagrams/summary/source.1degree.png | Bin 0 -> 1602 bytes .../diagrams/summary/spam.1degree.dot | 35 + .../diagrams/summary/spam.1degree.png | Bin 0 -> 1195 bytes .../diagrams/summary/sys_perms.1degree.dot | 34 + .../diagrams/summary/sys_perms.1degree.png | Bin 0 -> 1240 bytes .../diagrams/summary/term.1degree.dot | 40 + .../diagrams/summary/term.1degree.png | Bin 0 -> 1974 bytes .../diagrams/summary/tokens.1degree.dot | 35 + .../diagrams/summary/tokens.1degree.png | Bin 0 -> 1441 bytes .../diagrams/summary/updates.1degree.dot | 36 + .../diagrams/summary/updates.1degree.png | Bin 0 -> 1534 bytes .../diagrams/summary/verify.1degree.dot | 35 + .../diagrams/summary/verify.1degree.png | Bin 0 -> 1357 bytes .../diagrams/summary/vote.1degree.dot | 34 + .../diagrams/summary/vote.1degree.png | Bin 0 -> 1600 bytes .../diagrams/summary/xchan.1degree.dot | 55 + .../diagrams/summary/xchan.1degree.png | Bin 0 -> 5697 bytes .../diagrams/summary/xchat.1degree.dot | 34 + .../diagrams/summary/xchat.1degree.png | Bin 0 -> 1524 bytes .../diagrams/summary/xconfig.1degree.dot | 34 + .../diagrams/summary/xconfig.1degree.png | Bin 0 -> 1085 bytes .../diagrams/summary/xign.1degree.dot | 32 + .../diagrams/summary/xign.1degree.png | Bin 0 -> 838 bytes .../diagrams/summary/xlink.1degree.dot | 37 + .../diagrams/summary/xlink.1degree.png | Bin 0 -> 2414 bytes .../diagrams/summary/xperm.1degree.dot | 33 + .../diagrams/summary/xperm.1degree.png | Bin 0 -> 1193 bytes .../diagrams/summary/xprof.1degree.dot | 44 + .../diagrams/summary/xprof.1degree.png | Bin 0 -> 3754 bytes .../diagrams/summary/xtag.1degree.dot | 33 + .../diagrams/summary/xtag.1degree.png | Bin 0 -> 1370 bytes .../diagrams/sys_perms.1degree.dot | 36 + .../diagrams/sys_perms.1degree.png | Bin 0 -> 3279 bytes .../diagrams/sys_perms.implied2degrees.dot | 288 + .../diagrams/sys_perms.implied2degrees.png | Bin 0 -> 27763 bytes .../diagrams/term.1degree.dot | 174 + .../diagrams/term.1degree.png | Bin 0 -> 41811 bytes .../diagrams/term.2degrees.dot | 485 ++ .../diagrams/term.2degrees.png | Bin 0 -> 90041 bytes .../diagrams/term.implied2degrees.dot | 500 ++ .../diagrams/term.implied2degrees.png | Bin 0 -> 97527 bytes .../diagrams/tokens.1degree.dot | 37 + .../diagrams/tokens.1degree.png | Bin 0 -> 3468 bytes .../diagrams/tokens.implied2degrees.dot | 69 + .../diagrams/tokens.implied2degrees.png | Bin 0 -> 7782 bytes .../diagrams/updates.1degree.dot | 167 + .../diagrams/updates.1degree.png | Bin 0 -> 39497 bytes .../diagrams/updates.2degrees.dot | 481 ++ .../diagrams/updates.2degrees.png | Bin 0 -> 84752 bytes .../diagrams/updates.implied2degrees.dot | 496 ++ .../diagrams/updates.implied2degrees.png | Bin 0 -> 94857 bytes .../diagrams/verify.1degree.dot | 37 + .../diagrams/verify.1degree.png | Bin 0 -> 3281 bytes .../diagrams/verify.implied2degrees.dot | 566 ++ .../diagrams/verify.implied2degrees.png | Bin 0 -> 129049 bytes .../diagrams/vote.1degree.dot | 72 + .../diagrams/vote.1degree.png | Bin 0 -> 10876 bytes .../diagrams/vote.2degrees.dot | 413 + .../diagrams/vote.2degrees.png | Bin 0 -> 67917 bytes .../diagrams/xchan.1degree.dot | 787 ++ .../diagrams/xchan.1degree.png | Bin 0 -> 229344 bytes .../diagrams/xchan.implied2degrees.dot | 935 +++ .../diagrams/xchan.implied2degrees.png | Bin 0 -> 262179 bytes .../diagrams/xchat.1degree.dot | 72 + .../diagrams/xchat.1degree.png | Bin 0 -> 10633 bytes .../diagrams/xchat.2degrees.dot | 413 + .../diagrams/xchat.2degrees.png | Bin 0 -> 67600 bytes .../diagrams/xconfig.1degree.dot | 72 + .../diagrams/xconfig.1degree.png | Bin 0 -> 10390 bytes .../diagrams/xconfig.2degrees.dot | 413 + .../diagrams/xconfig.2degrees.png | Bin 0 -> 68894 bytes .../diagrams/xconfig.implied2degrees.dot | 581 ++ .../diagrams/xconfig.implied2degrees.png | Bin 0 -> 99406 bytes .../diagrams/xign.1degree.dot | 70 + .../diagrams/xign.1degree.png | Bin 0 -> 9658 bytes .../diagrams/xign.2degrees.dot | 411 + .../diagrams/xign.2degrees.png | Bin 0 -> 65383 bytes .../diagrams/xign.implied2degrees.dot | 551 ++ .../diagrams/xign.implied2degrees.png | Bin 0 -> 96772 bytes .../diagrams/xlink.1degree.dot | 75 + .../diagrams/xlink.1degree.png | Bin 0 -> 12316 bytes .../diagrams/xlink.2degrees.dot | 416 + .../diagrams/xlink.2degrees.png | Bin 0 -> 71945 bytes .../diagrams/xprof.1degree.dot | 175 + .../diagrams/xprof.1degree.png | Bin 0 -> 43267 bytes .../diagrams/xprof.2degrees.dot | 489 ++ .../diagrams/xprof.2degrees.png | Bin 0 -> 92964 bytes .../diagrams/xprof.implied2degrees.dot | 504 ++ .../diagrams/xprof.implied2degrees.png | Bin 0 -> 102363 bytes .../diagrams/xtag.1degree.dot | 164 + .../diagrams/xtag.1degree.png | Bin 0 -> 38732 bytes .../diagrams/xtag.2degrees.dot | 478 ++ .../diagrams/xtag.2degrees.png | Bin 0 -> 83028 bytes .../diagrams/xtag.implied2degrees.dot | 493 ++ .../diagrams/xtag.implied2degrees.png | Bin 0 -> 92668 bytes doc/schemaspy_hubzilla/images/background.gif | Bin 0 -> 311 bytes doc/schemaspy_hubzilla/images/tabLeft.gif | Bin 0 -> 645 bytes doc/schemaspy_hubzilla/images/tabRight.gif | Bin 0 -> 1846 bytes doc/schemaspy_hubzilla/index.html | 582 ++ doc/schemaspy_hubzilla/insertionOrder.txt | 64 + doc/schemaspy_hubzilla/jquery.js | 154 + doc/schemaspy_hubzilla/relationships.html | 272 + doc/schemaspy_hubzilla/schemaSpy.css | 277 + doc/schemaspy_hubzilla/schemaSpy.js | 97 + doc/schemaspy_hubzilla/tables/abook.html | 554 ++ doc/schemaspy_hubzilla/tables/account.html | 418 + doc/schemaspy_hubzilla/tables/addon.html | 258 + doc/schemaspy_hubzilla/tables/app.html | 393 + doc/schemaspy_hubzilla/tables/attach.html | 593 ++ doc/schemaspy_hubzilla/tables/auth_codes.html | 216 + doc/schemaspy_hubzilla/tables/cache.html | 217 + doc/schemaspy_hubzilla/tables/channel.html | 1104 +++ doc/schemaspy_hubzilla/tables/chat.html | 254 + .../tables/chatpresence.html | 271 + doc/schemaspy_hubzilla/tables/chatroom.html | 286 + doc/schemaspy_hubzilla/tables/clients.html | 224 + doc/schemaspy_hubzilla/tables/config.html | 231 + doc/schemaspy_hubzilla/tables/conv.html | 270 + doc/schemaspy_hubzilla/tables/dreport.html | 316 + doc/schemaspy_hubzilla/tables/event.html | 632 ++ doc/schemaspy_hubzilla/tables/fcontact.html | 358 + doc/schemaspy_hubzilla/tables/ffinder.html | 232 + doc/schemaspy_hubzilla/tables/fserver.html | 219 + doc/schemaspy_hubzilla/tables/fsuggest.html | 262 + .../tables/group_member.html | 298 + doc/schemaspy_hubzilla/tables/groups.html | 340 + doc/schemaspy_hubzilla/tables/hook.html | 224 + doc/schemaspy_hubzilla/tables/hubloc.html | 642 ++ doc/schemaspy_hubzilla/tables/issue.html | 242 + doc/schemaspy_hubzilla/tables/item.html | 1399 ++++ doc/schemaspy_hubzilla/tables/item_id.html | 249 + doc/schemaspy_hubzilla/tables/likes.html | 347 + doc/schemaspy_hubzilla/tables/mail.html | 608 ++ doc/schemaspy_hubzilla/tables/manage.html | 278 + doc/schemaspy_hubzilla/tables/menu.html | 236 + doc/schemaspy_hubzilla/tables/menu_item.html | 268 + doc/schemaspy_hubzilla/tables/notify.html | 522 ++ doc/schemaspy_hubzilla/tables/obj.html | 354 + doc/schemaspy_hubzilla/tables/outq.html | 411 + doc/schemaspy_hubzilla/tables/pconfig.html | 238 + doc/schemaspy_hubzilla/tables/photo.html | 622 ++ doc/schemaspy_hubzilla/tables/poll.html | 202 + doc/schemaspy_hubzilla/tables/poll_elm.html | 196 + doc/schemaspy_hubzilla/tables/profdef.html | 242 + doc/schemaspy_hubzilla/tables/profext.html | 343 + doc/schemaspy_hubzilla/tables/profile.html | 731 ++ .../tables/profile_check.html | 266 + doc/schemaspy_hubzilla/tables/register.html | 334 + doc/schemaspy_hubzilla/tables/session.html | 185 + doc/schemaspy_hubzilla/tables/shares.html | 243 + doc/schemaspy_hubzilla/tables/sign.html | 248 + doc/schemaspy_hubzilla/tables/site.html | 366 + doc/schemaspy_hubzilla/tables/source.html | 263 + doc/schemaspy_hubzilla/tables/spam.html | 253 + doc/schemaspy_hubzilla/tables/sys_perms.html | 236 + doc/schemaspy_hubzilla/tables/term.html | 427 + doc/schemaspy_hubzilla/tables/tokens.html | 245 + doc/schemaspy_hubzilla/tables/updates.html | 344 + doc/schemaspy_hubzilla/tables/verify.html | 385 + doc/schemaspy_hubzilla/tables/vote.html | 254 + doc/schemaspy_hubzilla/tables/xchan.html | 821 ++ doc/schemaspy_hubzilla/tables/xchat.html | 260 + doc/schemaspy_hubzilla/tables/xconfig.html | 320 + doc/schemaspy_hubzilla/tables/xign.html | 281 + doc/schemaspy_hubzilla/tables/xlink.html | 299 + doc/schemaspy_hubzilla/tables/xperm.html | 191 + doc/schemaspy_hubzilla/tables/xprof.html | 462 ++ doc/schemaspy_hubzilla/tables/xtag.html | 293 + doc/schemaspy_hubzilla/utilities.html | 220 + doc/schemaspy_hubzilla/zot.meta.xml | 283 + doc/schemaspy_hubzilla/zot.xml | 2719 ++++++ hubzilla_er/anomalies.html | 256 + hubzilla_er/columns.byAuto.html | 7153 ++++++++++++++++ hubzilla_er/columns.byColumn.html | 7153 ++++++++++++++++ hubzilla_er/columns.byDefault.html | 7153 ++++++++++++++++ hubzilla_er/columns.byNulls.html | 7153 ++++++++++++++++ hubzilla_er/columns.bySize.html | 7153 ++++++++++++++++ hubzilla_er/columns.byTable.html | 7153 ++++++++++++++++ hubzilla_er/columns.byType.html | 7153 ++++++++++++++++ hubzilla_er/constraints.html | 101 + hubzilla_er/deletionOrder.txt | 63 + hubzilla_er/diagrams/account.1degree.dot | 49 + hubzilla_er/diagrams/account.1degree.png | Bin 0 -> 8634 bytes .../diagrams/account.implied2degrees.dot | 102 + .../diagrams/account.implied2degrees.png | Bin 0 -> 15776 bytes hubzilla_er/diagrams/addon.1degree.dot | 38 + hubzilla_er/diagrams/addon.1degree.png | Bin 0 -> 3363 bytes .../diagrams/addon.implied2degrees.dot | 162 + .../diagrams/addon.implied2degrees.png | Bin 0 -> 14382 bytes hubzilla_er/diagrams/app.1degree.dot | 45 + hubzilla_er/diagrams/app.1degree.png | Bin 0 -> 4667 bytes hubzilla_er/diagrams/app.implied2degrees.dot | 169 + hubzilla_er/diagrams/app.implied2degrees.png | Bin 0 -> 16518 bytes hubzilla_er/diagrams/attach.1degree.dot | 54 + hubzilla_er/diagrams/attach.1degree.png | Bin 0 -> 8379 bytes .../diagrams/attach.implied2degrees.dot | 279 + .../diagrams/attach.implied2degrees.png | Bin 0 -> 31285 bytes hubzilla_er/diagrams/auth_codes.1degree.dot | 36 + hubzilla_er/diagrams/auth_codes.1degree.png | Bin 0 -> 2955 bytes .../diagrams/auth_codes.implied2degrees.dot | 69 + .../diagrams/auth_codes.implied2degrees.png | Bin 0 -> 7011 bytes hubzilla_er/diagrams/cache.1degree.dot | 34 + hubzilla_er/diagrams/cache.1degree.png | Bin 0 -> 2418 bytes .../diagrams/cache.implied2degrees.dot | 144 + .../diagrams/cache.implied2degrees.png | Bin 0 -> 12474 bytes hubzilla_er/diagrams/channel.1degree.dot | 79 + hubzilla_er/diagrams/channel.1degree.png | Bin 0 -> 17582 bytes .../diagrams/channel.implied2degrees.dot | 179 + .../diagrams/channel.implied2degrees.png | Bin 0 -> 31731 bytes hubzilla_er/diagrams/clients.1degree.dot | 37 + hubzilla_er/diagrams/clients.1degree.png | Bin 0 -> 3082 bytes .../diagrams/clients.implied2degrees.dot | 69 + .../diagrams/clients.implied2degrees.png | Bin 0 -> 7288 bytes hubzilla_er/diagrams/config.1degree.dot | 35 + hubzilla_er/diagrams/config.1degree.png | Bin 0 -> 2656 bytes .../diagrams/config.implied2degrees.dot | 287 + .../diagrams/config.implied2degrees.png | Bin 0 -> 25567 bytes hubzilla_er/diagrams/conv.1degree.dot | 39 + hubzilla_er/diagrams/conv.1degree.png | Bin 0 -> 4162 bytes hubzilla_er/diagrams/conv.implied2degrees.dot | 264 + hubzilla_er/diagrams/conv.implied2degrees.png | Bin 0 -> 25977 bytes hubzilla_er/diagrams/event.1degree.dot | 56 + hubzilla_er/diagrams/event.1degree.png | Bin 0 -> 9815 bytes .../diagrams/event.implied2degrees.dot | 180 + .../diagrams/event.implied2degrees.png | Bin 0 -> 23094 bytes hubzilla_er/diagrams/fcontact.1degree.dot | 47 + hubzilla_er/diagrams/fcontact.1degree.png | Bin 0 -> 5436 bytes .../diagrams/fcontact.implied2degrees.dot | 272 + .../diagrams/fcontact.implied2degrees.png | Bin 0 -> 27106 bytes hubzilla_er/diagrams/ffinder.1degree.dot | 35 + hubzilla_er/diagrams/ffinder.1degree.png | Bin 0 -> 2199 bytes .../diagrams/ffinder.implied2degrees.dot | 260 + .../diagrams/ffinder.implied2degrees.png | Bin 0 -> 22693 bytes hubzilla_er/diagrams/fserver.1degree.dot | 35 + hubzilla_er/diagrams/fserver.1degree.png | Bin 0 -> 2638 bytes .../diagrams/fserver.implied2degrees.dot | 159 + .../diagrams/fserver.implied2degrees.png | Bin 0 -> 13325 bytes hubzilla_er/diagrams/fsuggest.1degree.dot | 40 + hubzilla_er/diagrams/fsuggest.1degree.png | Bin 0 -> 3460 bytes .../diagrams/fsuggest.implied2degrees.dot | 164 + .../diagrams/fsuggest.implied2degrees.png | Bin 0 -> 14534 bytes hubzilla_er/diagrams/group_member.1degree.dot | 35 + hubzilla_er/diagrams/group_member.1degree.png | Bin 0 -> 2590 bytes .../diagrams/group_member.implied2degrees.dot | 260 + .../diagrams/group_member.implied2degrees.png | Bin 0 -> 23117 bytes hubzilla_er/diagrams/groups.1degree.dot | 37 + hubzilla_er/diagrams/groups.1degree.png | Bin 0 -> 3046 bytes .../diagrams/groups.implied2degrees.dot | 262 + .../diagrams/groups.implied2degrees.png | Bin 0 -> 23862 bytes hubzilla_er/diagrams/hook.1degree.dot | 36 + hubzilla_er/diagrams/hook.1degree.png | Bin 0 -> 2754 bytes hubzilla_er/diagrams/hook.implied2degrees.dot | 160 + hubzilla_er/diagrams/hook.implied2degrees.png | Bin 0 -> 13636 bytes hubzilla_er/diagrams/item.1degree.dot | 104 + hubzilla_er/diagrams/item.1degree.png | Bin 0 -> 22174 bytes hubzilla_er/diagrams/item.implied2degrees.dot | 329 + hubzilla_er/diagrams/item.implied2degrees.png | Bin 0 -> 52083 bytes hubzilla_er/diagrams/item_id.1degree.dot | 36 + hubzilla_er/diagrams/item_id.1degree.png | Bin 0 -> 2593 bytes .../diagrams/item_id.implied2degrees.dot | 261 + .../diagrams/item_id.implied2degrees.png | Bin 0 -> 23262 bytes hubzilla_er/diagrams/likes.1degree.dot | 40 + hubzilla_er/diagrams/likes.1degree.png | Bin 0 -> 4277 bytes .../diagrams/likes.implied2degrees.dot | 325 + .../diagrams/likes.implied2degrees.png | Bin 0 -> 40790 bytes hubzilla_er/diagrams/mail.1degree.dot | 52 + hubzilla_er/diagrams/mail.1degree.png | Bin 0 -> 7855 bytes hubzilla_er/diagrams/mail.implied2degrees.dot | 365 + hubzilla_er/diagrams/mail.implied2degrees.png | Bin 0 -> 50787 bytes hubzilla_er/diagrams/manage.1degree.dot | 34 + hubzilla_er/diagrams/manage.1degree.png | Bin 0 -> 2142 bytes .../diagrams/manage.implied2degrees.dot | 158 + .../diagrams/manage.implied2degrees.png | Bin 0 -> 12419 bytes hubzilla_er/diagrams/notify.1degree.dot | 46 + hubzilla_er/diagrams/notify.1degree.png | Bin 0 -> 5539 bytes .../diagrams/notify.implied2degrees.dot | 279 + .../diagrams/notify.implied2degrees.png | Bin 0 -> 41442 bytes hubzilla_er/diagrams/pconfig.1degree.dot | 36 + hubzilla_er/diagrams/pconfig.1degree.png | Bin 0 -> 3015 bytes .../diagrams/pconfig.implied2degrees.dot | 217 + .../diagrams/pconfig.implied2degrees.png | Bin 0 -> 18716 bytes hubzilla_er/diagrams/photo.1degree.dot | 59 + hubzilla_er/diagrams/photo.1degree.png | Bin 0 -> 10662 bytes .../diagrams/photo.implied2degrees.dot | 284 + .../diagrams/photo.implied2degrees.png | Bin 0 -> 35116 bytes hubzilla_er/diagrams/profdef.1degree.dot | 37 + hubzilla_er/diagrams/profdef.1degree.png | Bin 0 -> 3837 bytes .../diagrams/profdef.implied2degrees.dot | 262 + .../diagrams/profdef.implied2degrees.png | Bin 0 -> 25502 bytes hubzilla_er/diagrams/profext.1degree.dot | 36 + hubzilla_er/diagrams/profext.1degree.png | Bin 0 -> 3256 bytes .../diagrams/profext.implied2degrees.dot | 348 + .../diagrams/profext.implied2degrees.png | Bin 0 -> 40038 bytes hubzilla_er/diagrams/profile.1degree.dot | 75 + hubzilla_er/diagrams/profile.1degree.png | Bin 0 -> 12022 bytes .../diagrams/profile.implied2degrees.dot | 199 + .../diagrams/profile.implied2degrees.png | Bin 0 -> 26994 bytes .../diagrams/profile_check.1degree.dot | 37 + .../diagrams/profile_check.1degree.png | Bin 0 -> 2986 bytes .../profile_check.implied2degrees.dot | 262 + .../profile_check.implied2degrees.png | Bin 0 -> 23435 bytes hubzilla_er/diagrams/register.1degree.dot | 37 + hubzilla_er/diagrams/register.1degree.png | Bin 0 -> 3468 bytes .../diagrams/register.implied2degrees.dot | 262 + .../diagrams/register.implied2degrees.png | Bin 0 -> 24141 bytes hubzilla_er/diagrams/sign.1degree.dot | 37 + hubzilla_er/diagrams/sign.1degree.png | Bin 0 -> 3747 bytes hubzilla_er/diagrams/sign.implied2degrees.dot | 262 + hubzilla_er/diagrams/sign.implied2degrees.png | Bin 0 -> 25336 bytes hubzilla_er/diagrams/spam.1degree.dot | 37 + hubzilla_er/diagrams/spam.1degree.png | Bin 0 -> 2766 bytes hubzilla_er/diagrams/spam.implied2degrees.dot | 161 + hubzilla_er/diagrams/spam.implied2degrees.png | Bin 0 -> 13556 bytes .../diagrams/summary/abook.1degree.dot | 52 + .../diagrams/summary/abook.1degree.png | Bin 0 -> 4841 bytes .../diagrams/summary/account.1degree.dot | 47 + .../diagrams/summary/account.1degree.png | Bin 0 -> 4765 bytes .../diagrams/summary/addon.1degree.dot | 36 + .../diagrams/summary/addon.1degree.png | Bin 0 -> 1790 bytes hubzilla_er/diagrams/summary/app.1degree.dot | 43 + hubzilla_er/diagrams/summary/app.1degree.png | Bin 0 -> 2744 bytes .../diagrams/summary/attach.1degree.dot | 52 + .../diagrams/summary/attach.1degree.png | Bin 0 -> 3860 bytes .../diagrams/summary/auth_codes.1degree.dot | 34 + .../diagrams/summary/auth_codes.1degree.png | Bin 0 -> 1401 bytes .../diagrams/summary/cache.1degree.dot | 32 + .../diagrams/summary/cache.1degree.png | Bin 0 -> 972 bytes .../diagrams/summary/channel.1degree.dot | 77 + .../diagrams/summary/channel.1degree.png | Bin 0 -> 9952 bytes hubzilla_er/diagrams/summary/chat.1degree.dot | 34 + hubzilla_er/diagrams/summary/chat.1degree.png | Bin 0 -> 1498 bytes .../diagrams/summary/chatpresence.1degree.dot | 35 + .../diagrams/summary/chatpresence.1degree.png | Bin 0 -> 1616 bytes .../diagrams/summary/chatroom.1degree.dot | 40 + .../diagrams/summary/chatroom.1degree.png | Bin 0 -> 2205 bytes .../diagrams/summary/clients.1degree.dot | 35 + .../diagrams/summary/clients.1degree.png | Bin 0 -> 1415 bytes .../diagrams/summary/config.1degree.dot | 33 + .../diagrams/summary/config.1degree.png | Bin 0 -> 967 bytes hubzilla_er/diagrams/summary/conv.1degree.dot | 37 + hubzilla_er/diagrams/summary/conv.1degree.png | Bin 0 -> 1637 bytes .../diagrams/summary/event.1degree.dot | 54 + .../diagrams/summary/event.1degree.png | Bin 0 -> 4763 bytes .../diagrams/summary/fcontact.1degree.dot | 45 + .../diagrams/summary/fcontact.1degree.png | Bin 0 -> 2657 bytes .../diagrams/summary/ffinder.1degree.dot | 33 + .../diagrams/summary/ffinder.1degree.png | Bin 0 -> 839 bytes .../diagrams/summary/fserver.1degree.dot | 33 + .../diagrams/summary/fserver.1degree.png | Bin 0 -> 1161 bytes .../diagrams/summary/fsuggest.1degree.dot | 38 + .../diagrams/summary/fsuggest.1degree.png | Bin 0 -> 1531 bytes .../diagrams/summary/group_member.1degree.dot | 33 + .../diagrams/summary/group_member.1degree.png | Bin 0 -> 1128 bytes .../diagrams/summary/groups.1degree.dot | 35 + .../diagrams/summary/groups.1degree.png | Bin 0 -> 1358 bytes hubzilla_er/diagrams/summary/hook.1degree.dot | 34 + hubzilla_er/diagrams/summary/hook.1degree.png | Bin 0 -> 1168 bytes .../diagrams/summary/hubloc.1degree.dot | 49 + .../diagrams/summary/hubloc.1degree.png | Bin 0 -> 4501 bytes .../diagrams/summary/issue.1degree.dot | 36 + .../diagrams/summary/issue.1degree.png | Bin 0 -> 2053 bytes hubzilla_er/diagrams/summary/item.1degree.dot | 102 + hubzilla_er/diagrams/summary/item.1degree.png | Bin 0 -> 13494 bytes .../diagrams/summary/item_id.1degree.dot | 34 + .../diagrams/summary/item_id.1degree.png | Bin 0 -> 986 bytes .../diagrams/summary/likes.1degree.dot | 38 + .../diagrams/summary/likes.1degree.png | Bin 0 -> 1782 bytes hubzilla_er/diagrams/summary/mail.1degree.dot | 50 + hubzilla_er/diagrams/summary/mail.1degree.png | Bin 0 -> 3810 bytes .../diagrams/summary/manage.1degree.dot | 32 + .../diagrams/summary/manage.1degree.png | Bin 0 -> 909 bytes hubzilla_er/diagrams/summary/menu.1degree.dot | 36 + hubzilla_er/diagrams/summary/menu.1degree.png | Bin 0 -> 1877 bytes .../diagrams/summary/menu_item.1degree.dot | 40 + .../diagrams/summary/menu_item.1degree.png | Bin 0 -> 2627 bytes .../diagrams/summary/notify.1degree.dot | 44 + .../diagrams/summary/notify.1degree.png | Bin 0 -> 2306 bytes hubzilla_er/diagrams/summary/obj.1degree.dot | 39 + hubzilla_er/diagrams/summary/obj.1degree.png | Bin 0 -> 2133 bytes hubzilla_er/diagrams/summary/outq.1degree.dot | 41 + hubzilla_er/diagrams/summary/outq.1degree.png | Bin 0 -> 2845 bytes .../diagrams/summary/pconfig.1degree.dot | 34 + .../diagrams/summary/pconfig.1degree.png | Bin 0 -> 1085 bytes .../diagrams/summary/photo.1degree.dot | 57 + .../diagrams/summary/photo.1degree.png | Bin 0 -> 5181 bytes hubzilla_er/diagrams/summary/poll.1degree.dot | 34 + hubzilla_er/diagrams/summary/poll.1degree.png | Bin 0 -> 1423 bytes .../diagrams/summary/poll_elm.1degree.dot | 34 + .../diagrams/summary/poll_elm.1degree.png | Bin 0 -> 1528 bytes .../diagrams/summary/profdef.1degree.dot | 35 + .../diagrams/summary/profdef.1degree.png | Bin 0 -> 1607 bytes .../diagrams/summary/profext.1degree.dot | 34 + .../diagrams/summary/profext.1degree.png | Bin 0 -> 1184 bytes .../diagrams/summary/profile.1degree.dot | 73 + .../diagrams/summary/profile.1degree.png | Bin 0 -> 7015 bytes .../summary/profile_check.1degree.dot | 35 + .../summary/profile_check.1degree.png | Bin 0 -> 1340 bytes .../diagrams/summary/register.1degree.dot | 35 + .../diagrams/summary/register.1degree.png | Bin 0 -> 1571 bytes .../summary/relationships.implied.compact.dot | 734 ++ .../summary/relationships.implied.compact.png | Bin 0 -> 108969 bytes .../summary/relationships.implied.large.dot | 878 ++ .../summary/relationships.implied.large.png | Bin 0 -> 151789 bytes .../summary/relationships.real.compact.dot | 22 + .../diagrams/summary/session.1degree.dot | 33 + .../diagrams/summary/session.1degree.png | Bin 0 -> 1163 bytes .../diagrams/summary/shares.1degree.dot | 33 + .../diagrams/summary/shares.1degree.png | Bin 0 -> 1495 bytes hubzilla_er/diagrams/summary/sign.1degree.dot | 35 + hubzilla_er/diagrams/summary/sign.1degree.png | Bin 0 -> 1473 bytes hubzilla_er/diagrams/summary/site.1degree.dot | 42 + hubzilla_er/diagrams/summary/site.1degree.png | Bin 0 -> 3089 bytes .../diagrams/summary/source.1degree.dot | 34 + .../diagrams/summary/source.1degree.png | Bin 0 -> 1602 bytes hubzilla_er/diagrams/summary/spam.1degree.dot | 35 + hubzilla_er/diagrams/summary/spam.1degree.png | Bin 0 -> 1195 bytes .../diagrams/summary/sys_perms.1degree.dot | 34 + .../diagrams/summary/sys_perms.1degree.png | Bin 0 -> 1240 bytes hubzilla_er/diagrams/summary/term.1degree.dot | 40 + hubzilla_er/diagrams/summary/term.1degree.png | Bin 0 -> 1988 bytes .../diagrams/summary/tokens.1degree.dot | 35 + .../diagrams/summary/tokens.1degree.png | Bin 0 -> 1441 bytes .../diagrams/summary/updates.1degree.dot | 36 + .../diagrams/summary/updates.1degree.png | Bin 0 -> 1534 bytes .../diagrams/summary/verify.1degree.dot | 35 + .../diagrams/summary/verify.1degree.png | Bin 0 -> 1307 bytes hubzilla_er/diagrams/summary/vote.1degree.dot | 34 + hubzilla_er/diagrams/summary/vote.1degree.png | Bin 0 -> 1600 bytes .../diagrams/summary/xchan.1degree.dot | 55 + .../diagrams/summary/xchan.1degree.png | Bin 0 -> 5685 bytes .../diagrams/summary/xchat.1degree.dot | 34 + .../diagrams/summary/xchat.1degree.png | Bin 0 -> 1502 bytes .../diagrams/summary/xconfig.1degree.dot | 34 + .../diagrams/summary/xconfig.1degree.png | Bin 0 -> 1075 bytes hubzilla_er/diagrams/summary/xign.1degree.dot | 32 + hubzilla_er/diagrams/summary/xign.1degree.png | Bin 0 -> 838 bytes .../diagrams/summary/xlink.1degree.dot | 37 + .../diagrams/summary/xlink.1degree.png | Bin 0 -> 2339 bytes .../diagrams/summary/xperm.1degree.dot | 33 + .../diagrams/summary/xperm.1degree.png | Bin 0 -> 1193 bytes .../diagrams/summary/xprof.1degree.dot | 44 + .../diagrams/summary/xprof.1degree.png | Bin 0 -> 3754 bytes hubzilla_er/diagrams/summary/xtag.1degree.dot | 33 + hubzilla_er/diagrams/summary/xtag.1degree.png | Bin 0 -> 1370 bytes hubzilla_er/diagrams/sys_perms.1degree.dot | 36 + hubzilla_er/diagrams/sys_perms.1degree.png | Bin 0 -> 3279 bytes .../diagrams/sys_perms.implied2degrees.dot | 288 + .../diagrams/sys_perms.implied2degrees.png | Bin 0 -> 27284 bytes hubzilla_er/diagrams/tokens.1degree.dot | 37 + hubzilla_er/diagrams/tokens.1degree.png | Bin 0 -> 3468 bytes .../diagrams/tokens.implied2degrees.dot | 69 + .../diagrams/tokens.implied2degrees.png | Bin 0 -> 7782 bytes hubzilla_er/diagrams/verify.1degree.dot | 37 + hubzilla_er/diagrams/verify.1degree.png | Bin 0 -> 3266 bytes .../diagrams/verify.implied2degrees.dot | 518 ++ .../diagrams/verify.implied2degrees.png | Bin 0 -> 81799 bytes hubzilla_er/diagrams/xconfig.1degree.dot | 36 + hubzilla_er/diagrams/xconfig.1degree.png | Bin 0 -> 3128 bytes .../diagrams/xconfig.implied2degrees.dot | 288 + .../diagrams/xconfig.implied2degrees.png | Bin 0 -> 26643 bytes hubzilla_er/diagrams/xign.1degree.dot | 34 + hubzilla_er/diagrams/xign.1degree.png | Bin 0 -> 2327 bytes hubzilla_er/diagrams/xign.implied2degrees.dot | 259 + hubzilla_er/diagrams/xign.implied2degrees.png | Bin 0 -> 22734 bytes hubzilla_er/images/background.gif | Bin 0 -> 311 bytes hubzilla_er/images/tabLeft.gif | Bin 0 -> 645 bytes hubzilla_er/images/tabRight.gif | Bin 0 -> 1846 bytes hubzilla_er/index.html | 573 ++ hubzilla_er/insertionOrder.txt | 63 + hubzilla_er/jquery.js | 154 + hubzilla_er/relationships.html | 174 + hubzilla_er/schemaSpy.css | 277 + hubzilla_er/schemaSpy.js | 97 + hubzilla_er/tables/abook.html | 502 ++ hubzilla_er/tables/account.html | 417 + hubzilla_er/tables/addon.html | 255 + hubzilla_er/tables/app.html | 356 + hubzilla_er/tables/attach.html | 513 ++ hubzilla_er/tables/auth_codes.html | 216 + hubzilla_er/tables/cache.html | 215 + hubzilla_er/tables/channel.html | 924 +++ hubzilla_er/tables/chat.html | 202 + hubzilla_er/tables/chatpresence.html | 219 + hubzilla_er/tables/chatroom.html | 286 + hubzilla_er/tables/clients.html | 224 + hubzilla_er/tables/config.html | 231 + hubzilla_er/tables/conv.html | 270 + hubzilla_er/tables/event.html | 507 ++ hubzilla_er/tables/fcontact.html | 358 + hubzilla_er/tables/ffinder.html | 232 + hubzilla_er/tables/fserver.html | 216 + hubzilla_er/tables/fsuggest.html | 259 + hubzilla_er/tables/group_member.html | 232 + hubzilla_er/tables/groups.html | 260 + hubzilla_er/tables/hook.html | 221 + hubzilla_er/tables/hubloc.html | 433 + hubzilla_er/tables/issue.html | 242 + hubzilla_er/tables/item.html | 1315 +++ hubzilla_er/tables/item_id.html | 249 + hubzilla_er/tables/likes.html | 321 + hubzilla_er/tables/mail.html | 517 ++ hubzilla_er/tables/manage.html | 205 + hubzilla_er/tables/menu.html | 236 + hubzilla_er/tables/menu_item.html | 268 + hubzilla_er/tables/notify.html | 434 + hubzilla_er/tables/obj.html | 269 + hubzilla_er/tables/outq.html | 309 + hubzilla_er/tables/pconfig.html | 235 + hubzilla_er/tables/photo.html | 556 ++ hubzilla_er/tables/poll.html | 202 + hubzilla_er/tables/poll_elm.html | 196 + hubzilla_er/tables/profdef.html | 242 + hubzilla_er/tables/profext.html | 264 + hubzilla_er/tables/profile.html | 728 ++ hubzilla_er/tables/profile_check.html | 266 + hubzilla_er/tables/register.html | 254 + hubzilla_er/tables/session.html | 185 + hubzilla_er/tables/shares.html | 191 + hubzilla_er/tables/sign.html | 248 + hubzilla_er/tables/site.html | 332 + hubzilla_er/tables/source.html | 202 + hubzilla_er/tables/spam.html | 250 + hubzilla_er/tables/sys_perms.html | 236 + hubzilla_er/tables/term.html | 304 + hubzilla_er/tables/tokens.html | 245 + hubzilla_er/tables/updates.html | 242 + hubzilla_er/tables/verify.html | 383 + hubzilla_er/tables/vote.html | 202 + hubzilla_er/tables/xchan.html | 511 ++ hubzilla_er/tables/xchat.html | 208 + hubzilla_er/tables/xconfig.html | 254 + hubzilla_er/tables/xign.html | 215 + hubzilla_er/tables/xlink.html | 247 + hubzilla_er/tables/xperm.html | 191 + hubzilla_er/tables/xprof.html | 360 + hubzilla_er/tables/xtag.html | 191 + hubzilla_er/updateschemaspy.sh | 5 + hubzilla_er/utilities.html | 334 + hubzilla_er/zot.xml | 2475 ++++++ images/.directory | 3 + 847 files changed, 213332 insertions(+) create mode 100644 doc/schemaspy_hubzilla/anomalies.html create mode 100644 doc/schemaspy_hubzilla/columns.byAuto.html create mode 100644 doc/schemaspy_hubzilla/columns.byColumn.html create mode 100644 doc/schemaspy_hubzilla/columns.byDefault.html create mode 100644 doc/schemaspy_hubzilla/columns.byNulls.html create mode 100644 doc/schemaspy_hubzilla/columns.bySize.html create mode 100644 doc/schemaspy_hubzilla/columns.byTable.html create mode 100644 doc/schemaspy_hubzilla/columns.byType.html create mode 100644 doc/schemaspy_hubzilla/constraints.html create mode 100644 doc/schemaspy_hubzilla/deletionOrder.txt create mode 100644 doc/schemaspy_hubzilla/diagrams/abook.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/abook.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/abook.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/abook.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/account.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/account.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/account.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/account.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/addon.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/addon.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/addon.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/addon.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/app.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/app.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/app.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/app.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/attach.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/attach.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/attach.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/attach.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/attach.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/attach.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/auth_codes.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/auth_codes.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/auth_codes.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/auth_codes.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/cache.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/cache.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/channel.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/channel.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/channel.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/channel.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/chat.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/chat.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/chat.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/chat.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/clients.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/clients.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/clients.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/clients.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/config.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/config.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/config.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/config.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/conv.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/conv.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/conv.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/conv.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/dreport.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/dreport.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/dreport.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/dreport.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/event.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/event.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/event.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/event.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/event.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/event.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/fcontact.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/fcontact.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/fcontact.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/fcontact.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/ffinder.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/ffinder.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/ffinder.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/ffinder.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/fserver.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/fserver.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/fserver.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/fserver.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/fsuggest.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/fsuggest.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/fsuggest.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/fsuggest.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/group_member.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/group_member.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/group_member.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/group_member.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/group_member.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/group_member.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/groups.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/groups.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/groups.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/groups.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/groups.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/groups.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/hook.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/hook.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/hook.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/hook.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/hubloc.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/hubloc.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/hubloc.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/hubloc.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/hubloc.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/hubloc.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/item.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/item.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/item.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/item.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/item.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/item.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/item_id.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/item_id.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/item_id.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/item_id.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/likes.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/likes.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/likes.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/likes.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/mail.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/mail.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/mail.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/mail.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/mail.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/mail.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/manage.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/manage.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/manage.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/manage.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/manage.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/manage.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/notify.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/notify.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/notify.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/notify.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/notify.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/notify.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/outq.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/outq.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/outq.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/outq.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/outq.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/outq.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/pconfig.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/pconfig.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/pconfig.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/pconfig.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/photo.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/photo.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/photo.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/photo.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/photo.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/photo.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profdef.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profdef.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profdef.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profdef.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profext.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profext.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profext.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profext.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profext.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profext.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profile.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profile.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profile.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profile.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profile_check.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profile_check.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/profile_check.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/profile_check.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/register.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/register.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/register.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/register.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/register.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/register.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/shares.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/shares.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/shares.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/shares.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/sign.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/sign.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/sign.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/sign.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/source.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/source.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/source.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/source.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/spam.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/spam.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/spam.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/spam.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/abook.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/abook.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/account.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/account.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/addon.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/addon.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/app.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/app.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/attach.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/attach.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/auth_codes.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/auth_codes.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/cache.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/cache.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/channel.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/channel.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/chat.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/chat.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/chatpresence.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/chatpresence.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/chatroom.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/chatroom.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/clients.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/clients.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/config.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/config.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/conv.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/conv.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/dreport.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/dreport.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/event.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/event.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/fcontact.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/fcontact.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/ffinder.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/ffinder.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/fserver.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/fserver.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/fsuggest.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/fsuggest.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/group_member.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/group_member.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/groups.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/groups.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/hook.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/hook.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/hubloc.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/hubloc.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/issue.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/issue.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/item.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/item.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/item_id.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/item_id.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/likes.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/likes.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/mail.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/mail.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/manage.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/manage.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/menu.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/menu.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/menu_item.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/menu_item.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/notify.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/notify.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/obj.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/obj.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/outq.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/outq.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/pconfig.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/pconfig.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/photo.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/photo.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/poll.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/poll.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/poll_elm.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/poll_elm.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profdef.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profdef.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profext.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profext.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profile.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profile.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profile_check.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/profile_check.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/register.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/register.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.implied.compact.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.implied.compact.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.implied.large.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.implied.large.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.real.compact.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.real.compact.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.real.large.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/relationships.real.large.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/session.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/session.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/shares.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/shares.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/sign.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/sign.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/site.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/site.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/source.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/source.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/spam.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/spam.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/sys_perms.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/sys_perms.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/term.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/term.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/tokens.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/tokens.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/updates.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/updates.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/verify.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/verify.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/vote.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/vote.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xchan.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xchan.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xchat.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xchat.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xconfig.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xconfig.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xign.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xign.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xlink.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xlink.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xperm.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xperm.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xprof.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xprof.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xtag.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/summary/xtag.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/sys_perms.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/sys_perms.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/sys_perms.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/sys_perms.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/term.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/term.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/term.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/term.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/term.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/term.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/tokens.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/tokens.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/tokens.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/tokens.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/updates.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/updates.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/updates.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/updates.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/updates.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/updates.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/verify.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/verify.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/verify.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/verify.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/vote.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/vote.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/vote.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/vote.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xchan.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xchan.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xchan.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xchan.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xchat.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xchat.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xchat.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xchat.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xconfig.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xconfig.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xconfig.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xconfig.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xconfig.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xconfig.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xign.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xign.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xign.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xign.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xign.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xign.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xlink.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xlink.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xlink.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xlink.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xprof.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xprof.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xprof.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xprof.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xprof.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xprof.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xtag.1degree.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xtag.1degree.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xtag.2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xtag.2degrees.png create mode 100644 doc/schemaspy_hubzilla/diagrams/xtag.implied2degrees.dot create mode 100644 doc/schemaspy_hubzilla/diagrams/xtag.implied2degrees.png create mode 100644 doc/schemaspy_hubzilla/images/background.gif create mode 100644 doc/schemaspy_hubzilla/images/tabLeft.gif create mode 100644 doc/schemaspy_hubzilla/images/tabRight.gif create mode 100644 doc/schemaspy_hubzilla/index.html create mode 100644 doc/schemaspy_hubzilla/insertionOrder.txt create mode 100644 doc/schemaspy_hubzilla/jquery.js create mode 100644 doc/schemaspy_hubzilla/relationships.html create mode 100644 doc/schemaspy_hubzilla/schemaSpy.css create mode 100644 doc/schemaspy_hubzilla/schemaSpy.js create mode 100644 doc/schemaspy_hubzilla/tables/abook.html create mode 100644 doc/schemaspy_hubzilla/tables/account.html create mode 100644 doc/schemaspy_hubzilla/tables/addon.html create mode 100644 doc/schemaspy_hubzilla/tables/app.html create mode 100644 doc/schemaspy_hubzilla/tables/attach.html create mode 100644 doc/schemaspy_hubzilla/tables/auth_codes.html create mode 100644 doc/schemaspy_hubzilla/tables/cache.html create mode 100644 doc/schemaspy_hubzilla/tables/channel.html create mode 100644 doc/schemaspy_hubzilla/tables/chat.html create mode 100644 doc/schemaspy_hubzilla/tables/chatpresence.html create mode 100644 doc/schemaspy_hubzilla/tables/chatroom.html create mode 100644 doc/schemaspy_hubzilla/tables/clients.html create mode 100644 doc/schemaspy_hubzilla/tables/config.html create mode 100644 doc/schemaspy_hubzilla/tables/conv.html create mode 100644 doc/schemaspy_hubzilla/tables/dreport.html create mode 100644 doc/schemaspy_hubzilla/tables/event.html create mode 100644 doc/schemaspy_hubzilla/tables/fcontact.html create mode 100644 doc/schemaspy_hubzilla/tables/ffinder.html create mode 100644 doc/schemaspy_hubzilla/tables/fserver.html create mode 100644 doc/schemaspy_hubzilla/tables/fsuggest.html create mode 100644 doc/schemaspy_hubzilla/tables/group_member.html create mode 100644 doc/schemaspy_hubzilla/tables/groups.html create mode 100644 doc/schemaspy_hubzilla/tables/hook.html create mode 100644 doc/schemaspy_hubzilla/tables/hubloc.html create mode 100644 doc/schemaspy_hubzilla/tables/issue.html create mode 100644 doc/schemaspy_hubzilla/tables/item.html create mode 100644 doc/schemaspy_hubzilla/tables/item_id.html create mode 100644 doc/schemaspy_hubzilla/tables/likes.html create mode 100644 doc/schemaspy_hubzilla/tables/mail.html create mode 100644 doc/schemaspy_hubzilla/tables/manage.html create mode 100644 doc/schemaspy_hubzilla/tables/menu.html create mode 100644 doc/schemaspy_hubzilla/tables/menu_item.html create mode 100644 doc/schemaspy_hubzilla/tables/notify.html create mode 100644 doc/schemaspy_hubzilla/tables/obj.html create mode 100644 doc/schemaspy_hubzilla/tables/outq.html create mode 100644 doc/schemaspy_hubzilla/tables/pconfig.html create mode 100644 doc/schemaspy_hubzilla/tables/photo.html create mode 100644 doc/schemaspy_hubzilla/tables/poll.html create mode 100644 doc/schemaspy_hubzilla/tables/poll_elm.html create mode 100644 doc/schemaspy_hubzilla/tables/profdef.html create mode 100644 doc/schemaspy_hubzilla/tables/profext.html create mode 100644 doc/schemaspy_hubzilla/tables/profile.html create mode 100644 doc/schemaspy_hubzilla/tables/profile_check.html create mode 100644 doc/schemaspy_hubzilla/tables/register.html create mode 100644 doc/schemaspy_hubzilla/tables/session.html create mode 100644 doc/schemaspy_hubzilla/tables/shares.html create mode 100644 doc/schemaspy_hubzilla/tables/sign.html create mode 100644 doc/schemaspy_hubzilla/tables/site.html create mode 100644 doc/schemaspy_hubzilla/tables/source.html create mode 100644 doc/schemaspy_hubzilla/tables/spam.html create mode 100644 doc/schemaspy_hubzilla/tables/sys_perms.html create mode 100644 doc/schemaspy_hubzilla/tables/term.html create mode 100644 doc/schemaspy_hubzilla/tables/tokens.html create mode 100644 doc/schemaspy_hubzilla/tables/updates.html create mode 100644 doc/schemaspy_hubzilla/tables/verify.html create mode 100644 doc/schemaspy_hubzilla/tables/vote.html create mode 100644 doc/schemaspy_hubzilla/tables/xchan.html create mode 100644 doc/schemaspy_hubzilla/tables/xchat.html create mode 100644 doc/schemaspy_hubzilla/tables/xconfig.html create mode 100644 doc/schemaspy_hubzilla/tables/xign.html create mode 100644 doc/schemaspy_hubzilla/tables/xlink.html create mode 100644 doc/schemaspy_hubzilla/tables/xperm.html create mode 100644 doc/schemaspy_hubzilla/tables/xprof.html create mode 100644 doc/schemaspy_hubzilla/tables/xtag.html create mode 100644 doc/schemaspy_hubzilla/utilities.html create mode 100644 doc/schemaspy_hubzilla/zot.meta.xml create mode 100644 doc/schemaspy_hubzilla/zot.xml create mode 100644 hubzilla_er/anomalies.html create mode 100644 hubzilla_er/columns.byAuto.html create mode 100644 hubzilla_er/columns.byColumn.html create mode 100644 hubzilla_er/columns.byDefault.html create mode 100644 hubzilla_er/columns.byNulls.html create mode 100644 hubzilla_er/columns.bySize.html create mode 100644 hubzilla_er/columns.byTable.html create mode 100644 hubzilla_er/columns.byType.html create mode 100644 hubzilla_er/constraints.html create mode 100644 hubzilla_er/deletionOrder.txt create mode 100644 hubzilla_er/diagrams/account.1degree.dot create mode 100644 hubzilla_er/diagrams/account.1degree.png create mode 100644 hubzilla_er/diagrams/account.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/account.implied2degrees.png create mode 100644 hubzilla_er/diagrams/addon.1degree.dot create mode 100644 hubzilla_er/diagrams/addon.1degree.png create mode 100644 hubzilla_er/diagrams/addon.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/addon.implied2degrees.png create mode 100644 hubzilla_er/diagrams/app.1degree.dot create mode 100644 hubzilla_er/diagrams/app.1degree.png create mode 100644 hubzilla_er/diagrams/app.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/app.implied2degrees.png create mode 100644 hubzilla_er/diagrams/attach.1degree.dot create mode 100644 hubzilla_er/diagrams/attach.1degree.png create mode 100644 hubzilla_er/diagrams/attach.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/attach.implied2degrees.png create mode 100644 hubzilla_er/diagrams/auth_codes.1degree.dot create mode 100644 hubzilla_er/diagrams/auth_codes.1degree.png create mode 100644 hubzilla_er/diagrams/auth_codes.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/auth_codes.implied2degrees.png create mode 100644 hubzilla_er/diagrams/cache.1degree.dot create mode 100644 hubzilla_er/diagrams/cache.1degree.png create mode 100644 hubzilla_er/diagrams/cache.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/cache.implied2degrees.png create mode 100644 hubzilla_er/diagrams/channel.1degree.dot create mode 100644 hubzilla_er/diagrams/channel.1degree.png create mode 100644 hubzilla_er/diagrams/channel.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/channel.implied2degrees.png create mode 100644 hubzilla_er/diagrams/clients.1degree.dot create mode 100644 hubzilla_er/diagrams/clients.1degree.png create mode 100644 hubzilla_er/diagrams/clients.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/clients.implied2degrees.png create mode 100644 hubzilla_er/diagrams/config.1degree.dot create mode 100644 hubzilla_er/diagrams/config.1degree.png create mode 100644 hubzilla_er/diagrams/config.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/config.implied2degrees.png create mode 100644 hubzilla_er/diagrams/conv.1degree.dot create mode 100644 hubzilla_er/diagrams/conv.1degree.png create mode 100644 hubzilla_er/diagrams/conv.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/conv.implied2degrees.png create mode 100644 hubzilla_er/diagrams/event.1degree.dot create mode 100644 hubzilla_er/diagrams/event.1degree.png create mode 100644 hubzilla_er/diagrams/event.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/event.implied2degrees.png create mode 100644 hubzilla_er/diagrams/fcontact.1degree.dot create mode 100644 hubzilla_er/diagrams/fcontact.1degree.png create mode 100644 hubzilla_er/diagrams/fcontact.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/fcontact.implied2degrees.png create mode 100644 hubzilla_er/diagrams/ffinder.1degree.dot create mode 100644 hubzilla_er/diagrams/ffinder.1degree.png create mode 100644 hubzilla_er/diagrams/ffinder.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/ffinder.implied2degrees.png create mode 100644 hubzilla_er/diagrams/fserver.1degree.dot create mode 100644 hubzilla_er/diagrams/fserver.1degree.png create mode 100644 hubzilla_er/diagrams/fserver.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/fserver.implied2degrees.png create mode 100644 hubzilla_er/diagrams/fsuggest.1degree.dot create mode 100644 hubzilla_er/diagrams/fsuggest.1degree.png create mode 100644 hubzilla_er/diagrams/fsuggest.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/fsuggest.implied2degrees.png create mode 100644 hubzilla_er/diagrams/group_member.1degree.dot create mode 100644 hubzilla_er/diagrams/group_member.1degree.png create mode 100644 hubzilla_er/diagrams/group_member.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/group_member.implied2degrees.png create mode 100644 hubzilla_er/diagrams/groups.1degree.dot create mode 100644 hubzilla_er/diagrams/groups.1degree.png create mode 100644 hubzilla_er/diagrams/groups.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/groups.implied2degrees.png create mode 100644 hubzilla_er/diagrams/hook.1degree.dot create mode 100644 hubzilla_er/diagrams/hook.1degree.png create mode 100644 hubzilla_er/diagrams/hook.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/hook.implied2degrees.png create mode 100644 hubzilla_er/diagrams/item.1degree.dot create mode 100644 hubzilla_er/diagrams/item.1degree.png create mode 100644 hubzilla_er/diagrams/item.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/item.implied2degrees.png create mode 100644 hubzilla_er/diagrams/item_id.1degree.dot create mode 100644 hubzilla_er/diagrams/item_id.1degree.png create mode 100644 hubzilla_er/diagrams/item_id.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/item_id.implied2degrees.png create mode 100644 hubzilla_er/diagrams/likes.1degree.dot create mode 100644 hubzilla_er/diagrams/likes.1degree.png create mode 100644 hubzilla_er/diagrams/likes.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/likes.implied2degrees.png create mode 100644 hubzilla_er/diagrams/mail.1degree.dot create mode 100644 hubzilla_er/diagrams/mail.1degree.png create mode 100644 hubzilla_er/diagrams/mail.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/mail.implied2degrees.png create mode 100644 hubzilla_er/diagrams/manage.1degree.dot create mode 100644 hubzilla_er/diagrams/manage.1degree.png create mode 100644 hubzilla_er/diagrams/manage.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/manage.implied2degrees.png create mode 100644 hubzilla_er/diagrams/notify.1degree.dot create mode 100644 hubzilla_er/diagrams/notify.1degree.png create mode 100644 hubzilla_er/diagrams/notify.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/notify.implied2degrees.png create mode 100644 hubzilla_er/diagrams/pconfig.1degree.dot create mode 100644 hubzilla_er/diagrams/pconfig.1degree.png create mode 100644 hubzilla_er/diagrams/pconfig.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/pconfig.implied2degrees.png create mode 100644 hubzilla_er/diagrams/photo.1degree.dot create mode 100644 hubzilla_er/diagrams/photo.1degree.png create mode 100644 hubzilla_er/diagrams/photo.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/photo.implied2degrees.png create mode 100644 hubzilla_er/diagrams/profdef.1degree.dot create mode 100644 hubzilla_er/diagrams/profdef.1degree.png create mode 100644 hubzilla_er/diagrams/profdef.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/profdef.implied2degrees.png create mode 100644 hubzilla_er/diagrams/profext.1degree.dot create mode 100644 hubzilla_er/diagrams/profext.1degree.png create mode 100644 hubzilla_er/diagrams/profext.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/profext.implied2degrees.png create mode 100644 hubzilla_er/diagrams/profile.1degree.dot create mode 100644 hubzilla_er/diagrams/profile.1degree.png create mode 100644 hubzilla_er/diagrams/profile.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/profile.implied2degrees.png create mode 100644 hubzilla_er/diagrams/profile_check.1degree.dot create mode 100644 hubzilla_er/diagrams/profile_check.1degree.png create mode 100644 hubzilla_er/diagrams/profile_check.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/profile_check.implied2degrees.png create mode 100644 hubzilla_er/diagrams/register.1degree.dot create mode 100644 hubzilla_er/diagrams/register.1degree.png create mode 100644 hubzilla_er/diagrams/register.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/register.implied2degrees.png create mode 100644 hubzilla_er/diagrams/sign.1degree.dot create mode 100644 hubzilla_er/diagrams/sign.1degree.png create mode 100644 hubzilla_er/diagrams/sign.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/sign.implied2degrees.png create mode 100644 hubzilla_er/diagrams/spam.1degree.dot create mode 100644 hubzilla_er/diagrams/spam.1degree.png create mode 100644 hubzilla_er/diagrams/spam.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/spam.implied2degrees.png create mode 100644 hubzilla_er/diagrams/summary/abook.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/abook.1degree.png create mode 100644 hubzilla_er/diagrams/summary/account.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/account.1degree.png create mode 100644 hubzilla_er/diagrams/summary/addon.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/addon.1degree.png create mode 100644 hubzilla_er/diagrams/summary/app.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/app.1degree.png create mode 100644 hubzilla_er/diagrams/summary/attach.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/attach.1degree.png create mode 100644 hubzilla_er/diagrams/summary/auth_codes.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/auth_codes.1degree.png create mode 100644 hubzilla_er/diagrams/summary/cache.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/cache.1degree.png create mode 100644 hubzilla_er/diagrams/summary/channel.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/channel.1degree.png create mode 100644 hubzilla_er/diagrams/summary/chat.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/chat.1degree.png create mode 100644 hubzilla_er/diagrams/summary/chatpresence.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/chatpresence.1degree.png create mode 100644 hubzilla_er/diagrams/summary/chatroom.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/chatroom.1degree.png create mode 100644 hubzilla_er/diagrams/summary/clients.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/clients.1degree.png create mode 100644 hubzilla_er/diagrams/summary/config.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/config.1degree.png create mode 100644 hubzilla_er/diagrams/summary/conv.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/conv.1degree.png create mode 100644 hubzilla_er/diagrams/summary/event.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/event.1degree.png create mode 100644 hubzilla_er/diagrams/summary/fcontact.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/fcontact.1degree.png create mode 100644 hubzilla_er/diagrams/summary/ffinder.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/ffinder.1degree.png create mode 100644 hubzilla_er/diagrams/summary/fserver.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/fserver.1degree.png create mode 100644 hubzilla_er/diagrams/summary/fsuggest.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/fsuggest.1degree.png create mode 100644 hubzilla_er/diagrams/summary/group_member.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/group_member.1degree.png create mode 100644 hubzilla_er/diagrams/summary/groups.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/groups.1degree.png create mode 100644 hubzilla_er/diagrams/summary/hook.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/hook.1degree.png create mode 100644 hubzilla_er/diagrams/summary/hubloc.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/hubloc.1degree.png create mode 100644 hubzilla_er/diagrams/summary/issue.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/issue.1degree.png create mode 100644 hubzilla_er/diagrams/summary/item.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/item.1degree.png create mode 100644 hubzilla_er/diagrams/summary/item_id.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/item_id.1degree.png create mode 100644 hubzilla_er/diagrams/summary/likes.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/likes.1degree.png create mode 100644 hubzilla_er/diagrams/summary/mail.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/mail.1degree.png create mode 100644 hubzilla_er/diagrams/summary/manage.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/manage.1degree.png create mode 100644 hubzilla_er/diagrams/summary/menu.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/menu.1degree.png create mode 100644 hubzilla_er/diagrams/summary/menu_item.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/menu_item.1degree.png create mode 100644 hubzilla_er/diagrams/summary/notify.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/notify.1degree.png create mode 100644 hubzilla_er/diagrams/summary/obj.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/obj.1degree.png create mode 100644 hubzilla_er/diagrams/summary/outq.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/outq.1degree.png create mode 100644 hubzilla_er/diagrams/summary/pconfig.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/pconfig.1degree.png create mode 100644 hubzilla_er/diagrams/summary/photo.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/photo.1degree.png create mode 100644 hubzilla_er/diagrams/summary/poll.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/poll.1degree.png create mode 100644 hubzilla_er/diagrams/summary/poll_elm.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/poll_elm.1degree.png create mode 100644 hubzilla_er/diagrams/summary/profdef.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/profdef.1degree.png create mode 100644 hubzilla_er/diagrams/summary/profext.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/profext.1degree.png create mode 100644 hubzilla_er/diagrams/summary/profile.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/profile.1degree.png create mode 100644 hubzilla_er/diagrams/summary/profile_check.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/profile_check.1degree.png create mode 100644 hubzilla_er/diagrams/summary/register.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/register.1degree.png create mode 100644 hubzilla_er/diagrams/summary/relationships.implied.compact.dot create mode 100644 hubzilla_er/diagrams/summary/relationships.implied.compact.png create mode 100644 hubzilla_er/diagrams/summary/relationships.implied.large.dot create mode 100644 hubzilla_er/diagrams/summary/relationships.implied.large.png create mode 100644 hubzilla_er/diagrams/summary/relationships.real.compact.dot create mode 100644 hubzilla_er/diagrams/summary/session.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/session.1degree.png create mode 100644 hubzilla_er/diagrams/summary/shares.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/shares.1degree.png create mode 100644 hubzilla_er/diagrams/summary/sign.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/sign.1degree.png create mode 100644 hubzilla_er/diagrams/summary/site.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/site.1degree.png create mode 100644 hubzilla_er/diagrams/summary/source.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/source.1degree.png create mode 100644 hubzilla_er/diagrams/summary/spam.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/spam.1degree.png create mode 100644 hubzilla_er/diagrams/summary/sys_perms.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/sys_perms.1degree.png create mode 100644 hubzilla_er/diagrams/summary/term.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/term.1degree.png create mode 100644 hubzilla_er/diagrams/summary/tokens.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/tokens.1degree.png create mode 100644 hubzilla_er/diagrams/summary/updates.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/updates.1degree.png create mode 100644 hubzilla_er/diagrams/summary/verify.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/verify.1degree.png create mode 100644 hubzilla_er/diagrams/summary/vote.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/vote.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xchan.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xchan.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xchat.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xchat.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xconfig.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xconfig.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xign.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xign.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xlink.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xlink.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xperm.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xperm.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xprof.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xprof.1degree.png create mode 100644 hubzilla_er/diagrams/summary/xtag.1degree.dot create mode 100644 hubzilla_er/diagrams/summary/xtag.1degree.png create mode 100644 hubzilla_er/diagrams/sys_perms.1degree.dot create mode 100644 hubzilla_er/diagrams/sys_perms.1degree.png create mode 100644 hubzilla_er/diagrams/sys_perms.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/sys_perms.implied2degrees.png create mode 100644 hubzilla_er/diagrams/tokens.1degree.dot create mode 100644 hubzilla_er/diagrams/tokens.1degree.png create mode 100644 hubzilla_er/diagrams/tokens.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/tokens.implied2degrees.png create mode 100644 hubzilla_er/diagrams/verify.1degree.dot create mode 100644 hubzilla_er/diagrams/verify.1degree.png create mode 100644 hubzilla_er/diagrams/verify.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/verify.implied2degrees.png create mode 100644 hubzilla_er/diagrams/xconfig.1degree.dot create mode 100644 hubzilla_er/diagrams/xconfig.1degree.png create mode 100644 hubzilla_er/diagrams/xconfig.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/xconfig.implied2degrees.png create mode 100644 hubzilla_er/diagrams/xign.1degree.dot create mode 100644 hubzilla_er/diagrams/xign.1degree.png create mode 100644 hubzilla_er/diagrams/xign.implied2degrees.dot create mode 100644 hubzilla_er/diagrams/xign.implied2degrees.png create mode 100644 hubzilla_er/images/background.gif create mode 100644 hubzilla_er/images/tabLeft.gif create mode 100644 hubzilla_er/images/tabRight.gif create mode 100644 hubzilla_er/index.html create mode 100644 hubzilla_er/insertionOrder.txt create mode 100644 hubzilla_er/jquery.js create mode 100644 hubzilla_er/relationships.html create mode 100644 hubzilla_er/schemaSpy.css create mode 100644 hubzilla_er/schemaSpy.js create mode 100644 hubzilla_er/tables/abook.html create mode 100644 hubzilla_er/tables/account.html create mode 100644 hubzilla_er/tables/addon.html create mode 100644 hubzilla_er/tables/app.html create mode 100644 hubzilla_er/tables/attach.html create mode 100644 hubzilla_er/tables/auth_codes.html create mode 100644 hubzilla_er/tables/cache.html create mode 100644 hubzilla_er/tables/channel.html create mode 100644 hubzilla_er/tables/chat.html create mode 100644 hubzilla_er/tables/chatpresence.html create mode 100644 hubzilla_er/tables/chatroom.html create mode 100644 hubzilla_er/tables/clients.html create mode 100644 hubzilla_er/tables/config.html create mode 100644 hubzilla_er/tables/conv.html create mode 100644 hubzilla_er/tables/event.html create mode 100644 hubzilla_er/tables/fcontact.html create mode 100644 hubzilla_er/tables/ffinder.html create mode 100644 hubzilla_er/tables/fserver.html create mode 100644 hubzilla_er/tables/fsuggest.html create mode 100644 hubzilla_er/tables/group_member.html create mode 100644 hubzilla_er/tables/groups.html create mode 100644 hubzilla_er/tables/hook.html create mode 100644 hubzilla_er/tables/hubloc.html create mode 100644 hubzilla_er/tables/issue.html create mode 100644 hubzilla_er/tables/item.html create mode 100644 hubzilla_er/tables/item_id.html create mode 100644 hubzilla_er/tables/likes.html create mode 100644 hubzilla_er/tables/mail.html create mode 100644 hubzilla_er/tables/manage.html create mode 100644 hubzilla_er/tables/menu.html create mode 100644 hubzilla_er/tables/menu_item.html create mode 100644 hubzilla_er/tables/notify.html create mode 100644 hubzilla_er/tables/obj.html create mode 100644 hubzilla_er/tables/outq.html create mode 100644 hubzilla_er/tables/pconfig.html create mode 100644 hubzilla_er/tables/photo.html create mode 100644 hubzilla_er/tables/poll.html create mode 100644 hubzilla_er/tables/poll_elm.html create mode 100644 hubzilla_er/tables/profdef.html create mode 100644 hubzilla_er/tables/profext.html create mode 100644 hubzilla_er/tables/profile.html create mode 100644 hubzilla_er/tables/profile_check.html create mode 100644 hubzilla_er/tables/register.html create mode 100644 hubzilla_er/tables/session.html create mode 100644 hubzilla_er/tables/shares.html create mode 100644 hubzilla_er/tables/sign.html create mode 100644 hubzilla_er/tables/site.html create mode 100644 hubzilla_er/tables/source.html create mode 100644 hubzilla_er/tables/spam.html create mode 100644 hubzilla_er/tables/sys_perms.html create mode 100644 hubzilla_er/tables/term.html create mode 100644 hubzilla_er/tables/tokens.html create mode 100644 hubzilla_er/tables/updates.html create mode 100644 hubzilla_er/tables/verify.html create mode 100644 hubzilla_er/tables/vote.html create mode 100644 hubzilla_er/tables/xchan.html create mode 100644 hubzilla_er/tables/xchat.html create mode 100644 hubzilla_er/tables/xconfig.html create mode 100644 hubzilla_er/tables/xign.html create mode 100644 hubzilla_er/tables/xlink.html create mode 100644 hubzilla_er/tables/xperm.html create mode 100644 hubzilla_er/tables/xprof.html create mode 100644 hubzilla_er/tables/xtag.html create mode 100755 hubzilla_er/updateschemaspy.sh create mode 100644 hubzilla_er/utilities.html create mode 100644 hubzilla_er/zot.xml create mode 100644 images/.directory diff --git a/doc/schemaspy_hubzilla/anomalies.html b/doc/schemaspy_hubzilla/anomalies.html new file mode 100644 index 000000000..e35c270e3 --- /dev/null +++ b/doc/schemaspy_hubzilla/anomalies.html @@ -0,0 +1,258 @@ + + + + + SchemaSpy - zot - Anomalies + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Anomalies +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + + + +
SourceForge.net
Things that might not be 'quite right' about your schema: +
+ + +
+
+ +
+ + diff --git a/doc/schemaspy_hubzilla/columns.byAuto.html b/doc/schemaspy_hubzilla/columns.byAuto.html new file mode 100644 index 000000000..d9acae9df --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.byAuto.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
abookabook_idint unsigned10 √ 
accountaccount_idint unsigned10 √ 
channelchannel_idint unsigned10 √ 
chatchat_idint unsigned10 √ 
chatpresencecp_idint unsigned10 √ 
chatroomcr_idint unsigned10 √ 
dreportdreport_idint10 √ 
hublochubloc_idint unsigned10 √ 
addonidint10 √ 
appidint10 √ 
attachidint unsigned10 √ 
configidint unsigned10 √ 
convidint unsigned10 √ 
eventidint10 √ 
fcontactidint unsigned10 √ 
ffinderidint unsigned10 √ 
fserveridint10 √ 
fsuggestidint10 √ 
group_memberidint unsigned10 √ 
groupsidint unsigned10 √ 
hookidint10 √ 
itemidint unsigned10 √ 
item_ididint unsigned10 √ 
likesidint unsigned10 √ 
mailidint unsigned10 √ 
manageidint10 √ 
notifyidint10 √ 
pconfigidint10 √ 
photoidint unsigned10 √ 
profdefidint unsigned10 √ 
profextidint unsigned10 √ 
profileidint10 √ 
profile_checkidint unsigned10 √ 
registeridint unsigned10 √ 
sessionidbigint unsigned20 √ 
signidint unsigned10 √ 
spamidint10 √ 
sys_permsidint unsigned10 √ 
verifyidint unsigned10 √ 
xconfigidint unsigned10 √ 
xignidint unsigned10 √ 
issueissue_idint unsigned10 √ 
menumenu_idint unsigned10 √ 
menu_itemmitem_idint unsigned10 √ 
objobj_idint unsigned10 √ 
poll_elmpelm_idint unsigned10 √ 
pollpoll_idint unsigned10 √ 
sharesshare_idint unsigned10 √ 
sourcesrc_idint unsigned10 √ 
termtidint unsigned10 √ 
updatesud_idint unsigned10 √ 
votevote_idint unsigned10 √ 
xchatxchat_idint unsigned10 √ 
xlinkxlink_idint unsigned10 √ 
xpermxp_idint unsigned10 √ 
xtagxtag_idint unsigned10 √ 
abookabook_accountint unsigned100
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_channelint unsigned100
abookabook_closenesstinyint unsigned399
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_excltext65535
abookabook_feedtinyint30
abookabook_flagsint100
abookabook_hiddentinyint30
abookabook_ignoredtinyint30
abookabook_incltext65535
abookabook_my_permsint100
abookabook_pendingtinyint30
abookabook_profilechar64
abookabook_selftinyint30
abookabook_their_permsint100
abookabook_unconnectedtinyint30
abookabook_updateddatetime190000-00-00 00:00:00
abookabook_xchanchar255
profileabouttext65535
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_default_channelint unsigned100
accountaccount_emailchar255
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_externalchar255
accountaccount_flagsint unsigned100
mailaccount_idint unsigned100
accountaccount_languagechar16en
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_passwordchar255
accountaccount_password_changeddatetime190000-00-00 00:00:00
accountaccount_resetchar255
accountaccount_rolesint unsigned100
accountaccount_saltchar32
accountaccount_service_classchar32
fcontactaddrchar255
profileaddresschar255
eventadjustbit01
attachaidint unsigned100
eventaidint unsigned100
itemaidint unsigned100
notifyaidint100
photoaidint unsigned100
profileaidint unsigned100
termaidint unsigned100
photoalbumchar255
fcontactaliaschar255
attachallow_cidmediumtext16777215
chatroomallow_cidmediumtext16777215
eventallow_cidmediumtext16777215
itemallow_cidmediumtext16777215
menu_itemallow_cidmediumtext16777215
objallow_cidmediumtext16777215
photoallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
chatroomallow_gidmediumtext16777215
eventallow_gidmediumtext16777215
itemallow_gidmediumtext16777215
menu_itemallow_gidmediumtext16777215
objallow_gidmediumtext16777215
photoallow_gidmediumtext16777215
itemappchar255
appapp_addrchar255
appapp_authorchar255
appapp_channelint100
appapp_createddatetime190000-00-00 00:00:00
appapp_desctext65535
appapp_editeddatetime190000-00-00 00:00:00
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
itemattachmediumtext16777215
mailattachmediumtext16777215
itemauthor_xchanchar255
fcontactbatchchar255
itembodymediumtext16777215
mailbodymediumtext16777215
profilebooktext65535
configcatchar255
pconfigcatchar255
sys_permscatchar255
xconfigcatchar255
profilechandesctext65535
itemchangeddatetime190000-00-00 00:00:00
verifychannelint unsigned100
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_addresschar255
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_default_groupchar255
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_expire_daysint100
channelchannel_guidchar255
channelchannel_guid_sigtext65535
channelchannel_hashchar255
likeschannel_idint unsigned100
mailchannel_idint unsigned100
profextchannel_idint unsigned100
channelchannel_lastpostdatetime190000-00-00 00:00:00
channelchannel_locationchar255
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_namechar255
channelchannel_notifyflagsint unsigned1065535
channelchannel_pageflagsint unsigned100
channelchannel_passwd_resetchar255
channelchannel_primarybit00
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_removedbit00
channelchannel_startpagechar255
channelchannel_systembit00
channelchannel_themechar255
channelchannel_timezonechar128UTC
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
profilechannelstext65535
chatchat_roomint unsigned100
chatchat_textmediumtext16777215
chatchat_xchanchar255
ffindercidint unsigned10
fsuggestcidint100
profile_checkcidint unsigned100
auth_codesclient_idvarchar20
clientsclient_idvarchar20
tokensclient_idvarchar20
itemcomment_policychar255
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
fcontactconfirmchar255
profilecontacttext65535
mailconv_guidchar255
mailconvidint unsigned100
itemcoordchar255
profilecountry_namechar255
chatpresencecp_clientchar128
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatpresencecp_roomint unsigned100
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomcr_aidint unsigned100
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
chatroomcr_expireint unsigned100
chatroomcr_namechar255
chatroomcr_uidint unsigned100
attachcreateddatetime190000-00-00 00:00:00
chatcreateddatetime190000-00-00 00:00:00
convcreateddatetime190000-00-00 00:00:00
eventcreateddatetime190000-00-00 00:00:00
fsuggestcreateddatetime190000-00-00 00:00:00
itemcreateddatetime190000-00-00 00:00:00
mailcreateddatetime190000-00-00 00:00:00
photocreateddatetime190000-00-00 00:00:00
registercreateddatetime190000-00-00 00:00:00
verifycreateddatetime190000-00-00 00:00:00
attachcreatorchar128
convcreatorchar255
attachdatalongblob2147483647
photodatamediumblob16777215
sessiondatatext65535
notifydatedatetime190000-00-00 00:00:00
spamdatedatetime190000-00-00 00:00:00
groupsdeletedbit00
attachdeny_cidmediumtext16777215
chatroomdeny_cidmediumtext16777215
eventdeny_cidmediumtext16777215
itemdeny_cidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
objdeny_cidmediumtext16777215
photodeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
chatroomdeny_gidmediumtext16777215
eventdeny_gidmediumtext16777215
itemdeny_gidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
objdeny_gidmediumtext16777215
photodeny_gidmediumtext16777215
eventdescriptiontext65535
photodescriptiontext65535
profile_checkdfrn_idchar255
itemdiaspora_metamediumtext16777215
profiledislikestext65535
attachdisplay_pathmediumtext16777215
photodisplay_pathmediumtext16777215
profiledobchar320000-00-00
profiledob_tzchar255UTC
dreportdreport_channelint100
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_timedatetime190000-00-00 00:00:00
dreportdreport_xchanchar255
attachediteddatetime190000-00-00 00:00:00
eventediteddatetime190000-00-00 00:00:00
itemediteddatetime190000-00-00 00:00:00
photoediteddatetime190000-00-00 00:00:00
profileeducationtext65535
eventevent_hashchar255
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_repeattext65535
eventevent_sequencesmallint50
eventevent_statuschar255
eventevent_status_datedatetime190000-00-00 00:00:00
eventevent_vdatatext65535
eventevent_xchanchar255
profile_checkexpireint100
sessionexpirebigint unsigned200
auth_codesexpiresint100
itemexpiresdatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
tokensexpiresbigint unsigned200
ffinderfidint unsigned10
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_inputsmediumtext16777215
profdeffield_namechar255
profdeffield_typechar16
hookfilechar255
attachfilenamechar255
photofilenamechar255
attachfilesizeint unsigned100
attachfiletypechar64
profilefilmtext65535
eventfinishdatetime190000-00-00 00:00:00
attachflagsint unsigned100
attachfolderchar64
mailfrom_xchanchar255
hookfunctionchar255
profilegenderchar32
group_membergidint unsigned100
convguidchar255
spamhamint100
attachhashchar64
groupshashchar255
notifyhashchar64
profexthashchar255
registerhashchar255
photoheightsmallint50
addonhiddenbit00
profilehide_friendsbit00
profilehomepagechar255
profilehometownchar255
hookhookchar255
profilehowlongdatetime190000-00-00 00:00:00
itemhtmlmediumtext16777215
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_flagsint unsigned100
hublochubloc_guidchar255
hublochubloc_guid_sigtext65535
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_networkchar32
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
hublochubloc_sitekeytext65535
hublochubloc_statusint unsigned100
hublochubloc_updateddatetime190000-00-00 00:00:00
hublochubloc_urlchar255
hublochubloc_url_sigtext65535
likesi_midchar255
clientsicontext65535 √ null
auth_codesidvarchar40
tokensidvarchar40
eventignorebit00
item_idiidint100
likesiidint unsigned100
signiidint unsigned100
termimgurlchar255
addoninstalledbit00
profileinteresttext65535
profileis_defaultbit00
attachis_dirbit00
photois_nsfwbit00
attachis_photobit00
issueissue_assignedchar255
issueissue_componentchar255
issueissue_createddatetime190000-00-00 00:00:00
issueissue_priorityint100
issueissue_statusint100
issueissue_updateddatetime190000-00-00 00:00:00
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_flagsint100
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_restrictint100
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_typeint100
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
cachekchar255
configkchar255
pconfigkchar255
profextkchar255
sys_permskchar255
xconfigkchar255
fserverkeytext65535
profilekeywordstext65535
itemlangchar64
registerlanguagechar16
itemlayout_midchar255
likeslikeechar128
likeslikerchar128
profilelikestext65535
notifylinkchar255
itemllinkchar255
profilelocalitychar255
eventlocationtext65535
itemlocationchar255
mailmail_deletedtinyint30
mailmail_flagsint unsigned100
mailmail_isreplytinyint30
mailmail_obscuredsmallint50
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
profilemaritalchar255
menumenu_channel_idint unsigned100
menumenu_createddatetime190000-00-00 00:00:00
menumenu_descchar255
menumenu_editeddatetime190000-00-00 00:00:00
menumenu_flagsint100
menumenu_namechar255
verifymetachar255
itemmidchar255
mailmidchar255
itemmimetypechar255
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_descchar255
menu_itemmitem_flagsint100
menu_itemmitem_linkchar255
menu_itemmitem_menu_idint unsigned100
menu_itemmitem_orderint100
notifymsgmediumtext16777215
profilemusictext65535
addonnamechar255
clientsnametext65535 √ null
fcontactnamechar255
fsuggestnamechar255
groupsnamechar255
notifynamechar255
profilenamechar255
fcontactnetworkchar32
fcontactnickchar255
eventnofinishbit00
fsuggestnotetext65535
fcontactnotifychar255
objobj_channelint unsigned100
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
objobj_imgurlchar255
objobj_objchar255
objobj_pagechar64
objobj_termchar255
itemobj_typechar255
objobj_typeint unsigned100
objobj_urlchar255
objobj_verbchar255
itemobjecttext65535
termoidint unsigned100
attachos_pathmediumtext16777215
photoos_pathmediumtext16777215
attachos_storagebit00
photoos_storagebit00
notifyotypechar16
termotypetinyint unsigned30
outqoutq_accountint unsigned100
outqoutq_asyncbit00
outqoutq_channelint unsigned100
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_deliveredbit00
outqoutq_driverchar32
outqoutq_hashchar255
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
outqoutq_posturlchar255
outqoutq_prioritysmallint50
outqoutq_updateddatetime190000-00-00 00:00:00
itemowner_xchanchar255
itemparentint unsigned100
notifyparentchar255
termparent_hashchar255
itemparent_midchar255
mailparent_midchar255
registerpasswordchar255
profilepdescchar255
poll_elmpelm_desctext65535
poll_elmpelm_flagsint100
poll_elmpelm_pollint unsigned100
poll_elmpelm_resultfloat120
fcontactphotochar255
fsuggestphotochar255
notifyphotochar255
profilephotochar255
photophoto_flagsint unsigned100
photophoto_usagesmallint50
itemplinkchar255
addonplugin_adminbit00
profilepoliticchar255
fcontactpollchar255
pollpoll_channelint unsigned100
pollpoll_desctext65535
pollpoll_flagsint100
pollpoll_votesint100
profilepostal_codechar32
itempostoptstext65535
fserverposturlchar255
fcontactprioritybit0
hookpriorityint unsigned100
photoprofilebit00
profileprofile_guidchar64
profileprofile_namechar255
fcontactpubkeytext65535
sys_permspublic_permbit00
itempublic_policychar255
profilepublishbit00
clientspwvarchar20
itemreceiveddatetime190000-00-00 00:00:00
convrecipsmediumtext16777215
auth_codesredirect_urivarchar200
clientsredirect_urivarchar200
profileregionchar255
profilereligionchar255
fcontactrequestchar255
fsuggestrequestchar255
itemresource_idchar255
photoresource_idchar255
itemresource_typechar16
signretract_iidint unsigned100
attachrevisionint unsigned100
itemrevisionint unsigned100
profileromancetext65535
itemroutetext65535
photoscaletinyint30
auth_codesscopevarchar250
tokensscopevarchar200
profile_checksecchar255
tokenssecrettext65535
notifyseenbit00
fserverserverchar255
item_idservicechar255
profilesexualchar255
sharesshare_targetint unsigned100
sharesshare_typeint100
sharesshare_xchanchar255
item_idsidchar255
sessionsidchar255
itemsigtext65535
mailsigtext65535
signsignaturetext65535
signsigned_textmediumtext16777215
signsignerchar255
sitesite_accessint100
sitesite_deadsmallint50
sitesite_directorychar255
sitesite_flagsint100
sitesite_locationchar255
sitesite_projectchar255
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_realmchar255
sitesite_registerint100
sitesite_sellpagechar255
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_typesmallint50
sitesite_updatedatetime190000-00-00 00:00:00
sitesite_urlchar255
sitesite_validsmallint50
photosizeint unsigned100
itemsource_xchanchar255
spamspamint100
sourcesrc_channel_idint unsigned100
sourcesrc_channel_xchanchar255
sourcesrc_pattmediumtext16777215
sourcesrc_xchanchar255
eventstartdatetime190000-00-00 00:00:00
convsubjectmediumtext16777215
eventsummarytext65535
profilesummarychar255
itemtargettext65535
likestargetmediumtext16777215
likestarget_idchar128
likestarget_typechar255
spamtermchar255
termtermchar255
termterm_hashchar255
itemtgt_typechar255
itemthr_parentchar255
profilethumbchar255
addontimestampbigint190
itemtitletext65535
mailtitletext65535
phototitlechar255
mailto_xchanchar255
verifytokenchar255
profiletvtext65535
eventtypechar255
notifytypeint100
phototypechar128image/jpeg
termtypetinyint unsigned30
verifytypechar32
updatesud_addrchar255
updatesud_datedatetime190000-00-00 00:00:00
updatesud_flagsint100
updatesud_guidchar255
updatesud_hashchar128
updatesud_lastdatetime190000-00-00 00:00:00
attachuidint unsigned100
clientsuidint100
convuidint100
eventuidint100
ffinderuidint unsigned10
fsuggestuidint100
group_memberuidint unsigned100
groupsuidint unsigned100
itemuidint unsigned100
item_iduidint100
manageuidint100
notifyuidint100
pconfiguidint100
photouidint unsigned100
profileuidint100
profile_checkuidint unsigned100
registeruidint unsigned100
spamuidint100
termuidint unsigned100
tokensuidint100
xignuidint100
cacheupdateddatetime190000-00-00 00:00:00
convupdateddatetime190000-00-00 00:00:00
fcontactupdateddatetime190000-00-00 00:00:00
fcontacturlchar255
fsuggesturlchar255
notifyurlchar255
termurlchar255
cachevtext65535
configvtext65535
pconfigvmediumtext16777215
profextvmediumtext16777215
sys_permsvmediumtext16777215
xconfigvmediumtext16777215
itemverbchar255
likesverbchar255
notifyverbchar255
addonversionchar255
groupsvisiblebit00
votevote_elementint100
votevote_pollint100
votevote_resulttext65535
votevote_xchanchar255
photowidthsmallint50
profilewithtext65535
profileworktext65535
group_memberxchanchar255
managexchanchar255
photoxchanchar255
xconfigxchanchar255
xignxchanchar255
xchanxchan_addrchar255
xchanxchan_censoredbit00
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_deletedbit00
xchanxchan_flagsint unsigned100
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_guid_sigtext65535
xchanxchan_hashchar255
xchanxchan_hiddenbit00
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_networkchar255
xchanxchan_orphanbit00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_mimetypechar32image/jpeg
xchanxchan_photo_schar255
xchanxchan_pubforumbit00
xchanxchan_pubkeytext65535
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_editeddatetime190000-00-00 00:00:00
xchatxchat_urlchar255
xchatxchat_xchanchar255
xlinkxlink_linkchar255
xlinkxlink_ratingint100
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xlinkxlink_staticbit00
xlinkxlink_updateddatetime190000-00-00 00:00:00
xlinkxlink_xchanchar255
xpermxp_channelint unsigned100
xpermxp_clientvarchar20
xpermxp_permvarchar64
xprofxprof_abouttext65535
xprofxprof_agetinyint unsigned30
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_dobchar12
xprofxprof_genderchar255
xprofxprof_hashchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_keywordstext65535
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_postcodechar32
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_flagsint100
xtagxtag_hashchar255
xtagxtag_termchar255
+
+
+ + diff --git a/doc/schemaspy_hubzilla/columns.byColumn.html b/doc/schemaspy_hubzilla/columns.byColumn.html new file mode 100644 index 000000000..6b2e41174 --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.byColumn.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
abookabook_accountint unsigned100
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_channelint unsigned100
abookabook_closenesstinyint unsigned399
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_excltext65535
abookabook_feedtinyint30
abookabook_flagsint100
abookabook_hiddentinyint30
abookabook_idint unsigned10 √ 
abookabook_ignoredtinyint30
abookabook_incltext65535
abookabook_my_permsint100
abookabook_pendingtinyint30
abookabook_profilechar64
abookabook_selftinyint30
abookabook_their_permsint100
abookabook_unconnectedtinyint30
abookabook_updateddatetime190000-00-00 00:00:00
abookabook_xchanchar255
profileabouttext65535
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_default_channelint unsigned100
accountaccount_emailchar255
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_externalchar255
accountaccount_flagsint unsigned100
accountaccount_idint unsigned10 √ 
mailaccount_idint unsigned100
accountaccount_languagechar16en
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_passwordchar255
accountaccount_password_changeddatetime190000-00-00 00:00:00
accountaccount_resetchar255
accountaccount_rolesint unsigned100
accountaccount_saltchar32
accountaccount_service_classchar32
fcontactaddrchar255
profileaddresschar255
eventadjustbit01
attachaidint unsigned100
eventaidint unsigned100
itemaidint unsigned100
notifyaidint100
photoaidint unsigned100
profileaidint unsigned100
termaidint unsigned100
photoalbumchar255
fcontactaliaschar255
attachallow_cidmediumtext16777215
chatroomallow_cidmediumtext16777215
eventallow_cidmediumtext16777215
itemallow_cidmediumtext16777215
menu_itemallow_cidmediumtext16777215
objallow_cidmediumtext16777215
photoallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
chatroomallow_gidmediumtext16777215
eventallow_gidmediumtext16777215
itemallow_gidmediumtext16777215
menu_itemallow_gidmediumtext16777215
objallow_gidmediumtext16777215
photoallow_gidmediumtext16777215
itemappchar255
appapp_addrchar255
appapp_authorchar255
appapp_channelint100
appapp_createddatetime190000-00-00 00:00:00
appapp_desctext65535
appapp_editeddatetime190000-00-00 00:00:00
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
itemattachmediumtext16777215
mailattachmediumtext16777215
itemauthor_xchanchar255
fcontactbatchchar255
itembodymediumtext16777215
mailbodymediumtext16777215
profilebooktext65535
configcatchar255
pconfigcatchar255
sys_permscatchar255
xconfigcatchar255
profilechandesctext65535
itemchangeddatetime190000-00-00 00:00:00
verifychannelint unsigned100
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_addresschar255
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_default_groupchar255
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_expire_daysint100
channelchannel_guidchar255
channelchannel_guid_sigtext65535
channelchannel_hashchar255
channelchannel_idint unsigned10 √ 
likeschannel_idint unsigned100
mailchannel_idint unsigned100
profextchannel_idint unsigned100
channelchannel_lastpostdatetime190000-00-00 00:00:00
channelchannel_locationchar255
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_namechar255
channelchannel_notifyflagsint unsigned1065535
channelchannel_pageflagsint unsigned100
channelchannel_passwd_resetchar255
channelchannel_primarybit00
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_removedbit00
channelchannel_startpagechar255
channelchannel_systembit00
channelchannel_themechar255
channelchannel_timezonechar128UTC
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
profilechannelstext65535
chatchat_idint unsigned10 √ 
chatchat_roomint unsigned100
chatchat_textmediumtext16777215
chatchat_xchanchar255
ffindercidint unsigned10
fsuggestcidint100
profile_checkcidint unsigned100
auth_codesclient_idvarchar20
clientsclient_idvarchar20
tokensclient_idvarchar20
itemcomment_policychar255
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
fcontactconfirmchar255
profilecontacttext65535
mailconv_guidchar255
mailconvidint unsigned100
itemcoordchar255
profilecountry_namechar255
chatpresencecp_clientchar128
chatpresencecp_idint unsigned10 √ 
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatpresencecp_roomint unsigned100
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomcr_aidint unsigned100
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
chatroomcr_expireint unsigned100
chatroomcr_idint unsigned10 √ 
chatroomcr_namechar255
chatroomcr_uidint unsigned100
attachcreateddatetime190000-00-00 00:00:00
chatcreateddatetime190000-00-00 00:00:00
convcreateddatetime190000-00-00 00:00:00
eventcreateddatetime190000-00-00 00:00:00
fsuggestcreateddatetime190000-00-00 00:00:00
itemcreateddatetime190000-00-00 00:00:00
mailcreateddatetime190000-00-00 00:00:00
photocreateddatetime190000-00-00 00:00:00
registercreateddatetime190000-00-00 00:00:00
verifycreateddatetime190000-00-00 00:00:00
attachcreatorchar128
convcreatorchar255
attachdatalongblob2147483647
photodatamediumblob16777215
sessiondatatext65535
notifydatedatetime190000-00-00 00:00:00
spamdatedatetime190000-00-00 00:00:00
groupsdeletedbit00
attachdeny_cidmediumtext16777215
chatroomdeny_cidmediumtext16777215
eventdeny_cidmediumtext16777215
itemdeny_cidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
objdeny_cidmediumtext16777215
photodeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
chatroomdeny_gidmediumtext16777215
eventdeny_gidmediumtext16777215
itemdeny_gidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
objdeny_gidmediumtext16777215
photodeny_gidmediumtext16777215
eventdescriptiontext65535
photodescriptiontext65535
profile_checkdfrn_idchar255
itemdiaspora_metamediumtext16777215
profiledislikestext65535
attachdisplay_pathmediumtext16777215
photodisplay_pathmediumtext16777215
profiledobchar320000-00-00
profiledob_tzchar255UTC
dreportdreport_channelint100
dreportdreport_idint10 √ 
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_timedatetime190000-00-00 00:00:00
dreportdreport_xchanchar255
attachediteddatetime190000-00-00 00:00:00
eventediteddatetime190000-00-00 00:00:00
itemediteddatetime190000-00-00 00:00:00
photoediteddatetime190000-00-00 00:00:00
profileeducationtext65535
eventevent_hashchar255
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_repeattext65535
eventevent_sequencesmallint50
eventevent_statuschar255
eventevent_status_datedatetime190000-00-00 00:00:00
eventevent_vdatatext65535
eventevent_xchanchar255
profile_checkexpireint100
sessionexpirebigint unsigned200
auth_codesexpiresint100
itemexpiresdatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
tokensexpiresbigint unsigned200
ffinderfidint unsigned10
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_inputsmediumtext16777215
profdeffield_namechar255
profdeffield_typechar16
hookfilechar255
attachfilenamechar255
photofilenamechar255
attachfilesizeint unsigned100
attachfiletypechar64
profilefilmtext65535
eventfinishdatetime190000-00-00 00:00:00
attachflagsint unsigned100
attachfolderchar64
mailfrom_xchanchar255
hookfunctionchar255
profilegenderchar32
group_membergidint unsigned100
convguidchar255
spamhamint100
attachhashchar64
groupshashchar255
notifyhashchar64
profexthashchar255
registerhashchar255
photoheightsmallint50
addonhiddenbit00
profilehide_friendsbit00
profilehomepagechar255
profilehometownchar255
hookhookchar255
profilehowlongdatetime190000-00-00 00:00:00
itemhtmlmediumtext16777215
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_flagsint unsigned100
hublochubloc_guidchar255
hublochubloc_guid_sigtext65535
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_idint unsigned10 √ 
hublochubloc_networkchar32
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
hublochubloc_sitekeytext65535
hublochubloc_statusint unsigned100
hublochubloc_updateddatetime190000-00-00 00:00:00
hublochubloc_urlchar255
hublochubloc_url_sigtext65535
likesi_midchar255
clientsicontext65535 √ null
addonidint10 √ 
appidint10 √ 
attachidint unsigned10 √ 
auth_codesidvarchar40
configidint unsigned10 √ 
convidint unsigned10 √ 
eventidint10 √ 
fcontactidint unsigned10 √ 
ffinderidint unsigned10 √ 
fserveridint10 √ 
fsuggestidint10 √ 
group_memberidint unsigned10 √ 
groupsidint unsigned10 √ 
hookidint10 √ 
itemidint unsigned10 √ 
item_ididint unsigned10 √ 
likesidint unsigned10 √ 
mailidint unsigned10 √ 
manageidint10 √ 
notifyidint10 √ 
pconfigidint10 √ 
photoidint unsigned10 √ 
profdefidint unsigned10 √ 
profextidint unsigned10 √ 
profileidint10 √ 
profile_checkidint unsigned10 √ 
registeridint unsigned10 √ 
sessionidbigint unsigned20 √ 
signidint unsigned10 √ 
spamidint10 √ 
sys_permsidint unsigned10 √ 
tokensidvarchar40
verifyidint unsigned10 √ 
xconfigidint unsigned10 √ 
xignidint unsigned10 √ 
eventignorebit00
item_idiidint100
likesiidint unsigned100
signiidint unsigned100
termimgurlchar255
addoninstalledbit00
profileinteresttext65535
profileis_defaultbit00
attachis_dirbit00
photois_nsfwbit00
attachis_photobit00
issueissue_assignedchar255
issueissue_componentchar255
issueissue_createddatetime190000-00-00 00:00:00
issueissue_idint unsigned10 √ 
issueissue_priorityint100
issueissue_statusint100
issueissue_updateddatetime190000-00-00 00:00:00
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_flagsint100
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_restrictint100
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_typeint100
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
cachekchar255
configkchar255
pconfigkchar255
profextkchar255
sys_permskchar255
xconfigkchar255
fserverkeytext65535
profilekeywordstext65535
itemlangchar64
registerlanguagechar16
itemlayout_midchar255
likeslikeechar128
likeslikerchar128
profilelikestext65535
notifylinkchar255
itemllinkchar255
profilelocalitychar255
eventlocationtext65535
itemlocationchar255
mailmail_deletedtinyint30
mailmail_flagsint unsigned100
mailmail_isreplytinyint30
mailmail_obscuredsmallint50
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
profilemaritalchar255
menumenu_channel_idint unsigned100
menumenu_createddatetime190000-00-00 00:00:00
menumenu_descchar255
menumenu_editeddatetime190000-00-00 00:00:00
menumenu_flagsint100
menumenu_idint unsigned10 √ 
menumenu_namechar255
verifymetachar255
itemmidchar255
mailmidchar255
itemmimetypechar255
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_descchar255
menu_itemmitem_flagsint100
menu_itemmitem_idint unsigned10 √ 
menu_itemmitem_linkchar255
menu_itemmitem_menu_idint unsigned100
menu_itemmitem_orderint100
notifymsgmediumtext16777215
profilemusictext65535
addonnamechar255
clientsnametext65535 √ null
fcontactnamechar255
fsuggestnamechar255
groupsnamechar255
notifynamechar255
profilenamechar255
fcontactnetworkchar32
fcontactnickchar255
eventnofinishbit00
fsuggestnotetext65535
fcontactnotifychar255
objobj_channelint unsigned100
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
objobj_idint unsigned10 √ 
objobj_imgurlchar255
objobj_objchar255
objobj_pagechar64
objobj_termchar255
itemobj_typechar255
objobj_typeint unsigned100
objobj_urlchar255
objobj_verbchar255
itemobjecttext65535
termoidint unsigned100
attachos_pathmediumtext16777215
photoos_pathmediumtext16777215
attachos_storagebit00
photoos_storagebit00
notifyotypechar16
termotypetinyint unsigned30
outqoutq_accountint unsigned100
outqoutq_asyncbit00
outqoutq_channelint unsigned100
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_deliveredbit00
outqoutq_driverchar32
outqoutq_hashchar255
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
outqoutq_posturlchar255
outqoutq_prioritysmallint50
outqoutq_updateddatetime190000-00-00 00:00:00
itemowner_xchanchar255
itemparentint unsigned100
notifyparentchar255
termparent_hashchar255
itemparent_midchar255
mailparent_midchar255
registerpasswordchar255
profilepdescchar255
poll_elmpelm_desctext65535
poll_elmpelm_flagsint100
poll_elmpelm_idint unsigned10 √ 
poll_elmpelm_pollint unsigned100
poll_elmpelm_resultfloat120
fcontactphotochar255
fsuggestphotochar255
notifyphotochar255
profilephotochar255
photophoto_flagsint unsigned100
photophoto_usagesmallint50
itemplinkchar255
addonplugin_adminbit00
profilepoliticchar255
fcontactpollchar255
pollpoll_channelint unsigned100
pollpoll_desctext65535
pollpoll_flagsint100
pollpoll_idint unsigned10 √ 
pollpoll_votesint100
profilepostal_codechar32
itempostoptstext65535
fserverposturlchar255
fcontactprioritybit0
hookpriorityint unsigned100
photoprofilebit00
profileprofile_guidchar64
profileprofile_namechar255
fcontactpubkeytext65535
sys_permspublic_permbit00
itempublic_policychar255
profilepublishbit00
clientspwvarchar20
itemreceiveddatetime190000-00-00 00:00:00
convrecipsmediumtext16777215
auth_codesredirect_urivarchar200
clientsredirect_urivarchar200
profileregionchar255
profilereligionchar255
fcontactrequestchar255
fsuggestrequestchar255
itemresource_idchar255
photoresource_idchar255
itemresource_typechar16
signretract_iidint unsigned100
attachrevisionint unsigned100
itemrevisionint unsigned100
profileromancetext65535
itemroutetext65535
photoscaletinyint30
auth_codesscopevarchar250
tokensscopevarchar200
profile_checksecchar255
tokenssecrettext65535
notifyseenbit00
fserverserverchar255
item_idservicechar255
profilesexualchar255
sharesshare_idint unsigned10 √ 
sharesshare_targetint unsigned100
sharesshare_typeint100
sharesshare_xchanchar255
item_idsidchar255
sessionsidchar255
itemsigtext65535
mailsigtext65535
signsignaturetext65535
signsigned_textmediumtext16777215
signsignerchar255
sitesite_accessint100
sitesite_deadsmallint50
sitesite_directorychar255
sitesite_flagsint100
sitesite_locationchar255
sitesite_projectchar255
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_realmchar255
sitesite_registerint100
sitesite_sellpagechar255
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_typesmallint50
sitesite_updatedatetime190000-00-00 00:00:00
sitesite_urlchar255
sitesite_validsmallint50
photosizeint unsigned100
itemsource_xchanchar255
spamspamint100
sourcesrc_channel_idint unsigned100
sourcesrc_channel_xchanchar255
sourcesrc_idint unsigned10 √ 
sourcesrc_pattmediumtext16777215
sourcesrc_xchanchar255
eventstartdatetime190000-00-00 00:00:00
convsubjectmediumtext16777215
eventsummarytext65535
profilesummarychar255
itemtargettext65535
likestargetmediumtext16777215
likestarget_idchar128
likestarget_typechar255
spamtermchar255
termtermchar255
termterm_hashchar255
itemtgt_typechar255
itemthr_parentchar255
profilethumbchar255
termtidint unsigned10 √ 
addontimestampbigint190
itemtitletext65535
mailtitletext65535
phototitlechar255
mailto_xchanchar255
verifytokenchar255
profiletvtext65535
eventtypechar255
notifytypeint100
phototypechar128image/jpeg
termtypetinyint unsigned30
verifytypechar32
updatesud_addrchar255
updatesud_datedatetime190000-00-00 00:00:00
updatesud_flagsint100
updatesud_guidchar255
updatesud_hashchar128
updatesud_idint unsigned10 √ 
updatesud_lastdatetime190000-00-00 00:00:00
attachuidint unsigned100
clientsuidint100
convuidint100
eventuidint100
ffinderuidint unsigned10
fsuggestuidint100
group_memberuidint unsigned100
groupsuidint unsigned100
itemuidint unsigned100
item_iduidint100
manageuidint100
notifyuidint100
pconfiguidint100
photouidint unsigned100
profileuidint100
profile_checkuidint unsigned100
registeruidint unsigned100
spamuidint100
termuidint unsigned100
tokensuidint100
xignuidint100
cacheupdateddatetime190000-00-00 00:00:00
convupdateddatetime190000-00-00 00:00:00
fcontactupdateddatetime190000-00-00 00:00:00
fcontacturlchar255
fsuggesturlchar255
notifyurlchar255
termurlchar255
cachevtext65535
configvtext65535
pconfigvmediumtext16777215
profextvmediumtext16777215
sys_permsvmediumtext16777215
xconfigvmediumtext16777215
itemverbchar255
likesverbchar255
notifyverbchar255
addonversionchar255
groupsvisiblebit00
votevote_elementint100
votevote_idint unsigned10 √ 
votevote_pollint100
votevote_resulttext65535
votevote_xchanchar255
photowidthsmallint50
profilewithtext65535
profileworktext65535
group_memberxchanchar255
managexchanchar255
photoxchanchar255
xconfigxchanchar255
xignxchanchar255
xchanxchan_addrchar255
xchanxchan_censoredbit00
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_deletedbit00
xchanxchan_flagsint unsigned100
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_guid_sigtext65535
xchanxchan_hashchar255
xchanxchan_hiddenbit00
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_networkchar255
xchanxchan_orphanbit00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_mimetypechar32image/jpeg
xchanxchan_photo_schar255
xchanxchan_pubforumbit00
xchanxchan_pubkeytext65535
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_editeddatetime190000-00-00 00:00:00
xchatxchat_idint unsigned10 √ 
xchatxchat_urlchar255
xchatxchat_xchanchar255
xlinkxlink_idint unsigned10 √ 
xlinkxlink_linkchar255
xlinkxlink_ratingint100
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xlinkxlink_staticbit00
xlinkxlink_updateddatetime190000-00-00 00:00:00
xlinkxlink_xchanchar255
xpermxp_channelint unsigned100
xpermxp_clientvarchar20
xpermxp_idint unsigned10 √ 
xpermxp_permvarchar64
xprofxprof_abouttext65535
xprofxprof_agetinyint unsigned30
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_dobchar12
xprofxprof_genderchar255
xprofxprof_hashchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_keywordstext65535
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_postcodechar32
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_flagsint100
xtagxtag_hashchar255
xtagxtag_idint unsigned10 √ 
xtagxtag_termchar255
+
+
+ + diff --git a/doc/schemaspy_hubzilla/columns.byDefault.html b/doc/schemaspy_hubzilla/columns.byDefault.html new file mode 100644 index 000000000..f80d0ab2b --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.byDefault.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
abookabook_profilechar64
abookabook_xchanchar255
accountaccount_emailchar255
accountaccount_externalchar255
accountaccount_passwordchar255
accountaccount_resetchar255
accountaccount_saltchar32
accountaccount_service_classchar32
profileaddresschar255
photoalbumchar255
itemappchar255
appapp_addrchar255
appapp_authorchar255
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
itemauthor_xchanchar255
configcatchar255
pconfigcatchar255
sys_permscatchar255
xconfigcatchar255
channelchannel_addresschar255
channelchannel_default_groupchar255
channelchannel_guidchar255
channelchannel_hashchar255
channelchannel_locationchar255
channelchannel_namechar255
channelchannel_passwd_resetchar255
channelchannel_startpagechar255
channelchannel_themechar255
chatchat_xchanchar255
auth_codesclient_idvarchar20
clientsclient_idvarchar20
tokensclient_idvarchar20
itemcomment_policychar255
mailconv_guidchar255
itemcoordchar255
profilecountry_namechar255
chatpresencecp_clientchar128
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomcr_namechar255
attachcreatorchar128
convcreatorchar255
profile_checkdfrn_idchar255
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_xchanchar255
eventevent_hashchar255
eventevent_statuschar255
eventevent_xchanchar255
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_namechar255
profdeffield_typechar16
hookfilechar255
attachfilenamechar255
photofilenamechar255
attachfiletypechar64
attachfolderchar64
mailfrom_xchanchar255
hookfunctionchar255
profilegenderchar32
convguidchar255
attachhashchar64
groupshashchar255
notifyhashchar64
profexthashchar255
registerhashchar255
profilehomepagechar255
profilehometownchar255
hookhookchar255
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_guidchar255
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_networkchar32
hublochubloc_urlchar255
likesi_midchar255
auth_codesidvarchar40
tokensidvarchar40
termimgurlchar255
issueissue_assignedchar255
issueissue_componentchar255
cachekchar255
configkchar255
pconfigkchar255
profextkchar255
sys_permskchar255
xconfigkchar255
itemlangchar64
registerlanguagechar16
itemlayout_midchar255
likeslikeechar128
likeslikerchar128
notifylinkchar255
itemllinkchar255
profilelocalitychar255
itemlocationchar255
profilemaritalchar255
menumenu_descchar255
menumenu_namechar255
verifymetachar255
itemmidchar255
mailmidchar255
itemmimetypechar255
menu_itemmitem_descchar255
menu_itemmitem_linkchar255
addonnamechar255
fsuggestnamechar255
groupsnamechar255
notifynamechar255
profilenamechar255
objobj_imgurlchar255
objobj_objchar255
objobj_pagechar64
objobj_termchar255
itemobj_typechar255
objobj_urlchar255
objobj_verbchar255
notifyotypechar16
outqoutq_driverchar32
outqoutq_posturlchar255
itemowner_xchanchar255
notifyparentchar255
termparent_hashchar255
itemparent_midchar255
mailparent_midchar255
registerpasswordchar255
profilepdescchar255
fsuggestphotochar255
notifyphotochar255
profilephotochar255
itemplinkchar255
profilepoliticchar255
profilepostal_codechar32
fserverposturlchar255
profileprofile_guidchar64
profileprofile_namechar255
itempublic_policychar255
clientspwvarchar20
auth_codesredirect_urivarchar200
clientsredirect_urivarchar200
profileregionchar255
profilereligionchar255
fsuggestrequestchar255
itemresource_idchar255
photoresource_idchar255
itemresource_typechar16
auth_codesscopevarchar250
tokensscopevarchar200
profile_checksecchar255
fserverserverchar255
item_idservicechar255
profilesexualchar255
sharesshare_xchanchar255
item_idsidchar255
sessionsidchar255
signsignerchar255
sitesite_directorychar255
sitesite_locationchar255
sitesite_projectchar255
sitesite_realmchar255
sitesite_sellpagechar255
itemsource_xchanchar255
sourcesrc_channel_xchanchar255
sourcesrc_xchanchar255
profilesummarychar255
likestarget_idchar128
likestarget_typechar255
spamtermchar255
termtermchar255
termterm_hashchar255
itemtgt_typechar255
itemthr_parentchar255
profilethumbchar255
phototitlechar255
mailto_xchanchar255
verifytokenchar255
eventtypechar255
verifytypechar32
updatesud_addrchar255
updatesud_guidchar255
updatesud_hashchar128
fsuggesturlchar255
notifyurlchar255
termurlchar255
itemverbchar255
likesverbchar255
notifyverbchar255
addonversionchar255
votevote_xchanchar255
group_memberxchanchar255
managexchanchar255
photoxchanchar255
xconfigxchanchar255
xignxchanchar255
xchanxchan_addrchar255
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_networkchar255
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_schar255
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_urlchar255
xchatxchat_xchanchar255
xlinkxlink_linkchar255
xlinkxlink_xchanchar255
xpermxp_clientvarchar20
xpermxp_permvarchar64
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_dobchar12
xprofxprof_genderchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_postcodechar32
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_hashchar255
xtagxtag_termchar255
abookabook_accountint unsigned100
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_channelint unsigned100
abookabook_feedtinyint30
abookabook_flagsint100
abookabook_hiddentinyint30
abookabook_ignoredtinyint30
abookabook_my_permsint100
abookabook_pendingtinyint30
abookabook_selftinyint30
abookabook_their_permsint100
abookabook_unconnectedtinyint30
accountaccount_default_channelint unsigned100
accountaccount_flagsint unsigned100
mailaccount_idint unsigned100
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_rolesint unsigned100
attachaidint unsigned100
eventaidint unsigned100
itemaidint unsigned100
notifyaidint100
photoaidint unsigned100
profileaidint unsigned100
termaidint unsigned100
appapp_channelint100
verifychannelint unsigned100
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_expire_daysint100
likeschannel_idint unsigned100
mailchannel_idint unsigned100
profextchannel_idint unsigned100
channelchannel_pageflagsint unsigned100
channelchannel_primarybit00
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_removedbit00
channelchannel_systembit00
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
chatchat_roomint unsigned100
fsuggestcidint100
profile_checkcidint unsigned100
mailconvidint unsigned100
chatpresencecp_roomint unsigned100
chatroomcr_aidint unsigned100
chatroomcr_expireint unsigned100
chatroomcr_uidint unsigned100
groupsdeletedbit00
dreportdreport_channelint100
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_sequencesmallint50
profile_checkexpireint100
sessionexpirebigint unsigned200
auth_codesexpiresint100
tokensexpiresbigint unsigned200
attachfilesizeint unsigned100
attachflagsint unsigned100
group_membergidint unsigned100
spamhamint100
photoheightsmallint50
addonhiddenbit00
profilehide_friendsbit00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_flagsint unsigned100
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
hublochubloc_statusint unsigned100
eventignorebit00
item_idiidint100
likesiidint unsigned100
signiidint unsigned100
addoninstalledbit00
profileis_defaultbit00
attachis_dirbit00
photois_nsfwbit00
attachis_photobit00
issueissue_priorityint100
issueissue_statusint100
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_flagsint100
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_restrictint100
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_typeint100
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
mailmail_deletedtinyint30
mailmail_flagsint unsigned100
mailmail_isreplytinyint30
mailmail_obscuredsmallint50
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
menumenu_channel_idint unsigned100
menumenu_flagsint100
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_flagsint100
menu_itemmitem_menu_idint unsigned100
menu_itemmitem_orderint100
eventnofinishbit00
objobj_channelint unsigned100
objobj_typeint unsigned100
termoidint unsigned100
attachos_storagebit00
photoos_storagebit00
termotypetinyint unsigned30
outqoutq_accountint unsigned100
outqoutq_asyncbit00
outqoutq_channelint unsigned100
outqoutq_deliveredbit00
outqoutq_prioritysmallint50
itemparentint unsigned100
poll_elmpelm_flagsint100
poll_elmpelm_pollint unsigned100
poll_elmpelm_resultfloat120
photophoto_flagsint unsigned100
photophoto_usagesmallint50
addonplugin_adminbit00
pollpoll_channelint unsigned100
pollpoll_flagsint100
pollpoll_votesint100
hookpriorityint unsigned100
photoprofilebit00
sys_permspublic_permbit00
profilepublishbit00
signretract_iidint unsigned100
attachrevisionint unsigned100
itemrevisionint unsigned100
photoscaletinyint30
notifyseenbit00
sharesshare_targetint unsigned100
sharesshare_typeint100
sitesite_accessint100
sitesite_deadsmallint50
sitesite_flagsint100
sitesite_registerint100
sitesite_typesmallint50
sitesite_validsmallint50
photosizeint unsigned100
spamspamint100
sourcesrc_channel_idint unsigned100
addontimestampbigint190
notifytypeint100
termtypetinyint unsigned30
updatesud_flagsint100
attachuidint unsigned100
clientsuidint100
convuidint100
eventuidint100
fsuggestuidint100
group_memberuidint unsigned100
groupsuidint unsigned100
itemuidint unsigned100
item_iduidint100
manageuidint100
notifyuidint100
pconfiguidint100
photouidint unsigned100
profileuidint100
profile_checkuidint unsigned100
registeruidint unsigned100
spamuidint100
termuidint unsigned100
tokensuidint100
xignuidint100
groupsvisiblebit00
votevote_elementint100
votevote_pollint100
photowidthsmallint50
xchanxchan_censoredbit00
xchanxchan_deletedbit00
xchanxchan_flagsint unsigned100
xchanxchan_hiddenbit00
xchanxchan_orphanbit00
xchanxchan_pubforumbit00
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xlinkxlink_ratingint100
xlinkxlink_staticbit00
xpermxp_channelint unsigned100
xprofxprof_agetinyint unsigned30
xtagxtag_flagsint100
profiledobchar320000-00-00
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_updateddatetime190000-00-00 00:00:00
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_password_changeddatetime190000-00-00 00:00:00
appapp_createddatetime190000-00-00 00:00:00
appapp_editeddatetime190000-00-00 00:00:00
itemchangeddatetime190000-00-00 00:00:00
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_lastpostdatetime190000-00-00 00:00:00
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
attachcreateddatetime190000-00-00 00:00:00
chatcreateddatetime190000-00-00 00:00:00
convcreateddatetime190000-00-00 00:00:00
eventcreateddatetime190000-00-00 00:00:00
fsuggestcreateddatetime190000-00-00 00:00:00
itemcreateddatetime190000-00-00 00:00:00
mailcreateddatetime190000-00-00 00:00:00
photocreateddatetime190000-00-00 00:00:00
registercreateddatetime190000-00-00 00:00:00
verifycreateddatetime190000-00-00 00:00:00
notifydatedatetime190000-00-00 00:00:00
spamdatedatetime190000-00-00 00:00:00
dreportdreport_timedatetime190000-00-00 00:00:00
attachediteddatetime190000-00-00 00:00:00
eventediteddatetime190000-00-00 00:00:00
itemediteddatetime190000-00-00 00:00:00
photoediteddatetime190000-00-00 00:00:00
eventevent_status_datedatetime190000-00-00 00:00:00
itemexpiresdatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
eventfinishdatetime190000-00-00 00:00:00
profilehowlongdatetime190000-00-00 00:00:00
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_updateddatetime190000-00-00 00:00:00
issueissue_createddatetime190000-00-00 00:00:00
issueissue_updateddatetime190000-00-00 00:00:00
menumenu_createddatetime190000-00-00 00:00:00
menumenu_editeddatetime190000-00-00 00:00:00
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_updateddatetime190000-00-00 00:00:00
itemreceiveddatetime190000-00-00 00:00:00
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_updatedatetime190000-00-00 00:00:00
eventstartdatetime190000-00-00 00:00:00
updatesud_datedatetime190000-00-00 00:00:00
updatesud_lastdatetime190000-00-00 00:00:00
cacheupdateddatetime190000-00-00 00:00:00
convupdateddatetime190000-00-00 00:00:00
fcontactupdateddatetime190000-00-00 00:00:00
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchatxchat_editeddatetime190000-00-00 00:00:00
xlinkxlink_updateddatetime190000-00-00 00:00:00
eventadjustbit01
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_notifyflagsint unsigned1065535
abookabook_closenesstinyint unsigned399
accountaccount_languagechar16en
phototypechar128image/jpeg
xchanxchan_photo_mimetypechar32image/jpeg
abookabook_excltext65535
abookabook_idint unsigned10 √ 
abookabook_incltext65535
profileabouttext65535
accountaccount_idint unsigned10 √ 
fcontactaddrchar255
fcontactaliaschar255
attachallow_cidmediumtext16777215
chatroomallow_cidmediumtext16777215
eventallow_cidmediumtext16777215
itemallow_cidmediumtext16777215
menu_itemallow_cidmediumtext16777215
objallow_cidmediumtext16777215
photoallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
chatroomallow_gidmediumtext16777215
eventallow_gidmediumtext16777215
itemallow_gidmediumtext16777215
menu_itemallow_gidmediumtext16777215
objallow_gidmediumtext16777215
photoallow_gidmediumtext16777215
appapp_desctext65535
itemattachmediumtext16777215
mailattachmediumtext16777215
fcontactbatchchar255
itembodymediumtext16777215
mailbodymediumtext16777215
profilebooktext65535
profilechandesctext65535
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
channelchannel_guid_sigtext65535
channelchannel_idint unsigned10 √ 
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
profilechannelstext65535
chatchat_idint unsigned10 √ 
chatchat_textmediumtext16777215
ffindercidint unsigned10
fcontactconfirmchar255
profilecontacttext65535
chatpresencecp_idint unsigned10 √ 
chatroomcr_idint unsigned10 √ 
attachdatalongblob2147483647
photodatamediumblob16777215
sessiondatatext65535
attachdeny_cidmediumtext16777215
chatroomdeny_cidmediumtext16777215
eventdeny_cidmediumtext16777215
itemdeny_cidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
objdeny_cidmediumtext16777215
photodeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
chatroomdeny_gidmediumtext16777215
eventdeny_gidmediumtext16777215
itemdeny_gidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
objdeny_gidmediumtext16777215
photodeny_gidmediumtext16777215
eventdescriptiontext65535
photodescriptiontext65535
itemdiaspora_metamediumtext16777215
profiledislikestext65535
attachdisplay_pathmediumtext16777215
photodisplay_pathmediumtext16777215
dreportdreport_idint10 √ 
profileeducationtext65535
eventevent_repeattext65535
eventevent_vdatatext65535
ffinderfidint unsigned10
profdeffield_inputsmediumtext16777215
profilefilmtext65535
itemhtmlmediumtext16777215
hublochubloc_guid_sigtext65535
hublochubloc_idint unsigned10 √ 
hublochubloc_sitekeytext65535
hublochubloc_url_sigtext65535
clientsicontext65535 √ null
addonidint10 √ 
appidint10 √ 
attachidint unsigned10 √ 
configidint unsigned10 √ 
convidint unsigned10 √ 
eventidint10 √ 
fcontactidint unsigned10 √ 
ffinderidint unsigned10 √ 
fserveridint10 √ 
fsuggestidint10 √ 
group_memberidint unsigned10 √ 
groupsidint unsigned10 √ 
hookidint10 √ 
itemidint unsigned10 √ 
item_ididint unsigned10 √ 
likesidint unsigned10 √ 
mailidint unsigned10 √ 
manageidint10 √ 
notifyidint10 √ 
pconfigidint10 √ 
photoidint unsigned10 √ 
profdefidint unsigned10 √ 
profextidint unsigned10 √ 
profileidint10 √ 
profile_checkidint unsigned10 √ 
registeridint unsigned10 √ 
sessionidbigint unsigned20 √ 
signidint unsigned10 √ 
spamidint10 √ 
sys_permsidint unsigned10 √ 
verifyidint unsigned10 √ 
xconfigidint unsigned10 √ 
xignidint unsigned10 √ 
profileinteresttext65535
issueissue_idint unsigned10 √ 
fserverkeytext65535
profilekeywordstext65535
profilelikestext65535
eventlocationtext65535
menumenu_idint unsigned10 √ 
menu_itemmitem_idint unsigned10 √ 
notifymsgmediumtext16777215
profilemusictext65535
clientsnametext65535 √ null
fcontactnamechar255
fcontactnetworkchar32
fcontactnickchar255
fsuggestnotetext65535
fcontactnotifychar255
objobj_idint unsigned10 √ 
itemobjecttext65535
attachos_pathmediumtext16777215
photoos_pathmediumtext16777215
outqoutq_hashchar255
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
poll_elmpelm_desctext65535
poll_elmpelm_idint unsigned10 √ 
fcontactphotochar255
fcontactpollchar255
pollpoll_desctext65535
pollpoll_idint unsigned10 √ 
itempostoptstext65535
fcontactprioritybit0
fcontactpubkeytext65535
convrecipsmediumtext16777215
fcontactrequestchar255
profileromancetext65535
itemroutetext65535
tokenssecrettext65535
sharesshare_idint unsigned10 √ 
itemsigtext65535
mailsigtext65535
signsignaturetext65535
signsigned_textmediumtext16777215
sitesite_urlchar255
sourcesrc_idint unsigned10 √ 
sourcesrc_pattmediumtext16777215
convsubjectmediumtext16777215
eventsummarytext65535
itemtargettext65535
likestargetmediumtext16777215
termtidint unsigned10 √ 
itemtitletext65535
mailtitletext65535
profiletvtext65535
updatesud_idint unsigned10 √ 
ffinderuidint unsigned10
fcontacturlchar255
cachevtext65535
configvtext65535
pconfigvmediumtext16777215
profextvmediumtext16777215
sys_permsvmediumtext16777215
xconfigvmediumtext16777215
votevote_idint unsigned10 √ 
votevote_resulttext65535
profilewithtext65535
profileworktext65535
xchanxchan_guid_sigtext65535
xchanxchan_hashchar255
xchanxchan_pubkeytext65535
xchatxchat_idint unsigned10 √ 
xlinkxlink_idint unsigned10 √ 
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xpermxp_idint unsigned10 √ 
xprofxprof_abouttext65535
xprofxprof_hashchar255
xprofxprof_keywordstext65535
xtagxtag_idint unsigned10 √ 
channelchannel_timezonechar128UTC
profiledob_tzchar255UTC
+
+
+ + diff --git a/doc/schemaspy_hubzilla/columns.byNulls.html b/doc/schemaspy_hubzilla/columns.byNulls.html new file mode 100644 index 000000000..36cd91ccf --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.byNulls.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
clientsicontext65535 √ null
clientsnametext65535 √ null
abookabook_accountint unsigned100
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_channelint unsigned100
abookabook_closenesstinyint unsigned399
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_excltext65535
abookabook_feedtinyint30
abookabook_flagsint100
abookabook_hiddentinyint30
abookabook_idint unsigned10 √ 
abookabook_ignoredtinyint30
abookabook_incltext65535
abookabook_my_permsint100
abookabook_pendingtinyint30
abookabook_profilechar64
abookabook_selftinyint30
abookabook_their_permsint100
abookabook_unconnectedtinyint30
abookabook_updateddatetime190000-00-00 00:00:00
abookabook_xchanchar255
profileabouttext65535
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_default_channelint unsigned100
accountaccount_emailchar255
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_externalchar255
accountaccount_flagsint unsigned100
accountaccount_idint unsigned10 √ 
mailaccount_idint unsigned100
accountaccount_languagechar16en
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_passwordchar255
accountaccount_password_changeddatetime190000-00-00 00:00:00
accountaccount_resetchar255
accountaccount_rolesint unsigned100
accountaccount_saltchar32
accountaccount_service_classchar32
fcontactaddrchar255
profileaddresschar255
eventadjustbit01
attachaidint unsigned100
eventaidint unsigned100
itemaidint unsigned100
notifyaidint100
photoaidint unsigned100
profileaidint unsigned100
termaidint unsigned100
photoalbumchar255
fcontactaliaschar255
attachallow_cidmediumtext16777215
chatroomallow_cidmediumtext16777215
eventallow_cidmediumtext16777215
itemallow_cidmediumtext16777215
menu_itemallow_cidmediumtext16777215
objallow_cidmediumtext16777215
photoallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
chatroomallow_gidmediumtext16777215
eventallow_gidmediumtext16777215
itemallow_gidmediumtext16777215
menu_itemallow_gidmediumtext16777215
objallow_gidmediumtext16777215
photoallow_gidmediumtext16777215
itemappchar255
appapp_addrchar255
appapp_authorchar255
appapp_channelint100
appapp_createddatetime190000-00-00 00:00:00
appapp_desctext65535
appapp_editeddatetime190000-00-00 00:00:00
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
itemattachmediumtext16777215
mailattachmediumtext16777215
itemauthor_xchanchar255
fcontactbatchchar255
itembodymediumtext16777215
mailbodymediumtext16777215
profilebooktext65535
configcatchar255
pconfigcatchar255
sys_permscatchar255
xconfigcatchar255
profilechandesctext65535
itemchangeddatetime190000-00-00 00:00:00
verifychannelint unsigned100
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_addresschar255
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_default_groupchar255
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_expire_daysint100
channelchannel_guidchar255
channelchannel_guid_sigtext65535
channelchannel_hashchar255
channelchannel_idint unsigned10 √ 
likeschannel_idint unsigned100
mailchannel_idint unsigned100
profextchannel_idint unsigned100
channelchannel_lastpostdatetime190000-00-00 00:00:00
channelchannel_locationchar255
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_namechar255
channelchannel_notifyflagsint unsigned1065535
channelchannel_pageflagsint unsigned100
channelchannel_passwd_resetchar255
channelchannel_primarybit00
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_removedbit00
channelchannel_startpagechar255
channelchannel_systembit00
channelchannel_themechar255
channelchannel_timezonechar128UTC
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
profilechannelstext65535
chatchat_idint unsigned10 √ 
chatchat_roomint unsigned100
chatchat_textmediumtext16777215
chatchat_xchanchar255
ffindercidint unsigned10
fsuggestcidint100
profile_checkcidint unsigned100
auth_codesclient_idvarchar20
clientsclient_idvarchar20
tokensclient_idvarchar20
itemcomment_policychar255
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
fcontactconfirmchar255
profilecontacttext65535
mailconv_guidchar255
mailconvidint unsigned100
itemcoordchar255
profilecountry_namechar255
chatpresencecp_clientchar128
chatpresencecp_idint unsigned10 √ 
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatpresencecp_roomint unsigned100
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomcr_aidint unsigned100
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
chatroomcr_expireint unsigned100
chatroomcr_idint unsigned10 √ 
chatroomcr_namechar255
chatroomcr_uidint unsigned100
attachcreateddatetime190000-00-00 00:00:00
chatcreateddatetime190000-00-00 00:00:00
convcreateddatetime190000-00-00 00:00:00
eventcreateddatetime190000-00-00 00:00:00
fsuggestcreateddatetime190000-00-00 00:00:00
itemcreateddatetime190000-00-00 00:00:00
mailcreateddatetime190000-00-00 00:00:00
photocreateddatetime190000-00-00 00:00:00
registercreateddatetime190000-00-00 00:00:00
verifycreateddatetime190000-00-00 00:00:00
attachcreatorchar128
convcreatorchar255
attachdatalongblob2147483647
photodatamediumblob16777215
sessiondatatext65535
notifydatedatetime190000-00-00 00:00:00
spamdatedatetime190000-00-00 00:00:00
groupsdeletedbit00
attachdeny_cidmediumtext16777215
chatroomdeny_cidmediumtext16777215
eventdeny_cidmediumtext16777215
itemdeny_cidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
objdeny_cidmediumtext16777215
photodeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
chatroomdeny_gidmediumtext16777215
eventdeny_gidmediumtext16777215
itemdeny_gidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
objdeny_gidmediumtext16777215
photodeny_gidmediumtext16777215
eventdescriptiontext65535
photodescriptiontext65535
profile_checkdfrn_idchar255
itemdiaspora_metamediumtext16777215
profiledislikestext65535
attachdisplay_pathmediumtext16777215
photodisplay_pathmediumtext16777215
profiledobchar320000-00-00
profiledob_tzchar255UTC
dreportdreport_channelint100
dreportdreport_idint10 √ 
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_timedatetime190000-00-00 00:00:00
dreportdreport_xchanchar255
attachediteddatetime190000-00-00 00:00:00
eventediteddatetime190000-00-00 00:00:00
itemediteddatetime190000-00-00 00:00:00
photoediteddatetime190000-00-00 00:00:00
profileeducationtext65535
eventevent_hashchar255
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_repeattext65535
eventevent_sequencesmallint50
eventevent_statuschar255
eventevent_status_datedatetime190000-00-00 00:00:00
eventevent_vdatatext65535
eventevent_xchanchar255
profile_checkexpireint100
sessionexpirebigint unsigned200
auth_codesexpiresint100
itemexpiresdatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
tokensexpiresbigint unsigned200
ffinderfidint unsigned10
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_inputsmediumtext16777215
profdeffield_namechar255
profdeffield_typechar16
hookfilechar255
attachfilenamechar255
photofilenamechar255
attachfilesizeint unsigned100
attachfiletypechar64
profilefilmtext65535
eventfinishdatetime190000-00-00 00:00:00
attachflagsint unsigned100
attachfolderchar64
mailfrom_xchanchar255
hookfunctionchar255
profilegenderchar32
group_membergidint unsigned100
convguidchar255
spamhamint100
attachhashchar64
groupshashchar255
notifyhashchar64
profexthashchar255
registerhashchar255
photoheightsmallint50
addonhiddenbit00
profilehide_friendsbit00
profilehomepagechar255
profilehometownchar255
hookhookchar255
profilehowlongdatetime190000-00-00 00:00:00
itemhtmlmediumtext16777215
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_flagsint unsigned100
hublochubloc_guidchar255
hublochubloc_guid_sigtext65535
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_idint unsigned10 √ 
hublochubloc_networkchar32
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
hublochubloc_sitekeytext65535
hublochubloc_statusint unsigned100
hublochubloc_updateddatetime190000-00-00 00:00:00
hublochubloc_urlchar255
hublochubloc_url_sigtext65535
likesi_midchar255
addonidint10 √ 
appidint10 √ 
attachidint unsigned10 √ 
auth_codesidvarchar40
configidint unsigned10 √ 
convidint unsigned10 √ 
eventidint10 √ 
fcontactidint unsigned10 √ 
ffinderidint unsigned10 √ 
fserveridint10 √ 
fsuggestidint10 √ 
group_memberidint unsigned10 √ 
groupsidint unsigned10 √ 
hookidint10 √ 
itemidint unsigned10 √ 
item_ididint unsigned10 √ 
likesidint unsigned10 √ 
mailidint unsigned10 √ 
manageidint10 √ 
notifyidint10 √ 
pconfigidint10 √ 
photoidint unsigned10 √ 
profdefidint unsigned10 √ 
profextidint unsigned10 √ 
profileidint10 √ 
profile_checkidint unsigned10 √ 
registeridint unsigned10 √ 
sessionidbigint unsigned20 √ 
signidint unsigned10 √ 
spamidint10 √ 
sys_permsidint unsigned10 √ 
tokensidvarchar40
verifyidint unsigned10 √ 
xconfigidint unsigned10 √ 
xignidint unsigned10 √ 
eventignorebit00
item_idiidint100
likesiidint unsigned100
signiidint unsigned100
termimgurlchar255
addoninstalledbit00
profileinteresttext65535
profileis_defaultbit00
attachis_dirbit00
photois_nsfwbit00
attachis_photobit00
issueissue_assignedchar255
issueissue_componentchar255
issueissue_createddatetime190000-00-00 00:00:00
issueissue_idint unsigned10 √ 
issueissue_priorityint100
issueissue_statusint100
issueissue_updateddatetime190000-00-00 00:00:00
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_flagsint100
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_restrictint100
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_typeint100
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
cachekchar255
configkchar255
pconfigkchar255
profextkchar255
sys_permskchar255
xconfigkchar255
fserverkeytext65535
profilekeywordstext65535
itemlangchar64
registerlanguagechar16
itemlayout_midchar255
likeslikeechar128
likeslikerchar128
profilelikestext65535
notifylinkchar255
itemllinkchar255
profilelocalitychar255
eventlocationtext65535
itemlocationchar255
mailmail_deletedtinyint30
mailmail_flagsint unsigned100
mailmail_isreplytinyint30
mailmail_obscuredsmallint50
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
profilemaritalchar255
menumenu_channel_idint unsigned100
menumenu_createddatetime190000-00-00 00:00:00
menumenu_descchar255
menumenu_editeddatetime190000-00-00 00:00:00
menumenu_flagsint100
menumenu_idint unsigned10 √ 
menumenu_namechar255
verifymetachar255
itemmidchar255
mailmidchar255
itemmimetypechar255
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_descchar255
menu_itemmitem_flagsint100
menu_itemmitem_idint unsigned10 √ 
menu_itemmitem_linkchar255
menu_itemmitem_menu_idint unsigned100
menu_itemmitem_orderint100
notifymsgmediumtext16777215
profilemusictext65535
addonnamechar255
fcontactnamechar255
fsuggestnamechar255
groupsnamechar255
notifynamechar255
profilenamechar255
fcontactnetworkchar32
fcontactnickchar255
eventnofinishbit00
fsuggestnotetext65535
fcontactnotifychar255
objobj_channelint unsigned100
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
objobj_idint unsigned10 √ 
objobj_imgurlchar255
objobj_objchar255
objobj_pagechar64
objobj_termchar255
itemobj_typechar255
objobj_typeint unsigned100
objobj_urlchar255
objobj_verbchar255
itemobjecttext65535
termoidint unsigned100
attachos_pathmediumtext16777215
photoos_pathmediumtext16777215
attachos_storagebit00
photoos_storagebit00
notifyotypechar16
termotypetinyint unsigned30
outqoutq_accountint unsigned100
outqoutq_asyncbit00
outqoutq_channelint unsigned100
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_deliveredbit00
outqoutq_driverchar32
outqoutq_hashchar255
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
outqoutq_posturlchar255
outqoutq_prioritysmallint50
outqoutq_updateddatetime190000-00-00 00:00:00
itemowner_xchanchar255
itemparentint unsigned100
notifyparentchar255
termparent_hashchar255
itemparent_midchar255
mailparent_midchar255
registerpasswordchar255
profilepdescchar255
poll_elmpelm_desctext65535
poll_elmpelm_flagsint100
poll_elmpelm_idint unsigned10 √ 
poll_elmpelm_pollint unsigned100
poll_elmpelm_resultfloat120
fcontactphotochar255
fsuggestphotochar255
notifyphotochar255
profilephotochar255
photophoto_flagsint unsigned100
photophoto_usagesmallint50
itemplinkchar255
addonplugin_adminbit00
profilepoliticchar255
fcontactpollchar255
pollpoll_channelint unsigned100
pollpoll_desctext65535
pollpoll_flagsint100
pollpoll_idint unsigned10 √ 
pollpoll_votesint100
profilepostal_codechar32
itempostoptstext65535
fserverposturlchar255
fcontactprioritybit0
hookpriorityint unsigned100
photoprofilebit00
profileprofile_guidchar64
profileprofile_namechar255
fcontactpubkeytext65535
sys_permspublic_permbit00
itempublic_policychar255
profilepublishbit00
clientspwvarchar20
itemreceiveddatetime190000-00-00 00:00:00
convrecipsmediumtext16777215
auth_codesredirect_urivarchar200
clientsredirect_urivarchar200
profileregionchar255
profilereligionchar255
fcontactrequestchar255
fsuggestrequestchar255
itemresource_idchar255
photoresource_idchar255
itemresource_typechar16
signretract_iidint unsigned100
attachrevisionint unsigned100
itemrevisionint unsigned100
profileromancetext65535
itemroutetext65535
photoscaletinyint30
auth_codesscopevarchar250
tokensscopevarchar200
profile_checksecchar255
tokenssecrettext65535
notifyseenbit00
fserverserverchar255
item_idservicechar255
profilesexualchar255
sharesshare_idint unsigned10 √ 
sharesshare_targetint unsigned100
sharesshare_typeint100
sharesshare_xchanchar255
item_idsidchar255
sessionsidchar255
itemsigtext65535
mailsigtext65535
signsignaturetext65535
signsigned_textmediumtext16777215
signsignerchar255
sitesite_accessint100
sitesite_deadsmallint50
sitesite_directorychar255
sitesite_flagsint100
sitesite_locationchar255
sitesite_projectchar255
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_realmchar255
sitesite_registerint100
sitesite_sellpagechar255
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_typesmallint50
sitesite_updatedatetime190000-00-00 00:00:00
sitesite_urlchar255
sitesite_validsmallint50
photosizeint unsigned100
itemsource_xchanchar255
spamspamint100
sourcesrc_channel_idint unsigned100
sourcesrc_channel_xchanchar255
sourcesrc_idint unsigned10 √ 
sourcesrc_pattmediumtext16777215
sourcesrc_xchanchar255
eventstartdatetime190000-00-00 00:00:00
convsubjectmediumtext16777215
eventsummarytext65535
profilesummarychar255
itemtargettext65535
likestargetmediumtext16777215
likestarget_idchar128
likestarget_typechar255
spamtermchar255
termtermchar255
termterm_hashchar255
itemtgt_typechar255
itemthr_parentchar255
profilethumbchar255
termtidint unsigned10 √ 
addontimestampbigint190
itemtitletext65535
mailtitletext65535
phototitlechar255
mailto_xchanchar255
verifytokenchar255
profiletvtext65535
eventtypechar255
notifytypeint100
phototypechar128image/jpeg
termtypetinyint unsigned30
verifytypechar32
updatesud_addrchar255
updatesud_datedatetime190000-00-00 00:00:00
updatesud_flagsint100
updatesud_guidchar255
updatesud_hashchar128
updatesud_idint unsigned10 √ 
updatesud_lastdatetime190000-00-00 00:00:00
attachuidint unsigned100
clientsuidint100
convuidint100
eventuidint100
ffinderuidint unsigned10
fsuggestuidint100
group_memberuidint unsigned100
groupsuidint unsigned100
itemuidint unsigned100
item_iduidint100
manageuidint100
notifyuidint100
pconfiguidint100
photouidint unsigned100
profileuidint100
profile_checkuidint unsigned100
registeruidint unsigned100
spamuidint100
termuidint unsigned100
tokensuidint100
xignuidint100
cacheupdateddatetime190000-00-00 00:00:00
convupdateddatetime190000-00-00 00:00:00
fcontactupdateddatetime190000-00-00 00:00:00
fcontacturlchar255
fsuggesturlchar255
notifyurlchar255
termurlchar255
cachevtext65535
configvtext65535
pconfigvmediumtext16777215
profextvmediumtext16777215
sys_permsvmediumtext16777215
xconfigvmediumtext16777215
itemverbchar255
likesverbchar255
notifyverbchar255
addonversionchar255
groupsvisiblebit00
votevote_elementint100
votevote_idint unsigned10 √ 
votevote_pollint100
votevote_resulttext65535
votevote_xchanchar255
photowidthsmallint50
profilewithtext65535
profileworktext65535
group_memberxchanchar255
managexchanchar255
photoxchanchar255
xconfigxchanchar255
xignxchanchar255
xchanxchan_addrchar255
xchanxchan_censoredbit00
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_deletedbit00
xchanxchan_flagsint unsigned100
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_guid_sigtext65535
xchanxchan_hashchar255
xchanxchan_hiddenbit00
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_networkchar255
xchanxchan_orphanbit00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_mimetypechar32image/jpeg
xchanxchan_photo_schar255
xchanxchan_pubforumbit00
xchanxchan_pubkeytext65535
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_editeddatetime190000-00-00 00:00:00
xchatxchat_idint unsigned10 √ 
xchatxchat_urlchar255
xchatxchat_xchanchar255
xlinkxlink_idint unsigned10 √ 
xlinkxlink_linkchar255
xlinkxlink_ratingint100
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xlinkxlink_staticbit00
xlinkxlink_updateddatetime190000-00-00 00:00:00
xlinkxlink_xchanchar255
xpermxp_channelint unsigned100
xpermxp_clientvarchar20
xpermxp_idint unsigned10 √ 
xpermxp_permvarchar64
xprofxprof_abouttext65535
xprofxprof_agetinyint unsigned30
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_dobchar12
xprofxprof_genderchar255
xprofxprof_hashchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_keywordstext65535
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_postcodechar32
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_flagsint100
xtagxtag_hashchar255
xtagxtag_idint unsigned10 √ 
xtagxtag_termchar255
+
+
+ + diff --git a/doc/schemaspy_hubzilla/columns.bySize.html b/doc/schemaspy_hubzilla/columns.bySize.html new file mode 100644 index 000000000..9b31cfa9a --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.bySize.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
eventadjustbit01
channelchannel_primarybit00
channelchannel_removedbit00
channelchannel_systembit00
groupsdeletedbit00
addonhiddenbit00
profilehide_friendsbit00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
eventignorebit00
addoninstalledbit00
profileis_defaultbit00
attachis_dirbit00
photois_nsfwbit00
attachis_photobit00
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
eventnofinishbit00
attachos_storagebit00
photoos_storagebit00
outqoutq_asyncbit00
outqoutq_deliveredbit00
addonplugin_adminbit00
fcontactprioritybit0
photoprofilebit00
sys_permspublic_permbit00
profilepublishbit00
notifyseenbit00
groupsvisiblebit00
xchanxchan_censoredbit00
xchanxchan_deletedbit00
xchanxchan_hiddenbit00
xchanxchan_orphanbit00
xchanxchan_pubforumbit00
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xlinkxlink_staticbit00
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_closenesstinyint unsigned399
abookabook_feedtinyint30
abookabook_hiddentinyint30
abookabook_ignoredtinyint30
abookabook_pendingtinyint30
abookabook_selftinyint30
abookabook_unconnectedtinyint30
mailmail_deletedtinyint30
mailmail_isreplytinyint30
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
termotypetinyint unsigned30
photoscaletinyint30
termtypetinyint unsigned30
xprofxprof_agetinyint unsigned30
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_sequencesmallint50
photoheightsmallint50
mailmail_obscuredsmallint50
outqoutq_prioritysmallint50
photophoto_usagesmallint50
sitesite_deadsmallint50
sitesite_typesmallint50
sitesite_validsmallint50
photowidthsmallint50
abookabook_accountint unsigned100
abookabook_channelint unsigned100
abookabook_flagsint100
abookabook_idint unsigned10 √ 
abookabook_my_permsint100
abookabook_their_permsint100
accountaccount_default_channelint unsigned100
accountaccount_flagsint unsigned100
accountaccount_idint unsigned10 √ 
mailaccount_idint unsigned100
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_rolesint unsigned100
attachaidint unsigned100
eventaidint unsigned100
itemaidint unsigned100
notifyaidint100
photoaidint unsigned100
profileaidint unsigned100
termaidint unsigned100
appapp_channelint100
verifychannelint unsigned100
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_expire_daysint100
channelchannel_idint unsigned10 √ 
likeschannel_idint unsigned100
mailchannel_idint unsigned100
profextchannel_idint unsigned100
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_notifyflagsint unsigned1065535
channelchannel_pageflagsint unsigned100
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
chatchat_idint unsigned10 √ 
chatchat_roomint unsigned100
ffindercidint unsigned10
fsuggestcidint100
profile_checkcidint unsigned100
mailconvidint unsigned100
chatpresencecp_idint unsigned10 √ 
chatpresencecp_roomint unsigned100
chatroomcr_aidint unsigned100
chatroomcr_expireint unsigned100
chatroomcr_idint unsigned10 √ 
chatroomcr_uidint unsigned100
dreportdreport_channelint100
dreportdreport_idint10 √ 
profile_checkexpireint100
auth_codesexpiresint100
ffinderfidint unsigned10
attachfilesizeint unsigned100
attachflagsint unsigned100
group_membergidint unsigned100
spamhamint100
hublochubloc_flagsint unsigned100
hublochubloc_idint unsigned10 √ 
hublochubloc_statusint unsigned100
addonidint10 √ 
appidint10 √ 
attachidint unsigned10 √ 
configidint unsigned10 √ 
convidint unsigned10 √ 
eventidint10 √ 
fcontactidint unsigned10 √ 
ffinderidint unsigned10 √ 
fserveridint10 √ 
fsuggestidint10 √ 
group_memberidint unsigned10 √ 
groupsidint unsigned10 √ 
hookidint10 √ 
itemidint unsigned10 √ 
item_ididint unsigned10 √ 
likesidint unsigned10 √ 
mailidint unsigned10 √ 
manageidint10 √ 
notifyidint10 √ 
pconfigidint10 √ 
photoidint unsigned10 √ 
profdefidint unsigned10 √ 
profextidint unsigned10 √ 
profileidint10 √ 
profile_checkidint unsigned10 √ 
registeridint unsigned10 √ 
signidint unsigned10 √ 
spamidint10 √ 
sys_permsidint unsigned10 √ 
verifyidint unsigned10 √ 
xconfigidint unsigned10 √ 
xignidint unsigned10 √ 
item_idiidint100
likesiidint unsigned100
signiidint unsigned100
issueissue_idint unsigned10 √ 
issueissue_priorityint100
issueissue_statusint100
itemitem_flagsint100
itemitem_restrictint100
itemitem_typeint100
mailmail_flagsint unsigned100
menumenu_channel_idint unsigned100
menumenu_flagsint100
menumenu_idint unsigned10 √ 
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_flagsint100
menu_itemmitem_idint unsigned10 √ 
menu_itemmitem_menu_idint unsigned100
menu_itemmitem_orderint100
objobj_channelint unsigned100
objobj_idint unsigned10 √ 
objobj_typeint unsigned100
termoidint unsigned100
outqoutq_accountint unsigned100
outqoutq_channelint unsigned100
itemparentint unsigned100
poll_elmpelm_flagsint100
poll_elmpelm_idint unsigned10 √ 
poll_elmpelm_pollint unsigned100
photophoto_flagsint unsigned100
pollpoll_channelint unsigned100
pollpoll_flagsint100
pollpoll_idint unsigned10 √ 
pollpoll_votesint100
hookpriorityint unsigned100
signretract_iidint unsigned100
attachrevisionint unsigned100
itemrevisionint unsigned100
sharesshare_idint unsigned10 √ 
sharesshare_targetint unsigned100
sharesshare_typeint100
sitesite_accessint100
sitesite_flagsint100
sitesite_registerint100
photosizeint unsigned100
spamspamint100
sourcesrc_channel_idint unsigned100
sourcesrc_idint unsigned10 √ 
termtidint unsigned10 √ 
notifytypeint100
updatesud_flagsint100
updatesud_idint unsigned10 √ 
attachuidint unsigned100
clientsuidint100
convuidint100
eventuidint100
ffinderuidint unsigned10
fsuggestuidint100
group_memberuidint unsigned100
groupsuidint unsigned100
itemuidint unsigned100
item_iduidint100
manageuidint100
notifyuidint100
pconfiguidint100
photouidint unsigned100
profileuidint100
profile_checkuidint unsigned100
registeruidint unsigned100
spamuidint100
termuidint unsigned100
tokensuidint100
xignuidint100
votevote_elementint100
votevote_idint unsigned10 √ 
votevote_pollint100
xchanxchan_flagsint unsigned100
xchatxchat_idint unsigned10 √ 
xlinkxlink_idint unsigned10 √ 
xlinkxlink_ratingint100
xpermxp_channelint unsigned100
xpermxp_idint unsigned10 √ 
xtagxtag_flagsint100
xtagxtag_idint unsigned10 √ 
poll_elmpelm_resultfloat120
xprofxprof_dobchar12
accountaccount_languagechar16en
profdeffield_typechar16
registerlanguagechar16
notifyotypechar16
itemresource_typechar16
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_updateddatetime190000-00-00 00:00:00
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_password_changeddatetime190000-00-00 00:00:00
appapp_createddatetime190000-00-00 00:00:00
appapp_editeddatetime190000-00-00 00:00:00
itemchangeddatetime190000-00-00 00:00:00
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_lastpostdatetime190000-00-00 00:00:00
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
attachcreateddatetime190000-00-00 00:00:00
chatcreateddatetime190000-00-00 00:00:00
convcreateddatetime190000-00-00 00:00:00
eventcreateddatetime190000-00-00 00:00:00
fsuggestcreateddatetime190000-00-00 00:00:00
itemcreateddatetime190000-00-00 00:00:00
mailcreateddatetime190000-00-00 00:00:00
photocreateddatetime190000-00-00 00:00:00
registercreateddatetime190000-00-00 00:00:00
verifycreateddatetime190000-00-00 00:00:00
notifydatedatetime190000-00-00 00:00:00
spamdatedatetime190000-00-00 00:00:00
dreportdreport_timedatetime190000-00-00 00:00:00
attachediteddatetime190000-00-00 00:00:00
eventediteddatetime190000-00-00 00:00:00
itemediteddatetime190000-00-00 00:00:00
photoediteddatetime190000-00-00 00:00:00
eventevent_status_datedatetime190000-00-00 00:00:00
itemexpiresdatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
eventfinishdatetime190000-00-00 00:00:00
profilehowlongdatetime190000-00-00 00:00:00
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_updateddatetime190000-00-00 00:00:00
issueissue_createddatetime190000-00-00 00:00:00
issueissue_updateddatetime190000-00-00 00:00:00
menumenu_createddatetime190000-00-00 00:00:00
menumenu_editeddatetime190000-00-00 00:00:00
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_updateddatetime190000-00-00 00:00:00
itemreceiveddatetime190000-00-00 00:00:00
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_updatedatetime190000-00-00 00:00:00
eventstartdatetime190000-00-00 00:00:00
addontimestampbigint190
updatesud_datedatetime190000-00-00 00:00:00
updatesud_lastdatetime190000-00-00 00:00:00
cacheupdateddatetime190000-00-00 00:00:00
convupdateddatetime190000-00-00 00:00:00
fcontactupdateddatetime190000-00-00 00:00:00
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchatxchat_editeddatetime190000-00-00 00:00:00
xlinkxlink_updateddatetime190000-00-00 00:00:00
auth_codesclient_idvarchar20
clientsclient_idvarchar20
tokensclient_idvarchar20
sessionexpirebigint unsigned200
tokensexpiresbigint unsigned200
sessionidbigint unsigned20 √ 
clientspwvarchar20
xpermxp_clientvarchar20
accountaccount_saltchar32
accountaccount_service_classchar32
profiledobchar320000-00-00
profilegenderchar32
hublochubloc_networkchar32
fcontactnetworkchar32
outqoutq_driverchar32
profilepostal_codechar32
verifytypechar32
xchanxchan_photo_mimetypechar32image/jpeg
xprofxprof_postcodechar32
auth_codesidvarchar40
tokensidvarchar40
abookabook_profilechar64
attachfiletypechar64
attachfolderchar64
attachhashchar64
notifyhashchar64
itemlangchar64
objobj_pagechar64
profileprofile_guidchar64
xpermxp_permvarchar64
channelchannel_timezonechar128UTC
chatpresencecp_clientchar128
attachcreatorchar128
likeslikeechar128
likeslikerchar128
likestarget_idchar128
phototypechar128image/jpeg
updatesud_hashchar128
auth_codesredirect_urivarchar200
clientsredirect_urivarchar200
tokensscopevarchar200
auth_codesscopevarchar250
abookabook_xchanchar255
accountaccount_emailchar255
accountaccount_externalchar255
accountaccount_passwordchar255
accountaccount_resetchar255
fcontactaddrchar255
profileaddresschar255
photoalbumchar255
fcontactaliaschar255
itemappchar255
appapp_addrchar255
appapp_authorchar255
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
itemauthor_xchanchar255
fcontactbatchchar255
configcatchar255
pconfigcatchar255
sys_permscatchar255
xconfigcatchar255
channelchannel_addresschar255
channelchannel_default_groupchar255
channelchannel_guidchar255
channelchannel_hashchar255
channelchannel_locationchar255
channelchannel_namechar255
channelchannel_passwd_resetchar255
channelchannel_startpagechar255
channelchannel_themechar255
chatchat_xchanchar255
itemcomment_policychar255
fcontactconfirmchar255
mailconv_guidchar255
itemcoordchar255
profilecountry_namechar255
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomcr_namechar255
convcreatorchar255
profile_checkdfrn_idchar255
profiledob_tzchar255UTC
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_xchanchar255
eventevent_hashchar255
eventevent_statuschar255
eventevent_xchanchar255
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_namechar255
hookfilechar255
attachfilenamechar255
photofilenamechar255
mailfrom_xchanchar255
hookfunctionchar255
convguidchar255
groupshashchar255
profexthashchar255
registerhashchar255
profilehomepagechar255
profilehometownchar255
hookhookchar255
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_guidchar255
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_urlchar255
likesi_midchar255
termimgurlchar255
issueissue_assignedchar255
issueissue_componentchar255
cachekchar255
configkchar255
pconfigkchar255
profextkchar255
sys_permskchar255
xconfigkchar255
itemlayout_midchar255
notifylinkchar255
itemllinkchar255
profilelocalitychar255
itemlocationchar255
profilemaritalchar255
menumenu_descchar255
menumenu_namechar255
verifymetachar255
itemmidchar255
mailmidchar255
itemmimetypechar255
menu_itemmitem_descchar255
menu_itemmitem_linkchar255
addonnamechar255
fcontactnamechar255
fsuggestnamechar255
groupsnamechar255
notifynamechar255
profilenamechar255
fcontactnickchar255
fcontactnotifychar255
objobj_imgurlchar255
objobj_objchar255
objobj_termchar255
itemobj_typechar255
objobj_urlchar255
objobj_verbchar255
outqoutq_hashchar255
outqoutq_posturlchar255
itemowner_xchanchar255
notifyparentchar255
termparent_hashchar255
itemparent_midchar255
mailparent_midchar255
registerpasswordchar255
profilepdescchar255
fcontactphotochar255
fsuggestphotochar255
notifyphotochar255
profilephotochar255
itemplinkchar255
profilepoliticchar255
fcontactpollchar255
fserverposturlchar255
profileprofile_namechar255
itempublic_policychar255
profileregionchar255
profilereligionchar255
fcontactrequestchar255
fsuggestrequestchar255
itemresource_idchar255
photoresource_idchar255
profile_checksecchar255
fserverserverchar255
item_idservicechar255
profilesexualchar255
sharesshare_xchanchar255
item_idsidchar255
sessionsidchar255
signsignerchar255
sitesite_directorychar255
sitesite_locationchar255
sitesite_projectchar255
sitesite_realmchar255
sitesite_sellpagechar255
sitesite_urlchar255
itemsource_xchanchar255
sourcesrc_channel_xchanchar255
sourcesrc_xchanchar255
profilesummarychar255
likestarget_typechar255
spamtermchar255
termtermchar255
termterm_hashchar255
itemtgt_typechar255
itemthr_parentchar255
profilethumbchar255
phototitlechar255
mailto_xchanchar255
verifytokenchar255
eventtypechar255
updatesud_addrchar255
updatesud_guidchar255
fcontacturlchar255
fsuggesturlchar255
notifyurlchar255
termurlchar255
itemverbchar255
likesverbchar255
notifyverbchar255
addonversionchar255
votevote_xchanchar255
group_memberxchanchar255
managexchanchar255
photoxchanchar255
xconfigxchanchar255
xignxchanchar255
xchanxchan_addrchar255
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_hashchar255
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_networkchar255
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_schar255
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_urlchar255
xchatxchat_xchanchar255
xlinkxlink_linkchar255
xlinkxlink_xchanchar255
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_genderchar255
xprofxprof_hashchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_hashchar255
xtagxtag_termchar255
abookabook_excltext65535
abookabook_incltext65535
profileabouttext65535
appapp_desctext65535
profilebooktext65535
profilechandesctext65535
channelchannel_guid_sigtext65535
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
profilechannelstext65535
profilecontacttext65535
sessiondatatext65535
eventdescriptiontext65535
photodescriptiontext65535
profiledislikestext65535
profileeducationtext65535
eventevent_repeattext65535
eventevent_vdatatext65535
profilefilmtext65535
hublochubloc_guid_sigtext65535
hublochubloc_sitekeytext65535
hublochubloc_url_sigtext65535
clientsicontext65535 √ null
profileinteresttext65535
fserverkeytext65535
profilekeywordstext65535
profilelikestext65535
eventlocationtext65535
profilemusictext65535
clientsnametext65535 √ null
fsuggestnotetext65535
itemobjecttext65535
poll_elmpelm_desctext65535
pollpoll_desctext65535
itempostoptstext65535
fcontactpubkeytext65535
profileromancetext65535
itemroutetext65535
tokenssecrettext65535
itemsigtext65535
mailsigtext65535
signsignaturetext65535
eventsummarytext65535
itemtargettext65535
itemtitletext65535
mailtitletext65535
profiletvtext65535
cachevtext65535
configvtext65535
votevote_resulttext65535
profilewithtext65535
profileworktext65535
xchanxchan_guid_sigtext65535
xchanxchan_pubkeytext65535
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xprofxprof_abouttext65535
xprofxprof_keywordstext65535
attachallow_cidmediumtext16777215
chatroomallow_cidmediumtext16777215
eventallow_cidmediumtext16777215
itemallow_cidmediumtext16777215
menu_itemallow_cidmediumtext16777215
objallow_cidmediumtext16777215
photoallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
chatroomallow_gidmediumtext16777215
eventallow_gidmediumtext16777215
itemallow_gidmediumtext16777215
menu_itemallow_gidmediumtext16777215
objallow_gidmediumtext16777215
photoallow_gidmediumtext16777215
itemattachmediumtext16777215
mailattachmediumtext16777215
itembodymediumtext16777215
mailbodymediumtext16777215
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
chatchat_textmediumtext16777215
photodatamediumblob16777215
attachdeny_cidmediumtext16777215
chatroomdeny_cidmediumtext16777215
eventdeny_cidmediumtext16777215
itemdeny_cidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
objdeny_cidmediumtext16777215
photodeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
chatroomdeny_gidmediumtext16777215
eventdeny_gidmediumtext16777215
itemdeny_gidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
objdeny_gidmediumtext16777215
photodeny_gidmediumtext16777215
itemdiaspora_metamediumtext16777215
attachdisplay_pathmediumtext16777215
photodisplay_pathmediumtext16777215
profdeffield_inputsmediumtext16777215
itemhtmlmediumtext16777215
notifymsgmediumtext16777215
attachos_pathmediumtext16777215
photoos_pathmediumtext16777215
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
convrecipsmediumtext16777215
signsigned_textmediumtext16777215
sourcesrc_pattmediumtext16777215
convsubjectmediumtext16777215
likestargetmediumtext16777215
pconfigvmediumtext16777215
profextvmediumtext16777215
sys_permsvmediumtext16777215
xconfigvmediumtext16777215
attachdatalongblob2147483647
+
+
+ + diff --git a/doc/schemaspy_hubzilla/columns.byTable.html b/doc/schemaspy_hubzilla/columns.byTable.html new file mode 100644 index 000000000..218b65362 --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.byTable.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
abookabook_accountint unsigned100
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_channelint unsigned100
abookabook_closenesstinyint unsigned399
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_excltext65535
abookabook_feedtinyint30
abookabook_flagsint100
abookabook_hiddentinyint30
abookabook_idint unsigned10 √ 
abookabook_ignoredtinyint30
abookabook_incltext65535
abookabook_my_permsint100
abookabook_pendingtinyint30
abookabook_profilechar64
abookabook_selftinyint30
abookabook_their_permsint100
abookabook_unconnectedtinyint30
abookabook_updateddatetime190000-00-00 00:00:00
abookabook_xchanchar255
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_default_channelint unsigned100
accountaccount_emailchar255
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_externalchar255
accountaccount_flagsint unsigned100
accountaccount_idint unsigned10 √ 
accountaccount_languagechar16en
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_passwordchar255
accountaccount_password_changeddatetime190000-00-00 00:00:00
accountaccount_resetchar255
accountaccount_rolesint unsigned100
accountaccount_saltchar32
accountaccount_service_classchar32
addonhiddenbit00
addonidint10 √ 
addoninstalledbit00
addonnamechar255
addonplugin_adminbit00
addontimestampbigint190
addonversionchar255
appapp_addrchar255
appapp_authorchar255
appapp_channelint100
appapp_createddatetime190000-00-00 00:00:00
appapp_desctext65535
appapp_editeddatetime190000-00-00 00:00:00
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
appidint10 √ 
attachaidint unsigned100
attachallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
attachcreateddatetime190000-00-00 00:00:00
attachcreatorchar128
attachdatalongblob2147483647
attachdeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
attachdisplay_pathmediumtext16777215
attachediteddatetime190000-00-00 00:00:00
attachfilenamechar255
attachfilesizeint unsigned100
attachfiletypechar64
attachflagsint unsigned100
attachfolderchar64
attachhashchar64
attachidint unsigned10 √ 
attachis_dirbit00
attachis_photobit00
attachos_pathmediumtext16777215
attachos_storagebit00
attachrevisionint unsigned100
attachuidint unsigned100
auth_codesclient_idvarchar20
auth_codesexpiresint100
auth_codesidvarchar40
auth_codesredirect_urivarchar200
auth_codesscopevarchar250
cachekchar255
cacheupdateddatetime190000-00-00 00:00:00
cachevtext65535
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_addresschar255
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_default_groupchar255
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_expire_daysint100
channelchannel_guidchar255
channelchannel_guid_sigtext65535
channelchannel_hashchar255
channelchannel_idint unsigned10 √ 
channelchannel_lastpostdatetime190000-00-00 00:00:00
channelchannel_locationchar255
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_namechar255
channelchannel_notifyflagsint unsigned1065535
channelchannel_pageflagsint unsigned100
channelchannel_passwd_resetchar255
channelchannel_primarybit00
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_removedbit00
channelchannel_startpagechar255
channelchannel_systembit00
channelchannel_themechar255
channelchannel_timezonechar128UTC
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
chatchat_idint unsigned10 √ 
chatchat_roomint unsigned100
chatchat_textmediumtext16777215
chatchat_xchanchar255
chatcreateddatetime190000-00-00 00:00:00
chatpresencecp_clientchar128
chatpresencecp_idint unsigned10 √ 
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatpresencecp_roomint unsigned100
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomallow_cidmediumtext16777215
chatroomallow_gidmediumtext16777215
chatroomcr_aidint unsigned100
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
chatroomcr_expireint unsigned100
chatroomcr_idint unsigned10 √ 
chatroomcr_namechar255
chatroomcr_uidint unsigned100
chatroomdeny_cidmediumtext16777215
chatroomdeny_gidmediumtext16777215
clientsclient_idvarchar20
clientsicontext65535 √ null
clientsnametext65535 √ null
clientspwvarchar20
clientsredirect_urivarchar200
clientsuidint100
configcatchar255
configidint unsigned10 √ 
configkchar255
configvtext65535
convcreateddatetime190000-00-00 00:00:00
convcreatorchar255
convguidchar255
convidint unsigned10 √ 
convrecipsmediumtext16777215
convsubjectmediumtext16777215
convuidint100
convupdateddatetime190000-00-00 00:00:00
dreportdreport_channelint100
dreportdreport_idint10 √ 
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_timedatetime190000-00-00 00:00:00
dreportdreport_xchanchar255
eventadjustbit01
eventaidint unsigned100
eventallow_cidmediumtext16777215
eventallow_gidmediumtext16777215
eventcreateddatetime190000-00-00 00:00:00
eventdeny_cidmediumtext16777215
eventdeny_gidmediumtext16777215
eventdescriptiontext65535
eventediteddatetime190000-00-00 00:00:00
eventevent_hashchar255
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_repeattext65535
eventevent_sequencesmallint50
eventevent_statuschar255
eventevent_status_datedatetime190000-00-00 00:00:00
eventevent_vdatatext65535
eventevent_xchanchar255
eventfinishdatetime190000-00-00 00:00:00
eventidint10 √ 
eventignorebit00
eventlocationtext65535
eventnofinishbit00
eventstartdatetime190000-00-00 00:00:00
eventsummarytext65535
eventtypechar255
eventuidint100
fcontactaddrchar255
fcontactaliaschar255
fcontactbatchchar255
fcontactconfirmchar255
fcontactidint unsigned10 √ 
fcontactnamechar255
fcontactnetworkchar32
fcontactnickchar255
fcontactnotifychar255
fcontactphotochar255
fcontactpollchar255
fcontactprioritybit0
fcontactpubkeytext65535
fcontactrequestchar255
fcontactupdateddatetime190000-00-00 00:00:00
fcontacturlchar255
ffindercidint unsigned10
ffinderfidint unsigned10
ffinderidint unsigned10 √ 
ffinderuidint unsigned10
fserveridint10 √ 
fserverkeytext65535
fserverposturlchar255
fserverserverchar255
fsuggestcidint100
fsuggestcreateddatetime190000-00-00 00:00:00
fsuggestidint10 √ 
fsuggestnamechar255
fsuggestnotetext65535
fsuggestphotochar255
fsuggestrequestchar255
fsuggestuidint100
fsuggesturlchar255
group_membergidint unsigned100
group_memberidint unsigned10 √ 
group_memberuidint unsigned100
group_memberxchanchar255
groupsdeletedbit00
groupshashchar255
groupsidint unsigned10 √ 
groupsnamechar255
groupsuidint unsigned100
groupsvisiblebit00
hookfilechar255
hookfunctionchar255
hookhookchar255
hookidint10 √ 
hookpriorityint unsigned100
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_flagsint unsigned100
hublochubloc_guidchar255
hublochubloc_guid_sigtext65535
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_idint unsigned10 √ 
hublochubloc_networkchar32
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
hublochubloc_sitekeytext65535
hublochubloc_statusint unsigned100
hublochubloc_updateddatetime190000-00-00 00:00:00
hublochubloc_urlchar255
hublochubloc_url_sigtext65535
issueissue_assignedchar255
issueissue_componentchar255
issueissue_createddatetime190000-00-00 00:00:00
issueissue_idint unsigned10 √ 
issueissue_priorityint100
issueissue_statusint100
issueissue_updateddatetime190000-00-00 00:00:00
itemaidint unsigned100
itemallow_cidmediumtext16777215
itemallow_gidmediumtext16777215
itemappchar255
itemattachmediumtext16777215
itemauthor_xchanchar255
itembodymediumtext16777215
itemchangeddatetime190000-00-00 00:00:00
itemcomment_policychar255
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
itemcoordchar255
itemcreateddatetime190000-00-00 00:00:00
itemdeny_cidmediumtext16777215
itemdeny_gidmediumtext16777215
itemdiaspora_metamediumtext16777215
itemediteddatetime190000-00-00 00:00:00
itemexpiresdatetime190000-00-00 00:00:00
itemhtmlmediumtext16777215
itemidint unsigned10 √ 
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_flagsint100
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_restrictint100
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_typeint100
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
itemlangchar64
itemlayout_midchar255
itemllinkchar255
itemlocationchar255
itemmidchar255
itemmimetypechar255
itemobj_typechar255
itemobjecttext65535
itemowner_xchanchar255
itemparentint unsigned100
itemparent_midchar255
itemplinkchar255
itempostoptstext65535
itempublic_policychar255
itemreceiveddatetime190000-00-00 00:00:00
itemresource_idchar255
itemresource_typechar16
itemrevisionint unsigned100
itemroutetext65535
itemsigtext65535
itemsource_xchanchar255
itemtargettext65535
itemtgt_typechar255
itemthr_parentchar255
itemtitletext65535
itemuidint unsigned100
itemverbchar255
item_ididint unsigned10 √ 
item_idiidint100
item_idservicechar255
item_idsidchar255
item_iduidint100
likeschannel_idint unsigned100
likesi_midchar255
likesidint unsigned10 √ 
likesiidint unsigned100
likeslikeechar128
likeslikerchar128
likestargetmediumtext16777215
likestarget_idchar128
likestarget_typechar255
likesverbchar255
mailaccount_idint unsigned100
mailattachmediumtext16777215
mailbodymediumtext16777215
mailchannel_idint unsigned100
mailconv_guidchar255
mailconvidint unsigned100
mailcreateddatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
mailfrom_xchanchar255
mailidint unsigned10 √ 
mailmail_deletedtinyint30
mailmail_flagsint unsigned100
mailmail_isreplytinyint30
mailmail_obscuredsmallint50
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
mailmidchar255
mailparent_midchar255
mailsigtext65535
mailtitletext65535
mailto_xchanchar255
manageidint10 √ 
manageuidint100
managexchanchar255
menumenu_channel_idint unsigned100
menumenu_createddatetime190000-00-00 00:00:00
menumenu_descchar255
menumenu_editeddatetime190000-00-00 00:00:00
menumenu_flagsint100
menumenu_idint unsigned10 √ 
menumenu_namechar255
menu_itemallow_cidmediumtext16777215
menu_itemallow_gidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_descchar255
menu_itemmitem_flagsint100
menu_itemmitem_idint unsigned10 √ 
menu_itemmitem_linkchar255
menu_itemmitem_menu_idint unsigned100
menu_itemmitem_orderint100
notifyaidint100
notifydatedatetime190000-00-00 00:00:00
notifyhashchar64
notifyidint10 √ 
notifylinkchar255
notifymsgmediumtext16777215
notifynamechar255
notifyotypechar16
notifyparentchar255
notifyphotochar255
notifyseenbit00
notifytypeint100
notifyuidint100
notifyurlchar255
notifyverbchar255
objallow_cidmediumtext16777215
objallow_gidmediumtext16777215
objdeny_cidmediumtext16777215
objdeny_gidmediumtext16777215
objobj_channelint unsigned100
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
objobj_idint unsigned10 √ 
objobj_imgurlchar255
objobj_objchar255
objobj_pagechar64
objobj_termchar255
objobj_typeint unsigned100
objobj_urlchar255
objobj_verbchar255
outqoutq_accountint unsigned100
outqoutq_asyncbit00
outqoutq_channelint unsigned100
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_deliveredbit00
outqoutq_driverchar32
outqoutq_hashchar255
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
outqoutq_posturlchar255
outqoutq_prioritysmallint50
outqoutq_updateddatetime190000-00-00 00:00:00
pconfigcatchar255
pconfigidint10 √ 
pconfigkchar255
pconfiguidint100
pconfigvmediumtext16777215
photoaidint unsigned100
photoalbumchar255
photoallow_cidmediumtext16777215
photoallow_gidmediumtext16777215
photocreateddatetime190000-00-00 00:00:00
photodatamediumblob16777215
photodeny_cidmediumtext16777215
photodeny_gidmediumtext16777215
photodescriptiontext65535
photodisplay_pathmediumtext16777215
photoediteddatetime190000-00-00 00:00:00
photofilenamechar255
photoheightsmallint50
photoidint unsigned10 √ 
photois_nsfwbit00
photoos_pathmediumtext16777215
photoos_storagebit00
photophoto_flagsint unsigned100
photophoto_usagesmallint50
photoprofilebit00
photoresource_idchar255
photoscaletinyint30
photosizeint unsigned100
phototitlechar255
phototypechar128image/jpeg
photouidint unsigned100
photowidthsmallint50
photoxchanchar255
pollpoll_channelint unsigned100
pollpoll_desctext65535
pollpoll_flagsint100
pollpoll_idint unsigned10 √ 
pollpoll_votesint100
poll_elmpelm_desctext65535
poll_elmpelm_flagsint100
poll_elmpelm_idint unsigned10 √ 
poll_elmpelm_pollint unsigned100
poll_elmpelm_resultfloat120
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_inputsmediumtext16777215
profdeffield_namechar255
profdeffield_typechar16
profdefidint unsigned10 √ 
profextchannel_idint unsigned100
profexthashchar255
profextidint unsigned10 √ 
profextkchar255
profextvmediumtext16777215
profileabouttext65535
profileaddresschar255
profileaidint unsigned100
profilebooktext65535
profilechandesctext65535
profilechannelstext65535
profilecontacttext65535
profilecountry_namechar255
profiledislikestext65535
profiledobchar320000-00-00
profiledob_tzchar255UTC
profileeducationtext65535
profilefilmtext65535
profilegenderchar32
profilehide_friendsbit00
profilehomepagechar255
profilehometownchar255
profilehowlongdatetime190000-00-00 00:00:00
profileidint10 √ 
profileinteresttext65535
profileis_defaultbit00
profilekeywordstext65535
profilelikestext65535
profilelocalitychar255
profilemaritalchar255
profilemusictext65535
profilenamechar255
profilepdescchar255
profilephotochar255
profilepoliticchar255
profilepostal_codechar32
profileprofile_guidchar64
profileprofile_namechar255
profilepublishbit00
profileregionchar255
profilereligionchar255
profileromancetext65535
profilesexualchar255
profilesummarychar255
profilethumbchar255
profiletvtext65535
profileuidint100
profilewithtext65535
profileworktext65535
profile_checkcidint unsigned100
profile_checkdfrn_idchar255
profile_checkexpireint100
profile_checkidint unsigned10 √ 
profile_checksecchar255
profile_checkuidint unsigned100
registercreateddatetime190000-00-00 00:00:00
registerhashchar255
registeridint unsigned10 √ 
registerlanguagechar16
registerpasswordchar255
registeruidint unsigned100
sessiondatatext65535
sessionexpirebigint unsigned200
sessionidbigint unsigned20 √ 
sessionsidchar255
sharesshare_idint unsigned10 √ 
sharesshare_targetint unsigned100
sharesshare_typeint100
sharesshare_xchanchar255
signidint unsigned10 √ 
signiidint unsigned100
signretract_iidint unsigned100
signsignaturetext65535
signsigned_textmediumtext16777215
signsignerchar255
sitesite_accessint100
sitesite_deadsmallint50
sitesite_directorychar255
sitesite_flagsint100
sitesite_locationchar255
sitesite_projectchar255
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_realmchar255
sitesite_registerint100
sitesite_sellpagechar255
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_typesmallint50
sitesite_updatedatetime190000-00-00 00:00:00
sitesite_urlchar255
sitesite_validsmallint50
sourcesrc_channel_idint unsigned100
sourcesrc_channel_xchanchar255
sourcesrc_idint unsigned10 √ 
sourcesrc_pattmediumtext16777215
sourcesrc_xchanchar255
spamdatedatetime190000-00-00 00:00:00
spamhamint100
spamidint10 √ 
spamspamint100
spamtermchar255
spamuidint100
sys_permscatchar255
sys_permsidint unsigned10 √ 
sys_permskchar255
sys_permspublic_permbit00
sys_permsvmediumtext16777215
termaidint unsigned100
termimgurlchar255
termoidint unsigned100
termotypetinyint unsigned30
termparent_hashchar255
termtermchar255
termterm_hashchar255
termtidint unsigned10 √ 
termtypetinyint unsigned30
termuidint unsigned100
termurlchar255
tokensclient_idvarchar20
tokensexpiresbigint unsigned200
tokensidvarchar40
tokensscopevarchar200
tokenssecrettext65535
tokensuidint100
updatesud_addrchar255
updatesud_datedatetime190000-00-00 00:00:00
updatesud_flagsint100
updatesud_guidchar255
updatesud_hashchar128
updatesud_idint unsigned10 √ 
updatesud_lastdatetime190000-00-00 00:00:00
verifychannelint unsigned100
verifycreateddatetime190000-00-00 00:00:00
verifyidint unsigned10 √ 
verifymetachar255
verifytokenchar255
verifytypechar32
votevote_elementint100
votevote_idint unsigned10 √ 
votevote_pollint100
votevote_resulttext65535
votevote_xchanchar255
xchanxchan_addrchar255
xchanxchan_censoredbit00
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_deletedbit00
xchanxchan_flagsint unsigned100
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_guid_sigtext65535
xchanxchan_hashchar255
xchanxchan_hiddenbit00
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_networkchar255
xchanxchan_orphanbit00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_mimetypechar32image/jpeg
xchanxchan_photo_schar255
xchanxchan_pubforumbit00
xchanxchan_pubkeytext65535
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_editeddatetime190000-00-00 00:00:00
xchatxchat_idint unsigned10 √ 
xchatxchat_urlchar255
xchatxchat_xchanchar255
xconfigcatchar255
xconfigidint unsigned10 √ 
xconfigkchar255
xconfigvmediumtext16777215
xconfigxchanchar255
xignidint unsigned10 √ 
xignuidint100
xignxchanchar255
xlinkxlink_idint unsigned10 √ 
xlinkxlink_linkchar255
xlinkxlink_ratingint100
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xlinkxlink_staticbit00
xlinkxlink_updateddatetime190000-00-00 00:00:00
xlinkxlink_xchanchar255
xpermxp_channelint unsigned100
xpermxp_clientvarchar20
xpermxp_idint unsigned10 √ 
xpermxp_permvarchar64
xprofxprof_abouttext65535
xprofxprof_agetinyint unsigned30
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_dobchar12
xprofxprof_genderchar255
xprofxprof_hashchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_keywordstext65535
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_postcodechar32
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_flagsint100
xtagxtag_hashchar255
xtagxtag_idint unsigned10 √ 
xtagxtag_termchar255
+
+
+ + diff --git a/doc/schemaspy_hubzilla/columns.byType.html b/doc/schemaspy_hubzilla/columns.byType.html new file mode 100644 index 000000000..fb4d7b650 --- /dev/null +++ b/doc/schemaspy_hubzilla/columns.byType.html @@ -0,0 +1,7375 @@ + + + + + SchemaSpy - zot - Columns + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Columns +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+ + +
+Generated by SchemaSpy on fr nov 06 17:11 CET 2015 + + + + + + + +
Legend:SourceForge.net
+ + + + +
Primary key columns
Columns with indexes
+
+
+ + +
+  +
+

+

+ + +
+
+
+zot contains 727 columns - click on heading to sort: + +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TableColumnTypeSizeNullsAutoDefaultComments
addontimestampbigint190
sessionexpirebigint unsigned200
tokensexpiresbigint unsigned200
sessionidbigint unsigned20 √ 
eventadjustbit01
channelchannel_primarybit00
channelchannel_removedbit00
channelchannel_systembit00
groupsdeletedbit00
addonhiddenbit00
profilehide_friendsbit00
hublochubloc_deletedbit00
hublochubloc_errorbit00
hublochubloc_orphancheckbit00
hublochubloc_primarybit00
eventignorebit00
addoninstalledbit00
profileis_defaultbit00
attachis_dirbit00
photois_nsfwbit00
attachis_photobit00
itemitem_blockedbit00
itemitem_consensusbit00
itemitem_delayedbit00
itemitem_deletedbit00
itemitem_hiddenbit00
itemitem_mentionsmebit00
itemitem_nocommentbit00
itemitem_notshownbit00
itemitem_nsfwbit00
itemitem_obscuredbit00
itemitem_originbit00
itemitem_pending_removebit00
itemitem_privatebit00
itemitem_relaybit00
itemitem_retainedbit00
itemitem_rssbit00
itemitem_starredbit00
itemitem_thread_topbit00
itemitem_unpublishedbit00
itemitem_unseenbit00
itemitem_uplinkbit00
itemitem_verifiedbit00
itemitem_wallbit00
eventnofinishbit00
attachos_storagebit00
photoos_storagebit00
outqoutq_asyncbit00
outqoutq_deliveredbit00
addonplugin_adminbit00
fcontactprioritybit0
photoprofilebit00
sys_permspublic_permbit00
profilepublishbit00
notifyseenbit00
groupsvisiblebit00
xchanxchan_censoredbit00
xchanxchan_deletedbit00
xchanxchan_hiddenbit00
xchanxchan_orphanbit00
xchanxchan_pubforumbit00
xchanxchan_selfcensoredbit00
xchanxchan_systembit00
xlinkxlink_staticbit00
xprofxprof_dobchar12
accountaccount_languagechar16en
profdeffield_typechar16
registerlanguagechar16
notifyotypechar16
itemresource_typechar16
accountaccount_saltchar32
accountaccount_service_classchar32
profiledobchar320000-00-00
profilegenderchar32
hublochubloc_networkchar32
fcontactnetworkchar32
outqoutq_driverchar32
profilepostal_codechar32
verifytypechar32
xchanxchan_photo_mimetypechar32image/jpeg
xprofxprof_postcodechar32
abookabook_profilechar64
attachfiletypechar64
attachfolderchar64
attachhashchar64
notifyhashchar64
itemlangchar64
objobj_pagechar64
profileprofile_guidchar64
channelchannel_timezonechar128UTC
chatpresencecp_clientchar128
attachcreatorchar128
likeslikeechar128
likeslikerchar128
likestarget_idchar128
phototypechar128image/jpeg
updatesud_hashchar128
abookabook_xchanchar255
accountaccount_emailchar255
accountaccount_externalchar255
accountaccount_passwordchar255
accountaccount_resetchar255
fcontactaddrchar255
profileaddresschar255
photoalbumchar255
fcontactaliaschar255
itemappchar255
appapp_addrchar255
appapp_authorchar255
appapp_idchar255
appapp_namechar255
appapp_pagechar255
appapp_photochar255
appapp_pricechar255
appapp_requireschar255
appapp_sigchar255
appapp_urlchar255
appapp_versionchar255
itemauthor_xchanchar255
fcontactbatchchar255
configcatchar255
pconfigcatchar255
sys_permscatchar255
xconfigcatchar255
channelchannel_addresschar255
channelchannel_default_groupchar255
channelchannel_guidchar255
channelchannel_hashchar255
channelchannel_locationchar255
channelchannel_namechar255
channelchannel_passwd_resetchar255
channelchannel_startpagechar255
channelchannel_themechar255
chatchat_xchanchar255
itemcomment_policychar255
fcontactconfirmchar255
mailconv_guidchar255
itemcoordchar255
profilecountry_namechar255
chatpresencecp_statuschar255
chatpresencecp_xchanchar255
chatroomcr_namechar255
convcreatorchar255
profile_checkdfrn_idchar255
profiledob_tzchar255UTC
dreportdreport_midchar255
dreportdreport_queuechar255
dreportdreport_recipchar255
dreportdreport_resultchar255
dreportdreport_sitechar255
dreportdreport_xchanchar255
eventevent_hashchar255
eventevent_statuschar255
eventevent_xchanchar255
profdeffield_descchar255
profdeffield_helpchar255
profdeffield_namechar255
hookfilechar255
attachfilenamechar255
photofilenamechar255
mailfrom_xchanchar255
hookfunctionchar255
convguidchar255
groupshashchar255
profexthashchar255
registerhashchar255
profilehomepagechar255
profilehometownchar255
hookhookchar255
hublochubloc_addrchar255
hublochubloc_callbackchar255
hublochubloc_connectchar255
hublochubloc_guidchar255
hublochubloc_hashchar255
hublochubloc_hostchar255
hublochubloc_urlchar255
likesi_midchar255
termimgurlchar255
issueissue_assignedchar255
issueissue_componentchar255
cachekchar255
configkchar255
pconfigkchar255
profextkchar255
sys_permskchar255
xconfigkchar255
itemlayout_midchar255
notifylinkchar255
itemllinkchar255
profilelocalitychar255
itemlocationchar255
profilemaritalchar255
menumenu_descchar255
menumenu_namechar255
verifymetachar255
itemmidchar255
mailmidchar255
itemmimetypechar255
menu_itemmitem_descchar255
menu_itemmitem_linkchar255
addonnamechar255
fcontactnamechar255
fsuggestnamechar255
groupsnamechar255
notifynamechar255
profilenamechar255
fcontactnickchar255
fcontactnotifychar255
objobj_imgurlchar255
objobj_objchar255
objobj_termchar255
itemobj_typechar255
objobj_urlchar255
objobj_verbchar255
outqoutq_hashchar255
outqoutq_posturlchar255
itemowner_xchanchar255
notifyparentchar255
termparent_hashchar255
itemparent_midchar255
mailparent_midchar255
registerpasswordchar255
profilepdescchar255
fcontactphotochar255
fsuggestphotochar255
notifyphotochar255
profilephotochar255
itemplinkchar255
profilepoliticchar255
fcontactpollchar255
fserverposturlchar255
profileprofile_namechar255
itempublic_policychar255
profileregionchar255
profilereligionchar255
fcontactrequestchar255
fsuggestrequestchar255
itemresource_idchar255
photoresource_idchar255
profile_checksecchar255
fserverserverchar255
item_idservicechar255
profilesexualchar255
sharesshare_xchanchar255
item_idsidchar255
sessionsidchar255
signsignerchar255
sitesite_directorychar255
sitesite_locationchar255
sitesite_projectchar255
sitesite_realmchar255
sitesite_sellpagechar255
sitesite_urlchar255
itemsource_xchanchar255
sourcesrc_channel_xchanchar255
sourcesrc_xchanchar255
profilesummarychar255
likestarget_typechar255
spamtermchar255
termtermchar255
termterm_hashchar255
itemtgt_typechar255
itemthr_parentchar255
profilethumbchar255
phototitlechar255
mailto_xchanchar255
verifytokenchar255
eventtypechar255
updatesud_addrchar255
updatesud_guidchar255
fcontacturlchar255
fsuggesturlchar255
notifyurlchar255
termurlchar255
itemverbchar255
likesverbchar255
notifyverbchar255
addonversionchar255
votevote_xchanchar255
group_memberxchanchar255
managexchanchar255
photoxchanchar255
xconfigxchanchar255
xignxchanchar255
xchanxchan_addrchar255
xchanxchan_connpagechar255
xchanxchan_connurlchar255
xchanxchan_followchar255
xchanxchan_guidchar255
xchanxchan_hashchar255
xchanxchan_instance_urlchar255
xchanxchan_namechar255
xchanxchan_networkchar255
xchanxchan_photo_lchar255
xchanxchan_photo_mchar255
xchanxchan_photo_schar255
xchanxchan_urlchar255
xchatxchat_descchar255
xchatxchat_urlchar255
xchatxchat_xchanchar255
xlinkxlink_linkchar255
xlinkxlink_xchanchar255
xprofxprof_countrychar255
xprofxprof_descchar255
xprofxprof_genderchar255
xprofxprof_hashchar255
xprofxprof_homepagechar255
xprofxprof_hometownchar255
xprofxprof_localechar255
xprofxprof_maritalchar255
xprofxprof_regionchar255
xprofxprof_sexualchar255
xtagxtag_hashchar255
xtagxtag_termchar255
abookabook_connecteddatetime190000-00-00 00:00:00
abookabook_createddatetime190000-00-00 00:00:00
abookabook_dobdatetime190000-00-00 00:00:00
abookabook_updateddatetime190000-00-00 00:00:00
accountaccount_createddatetime190000-00-00 00:00:00
accountaccount_expire_notifieddatetime190000-00-00 00:00:00
accountaccount_expiresdatetime190000-00-00 00:00:00
accountaccount_lastlogdatetime190000-00-00 00:00:00
accountaccount_password_changeddatetime190000-00-00 00:00:00
appapp_createddatetime190000-00-00 00:00:00
appapp_editeddatetime190000-00-00 00:00:00
itemchangeddatetime190000-00-00 00:00:00
channelchannel_deleteddatetime190000-00-00 00:00:00
channelchannel_dirdatedatetime190000-00-00 00:00:00
channelchannel_lastpostdatetime190000-00-00 00:00:00
itemcommenteddatetime190000-00-00 00:00:00
itemcomments_closeddatetime190000-00-00 00:00:00
chatpresencecp_lastdatetime190000-00-00 00:00:00
chatroomcr_createddatetime190000-00-00 00:00:00
chatroomcr_editeddatetime190000-00-00 00:00:00
attachcreateddatetime190000-00-00 00:00:00
chatcreateddatetime190000-00-00 00:00:00
convcreateddatetime190000-00-00 00:00:00
eventcreateddatetime190000-00-00 00:00:00
fsuggestcreateddatetime190000-00-00 00:00:00
itemcreateddatetime190000-00-00 00:00:00
mailcreateddatetime190000-00-00 00:00:00
photocreateddatetime190000-00-00 00:00:00
registercreateddatetime190000-00-00 00:00:00
verifycreateddatetime190000-00-00 00:00:00
notifydatedatetime190000-00-00 00:00:00
spamdatedatetime190000-00-00 00:00:00
dreportdreport_timedatetime190000-00-00 00:00:00
attachediteddatetime190000-00-00 00:00:00
eventediteddatetime190000-00-00 00:00:00
itemediteddatetime190000-00-00 00:00:00
photoediteddatetime190000-00-00 00:00:00
eventevent_status_datedatetime190000-00-00 00:00:00
itemexpiresdatetime190000-00-00 00:00:00
mailexpiresdatetime190000-00-00 00:00:00
eventfinishdatetime190000-00-00 00:00:00
profilehowlongdatetime190000-00-00 00:00:00
hublochubloc_connecteddatetime190000-00-00 00:00:00
hublochubloc_updateddatetime190000-00-00 00:00:00
issueissue_createddatetime190000-00-00 00:00:00
issueissue_updateddatetime190000-00-00 00:00:00
menumenu_createddatetime190000-00-00 00:00:00
menumenu_editeddatetime190000-00-00 00:00:00
objobj_createddatetime190000-00-00 00:00:00
objobj_editeddatetime190000-00-00 00:00:00
outqoutq_createddatetime190000-00-00 00:00:00
outqoutq_updateddatetime190000-00-00 00:00:00
itemreceiveddatetime190000-00-00 00:00:00
sitesite_pulldatetime190000-00-00 00:00:00
sitesite_syncdatetime190000-00-00 00:00:00
sitesite_updatedatetime190000-00-00 00:00:00
eventstartdatetime190000-00-00 00:00:00
updatesud_datedatetime190000-00-00 00:00:00
updatesud_lastdatetime190000-00-00 00:00:00
cacheupdateddatetime190000-00-00 00:00:00
convupdateddatetime190000-00-00 00:00:00
fcontactupdateddatetime190000-00-00 00:00:00
xchanxchan_name_datedatetime190000-00-00 00:00:00
xchanxchan_photo_datedatetime190000-00-00 00:00:00
xchatxchat_editeddatetime190000-00-00 00:00:00
xlinkxlink_updateddatetime190000-00-00 00:00:00
poll_elmpelm_resultfloat120
abookabook_flagsint100
abookabook_my_permsint100
abookabook_their_permsint100
notifyaidint100
appapp_channelint100
channelchannel_expire_daysint100
fsuggestcidint100
dreportdreport_channelint100
dreportdreport_idint10 √ 
profile_checkexpireint100
auth_codesexpiresint100
spamhamint100
addonidint10 √ 
appidint10 √ 
eventidint10 √ 
fserveridint10 √ 
fsuggestidint10 √ 
hookidint10 √ 
manageidint10 √ 
notifyidint10 √ 
pconfigidint10 √ 
profileidint10 √ 
spamidint10 √ 
item_idiidint100
issueissue_priorityint100
issueissue_statusint100
itemitem_flagsint100
itemitem_restrictint100
itemitem_typeint100
menumenu_flagsint100
menu_itemmitem_flagsint100
menu_itemmitem_orderint100
poll_elmpelm_flagsint100
pollpoll_flagsint100
pollpoll_votesint100
sharesshare_typeint100
sitesite_accessint100
sitesite_flagsint100
sitesite_registerint100
spamspamint100
notifytypeint100
updatesud_flagsint100
clientsuidint100
convuidint100
eventuidint100
fsuggestuidint100
item_iduidint100
manageuidint100
notifyuidint100
pconfiguidint100
profileuidint100
spamuidint100
tokensuidint100
xignuidint100
votevote_elementint100
votevote_pollint100
xlinkxlink_ratingint100
xtagxtag_flagsint100
abookabook_accountint unsigned100
abookabook_channelint unsigned100
abookabook_idint unsigned10 √ 
accountaccount_default_channelint unsigned100
accountaccount_flagsint unsigned100
accountaccount_idint unsigned10 √ 
mailaccount_idint unsigned100
accountaccount_levelint unsigned100
accountaccount_parentint unsigned100
accountaccount_rolesint unsigned100
attachaidint unsigned100
eventaidint unsigned100
itemaidint unsigned100
photoaidint unsigned100
profileaidint unsigned100
termaidint unsigned100
verifychannelint unsigned100
channelchannel_a_delegateint unsigned100
channelchannel_a_republishint unsigned100
channelchannel_account_idint unsigned100
channelchannel_idint unsigned10 √ 
likeschannel_idint unsigned100
mailchannel_idint unsigned100
profextchannel_idint unsigned100
channelchannel_max_anon_mailint unsigned1010
channelchannel_max_friend_reqint unsigned1010
channelchannel_notifyflagsint unsigned1065535
channelchannel_pageflagsint unsigned100
channelchannel_r_abookint unsigned100
channelchannel_r_pagesint unsigned100
channelchannel_r_photosint unsigned100
channelchannel_r_profileint unsigned100
channelchannel_r_storageint unsigned100
channelchannel_r_streamint unsigned100
channelchannel_w_chatint unsigned100
channelchannel_w_commentint unsigned100
channelchannel_w_likeint unsigned100
channelchannel_w_mailint unsigned100
channelchannel_w_pagesint unsigned100
channelchannel_w_photosint unsigned100
channelchannel_w_storageint unsigned100
channelchannel_w_streamint unsigned100
channelchannel_w_tagwallint unsigned100
channelchannel_w_wallint unsigned100
chatchat_idint unsigned10 √ 
chatchat_roomint unsigned100
ffindercidint unsigned10
profile_checkcidint unsigned100
mailconvidint unsigned100
chatpresencecp_idint unsigned10 √ 
chatpresencecp_roomint unsigned100
chatroomcr_aidint unsigned100
chatroomcr_expireint unsigned100
chatroomcr_idint unsigned10 √ 
chatroomcr_uidint unsigned100
ffinderfidint unsigned10
attachfilesizeint unsigned100
attachflagsint unsigned100
group_membergidint unsigned100
hublochubloc_flagsint unsigned100
hublochubloc_idint unsigned10 √ 
hublochubloc_statusint unsigned100
attachidint unsigned10 √ 
configidint unsigned10 √ 
convidint unsigned10 √ 
fcontactidint unsigned10 √ 
ffinderidint unsigned10 √ 
group_memberidint unsigned10 √ 
groupsidint unsigned10 √ 
itemidint unsigned10 √ 
item_ididint unsigned10 √ 
likesidint unsigned10 √ 
mailidint unsigned10 √ 
photoidint unsigned10 √ 
profdefidint unsigned10 √ 
profextidint unsigned10 √ 
profile_checkidint unsigned10 √ 
registeridint unsigned10 √ 
signidint unsigned10 √ 
sys_permsidint unsigned10 √ 
verifyidint unsigned10 √ 
xconfigidint unsigned10 √ 
xignidint unsigned10 √ 
likesiidint unsigned100
signiidint unsigned100
issueissue_idint unsigned10 √ 
mailmail_flagsint unsigned100
menumenu_channel_idint unsigned100
menumenu_idint unsigned10 √ 
menu_itemmitem_channel_idint unsigned100
menu_itemmitem_idint unsigned10 √ 
menu_itemmitem_menu_idint unsigned100
objobj_channelint unsigned100
objobj_idint unsigned10 √ 
objobj_typeint unsigned100
termoidint unsigned100
outqoutq_accountint unsigned100
outqoutq_channelint unsigned100
itemparentint unsigned100
poll_elmpelm_idint unsigned10 √ 
poll_elmpelm_pollint unsigned100
photophoto_flagsint unsigned100
pollpoll_channelint unsigned100
pollpoll_idint unsigned10 √ 
hookpriorityint unsigned100
signretract_iidint unsigned100
attachrevisionint unsigned100
itemrevisionint unsigned100
sharesshare_idint unsigned10 √ 
sharesshare_targetint unsigned100
photosizeint unsigned100
sourcesrc_channel_idint unsigned100
sourcesrc_idint unsigned10 √ 
termtidint unsigned10 √ 
updatesud_idint unsigned10 √ 
attachuidint unsigned100
ffinderuidint unsigned10
group_memberuidint unsigned100
groupsuidint unsigned100
itemuidint unsigned100
photouidint unsigned100
profile_checkuidint unsigned100
registeruidint unsigned100
termuidint unsigned100
votevote_idint unsigned10 √ 
xchanxchan_flagsint unsigned100
xchatxchat_idint unsigned10 √ 
xlinkxlink_idint unsigned10 √ 
xpermxp_channelint unsigned100
xpermxp_idint unsigned10 √ 
xtagxtag_idint unsigned10 √ 
attachdatalongblob2147483647
photodatamediumblob16777215
attachallow_cidmediumtext16777215
chatroomallow_cidmediumtext16777215
eventallow_cidmediumtext16777215
itemallow_cidmediumtext16777215
menu_itemallow_cidmediumtext16777215
objallow_cidmediumtext16777215
photoallow_cidmediumtext16777215
attachallow_gidmediumtext16777215
chatroomallow_gidmediumtext16777215
eventallow_gidmediumtext16777215
itemallow_gidmediumtext16777215
menu_itemallow_gidmediumtext16777215
objallow_gidmediumtext16777215
photoallow_gidmediumtext16777215
itemattachmediumtext16777215
mailattachmediumtext16777215
itembodymediumtext16777215
mailbodymediumtext16777215
channelchannel_allow_cidmediumtext16777215
channelchannel_allow_gidmediumtext16777215
channelchannel_deny_cidmediumtext16777215
channelchannel_deny_gidmediumtext16777215
chatchat_textmediumtext16777215
attachdeny_cidmediumtext16777215
chatroomdeny_cidmediumtext16777215
eventdeny_cidmediumtext16777215
itemdeny_cidmediumtext16777215
menu_itemdeny_cidmediumtext16777215
objdeny_cidmediumtext16777215
photodeny_cidmediumtext16777215
attachdeny_gidmediumtext16777215
chatroomdeny_gidmediumtext16777215
eventdeny_gidmediumtext16777215
itemdeny_gidmediumtext16777215
menu_itemdeny_gidmediumtext16777215
objdeny_gidmediumtext16777215
photodeny_gidmediumtext16777215
itemdiaspora_metamediumtext16777215
attachdisplay_pathmediumtext16777215
photodisplay_pathmediumtext16777215
profdeffield_inputsmediumtext16777215
itemhtmlmediumtext16777215
notifymsgmediumtext16777215
attachos_pathmediumtext16777215
photoos_pathmediumtext16777215
outqoutq_msgmediumtext16777215
outqoutq_notifymediumtext16777215
convrecipsmediumtext16777215
signsigned_textmediumtext16777215
sourcesrc_pattmediumtext16777215
convsubjectmediumtext16777215
likestargetmediumtext16777215
pconfigvmediumtext16777215
profextvmediumtext16777215
sys_permsvmediumtext16777215
xconfigvmediumtext16777215
eventevent_percentsmallint50
eventevent_prioritysmallint50
eventevent_sequencesmallint50
photoheightsmallint50
mailmail_obscuredsmallint50
outqoutq_prioritysmallint50
photophoto_usagesmallint50
sitesite_deadsmallint50
sitesite_typesmallint50
sitesite_validsmallint50
photowidthsmallint50
abookabook_excltext65535
abookabook_incltext65535
profileabouttext65535
appapp_desctext65535
profilebooktext65535
profilechandesctext65535
channelchannel_guid_sigtext65535
channelchannel_prvkeytext65535
channelchannel_pubkeytext65535
profilechannelstext65535
profilecontacttext65535
sessiondatatext65535
eventdescriptiontext65535
photodescriptiontext65535
profiledislikestext65535
profileeducationtext65535
eventevent_repeattext65535
eventevent_vdatatext65535
profilefilmtext65535
hublochubloc_guid_sigtext65535
hublochubloc_sitekeytext65535
hublochubloc_url_sigtext65535
clientsicontext65535 √ null
profileinteresttext65535
fserverkeytext65535
profilekeywordstext65535
profilelikestext65535
eventlocationtext65535
profilemusictext65535
clientsnametext65535 √ null
fsuggestnotetext65535
itemobjecttext65535
poll_elmpelm_desctext65535
pollpoll_desctext65535
itempostoptstext65535
fcontactpubkeytext65535
profileromancetext65535
itemroutetext65535
tokenssecrettext65535
itemsigtext65535
mailsigtext65535
signsignaturetext65535
eventsummarytext65535
itemtargettext65535
itemtitletext65535
mailtitletext65535
profiletvtext65535
cachevtext65535
configvtext65535
votevote_resulttext65535
profilewithtext65535
profileworktext65535
xchanxchan_guid_sigtext65535
xchanxchan_pubkeytext65535
xlinkxlink_rating_texttext65535
xlinkxlink_sigtext65535
xprofxprof_abouttext65535
xprofxprof_keywordstext65535
abookabook_archivedtinyint30
abookabook_blockedtinyint30
abookabook_feedtinyint30
abookabook_hiddentinyint30
abookabook_ignoredtinyint30
abookabook_pendingtinyint30
abookabook_selftinyint30
abookabook_unconnectedtinyint30
mailmail_deletedtinyint30
mailmail_isreplytinyint30
mailmail_recalledtinyint30
mailmail_repliedtinyint30
mailmail_seentinyint30
photoscaletinyint30
abookabook_closenesstinyint unsigned399
termotypetinyint unsigned30
termtypetinyint unsigned30
xprofxprof_agetinyint unsigned30
auth_codesclient_idvarchar20
clientsclient_idvarchar20
tokensclient_idvarchar20
clientspwvarchar20
xpermxp_clientvarchar20
auth_codesidvarchar40
tokensidvarchar40
xpermxp_permvarchar64
auth_codesredirect_urivarchar200
clientsredirect_urivarchar200
tokensscopevarchar200
auth_codesscopevarchar250
+
+
+ + diff --git a/doc/schemaspy_hubzilla/constraints.html b/doc/schemaspy_hubzilla/constraints.html new file mode 100644 index 000000000..345c1398b --- /dev/null +++ b/doc/schemaspy_hubzilla/constraints.html @@ -0,0 +1,103 @@ + + + + + SchemaSpy - zot - Constraints + + + + + + +
+ +
+
+ + + + + +
SchemaSpy Analysis of zot - Constraints +2015-11-04 - Hubzilla database schema with some corrected cross-table relationships supporting decentralized publishing. Haakon Meland Eriksen. +Generated by
SchemaSpy
+
+ + +
+0 Foreign Key Constraints: + + + +
SourceForge.net
+
+ + +
+
+

+ +++++ + + + + + + + + + + + + +
Constraint NameChild ColumnParent ColumnDelete Rule
None detected
+

+Check Constraints: + ++++ + + + + + + + + + + + +
TableConstraint NameConstraint
None detected
+

+
+ + diff --git a/doc/schemaspy_hubzilla/deletionOrder.txt b/doc/schemaspy_hubzilla/deletionOrder.txt new file mode 100644 index 000000000..dd7355c57 --- /dev/null +++ b/doc/schemaspy_hubzilla/deletionOrder.txt @@ -0,0 +1,64 @@ +xperm +site +session +poll_elm +poll +obj +menu_item +menu +issue +chatroom +term +profext +mail +event +register +item +groups +attach +xtag +xprof +xconfig +updates +outq +xign +sys_perms +source +photo +pconfig +manage +likes +group_member +config +auth_codes +xlink +xchat +vote +spam +sign +shares +profile_check +profile +profdef +item_id +hook +fsuggest +fserver +ffinder +fcontact +dreport +conv +chatpresence +chat +app +addon +abook +tokens +notify +hubloc +channel +xchan +account +clients +cache +verify diff --git a/doc/schemaspy_hubzilla/diagrams/abook.1degree.dot b/doc/schemaspy_hubzilla/diagrams/abook.1degree.dot new file mode 100644 index 000000000..6a7257e5e --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/abook.1degree.dot @@ -0,0 +1,90 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "oneDegreeRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"abook_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
abook
abook_idint unsigned[10]
abook_accountint unsigned[10]
abook_channelint unsigned[10]
abook_xchanchar[255]
abook_my_permsint[10]
abook_their_permsint[10]
abook_closenesstinyint unsigned[3]
abook_createddatetime[19]
abook_updateddatetime[19]
abook_connecteddatetime[19]
abook_dobdatetime[19]
abook_flagsint[10]
abook_blockedtinyint[3]
abook_ignoredtinyint[3]
abook_hiddentinyint[3]
abook_archivedtinyint[3]
abook_pendingtinyint[3]
abook_unconnectedtinyint[3]
abook_selftinyint[3]
abook_feedtinyint[3]
abook_profilechar[64]
abook_incltext[65535]
abook_excltext[65535]
< 1685 rows0 >
> + URL="abook.html" + tooltip="abook" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/abook.1degree.png b/doc/schemaspy_hubzilla/diagrams/abook.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..1e68fe2a6a8743572450c2047031817d30645ed5 GIT binary patch literal 16073 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­af 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 RfrsD(3bHCP1=4SP{vWJw8ukDH literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/abook.2degrees.dot b/doc/schemaspy_hubzilla/diagrams/abook.2degrees.dot new file mode 100644 index 000000000..593614582 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/abook.2degrees.dot @@ -0,0 +1,431 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "twoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"abook_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
abook
abook_idint unsigned[10]
abook_accountint unsigned[10]
abook_channelint unsigned[10]
abook_xchanchar[255]
abook_my_permsint[10]
abook_their_permsint[10]
abook_closenesstinyint unsigned[3]
abook_createddatetime[19]
abook_updateddatetime[19]
abook_connecteddatetime[19]
abook_dobdatetime[19]
abook_flagsint[10]
abook_blockedtinyint[3]
abook_ignoredtinyint[3]
abook_hiddentinyint[3]
abook_archivedtinyint[3]
abook_pendingtinyint[3]
abook_unconnectedtinyint[3]
abook_selftinyint[3]
abook_feedtinyint[3]
abook_profilechar[64]
abook_incltext[65535]
abook_excltext[65535]
< 1685 rows0 >
> + URL="abook.html" + tooltip="abook" + ]; + "attach" [ + label=< + + + + +
attach
...
< 3105 rows
> + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + +
channel
...
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + +
chat
...
< 10 rows
> + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + +
chatpresence
...
< 11 row
> + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "dreport" [ + label=< + + + + +
dreport
...
< 18 579 rows
> + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + +
event
...
< 412 rows
> + URL="event.html" + tooltip="event" + ]; + "group_member" [ + label=< + + + + +
group_member
...
< 142 rows
> + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + +
groups
...
< 310 rows
> + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + +
hubloc
...
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
item
...
< 337 583 rows
> + URL="item.html" + tooltip="item" + ]; + "mail" [ + label=< + + + + +
mail
...
< 239 rows
> + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
manage
...
< 10 rows
> + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + +
notify
...
< 3528 rows
> + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + +
outq
...
< 3660 rows
> + URL="outq.html" + tooltip="outq" + ]; + "photo" [ + label=< + + + + +
photo
...
< 15 888 rows
> + URL="photo.html" + tooltip="photo" + ]; + "profext" [ + label=< + + + + +
profext
...
< 30 rows
> + URL="profext.html" + tooltip="profext" + ]; + "register" [ + label=< + + + + +
register
...
< 30 rows
> + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
shares
...
< 10 rows
> + URL="shares.html" + tooltip="shares" + ]; + "source" [ + label=< + + + + +
source
...
< 20 rows
> + URL="source.html" + tooltip="source" + ]; + "term" [ + label=< + + + + +
term
...
< 68 980 rows
> + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + +
updates
...
< 30 rows
> + URL="updates.html" + tooltip="updates" + ]; + "vote" [ + label=< + + + + +
vote
...
< 10 rows
> + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
xchat
...
< 19 rows
> + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
xconfig
...
< 18 rows
> + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
xign
...
< 10 rows
> + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
xlink
...
< 14 105 rows
> + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + +
xprof
...
< 30 rows
> + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + +
xtag
...
< 30 rows
> + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/abook.2degrees.png b/doc/schemaspy_hubzilla/diagrams/abook.2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..8740e9870eaabb324390e8a1458c14bd6e2b561f GIT binary patch literal 80238 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

!00skj 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 Tov~gS5%AGc*M(K9K8*Y?OYQ6= literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/account.1degree.dot b/doc/schemaspy_hubzilla/diagrams/account.1degree.dot new file mode 100644 index 000000000..a7e7bb923 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/account.1degree.dot @@ -0,0 +1,49 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "oneDegreeRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "account" [ + label=< + + + + + + + + + + + + + + + + + + + + + +
account
account_idint unsigned[10]
account_parentint unsigned[10]
account_default_channelint unsigned[10]
account_saltchar[32]
account_passwordchar[255]
account_emailchar[255]
account_externalchar[255]
account_languagechar[16]
account_createddatetime[19]
account_lastlogdatetime[19]
account_flagsint unsigned[10]
account_rolesint unsigned[10]
account_resetchar[255]
account_expiresdatetime[19]
account_expire_notifieddatetime[19]
account_service_classchar[32]
account_levelint unsigned[10]
account_password_changeddatetime[19]
< 02 rows0 >
> + URL="account.html" + tooltip="account" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/account.1degree.png b/doc/schemaspy_hubzilla/diagrams/account.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..52da103fc409010ce502c7b8870baba154d3f463 GIT binary patch literal 8695 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 "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"account_id":w -> "account":"account_id.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "mail":"channel_id":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "mail":"from_xchan":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "mail":"to_xchan":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "account" [ + label=< + + + + + + + + + + + + + + + + + + + + + +
account
account_idint unsigned[10]
account_parentint unsigned[10]
account_default_channelint unsigned[10]
account_saltchar[32]
account_passwordchar[255]
account_emailchar[255]
account_externalchar[255]
account_languagechar[16]
account_createddatetime[19]
account_lastlogdatetime[19]
account_flagsint unsigned[10]
account_rolesint unsigned[10]
account_resetchar[255]
account_expiresdatetime[19]
account_expire_notifieddatetime[19]
account_service_classchar[32]
account_levelint unsigned[10]
account_password_changeddatetime[19]
< 02 rows1 >
> + URL="account.html" + tooltip="account" + ]; + "channel" [ + label=< + + + + +
channel
...
< 112 rows17 >
> + URL="channel.html" + tooltip="channel" + ]; + "mail" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + +
mail
id
convid
mail_flags
from_xchan
to_xchan
account_id
channel_id
title
body
sig
attach
mid
parent_mid
mail_deleted
mail_replied
mail_isreply
mail_seen
mail_recalled
mail_obscured
created
expires
conv_guid
< 539 rows
> + URL="mail.html" + tooltip="mail" + ]; + "verify" [ + label=< + + + + +
verify
...
0 rows20 >
> + URL="verify.html" + tooltip="verify" + ]; + "xchan" [ + label=< + + + + +
xchan
...
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/account.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/account.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..bddf9a0f50f3a41e938b5496b4e0d2332948fc99 GIT binary patch literal 21949 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 + addon + idint[10] + namechar[255] + versionchar[255] + installedbit[0] + hiddenbit[0] + timestampbigint[19] + plugin_adminbit[0] + < 020 rows0 > + > + URL="addon.html" + tooltip="addon" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/addon.1degree.png b/doc/schemaspy_hubzilla/diagrams/addon.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..e090c57a4dffe50c18f7b22325517052c3c31df6 GIT binary patch literal 3440 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 "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "app":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "channel":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fserver":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fsuggest":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hook":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hubloc":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "manage":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "pconfig":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profile":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "spam":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xchan":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "addon" [ + label=< + + + + + + + + + + +
addon
idint[10]
namechar[255]
versionchar[255]
installedbit[0]
hiddenbit[0]
timestampbigint[19]
plugin_adminbit[0]
< 120 rows0 >
> + URL="addon.html" + tooltip="addon" + ]; + "app" [ + label=< + + + + +
app
...
< 14 rows
> + URL="app.html" + tooltip="app" + ]; + "channel" [ + label=< + + + + +
channel
...
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "event" [ + label=< + + + + +
event
...
< 512 rows
> + URL="event.html" + tooltip="event" + ]; + "fserver" [ + label=< + + + + +
fserver
...
< 10 rows
> + URL="fserver.html" + tooltip="fserver" + ]; + "fsuggest" [ + label=< + + + + +
fsuggest
...
< 10 rows
> + URL="fsuggest.html" + tooltip="fsuggest" + ]; + "hook" [ + label=< + + + + +
hook
...
< 141 rows
> + URL="hook.html" + tooltip="hook" + ]; + "hubloc" [ + label=< + + + + +
hubloc
...
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "manage" [ + label=< + + + + +
manage
...
< 20 rows
> + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + + + + + + + + + + + + + + + +
notify
id
hash
name
url
photo
date
msg
aid
uid
link
parent
seen
type
verb
otype
< 3528 rows10 >
> + URL="notify.html" + tooltip="notify" + ]; + "pconfig" [ + label=< + + + + +
pconfig
...
< 2719 rows
> + URL="pconfig.html" + tooltip="pconfig" + ]; + "profile" [ + label=< + + + + +
profile
...
< 111 rows
> + URL="profile.html" + tooltip="profile" + ]; + "spam" [ + label=< + + + + +
spam
...
< 10 rows
> + URL="spam.html" + tooltip="spam" + ]; + "xchan" [ + label=< + + + + +
xchan
...
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/addon.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/addon.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..bd84d7deef6ee0684b5f22c6ccf919c12e1156c1 GIT binary patch literal 24086 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 literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/app.1degree.dot b/doc/schemaspy_hubzilla/diagrams/app.1degree.dot new file mode 100644 index 000000000..83cc21d71 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/app.1degree.dot @@ -0,0 +1,47 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "oneDegreeRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "app" [ + label=< + + + + + + + + + + + + + + + + + + + +
app
idint[10]
app_idchar[255]
app_sigchar[255]
app_authorchar[255]
app_namechar[255]
app_desctext[65535]
app_urlchar[255]
app_photochar[255]
app_versionchar[255]
app_channelint[10]
app_addrchar[255]
app_pricechar[255]
app_pagechar[255]
app_requireschar[255]
app_createddatetime[19]
app_editeddatetime[19]
< 04 rows0 >
> + URL="app.html" + tooltip="app" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/app.1degree.png b/doc/schemaspy_hubzilla/diagrams/app.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..45d7dbf24700f80f09cbb81f57150d60ac6202b2 GIT binary patch literal 5263 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 Kx>Y(ZvHt~pVQ9Pn literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/app.implied2degrees.dot b/doc/schemaspy_hubzilla/diagrams/app.implied2degrees.dot new file mode 100644 index 000000000..3539020f7 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/app.implied2degrees.dot @@ -0,0 +1,214 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "impliedTwoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "addon":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "app":"id":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "channel":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fserver":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fsuggest":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hook":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hubloc":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "manage":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "pconfig":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profile":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "spam":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xchan":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "addon" [ + label=< + + + + +
addon
...
< 120 rows
> + URL="addon.html" + tooltip="addon" + ]; + "app" [ + label=< + + + + + + + + + + + + + + + + + + + +
app
idint[10]
app_idchar[255]
app_sigchar[255]
app_authorchar[255]
app_namechar[255]
app_desctext[65535]
app_urlchar[255]
app_photochar[255]
app_versionchar[255]
app_channelint[10]
app_addrchar[255]
app_pricechar[255]
app_pagechar[255]
app_requireschar[255]
app_createddatetime[19]
app_editeddatetime[19]
< 14 rows0 >
> + URL="app.html" + tooltip="app" + ]; + "channel" [ + label=< + + + + +
channel
...
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "event" [ + label=< + + + + +
event
...
< 512 rows
> + URL="event.html" + tooltip="event" + ]; + "fserver" [ + label=< + + + + +
fserver
...
< 10 rows
> + URL="fserver.html" + tooltip="fserver" + ]; + "fsuggest" [ + label=< + + + + +
fsuggest
...
< 10 rows
> + URL="fsuggest.html" + tooltip="fsuggest" + ]; + "hook" [ + label=< + + + + +
hook
...
< 141 rows
> + URL="hook.html" + tooltip="hook" + ]; + "hubloc" [ + label=< + + + + +
hubloc
...
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "manage" [ + label=< + + + + +
manage
...
< 20 rows
> + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + + + + + + + + + + + + + + + +
notify
id
hash
name
url
photo
date
msg
aid
uid
link
parent
seen
type
verb
otype
< 3528 rows10 >
> + URL="notify.html" + tooltip="notify" + ]; + "pconfig" [ + label=< + + + + +
pconfig
...
< 2719 rows
> + URL="pconfig.html" + tooltip="pconfig" + ]; + "profile" [ + label=< + + + + +
profile
...
< 111 rows
> + URL="profile.html" + tooltip="profile" + ]; + "spam" [ + label=< + + + + +
spam
...
< 10 rows
> + URL="spam.html" + tooltip="spam" + ]; + "xchan" [ + label=< + + + + +
xchan
...
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/app.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/app.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..e28451d2c372a0e59a32b7a1153626624f14eb0e GIT binary patch literal 28776 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
HI|WE9@5)`Kd)(|HXIy`9SBG}D+C_kMuY z^uBIkC$|eAN&tH#A$P;OpA8$b(MPu?A(6m~?ec!E1WoZ+NrCP(Jvr;FX0}z_v412l zX>ps=+2`(Giw8tUFO|LjZhjW7eIR9WH$JCkM`>&_nZDba1W!&c&)jDQwYjRtt`unc z^DV5`7Du8{n>u0=De%v}2kSxOTp~3;9eW=XhSrU%szRC51z=*WW29ok4OY<6<}`zo zgBFLovQ%uz<@kj@SWjkaZ1Cg$u0URMFuk#9GYL$`^@cb(|AZgMoMc9dPD9s{mcbTd z^8R{oTkw(ZSaLXvLDsFSAXuKR%t+b0gAAMxfx`&qYQ?J1$aEHb_-pcraHN_5n(3Ry z(bfTMYx=zsF{CklbjY0^Z5h{lLmeREw{p&}>aEB9HI!yi8;`e9W5- z%kC_M^>TN}AnfB`=#Vl@MR;STch}zAcR$JSifLffebN(S5)XUKz+7v!`^W-*gA;{Z z(I##5LF4dFA2GI9hR)R}1ozk3U&gM5(=L%~h)hFB@wsN^K6U6#uXK-ye1omy28II@qCM=^_+v8I9G2U?Q9h3+`U z&cl{yZPXfW1a(;N>j@-;mA{p46}7R=VKp)Pec-jERMeS>9waNs- zOxKNlolo!8{rnHJZ$nR~wO*M=!wFi~9$@US`~H(h7!+-^*CI zGsO^N7kTz2*D;2KX<(s#_aeDb%R{ISQ=V1kYJNNgC)+|3R~n zt?2}BZh#k<`$v^B zdPX^S*M!QmVwY1i zo}#!%zTgtL3z;%omlj%=j|iQ$@o$&IBMsuuhD6@rUb9Oao4tucyYY9?@g;`OF3pwd zHkDT>qyE0yR?aSD2>+*NgtpHPB z5zd9zI`OsFna^IwcSvWAiG;#oq)2p+8@~63ESIzEqI182UIL*s3`8Qbk5`$?&5*@% zmN+kq^xkvfeM1VDpG#PX@WH#)&2zWR-B}&= zLt)=v*}ZPghMlWWP-DZ6p!(*h6d(-;Y>WxmSCwzbG#AH^J|aUj(TU0E4UrAlhJj&; z91ewTt|t8RmzQBVVjHj9BQZHS0r$vGE{CYo_?~865TJDV6JK->c26+tmwpj3IOf562&*w@+3QxRt6Yc9R#TEDQk-7DhXBtdXWPq&^`NybdiA%dp4u<9?q z9d_17i?aBs;o-Rqrx8AwAF1^7<5WOIRlCH^?H`IgPx>-U<4+SiDKMH!e11i(*c@73 zuMse-9?9aTIJ;-&Em1gS)Jn$e*Mv2cOPHE-9ak94~4>x?Hg}> zMx_>hO{>r9?n0mJ7Fe3k>yYt zO~Tw~_k!TpBU+uK@}^MEE5>~!VVkpLth(SgB`#c|*aGsr&aO`yN7h&IfCCLcCF35d z4`m5|6T-AoJxWA7Tr=F{``ENyof8E&qA+S+3E}xkRBF(>bMr*Up9ljns^PD#v|exZ zB9L^SmPhHue)!Ib4-qCGq!U1~M>7nL=}&`A#w1eMT>#sL&Mm|dDtK#V-`_Z zRC{geG`avOrh@g@v2*Ay!8tOdWlO663^8@$#WsGNUWE+2xTf z)Zt^?E_(=(UZ-bd^p|w1cv~cRPRGG`;PZ*v9mM8;5}Jo=+Qvx*76{Vd7)|g78%0$& z*<9ztW2g;c9fH8aI|2a1!oRrY`bO5oo%|Z3D8kCXje4cS`wenP)ob4V@ImVniqae= zh>5reJ|b#o;8#Yol30rUDGl*N7QXag|DaDUDT4mUb(zST)-w;!8pW{X99|+H1q%Hq zdNG%kUUd;k1hHj=V^rKS=XztO8R15?@;9^tmMiCw*W>|garI(4Y)_-{(K^$0PMzM~ zbE*8J;oTH-I8W$bmIBUCbOmygX&tyl@7e^=q4URqf5RtxeU#lv^3DFGfF$M-Ux zu^MX-PKEK;v#HEI-)U}DqmV{pUp4qPI4&xS$_erdUyBgKWHml6K=uJM2%xKu(GVFL zO@KEp3)rs2vE>B)CR>jX)0kc|%6Df;Fn{4#SR;Tafn&2`LlgiU$>3O*MJndkNj-@B zl_88?H9)5`t-k0oF>De4yxblP8VNDOv7>Gsq=OI2;J#zNxfz6vQ z^^30R!POc{5{&&%jB3C8CG%@*Pam>3E62lYLAdbX;tzDU6Nr)UWKAo~*KG5JXv@(U@98Z+&kzKv0g2`D0b&H-bt8rA6#SEKka-7t{UcXzwBv|*B_#x(yv zH|WJ-91h^t;l-xd->Xl2-sg$5JAnN7$1zy1ZhXuK^H0o;f<26$S~sr;9gJ1QqDz#& zeY5h`o@JO^s1|fh{WP8c_JV0l5;;@V3z)y&T|uIAU@d5xgXrc;~Shg>Uh znC!)sy2)G3*79xSdl);P&+`#m>Pl)gzJNI6E7BX8_unotd-k9yjMJM%}-|--yz5ttAQKlTwDR*)@q_S6ZdY;Y;tp z0qk%X6tMX`W+q8KCNCNhI)u>L7k}SL6j3f8m;e@W&m%l==usR5`#<*|?5hEpQmVw1D z-Y;R-+yweYjG%iUW#zV`^7WU z1V4ejGL@k^00+k^^byIJTwZaB!8|oi?67D_&=lUO%Dg+|RS|R)hi-c_taBI3&s+Vw z;6fr6cC>#*I1AWX>`d;2Db&P;F6ySSqa4$ON&GVrI~i$$L*?6P??=tWo-B<>R%y=n#j|w zD?8qvo*yzRoHw*fN3n%aV9MRA5&UT1YP2*5)hlyKKP)U`yM=e!KiL}hU-?Wgd%XtU z?{fI0;I<|kg}ljYPGdd_+0WV4bsImQ-T6_|0BRV@I^Gd$S#S_NlcH9u297|9%53)^ z^s$g@H+s^ZXobJRoCxUYqeVdshi5o8GL7abfGV4z7{CWNO`d)=e^D_oz4a;)_A*>8 z*5NqaXNg1aj(v6!rdS0Y=zZ!;ca;-b}>V{3CSw;`|@hU4Nj8;-@BB3ucFza2`oa&ctT zfJFnt`@4srMRst9E9#}Z|H$pQ0yBg^#Ulns0QE0%JS}3WsMg!#SYfi;g(I9J+B2;i zp>2aDpZ9vORr+Ll1^MoX=40C~%Py-TO?HaK)A-uTSi)qUe2-A@)r-$SdU=SBMPHaA zN2m~j48>VR`4kFEh}lCGb8w}Fj?x#w@H93hgHFKSS$x)A{8_!b=8`|s9(gvN z$TO%;Ax@upuz!6Q{FTaxbK+Rh z(cAtyTVM=z<$}_%u%zU4q;dD@t;VqX6(3~2+HkB0sX_*+m&LGiVVot-C~VEmgTc5U zvVQdEjI8ffod$E@?8#|RJpbx#@xF@O$d|UQJvZ+dm{#9gI{L~u!f1vXy(0T6V6Jbz8^7$@p(@ACtZ{rNXs$)MUt;hw?%_cafacq8}sI5(^(|o9fsC6&DH}Bi1g6S_$%+wE&$^a#IGNaPkB+GGjJute zvlXcyeSin<(k$wR7P$Qk?TI;P4o;8zq#;5J2aG=2R$7{Sfg)O=GaJ?{IY2P+GIrTz zTzR?c@l0HXKU+j^#$flSX@Oq*$9INvn1S1N9u~CdpPxyaE&g z7fT}3;&o|4!8tS%%Qr8wuHl~o#r9r=>CQ=Jg}(1I{F!|8ij;MK_rQ~rWl)m+fd7U} z6Oyiai5Zl1R7nxhDHuB|{JxeWQ!mYyKd_>_Q+!vk#+s`SUVGul_`_l;8wjIHcdQ3&Aj=>wC4w$al zID9};0L!?zQlqdwDN(5~uO@px$%sGv@_zEn;pbwfLsA^!G8YVUwRJz?C}~usMm6IopZ?)O(nx8(J=KzXTw3^*md3tpU0&&3JZzojX_TXk!&UN z+?^*l!hJTZqXkM>nrNeD+tz1c>GR~$oWeO)ALZ_%aYs(he({tprD45T4zZy5;1lP7CtZ8`tS#=m%<8? zZUny5Boh@_z+onraI+%fs{^u#8Nsxg^9qx+_TIZm44* zv_$M$Wv~QCcxSoB;N-6?DgnygAIW0eUh09ew|w5O_qCNtB*;fnJn@b)!wVLEYsmYl z(_o1LlpV&IstBRGtWc7zXg=g3`-+V<>}ropQv1s$9D3YC z_yb>iKEh7|_fc{qjX6(|T$iUe4{V+V`S;5RJ^|$=(iXZ^P-6U}H^dwbb2+VWQozE% z6;Q6-Pbw{AJEvBAvMJx-#3WQ#W0K6FEW1w*x4X`8JSh$49@OaT|Ag=VI3!5i26Sb^ zCR8rh4hF`RULCvfW=3BgbkBq$62u_awcxp$vvV%QEh9EJwE5RD(s+3YoXwb^1mIaa zgr!Aga(v2{c)^ZcYN30zB+9?nxb8eHlvW=oc7l zO_3f7e6fHYVC)(cb~ThdurLXXv#$u&CgF`qi-^?-mHqcD0R843m;3|Z?`mEOl?ma! zmS?Hr!*}-r69eL$=cKh9L=;qtjKnBJxRWPt<;S>ZeAdteUFBSUUlDctvOMy$hDM(i z6r-b$$1ExZARk+=JdG^M+TGJ0SL~PoTh7w;6VqxBUl^_)6B+&@5F1|F&>e^~h_nA& zA=h{Jyq=^8-3Wo}%cPL8B016&c#~lq<$gUO9I3dBZRG5fJ&Um;b3=0*b7OM`6ih(i zkLsL%6!(`?YT-{H`@E82$%MtJ2-jk52qd91j?HBth6(UW3#P%gQi59?arRcwbIzOx zuCuGOA`jsAB#74y@PTLf_qp+pyXG%If95Z=@xSkZ0{XHF*M~;9|FQJlIO*KN3Oh#} zfqW_=Migm1zk9P%G^ud>0?*A<=(a2`6$1F(qIw*BX@_N+`sCM+`j^-7PSn}KRVVO( zqb*Y6!MZF#1xxlVU7G1Dn71o4%i4CWss_})`T$m?Y2zg`IOv!^-WtEnc7A?zf+4;ZDpjndYi8fNA^B5zLD#jRW< zpxc|0M>PI0WmTY3gWIYsQ!#c!QxPncIKp9BSLxTN3OMGL`#GU6E2qaku}OFuI$mQQ zaL`wq`&E|r2%fsc)OYG8LRbwQxYn#b@}ja2rKhYvKR zQ{Yjz%ZqXUEY+{30%5Xfz<;jzFRa-f=igaX^XVgmwn=id@rfA3lk?S?2uz7IVE~*V z9TGY-{Q?Fb+5vpklPsAn8_=T5+y4R+_d}JSPg4)JN7$DkHjO+*QXy;UPMeJH_v@Bc9Eq}~5 zzj~IaHpi_%s!E@SI)AxU1{vI!=*lVR%i$ap@qNbhY2&k@2xS=U#h)7s{x1Py)I&dM zm(uIs#QIF_Fu7j~gU$Ms04>QNW9m!M#=BXr`ky@RVn5!CnO-t&-2c!l2B&Cr-E-|O zqTO{^{&4kRKoF4V0N|KCyD(kiM&5$_$X>gLr}H(TVkDXI=P#flgGT!5R|!PkdkopU z8Hm@d!X|##%B`!bOg%q*8EMR|dOVyX-bZBPprZ>RL&)^fAC>JO`*n0r_scmM^Iz9B zIPR6(TAW7eEib`}m_X|mI%VL@jdJn@VUya>l15kZx)-2|d^iFva8X1e$L+T31>vN5 z)q&fw6b0*NCGBX#;?M(S-$AaVb62SK)l5I8mH3T{=r)mJ(zp>6BFbRBhL=lme)Q9G zTD9Y(V)%&L4D$^6Wk%c}X#sf{+a>rLmB3Gf#JFi<26+9Tjvi3gQ%u6=d=UPpDi}ak z&eDGNmgU3P`6FH=NF`VCiofw^UToygwElKFOe(}}AVsa5#kc)^KEwaiCi1z7zd&tUXyF)>uqejv%Rhzcv==2#tP0RO zhWW2FZP1Z&<@XKp<;d;OUa*K(ZUi>Sa(Jq&d%p5~rJv6&3VsX-s4S1m1f7IT(%}A< zq3LhhIkAi%EzDS6_egbYJvGbuO1|^Z<#wlhU&T$hnCdGPz(P^Cs%Z1TI6{fIr}Mp! zaw}}Z61QS;eJ@!kM~yYYoJK^T&s*P56~+BUa>A>i+M_>Ur)jSIx2ZTeKH>_;X-(fa z7jt3_zemj^@ilj`79{0X73q|=NuE?!DU;m8)lo$$%58qqcmD8!7MNlB(=x%EI^-JA z*7H7mZ)lMvY#V05h=^_nLIMF+VfD#P?EJ`JHY)S@^#)N1P25Uxo$XRg2c=|R#eyB` z{I9`(M$l+~N#T*^ZBgj=Su2p(ZB)F)M}yZ1r9+!Y4(Qc2G?{Jqq4|qe<20~!ky<=w zm!91F=K8ShNS0m6?(6ya632&KpI%8QL8}z2X4{W?-+Xb0H}=3Mlck|V0kyMNYK*Wd z?K!r`hTn0ml?=;MxC#H~R)hSB!UqliwcU_RzN)?*(fh_MgN2^;Du87Lr}Gs$;oIXJ zSa0a7_jmftz&eawTDTAM9@^$c!Ll+aeZ8Pqxw;)~MBK9U42Q3_)<*{3Fv4G0D!u+U;akIOSR0C!OWQQCu-o72ubz&{a9J=LRuJ{s-DungSfn!a8TFkV zR3MrFb)YDaC%3hHD+f-yfG?5A|Nd%`gT55qvw*+R>RUf*>IqxOD~CNY*$7+4HO`~# zBayh>0lLp8zH{%E#2#2{m> z5?Pp!oU7p_>j1k0_QmtNX|Y>KD|^nHZH0R! zE?gONut`&YCOu< zjxhD`Ua?m!Iy9tY^cW|TPxjKj(ryI`W5*osH4?dg&-u5YipgX(IB*q;6EugvoyKsm zh1K6WNC>Yb+x8v>8yk}0-hCVtcX9aN(sG0Fd+xITr?m49YAOobybYxZ7(q}#1a2q+ zLJ_2cLV$!`LT>^hN|hQwiUpL=36M}ldXp|lM=1g#y?5!o_r6!ZGV|@u&g{(onVXw) z+sQrWyzle;UYoLXz`$<3xM**M`g!s7a0K5qw{~!k$B<;I5$H+@fUvK;B9He|6=%o( zOdfP&Z($Oy>n$=C-g?(-V%c!|QwN6qldm_Zc>(%;k{n~tgMEGMW{5_4i;fNw4RLvj z-{c@`bgGc(RzYM6ho95;ID@xiXPR%F=H6$4Zur;Hw-Qrb6YoSu2e)9W~VF=5}6 z?(~zJ|DpBhLD&S2%AaY<0{D--R{GJJTy=G}lij@Lebauct$mo^QPdj8QM_Tk8?PeE z%_k8}8?>ksW|Gn*A59I;X8~s?hKwQgh(%tM4B!nB|9gVkiY(t(`ZXZt@#lTLYlHG8 zNbt;_M~(?9K>GXUn~^N=VYN=*^FTs#UD#G#T}4ITt*z5u=VFO-V4|mVDfDIf4{l#{ z6)lkbUVlzzDfddj)lIAR5Mc27%hmv=xOv8Z$EJ zNZKAJ=Vh@oU1V%)GwoX^LM>hzol`#+yX311skl!Z5!7WG>c(sXsgg|-NOAruh4OPN zV*9#QF39%JR|SJ^!Fjr?)MSj>ugRnWCP_(AmzJShn&E!gK7X6E!)1}An{tt8pk?h< z9|=>~Y(x^TnXA02Av%toxYExyx(DnRCZU5QG~{Kqx#L{Coa zXD&$T11!<)UDpxz^`!^sPv|*Y@TETo*|!vvqr$ADYrCon?Yw;t${_yeW`D#{apA#C z^TG=r9Pt^;o+_kCiD$P!noSyk!T=4|Ox9D=$MOy+y_v~JC~*8{)c*lp4gu~teE1+cuD&aU%i4Wn ziqi9SY^vy&Z(GOsiyd6<4A_)|2u%j6P4++SGrqi*YPoR#3a!eMVx_-n|Hm#B2u7nn zVVr*KxU8@Sfhht%qYCatDBhd#hPaJ=-?dh_B6y&y-N&SMT8G|Q=$4t+4@lzG*iRp2 zG^AI6l7K3@8{&}&mGIRRAOJ5(z6S5Im-ErlAm#F>wYkmtd$A;zqmNlRx!TApyfJ;+W_R19OI@%Z zh)eyuJO1L!lj5Mi7ko*?IKIKO-hwuWn>-o*wnSJs&`L*ayzTe+qnWNgcJP8u#3;%R zN2!1+j=yKpJXg%HHo{n>_e`#bui{Ri-VLoeHB6erGYWQh-TsIXuOam~l%E)BPQ^|8$B1@;s)>dEeuSyWzhLO|< zn~lI(YN3Q8--`dR7Ips#TnD1HM}CtMNBrj4bUH0l!dTs2<49g5%G{%$Bpxte@1NV8DRe`*d(f1@==X$4E7t}V!d(qrqZ=(>eku$uXJAYJ zap0(kk;7%t^~|ghEt(|1;KJ^3R_MoFP+bH!uK)3J^7ppbkMLHvq(m8co%2+@1MW2J zan$LnHr!=b)3YB!^M?NQkt}@-8cO6{*hNVXS}c28xP9b@PF* z%7(8Jd0hMA%(%j#CYM20tfoAzBM?d>#|XHM?-bEuyaN(IvRS#5qW_Z zMu{EiLUZr#TflW4hgxOtvoIILrEUj7TGp!xYq*};lf&X15xuf32f36J)lcfU#?oRg zH8N|mzLm}&5MdRWul~H!G#j|%)~Y@6L6eL71d!fu&Ket4XT{FmiwI)T|3$gA z%W$E!E)wuQ#~LJ53BGbFE2z#PU2q&~@_q0T--zS7O@u;oR+-ZZ@f->}V)7~}Yj~G| z<34?Q?%p$NAfj_Ypg{QJN6v!5>}`Xhc>~Ce-VvlsFh^-iore<}&W18GXvlOe7oO9D zMLz6TOxYpS{Wcwi@?!5<>aM0_5M979gSjVthLGuHKh5z14Tw_B0L=Wy@FN{9E7a^r z%FE`oQ|=Sa>3j0r?+!baPcQhz826jJQ{M?genvE!`#Q@*TOn`&uD@$BVq6Y>AeM|f36qUx*?{p2$(8i^NXdXCD^|;;jCgypH7I&*2Tofr}szw zL?LXdhz$D24B)C2OCf^WYQ%T@Eljz6{v=CYR_=6v(DB{nYd3B7w0TTp!k%i&%- z8;b%Vz=tRmag@7$BGo_`>-|>odHD1h=K_ZaN>J1si_0=F-l|H7#=;<}>=fWitiwt` zT@02tFQLt|kEHI^2H;9Bocx+Lafhc=@db7UAN&l8Z^f%=ec8=C2%BB_+=Mdzbo1NQ zs#)0l3RhwVd;Y`YvzjwVyzk@@v|;|&h`JhYZ}YDqpR+dJyN`4!&iG2=QndLxl0!w$ znIAu_2F&Tb9E3ekEl|fL#XGGjY|`Fe3*-c8*>5Pg5E|Wf&TEI`ZV%q==W0{>&=zg+ zHU>paqmVc)SlH+i+{ezmjT>5)0SLA|YAH&kUOJ#yhFF_veD`hG4|mdH87r&k$RqH46m(teROjtp*dJq#ajeRLX3jcE8B8&>9!AV$=@oWi5jlG ztnrZP9_$HxYNF_TeENWiH@z znu>z7*JTsU{nE7CUJ2ZtvVAW7aairCpiG3Hvz+-8+#<%pMdnn5QM!W#aV5g9JTBXk zzoPyY&(@s8J63Yk*SmYEb;NbLy+Rs{mv}mE#(o7i%70o^SDx zF}RQ%H57Lw6@4YFl9hbtljcflrv#)qQ}dYyWyAyQEvnX~{{GLl7^MFK z?p5|3Pb~q-Jb4cMGwhtAjB#$g8fy1NxCb{$^FS&uwAV_`DB~n<MD{?cjC8^Nr>zxkQ$%;qTeX&2#k3<8k5zs3rh!`rvXs6A>Phr<5>LQL>9(^D$I=%9&70@;vIkFLJu>rl&aA%YrSh8%G-T?H zmMJAhU>JsGyn?J#D8(gb&bi>k_|Oik86<=KEal)_X>Knk`Y;JZPbO>#30L;nWKv$Fi0Po~^U{D@i8YlWds;fVZ7`+xu%$>xrO3G@_{Pci6lq zcIEPK)vNHGy9wfCGyyqUJahSG+)LNEQMU*v?(SC=6=~|cB>E%YT3sT!anfXDeZihY z-@MF9J)`$dn#*wP*UpiFN)^c*^KXsc{y_whUUig8BGJ~1s z(MS3c<(U*~*ini`8eLCStnX{>B{S#5y$WC}LZV_!1B7gjj6yR4iSEe=9HWGd9Vj@# z*n+I9>@3s_Plp;3dvYVvFYX!bh&h<0Cn(OI!%jZsk}44^4Zya=3c2oB6SoerPe^;~ zqOy`UJWw%Eedp9lar0NG*^@RrD|VikAY)~(f#b6ap_p@dpvyf(1=&!Ws9@W2s5%>? zwuX431{^tg_??pc_eLg6Z`3z?Bb)ALKYNxk%r{94oTq4nvu)FLF6s@A)-I3_D3IQsKheL#`{3b6{mK zo{2z5CKB;+*D##P?c>-lW1_`tReIa{?W|`FGNwQ1 zs9L2LgOaIISm9P7j0c{R+2)~E(@c6>lfr5ZLruA{l7|)GiRB&{X6#r)9{+kadat>ERp{Rt=bcdtDpq0ahegNi_E}$8~lW3te3WF}; zd7|GPnFkJANBQ*nKv!MkO%Qs+Z_Z>?5XL*RRG7$FrJBDPyd!ijdPdS0j_2&}x^-G%@>14iHM6{Wnck zMsVFYRC8T@=N@!;Vf5tI^VBIIg15)DLX0{zwhb?~zmDc5$+TT7Ss!&S`j)B>X~!dl zn`riew@L-mhuwc?--poYL!xPRYF@G}koB&^c>ZP8wBn`_(|$A3wcXIktDm3e6Ag8Z zQ8h&t7$qiE{nC#6`;bS2j-|ks=d9X>bBwg~re9!PXwe!?#FNO9YjFd-nvh|m%PqMu-++@3`C{-Dpt}QftCy!VZch5kzD_aQdk1J}Px4G$kz6J_iF)*)Z^Ybe zWTQhr31LJ{k?sgVf!c502}6c{^xD&CM4t;8dPrASj3en^?_6S7_=!R%WbhcW5$!Zl zmuP!94K9plH_ikG|ETkyAOUSI&ui@))2rVnD;Qg4kf1zI$Ml+ckg4LF^V;u{i^pX!rhAhHR6s1BO&zdpyhseCC+JX)UX^jDPe)e8l3I%?f=p{SJYoi|qHiu&ZSqu4d~ z|3hjkxXUL2lBJ)I2?use$X0zZ`xv8tCQHf}Nxm zDhGPh$f6OE&^rKjBy_Y$aYykPzwUXTZf>erM2a)PS9j2URemm zTG+Ic19WQ4I!^QUd`$9Ey(nv$j4At-QU2aL3YCs5BoXKI8$5R`kTP&R1kzh6y83z3 z*xjtz<1h5QWo=*M_?qFLcAfZhTo3!nU6JE=%_yqe!F5rksaY>01ruk2K||@wfer&S zZDvpe;~%Fh^V}}N^LjclG7u?RcG)vg19}D%oOH>&lJGZwN`IF?>4r1av}N1*oR2h8 z+y;>Q1on_Qa$4Q!mPCSKH>`Hg#zzg^s~+u;iks5>ggr$*Bp^VH|~?E?xe%(Biv@;W2i{9-$;l=8+wvH&Qe1?`Gs8FhP4VV z>zm)l!T23f9%iiu@(>y7@ufW#X6y%{ovwMzvTvjXmE59W{nD=l{QXHS2b8j0Qlu^3 zPuCYS`YCt;&r$u^Bj#G$H~F)ctcBe}y!=}4BFNx z2x^0x?he!LIG~7F$tC!XaY^-HHu)P8DFMZiHagomO5?f*Km=pM`=Bp7qJ66(2kzoR zcej8*6%82mO_x(o`H03NYLeR#QnaZxuLHG^=KC!DC6ps|Kg_rP+@>}}OsQsWJO>du z2bwXMQR<2P9?>RME5bB4)`RPI4W&u!cQ1X#PgfFFpUP<{y9~{B&*k1#hn&3kDJk>R z2=P%enW}L#R(rvM`h7^ieCFHMCcA+wziPf+9Ov*_Jvl4=>_8v}_#MwJbnIQ_FWhC) z$ZYSmNc)7bzkb(s?<6fmAOlF?=5H$%8q&yx#IY)r&}bsMkt+_CbSQL9lz9G=fHAh? zk6w{!KIv(mN@GuI)dce0{vpLnl+5u0LbJ?Via&Qnv5A44Kdr`|Jdi0!tdiEgJFv5=CJN)A}y1t*09`pc_-o2 zoc}IoVEVV50ZZoM;zuBZ3!Tcikb_pnF*9Afu+chnw|^)wj)~YP4=xUEvv6uInO>Kl zzv;^R3=`!UfU_&^P;GM*3y(wu`DK)+{giCfru)E8>9$ox%@W9!Q6-reKbd=l7saR{ zq$|RrN(T`yiy@kS{tW38@4;=wpOSd12_V6 zIijM?9Wy1bYk6I5i$oC8KGel!)Uu0CCld??sQk^}tro~a2ycT1c4_DJ;`H2^>4A*y z`qu93sx2LTB4-| z`2|hgezdmb&#eim0aqGu7E^fjwnw>@{Fn4=c|bf-oWQ68M63IZS|Qv|F?C$u!?j6U z;@nbPdPiJOyH!7)^Pa%H<_0^cbX$iwswL#Col9#K~6QD4m5DekVt9T03xg4 zQDh?TV`9;7rLFC1sK%fDTqvV(o^N+m7inJX`0>7}5j?Xjuzu>h7^3L85*lS5tZZs5 zKVhmJB6+Jf@z)jNN$P_tvQ3sFhU#gT{We2ktGczsWUt;Bhcf{G8uCRB+51 z)L20`I;kn)$m^PI;D|C&>}aqUDwyDKo9N{&U0m0#J9iw*Ca4x^@0f%pWJNcM@Vr|I zB}pn^>s0H+TshsY{}sZuhohUK&#p0t*~2?p`iI?}OoAGdOjjOUi=x5U;^_A29V>O_ zzxuBYJuzPFy&cYZrB$Bm3yyA6?Zs#mTa^DyvP{J!DH)?+d}iOE!Bq9!CQ3GYS4fAr1J{KyH5jPkV)pqK9eR7Kk- z${tYk=+k$j54$3k3?f+zyL#7yhI$`^Y^Hgvy0AHt+^gne? z|H2%0yGU6Bjkp~%#hsDj55Uu{z56StRDU}UL=A4~f8x}!#Jb@)_nf$`v$y!{v zvbZckaGGXZWG4B3TegHj>q|E5E#O(~N9L)|jiBbr0ZAnjhrW`$;Y2a@3(oX+0RC$} zrtL~i2kUUtPMcTZjgJps^YGG#sZ33AhFrzbQ84k&KG@Wzu1)OJ1BI4b8)6hUm{g{E zD}sq}baZw3)89Ak(V@Hx{2)-o{j}o4dxU5`trqc0^Us>hwAUcin#0}k@{QolpVT$n z%(ax{q}AC0#3x*$DfiB*N|O}h*@R+ zE!~M>h%Ble$_Pveq1iK7g&G?(sDySxz@#tVA1ukO-uRRmGf?UKH-kOeuG5jrWc`-= zAZhFO;J%?HHR{@>Pccz1RX{`hMAO2-$^6+$(&^?#8+SmPx5TiIw?-r}i6B3JZ)}R; zGAPXpkN$8FwkGcrPJ?xMVzh3d;ng;WWC5~Nl{*D9sG>_$#6h7(8r2U2kBp9g`lbnVo} z6HW^(SPUnTe#qfLw2Mg`kvt?GV?&BG|M4KOg06{r?Y2`bXvcEH}WRC-Xm|juDjXjMfZf8R+!Qn|ng>TnTLH=x=>WxrKcgpXq> zfTHVE{=9VBL&_1Aji0D+Z+<+XKL4z(VHk^9EJr~2NWBeX_<%>+g6H_~Yr!NrnlsTJ$q}plTw8P8w1E8h;inhDlQisJbtv@}0ypnNE>(Jls`@4L5Zx9{ibfl4I;D$WoQKtnKc9|2-D?F09_v(zh>(c9oARQw?-D-mpSj zJs^4Uz&BAwavfT$zRMU{i{1xKyqkd(w3zT+o-J>R*m$O1u&RS+35BUL@71K5$$HIrG<$3&qu%H;0};3I)0z z8~(+}{skL0Opv>J5RvWyGmzVvnI=8u1y&sD5(QPe zg^!m3jl;W)2d%Oo6nw5)+)d>k2*V8b`Y{exCTL12e7t1FkXn=e}g(O=)r=t<0M;L9V3%~$JiCDWd zt^ZhH{&%{k?JkIze60Bj12TShR;M+2gDy$|ii}cbbd79#Ig`j{6A4*kBR>R#J|i4=sRgg zip(=4b1~;w$m|=ehiXzrte1RdyG(Trlw&FMPCf`a7Zr3lB?FNqMUfJRk z5P%G}{zGyD@wIK;esPOHa#ElFUog&ybsrF$%KW{A{{IBz{!d~qbDGp8KMlW?SqWHlS&uK{IOBF6lJjr)>b~LVp?irgh!n+;+HhVh zy*g5zTkSM@9hKnb$Q%}Cq1I^k_iGzeLaNLB5KAl^NA;S37;__fQ&f&`Tn}#ti!|Vv zz?`39PIndz|N)aW|SHRV7ClDHTaz zdzGoHY7r*(6jp9|sC$>L&lo^ncH_0L?j7jkrI|wt!{F&q5+{%1NPVstRd47>{mwS9-=wuiB{Cbi-8=$eR;^TmQfjH zW*TBabWNF3c3k6kA47h*jd9N zViJyxYlt<@16#j@9v|nkbhA3XvA64qU46pW(Pd*3M^9+z9uvoMU9rALc-1>r$k@~( zd%t7VAX4xWx%{{Yw(Xn)Zl!OaJ^99f89oQCn(^@sXN*D#XXqP_J91(~EQNLaqZ&lT zo--1J6k2DKDgW~>Gzd&P71+y>>OU>1H!vy=lg>6wbnI>~$OB*Fgavt#tcEOuM&=qK z1Lr6(@W=F@NBr5?X;1DQDIk0vc#?D}l`jwIkey8X4e-17T>2b?hOp2-6GaEkKyO|m ky-#!F|Et4pUtF%edt<6;IO-l)v+oj0P8E?a^Yq>S0^!@=ng9R* literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/attach.1degree.dot b/doc/schemaspy_hubzilla/diagrams/attach.1degree.dot new file mode 100644 index 000000000..08716261b --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/attach.1degree.dot @@ -0,0 +1,183 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "oneDegreeRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "attach":"hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"channel_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "attach" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach
idint unsigned[10]
aidint unsigned[10]
uidint unsigned[10]
hashchar[64]
creatorchar[128]
filenamechar[255]
filetypechar[64]
filesizeint unsigned[10]
revisionint unsigned[10]
folderchar[64]
flagsint unsigned[10]
is_dirbit[0]
is_photobit[0]
os_storagebit[0]
os_pathmediumtext[16777215]
display_pathmediumtext[16777215]
datalongblob[2147483647]
createddatetime[19]
editeddatetime[19]
allow_cidmediumtext[16777215]
allow_gidmediumtext[16777215]
deny_cidmediumtext[16777215]
deny_gidmediumtext[16777215]
< 3105 rows0 >
> + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
channel
channel_id
channel_account_id
channel_primary
channel_name
channel_address
channel_guid
channel_guid_sig
channel_hash
channel_timezone
channel_location
channel_theme
channel_startpage
channel_pubkey
channel_prvkey
channel_notifyflags
channel_pageflags
channel_dirdate
channel_lastpost
channel_deleted
channel_max_anon_mail
channel_max_friend_req
channel_expire_days
channel_passwd_reset
channel_default_group
channel_allow_cid
channel_allow_gid
channel_deny_cid
channel_deny_gid
channel_r_stream
channel_r_profile
channel_r_photos
channel_r_abook
channel_w_stream
channel_w_wall
channel_w_tagwall
channel_w_comment
channel_w_mail
channel_w_photos
channel_w_chat
channel_a_delegate
channel_r_storage
channel_w_storage
channel_r_pages
channel_w_pages
channel_a_republish
channel_w_like
channel_removed
channel_system
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "hubloc" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + +
hubloc
hubloc_id
hubloc_guid
hubloc_guid_sig
hubloc_hash
hubloc_addr
hubloc_network
hubloc_flags
hubloc_status
hubloc_url
hubloc_url_sig
hubloc_host
hubloc_callback
hubloc_connect
hubloc_sitekey
hubloc_updated
hubloc_connected
hubloc_primary
hubloc_orphancheck
hubloc_error
hubloc_deleted
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/attach.1degree.png b/doc/schemaspy_hubzilla/diagrams/attach.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9bde7b44017a17a4deca7bbb47af3cb688b61f GIT binary patch literal 45434 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 literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/attach.2degrees.dot b/doc/schemaspy_hubzilla/diagrams/attach.2degrees.dot new file mode 100644 index 000000000..0c9e0a73c --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/attach.2degrees.dot @@ -0,0 +1,497 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "twoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"channel_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + +
abook
...
< 1685 rows
> + URL="abook.html" + tooltip="abook" + ]; + "attach" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach
idint unsigned[10]
aidint unsigned[10]
uidint unsigned[10]
hashchar[64]
creatorchar[128]
filenamechar[255]
filetypechar[64]
filesizeint unsigned[10]
revisionint unsigned[10]
folderchar[64]
flagsint unsigned[10]
is_dirbit[0]
is_photobit[0]
os_storagebit[0]
os_pathmediumtext[16777215]
display_pathmediumtext[16777215]
datalongblob[2147483647]
createddatetime[19]
editeddatetime[19]
allow_cidmediumtext[16777215]
allow_gidmediumtext[16777215]
deny_cidmediumtext[16777215]
deny_gidmediumtext[16777215]
< 3105 rows0 >
> + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
channel
channel_id
channel_account_id
channel_primary
channel_name
channel_address
channel_guid
channel_guid_sig
channel_hash
channel_timezone
channel_location
channel_theme
channel_startpage
channel_pubkey
channel_prvkey
channel_notifyflags
channel_pageflags
channel_dirdate
channel_lastpost
channel_deleted
channel_max_anon_mail
channel_max_friend_req
channel_expire_days
channel_passwd_reset
channel_default_group
channel_allow_cid
channel_allow_gid
channel_deny_cid
channel_deny_gid
channel_r_stream
channel_r_profile
channel_r_photos
channel_r_abook
channel_w_stream
channel_w_wall
channel_w_tagwall
channel_w_comment
channel_w_mail
channel_w_photos
channel_w_chat
channel_a_delegate
channel_r_storage
channel_w_storage
channel_r_pages
channel_w_pages
channel_a_republish
channel_w_like
channel_removed
channel_system
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + +
chat
...
< 10 rows
> + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + +
chatpresence
...
< 11 row
> + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "dreport" [ + label=< + + + + +
dreport
...
< 18 579 rows
> + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + +
event
...
< 412 rows
> + URL="event.html" + tooltip="event" + ]; + "group_member" [ + label=< + + + + +
group_member
...
< 142 rows
> + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + +
groups
...
< 310 rows
> + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + +
hubloc
hubloc_id
hubloc_guid
hubloc_guid_sig
hubloc_hash
hubloc_addr
hubloc_network
hubloc_flags
hubloc_status
hubloc_url
hubloc_url_sig
hubloc_host
hubloc_callback
hubloc_connect
hubloc_sitekey
hubloc_updated
hubloc_connected
hubloc_primary
hubloc_orphancheck
hubloc_error
hubloc_deleted
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
item
...
< 337 583 rows
> + URL="item.html" + tooltip="item" + ]; + "mail" [ + label=< + + + + +
mail
...
< 239 rows
> + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
manage
...
< 10 rows
> + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + +
notify
...
< 3528 rows
> + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + +
outq
...
< 3660 rows
> + URL="outq.html" + tooltip="outq" + ]; + "photo" [ + label=< + + + + +
photo
...
< 15 888 rows
> + URL="photo.html" + tooltip="photo" + ]; + "profext" [ + label=< + + + + +
profext
...
< 30 rows
> + URL="profext.html" + tooltip="profext" + ]; + "register" [ + label=< + + + + +
register
...
< 30 rows
> + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
shares
...
< 10 rows
> + URL="shares.html" + tooltip="shares" + ]; + "source" [ + label=< + + + + +
source
...
< 20 rows
> + URL="source.html" + tooltip="source" + ]; + "term" [ + label=< + + + + +
term
...
< 68 980 rows
> + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + +
updates
...
< 30 rows
> + URL="updates.html" + tooltip="updates" + ]; + "vote" [ + label=< + + + + +
vote
...
< 10 rows
> + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
xchat
...
< 19 rows
> + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
xconfig
...
< 18 rows
> + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
xign
...
< 10 rows
> + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
xlink
...
< 14 105 rows
> + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + +
xprof
...
< 30 rows
> + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + +
xtag
...
< 30 rows
> + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/attach.2degrees.png b/doc/schemaspy_hubzilla/diagrams/attach.2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..b22da3419a07e8ba0753cee075f1b47e7f564d5a GIT binary patch literal 98172 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 "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"id":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "channel":"channel_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "config":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "conv":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "notify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fcontact":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "ffinder":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "group_member":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hubloc":"hubloc_hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item_id":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "likes":"elipses":w -> "channel":"channel_id":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "likes":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "mail":"elipses":w -> "channel":"channel_id":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "notify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "photo":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profdef":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profext":"elipses":w -> "channel":"channel_id":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "profext":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profile_check":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "register":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "sign":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "sys_perms":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "term":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"elipses":w -> "channel":"channel_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + +
abook
...
< 1685 rows
> + URL="abook.html" + tooltip="abook" + ]; + "attach" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach
idint unsigned[10]
aidint unsigned[10]
uidint unsigned[10]
hashchar[64]
creatorchar[128]
filenamechar[255]
filetypechar[64]
filesizeint unsigned[10]
revisionint unsigned[10]
folderchar[64]
flagsint unsigned[10]
is_dirbit[0]
is_photobit[0]
os_storagebit[0]
os_pathmediumtext[16777215]
display_pathmediumtext[16777215]
datalongblob[2147483647]
createddatetime[19]
editeddatetime[19]
allow_cidmediumtext[16777215]
allow_gidmediumtext[16777215]
deny_cidmediumtext[16777215]
deny_gidmediumtext[16777215]
< 4105 rows0 >
> + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
channel
channel_id
channel_account_id
channel_primary
channel_name
channel_address
channel_guid
channel_guid_sig
channel_hash
channel_timezone
channel_location
channel_theme
channel_startpage
channel_pubkey
channel_prvkey
channel_notifyflags
channel_pageflags
channel_dirdate
channel_lastpost
channel_deleted
channel_max_anon_mail
channel_max_friend_req
channel_expire_days
channel_passwd_reset
channel_default_group
channel_allow_cid
channel_allow_gid
channel_deny_cid
channel_deny_gid
channel_r_stream
channel_r_profile
channel_r_photos
channel_r_abook
channel_w_stream
channel_w_wall
channel_w_tagwall
channel_w_comment
channel_w_mail
channel_w_photos
channel_w_chat
channel_a_delegate
channel_r_storage
channel_w_storage
channel_r_pages
channel_w_pages
channel_a_republish
channel_w_like
channel_removed
channel_system
< 112 rows17 >
> + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + +
chat
...
< 10 rows
> + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + +
chatpresence
...
< 11 row
> + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "config" [ + label=< + + + + +
config
...
< 283 rows
> + URL="config.html" + tooltip="config" + ]; + "conv" [ + label=< + + + + +
conv
...
< 115 rows
> + URL="conv.html" + tooltip="conv" + ]; + "dreport" [ + label=< + + + + +
dreport
...
< 18 579 rows
> + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + +
event
...
< 512 rows
> + URL="event.html" + tooltip="event" + ]; + "fcontact" [ + label=< + + + + +
fcontact
...
< 10 rows
> + URL="fcontact.html" + tooltip="fcontact" + ]; + "ffinder" [ + label=< + + + + +
ffinder
...
< 10 rows
> + URL="ffinder.html" + tooltip="ffinder" + ]; + "group_member" [ + label=< + + + + +
group_member
...
< 242 rows
> + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + +
groups
...
< 410 rows
> + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + +
hubloc
hubloc_id
hubloc_guid
hubloc_guid_sig
hubloc_hash
hubloc_addr
hubloc_network
hubloc_flags
hubloc_status
hubloc_url
hubloc_url_sig
hubloc_host
hubloc_callback
hubloc_connect
hubloc_sitekey
hubloc_updated
hubloc_connected
hubloc_primary
hubloc_orphancheck
hubloc_error
hubloc_deleted
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
item
...
< 437 583 rows
> + URL="item.html" + tooltip="item" + ]; + "item_id" [ + label=< + + + + +
item_id
...
< 1194 rows
> + URL="item_id.html" + tooltip="item_id" + ]; + "likes" [ + label=< + + + + +
likes
...
< 20 rows
> + URL="likes.html" + tooltip="likes" + ]; + "mail" [ + label=< + + + + +
mail
...
< 539 rows
> + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
manage
...
< 20 rows
> + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + +
notify
...
< 3528 rows10 >
> + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + +
outq
...
< 3660 rows
> + URL="outq.html" + tooltip="outq" + ]; + "photo" [ + label=< + + + + +
photo
...
< 25 888 rows
> + URL="photo.html" + tooltip="photo" + ]; + "profdef" [ + label=< + + + + +
profdef
...
< 10 rows
> + URL="profdef.html" + tooltip="profdef" + ]; + "profext" [ + label=< + + + + +
profext
...
< 60 rows
> + URL="profext.html" + tooltip="profext" + ]; + "profile_check" [ + label=< + + + + +
profile_check
...
< 10 rows
> + URL="profile_check.html" + tooltip="profile_check" + ]; + "register" [ + label=< + + + + +
register
...
< 40 rows
> + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
shares
...
< 10 rows
> + URL="shares.html" + tooltip="shares" + ]; + "sign" [ + label=< + + + + +
sign
...
< 10 rows
> + URL="sign.html" + tooltip="sign" + ]; + "source" [ + label=< + + + + +
source
...
< 20 rows
> + URL="source.html" + tooltip="source" + ]; + "sys_perms" [ + label=< + + + + +
sys_perms
...
< 20 rows
> + URL="sys_perms.html" + tooltip="sys_perms" + ]; + "term" [ + label=< + + + + +
term
...
< 68 980 rows
> + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + +
updates
...
< 30 rows
> + URL="updates.html" + tooltip="updates" + ]; + "verify" [ + label=< + + + + + + + + + +
verify
id
channel
type
token
meta
created
0 rows20 >
> + URL="verify.html" + tooltip="verify" + ]; + "vote" [ + label=< + + + + +
vote
...
< 10 rows
> + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
xchat
...
< 19 rows
> + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
xconfig
...
< 38 rows
> + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
xign
...
< 20 rows
> + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
xlink
...
< 14 105 rows
> + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + +
xprof
...
< 30 rows
> + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + +
xtag
...
< 30 rows
> + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/attach.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/attach.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..d48b9ebd9dd6bbb51ac74b5c752545d771de832b GIT binary patch literal 125911 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%0D=~Aa)wu)@2C`qkmE>$UWUVM-ZAjM> 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�ffqE5@~0i2whR z#E8_EmX%7-;Dycwh271SA_!l?xP1wI(Mgab@U1ABlPuvAcklmcZAC&Tp{HB1R-y%V z^V)gGZ(&txU(K*#{4_W@KY(T3Usn3DOoDI~?(}%^0h=kq3aO@ZK{I0fZvEuV z3a8B$qMNuMs#(SGuW5bDv#rg5ugco&Bcp zcrdpX83i;^x3}xwc3*ZMiY%f&&ZZ&Eg6W_viysQ-EYXNXR7YI z;XBP6Vg81JcMN|<^TSv-ae*NU9ROtFY9M$ab%ivkR9ZXTPG-cLN6P>p6)em0ld0rb zFT0%>9?-wVrv5ZKGfFv{yNMps-h_qfYcQ-wW$%vC=~n{Z1gdq-heLP-_WlYw;mlj8 zH+r5Pp05rq>w53nLoNm?8VKkBg%$gQJY>(u)hjyE^pxz~EecLK{pU89gxm`Mo@_;y_p8yo@5z~mfrZCbaEWnO@PF`;-20Bsf0q>w(_P`6`o>Yc9TXZaXkSG zK!E#s@W99}7R)68b#JR{!D-*NzNS|&i1i&onp4&6`^vt``}Y4fz9HNkwy$CX z7xeEyeAq!BfCs4nJm}#6D=`Z(Zw694c!}YAuN?Sz=QGyEYiOsTjHd#BO=vO^BiyFj z`6pu?*!c`JE&Y-I+umMYd4Sm4^8cs34JI|mImfl1IP3TlsC4^;M1I}X+eDQ{ij>tmWx~Z2 zG{=s~WQel7pV~n)MZpr38iL32G$7#zRqdph$qFP{^kPckZNzl!d638{*SMK8@139zs6@POOZ~`BTH;DvaJy_6tDX<*~O+Q*v@n>xc(BeQM(J zd1$3!J#DOm6fJY7l&2Vf)bi4j)B3W9xD1_v=YE}iUP0ufcJ%nz^9@FQ+;))WRY^kO zJylsKw^MA}_!B$H(|NEy7V=?YMarE0cT^=b;}d6;2<1wX3u3oaThK$*G7zdpcA?FmZs-$L-gk^VQG1^^(a|U{vCExv z(j6#b9o>}6!yVsghC8S8mUw>cs~8p%7P>>3j?7?7B8o_psjGLjOw=R3akivv=kOC7Xs?eja`2kCNV;wi)~V=5h$#GTh<+QIvH9X=(guGTNTk z{lA48kSA5)^rHWB)R_|#QywN$oU98O5{e*u|hRdtHTXmv3d#!Hha1(*?Bc*Rf zIy2{`vRhGPchk^vQd{chk{i+8ry1T+K4C@W6?ATJec2J5WOlct-~EK!mo$yCj+%5# z2A{$Va`7+8+&WrGpPN^KWvw}8LfgHdZ&t2^YDgTfPS_-XdxS~#c*kOzaOB}Z-VP7b#Y_>CyF}M&MN3`= z7p!z>e{yKW%9VKXOzVlgTBM+Q?PRgeU1@SfcNjEYWszFcPe%-^dnz7G7%egj867X! zo!esNY@=@!d^lo1x4tzj2;zR{Numo}kp))}lGm}#6Pk+r`jW$55s|TP)?PMEx=|c2 zsZ!s3BJ z8+Cc#>(<|}uxa1bZSg)Onx!)OB@sXMrgCRCopxw)zA + auth_codes + idvarchar[40] + client_idvarchar[20] + redirect_urivarchar[200] + expiresint[10] + scopevarchar[250] + < 00 rows0 > + > + URL="auth_codes.html" + tooltip="auth_codes" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/auth_codes.1degree.png b/doc/schemaspy_hubzilla/diagrams/auth_codes.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..b8232f028c60411179c8650f8dd9f04314a30bbd GIT binary patch literal 2955 zcma)8X*|^L7N?XfiG&I>Bq>?PK4T);jghTM8j*c3ei_ETh0;)V2H7KxqG-mJ$Wmr7 zlNyt;m1Pp*FUEd#?|pOM-51aKe$RQ%^EuDwy!f7zausQEl=n0*2M5PdGgCvGePr&R z`6CDSEknmOcOP7@BJ7NI_x9S`+lz~f_4M?jqoZ%#x&;P<$H&Jj8%vbcm2mh6VyDGI z;)2_T-U2aq&dJL<`=BlDErdmmL-nM#XT#xeI-Q=MpC29`4g!I0-n>a964%$) zX*Ak?k-fb=VrTBeKH~&zkhUE9GjtCQ4&Eh9 zrndB^E9JEW&*mtG{4BWKZ(Ut{v%Ge9evPv76(gQ*2Vr7mX)jR!g{YH~4sW&r(iW!R zq?EzTe|fVs>>VrWyf_jAjoYhM%{SE$rcl&DdRsL zS%?Jwz^F>24I>!3)eyN>KBj55<=u_}P<8A8AIy<#&FwDhO42J1h8=K8m;tRE0LGQ_ zlxQ28gtbn?qd(fV0@UELv{pD1>(0ZBzK}R-YgV}>1n{atejSH8p7POauD;k(t(D;C z^SA*Ez1whs2a>%W?l7!7;Oo{Vg(h};y)T^5FsOXPEK>^QOdD zYn0!SRqlxAAy<3*bH3Mif3xHqfA9#*tQ&8i+vAGt0cq)CKiYI^*~C^HYW)IRdogx- zAa?^VAp99MWwJh?j5Qm?tWL(mBi>JF*}P=rofB2||-;*lVR zvPef_y5seNHQdV5N_7iFQa37Bqd>CBuEDWN{Kr2RbKZsJ__^8ON}nYV6JI;w5O*bi z`1*RY^Yi@dIXefRksAr0%x@^8L`Eh?mKw{cD_8$B$@xlT?!4LyG)WWyIW`3}l zvO*o5E1x`_b~!$h3wO#zmWO-_B0Ikl0mr3+_Npx@8_ps#c>pHSn0=T`iS=@k7` zQ!U?+v(OO9t*+m=_{2eC!4GS{qJZ~u_b~!MKaZ@0%g;Mky2E}QHtBvRU{CK&SrYDq zi9xmT<|et&+$Vi4*pDWaBB0d%xl5`Z^#>)rGH@!>c2eJUJJBkY;-L+_@K~$e3|ZbUViWh?h;_{f)E>#n<0%a&%BlKdnv=eLWcyfdwn8`U(!CTrSxG$ z_L#a461CNlt z`n93^K)xEYZ0#Uf?O4)%f6VWhK0SYtz+N}jl4qS+Rr?;w5p=wCZ)y)g(m&-3#y{@j z6eRSwX2#%P;~}+K%)$wwv?h1x9NU``i<}#L&pHfX%Pk|ItU+M`P+U(ih}t0u)c0o> zbzumAhc+_?$8X+Kks;7}`lb}X77pQ`%@#2}HTfy1Os$huWG*L(eT~Vjdi^DJ(jw-3 z!;6q<8+{|Wwy1-J)awCsK%C|skhwr$7*|-pmddZx5q_pT4%7PROsvpUD6?qxFi&#Q zAl8gNg8X&}h+xUn9`0uD;9#o?u=i-?cvxq^WS2Ni6;+b!711~^6ktUsyDlti!qqm% zV<~IUjm-7_&w!A6`;TxBb@INLCDPN8!Ihst?dfv(zXXuh=r&9aGGWE=G{eXpZgb zdKAP%q8U9{cD1ov1V&R(4y=f;pv8;_`_`UUTE=>GU>c(l$RUl!`k^MIeh5!C{AA&dKJ4iar)$UZexh>nGftkfq$fVXXXh- zO7~L7o2c-?mM3a)RWtkAW8i1HFFCEvJ%PC%S<|weKNUXXS$=^36;oP%qW`I2O$9|S z5yx<8z#r4bq!gB9(IFmZb194>7&<(F&8$fBjaKFT_BR$V=oBo9CjeiIR#7E~0tt_- zL-Cg>!04cf#RShSl~=A6j5Zmv4nDv+xqc{x&cxVQ<&EyrSp4YTPe6o87l0&!yNW<{K!5!qwc&CBob1TQFR<^Q9P(>@Ez~ zoPtDoI@aIxYm@RO0U{f?TBK7k&~rEq%BSH;LdfxM(I>1uOa8Xi&;=~6`?r^oxBIpq z_3aPI{Ao{GYnB`7k9nnI-Tx1WA@mkbP(*4*(e1ZRW-#p(S$kU^R_pVahs0;-^k%ku zT5h7R{@5J$h=lFqJ|&>6M)VX7ZAAY@)%O$xLm~Wsg4nH5F3B6Y$h5wMcN%Qo4vJuh zN99#tMiC&kn^BqlsdVD3WLk=AzN1j#S2Q>I`VDW!bJJOJb&cq72=ql)7T!VX3>T~^ zQqMH@y=Q)uP#Sv1Nj1)zx*TdOsv>Wo;cXM#F?S{P>7xIO*O78m_u%>(qc?>}u9@TS zi;mcJIeR8&Y1roKLyu{S5*0S>s43U&5MPSNDwguE;Y2MizCh%V`)aNYYm$&gH$tX* zyw1Gkz95)T7nwyYtJt;X?LW@ryY1c`>NZ9ZBc7p|3?P1e z?#25W*i|3;&lcJo$Q~+iE0Q$UpJsB``EvF zUHZ)E@0&mTg`p_#yYA-(pZI)0#2#_Kx#3-aU0lU+uo%ch^6&Of&ak)&5sf9oe`iae z4Nkoni7jpAKvYL5G4CypzfwG5q*c9H4H&i-by2nJHfIZC#!UWq2mP-%R "clients":"client_id":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "auth_codes":"id":w -> "tokens":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "tokens":"client_id":w -> "clients":"client_id":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "auth_codes" [ + label=< + + + + + + + + +
auth_codes
idvarchar[40]
client_idvarchar[20]
redirect_urivarchar[200]
expiresint[10]
scopevarchar[250]
< 20 rows0 >
> + URL="auth_codes.html" + tooltip="auth_codes" + ]; + "clients" [ + label=< + + + + + + + + + +
clients
client_id
pw
redirect_uri
name
icon
uid
0 rows2 >
> + URL="clients.html" + tooltip="clients" + ]; + "tokens" [ + label=< + + + + + + + + + +
tokens
id
secret
client_id
expires
scope
uid
< 10 rows1 >
> + URL="tokens.html" + tooltip="tokens" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/auth_codes.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/auth_codes.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..324bdd59a04e214fa73a78622793932e30e8b557 GIT binary patch literal 7011 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 + cache + kchar[255] + vtext[65535] + updateddatetime[19] + < 0334 rows0 > + > + URL="cache.html" + tooltip="cache" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/cache.1degree.png b/doc/schemaspy_hubzilla/diagrams/cache.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..091d9a22fe1b5cf9bbaa2b3147a07efe778d16d7 GIT binary patch literal 2436 zcmZ`*c{JOJ7N*)MY8l%|lsM)z4(ln+rA!BGLkB4%J-rI^C~lqjEqJ{M{{#?BO)Ts zojZp{qZ=C=x3;zh2M3Sm9334^YIxfoNBs93?Qij!&W(EW@d>i5%zs6O<*()^gqP}x zL|x#2mv3k{C>9^>@Zcy5?Os0%(VOxUu50yxGBWqMXQV?~L-w))`U&l)EpcP<=8Q-G z0p?$bOHfYhK%-*P}BwGvOss7%)~p;nq9}Lm2$sB>bmu~*Wq-t{5HP6@8UwWRlOvaJkd6cXE~(s z5Q3^Eic-!+eAM{i$zjj^oxORtXKAp0qJ8JtxI2Xn#Oax^6n*%Z9q-~hmehBw9X^2yp$**ag~)b=3AjcK9&T4oegVkI|X;?3i z(7}{^1TfvLmet(^4CAaF^k7vh>8MW{6vu=t9fF69z#UJh4TWkgo>mih=wftj!Gh~S z{ww(*J$1RyKq>y!2KAM~&Hd5n!H(T3i2kg%v07-Uy#kdpwbZ24wVEuh0Dl7>v|Ux$ zRw>;Q%c<&`MsVJaB^kudZ-j?@(^ZaYPr*4e@A!Eo}|M#rsRYPxF8>a}k#~Ds567zMy(93sG2Wc3o@dri}6vzl5M{ zxlO9dZcSA@EZ0Kt)qS?ti2@^SqPR1)GKi9M!VJ827wKFpF)g6p9kNoSyBNVg^H3eG z^Uc9&BX2hQM_1{__*f>@TUZ45@b>|Kb0X{B%K4m?H49MhMPuVztK-FlcT6MORBW#X zG>VrBuaOYy6ic&8M)XetA(#`fX5_L&|-uU`NXjv zlDL)ra9NE$f0Byu2$m(#=3Nj-86Jl+P99AbMXnVwjTW6D$9y`Z2=Ut{G|ftmO$<-; z^J$I-9^cK(jD5=~hph$fd5UzNd=Y^;7y@YFTp9|8Zqm5Bm;_*+2YuECcq)UJzD*wf z=z86vhQlmB^9awVom|^k7?E=J?}$R(zb@@*_SrZu)s4GY(CH$al9*BP=mv^tn3U1Z zO7^;3#oMsItv+jUB})#L`-y-NvVW3wa1lNzC(SE*$r%9r1?(!>w@WnS;ocXl4_y|| zA!DJ=-O*@nx|gFvx5XCvxRq860r%v}WQ4@n|Nat59#fmzfI&UqOm}4-B_E)Fjddt3 z@A-Hj*k@&lf)PDyW5GEo_o( zU)R0?^PWBMI={ZtLFQNV+;7Xh5;IbkqTaEP%;xO))aZX{CUr5-1masPf~JRi->p;g zbe#|u9X`E_9?m)Bue%a?Pi%q_&y^^I7NS(AyYnB_`WNy3(EI~LxnHNFnGkJNyLd#N zbFrM~V)Zq4%R=|jS|Gb=P5%_L*jC7O+y=R;Tz*o%zR34s-MHx#Rc zl?9)s;rSKl;gC{IX>fA^l;9o*C3q-toju3M|9dU}d^G8D!WXrca; z*MU5C`(DY(ILC1NS78PUHaD`usTBvEmC(I&y|D|*LDDbLfT|b#lmJ33UKq0dC!qrz zP{GM?ha2KhC)W~eB+mAICF@Xw!}8w$;8OKCtM1EtOH(goP_$$4E3Ay`a*mLT>U*d8 zOTlHnrkfCWCHhQ;2uqqeg&z#lFA3~iS1rl-QV$xi0@PY>{V=q|=TwLq0;MMK=Iof( zAE5;fbLD^Y6yPEsUVX5WIji|Da9mzh33F;@saab)3lx&C>HWF?HNge(7xQ?ODw%~~ z7cK1p$R7>LA~C1!)@COaVc9lKJr|KO%Zp*l6$n^&=H*kp)hRLtY5Fu@%aH8UImkAz z9!DZ3mc3nHBt#)*J`d8*AmkQr`l#pQVL8$8x<-& zP=gh{&A;lBa;V|`!qhXt$SXy=5~X8`&9y%mE4%H9^B1iLCpM|`Fhox^Ys~m6CfGcd zv0{0C)UDP2uUx6uUZZvT6>>KZQV?zPq=vW{p+M*6m<)(lQ&4g_Xf$+hODr{D)z1fh zko0`a@PrfV;n3gbz%pc%UpG1Yv|RTyWfu$n+`eS&D#BG@E4~+;V|%M6nIR+D0hM&C ge`t^YN|2*#zKo-frUUcGB8SiFhP`?9_1jPW4G^fw0ssI2 literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.dot b/doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.dot new file mode 100644 index 000000000..95fe19ebf --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.dot @@ -0,0 +1,176 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "impliedTwoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "channel":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "config":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "config":"k":w -> "cache":"k.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "hubloc":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "pconfig":"id":w -> "notify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "pconfig":"k":w -> "cache":"k.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "profext":"channel_id":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "profext":"hash":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profext":"k":w -> "cache":"k.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "sys_perms":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "sys_perms":"k":w -> "cache":"k.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "xchan":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xconfig":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xconfig":"k":w -> "cache":"k.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "xconfig":"xchan":w -> "xchan":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "cache" [ + label=< + + + + + + +
cache
kchar[255]
vtext[65535]
updateddatetime[19]
< 0334 rows5 >
> + URL="cache.html" + tooltip="cache" + ]; + "channel" [ + label=< + + + + +
channel
...
< 112 rows17 >
> + URL="channel.html" + tooltip="channel" + ]; + "config" [ + label=< + + + + + + + +
config
id
cat
k
v
< 283 rows
> + URL="config.html" + tooltip="config" + ]; + "hubloc" [ + label=< + + + + +
hubloc
...
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "notify" [ + label=< + + + + +
notify
...
< 3528 rows10 >
> + URL="notify.html" + tooltip="notify" + ]; + "pconfig" [ + label=< + + + + + + + + +
pconfig
id
uid
cat
k
v
< 2719 rows
> + URL="pconfig.html" + tooltip="pconfig" + ]; + "profext" [ + label=< + + + + + + + + +
profext
id
channel_id
hash
k
v
< 60 rows
> + URL="profext.html" + tooltip="profext" + ]; + "sys_perms" [ + label=< + + + + + + + + +
sys_perms
id
cat
k
v
public_perm
< 20 rows
> + URL="sys_perms.html" + tooltip="sys_perms" + ]; + "verify" [ + label=< + + + + +
verify
...
0 rows20 >
> + URL="verify.html" + tooltip="verify" + ]; + "xchan" [ + label=< + + + + +
xchan
...
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; + "xconfig" [ + label=< + + + + + + + + +
xconfig
id
xchan
cat
k
v
< 38 rows
> + URL="xconfig.html" + tooltip="xconfig" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/cache.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..4c376ab8a8d54b7e584c8e48e18d09fb1403f035 GIT binary patch literal 22350 zcma&Oby!s0_XkQ2h=&kVI3Q)9ATe+V5h)2VXrx3LYCu8|L1`F9hAye0LsYsH1d(o- zA*355L^?zo?%{pk@9+L~pXdHHGyAN)&N_Rqz2dXhnLrJ-d$csHG$bS>wD(mMwMa-P zKoS!2JZf@yO-+@Rl~sNG@V4A7{}?RF`YF=| zMjpOvPCgEaxv|pH(nCW-2?+`A?(Q5M97aY)6%`dbJ3GC-z3}}{PEIz*ytCnNq)u9D z+9Y!GLue8bE|U9-@;WX_E6HcyjPeb>=o*|KI4X0Oc>a#(C1XeIiu~~j=N+GJ_WN9N zrs%1v4;NAFSpR4kapcT+TO~(3|4_Ce^(M zzeU0KFpodiw!D(O^6Z(cMX$+Dvn4eRZ$P$0@sFj|3uqD_{#S(BCqSW)&|QEtl`~_n z+e)>lEBwvI;ZBp|C!17ip<00J!aQEy>Du>I8QDptm8q2~GhEl3;<1u;638dws+a#$ z>Un&+M|6+S`5y6x(TCG#@uYdd_YWIDatb6CFO!1MBV5-3lp8#!UFRNn+VrZ<1dq+o&T+KH=y=lFiO@>(j)L0G}HUu%3E>`lB~xz?eMCmlMcslvk-z<}N@sxm(Vk-WMb+R&H7KuV~c_jq$T zl!*qSz{xFqxJ>PFcJw+@LC&g)%~k%NMI@6KZ(S%8Mj=vbfn#n~efEVjWa#xXgehjz zI#JqmJ_^DV6TXg9k<5yN0w9HUDbVW*v+^_H0kn0dCM!(Sl=wQT!1D;U%OPZcFHi|5 zNA1-DosAbb9x_F8|HJe}<2j~t4Dydz|KUpZrQ5PhoUHM$x;)#uzW~QbV z3c;lDRR6pxlrgxWQOd)b5YP8)?Q z-qA14gbRlFedtuyK;gs#zvoW`z9)opPFiG#&m7$O0iQZmU7`JrbN-ApAFJb5N{YiN zT>cpri;O-|3AlfTQu{gPbp4_gFHqz%CNt9TXlEKvd$b#P-H3~IWqP$kCH$+%(z;#r z%&(~1Qt?BgpVe=iLE(I8G`y;~dA2_8ccTh2oe}r?jsJU!84v zq-K8imjCxpIDPdrb|jW-#7aL5pUf4nX7nm_xyW9yUB3mmCn@m@5-AbY~Z8^p}F9LbOPaTGS5li!4F)%%mAP+64CIPRj z5D>2-!$oe5Zh;-SAMQ-hyQbq5G}#!gXB>`MItHE(wh9XfG|GE@s}0=}4blkEUXAS> zj

F8YcwQBi{Meeq>Iw$31*crR5m=;Kn|k`pRvrNAy`ma;zSoiy5Y{?j&sQHwk1* zVY)F*>8Q(~zfEs#$mC3KUiI-?R_(|UuvsiZJ{htWG|1stG1+S++hFlsOkS0iO`N=r z`sLfq3xdtu{mU2vl^a)ZQ^xJI0`am!RUOr^46&EPoPJE3Guf{w#!CYOIaKf%YEd(D z8J&EtB5`cqt*q=QYk@v_?@sy{mfJhf`I|A)5qEZnHDx%01V+&dV_gy9&q_tRl&{+M z0Z#AD>7w%;gu}Bi?p!;M$^`X~7LCRalG|=Z^UIdKNiQ%A`u5gVA6aT)@LA(}-(LBkGU~>rHO3cuqfcu0#PoA7|)H-5WYq!V1&ZO4B^2a z0T-AUdwf-s>HwMHXi)1+?EQB=^^|D+VA^=@bSv=MH35A;kT4ZR#B*mmfII@H6Z?k( zK&@bA>9*%}g6*)8v26fW*Dhds8q6MsGv^T)&enA{zq73e)a?6P6WO)z2VA*OeP2Xd zbjSysZwYxmRJi6ZS_Ru?m3=f`uN>XD@Ag`y|13j8&{caJ=-0vBI9Q}m^2`SuxcU;( zzZdG?{cM2lj61g~q|v55f-Z7rzJvRt^;%`*thsM14PX3&5g<11y9cLqIs1>lWXW75 zz7IZXiDQW?uP_sZ5soV3XU$Dp>G&#qK|zcefApoS=%T&Mcm=+S2SY%!0x6|;A=#Ik z?+TGd3yl%%I*u^~ATWvfaFa=;ZvUc<1fi4QM>5BmYcC+}qSXY_BhT<_oeb2U-*GB}zC>gGjOwqaE294)R4 zhr}rok&g=oUSvyM^1j0TInuVdgNImD#vCL{IAqNF<)qlITmlL|PcZpn)HFrec1g1F z-QRB8YpEM0l91vIWnliLj0YZaW$(HI?*9N9=J*7KRPtsSj5iyKVmy=y9|;WU%vYO# zJF3*|m}uA)KUhBWAXB$(1&ZC|Q7n>z=v^abJcflgLH0jSQIXbnk@(dyh%l7>| z@UCX;_?kbUgWY2Y1u>1OVKW=whG$E1ly3!`Ch}doTPJx4ax?iFK&6Q$q@QnJBtp9?^W%v8BDuItC0MUI8_dii9 zc={QY6Bo-$363`V!@aqfE*DRe%9_+r$?eOf1$xjf>v*$hjf@X?qgMHuX2ufEkFZ{R zFeNzU_f%#pP@UtTP{^C@RZbxNU!FmKkiU2Sda%j;P9QsA`lsa0kCB_lA8DlMce@6Y z6K?Y4NcO)q+L;;81wE?Fkk~8F6ETfXkN_J#rBtZ*?r}~^N6TPbvekWwc^#(8jL2j> zIPseBO}kmdE@hJ?I+G~(lbz*#PlkRwP+0&@ScLly0R1vY@pYq5#3z9a*FN>?aDr=> zxr&xJya*_=0oRn8D-GpYhD>wslXklkrmI5IGYM(qKXO5pXhI($0?(3T#E-`1P?Z1y zJ2i!c-+l9;27e9gpcle>ZP@%BOP9_|lev|rqMSK#C7ziD-&zIrkFyL_U&OzsBrr%R z1)B;(9@W{ou}YCAhaPh;KfCuP$T!lv@3`32&pZ*gLlo5htPir4`5q$_91^4VRPn;1 z-4D;e^Q9MmCvYdf3Epc3{MJ-=Jvu%Txjfekc!G4JU3jl)Jau**_w)!TfVJZmZ;<>f zC3-!@*!7(9v$ruqZ{{BEefzdpZ$tN3sb1h!pGrUQyh@M5QK1%iHVH{UeNSqt*v97K zb)Vm45pEbP`I^EelEO|7H<2A*T5ZzFSp>SkIiz zN_}R7gH=?qCfz`%FYZ3XKSW-kbumstp`V=B__Z5XN3Nh$KY4alTixYXe|$hw)Ckbo zk1PEw9q-ZAWAU=T#N}zVj)cQ`y{GNDu}l)m^}v!D8dqGpF!#X1a@gKPC`oCJU7;7P zk9>80;|1*Q_^K9#JzVS*q;1GC*qX&-Q^LMxo%Ea zS&$9O(Jmw5V}rYivonVL2Zqe=B|5JNd!J3DI3}hc4zumkSDdz^3)?q*?o?CB6E&Qb zRq5SkCG@;rOa=`D++;VcAq`}pHCJ?j>I!O& zHaMgS8FY&=D-|O~?EXeu`u%JSG259f-Xy0-W~tow=S4THeE9cyzL(Hj);eaigSi;A zybzyW?l*zzzEW7RDSF8~2~90gB0-o^K|-x0``xgY&UMHS)Ie)|?PdeqX2tZ*By!IN zoSb|5uK%i_O6(CM0T4Qj`eXLhoIZ2<@yRfH$Qj8_}YY+M$B-X8mL;p-yb zR!f{40=SDShwL>9%*SHtu3tMB3C{P`i9Adc>T!Z0Mlj!5)0qw4|k>M6ua4Eq<j`?ve5LWhUjQ6~*RS*9sMwT{j3)e65=k+{N% zp#STD(gM}<=a_=Qk^4J05!>A&4JTfkRDEFH=|kmMcN=H!O|5vbwpb&=Uu4~UAOIci z`^z4ZLqqQZKtx9}y1(>uT3sFRaeKpske0pnCDroB@7I3dn9A%9k1c`WigpF7{;l#4 z=xrBb_hOtVv1>{u2vY_cGKGaCn9S8@nl19B)IF86v6OGP1nJ{?MuuOElV^7j@{Gj3 zaw5syxPC>x1(jvP-EJ1b>-1{XuqY(0^z-=QpY@2;&gN}8ICw0#mJB~nKpHHJ*qqX6 zS1$=g&3TIyp0gO8QgsY1-1mL-9QUC}O_DUG77#|p zuh<}dR`h~Wivt6GvMVjsQzkpsb*X_!c71n zz97Gh;?mkM15)8v!F*tNbFm-d=6p+@32w3f*h6wHT(?s2Ys@7zvz9l7HIF19*kWWQ znA|}989YhgL<|2~{K2=St;^E6-sm=LGWoRLurQOUWbF0ews5&Yd$z)W)Ui&&^(Ati zRUdGS%L-vgP$qpFkMW0KcH!Ht(3W4A6gYZ@vU znt69BetutLr@%MYvn-gc|3?uhD80(VD?&8BYDG-L?FWe9j3&x|HjNl`Pw8|M26SyK z;2<1>G{>0@Uq)3>uly5u^M;U1weC)Ge(tEKSt;&kkX(KuK>MD;#w}u~oAHRwi@y~| z;Ck?DaHN6c_l?SPcC1Xyp`d9;|FU{&-6I=4M&X>NKf+fPwkx{KX%%RcL=_qp1!FnX zm}8%RB}!3E%an*>%idJ%Hi``2eho3mSt1PNu81qdKY041G~S#Tsbxltd6aDO%U83& zc?q95t#R+`qRII}B?vQkt<$|Hs`fN2kJv7gmZ%h_fCy>E#KYMy1k{H!ACo!8n_>xE zO8|dR(es|wuWQ$zrashdHpMUNVS8ySw(_}61~;w%EI+d==(55ccOW$<4So40 z?3RD#QwOiDZZavl=$;u)+5OG9OHbYH`zs%xrgkWYa<3W@*&7?@S)2Ew)&I(IB(9J? z9*;<-%@8k=rMW(9A*)!}+5Ii6XAL9TmC$s5p|tT3U+2KwmY9A)RuiXja<5z2__bwA zLLr*1t>C@gok?;VIQ^;2WFHq0&a$weziQkbwz;9P@UuJDUi5%-YxVKN#E^JBp`j1? z+PaFH;{ufx^O5ev)EeUrP;YXW_?7dY7-%*8S@QHgPH5;0m{Upd_^^>#K5FNjdc6GM z>G8`~zGV}7V%s{~u5dGp{>gyXJ=jhFB+|%yO5)O z{mS2*o*N9|dXx4+`-);`Mx}odGh}crZXKhr?kmr+m$Mf&2aRY;9eMi9HVvYqkulF^toNQPE zTW;OadD}i0XWn2nZDzX0|uJBpNg8-O* z=Y07zF-9oi&1lL_1j|NBjeQfj8Od`A6d{Nj&8Kd+^hA;qY-1$n?=x1k zjkG1DjTjgEKbuL9`E1zLc|>YWzdfa#4eTW>8+ zvXwgTuzH%G2cmNyKbb1qzvZND;t7>n-l2L3g(R)shjhRm^IU@Pn|^uE_i0C^KZW&e z=n*EPPa9-1|4fQKVOz5OqmJ$0M`GFRpf9T;cJb-bKtwsInxGy1v9@4^V;{4{p$wC^K@Z}EVk+x z?aZ6L@feaAP-p%@m9ZgufsXuY#z*a0N@vRNN!nxH#?3_Xi8I-t+YfSpqo~Wm$i^_QQScoE3lDl`{oy(T$VB06b0Cqnz_f^Pjxg2w1>DDat{W;%=obs`s(ZDTC_M9^ z5@Jes91gy%Vqn3^eksciu~#=HIei)5LO}H^ zZ2kg%*EWs1NIMNn z2Zea~o%H@{YXe$xC#@CoiZAT)!^cKD(E6q~jH_rYJD?oWG@;ojJ%Q_lw8DsiiX4%Q zHr@D{<|81%Jj^0@M8Vl~WLQMJVR-cH8=e7)XbUeZ3Bz$}Az*VaD{%Yu#3aWWF9o9d&{~m{zGaM>UMedb6UQ53%EFPHn zIC)^%!c_`6S{Tf_+K*z#*M(MtInN(VCgN8!p_N9%Yfmns9hM1Cy6KwI>o2`-|pJ)>0~Umv~y;QIZc-USg;_xEkV z7%uxlwzDW4sTL9|xY3ZSWQ&V*rb+};{-7$tiaqd7tTK9dMcjca!XaA)cS~QEC z4esZ)bI>2zxn>EqKA`Erw}dKg?7^!cFJ65E%Pgi|aRsr2!|+`DN&D(Lpm%}DW!%dm z<@SxS$Drsn;!6mR`;>slxX{Z-o88vRHw@8P%2CWl!g!MeQYb>D618dQH|)!TlxT43 z{*>X@vHm!|n*2%OZD*XLsH^a;KidKXB&{8!Pal2hWf@Nt`YDr&JU!3j^m$)WNauaq z|=p6f!5J6Kd6BG&aG$l9W_z{v4Gy_(g(statYkoJt8pjmrpZ z;k2QUK4l_m1Mhgi;C!cZ*^6;pP_+yTjxB`#9pF}zz{iA^Z;4(#xV`4x2FpmfhfmuIM2i#Ia84l_}()sn$zoMHr1^L6bhedP~n0;qm zp8`aNV76r@VVA_&`n})LsjmLvKc)4P4AT8?W3N;h7qX!}B|3pm+!Ezin?xw9BHQLy z+wM6oOs!)seFjy&2VX=-*yLyV?@@86Y>9x+*~hjIBX4NSI22?y0AczG>H5yJ(ziG? z6MrgwBeF(uC_i%?mp^o|E)Nf9I14=zX#tw{gBR;s(nWvMCSdm|_N4T#w)fq+^Jcyd z2qTCq6!(a@t-GC7vkdzrZ4;)$-t#Lz`1tjOvzTu?CWw1{5JCNgm9)!*>-A!8t5pPv&j3OLW_=dX^~ zQs}48iMyw~EcPT#Ao4p{e;qG;_94Hs>X%0yeH%C?&T`5gnE@>-$GRuE?M}?Zv+@>4 zs>;jZm6ZFOCWyi!@uQ}Wj~~1riAUDE<*%Qyy=32p9iDl3W^R>#(B``V>}bfWRmK6E zk3;-)aZ=Si3=eHGU;QR$Wt_MBEUu9MvH5X_eQ`X7q8Oh}X_lbkEY>p1VIYfOQxN+TqG=DDOyhZJ)`i%=m7J8=2t4k)EvkdeUWU#;}^hb&74@uU-phE+cEX zY(DZcN-Zv21JDjv`5;A|1=CQUn2B_k7$jVXgM*%>XDRw?Lxvdu?t`{s*BRJWUFpGd z|McktshVWU(NHPUGDrq9vw1c zo=3H3D9e~j$MvPYk}f2gn20gl&euGTDVlUY`{mUn-iUZ;$WXbZJi~88D4Mmr6-M$lDj_fYV7a^FO|ri*-3-65gm~Ab5S4Qynq{Js1}aaNXegP<*EX*T*mTkl zQe(jLu)?rTEs(CQUZU~Z;CfjS{ryiFY4@yQ*8fmu7fJRVS3?KdRm-L zaN{fJ&X{aK(PMQamK}?xz9nvhKPqS`A(dE@YfRGURxMIRC?-#L*`F(`IeB}rp_#yt z!!~xJHiP1o9pdmcR7%I>f*h+#L%2c_+fHEOv)mV-5r*SV=B-$9lk4Y;dg7Qyg91Fg z_V?Y~=mc>q@pU#gdId9MDMH$_lRv&PPI(xUj%>K{wSMag0qOq|+I^)!M(K=@zpGPO zbKbtsx&6UQyPwA!8#3Qn_=$2@UTAkWPd)eh$c&_UqSS+KDlrbi`hj}S*)xznWQPmx zpzJ2W1b@oLmxo>>m&PmL}a3ImhiT@@B@Xv+FYa{VpUuR#iY-8nWWL?VXU&#(5rI4Rnpu@evg_^P=` zZuRoOAjK`X{;U`@*DZC54w6f2@%vBw15YhPno1_s-|jk>h-p5cg1WKFZJX_c(dQSh zIG_he&}mem@8)7a^mVR(MuH<%GraO z47|#X=qj>V@5EzTM^D92>2YjM1WOv8sV46bn_8k=?yy@f|8NRiYF{G#?{XB_dHwb6 z+}}s(6)r-Sab+l~iL$B3)I8RV_aq^qfp)d;l#V{2+$;mHVP{e2R#NC^vuDFTQCkaL zehm6%$(y{g!DUT*j`Jt+cvlov&usZ}IJk3`Kyumt^yYT67x&7$!tvEY7 z*YK%yAc4g6dXr;T0~QW(14|ytk9Ki!@ImYI6q6CBrMft6FL+UAGxh1Jdg1b1E=Q|b zZfAG3xMs)QXYE6$l{r)P=QMcIM%B{|%+HM#X`Smk9$T=qn(X4Tgllm|Y|A$|>HP%h z-0`G}YNtfx*LkIcb)P0$O_CcBwEmZ3kDaF20GcE+%2e`?TH|D58Yw|8{Cr3H8yFQr zA>2+SAct;|LETrH9B&Z_WA#8-E$~OB_!3=I5*YB^6V{x7^8)HHa7psdCTvm=ir})# z>7b?l%**-aSIqxzJeSs&q?eGwm-p>Vt_LvZ(>=Hq&;2aGoEp}t$c#CFP{i}!L=;X8 zUPSp!D@ho7KSPkCzpT^|uef#pDqNqD41iTiJgVmg25c>k_Zfbq{GI~MMMZ{yi{o;1 zc+&r$A7P>KCT7E-2t4Kz+u4}el809n{^f0aHSXzU&=+i#&or-yntvmZJxc}ikNKZ~ zl3DPR{Uczj{D=PuNXMttabdvi0fKK277HG)AcOK~V0li*@g|Q^2uBTG!-A^`>U_he ztYLx@xX1-lgyk!Sn90<{HmZlcCqr|!=)xxaOO4Ha3Rp1Siwz`2U2`fM0x;7^Q(=IF zFol4poDVi3K_MhyrkVNx`IHszE4x{9<^N0O^B#Q7d1uN5As28yc$x*;TCzgq616=Z z{yU?E`Z+HAO_}>av>nw3VPbbFPVd}Oh5+{)Zf4bG{-&?+a^4GSatQH3?@rm_2AR(t zaXKcn4GM`2^`H0~&GrB~6Ed)LIzh2QWC_zp`5T9SkK1H+x0VW?Wx&9D(Gg|AQV!zipmnaS3Dt9h&8I_u$oSCqu)fri?Z& zLncosO^h^4?sSoSKsV_K_%{_J1Li@SBbpSh7&#Xh{v}QwY0BI86R&BEc5$6E-8~EW4Ban2zvw{xBm@NvG`?klZ5AnS>|OR^eBImg zlT3IFD{pK)LoM*47U)wcK9A$lg*04GPzY-cUIQC)sGJniz&>a*WW(3d!n8UM21fp+ zP17nF;2D5V%;s?&(0BR^cl7m=?%J712?kiKNZ+{_Nmm>=28$%0iE@Q2(H!u6MVeSW zbRrD)YrtSX$}`|RzuwT)+0R6{G7WDnaCxpB6yIz|*;wF|*Oko>murDWm12fPyd`dv z@v_YTczo34b#xZeCxaNSG~LZIiv^=EjG%Y-mad<`^+OC85NXQYC)@%ohFv-C6a5dL zxBcIE2hjhj7pOU&ra!3#V*lgqAVQ7>lm17tbP=}?=AY3+Axty%sl|pYv^_s%uUeL; zQT@1ZT5r90mv(;G)~mnxoA}GR#}EIb`_+3y=CmENFp;b#e}6;uUuH=it>x6P8)=oI zh8VCa6^1^68*oPrthlBOyn55|x8YtMHYB-lKy>al=5(O~HoJ9)}H^+8Zz+e z9v64s`e*p;<)(Jozi9n;MFs|xc+5r72QfDjj7ActTO8r#w6lulyZ0sDJT~6{l%19Q zdmYIP39MbRv?0_DyDp_5i=tqe@BwV2wE_zoN%`+chg?kEYat{SZom@I;>SL9a{aPm zaf9garsGAy-d6vc*IO(8-@`~C7TC>PZW0+Xkpn&x9NxTY`A~bkoTH%HTOqmb5-bZx z`;^{yy?y_ZTQ&<4=Ssc~hVE8C+_&OGN zTB2wJe2kpW!)N0n#{@42DMg3=cW+r?iaa}Xo_p0kTA7|8 z7j%t?Z2EJpBOc8{C)x+blB2nl6w$l*YIDh6prID%fb;9i91!xekh)747(8BgYAP}V zS^!+0Eza)`+};-h@3NlXX$Yng`4RM`xcHB*23;jG@D%VtM&m~66yk(5QgqteI7XI4 zkSs7=wBc#m%cL;^Lk(<{A7ok~=7nvDRWR-3v(rS1M7KE#H2o%3q+hr7^sVU|Kd^cn zx8wT;;@?NmR%s*2uic5Cwvqg(Mfg6KtNG2q4rg<*T3~t-IIFveuz3Ste+OZWmOs>U zy{Ydz#_z^)AIu1PoLnK04Dg6SeLc%GxrWy)`pZ`_Kp_q^U>T)Alf+&{BjyXS>0_$n zRxgZ756d*6fJsW>31)&^d^AC$Z_m?QWi@{yS4&}bGEu)CsGP?eAr;zBtAu*xyi8`_ ziVW$H*nTe*qW!8V;*(bk_n>I%Y@e^SejN}Zabb4NM@N=gtCK+%C~Kjz(5e^&gG7lqc>l45o-_; zU6WgMX6(e$K6<0~ggb5v`tb~9id)Q?d$N;b(FIo_<8Qwuaz(9GJr{PX=9NM4OIc7Q;!j+-K#>7%W(0qc$AIbilxiHnUcWig@-|C>W_%$xO*@Be%*6K z>-(u)Mj>vy@OekZn>5$ON4_*COvuViP%&fQK!;!9L;Un^BKIg%)|IFAN@mX1n`LQ>NkbTifIR2(v8hU1 zJ`xvqYXXisFzn_>C~tzxtc2E;#j`7+l>VNbdVo11%2_2o{bCvq6s)TXyeqdBw^zJza*kie0>C)#cAH6?ZvPCzTlqI zJ}3woGBM9w`e=(75N#;*-ffUYlCxO$*f5pyE86@lIV}-3-TraD=~>v~U5j5MjY%9T ziTzPa7`U{JLZFBlJ5Z|uTm%gFcpV+?f0udeqMvGeztj#i`>N1zzq0*499fi}dHI_$ z{|u@rV@K}d=f1}eHSb5zo)zBtZn<~Al&R0sXx@oFa}w|4@sK_*m zBu^~uUyp1O7#XK~3(s$XyMD$}V^%s2zRZ4YQ?6D+Kt6aMFz>ZN9*=#`YWFV9&@-cJ z(avPYNqULxtj+)NIVLb{OUv2v<>qbNsz_)CLJNJ8N1SomHoen@QFQUh81>ixn$A> zAMpFCZ!GwtV7K7{fkf1{9pG?03r7;8BS^5o0ok4Z)vuQX zA~{>ez$oy?8kLaU=L7ms{zlZ3XronjLTZ6pU-KCh1D+I35_Odg(O`9x774rD1o-=v zS~x($UmixXn0)?k%`cx0FC;J}BFPtlTD*A!3OJp~1P_~8@%`V-t^0qYVa`eL^$=CG z8w_PR!?xEVO1@q^!46N#@|nmmjIKU=W^BA9af#D36Y)<}Sws!_a6Ac#P)(EvW}LQ@ z)g7dbJWp`9$-6%{QAfs4pqf8WyeMQdad(Dah>&IjBJ2_|{}(-yS`DLovL4wB{n8?n zXa~MdHc=2r5JS&AjLPhAC1RRRa4QPRXQjzMtq>=W0)Fq6>4IOpn=iaCwZ>m{!TA8Jmsrr56-1B?jb|=u4PhTb&DS*&cn!?X&6p@Y0>X zvTu}*61sTjzj8>i`H3|AaD%f5GD!bLmRQ5DrOCK)V*_K2WZI^s0x&1v8NFcpf2ixy~POI$eZ#Tm=@$zFYbxvV* zUl>*ofV=h!J@M(~-nq7h)wwyunVAa@=wFKf2`U7ym`)qCAT7 z;LOe9GkO6AvpCkDBXoD<1hZhw{xYAD@ zpKc{zG{UeuK>_Dj8d>23^EZ#&oCs--y@z*22_ygpJpX7X^GSFF*#66ToCJ!XKx=%l zIeP`I&uVP&PP@aM6wL+enN>KIq$%zsmJ&^pO9K5t#pw`g6Vx3U(ImK9z;kFQ|A!Ny zcF~5ZpC3M8WY7Z3^YMpJpBuFx4Krl)jr{_W9KL<`dl*#5C^rELzl~E);}9BKJ)l>z zFxcsF^+QOMEG`zT)`e3nY67ZAZQRJd|KAjwEg$?cS_jlJ;OkJtZ^1Rsaj7+4o8GXN zt1#m0Jcwc7@lKSi;uFhmdjv$HfI@7EJ@z(yjx#=4_xHXm)=;Yp-<<-@;x=wvF9@HJ zq6;X*QO7_=PO7|7I@gZ`me%%vf-h>lZ3_5kBeBO8?gnOf?AaI&6;CynwBtR2`t6<6 z4~_qKj01IAua3aDJ?C; zbGk>PVhaAW@zaq{ruWXFNzC9gdIf5=m?f?|pX|ESB*8$)yIO$KcJ{HQ>OOk+=+lDV zTd>JC_@okd+hY=S3Rq?DS zoT&a7AZ6kEX82QW&R{8cXGcjbvF-t|GN9P=Tdo(lGtl3sSxra`uDH2K>$vyR*pqj_iHu}!7Pr}Uz7Co>O0FzGGkNEG4N||G@o9* zip=8B3HIYzr0ui4#t66cX}h%=bUxv_C#hFZEo=GRfDFp4vzCrn^ENh~e4V$7;jh=v zL+$Mi*&RD%x)InqX0LH)8R|U9I2L6POILc~`g=BKvvK*$(lt|J`2hEqr1fKjKP_)X3Gs zgTtXE=+-O|im)WomQ$9544&)b|9$59#U74xOcg`>4&RD^{6L+6d9_cdNAYzf?GafZ z-4DvS;?9G=h+kFZE|C(JZQDxkv4di}iwB=~rRG186Cw~utVIkrCG_VBlOIctw#JT} zXxOvY`mYJKiA)~G9wvfsJbb|)Bxs~8lXVpZ!69-7*|*`Xlkcx}sRE7tI~VjbCc5eP zhHjUVtdeE$vCLH@IVB1)!=zcj@)`W7`{HToomjFPO&WqSmqyvB&$b@0v!1>~<6(0e zUz;l7xoJ^|-Yt!Muo&bSWH0Z{PWx7%G2WZ`0(bta+-fB);M}hzdfmL??u2NCr6erx z6A7&6Q)zh!Z!dcq&nUsJ7)&RDhE~bZX{}{Ml|3U|#bm{-S~7H_hO+B%n5H$`+BuS-&dm3jBJmH%(c3tJ&tw&~Wcn1L3=OdkhyI{SgP-MhLmFNNke~ z3K66MDQxT>?r!fMR#tE<6=>I7Vo5a#yD*D0`+e4DvhuxNdK5Km39b^klDL{JoJAUz zAzhA{>Equvq~8;`X<&<>pD>+je1a3h?z2Euql5XG0#fQVv%&lgxOyL%^2bA9` zSlX$a1s_0nq-FWj{Dff7jg5g_!K7?m%soU z2$1GVpYRJ8H~pFWD|c7_?7Wf#zx2w^JPn1BZ!&T8Zq13`mamAyo)lf42fufBdW!bC zld-qC?8H}|eRTI9-}r=dw}QV~nOlJZy|F%E?d>7_wDH9Pfpmhyq?p1UmW~|~ZR%dJ z>rPB}QUE8n`6V@LUI^MtTshw)%n|q78#dXu^-FoYa7*6HWjyUIn^f#D96Zk0V4f@= z)#d7pkjxG%j)ueXB1D;V#B^WxD&|mYL+?0Ep#vyoN#T4PpvyFK1YF$HjW0}v5l5k( zgAJ+ji`DQ1x&b|b6QL}yeez}20oX@>`wJm0XPdrBNsZgj&Gc|YaXbqtEladvQmQmN z!!Fvpwow&wYR4O^B}_`*?Tz;+U(b3xeB%JT2%}3jazr2sGyJ5X2RP~#hU$O8;iDKA z8YdZf;pgfCB?hczwH*LH&rqWsU|3de6Wu*FXP)GIgf{shnMAr3P3-9Y39H{w5%`X6 zg%(Y6tTF+-zw(uE+YIwV67K~Qv~|Mi&w04dl#%T*2TXtzCATvwnVh^DQHLO+Q$!93 zd1SCQC_wz@NYnpTrW+T&hihG!`~=K4Pe_-3niJi}NpVaMIi$hm3IShu@aXpS5WoAs z91#4y%y70$Nga+zolRE-{$(ZdK(5Cwo(VYP&haNx*^vIgm>k~CubL~;(w5%9jGNX`qxc80{joI zAp-rtTE0gY?^xibdNlfva?|H(W~X`%i}6nt54N;lVORU~cHZ3Z#ZNDVU;3;R_Kf`! ztf#)&pzl3}r$R2~>WhPy-Xc;`o;c$UJ~@WOx^e9_M{Ir<+o-JKe+vd_<}+u*DI|(L zgvfB4b#WoCpKRFLrQF-&{5@MdW{{_G*Iu27nO)*d8TxCrWkS&4wIPM|fTkHu%}(q5 zXL3-Fonvi@Gffli!atvzpA+bqvw+F_g^#bhd>G^;&8(mPcvc`CP+Xsf5}cy4a&reMovj)icgt-vAgMRCMC zp-;10y@Pu05qn6qKAhL(Vg0~*WuGk?^2GR12NZ|T);nP~c$l0WB4n353h6?5u`XWt zW!_18ItW69aUlW&h$M%N^=H^vGv7$Y{+4*eOdvTVgYe1z)>U%9FFmR;`G!JFG2`nt zJt!aiLhV<5ltG{nmmi&%#;3oMA^Y$OdGt)1lN?EY?wvUKmObvnM#4S|9IK;D5hJ_O zPvrsepW=nt;iT{@m|4(Jask)xOKq6Jz81LN`BosI&e;POIU62oC~=c&D~gpDW&`Ko zy<(9bcoP~thGxdX{s)j!yP3XKj97dfp!n1HK7Iod;a}pzW=kprQP*a!uB$@JobwT%9o>6*2S4v7# z#f9)LdeeE%aSb6EuR@G82~+(a>@XM{+gon$t__9oBx&gG!rs zvYuTCwDRuLYBI@0F4O(r6|P!+Nh84a?v620b&=E|m|I|OMqwk1P2}vG zd)U$X4}Vej3dPw%Iq#MDnE?nIHWa>^y4n0~ajtba+Uv|v( zVr~8YUuf0_KkZcuBv(IxftH|BFh^ZhvQDx8qC05mQ;O5j85n0qC4>`#MuxZ2ZEPBBMey}20b#(8c zd0TRhn!aYKYb@AjRO-Q6ZOz+K4kI|TEb;PN8~WSKGA9?WR6$~g?nl|TYN#Ah;Y~L~ z!P}gT{Uw&e3AfZNVHUK0MfZ==evR;Zf8TII7#8jS|SSGHS;qN9DTpqSJhUBlN&m-58;2l z7RASaA$=rJIozK>ipI;(_uuCJAsI_K)29t5FK|DaCr6I+-ON|~XPdJ>!N#8oZ?bg`lAQgWSi>L;v5VN6Bm6%+ToHZ&qtuTQFyhT14vd9!!iG%nQrS)<;?q$* z5DCLMrkT5TZGiGYZ>MysW0`F9!_U%YO+!&zJ62`UmyzV$^YQ64Bo#&!_q?ps0v#nSpK5o-Vb>Tvbuk40bJ@gLKH!?S=`19TR-oZuv<$ZC+b+1*Yf0-&%(p1^$* z;WgE2{|fC|{O87&*X_=s_bWeKZ3@m3#)cL%_i30UPFhPALgu2#fnz!u<5=Q@-RAA zD#zhhFlT>U>*Yq2VuwjcKZnz_Yd)ft>XmsD_hE#>2vL1CTD!3M2$?Ef|2~55dhET` zXw^$l(-inlKM;R+q0qXj>cXvMm{?3L0$ESy?h4v2-!iw0v4MD++_eAxiHURf{_L|l z=6>c_Okl??lj)DlSC6jruS#v^-b^MdH7=CfZi>N?x)Ysem%2=2<_3)4UK#7gVaQD< zudv6WJTg1RGB zevA6>(OFlwAb##dPm>j+I^$SqcR<)%e`;Ajd4AW^wV)jcBknyuKJvX|shj0Cbm^U6 zZa}7HWpi~DE?>)GKOL9&DhhWK{_p_aY5}MM*-7Z02j=D34wnbr@*@~fVQ?tb&+l7g z4jdT-iO-9tST|zJ%6O?IXSW<@2&5{a0EI+~{C%CjQ}cG@)QBu&Qn^eL1Kx4cBsUZ)_sfIH1O>ES81=n#pF3 z*lL*v%Hm2A{bTQh38IS20-&5H~8H+np$N z6DY@;8ToTX?kW7bJj185BF8;<(F zL!4$}J1yHOr0{CDWh;!0rkjXR=*oH4eYGTmLT!JbxOkGfZf+d>j;8+Fhe`S= zOf}<|d17fwB8GF{s;<&aPQBzI8n5A`2y3^oFigcg6uL*A_0S^hp9THTrKP+x1Gi|n zt|)I@(krw^RDPbohZk)(@?nnSvI2BsI_I?aFM?@%t~>4#sB8Z|byeQrZU5xg163P7 z5W_}@uC5EQ-WDxqTmIq;vzUeHW}fP!wT?43F1u0|IVuwp_IvqXYM{kSt+*`(9r#}c zAC#Cp*gt#xH1Rcm68omgV{k|)HBpAd&q@p>uJWmenLNr!(tDM%BEi0*FVE1cI$C%jFR?Ku3pFW( zMrm*#CW%*wXe`W0(KObVrO-igW%79M`^@zCtwEZ&6|6}hFB-cBHEtB8 z`XSUlq_sChWwjw)!-6Nlaz{b2;bxpVe)}A*%CO*Luyp5kAtFbR+9z~dYA9MixaVVZ z7n&qZ$EnkBRYn6>)_P7#7b?gE(jz0w5C49Q>H@8z*t6ByY6m;SCwq9bGScm)G0b5!F?y6-LLMi@i%Z0D~$@j0Plmg1p@W#*AUN?4bNsj z$YsOH5=WE3xj1OceDArJg}8!s7Q|Q#6)_jHuH>OI#F%b(j7R8rYKmGTIvs`6-Kz{9 zb?2w{X&gZthE<^7it zDk7lWR_!ACAz2{LulEzYu?P$Mmpw?~;W`hoyqXzv2N(WDX=+*r-t12^oJ0tXMgU># zZ}K;5Ks$2=L4^21yim@>rstte{dNAjNc-gAdlR3sO{a7se?>eQbvf&$_bx(vv>w#~ z3RS7i!oN|~M?}6@Tao-TuQa=0h9TZ zHsx9I2dF{@-@I`)H*7JhyEJX5+5#^MP_c%R|YU4}CRueiow z)t}?2y`Ft>ukperl}Xqa10-3(w{L%p&3XLxJV!N%al9ck$J!_A@j2@CNqhTOAjw03 z0gKN)DTyP4?=hSIDZYBCy)-Qq9}nBx)1;a&82N`pdb|l2WH&k9+IQ9N5m-IgV26Q5v3FzHy_~ zh2NX*gE$MQ2*gmGV|C%r!y-zeAPgWP=cNTQ(@5L1!=VO;0&Q<{KSA&Ho(d+!z{gb{ z<36rUzQrFK`XkIvjTOZY2IZ1E?QBKit{?GJgCfTcS1LmuvR;*Z951kTSYf6jKwo9M z3FL6F?vTdr;M(s^1mPpsYJ7(u*T@HszrAZ4iOO2s@g0`Gpl(E4+68(S!Rr!hTFPPPSe<%qR3J(EHlxP2FzsOjgA%ArTOnx#SO$zY z1Yc4Gzl=#;OkjbLM-PBCW>RyNFp!a^)qqL@@`CHsL#qx?QD60$nbZk-+>)SJ-MFeS z5er>wRT@VlBND!^tf-^`If6us;~&Rzw+PJB3jsDk_&28D>T+`H>T+^o;<=`5VspN? z6n}@8%RcDUHX%=X=~8p^lAk-*ITkdYcOGNEejS)GdW;@~n~NJ|4JQb2X%(p1z`;r} zd1!f%aLB_LDm#4t&5|HAhJ)#U5Xg|i4u42Vn-8Z2KV1HIr!NZ^kL^Bn4e0p;s);H2NA^ERk@AIo#77FQHlfWn4}AJXQP=yZOG;>bGLQis%jtPO?T@?qOQ znu25Pgxu%}wQ+8Ff)!_v8|{vFjPK5vcyr|u5!qKGfOmk z3HPC>Lhz!VN*^S#5_a)(s%A!I0I!E#$L3fCyuEWZkUbg2!97bZ*7$E}%gri%PZ(og zuy4_QanU#gzu%dfw-MeUuK%$bo-PWk&bLle^74ov7_vW6OZrH5EzFhq_$}y&Me0ckhD2-O)tb$Sg>lNyP!k{7 zV~K~8QOszqn|EVjP%8JCY%>8-gc(9qM>}rm3V!y)J&Yh1+y_ z|Lz7)sIYyAE&vq_hv-9aS=onx^#JypC#6bJ$T%9e?Dc~MM& zA*3u^Gz10zb^iZ!_WzSubJec@sA6&lI(nePAws`qk`(59sc z=MMY0LcI-rI!HZiOP1*jqzby88?tVhCkN>VeqyAHhW{#Gt}e|u9~a=7WmxzAcg0-f z&h)V7KbvD_XoE{HtSb((0)_N@5Al@Qzw&)gQ zoIgRcaPdkhZR@w3mfOFuyU<6K&$P8*p=Y?jQZRTe;^%g~qh53Sfp-3z)YGFLw`vzE z95??=wWFq#hL9BY{Uxop{cE9X4EvgGa?kJpOXRBzLdZ;wz#I%-bFjQW>rQ6z?|njt zG41$IkU~WBiDT$1bY(;e$`)9fLi5ao$pPba`AY@YO2a3fi#_B`-_&-4uQ>kMu!GCO zkix=LYFuDXw)BoYp6ID+pO;ZCe8`~mgWTbZ8*nGbbM3+oYf>^NFRy4l6S;b;d@Q*r zV>}H11aoWAag&6}w$bJXg8oCBDz(}g?N}lcGRV-=mR%`XwP#w4(|W}QaxVR_pBh(A ze)Y*_#m++O(J7Vaory(T2}}r literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/channel.1degree.dot b/doc/schemaspy_hubzilla/diagrams/channel.1degree.dot new file mode 100644 index 000000000..04ff9b9d5 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/channel.1degree.dot @@ -0,0 +1,415 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "oneDegreeRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "attach":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"channel_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"outq_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"outq_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"outq_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "profext":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"xtag_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"xtag_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"xtag_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach
id
aid
uid
hash
creator
filename
filetype
filesize
revision
folder
flags
is_dir
is_photo
os_storage
os_path
display_path
data
created
edited
allow_cid
allow_gid
deny_cid
deny_gid
< 3105 rows
> + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
channel
channel_idint unsigned[10]
channel_account_idint unsigned[10]
channel_primarybit[0]
channel_namechar[255]
channel_addresschar[255]
channel_guidchar[255]
channel_guid_sigtext[65535]
channel_hashchar[255]
channel_timezonechar[128]
channel_locationchar[255]
channel_themechar[255]
channel_startpagechar[255]
channel_pubkeytext[65535]
channel_prvkeytext[65535]
channel_notifyflagsint unsigned[10]
channel_pageflagsint unsigned[10]
channel_dirdatedatetime[19]
channel_lastpostdatetime[19]
channel_deleteddatetime[19]
channel_max_anon_mailint unsigned[10]
channel_max_friend_reqint unsigned[10]
channel_expire_daysint[10]
channel_passwd_resetchar[255]
channel_default_groupchar[255]
channel_allow_cidmediumtext[16777215]
channel_allow_gidmediumtext[16777215]
channel_deny_cidmediumtext[16777215]
channel_deny_gidmediumtext[16777215]
channel_r_streamint unsigned[10]
channel_r_profileint unsigned[10]
channel_r_photosint unsigned[10]
channel_r_abookint unsigned[10]
channel_w_streamint unsigned[10]
channel_w_wallint unsigned[10]
channel_w_tagwallint unsigned[10]
channel_w_commentint unsigned[10]
channel_w_mailint unsigned[10]
channel_w_photosint unsigned[10]
channel_w_chatint unsigned[10]
channel_a_delegateint unsigned[10]
channel_r_storageint unsigned[10]
channel_w_storageint unsigned[10]
channel_r_pagesint unsigned[10]
channel_w_pagesint unsigned[10]
channel_a_republishint unsigned[10]
channel_w_likeint unsigned[10]
channel_removedbit[0]
channel_systembit[0]
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "event" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
event
id
aid
uid
event_xchan
event_hash
created
edited
start
finish
summary
description
location
type
nofinish
adjust
ignore
allow_cid
allow_gid
deny_cid
deny_gid
event_status
event_status_date
event_percent
event_repeat
event_sequence
event_priority
event_vdata
< 412 rows
> + URL="event.html" + tooltip="event" + ]; + "groups" [ + label=< + + + + + + + + + +
groups
id
hash
uid
visible
deleted
name
< 310 rows
> + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + +
hubloc
hubloc_id
hubloc_guid
hubloc_guid_sig
hubloc_hash
hubloc_addr
hubloc_network
hubloc_flags
hubloc_status
hubloc_url
hubloc_url_sig
hubloc_host
hubloc_callback
hubloc_connect
hubloc_sitekey
hubloc_updated
hubloc_connected
hubloc_primary
hubloc_orphancheck
hubloc_error
hubloc_deleted
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "notify" [ + label=< + + + + + + + + + + + + + + + + + + +
notify
id
hash
name
url
photo
date
msg
aid
uid
link
parent
seen
type
verb
otype
< 3528 rows
> + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + + + + + + + + + + + + +
outq
outq_hash
outq_account
outq_channel
outq_driver
outq_posturl
outq_async
outq_delivered
outq_created
outq_updated
outq_notify
outq_msg
outq_priority
< 3660 rows
> + URL="outq.html" + tooltip="outq" + ]; + "profext" [ + label=< + + + + + + + + +
profext
id
channel_id
hash
k
v
< 30 rows
> + URL="profext.html" + tooltip="profext" + ]; + "register" [ + label=< + + + + + + + + + +
register
id
hash
created
uid
password
language
< 30 rows
> + URL="register.html" + tooltip="register" + ]; + "term" [ + label=< + + + + + + + + + + + + + + +
term
tid
aid
uid
oid
otype
type
term
url
imgurl
term_hash
parent_hash
< 68 980 rows
> + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + + + + + + + +
updates
ud_id
ud_hash
ud_guid
ud_date
ud_last
ud_flags
ud_addr
< 30 rows
> + URL="updates.html" + tooltip="updates" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; + "xprof" [ + label=< + + + + + + + + + + + + + + + + + + +
xprof
xprof_hash
xprof_age
xprof_desc
xprof_dob
xprof_gender
xprof_marital
xprof_sexual
xprof_locale
xprof_region
xprof_postcode
xprof_country
xprof_keywords
xprof_about
xprof_homepage
xprof_hometown
< 30 rows
> + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + + + + +
xtag
xtag_id
xtag_hash
xtag_term
xtag_flags
< 30 rows
> + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/channel.1degree.png b/doc/schemaspy_hubzilla/diagrams/channel.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..8ef2279910a6406dccabc4189192eac85884daf4 GIT binary patch literal 109873 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 A82|tP literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/channel.2degrees.dot b/doc/schemaspy_hubzilla/diagrams/channel.2degrees.dot new file mode 100644 index 000000000..9ece4fbd5 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/channel.2degrees.dot @@ -0,0 +1,595 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "twoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"channel_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"outq_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"outq_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"outq_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"xprof_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"xtag_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"xtag_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"xtag_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + +
abook
...
< 1685 rows
> + URL="abook.html" + tooltip="abook" + ]; + "attach" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
attach
id
aid
uid
hash
creator
filename
filetype
filesize
revision
folder
flags
is_dir
is_photo
os_storage
os_path
display_path
data
created
edited
allow_cid
allow_gid
deny_cid
deny_gid
< 3105 rows
> + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
channel
channel_idint unsigned[10]
channel_account_idint unsigned[10]
channel_primarybit[0]
channel_namechar[255]
channel_addresschar[255]
channel_guidchar[255]
channel_guid_sigtext[65535]
channel_hashchar[255]
channel_timezonechar[128]
channel_locationchar[255]
channel_themechar[255]
channel_startpagechar[255]
channel_pubkeytext[65535]
channel_prvkeytext[65535]
channel_notifyflagsint unsigned[10]
channel_pageflagsint unsigned[10]
channel_dirdatedatetime[19]
channel_lastpostdatetime[19]
channel_deleteddatetime[19]
channel_max_anon_mailint unsigned[10]
channel_max_friend_reqint unsigned[10]
channel_expire_daysint[10]
channel_passwd_resetchar[255]
channel_default_groupchar[255]
channel_allow_cidmediumtext[16777215]
channel_allow_gidmediumtext[16777215]
channel_deny_cidmediumtext[16777215]
channel_deny_gidmediumtext[16777215]
channel_r_streamint unsigned[10]
channel_r_profileint unsigned[10]
channel_r_photosint unsigned[10]
channel_r_abookint unsigned[10]
channel_w_streamint unsigned[10]
channel_w_wallint unsigned[10]
channel_w_tagwallint unsigned[10]
channel_w_commentint unsigned[10]
channel_w_mailint unsigned[10]
channel_w_photosint unsigned[10]
channel_w_chatint unsigned[10]
channel_a_delegateint unsigned[10]
channel_r_storageint unsigned[10]
channel_w_storageint unsigned[10]
channel_r_pagesint unsigned[10]
channel_w_pagesint unsigned[10]
channel_a_republishint unsigned[10]
channel_w_likeint unsigned[10]
channel_removedbit[0]
channel_systembit[0]
< 112 rows14 >
> + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + +
chat
...
< 10 rows
> + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + +
chatpresence
...
< 11 row
> + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "dreport" [ + label=< + + + + +
dreport
...
< 18 579 rows
> + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
event
id
aid
uid
event_xchan
event_hash
created
edited
start
finish
summary
description
location
type
nofinish
adjust
ignore
allow_cid
allow_gid
deny_cid
deny_gid
event_status
event_status_date
event_percent
event_repeat
event_sequence
event_priority
event_vdata
< 412 rows
> + URL="event.html" + tooltip="event" + ]; + "group_member" [ + label=< + + + + +
group_member
...
< 142 rows
> + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + + + + + + +
groups
id
hash
uid
visible
deleted
name
< 310 rows
> + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + +
hubloc
hubloc_id
hubloc_guid
hubloc_guid_sig
hubloc_hash
hubloc_addr
hubloc_network
hubloc_flags
hubloc_status
hubloc_url
hubloc_url_sig
hubloc_host
hubloc_callback
hubloc_connect
hubloc_sitekey
hubloc_updated
hubloc_connected
hubloc_primary
hubloc_orphancheck
hubloc_error
hubloc_deleted
< 32 658 rows14 >
> + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
item
...
< 337 583 rows
> + URL="item.html" + tooltip="item" + ]; + "mail" [ + label=< + + + + +
mail
...
< 239 rows
> + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
manage
...
< 10 rows
> + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + + + + + + + + + + + + + + + +
notify
id
hash
name
url
photo
date
msg
aid
uid
link
parent
seen
type
verb
otype
< 3528 rows
> + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + + + + + + + + + + + + +
outq
outq_hash
outq_account
outq_channel
outq_driver
outq_posturl
outq_async
outq_delivered
outq_created
outq_updated
outq_notify
outq_msg
outq_priority
< 3660 rows
> + URL="outq.html" + tooltip="outq" + ]; + "photo" [ + label=< + + + + +
photo
...
< 15 888 rows
> + URL="photo.html" + tooltip="photo" + ]; + "profext" [ + label=< + + + + + + + + +
profext
id
channel_id
hash
k
v
< 30 rows
> + URL="profext.html" + tooltip="profext" + ]; + "register" [ + label=< + + + + + + + + + +
register
id
hash
created
uid
password
language
< 30 rows
> + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
shares
...
< 10 rows
> + URL="shares.html" + tooltip="shares" + ]; + "source" [ + label=< + + + + +
source
...
< 20 rows
> + URL="source.html" + tooltip="source" + ]; + "term" [ + label=< + + + + + + + + + + + + + + +
term
tid
aid
uid
oid
otype
type
term
url
imgurl
term_hash
parent_hash
< 68 980 rows
> + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + + + + + + + +
updates
ud_id
ud_hash
ud_guid
ud_date
ud_last
ud_flags
ud_addr
< 30 rows
> + URL="updates.html" + tooltip="updates" + ]; + "vote" [ + label=< + + + + +
vote
...
< 10 rows
> + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
xchan
xchan_hash
xchan_guid
xchan_guid_sig
xchan_pubkey
xchan_photo_mimetype
xchan_photo_l
xchan_photo_m
xchan_photo_s
xchan_addr
xchan_url
xchan_connurl
xchan_follow
xchan_connpage
xchan_name
xchan_network
xchan_instance_url
xchan_flags
xchan_photo_date
xchan_name_date
xchan_hidden
xchan_orphan
xchan_censored
xchan_selfcensored
xchan_system
xchan_pubforum
xchan_deleted
< 22 301 rows35 >
> + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
xchat
...
< 19 rows
> + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
xconfig
...
< 18 rows
> + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
xign
...
< 10 rows
> + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
xlink
...
< 14 105 rows
> + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + + + + + + + + + + + + + + + +
xprof
xprof_hash
xprof_age
xprof_desc
xprof_dob
xprof_gender
xprof_marital
xprof_sexual
xprof_locale
xprof_region
xprof_postcode
xprof_country
xprof_keywords
xprof_about
xprof_homepage
xprof_hometown
< 30 rows
> + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + + + + +
xtag
xtag_id
xtag_hash
xtag_term
xtag_flags
< 30 rows
> + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/channel.2degrees.png b/doc/schemaspy_hubzilla/diagrams/channel.2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..05fa33bddf04b09633497ecc750f594ae4f420a0 GIT binary patch literal 140410 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

    $<%=#-yv3rJ-JC}_;H+WY+) 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�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 Zn0}G`tJeZak_`N5so%eYR(%xqzW~cd7-awe literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.dot b/doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.dot new file mode 100644 index 000000000..e2f023202 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.dot @@ -0,0 +1,73 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "oneDegreeRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "chatpresence":"cp_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence" [ + label=< + + + + + + + + + +
    chatpresence
    cp_idint unsigned[10]
    cp_roomint unsigned[10]
    cp_xchanchar[255]
    cp_lastdatetime[19]
    cp_statuschar[255]
    cp_clientchar[128]
    < 11 row0 >
    > + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xchan
    xchan_hash
    xchan_guid
    xchan_guid_sig
    xchan_pubkey
    xchan_photo_mimetype
    xchan_photo_l
    xchan_photo_m
    xchan_photo_s
    xchan_addr
    xchan_url
    xchan_connurl
    xchan_follow
    xchan_connpage
    xchan_name
    xchan_network
    xchan_instance_url
    xchan_flags
    xchan_photo_date
    xchan_name_date
    xchan_hidden
    xchan_orphan
    xchan_censored
    xchan_selfcensored
    xchan_system
    xchan_pubforum
    xchan_deleted
    < 22 301 rows35 >
    > + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.png b/doc/schemaspy_hubzilla/diagrams/chatpresence.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..0439bc54ba4ea68c1bb3801478e05821d0cf82e1 GIT binary patch literal 10836 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 literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.dot b/doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.dot new file mode 100644 index 000000000..f02beceb9 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.dot @@ -0,0 +1,414 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "twoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"cp_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + +
    abook
    ...
    < 1685 rows
    > + URL="abook.html" + tooltip="abook" + ]; + "attach" [ + label=< + + + + +
    attach
    ...
    < 3105 rows
    > + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + +
    channel
    ...
    < 112 rows14 >
    > + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + +
    chat
    ...
    < 10 rows
    > + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + + + + + + +
    chatpresence
    cp_idint unsigned[10]
    cp_roomint unsigned[10]
    cp_xchanchar[255]
    cp_lastdatetime[19]
    cp_statuschar[255]
    cp_clientchar[128]
    < 11 row0 >
    > + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "dreport" [ + label=< + + + + +
    dreport
    ...
    < 18 579 rows
    > + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + +
    event
    ...
    < 412 rows
    > + URL="event.html" + tooltip="event" + ]; + "group_member" [ + label=< + + + + +
    group_member
    ...
    < 142 rows
    > + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + +
    groups
    ...
    < 310 rows
    > + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + +
    hubloc
    ...
    < 32 658 rows14 >
    > + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
    item
    ...
    < 337 583 rows
    > + URL="item.html" + tooltip="item" + ]; + "mail" [ + label=< + + + + +
    mail
    ...
    < 239 rows
    > + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
    manage
    ...
    < 10 rows
    > + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + +
    notify
    ...
    < 3528 rows
    > + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + +
    outq
    ...
    < 3660 rows
    > + URL="outq.html" + tooltip="outq" + ]; + "photo" [ + label=< + + + + +
    photo
    ...
    < 15 888 rows
    > + URL="photo.html" + tooltip="photo" + ]; + "profext" [ + label=< + + + + +
    profext
    ...
    < 30 rows
    > + URL="profext.html" + tooltip="profext" + ]; + "register" [ + label=< + + + + +
    register
    ...
    < 30 rows
    > + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
    shares
    ...
    < 10 rows
    > + URL="shares.html" + tooltip="shares" + ]; + "source" [ + label=< + + + + +
    source
    ...
    < 20 rows
    > + URL="source.html" + tooltip="source" + ]; + "term" [ + label=< + + + + +
    term
    ...
    < 68 980 rows
    > + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + +
    updates
    ...
    < 30 rows
    > + URL="updates.html" + tooltip="updates" + ]; + "vote" [ + label=< + + + + +
    vote
    ...
    < 10 rows
    > + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xchan
    xchan_hash
    xchan_guid
    xchan_guid_sig
    xchan_pubkey
    xchan_photo_mimetype
    xchan_photo_l
    xchan_photo_m
    xchan_photo_s
    xchan_addr
    xchan_url
    xchan_connurl
    xchan_follow
    xchan_connpage
    xchan_name
    xchan_network
    xchan_instance_url
    xchan_flags
    xchan_photo_date
    xchan_name_date
    xchan_hidden
    xchan_orphan
    xchan_censored
    xchan_selfcensored
    xchan_system
    xchan_pubforum
    xchan_deleted
    < 22 301 rows35 >
    > + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
    xchat
    ...
    < 19 rows
    > + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
    xconfig
    ...
    < 18 rows
    > + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
    xign
    ...
    < 10 rows
    > + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
    xlink
    ...
    < 14 105 rows
    > + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + +
    xprof
    ...
    < 30 rows
    > + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + +
    xtag
    ...
    < 30 rows
    > + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.png b/doc/schemaspy_hubzilla/diagrams/chatpresence.2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..3485694e901a8691887ae67a40577f0156964551 GIT binary patch literal 67594 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
    oWVadMq6zvU-auPxvgqT3dLeeYt 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 + clients + client_idvarchar[20] + pwvarchar[20] + redirect_urivarchar[200] + nametext[65535] + icontext[65535] + uidint[10] + < 00 rows0 > + > + URL="clients.html" + tooltip="clients" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/clients.1degree.png b/doc/schemaspy_hubzilla/diagrams/clients.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..e604508976dfbdbdaec0b9fabcd4321d401b83fb GIT binary patch literal 3082 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 "clients":"client_id.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "auth_codes":"id":w -> "tokens":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "tokens":"client_id":w -> "clients":"client_id.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "auth_codes" [ + label=< + + + + + + + + +
    auth_codes
    id
    client_id
    redirect_uri
    expires
    scope
    < 20 rows
    > + URL="auth_codes.html" + tooltip="auth_codes" + ]; + "clients" [ + label=< + + + + + + + + + +
    clients
    client_idvarchar[20]
    pwvarchar[20]
    redirect_urivarchar[200]
    nametext[65535]
    icontext[65535]
    uidint[10]
    < 00 rows2 >
    > + URL="clients.html" + tooltip="clients" + ]; + "tokens" [ + label=< + + + + + + + + + +
    tokens
    id
    secret
    client_id
    expires
    scope
    uid
    < 10 rows1 >
    > + URL="tokens.html" + tooltip="tokens" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/clients.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/clients.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..7a74599f61d38413f89ca68005c03c8b1c6c3d39 GIT binary patch literal 7288 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 sEVKP7=Gv?AI2Zn3kGcQnbleS76Zz_* + config + idint unsigned[10] + catchar[255] + kchar[255] + vtext[65535] + < 083 rows0 > + > + URL="config.html" + tooltip="config" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/config.1degree.png b/doc/schemaspy_hubzilla/diagrams/config.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..55527b3b9b676228e89488497688dcf97e8c8c8a GIT binary patch literal 2667 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 "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "config":"id":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "config":"k":w -> "cache":"k":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "conv":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fcontact":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "ffinder":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "group_member":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "groups":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "item":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "item_id":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "likes":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "mail":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "pconfig":"elipses":w -> "cache":"k":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "photo":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profdef":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profext":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profext":"elipses":w -> "cache":"k":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "profile_check":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "register":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "sign":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "sys_perms":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "sys_perms":"elipses":w -> "cache":"k":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "xconfig":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xconfig":"elipses":w -> "cache":"k":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "xign":"elipses":w -> "verify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "attach" [ + label=< + + + + +
    attach
    ...
    < 4105 rows
    > + URL="attach.html" + tooltip="attach" + ]; + "cache" [ + label=< + + + + + + +
    cache
    k
    v
    updated
    334 rows5 >
    > + URL="cache.html" + tooltip="cache" + ]; + "config" [ + label=< + + + + + + + +
    config
    idint unsigned[10]
    catchar[255]
    kchar[255]
    vtext[65535]
    < 283 rows0 >
    > + URL="config.html" + tooltip="config" + ]; + "conv" [ + label=< + + + + +
    conv
    ...
    < 115 rows
    > + URL="conv.html" + tooltip="conv" + ]; + "fcontact" [ + label=< + + + + +
    fcontact
    ...
    < 10 rows
    > + URL="fcontact.html" + tooltip="fcontact" + ]; + "ffinder" [ + label=< + + + + +
    ffinder
    ...
    < 10 rows
    > + URL="ffinder.html" + tooltip="ffinder" + ]; + "group_member" [ + label=< + + + + +
    group_member
    ...
    < 242 rows
    > + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + +
    groups
    ...
    < 410 rows
    > + URL="groups.html" + tooltip="groups" + ]; + "item" [ + label=< + + + + +
    item
    ...
    < 437 583 rows
    > + URL="item.html" + tooltip="item" + ]; + "item_id" [ + label=< + + + + +
    item_id
    ...
    < 1194 rows
    > + URL="item_id.html" + tooltip="item_id" + ]; + "likes" [ + label=< + + + + +
    likes
    ...
    < 20 rows
    > + URL="likes.html" + tooltip="likes" + ]; + "mail" [ + label=< + + + + +
    mail
    ...
    < 539 rows
    > + URL="mail.html" + tooltip="mail" + ]; + "pconfig" [ + label=< + + + + +
    pconfig
    ...
    < 2719 rows
    > + URL="pconfig.html" + tooltip="pconfig" + ]; + "photo" [ + label=< + + + + +
    photo
    ...
    < 25 888 rows
    > + URL="photo.html" + tooltip="photo" + ]; + "profdef" [ + label=< + + + + +
    profdef
    ...
    < 10 rows
    > + URL="profdef.html" + tooltip="profdef" + ]; + "profext" [ + label=< + + + + +
    profext
    ...
    < 60 rows
    > + URL="profext.html" + tooltip="profext" + ]; + "profile_check" [ + label=< + + + + +
    profile_check
    ...
    < 10 rows
    > + URL="profile_check.html" + tooltip="profile_check" + ]; + "register" [ + label=< + + + + +
    register
    ...
    < 40 rows
    > + URL="register.html" + tooltip="register" + ]; + "sign" [ + label=< + + + + +
    sign
    ...
    < 10 rows
    > + URL="sign.html" + tooltip="sign" + ]; + "sys_perms" [ + label=< + + + + +
    sys_perms
    ...
    < 20 rows
    > + URL="sys_perms.html" + tooltip="sys_perms" + ]; + "verify" [ + label=< + + + + + + + + + +
    verify
    id
    channel
    type
    token
    meta
    created
    0 rows20 >
    > + URL="verify.html" + tooltip="verify" + ]; + "xconfig" [ + label=< + + + + +
    xconfig
    ...
    < 38 rows
    > + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
    xign
    ...
    < 20 rows
    > + URL="xign.html" + tooltip="xign" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/config.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/config.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..34ce7ef787d00d19170e1b96892a2e383b17eb56 GIT binary patch literal 26131 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

    Tsh?oC(?>VA5CC z)8vcHJl^`an+H1t(VL7Ab3MN^2^OG>sk-+4tgAWde zLjh)!8;Kj$zlNv1+AY&ha8F2TmuYszezATztsq(+lme@&6@p_W#}8>e9?TYvu$#uVi7hAeaX0TjPm2|A%c|{~o6(vj(pIfExi;1=E#p z=(Uu*+4u|xw8+}dh&5Sjof=T z?#&$WJ!6xlof=qt_@1!l?vt?7-rI$zrR)Y&cHywK5-D!$m7bPMJdw|dX)n%cvVW6c zTTF1L_)7x|Q$}cn`dB*LgR&UJr=Y%cOy1w|hV3>hBSUVo)erk0=)_jMHvj)coW0FY z43}Bf7FI9L`Tr1S_ZNJXx4H;({VaA;W{T@8dd}nf$whbvp~@z+F8=dh&g|}9!ZN{? z(#g!CD5_c9_b+Rf37Bhj@tBbjN0t-qX$sm$D*s*dgz)hW1~m%NkXz5hW;CzX9NrT1 zCF2pDh0X~!ZI1{D%K+8C426oT{@%;r9?eAdS2>Fq$Ed-Q*&o1uAROW`2`5T5QwY}= z6kGbYND{%a^IkB<+(3UeoG0LX69o2T@QwvQ$XM{Sx4UJ=sqS=|8I?&5%5Sm51RLMe zQFo79XcSeV*A?!|iOCYx1VP)ux>b9E3N#=!*dtDT6dF>rTDtkVYMhSLRTW^(NmO|} zO$RMOoOiZd-1_j(z%3Y@6QzNN9Y~B&f_?CEW-FKr{KP(^;&CFQ5PmJoS6Z8Tu6tKm zAc4$y{gp=aKpFr;N9kAS+F2t1?PaYKGn8H8#dqFL!z8NQA*4olVS{=UhY5dvpCc)& z`c|=B=9nvGI9M6DP4#Rm2I-&OwSdsP%N2U(s(nYLML2%hdtNv7grbuZrC-zy{Ye$y z`q^F1M2+d@o5c#Ps;!x zWh7nc=6oShyjAC>yQl&T5Ognw_V5&5sl~~Q!bazJbd+HH2zXP&8vqyJ!rITa0&5PK zh$?_(CaHk}%;OnWN@ov24Xe_&9v%6Y4^)4TP6U7jxRI99XKzehl&&#h+37|*5hHUE zPx}B&F$QtkG}S-sp`ukJti5Bbd4q&Rz)aYPGCLm``#ZyG3Eh9PeJxKPj(MPD!S18L z%kp~OmDYEkB&Z8io*j-BTcqkjo66@#C0-P!=-=F^P~^_i8ABt(B4-tB)qoVo1mg~h zaQ;S)k7m*vbJNc3|5XJol zJt$EH;76qqVTN$!22}hQ6$^3FKaeu(+shklS%prx86{plV{U@e&H(EI1ZXB8eF=)h z=$wlH1%cQc-gGW@T!|Pfs9Vif{Iy~0b&@a!wso5k?dQS%Ac|0Dz1yPn0%;HC!kc%-ICa=S z;s_-s_x;?Oqb*6*&p#eOIqTd@Q%qh-I4fOEc;-0d@WN;4N5$y8SA_YCRFf}#v>f_q ze=1t#vc4Lm9+pPFDjppttcyiAJ$#(lEp$!{HweF)%7ZW8aeOyx5TLA5eQ06(#l!%B z(}4b@v}@F2o(`xJ09qP%sGg65N5=$W4ClUt0jhyCWU?w?^PdkyT_*P+;#G+#<)`QA zNAl0GALyH!gS&9i2ZRLzL6FRZ*ye9!RsJflAPU4~hp7ukt>1Inz>a?>1o`r3MD-mk zBPatwg@qqnQbZ26fr&6Z!>Qkld})b4L5O^fxztgbV5R6*q1TLPL70&#C_s++nt(3q z%Rga4`vG{}8;dm@sPu}8sYA76eZPAIX#khoJ8z62`Ob+_>35)C${w3$MklZ_tZv!%aeU7kUtlrgCp2v_jKfJAxV@p};Lv2; z#tqy_7J<`$zyf9P%OF*P^;Ivm@$;;04Xrz9?RvhPQ3yFc>(1Ug&sW6^vMf!Kw>Cvd zSL8c?q~kGVXuF5rOK&(r(nlVkCvyRjQ5m<^^kCC{?!sZ^Ep#;_g0`0+}8>=&%cBRP1 zOVWiL&ofIF4OKh(lNu9>Q5bOQHsnkAT^%l1m`b3BFh-Y%;VJ{LpKuVv_iTA$!9GTi zuYVlFZR&X!qXE_Cz^Nzp$QP<3;4JnoWYK@r@`M*I1bj!>$p-hJT<%yykby5T{}nFXQzmhx&N@uIx)M0Bq&484L`J| ze6e;HBy7OaiI=`|85U0hm~89!QX{xVfSxrdbUbU~du78HPNEtI2!LfVDMwJAsqFf@nSr0-oQMlgM{PhF*e0K;FNgdgC38`*X||IeHc^ zNcP{&LJGeC2Ms(lMtIOy=KufzE!}9`S31KY{2SWFD>F!4kb`uEunS_tv?oFR1l^WJ zh_udtK-YyYfuBx7JqD1BLD+CP%s)ix_l0tfxsbUEhi}qrbNO_ZfyHf1U*jp8C%#zA z@ts99@ z3|GJT?a2qRE?DNbO1en>N^+HJ*O|gAic^n7=YJ?s1rtebdC^;X??0k)CvkEehjS_a zop`MADW8g}&Bi5w5gAttw9~|9ojhwuHwt3z7+m<=>aYz@;~|S`N60&S1kH64JY}h4 zXCtpc;V^ohqpsVZODi;(Ub*H;9~f}CENX*`uqdv@75W3s zo1{t_(8Kp=Q9!mL=+6L(VA=$8vp9KmT_4UXwB5my!+@F}tlxtI!S(y8C-DN@ zJ2#%;>Y@yAb(0}WAE<%dI1Y%M>cQOfWNl{|`u%mysX8>Dh5qbFWdEHyC7)fHBjcFx z)_-FT@&!nX`T7<8PnUrBo~te5{s=)vV3J%n2VK&3XrC z%ib`OTC(VqPkZw)G3(AYv}$?fRh*luitPat@tuhG2CjNJj@J$BC!K;mE7`HZR{*Ul z5bK>F7{4%#RO9_+z7cy=ZF3j`nE+0HG0!_thF0DmC!E-0O9LWt(2LzQc_93HNn3{xm*xQE`&kpn z>3q{Zb~5{ZHHg5UB_pp4!?_jwuYPvNe?IW3AN2^>e&^8^oUjeKziT^JBC$dH0Flx3 z{wTp>kN9&e*#?@VaMhEtXYFW#q&RLKz?olW9eTU-VZuNBuwJ-;iX{3Gy+4lL0l75b zL=SK{rh~vqQ%XPv9>4GmQSGg0f(!G}z~MuJ@!gfXyJ z8%fY{QFRM>|I6BA@}l2#|FR4#WRaY8FtM880x(%sZkTCM2NX+=t#-rH;Enofq+eLa5C zgBCBAHyj~`yz+)R!Ug&+J~c=v8M3u7QCvoxo66gtXCKFD5{^}aUDpa}=dZP2i1tIHV|X2nOk zT1SepeX?LITKM;!{R7~~wasyLp;oTl!-vzb!MQDR`wBq0z!L2Bh0_*l>s<9B;aCH; z4SjRMGiwLSG~xXf;XLf;FcF#AW4re9%!8eE@_kgHs(sAFevMhRi}4y@JGJp&$DJRnr-JCO76X=%&QAbfSna)!Eq_mpBLfNxL^-Z)c;}a}kEnNzv&t=Ru68s+ zRH>kO_Zj6g9MN)lw?3pgebuT)P#=~z^L5Z0#9#TS9+8x7 zxe?56Pgq|#^)G+j`-bc|pGkq;-1WMA!_S4k7EY0u!ro%cmyY-EU>PH{8wX(5^APVo z!$(~;)>6TL=|QaPP?+MS3`KReD!EHf@?N;#<8o)7WTUhT!~21q4X~Y}PH#urT6#En z#|lcW9@xDn^R%iK|D$}ngCY4Be=j3rB8K>x(%TV|77I!x^ViuU+Z z-G?Gf#lvXIj+A*$MfHHQh_`pq&%Q>jI0U`5cHLhx+ZMOiLLVVqD!mh)MIW*(T2Y&V z)Xw4`2M#W1Jw;yKT4Pd|gcY7V3-)JlxwsrxzF*a!#xHbnr5K6rnegN>vh4BD zDAp4@ScVB|-n#)^n}YcDyu^*eS#Go3jp!cJ;^RNhTU8(|zZVG0##+i&^TkX`Ms~?c z@prJhq-YS({IX^7OqQT#QpE5xv>JA&AP=OK0}&r=IE9tLZIUY*;5G{4uaJny&KnSJi=K%jvOD7hC@e~*bk=`f_qBG z?)_a~_{VSU`g5U<+hIig>Ht@vvxeY7CGC>o|`vgTq&f}pMI?!2pwF}{r%3aXO$qseRFAfh2L@B z%AFz~{WX$(5`w>4>Cu6oR7cgDyZ!h}Z?ao?l%c9OzZj|(-YPklQJVT!O|qxWQ%`Sc zd7xv`^E4je+N4BzQAj|F*aHu{$=VgHZ}p|)D(%2=-2FBr;9yEv#yz~e~7bdBXX{h zi?u71lx6LqR~e;CrGl!r{QgGOp<6B_+{8JS%JK2nhIOk=%Tb0$=b5GuuE?;gQ^TxTm&M}S_O2MDrcdBrYi17;{#yTY zKi*SC%9)}aZO_6oSJ;UTnMU*?;`_#-#OKB-ogHU8bolFY$Ip4gZ3i>Ff^0Z0t*snb zSvnAk1;4j?Kxui=M#UblACzIkJLlc8Ser+MqRQ*X*GT$}ycbTS)E@Mp$e-JS01LAF zMieEkvmCAAJiiqjozB_I+s+m>!bI=_*UlM_aQ~=AjXw)K9N%I!@QNzBY)+w$HVc{| z;-lGRX#Oe1_{?$M;KjB;Y=>Y5A#aLWe()SQF8>NUo@Ro+BIz4+JH~iYY@-i|hRq>h z|70rNssL1sXJzQ4%CD=!aD$8G3h`;huA?qy?Em8eNRae52_WJJL(T6$@v~X&d5q;5 za!3=)uRGBagIdLbKoD?|uM6$}+f1~$YIy-Z`JnH<2df)S=1VC*sB;GAiSk5<*$x)Z z@9javC*S`BbC0$NEV#y;M>rQ+2WeF82iE1Bx;!UDcb)Ecu@djtw-HbOo9xrux zkn~M|TWnthoR;m8!A>XUWR{K>Gwzi8Eils#-_cJ)2e+WQti=9XFB@)Sw}pF+XWS@Z z8-J`vKUp8->ifnC7UNLdm^yvTIDPEV6fM0S)6@B0F>!>dp3I+$QD}}6f}y7 z`aj)A<*lxyQPnBE4Wp1MW#E=#oGdA+^tm)=bnlEy>Or)cJ_s+$Ij~Q9?3%4GIK5e7*PWNQw3oOu)MT{#mLi(mkcD9>4|mChE=#-capZeGl)+ zZ+=sAQhC6y^?S)z4A`dqC3oYQb?$_jl=4iy0Dou7QuO`<-~MTm?zr&g7aQnKT$yhz z(VlLt(YpSyt^xh)w>sbV&Mk;l)>(<{&-i;^{RHx)Eo*)}yAe$o`3nSz{XwHtso1|O z^E0J32V{Q-jZk?_Q##MbmY-6zy3s^UM!cnB_Ssw*J}Jrb`xEnKoLcpp_?{fUI3BmK zvm(OFE#09L&2s@y>w7QZLfd`1%waoX{3SB(Q)dNm zR4OM^r>>D1h-9Y4LqE>8cb|BD>&ZFii&5ZFvhOyKU!*=?n*_g&lA(b~s{eT_%T6@4 zP=9cz{JTln;N<~>%zoGx*od=^pudk}k2L{edkgO-e3RqWy7cFmkqa0%b*O=%^ZhqG zWPk83DTRMyBwzES1s~)+9{BC;`v-}{?5G+>yz_1@NT*N93=zEdeMHaRczb7Pfm-_4 z>el+HZd5#0Bt7Qij}Bw&PHho$BZh02x`^3NWu4f1sjBO%ub07tEwFFy+S|6L*hF1) z;ef*V3F@u&WHVYb)>snKb$ruZa(pf0;Q^Mg5%dzW6kjWQsN4cyT{^cgdyWNRnbF$m zmZ3R4mR676+m(@@lVJ&o^VRvQ0oi--_!XaZJC=T`OLd*Sw!9&FEJqpAfwZqE8{1U~fs`plOvsn26GV${Nm=C8S$4*VFOM*Z(!}@bCZZP^ajV;P ze9N!)hY5~(W2L@Jt8ZT1(Mq?KJ7O-bSXpqf+KKYm<#8uEMu@j!#N%;Yi}j_mhQgn2 z7xkZ>^ipg zZP9-?c1XR__jtM)O1E{$Md@aPiw02Nvk2YoUz?|oG3mj5P+D?`?4#jCp=Z3)tWwKBSCee_`3{2 z6(C8-{8MEM%92IXFh=wob}jAS(aoVSxKY_%M(PAr5O|5BnU~fHuN}=w!=MmjHX~k+I@D&tWLWiLbN1(a zd)Lru<6H}%y|o>@p}Sfb;_)5`!^@!R?%|U*YA$I9HE`1GDMxjG1v5CYZyQ&;P#RfR z)1!whhz;DDdruN&_J_X=oN)^(`ImDZx92aA)y*#*0U*^|Z2fq| zRMkEYUlqfXNmo343Da7?=aU_7V@99mITD(VyU2?^QB}8^j7h*)^@BcldP=4N>D%mz z^J5UIW7ZEx>_!*QOB!%*;6!!pfzX_H2rPojpl)evDmvw2+ha6IMP6U(f9et>kZGJu za!EEjU6q(Nx5cPMxt7C;X7_kWwhl@&OO6`PNZG6b^L zYcgg-bkng38am&?)umK+-E`QBH-_X}`>05>TLSNH-tSi^U3;@x55G;&={Z$M3?KQE zGRgl#rEV(osQoh5&L8(7k{t)8#z4q+F!8vV^h>#~jw$-M*NGB&{IK#BKQOygeiB&c z1TGuA79-T_%JCgh^j{?q>f1+`=0FQ-v39imL%fuxgvvYHU_RHCL{+!PY^4f=ypNqI zXYW~Sw%qTd{@89=Rb|(AM)gMk7Ih{E8;hX?1W!?)iFnB?Sf#T*ac8zPVH>t_gW8(9 z08VBJ;5ew|8txQSL`nO7IhQ%5r7PxH)#_|{YmJ6OP#^XDr+srfZ%+bh%kLc2E_O{Q ze{k!JE5$K3n`Du`O%V@DSQ}3;E0_SQI`>;y@_`x`0u!J{i{8)uy_+c9y@HJT${KpB zr%@6K7RZc}|5>-2KACauK_*^)0~wAPN4dNeL{E%Py`J4xeVagu>1^_}INi zTQR=$fg5wI#cIZ1!y$v>b8LT&q87(*{Y`>h;8td-#^MW1xbAGXf>miM`%EIA!&lU0 z05aN=YmAdAkwwZs@}^o1(;Vd7NpT(Gx3RInjCFb6QB;T;lZsJ9Gk_Oi@*fkR`2+O-lQ29ySF% zf7iwzV~uZLBP^YQ<3%(6Gv>UBV;6q*r z8mzjNB>YqYL$sTtMitc`U%sNC{zJ1PD(u2FtaD$x%$?YpN;l>`aP#oDn5JTb;-@EW z%Ak`^(KWo^|95?Pd|GuIX?C0Er!%)G*(!#{4S)2R{^aLB_%7RizJIx4@@(V(2BLXTL-OOL zB;bcYFRfYaj*02&eCDlVIGN>2S>d?dcg6Q0^+=Ez2Use!DKUM_R<#1XSOK-l=MnQ> z)#Ura>QAn1eqI+^u~+X`SOS8?g~sHC zzis<1W|XsC-HMFsrO0Yn6ZI+}it570TEwprO36ODg(>223&e1B#< z)Iv>(Yz1`ZxMgfmmW`9fS3G6;WQOOTx@s9WytDnlxA%8^R#=pOB6==owrjX)8h)K3 z5bhRsh=*Xw=hUwI;r51THCkJRrbvpY5Wlr2-E#>tiTxlsKy=-EhEu#u$SEk!nRzY+ zPgXIUxud8ye}e`Svh7-t%8gjN`nv*QUlrp+)VAS=nL&XR09=lr#KtYNbe{wj;)|UF zC2&&%5GXGj&~+s_1}oNsN#C-JRSn32w~Z@z+q}%??s%PpnBD&tv8NK zEyC!}tOI}0rx<><9f`vSXCb!$uSp)Ao2dlk3FTu0F~m31BPds3f+!pnSIYtZ##?yF z>G3)M91y+BTkVyt3LG*s&&y}Z;I$dke1lHuF*HlUm$yg2X!0xzWaq38@@n4`2Q{%`J7m9hIOOju_;uJOP>~>S$*T7GhS@2yC@V&EWv;L~+Wl2I$OTdO)v5j|eUc%S>^M69#G#@_h1!%~T3w`(5aiWi zIsYW=goN!y+&*i!g~vUzqA0rKiL+zP&Y_hP3G=c*Gw-O3vXu66oYgY1>l^PK8&Th|Pb0j#Iy#)v1g9UB@T>z*NIC z$X7F>pZR2m3>V8!YTN-dpF=U;v(JVovMo>#w<@Yff9YMwEJ(4; z@?SY!#+Wxoy_r}pU+I}#u_SCACQTOQ*n!wOK4-xTq7QP)RT@?oW6jCbS3h=sLrbuO z^!ufKL~S3tQ!Yf!I|?lv4E(gm&>Y((ly+jiGwXN&WG4fc?(XuWsow&z(fv==B#Vn7 z1BWS$+P2+j>RDPNvv>(2UD|Z2RC2T0A@^M&<%eB3+j!FpA4kc?#*B95=AQx+@><(V z_~V{2%~(6JW_vhB^<@S71sGPV!bfVci zpL)Y7Yt-VE+sWbi=Iu%J9ltUuJOzHap1hTWQ`(Gy<+E+BqMV6*y+!NeJC3g8>RTXB z3d4<8&7n=xZIJO<2wf*z9o%9TQw%5F%Jb6o10A<5j{rW>`J570Z+t`j0D2EW!(xPL z&k4jtqqt7@L9Xg==V3p&aulz8sTv2Jw*7KAeUR@p+_FW@iK!Kb+4U`lxL!ZYTz{w~ zruraLnfHPVt--m=cy9YGu8=n~9c@2G54ouuaq78+zkY6PeLliy=ImPg_PD67otU6| zNDlTG+;qFdSmMo(o+9CCIpUV?)_KF!PXq7Y*(9S`PR*YkRS^Nb5OX&bRiz>;_`bAN z{o9tP?^>#oRp{AtiWs0R+Fc0~G zD8=nf9o;^oC=J(SFS*IB9sxFX_wszje3p6?_*n6-_ zA!>Pw-TA1L(TSc`wYBpA?wF~TkBmfiUw4$WdY{bOBDooL1mAhl?rwirw-!CpUn<|o9^5ClDX*KjU z9!n803RZ3xkH0c~;eju3#GPE2`QJaNmbkn-ZLZyw@s8)S`@A~L@Z`w$`20{WsYSb->08);lDx)W&2J`v4Q1&K!Q3h@pMY7 zWJzBAreI9|#mcjHH#F7Vi_!Z%rA+ynNmO_=xLdvezgq*cej{hNbs5Pm*)3h+MSEp1af$yJkU~}yC zdWBiZjnb=JL!|gl_7=V+qYVZ>Z|O|^%}sYznpmJboLC*bOTBo==&me+h@V1hN~iZ_ z?4NTD@-?jiA31@>DYMoRyOzU_#WD>?jpqe#cY=lBGefff0!cXf9uTn!M@wv-tv(cK z*SLNM*?MOHqV3vaGC1&eSKF==j<%LEshy$Ed1o~KTwK$5c0+b}|G0#I=?*qx!*w?O zw5pa$&!F!li=%xK*NqgImcBC(Eew+@6fBM^i2Sj=~})MZMF~%OuBvMEJk}C zrQrWZ{Nnhft%vtVgh*V}-&d(@2+(#648$qY3o95!w z^_EnX!?E4>olc7IS5H7yO^;I0bK3D6dVDx=XS?2Mj#nNgAm{5Gn>A8hd0#xkKp6V( z(#P0CX}=@wJeJi=aJM2%0g+xd;*0wE{`|S@#o49TQ-qS?ij~jkv}$8)w^aJQpbF06 z=0!Qr&DoC39**c=Q|YQr^Fpf?unQj_+xV?ce4oV+gYuL(WzeF4)Vz; zs5fg{D8zd=5oebkWS;miW;v$~_JwViudg8D8tCzDPHoSys5%bmlGk2_ijr>3vVn?L z?b9p@Kh$VhhVoEprPiSnHVT!k2i{;RpIw5Q9ZXG*h}z4*2!>q2nncWO^L%NrYtgiV z`r3;!x1hJw>lu`T5DhaXUf(Bj^|pR`CrX^T{!;RXZ*X&zUZTWT^p#fFoF_$1V)noN zQ?7FHQU8Li-Z{!Rp(!dXW9$!8AZEr9KzM`4yU~(#V@r!y9+&7Y>?P@&oZagsEO(C6 zSY_i&hLbr^WYf)6*#<*)!*f{sRHa&Hw#nO}xmbI7qdVnF>`P>6byVcWUvuzm$HnSA zhORjyEU}+~L%-BX7*ISh*9gCww$`rHkzRM__YKA_^wgg+A4 z*C$xUtzwj84?L;gs2)E=hbsow*BS@Q~PqCV5d#DCx$y6V)!FSvJtr z$G+y@^eb{O#|M(4b>x~0a}md_ZGi&c!$IV+Tt^-g^f)YX@2cM|nUJGbDRZubn3ZN> z!DKxC<7YJOLs;G*HGRLRKQ)%soXlsey)zXP248V(IpPxn}iQ(yItJ2PK9qTPl%|H$h^ z*J7RLNpa;lh_l$fk3i->4G6YNM!0>qJNUM^#S4YH|E#5 z)@kq6$`wRC*UF>7mjGOG*jF8Gb>yuE8IJCXOR{f7-zf$wj;YMcB5lsgpSOAS@SEpA z67~+6$JzCYv36t`LbKV=HK$hnB|T|nb>yep3izal3%EY}=G9E>2X+q$RBlIqjH3p; z+(jgj{zLsP?lh*cb3aeV1k#TXi0d04*WR-Xk*Fl+Tkd-r_LSeE7Ol9Wku|~B*j;|v zS>Sx|w*qVoG`NU%c$yf(BMUr^5DO= z)&%X_d-P!sOjv6QmR!qWPL59xRd<4CvFJAYNh@~LWD?5zXxG~HXP zXG_P22_3VF>bbrD4^`hCNcI2y-w@Kp6>@J@FDoVMB0KTAag!)1lD$V(_TJYe<07O& zxVDJwO~y5{w~&#&M`Zq9dVfEE{QmF_V-%s^3tJelKd=M1rJD>e=ws5=M8p#&GYRuoq*40j|hlwY|k8bHA>kCR!v;wVr& z^nLShq)pU16u`2uCjSnsq+c^R1mCaWYftE3WT_vIcwDvIoz5+(2U0n{Ai~6qP6+Ro z{@a=%mHEXamc$2L!5+?UFi#;BDQ;Ai-_r_sM>&!IV2LaW-u$O|^jFXHC)2RrtMu5= zdo0_*@#~Ps4Xrk#UTF;_nd}>$DXf&y*dEq)rEwP|=F_`DKrua*>SfW0IiyowNK3rV^~A6N&~Xq4N^Tzwqo6bzMK&Z_@QXwp9)tcS~6P zrMd0b9xc8~wha%s)tSeMDRdclD+JK|5Z#faL#)t=$Mz>AYy&@)H#zHV(F z)DKdgu8lU@?)Tj$v27~o_Tg8m$a$GEmK6h5qD>!Ozj-NlHrTrWtU2EQyIWcQdu#|Q z8&*`BRO{M4x3}uNn>6&?8p_7d|CBFN^PDSX75^@`2{4RH-EkwYjC8=HFDNjf{*Vz$ z=ZBJHB&wMQ9{<_Cy8_qYp=p?U%v!Ut?M}br&KY5o&=|`3h6(Zw4XK_w!z}p^?lMig zWi+#m**G;w&Zh5XIWaZpqRDt{R-j!oia)o^IM|z+&tISXWl4V-`M+EM_yed=;yS`4 z_Z5^XIvV#q;d-#gQ+}vV?W^?FXRA9w8w|hkx1SUnK4<@XD|~Bto>~m5&hX@WFYs3p zb=lojVwS6h7S)?!aWBrin2lw|cB@@zj51o!)iljcwz}3=*b;vPwm?ZZbt3 zl1TR1LkENeM+ExKb&hxc>Zd!7rBA%}P$||KkQ)0pHI1iQZ;?aVHf>)!vo8k;o4%Bcn5O%1Q>~JG zvGcT!esLl~m?^57`Fjs@!`-Pf->jV`NMi5nbsTpiGY_3=N7))XRitQNT`@fVb!VXy zOVh1)8HWXbIrudiwqnBo~cP5=JEOq_n&hW>V?DcmIE}8x zFKbg9T~3dXL!QZC(YDyp>pi>u5$k^gI>vJHu%SbwYz!=##`gYHmm8+USeugyn;lJ? zX|>BO27$LY_me}I`0U+YW|Z3%Qa@EmEYwkkeW{!8nXbgM!Lqe1=BuYidv*?(j$SZN zFAplBvS%d_w4rGK^Ho{yBUiw;wp2bb8O~u3BDmBJ}?JfX^?^;7BUxr(kB~ z8&uxUbcAUeFuEPTLG{q}gv>zHhR=!7yHL`Onh*OK!ka(5o5TO9a%M*L=5=`bB|x8` z5i(fS!z}h8R4V6zxY6fZsgsZVhuHQmJ2g9Co>9i%VV`QJZdD{&LG>w=B%!z>5M-87 zZ8ebF55x}OH=uSx|7Kl;ujcuJ7Z`3-kU|0R`{Wh#&t;Zlscuov3>s`hdhQa=L4Tzm zRG-EtH-1e0(~Y&2iw^@$SlWM*&)WplfF_SHWf#!pSKlm)K{+PEH$HXefkhGN;P7x@ zStF3u$60JZYYX#lx)ntel?qu_}fl^pM;IQyS!adxTR-iQ&YoH=o4TVi9@8zs{-84iqp$P*O6EjJ5cYy%QT zH+GxEjf@mL$8z@LPv5e<;H%c+-)nCl(^~o&eRm!H#qx{^N#dq+Tn+@1|B3asLcBA1 zse-7cA-{dq9ywKyjKH=x)G3vjO<;68{o@ZXzM!%@ST5ujDb!u~x1UCzwMD~+(m6+d z?53H*rrv=?Yg)WdIOXe))rRYjX$g;g5yRDPU(|zgb*%uXQJqrXCol z?F==z>wsJ;p2qxmIe4aJ_}vC`RQT0}E?w?CyG5>9UfX{knowoAodZj0mJ-xSX}o;q1I>#tiu>>GHic>dIIRQd5hV|C7usC(9>a<#oI3(E_Vgvng< zWmX6YEzC|(u>0_*`SN(q6|RT2CuD_ResfiTAt+pI%MUSVfxylNNXzfFFEg&2KqZT; zl9nHhsdw){)l7$$>B}7k1Dr7H9*ngK$ST5oczwMeAU6nI_rCN&mK59Z5YT^X%SV{VK!8HmEe;Iuj zk#Fv7Mc2>2TI_!~gU|Xk81%*om#Hqe`t0`(2*aEDlu$0l1Te?=-$0&`@wn#s<=I#Q@Alsr2CkjW8aLO|>fa@~$!+cSv;kU%%IG1 z>?)oav+&MI@>PMpdlXN!-{jB|c}u{1-UmdLF@`_oP7j|8Mn1CeJ>HvG(*vNo&z1Gp z8jM4WQ^(D3jxJQM>G++1=JG*O^Ceo|^(5`UVNfsOOx93l{`;n;vZ6bo>6-pgORg&gJ#X zPzRhkuTk~MF9&~f&*_8i z>d49BOy+5EQS_-trumKjSdEcH!z$>?_u|@%Snva5nG<=w0Pc-u)|7|D-LzQ#Oc4v& z0BI>lrrya-;UeQK(1fd?`^Z-0fAhxc(tND0cB3li{m5wW%R>uWLelkT_J@cw>KA^^ zI#7HzeE?MRjmxj%WYZM42-6g6BYjdUgPzP~zVZWj@sAbvDA5ERnlH5FZ<}17%o~KgZUY>XmI{{fP_11B=7hj)9M~T| z-}hZ;9dUUX{`TP=5_Q8Zl5gr9>0s{Dq0bMxhCYE6|C>oTs0?ZN>)Oslv>0>H&%q`9 zt5?)e3K&QiBpW2f41upsv!67~f;5y2>Rm4j+zcv$19csX=M530;EBFk zaO+8`uJo0}+~Lgp_q+u}3C`(dJd@JAkvml@XwSJq(I3KOaDpa6e%~Z-`}0p66(FHa z&eZ^w2b&+dYI0)jJh}=nvvqlIFpV_jooY1?vDxBkUd85!L6?oq@l*x3pXOu-y=PDF z7`IlQPc{1mkAm|V=B`rpD6jrpeemn#rMzVLh*sjwb=e3{B9u8BV2iY5PGMkgVf{b@ zDWnyr<$FDU3W(RCZiZ+7>#I~VwcO*e$B4?TUGoJ;$G5baZskIF+vjnn3Us=4{zNf% z_}nAG>d=mHr&v>h-Vsw&nmyAl{HnnA+WS~yCio^v&-A+Qj?gUkB{4KM5S)hm+0-l# zUe=`7o>w7L`sa=P*UVI#EGh$r&g!Atl1_y$wV8ibw>pd0NwVI0dZz$0Q?XpyLO^pd zqwJKmmGg#_JBg%Bx7nnnm{OYY4`Ik4l0)Nhw1a$ei!$aIy0FwQqaS^-sy29XwWjLv zYUM8!RMY6Ft9t_pU7g6pIY6bh`l{)U28+sEGwh>Afv0wMI4#wSRYNmg+S6gOMn5H* zow=IV@+OKA_age4Q5rN*a~2KLtVM4YXG|*8y}Qs>%em)~ZvNENaNom|9o5SJ`WOBDed=pKf2*)x7MHh(OH6Lkm}{VJa_l5x3(=@MHF|e*Kc~6 zvVN#`Z~0hh=!#v1f_HKI=hpKbU(Jbh#yq7e$i#Js5yW}s{=QZzmGa#3yEVI;EsC=8 zefjB?%qW|02rf7cx<8FlDo2l3{D#o#vb9xd{)X1>+h09sc^daks%L(T7f5~oGgFb1 zX5!=Q6{FL^JH-d??d6<6ZmHtDNA~%t*+uv3*=51sZutpW`8KISw}{oyunMYjD82La zn={wXuvEp*_vWkP8atg#=lGz|Zc(WQ+39K0USrLp8vu#wfYR923mhfzS$eG`Itzi9~Gmk8^L*rs(9I2!_@1CF!f>*E?@z~YbI$1ZZ3h? zKK>pZVLvy41VyyxBH+?G$Kz>qRLF@3wmv@Na2x?<%2I<>k#TFx|8V>Y_Vk7 zS^$lnQ`j5r*J{ttZ<)S8HtNWr@KeG*-4odZ6k#`$%ozIJ*hz-P22m>=TJ5+$Z*q+r zvYmZ0A6&v^UTuUw3m)vRE|nb3lN=Zufzd>|X4Lkn1!#JCN?&6T>&UAVyGlB-UB#NR z16zkGqyW^bReomZi;meT)l3ot7*xO&fySEvOjebZ&G6>>hw}-gmE2SAm4>SorN<2A z2sZXt?v*c~$ztD$5%VO4HaJ&2q-oq29H?C^use^@4G1~u#OMQu_0@?*_ey9^_evTy z9IX}kdw8%(L)49{&G5c5@87Vj`--K@e9LO<4<5t7?5mHxVYD<4E+88EF`7f?u}XK0 z#~e!~@DYrUjEM`u#Op|dv_}&n7bR?*pANR*T^sc<^JpVqm~Sxd)-lYEp=8LQovv4# z?(1@*LMWElg8#I;UM9JYK5({q=t&Pp*6J-9<1%ukpW{=oxl(f`809P+pbdXHA;mFZ zU?K}Yk9~J*SAby2Hf>X2aa|5q56^kMoPcu>AY1_;I40*^+@;KCSL^8lB2+Qwl z!20DdQOgH#Z8X5Kvb{CJDLgKl2*wy-KZUzY}e*jp2}5_g3zy{fc$Pu*j}?J|03F z1#iP!;qP%zkgfRRO%6=54#1ibOLMa-RNwN0A>+iB9Gom+qbK=Ts`Qk|w%|iWa<_7Z zWe^n@;t$jW6H!RN9h=mSsX_{@16`EPXhOLAJpF;4#L6C-RLk&G`He)=B7qTBWf&XI zgO+q^0De!5c{G?f6_o4c0~m+=fVUJnQ^L-Nk;gnl$|3CT*(EGRHi;$mOA+PB^6kTA zH2izztxjbUy{MvvII>yCYLBTSWbU(hfS5SA!?-n*kv@)$O&V6POf=8q3=Hk+5?5Ve zYatpS{mMl1JEe#5#U0^fHlZ7mp0}wlF5A!1Z}o-oSRNtX-9B z22DN%Bd0&&j0`b0I|LX_^c^4a*hrZ9SLNN=o-CHXQs}jI;XCM7Lxp#2M#=V#49cq> zjb(w3DjDyZpbWrz_|#PcWo#K4od6+2p_z+YwE}T9He5-*gJ;&TR`QuA&O;`E=@XR& zixyNNjf}Z<-naQj(y~h$+>ugal3t-D1o?!9` zE}?(_(};4|2ePrTCR+N!T-iGlMzDv|jB@X}Y2{1MTuw}`8NXN_!LLG#l?9lAullvJ z$jTAZ?{UN4>BTt&{6$aDMRPv3-<2`I>Z^sL3MD$sp3%1`r6<2YQm76;73Xh+!g6d< z0zdDWHQy6CY^NH6Pf1^k7_^;)cW|QLeh^h+uzMnQM*l`J)xGhF;wfip`SDVkwKc;z z-|%ZaSC;QgN!(=9!8)w9_5Z+g)BuE5r`V4P!QXS;T_QMBMfyb>8A}On_0bHgHyFVV z8u|wK3tkG)&jZ}ooS!>?F-^Or==7tbcc0Dol8gua4F`&4ZD-;i)hHUUkSZlA8QlZB zyi1wP*4Q61Yk(6;xr%Dsp`5Zza1!iOmKkkr8O%GZESSjg0q$)I5-Q35BO+joj8~MG zHpmjU!SYtY^0N(&ff5k<0pb|YLYb+&{iKLl#)bijJyDnHGOKxZr*Rv3b2SmH@FJp+ z1V+@g`wlKU0LWQUJDd%fJCfhRcp z<$Hgc=mOSbLVWy9s6Vb5Uh@|*rjS6dUYQ#Sqt+w!UQOLG;gs$%4qM%Zv@y%$oD72H3+&`+;NL5vaD#T~LctYX;p2iJDWb=s3Pz z7R3zS#%p?jnPId)@Yy7YX<9u@ylR*Yd7545l`AF~#X!t4+)f}sMX?fz3UXjD_JqYN zRKWzH9x&K_I<`7I*L&a+#XgqE{!Ng>^jLB&&zbYZ90@GT`g8mR*sW(vM!4_pG5Nf6 zdB4ogWA__d@jjmM7cL>96nuc(vMhw^I7Wyho~#bfMo`2Gr>hpH{(IC;fa6EAk|+BQ z_!&9O;4r!owpr5jlb(r}6#50C(*WnvRb3M0YlC||ojczABHO9>fun(x3=eR}v-yI`cS24o2~O&KC&Aj*6p!2ROQav!Sg<#aHJPKv^4!nE zl9Mj&W6icujl#AcK_%>0nQwIv)wT?U;g9q&mumpb?p?L4>?+Rgo@;B@VMgRjVUapo zFuT`lRLmm9VRvs)VL$&CG9uWJ7e29VuD2#%vk|@XbHfZiWY}u^rCF3DYob{XqfVUy zLoP915VWCAnKDz_Au2_}a(C9Q2};uPe6tJ_x^KZ~rTU`vOm05eVTiGTZ-2>3$KD{Y zOv1ye-(S`v-k*fOVQF9tZ%*M_WD%u~pd}Y*WY00eT%Ck>ig5%4ojnhUYlsIZ?2kZo ziw4xh0*`(AXbekcnC?3i<3{2&;%Nm56;oVBF=v{ifi=iG!~*6 z_3$3sSJoFdO%82EDdi!y+X<2IegqyuayqlXZfF+Klv>O-3IFj9Cg=&0V{uqom}^zF zE5i8hz$BZAse!R_n%WoZDmyz!$6hf#qwhrQXxr=a?EtQpe|#9SMnWDPy@_L1&Ds?&$8zB?|mB$ zTo!d+X0%m;7}iq*(5+L4i&4BX+xX1#2x}<~y|LrFqjPHxkP5m74H_Q%eYmvP)Pgsn zh+HCNigrX1E@X9zqJ?~bU}M@DI%&;2Si+0!LDA{Vb09^`62uKEtb;>xKc(yoFnU3? z{2VA{AV_i^48b3Gm0F?#vNSxcBFkzvG)!Oy`C*}9oZo2Jk$t(WiMs%Q%!W?x*nzg z61m5abSjp+VV{Iqkbp-fUuhLJUP9IeAsSH4qJSaU=;e&0z!N3@TgVGhavtOs9nPL*W;D#7dg;626n{-`%s#tNA>3s zO;g{6)el^>>iirew@TMpGLNY>KWOi9B?1>$D}-iN33-85&Td@a6s@MD8Nh6R3>UV_ z`*VKRHPWQjz4i6GzYawY4hBf|T08O9XOlB&C5v9wWqjMkuM(G|&N5qA93JryWw#p= z06)IeRcQbDkBphQ(>P-m-24I()tx6PI-%TmIrT`2RzHb5E6`aFr?4e33l&dGlfQCt zYn*m6JxI2lrC{XNW~<)DgqMeR!4nUGE8vBW zw73421rkr?d)jxG$7reFjB4I2t@GE`;v~J&8Uh-Ph(Ec=`c9F?X?%c+E|ogCbh$IE zG#XR!)GPkE#g%pFqnXtwKQNg*+CJQ4&~EBzz@M{UZ1xqumZYPTud9LY8?4a7mEA^O zwNA<9t6ckG1S?oMW3EGC3i7vl$5XD7jl>8bMwWvbtWm;xz|)9Yu*(8*dqWj9q*hNPN9ixZLU1a}J9hbMz)Oj~R0{aMyN(C|rO{^!PKUg{i8m z>5PWyUm@=?qC0?C?j@4vVu;}QYktdWP0t@>w0&D)%JijnyG6`%7lMS?X}o;X$v{_k z*y*MzDyRS2geR=v#s!!x<+iGBEg(G3X#b@lIJv?YAk(8!=nFeh(5^$77 z8BY|uA8 zV}yj6-{e!@vHIqV6l04q9;$vS>g)>`61X5qN~dY@+|cAg03$38J|u$ZaDJ7>@<=%E zKdGK3RjK>PY!01oh$f||8DM42$@!|WQYZeyjcFrHw41I80BgN+j^#zZcWvQ&NWkL_$@a?~Fcb|mhf4KmWB(V6@-Jch> z@lw4bH*ikLA|2p$J@Qx*SZj~@cZ!R!R`z3$SZ(EEORTsHntAiFBN-4enw)zWO8gGDe*A6G z_-rP52R&jgDhkL{#)kf(tp8HN1DkUC$-fYo&5dp-Rd4E3a*1yWnpT`%(yT}~*sDpI zx)W0r-5j2&{QPqKC&1|bgGDgK6XfoR+0HU1#j2f;w1WXpTlQK{lo?;V_ox9RkXt4P z5f(OkKj*La@qIgy{k{4!+vNSdMi;S1JX=Nqv-+4{?%9wd@Qw(dar}WUbisbs{KpvG zayUXe-V$l?MEkn7m-}VW)Y~?|JtKLQA(c7JxinK2wm6HI^8h4eJCw<2T`|zYhls#F z3Fs%D9lvFyyD`HU#|5=XVQP3+{?uJ~6YoZgNO4c6P=$%a^QNJ-zU`R)Anu(8g?x_j zcFy7)+|GY9kzqUd*bxn0lo?9%w2n^|GAMbJ?oGlyZZa%CO`OznujJ1r!->-6JT)#& z_2P1o_ppg0-7aq9seJ1|Rv$s!8+%asf(v9jW6C2VOq*RT2D>rY6JpaN#A85QAPafR zQeD9K=B+R1tq|aOa4L775a9yk**6Bk4*;(i-5E`jql*ukYC(uk7#vhfrQP!N}}($KH-!m#+d;#Qs%5}ye|UEQ{N%kYWBXXG;-CE--tw z1HT3R`+ep#wV<1mSKlsVlLgPMfzh?e&&j$9E5 zjcwp3DG%Jw><}ff`g$Mo;$M8eVR0>}sz7K$&te?6;1-{#o5-i0Uzm^;UryKC1h=wx z4mqzYfc8U9uV2}*^p+}4ovcZ5;y7`Xn2GsOE)HQZA@e>|F7Mt^28YUuU~1@{{b_}fh`lB-}+$>=NRQ)K6&EaVSXfsGX*tGVjzEq4bc#i zeP1?b#L`+uH{D1l{2QGmec!2p5`O9|1 z0sII+^zxaE2CRn8qTl=#XBNsc-oM!=S%&CcWb`AO79kCbZsZRrOZXH?oAq53{T-RI zM83kkrH^lK!QQE;j(wVOUJJ*}47T9dH9vIryC7KlNB6)d{d zB{#*o^YGNi$MCC-j@i6=-H{$F+!~sB(AjNN1E6n2ZPM-s{(3pE$e5xJGjBjnZxqyD z4@sytcdt}*$Wc;XvfkWrudIV7(B8v3+^b$^J8UAU&aKW+^dFw!OLV~-Q&LHL;a06%NNg$(|9 zFaBo~An}9gux4+p7uGDPHO&O;AR{S25SqSG3x8Tl0gIq)2I((T< zz--R-XAr3CYN&f`YWATVsmhI(L!hXxzBRxoLpFs!WcaMKt8v!BGtPk_|CCY6wdco) zv4F80hY#S{MG1?Sr|^2BhtpKsWkfXm$?yR<&s0JOoCNlehf~fd@C?HAq(s!=4;r=A zcF&p1E~Y7Cckb=J{$lzF4$l2?pu2tPG-1sO!X>>MA$%1g?bc<4D*ha#k03!65kSA{ zQ2K$t8Z^^(=DLGy(PGZ8IA)@vff?gp)VuzwpRafu?k>gDs``4P&?`5SC*tlLAml1l z$-$Kn*+JjZM0;q1x9adXK04bN4{K3HG4Y4r@p@7Lf&on0wF2AM8!1*8Jq2aXgRry@ zJW-X(Ehrx~ZHR30*Ez}skfV_Ralo1z8QL2zvj7v3m*zF@X0bUq_da{al05xnd(dWJX*qRus|jh1AG|JV!zN zEto6!5-u|n_AAF*Cq9>%EAkw6BSq!rZ%Pb-`3n~K=oDyo*!_nBa#y5EjyL{H$zP@+ zV{}lMUWQGnua92*efxB#qP&GnlzK@jVA24LDw5q3Esgj{W)ngG9-cl|>>6Mf884J^ zO{Hv+c}%RjsLg++V_#h!`_)Yik@B27UuQz^k>TU3oAy$3krq$S8 z8jl-tjrG#ULS_Q!N;hX4)a)jU!tlfgOJo#@?&zO~v8`g?(Kpq8UlHrcCy{zvi+tGvq{q~IEh z*-$JneNFhGyX`m6vTZ{&DuCMhCb&-{WU722;Ff{i^Y_@e7a`vS2<#~r)Cnkb&J&$# zF6&i@@NyR{ohZj4LUnZ8>5%|f!Ue9eYMg#UPOEM0qDXYhYM+6Pyd)rtjSWjCwsFL8 z2GP(F?~Y)LazmoR?s3qACDpL0n9HzMULIqdM*D_JHm4nGHgUaQ0{JHYaWy^m=lJUq zOu-e;7-`$5$eJkw&sDRIUGaBt*g)Dgu2W0X)ehU$b zWJl`p2eGJ&4%sO@6F(;=tP)@&zpO15!TpTx#hy61cfNL~wyA-*SD1t)c_(j$h++iW z;}r3g574)QRgTf6PoJum7`Qw^4QZXNZslG~Lco&R7ih;>)t{nY{4_p~HB+Et+%fBc za2P}P$||0T3HFLf3n3C4o)mX`U3rhK>IVmJvQYwS3)gj)zE6_m_T8B)qF>BF`t_tB}pwY6!F8X5tbPELrkf0I*g)E@@~plns5BqmLTQFCnJi zv0&-`6nU!luNzylRODHgXsZ{5dZy-feR5SeVMnr^9P9`YZr=(70x2Kq5!DI>2YghC zRpU92extAeFxOEn^A>sR9`A@k-*VCwW#TdZ_t^0lL+$X4$!cZ91qe*HTtXd%NLu;zh(@ZNzqG``6rZb) zS&z2!r-&4Vq_YbP$&uY^HGl!aVDj=yGFiWO-Y1Be#%I^UfX5~J&pH-JuxQwl2E}`M zjhRLk!+IC;5H!2;FUAXqs0Sg)1Z~)@IlwHdpfXiJ^GLI6J-d?e;v5GDch{j@Likmio6w$x^sJ*lBNl+b2sh&(9T11xD0Jq zS3r_Xb+0Z1n^1XKL+W&niY5yLOxd+zut%-87ZDI3Pjb0P`W|k-O^TzJH=rKh<^iGw z1EfFe+}I+(u<9$3c2a*yrmF%Q`j+1|z!SB!rk?f$Y9sF4!y*(1UK>`zak=jRa}SVQ z68oWrjAl}!9bFbEfKZLM!Es~1k_l5ZhDr3!TX!Xf{q=Y1T$X>tm$#9bN$It8OGBl= zGeMD8On^WGyX?{ciSC3biRevhcMtd`CulG(hk#AZw70^&)WU7ZwKJ}#P|I5Q5-+|n z(D^206zb&_u5L@vA}aCa+m_Wx={8>$Xyhb{Db?c_>!QMe87P2*9cE!Q60XN8h+*l@M-pJJr}uS}R-xJ> zwcg&P=O=4>hVt*8yFzu!HuR8$Bc-&Urn@CWDsIsgSJu0C9|=LV&fBpNvvqrd&=r9j z0t5({y$woW-!((aKq4+`XcLz(6LgJpAnGlT)a{q+VTGtGFuULgAT!vMcsS(V?(am1 zUjOq;MRKFo`*eC6&J;d__rEJ~K*(UNtvRhajh$zc?s}rL=>FNGHg0pacYPBOR&6@_ zvQ=Zwfm%^ffD50jhVSLg<0iSy^HEbttSdh9-YprE-aGb*iKg87JJQ{`u*+Nf@VRS# z69#CTq&`s+RjPnxXZ0#s&X3R93^A9XPzH&}MP!3UU9c>}EeCq`{6_>2prrZl?(X6C zD{+QJSL~MJF+X}0s*xSGF%bA+kbw$2A`$~(O{U|(RxPz-c4I{Ii*hnFLPoPpbEvvu$opjt)! z=9wFKKWPaE9bCKC=IoD#HL1ZA~`-H>W4%*Us8Y&>G_jrA)_h?AclO( zo}70n^P+%+5ZVX$-F5*XH(-%i_D@Y>x>nU&@tIz)737`tDk75w2z%q(Yn$P<0o3G2 zGnGRE3~(f3I=8Q1Bwo=6kS-;|?l=MJ7zVI8>;g5o;~T-G&!7OCx;VXhu(}wGyrhK$ zyAtKEM7c_bxLZ}MvPih!;VTsO4tXGf z`&Gk2hlTTBDG?&~2W*DaJLL6{F#Y0O0rWSuN4N8(g^pb}?Y*jV#vNwL*$Eoh4vNTP zlu?ll`Hv9EUjNW4LOzbj^7ieWj<1&gNDTz0aicoMG)mYat@;;a`Nnm4EV%*sx9pK0 z5GyFavL+7>9!JZ+GgI@gcuO+Ii<()0I((vge#lwy#X+#K(^4a%>A^Kv&!-#2sdZzV z+4X1uJ@IA%R7DwC3K)%b!Ht?PVU;{=8f)<`wYK#z2D{aXXhZmSO>c?CFBnwodrDj#}J%(+p6peE>G%W1>K(0T(H(-kbLu6 z#W`#TS>zO~ew-YEN>e+i)Yil3-uxtgTOYTT$E^w3wpYGoxf#z_Z@sV%4M3rH=u8{` zXV^INJT=h6K#y#_s5A0}fMY1mNif6G)#Z6%zlQXB)ycW{KRA^ha?mc#m->g_2v){$ z3*Ocj=yDi?+y|S@i(=c9H}x=zXJIE}A)^z@WF2hgZlfviH8%dqk`Xy7B2qBybEqoK6oQl3DBh69u6K+lfpI?aJ8==s8e{^v3?vxe~OW>eKX=H`p!%o zF`XUxkOa}|sp1bz8^`lqIai10#wfMmI~DsP(o2>T;{m5e5h0`SS9?N)?d01gM2*U| z+4mXAGFqnC?@cyCzt?+5sK;7=Yhe3LhNNQwn;q8}(J)MKQ{SeL4ind~FvnfwTeVbD zwh`KU2Im{UzGmDKF8Zoia6GQaW2ejiNm=yebZkj~ek`uodfWhJCBT4m#C%c0!u`5?-|wN;e5jIGSWwK_D;3%heV zp6~)X&?Y~xCLtPQviO}Ou%RW(eBlq(2J|w%{>~U?svYP<3lN~BvI3ZXm*u;eFd4C1 z^6r0*Or+|g??i`U+8;spwSCm|L(DOkVDVEE=MV6FS#dz>YQ>CUeb>@M*OOi+K z^(zN(teWZ2cq`nr{T8CHO;)i(-}Of)zTPKpd8qVe@oZrgf0rhu_JmG3=3&32v8sZxY^V-CC#b`4ZyOKGr_4+a0yk^v9W} zc)t!VNR8~o_u1tOq7%tvIzKNXS1Y1j$yNN>^53%IFWb^O<$(u(7 zlJiDHhp0QJ_3S?v_Wk*GXBStme~^F>n3o)_&1-4VK!^kl0u=xp&X_yf&aD^_vy6Wv zAB#Z%;`Mo-(Z<7PgRVpeRVJ`-)R8|DP=9#Wi9bewV{dgF7CaENqTEt_)06?+a0t9X z#_zRJzu3JsvvCn7h*Ip^%)njtq`gb#lfoGY@^xnT-lD%vfu4GSd$x48t;0};?^gyU_z~NF{7yHRc zkPq;~42y5YB_u=uP;wQY$r%iHT@S~1DMC;WH;~`I9*>OLJyFJf_J#GJ=41*VG?$Yb zxL3Leg0Uj9j?}PQkm>TGR<#yFFU0jR_3$C)=|ocvYrP@qk0io0%d${{-~l03H*3;f zh-3a@ZZu%u#V?oktG4fCithXWC7L9Zs?ssk;ZY>e2GqXeLsibfZoQ2Cj&Ck6e+8*Z zD4%dYX6h%32kfpupoY1=G501tzy7hKQ*c~*VpE-K5?%ns*!yHd7at2_wd(MllIOt- z6;Dht-ZgzAj_XF`$8Au~(SqtWsxjuf1R`pk<`e8?jItvDTVz^4=qaiJLd_woh%Y`8 zFylQ$8G3?G#%>U++P*cVXhjzoy4^wMIsV1k3KABL$a9R%zdRV$l`Tvh$flzSTTo>F zR$}x;Ae(0A+TwzG6)~k>=uw{Of&m7jojWYrh#lqzo1e31i_sUPy4_*<67v^}GleF( zMDg>0F=fWluP2!{xOy0H(c>RRW5_#$<6G9SX}1geT#8YsoqoV)`g7Jb zWcQzemG$g-ehBRnsoW>7?ySKn#)cp8QW~}}C~Nko@8A=>@&JwYV1e1AUWys0RZ`?X zLOaXOV_{KHD6Xhl+chRhKoou?Tt8vWTmz5_kt_?WE#7IUE_KgXU6n{_m$+v2@RhzA z`vPz88QD$uKj;=p1wzR;zj*X8m!hCDX3QgWb@2WPQ`~8$Z5WmK>);9r zM!DWCCy!dYPeGVvlpwdhU=5MHD9pFuEw9-*43)(I~d zE2qM4Y+istRs{Q*2_k`2I=x|y6@Fw&j-lA>&vzYef}|?PP^1pOD`2!%Ymy8_nR^NM zuu3N!b@-J3Qv_RN*mpOf;m{!-Q>*D#kM|n$PkU(nu_KxS3g%kc-Qm7nvEe)(*hRjT zQ!_7+L9>W37|QC?Y7Z!8qAkra%-ZKR`=xZmT@8!>^M{t$fV>(SB!I=UuL(_W1@Ma1 zYLkhFWkv&?Fkc|6kPI@w{riGf;cVke@+dS@Rn>IY(2We5I(VfaeH%VF$rw7?mKiVT zKG-W|ycU$f#Wg*0lZNM&J{-il6rzV2ND_ne@~MX>FOKL4$2ag__0JiG3w^6n3Jb&K zG&~P*xT`NP8$WVau?wI67WnP~676#&Rw3VlaM1tD%pFRs%lkRheD(=04Dd#Le@6S! za~Q?Sz%wSPpZ@6QXf$U-%?)xeFCV_Sr}shR9Uq_*ocyhw{w+st63~7&z3+eMENq(+ z=v-YY8hZ>i-)vAv$3UCcf6?)8;^(~Le{06A?_!Vj6s#MyGMy|HVuxKuMD)p>*xCO< zA)Pn6qpQ$!bdCGjzlFwVDgKuWa9d8|Be(w<**N=3i0r534hS{(^ZD zo5;y>$vDx>spQp<*X18F;yJ5%2eLy>t*{%Zkl7$=a-gm0&!8TdLvEJ^$9|o@4Z95G zLqeoF6nz{VX7_jiVQi=&#ahy{Xm>KTOXT&_$7*q_P9@2(a_`TF`St%7C))oX0vmAa zxq?vRr!lKTq+dswe3%LmUx@8|N1ZB!rehKD%|o?ELz1;~o?o?e{O=3x_TiBU%V&-< zAY7+i>n}nMV{81u;My?W66y84EMz0kIDI7UvM~lq%PWs9$nLWiHRKigsZIg`$LkP) zvhhu%D;jdm^p&o=Smc7w9kZQEoIkXEHDr0?pNQ*m3Iv9jNaBWuZvH=_zB>@=KmI>a zsFO3hBjb%SA{+~H(p6-pUrCadffu5{eHh*uY12X?^2c%mB%pSq{KldZbeUPD^ zbn?7}zCz?HNZ=_HV4cu?JcaeQ?yvOy8p}^v%&2jjwW87XI(R36uXt9z5_vBYy5n&E z&iD@&5?ldluQsj6#qtN}xSb@F!;HgPO|phWbtGe9OO(icHaI0<(Z6LODT3w3?gv=}qIGdA)f{qTbJX1ZrZ+6QO)9HV$e@qJ+&d zd@`F=YDUnS(dg9#LK1DbXv@DH0zpuqxQ!*v!0fxQ0T$`e0?XJo2UuwKz=oa(`jQW) z8FuIxkMR077b z`@UXohowS?;lVfs(ZE&9Ou5@QSs?`98o%NMj-3f4B{3 z-JRF6`1ofuSV8FmPaQlU;b!6NvK2V7@41h5bVlY)I}%7ZT*+w(GELRebMb~`r45M& zTixW~>q(*Utw_{ow3`@}ND5T3Q28q5)$fbJd8O^V(Q3$`0hALf8u$@QHpJ0al7xm~ zw*kuvghk1psnHJW{cGA!p~DLUP5-^7V?9~VddMd{ z=1eaWc>Q9e;lvlHRD$n7e-|0_U-#a3cC6_IwO5a-F)Z(fEiSIvp?BR!sU`Tn=gSs# zOtHhnO_+7I8tn`MAycHP1kQa`Zb&acRN~J}(e;H&H3^*aOani%qHv!EY_{Jz;7*F_ zJ2lfcK-j1m44xh5oA?FZ7QgrOmHU?P`)Ml_->xO#ktB%2lG^fpDgah2VZZLbYx8C_ zDEdH%qME3l<7p~rU0_w)-bmW<))L&5;9Grc3`=`Y2NP8J_d9UcRlwLsK>D_Ip>*NA z88O4g&hP{{(3!c52Z|m%g`!@+HB`!msqdS;yBY7BK`;S^Dz;$Qe@|h-3kBdPAfw`) zaQjpp>0L17iRc^)k+(WowKPP|yz@+qtT4M^Y{J6aMk4EczfKQjc2uD{-FhWMO$}3F^euMh&7#&dCwE?W&vU+-I6CwLgu(yx8VJ--`uK(lTd9RfsXw|2q zd!Mr*COcZ2;H(0f+}Kwk#Bu*$YOObs>BDD`)4h=K0VR6jc(k8k>N^gfVH4*AA@P_d z8_PSn)=sv>#Wx23(}kyyHo-YeSeXm;U7CuX`84`TFl(P>;6&GrLYDfaOLDBY){&~w z7cYK2dJ#;GNsQrjKwQc_dICfKVV~??p-X%1&DPibho?7ElK*klrimsM!SnGME1F$Q z__q*nCPF7GBxpuIux_f=O%XBm*2tr5^fo(^}R zmRDZF&Pju@Foq?rD{|QDS;-KkA9}@kiCy_I%Y@^ts%{lZ_4P`RZI0WjGL4+}Poaeq zEq6v$OpQcqL_vfO#L#G_JGq~rr?Amqm|WPGCLKpCKX+_RbS`{~h0ePJWZcd#$3z9b zG3kcyALbpCyvo@79G?so{cY9C+$O#i;~VNdC5}H}=-zJ!NvmdQD%M}H`p<9;G(UpJ zPu)5C6bLQc{epAmM&BF&!fr%6d|o2t9y}ZwRWjl{$T3%BKm}X*7KfePN14MyH|bmozPgr&eK_t$_l>pI#sXbaI9gBsJ~i6& zs^?P4|2(41F(rppjc-!Ma8@J8OSn#4OVmLMo#g}qv2Sa+7#m4O<8Y6=qtf^pq5A)( z$xg;l5%`xtnh3T!YD;l^%m-2LZMpYfv+v53X7HHeJc}>h(`HMML-u%6#G`bk+&lX@<@ zVf0vnxhFt(u)dbC3f#4?r5{ zPN6@Y=|7E_Tzc?D&#k&Uj+Tb<_)^ss0-u+{fSxJ}WKa;Uhq^r+?lg<%P?nV^V>DtO z`yAMCZIexvFk!27;tC96eCCFi7|n>H^xG!ZC(s~&nfoZxp`BY%cWi8D=A3Pj3uhKQP%|=9bHf8ZI zp5Zz9FNIOn7cb8Dm2wYh@%L9J>oaI^ZRWSb^v(R&0%+|hAJPrhx}D&aR%#vXZ`r1Y z7t{sRD`l4hfV%>6c2};7;knlPH3zh=p|_fz_jxvdYVPMXZCmj=Z9iLQ{!ti8kitB0Nk_R&fc0S#vzaJQ^+D&4iPs(U-r_6ISt{*Cg}_G zaqLgRdR{O5fOo=OpPir;jRf%$XP%c#B|04dU^`i0Q5^UQKx}1XSV0$f_{!YW#HZC# zL*Un+&$J{3%^Xt&C&&sX1JB-{y%6A>Cl#`FG$nWy{p*mIQwYF*2b_bvh-=100Dsb1 z3hUW~T2l-TXa}0uV0M|Dj~W+MlI3>ga7z@3hC=NouBqJ%(Rs9De9B~TPw5O*oc9yoiZ%RZtxx3luBp5yUz@c`Lh`>ofnGpSqIb-vO{~NC z&oyv65h zF;Ba9pzOdjsjC&i5<7@hKZv-4kh6SkAje`%ppwf{ZQ!?iIE~^*vw^ryS`CE%a_$%V z$$+^-o~KYXY7H9bAYGnxRC1|uwxgb7k`fT$5MK$tyrBy4GP2a zX&L!)p2C;}la?3!{maZNZ-ylpGKg8v`sd@lZ&9J!#TYS!89>nKF%JQYd@uY2VWZUm zHlg3GB7qm;7VTL)$uJo((JE&qK@|+`%>5{Sxe{ucHh!&t^Dg`0R_ns0+;!6BRXCqz zf%Bc#3+FIaRDM4f zW=&%mQcnV~N2n*@h-N)KF}C_`=IB%)n0^QR6E&l85pB>-+b!E%3f& z4Yt4Gi<&cgla@p|8}&`uX9@xgEKp}e>`i~di(g}~j)xR5yQk0w=|JE_+A|4^FvAYN zp~5w!GDkVWQa8^Eqb#h`y1jljjk;UU=pk}V5XGuqa{QEpV@_Td_@}x^N;MFS@NcXX zs5$Y04tQG5H0A2<%|e_*C+MZ*bUs8oKFayExDL-r za;4-?B~c+|>^VlGXx=9Kxj0 zJFg&5AC}sNnXw-%v;~8|E+6?Tx1MYq`SJFF+|*^O^T@*YKUb*VTC$z3l1=I)2FoBA zLC(u#Fs>VV^k-n=VLS>8#gnHH>BoD+|2FeQ?qyxJ2JxHOY@79e@tflEI+FEOSkiuh zah8D`z44E+D`FT<3iO%Sw_^C^4GI8P4(vJuORMI|IqMcO^2l^q1jZ%EhW5RoG&AJJ zzv=LL2Z8E*EwpxFyNQ#p4(@?^^e~Zu3c)x?T?#LwQ0T(aR)BN(kBz$fsJi?s{v_n2 z=2_Tk%ZCs;v*thiZKB1fhLk(31ZJy&l<&pfJtxqutY*YGXM$Mq&yl>Hsi{TE;W0TO zXf0L@%HQH&lYLCSui`2ArAW8kwNRs3yR|*K_(9&?gpP`sn7M_@=V4M&)i9*}z-WFz zsj>01a14(WfP2)z1%b_X=~21ys{2LP0nQNtX!6EO_?=3o((vH8+;&c`4pkeXHdjpC zORnDukK_0xF=a{yF{U1R-HnBb5PGrl?xxO*H0gK{LtPgq=dViqG3S6O!8jk9(MZ2< z>Il<^K3PO|JC*Sn9?SgdAmdk4#Z}jfw579|Ka}$TjXv9U zYOsxz=05s=YMo7zf5s=DNqw9W2%-wIz)!hpeX9fN&EFYIF~*%&7Z?# z#BrRoLy6**2r;rV1>qK;W{e=TqR1MS#37Ah0}DN4Npw2b;AeOrfYdUYVeNW4NT(4& zgZ{AVOJ>9$H}5&RD6)ff=*fO#@%DGpNdmLTb>v#+2?|2HP#wJZL+hRQuuwmX-ydOO zWP$7yDBXzyJqI_VVFdyQS|??UxX^RYqw1xAkGB>x(Eh)4zd0^#lUn7y!WL3ZqpQu! zTZD%vk|*j&lZYNSUO+nm9?i4k;XP9a;N52UCKHG!VdN#m@N|T%n5na{&QsT;CLL`W z5imB)gTPwvnS%NU@((Q6R~%*nVyM@!=e?S1OK zy@S!$Q^7iy@4f5Er$qN5Ok?B*B){+ui0ZWao)BkU(L|5m7j2}t&Ui&&II2jRI%h z=?8+LmdDVgeR>J9d>xG!ztS1B5z!3m^Y>ss-1pG2H$%tUnErfr$-H3~I^FR?1BoJ$ zjyJ45r@NT#8ItbSx#k#Wr9eK0p5vrocH-93*2OeD=RVU}ndOr39iQ=-;3L|NH(M^# zDiK#7_+Gt$=&^;(4mKAd)&kYGWUXnClU$yyE4yi^=@bGD;pe*3-tJe%PXR9`c;fx# z>CiH!S4eQL(69YXWMY@-C)4LfqBt?v{pNf5%$K?OECkR*YU1zA%Ui;KbupJJAqEkt z2Voy18w7m!TM~u#{K~6K&Nkuw-*BeU5Sr!3t`JHd5>t!4)w$~vm6JqYoY(QWN{zoG zCBpRQGp^4B1*AIpqBV40iMOr9W29UEK)n5YwtoV+ypz>){r-Bomq> zdykCD&oskEx1Cyi+EDFXGx(5_F)~t_@hrWruX7~FRjg@{HA_6KZ^eto>&&6>B$&O^ z=#oL~7<;ByWld$h6jKT?w}l29dHl4^jde}zSkxL$J*y|VH!RWf&v%u4FR<;XLMorm z>{e}-r;9;ez~J4z3!Rn&ZgJv5d_*5ia0#dvu8-0qWkr+~TcKeNI_JxQ#1BZjnyerZN1|BgzLF{Fb!I?FjGW%{3cD~XXi z%BzimG>6wx{p)_;QopMYlZZ{)t?-Jn+~mX0vci9+dMnBv`qoT|jCzDaz!i4=Z*H)k zR$|CeJ|Z>u(toDy{0*9QIp9e|S$;{OVXDX1vZ)_?k;E&gFDfrXQpV_<5I{ z)t|-1YG$^o#VooiUAVU@&0pe0WP8w`{gINcnxtcuX^Gc1%n0&iHq6``)($lyG`5Dg z24+?OK3i|#rR(0_HIsWJ>3jti>c3!f{I&@#Hp|=kWryNuk|I82aJgNy_{e$q4c>Fb zr&EthnG+MBh#$kx8~o_|gH=!uxy}VV@ph4K79;Tkr{Fd<3FrE|D`A|nx2iH@%3V@vB#@! z?y5I_y&@1-ahS9m?uqOvP7udW4{W{`s*~$MwWuX=y1252d_6pThIVzYcy!ZqcmIN~O(kYd~XnkElw(}pC_1;7sT!l7>?Z@RLO<8Hh4<`U0 z)`%cUgV2lSvn1BmhrzdtDbQ=gGKvePc@%`cOG?oSVbEg_GvPXt@x`amOTGB~=Ydc> zmXYx0q68J+GyJxAzC$rWFZId!eoy&F6L4eThx>2c0>qbtFD>0ozA)pc6X+cZF|siD z35-fZ>p|7=4~zjq|M6VTz`AiRFj_D7aOla$Z1ILf9R^cb7IgZVsfY;Q^WH^&beNbe zogcoj^Fv=lFxI8qJcX#Qow*Cu!MC;i0-vE89%~hIq2irr%m4#52=~wj83Y0lKS@IB z$0tpS6j5)V@J)N*V?wt7W9jJ$Y9O@m3`zoY#$O6Sbi`ZX-0^z^+wTo$o$=&F;any$#%2)(|~M8_hevexShr5pIrk9EV>M zb@aR1_eLm|-YC_H*a+a-YK9=!^701Z8zS5cYdsFnL2j9SS;G3CLTv!^i%8&jcO_X&ua zgl^7apju(QZ1FIuwJBcbDWpY>CZUi@ZQUX5KiMtbXm6(bf1d)S#7ysT>Fw67H8Uc6 zw*Ov2XYEniz3)I9!vy~uA=Z5y9=z=?I&54lTF6o!?dzR%HgDeUpz)cql#=$LZ<===bcO@h`6IG1q?Tok#nMvZ!vph8W-G z_a3XV#ERjR;NbJhSB&Pxc_x6BE3-lugS9Z}`9hkxfs;hn&p#o-I%I>OGbs3Yf>Moe zj!pAOKm+>iPin0O(pLc$RWY1}ch)vCHs>fT6*@Fo!TB6^OFbRhKEyYd0$OCFqKDIk zV}j};X>QO}_J#3j%xM%Ky?oyf75>@kbpL28KVI#$aeCP4D6@DzAOA!g$1tA+fUxz^O50nFZYaDZZ!!oTJ~QqqSyH3l&a8$p_cA{j zoOs2dO>>0%ixt4^6v-~HrrTu0LbX_T+Q$C0Y41Z!gTV4f6ydY6F!Zmar!S)67fP3d zf+4;D+&2B?)k9B|;f32Cd)I{mo4EWVjm8_Ku7OZuPy(e4DYSK|+^N$Tff~-Q+M%c| zZ=KX%SJmlZ&Mr?($b0aoV0XTBehiNy`xB`oaQ^;cwEj^FOI64oJeU*vkg6m1>6K6V zC+RH&gPTX5ouCnYw(^RpiUQ zRR9z-UO@c?HgSc#T^%SEF$&#_u1+22^O%u#u-Thjouuc=_%C(^YP`RV)OtE~Oa>P^ zcaElJe}CxuOalJYGjU}v!-gj6R!L07x`N&RVgX945cbr%dTGG*LS-dFr8+9!NIit& z3%pz(9!6{2CQ!gDNF$EyL1lDgrNks-^A$5M9HRnF5h_yoJUM>8`h92Ts+AYT+X~;y zTN}EMTHQJUDz{>#(P7in&kt=LKkz_dvZ+HRAe+~}Q}xTV4KHx8;8#Lnx?w;2JC}$) zKSSp=ihvXXNDK;>&KplW%<-O(;Q%RJwuQ>eN)Cl1Lq(_POYW~qklSgAm*nXYjqsj& zN(6{$E?t&EOX5E~1W2*_Dr#$9Z_KXaKos~Na|;w4H_f-&$lY0ARFUwx<|vXeW10wN zFbuk?qap_rOyx2-eS@3`nP+!6vsB2S2VYtjm;(Bg=cH1?)oTd$or9Ktv-Vcou=XbH z=AH$HBVWHi>sF$v2a>gsQRctIkP2IEk4Jh6Y+6hbQokBQ)3f<5G*L8UB15WNZpk(p=w2ClV$hgbs3~3HI>1EA@ z-gq04^~|5Z3@x#p03>!N%JR$dub~^1bwf4;88%Tsh_*cN>T zwOu<}0LOdtRW0?V+bW1pMSEs3|9wM=WE@K6S&mg7(JAF7JXxG!%j7(sC}r|b>PTRH zAbOZX7>=kM)PYMD(yg=EasE0TfER#W*j9=ldCHu;uJptnpqrXx7%Ms@3FQ&l!-8#z z^^Z`zO}g!i7sLs*pA)`FS$$;sUu)xN)4L+fouqQS5)A1)WEX79 zHV$7qld=#suOnf`=X<(DlJG>iL1LF z1$w0$`kxKSsw5)9bFd0#r8SUeDL)P?A*f3D8GMPEs{?RRf{7h)vWV69&!l7^oFwA$ zB(!iLs)U*^wSSlJvwuu7GRZob+=Tr*U*_$)+6|bUoQT0W_)y8b`SC$*2Vgw?K##5> z8OTmW)JX7UuI9Y74urX|^F0>B=!fJ5L&kpS2$MEjuRFilgYL+_-{0V{-x$;hqJODh zj3EfTy`f5~5#c>|=L>111|rNGTovjA4Glp&cPr_)Ca`ysBlKBz`-|)R{ zHwXrU89cadm@Z_&to`s#FvN0OiD8{&@Xy}8P~<=m_}Y6m^RjO4cmf3h7yB8O{Xyqc zTRqTtx(`B%067OfWex@U><{|ST6>V`xwm83tWN+WO&Iw6dB3ArwsLNX%VVw-WMPlE zskihReV>!BP>jQe_;O4Q{IHP+LYlYh;N4G6)U^)g){tvPp~8ZZhYHphi(WqkQ%o&)V25SR+cscHYVT1IeQ;c<_3U)`bvTZIq`l2q zFh3;R8q0hO)vLD4Vj6+3K60OMs?zuk*J)s#zc_u>Q)kno59mVSvf;-!SXzHV3_5G0 zy^jpuC|Y4dVd`g*uOPr;w4}Mt*a^KRK00A-X=_gqX5yiMCHV|SFg=HwEwIg!k1F@%vC?t+vPX6Q z8zg27&xKAtVEJ7}fA>kiHujRwUq&6WRRj=clN$i2!Oxwav`K&a%?s}1tT8a&iywo} zet8+%zK~=r+}c0_%=Skx@pljmdM?iAH4|ysY+YqX?IEk(;^DJ0cy8xM2>V6M1&41O zp#>6D)Xo*P6@DXfD>T!wSRC#Xi*$q;(fLkV2XDmxC{%qhdb#*hxh%&T*I4T+h6{v? zBPInV$gm{NTUp&>Qr|T~+wGc}Vd^H0F0hJP%PHpQwI3p>Iu7x0mm8CgOLTxh%_LQD zW9|6ydE;UvsNVEhI5e4VVQuolxs>A`)+hh51kMX?Op7ibqqcjC`MZ7VAZ(q1-UN=0 z(A7!geR8oL-SC+e+KhckY5}SHrQ01^>Np#RcS|-jTqD~53+a0`Rw5I9+8>xY3g3NFpRsg=3LcQ&@S-%Jhy z36J+Jr2UY)lpKwpEvf&Jtv__4De&cvHgXK;D}XRC*cbB(;sHd3icKh`I!~{q4OE62 z;%C?M#B>*K9I*Qx>}3$h3{o9t_VlGBV(v}lt+B>@tFi9ismIu|yn~&?0~Lh;`pZ!l zS05tjnA!Q!OS?rtNGO7VgULHx%btJ@fDiKpS)zf!gyE0ehW33F%2z4Yi*v0zXlgwe zmbpCci!wp3(-4y0hA3GiaG+!x_jBoq;Q+%%&Z1#G4olcZ zC*L-jLJ8eP0oAGbgM;~3=du-jF@B-p*3F(uXG9Dh@;C%$h?6tSn^4nd3$M~KP6Xd} z<=u8)267QxJ!RWjbj~O$r`~@IZjMFY+K*Pxu+9HoNb`8hS@%FmAnr|7`Q9;Qd&W>% z;Koi=p{LGOegK1KQJSl3eM9ec#3SMT(TKq^J7w&LrSP*`{sMKk${F%>IlACvLVFYG z3~qtl%5OWnJoCN`(C2&J0f%`=+#Q@M=j|IsD0ZoI=0wKZxQblXPyb20`{ z%QpdF7~Lqw*T8XV?LfHEM=7%VPOoaUv_C1e`hAk_oLkWR1LN)2-X3PP|aY79bl$f65GZa+S)4w5K3v$d(GsbG1zs~{WE zgMfvqf>tG8(|xLF9s_;Jl~mEnPQA9l(sq383+QYRaZPl5Y>EHJj~UC^Dh`VWsm8yc z)`ncB*S-DqG=W~t5wS0!@S)e;hnIf)H#vBl`=I9XBcgz~qjAwCg0PiPJ&0ET_yO*c zBb%P4$g$Z%iztf7CTw9`HS-V4)lLeb(O+hOLBW24 z?xSd=o~TNRA2P8b?#NIi2x8^@#ICDpoNm~NLc{`eoI;xFi26#3oS(sWR8OCeFgn3v zKt35Ny<+RV?f&~+-L(m=EZ^K=OPg2f!_99%+y}VNv4Cx*@R`ug{Ay{#z>4TNCr^Mh z01omCNhXu$G&+w5m?0K6s#kDwbcBdy05t-T%UE_OMsi13`xF|Z&<(5jzzg_ux-9Oa z8L@^~hR2*133V-`6CZXmaBpLc%4y_<6qo-nXjoxQs+ItDs6ST~MLq*KS1lm5R+=yo zP`bN)1IGLnPR>=T+%X@Zz0M{z{ahoxG~#p^$l1l0!dmXh#y?DQHpGge?Mvr5JMgUn zK-=_|;FTcgBt(AtD=NHLn|U#pWFD+g$k&s7=2k@Ee3azHoI9DV>&SM}FaRC$C>t^t zy5-D$6tHX#IBHWk+N0mwA75<#>#=_@9x(hN;4u8~aNwv9uHgAz02H8d+DHwMP1o*# zhmzn=C5z6ytfxVFJ4t7odRRFnTIavE_o))FKv_tT!Iwhmb&Eme!amC4Q;Qc3=l;=Q z*U{nLegW&L#b&;7gs_M%sLxXSKTqBrP(0e7uZ_y;MUi!N;YR#CMNie)s3L%Lvbs?3 zUn(01twfsvKQX$TG$N?Hx6cUM{k>cZ9>*2Lh(aClm^&m-Qpz`Q%y13FhpOC-!ru-Z z$(Wo4;KJ_L3T;g;Fu~sZeHvB+Wrp);Pk8JeD2M21L(fS0m#IJpdx4DiN&h>)d~~>< zdUQQqTd?r&w_MB>yVIMq8-S7)i(0IV=22o{)e5oKyjgMd97!#(pMwO zho$vUwtVP0mPS};G|5|>HxbQn{CH8cEn2%H#@RV5w8V*bmIo0OXKGS$`)mP|tE9(~ z6)G9x79QjXjBuLNfp1(r|I3)lEn$2 zFMT)@OW+Nju>F<65n)Xe@Xn417bRYn#>5v|c3ex(1gNRqw{b7su}T0_Dr4&ycjkiq z>*3FgzoB$NLltWJEdz=D1f|E@4}gXk5=c=HtDf92U$7Tmp)CovLSd9K?Fs^_$)^%} zSuZ*-9k%h&q4j>?v}v;fm&d8zaxZV=w&}#LqWjo?aTBIK4u3w0tX~wO)uOpOD%nF_ zpl7nlVJiO#=5p0M5Qfxd`CsF)b(Won7i}GDD291PTwBW?syS5XDL#Kee}ZAsmhMgo z09$j?E1{m#@t9#}dYXq$Px{^P+D0=Y)ABis-~`P->_L|-l*slof>J-cx&Ck|57Qfm zfk-X(YU{N!F@h1?y!nsw9i*{Z4J0HD!sc4t@J@`ifyKa}0g1_}?3CX%`znuzh>VNjge znhs{uG_yd~KtObr06Tfs^@7%wWay0SVA`KuHj{z50QXl9|L$EE4V)c;1$TN$EkI()bgRFrTh8Ru|rhA`Vf7>${N^czGa-Vx! zJ*Q*YMK3P4LAEVW9SqsX1;YV~SpQjP#NmtN&yxtfPsc;QN#N7qbjwxE`Dp7!T77K~ z$Kdem^n2HH6Sw%|A^wBA>fXauyxgA}?an>%d(7v_GvIDRZNqqc+8=`hj!`judf!nz zs^Kwps>>GG$Qr26ct!6b5yBi16!%&7m5JJ%f`s}Q#+O={Y{>%*lPtqTambXNjV)@c zDnm0$hj<|xWv4-{nF7#!7dDAI-t7Liik%?v7D*`sZ(g|6o4qEbJ_~SMXHtavtIq(z zoHyj!&%%U0z*#}m|Aux%jeeXx$-IA0ihT3}Hjy@jL16-EQXVvFV*YH7&X!BpGstAK z-BqZ%*5WB5vxQ&~VKf;+GW=iyrKE865BYqZWs-@?UpJSE<|oboO%I1(lTI^FED!x= z?Zv_&w|&A1f-_;nQTmm;8~dBV-^#xV*`GsC+-0fJCH)b}0V}Lac2-8LhglMRczFIWHjoIPM!R$M4JC8r`dda4V`L2fDt&Zm_U~FE79>Z3 zG`h3=1u?vOXbp7xGko`V#j3=#yH76oLo?qG{;nTD;n`jRvOX)iLHW`Xp7i@8T)R6* z=DAGd*Cnpkgt}W8e?1{BhX^pJeE&bP=F1J4{?GBmoi?5=V|!#3pqZ;KEM8&fF^3JY z$ruigT=}YSK40F?)<(!6TqadJzLu%pEj6-4Fuh%=a(KvZ@e>;ND7f$WZFe6DMi6m; z%W#wuQS+1m9&S3nF5@a)uRQz5EKLQpV}|<&+Y@ zM*%7noV2e(U~wHE6+27PQ5bCuvpZf3pm!?(t@GH4DI(DNe)f`ak-#5?uyqiLwQmFe z@7gE(Bo0Uh%^Xae>?eKrs(Em1;ZY9LBN%~6JJbt@?w9n~g(LlZ%3Kof_bGdD5bk)y z)ya_sC9$%vHbEu5~azGX}Hs8x$00Bn;4Dl;GlLdBH-P(4^^)N>niO&n+g-tgGVqS3EuZJZ>L1 zG;5%^h7l6c?J4iLBju42XA71#G`$j?1@u#|P=80IptYqPl*d>rcD|WZuyFGP0*^woKsNa9~9QvCD z2%dFt)`h%|Z_t9a0VkT7?x7zFydkMP81mTayC{eb+oGcYqv{-nA!|4y#jkkvy^o8v zrMBo*{d=Oz^zaPs$~c^-(5TIb`i~3KTir!#?4ug!JHRJrk%92=5P$Dujj!9im#-@F zqszs#%2&(Kf0~l6ZO+ktZGj(J(4@vRf7Of^k^lEjwM@2C46mTgz2i}v>G^rSDARIN zVIB*c-0zY4%=E4tW?p|+%ZBKnaY?({TiHdN+|4TCE2zJ0VGTIID3|du$M&wWM}$5= zGepz}+0C0iFfILX$$Ke0eaHHI2Pr(+Xbxz1-Wzf&sVXt6IKe zd7hjF<3IpJ|7f=or^m56&2(hNePe(%%cz`H!-m-RNZe(vpDE0Q^Rc+47#DK z+ueV?H3@L)@|^H|gqq%sr!W&hCwp(=C(UUB1o5YM&9H)~ce@(v|7McB_c}kdq!f0< zM}6lCVdYt9zDC)16yIb0g4ac({prn=X;gNwXV^#)x*BNhSaRMRRw4Byr$jsS<_3Ud zeud|A_q)x0)b4+KM`visUU!66E@K zuYbI@*JG$n40ZSoR%6C7nd@wnV`n-*)zKh&WV4>D&Ub~By!?(=TD-s(TD=_iBi~2g zvgu61RTSoMVfFy`v~RJ`{@gn>%~^BVZR|d6CkNG>{k1= z$z$=9-8bZ29`6xsm1+aA3Y%+F%Th*X(fnWIGh+CU65A;K2O7VN=c6dgJQn+9l}>)? zTvr{jdF*6eF#a(SYAc!_>l-Xqw$g&dJTts!cr{0l#c;4^ccF4z&P=jo9#I(Q^$8dl zqd8s*ttIYT(b0ZkOf96dvaTpRm!aiAH3b1tij={RhN4{U7zvtr_1$leT-Ja*`gw`P z3sXynx=ETNV{&FGA!nJ~w_1>Tk*3?H5f**c%`2PyAjKXT4)xqI)QLZ6;THs2E&2OX z2Xyb6wp8!fkFdS?X}7r0Bu=(IhT%12b&w|JbtDzh*MvwNB$7~W+_BDu;@BJZH9@V? zDcixbRGY+>vH)8X*?kCROfdEEuf)=tH=h`X6Bpji?z;>)WYDcPS`O*1+v*JDJPgH5 z+R*6dxDxZsIl+s4WT&`g>u(~)3mzFmcWwy3PdR`Sgump=Dw>k1I?$7TXl~`h%a)2! z4ka-k`DGm)<|D7DJ-9DA`!*Vyd&M*9;ZbcU#Rgk=;CQ@te`kFKu)^=1B+qd;-w&i7>|1|Eti&L%?PlC3KZ&{r0uP#SN{Ip+<)m{tF5ufA|oPZagnf3_$gb_>YrR# zwx8}$Z94XinXUgm;SalnTzNq@VDbBXlwg!Q0Hp;$fJvFQH>BZ?=e><%F$;5;E(`P= zHBC8>IRuIl-~dnib1FF$y7Sy&;l40oP&7wKagYTz`*1!D28}PTivje+>an0j z1DtQ%Mq8KzRv4EP3&}^ydvdPL@9(dl{RNo+VcT)Gz)XwDET#WNOLs5CJ-2i2OV^qd1I2|IvTvoODUqafjW4Nc!pQ@oc$v+EcT@VjJ6Sdi*Ku@7l1ZA>rSc|v0L%&0(lMU&;>m)oJ$P^sz}5$0whg#j(EfPPoNcbW*mMS-f|Jdt$wqo zQxLLBkqX3+D>h7pZC#|sE|LPVuayLfdk83byIUgbs{)S?VsL)R;k;r~AxoA;T@UGS zOV(t^xz_P^+j)de_&_U35EPsN?Trz7;H2a%k`s)Bbgu*X9nkR8bLjP@u5{S1p7Egd zJ;JS^jfEZwvg^MGGS-tAK+xp!NRMpF{rh;q6R)3sTFhXZlM34DQ1`Ywdw-Z2ZsMtk z9uXxP!De3*r~4SR(m?Ffnn9U|sDJTu?|f-a=Se+S^7Hx~57ao200mxdC!a#Ihqdgqa~ zK&E{VzZQD|HSNW!qS&tiHyZxC--0HF8ENlG!sOA4|wbITBA@+vH z{8q^e+T>2d*{mZR&)y$V$K3icDim$(91KZeJmoH0>DXuh%_e8TQ2>{5B*1`5Q54j8 z^Y&nn^b)S5%8;}8=e@H*FhaRCpLYrldAK2ryO@zKIR_0cUvnuz$ zPS7?yDnatZEyytxpAvP;>Cybu-Y*pGCBOn*62hy-`)4_;6FXHl{}&6;cbSq*MVMwb z!#-myEn{~YFs-OZzepb)`O&ZVh(L2u_D-L~-Id|7E8geE5&@YUoI2{ysZ3Ft|70W@ z_?ZswUqU}H`}k9K8IZ#6TPUJwlo~L6ib_wRQ-HU{-;cuo2;ypigGApZ&+U_G3=`we z6W?c?_;@VS39gr-FoQulEpRnD0iREQ7uVU4pvK7_`QD-q^6YMru_Oq}eP! zHhc2|Ae z)WNGy_w>Jg$u8e)7EFUE`sqcZh{-j_dXK~Ly*E{(J?>g4<34oJh|?QK9McXp@Xarg z7LM)0$q>^H;b)?k>a`Z@aKe5B3HC2G0j5aTs+hGd7NkBYe~(O@ScRtB$*K)-Yo zJKm8**!v=OK(*mi1}U`tHk~;NB*kbgu;<3%2R9Jh@-PM_2FH+QV`>g#0oTLpX`_J; z8f`KuuMY#@*K%8L;wJO*3oVgXj{+{FMl7D5IktJZ$0WUc(PUONpX=u(Xc0l~zZ1@@ zxqEpGO7D;A^j^>oIXL`q7LVP8d6hq6aFvidc;R>pdsHo`; z^8K;0kW2{$8LoX)Y4JIq7xf6hE9Zry!XT^Tv9FYBg6*;8$EdDZ?!p(O>!FgO&1Mg$ z9V`Z8PF4!xsF@AC@+69H1CyV+?I~iwhu&e;ePDE^rNW6*5PWG=;(V{1h|`Np0v`;w z0%1d3I+&xh)>Sq2+NR6wQuOA5#AMFluE+cIOql=$oz}5be!e?dXa0HmFUS(4e$&7~ zs=dU{<5eYl#v$Ghfp*W#csqS98Mi0(g^5;Xd3*6w@F~W0_{L8aP@ZoB6Owv*F=can zTdaGu7jiU|_l?L2fLaq|m#2RWUag;79!TyZ^ReCkQ_`ETo^RUp^C&tq z^$RBgX>(2~r`wAp(r0cBWr~(0ybZK(#3^C4?9-vZKdh$h zbvu1k+FLC6fb;=e1)>}kOl10zlId!E5hdUy=agN8X$r2JhblVQc zMwpH}WKHhRuQF=;x#O`d588m{DByXVJsTS@foG8ogPyhIxsN_du|JQFxW`a-cKj>p z?U38=^Q?TjTj+NibgQakh)<|Bq@X;^?)F!bAh=g@DM zNK=J+Jo+V}2Rc@NoQ>ow1(E_ZDu6&ypJ)nDlG_tfyF>|c0u?iQNSWo zfiKaC=5lHb5Ec0Tg>-YFQhL*^kQ2~Tf%{)a@}#I*@&YAzo^um$$6jvedB9DM@g)4r zpT=R`{POOC$9G6${0T%w);bd7u{nts;{ykXNLCtVh1SW z(}-B?zt4N+ZF~Ch$z<{BG(!0#;oKNm03qxLv*Sa*Q~|OFyDC}CJx>3Yn+d_$Oy~H> z8c~r71L|a|x9drBGRB#jlJtU@z2l)>RR4THcU-owS!e?qz81;WM`%QjedX496Tts9q#sb2o@JL#wcFM! zmkAi!uQHB*4Ih|i`Cd+*^3ac9zDr=%8xL&R6Qm97k&U2VHTGEK%ybR41aqz}ll0dW zgIgh^7KE!w%XzUIU;6?jsq7!5V_+r4;_p-O9*@}+s&)7D0C-UV$Pc?H<9>}wGI)h8 zB@k8&>bv-D99);P)AvA#wUm(MW8*RJWW3T%Hrv0~#iEmX{_-0A%0mf?^B@z8@$f%YGm~90{vr)@N7k zXv8c$`V-hpt%E~wv^>kod@l|piF(#?YBrAuWjVx))1MCiTh@+Ts(1!KFlMiT{Sx*T z{=EbAQd$bZsk;QeG3Yu+?~Io zTxyBg>7cDCXN25sB{zNxI6eqbsi)x3YfBQ~7I#h$1r=FlL<W%gTi} zf+|N~0(KP{&pMxdB8d4H)S`JU99tG`Z^|*k>eqn zdf5Gl2J`B--$C;qZ$YZSR5!14uc3w=h}!U0An{iZA_7m8h^K)49;4w={U~zi*h3F$ zWe#_@=|i<-@ZFvu0p7N#4Wz)u*s_EdX&)naN1w}Ldrd4^|q zzH4}#46FOmOJ?AR)B|dsF)8caqw3G${E{y+B?YebmlmXdGOH0NfosAnlgA6j&P%Dj z>A%l6>mkn1UBQ?~<>H0|7#1-BKv1u?b{?=T3ZFzyEU>UOk*j;78RNVs?|;TqK}KNQ zsb0Fmyw9?SleyeFiZ?(5IIv@1pJaRsm+w}>yPO1autP5Ny~!#pm*dJ51dlk@aj7iZ z{?0PW5DhSTXXPG`#mF=(8VH4RHjpt~Y5OQdWCr+OSd5{-F*lb3WaSz(a1aB1&+ao=%C;^X~S-x@Wa zn|)ygj9zO~g1p~Ro}KN--e-pEUi}$kXOz|9&tN{E-RDVR=Bg0JJ3sv1M!peYOENzX zRLPn?#h7Odf~)x?;jUtRn; zQ$Re5Y;Y!z_*8QUf~)=)@DzsskK@Ar+dHi*eRBl`@#!s7pB}-AGttSPB0$6>_4=Bu zx&Rl~oyvpN{STVXObTaj)cT0M?>#zYWegrcptk7v?FkZOopQv)h(Lz70hE9hk$cU> zB?0QATfJP72(VTHl|}OGy{Ya7xba=Pf>?a8IaB&H)gh}1GOtyy_*ZJE&FxzeC(Z^j z9gIZV1jSevBm;_1^DC)ZrajCVIWS<52!Uy;4NLLQ>rc6ygAdF- zGC)|HcFJx83z8w@q?J}<>Yhy)*fV3pr=3A&hK6xxU(*YVOH)={NR6>kiNRXC7_o-$ zg@eF81iZvqbsl8u0^R4qgpeez%{ad6_W&rlM294iLAv_Vfz>f{Qi16EMnpCC4YSZa zZizqxSJ#-wvh7_A90v=%3TMm6rvzf)G|svt5^sAgxpulB+5L4?m2~9IjAH4iJOsYomCm5M|AG)NnEQ)7;9%FzIY?o^^19k|0TtMD?6!&Lnz977$z&GMvRC0nHm zx5TiO20({^s9CtQhYH^rtJQAf#02zwVeOk$^NDz{wl=DFUCr(`*;MnX#k)$X}mCO z%Rg3!51M9`AK9Ppu~i3iNHIdVWQ zTR7U~mjC?pD1r8xRL9OlfD5BB6DZpD6a?osfLG1iARo%(ThF&BPF2Fuj*buhJm1?) zgPZsN)Qwv^P0ExINV>9l>{#={QEtm0LV|k>=5>26F90!;c+P~Iz3Zb?$E;I!8%`-` zP=DVLi{bjp6mE(=9ObE6QcB#J#5~Ds5 z%pF_b_o~FivU1#FICDtU-)K!dfO+*SK(!9hvPGiI=7dMiNhd*$#6ZMzJ-850EtDHv z1#5s@gp3lH=yd{5yRP<#H##=BKB$z5t+yQnAy@-t4Ae@9I2S~&;;qC;aEqsrlQ%YD z0TM;~b{Vz4%k|IMcc|G6;2kTk6P3SC#aRBzSm(|!I&Y;iQ;=0of1+a$aAZ;BBTYSL zzB$M~z543fa?)zdDHdvJ-Q9$U$xc5;KhUfaW%UVij$;OVQU*W)UGS~F#lD*WOSi#Hp zZAdJ#l^%v`a!FX-Ue+zGPxA4e*)sRBaeZ1*rRMc(J=hmtkjj8anWY7(JJ_(n9*i0< zySM{srfAk#8($eBf~(k+aM^F~K=8LlID73$D@C(cjMSO?23Ya&Q5!hu-3(@>&~IUn z&zDs*T3R%OooKk`C$4i4DZcmd;mJ|VkAa=^z>DU;a*;!O(0BqFOxSZzW3j>C2G^QF zbQ;n@199&yjqpQ$fhIN5xQancSQ#uti{3AX%NTR{Sg`!Lrz!Wg>?Pg{3?0 zHcW5Tq3!&SNoN|a`k2o9UBL^~=fIDj;)&%wn9RPUYrOn7l4u{Ombw}FtozfToOGs1 zi>+PhEZ-eSkzckA&*J4Bue1xTMTADKmw7<7UN$6?W03x5>B?i2hZ)OzGJbdC3ay*> z^6kOLx6IBIq=64>(l&J8ANg(7e6~I1-z}ub3M_$PQ}LA#ZI~7etQaVTG+T{3X(2wJ zJgb%M2;Y6G?mLTgpmyGIBKiMoSaPSe_5-rd^KAfr*`Jd?~hj75WG4 zJg03dT+BX>YXu@9qWnK%XDn^kt8zp+FnHoiF>6F4H1XA2ZkJ<*6F%pMR>QHPtG-CX z;re*`85h#=+fD@kfqclXBdEo8Y;|^Ku_?skx8Ss{Ls6Fgtplm{D~5%La~332e1 z{|ZNu$0@yVF61710L#veCvxJ6)=n~=~T z*-!Y_*&Z)B#baEQ@&1biON_W5*^o_ilXZ!I)$)$qBc1-s^D!ozXg0T*6 z9zLi3aM<=68s$rBlStQX(ea#7FTpG z9Q0AMUb-!lLwjK6;Lt++z7p1hu9_(j9uY()G zPKSEUg(TKlpL&=!KeDz4qs!IWIw9j%6h9_~eXr7PH<0aY_D=fQnCyf8W`u&7u@X&1 z$dqScX|iYG;_Etj)3?3%9uM?+7M@aH`dE^8`{a*;ym|#G^>N&dftEl-a1SaFT7bY>sr^RC96hA^j8D zm4o_gT_I-7kUkn5YCJ4#?#78#Ipl~oXExhaQ%6a9R zU?FV%?B?YQkv_(82}VY}w|HnFxWV6rRKR5r3nV2FKwW8t_PW=s^?0?LUnk+btvCIG z;~sk3SOXP9P5_r7GFdO?uGx0kJNyp)AdM@E2Qq?JN7M03CzwZ`%!T9+#~PHyG~3eq z=aNfGZULbsq0bXXFyOZ%SSZBbd)nsn`l`FsPaF`8l_W%4;wkc))ZWTA&KD^-6_JQg z8~Y-^GVL^Sc78@3(QZl-eQ#*f8DuFBZeRj2yCkH4GCya%Ktonw00@XJ9DmioZ^~BL z!)*hukcwH`cGW@0Co-FNC%vP3;KrG^VEIMTs=e?^WYQ&d9xa{!&QG)$$@Kf%!_Hpe z()|o{n;SCs1?x)o#~KuMv%ZLBwl1z8fSat5Y(PrAsW0yJ^_sOFoAJ3dPF)gYMq5TwUp<2aaiK|DGOhe5f}~9%t2(@urBr{?7EqbxYB7e6kf{CX`wth)l|`Hh6tF_b51G2$%PL_=W5Tb43csB1 z!Q8e3AcJi#i2KMZy=$u3b?a;96I`o@lE4dbo#u#KK4KAVrD_tSD>wuc#zAuLwoNkF zxJ|mv8QU&BPU%v&EWTGjCwwYBjX5hQl|2^SrRz?MCt~T)X?Y;(M|h7==l?>pYiqbM zrX=jeUfbg6^xpOK65ZyC>s^Wc(MCnxKXe^32UA@o zp>8{Q;uRC4v3-MN``7lB74zI#PQE~6tKgYMyLFqqtt zVTLjQ@pat|F=oZy_y;$<56meWXtyuiI+4S50kj|ci+ zI%FV9%6g7{JrfFi-10Gu0}Yw?sA7@C1s-aGEm7ug5A2KINTI(xm7c|ZFnPvDXFI-c zn0nzJR9@q#wB3xp*R&z5D)oaTq6f!CDGP+=z=J?(5OmRe(^TCQLxX;PL8@cuZ{Vna z)2tEFMV7fbT#ttM_CfyFlMSy@FyHb2`=r}@{rB`Vw_T0SkrBChb@g$@=u96+v(8LU zN4A^nh0kI?g<>FkLs0m2cCN12H3zdha?%-nIL@BHYmJn_$Dn=3USSe9Tx%vBW}aDE zLPFlxDP#PeXCnM$bcno5cS;_<`V-ty8}&BO^jXAiXTw3w3H7+|TY8zLDyovjn_&m} zHymL|PPO=0DbQPof52Ic$A`!xD-K6`v}R5l*p-|L#;za!jsLBVJu$3fn!4Dyaz|RV ziO=lQ$pESzEcoqu?&-Rl7bFMn`UH}y0G2c^tg0s$u+@VB$JY8(aRyUv(XP9GJ@wfR z&*}5uONaWR>o4R}$_{Y+Cl=tz?S!pAV@I;7G`obH_29n6GrX`9)NA7NBgAG|m(;Q$ zao{E?(t!YYCeYGR!2ZPJ^m}=GbWJxLPFp@qy4_4sA~WaUiJ#X*C2KQ0OOMFs$==L926ZYuD2D z8hCFPnapC$B|m!LxV6Fy!;hKI*0=TXbw>z2JN$5PW$}CMZRI?h4q$O?{hs`WbpXDX&T@B%{PMWTAO_4+j&5tCrKIcIAMY^h^I40Zz(S8N?hz$$|4;NhvGOSY{`&uvN16w)E4=8lYO0!BT$6<2Ia03Zo=Saut|xMiEO| zl+y`o5_Z3of0NROiB%Rb0*bLlZI1On*s!0B`8`FmJ#8~Ofrpn$q%@N)7@{vQL`TtR z%d1{l=#REjcO@lEM@M%m8ljOpFAxq>^fL>-5~xilN(u@*WzD(`Bw3h!-pj_vyd%i| z`^j;AYZFJR;!d4R6;)a7T;R(I$WCat6+DY(n_uGm(`SYDub$+-ht14)?;FCrF59&Y zfl2*4)I;S;o7EY{MtCKpu@1I+yw=Z}q8*lVLVJwYiR2OSqiD9*f#j#>|D{?;;aTBj>#_FW_e(iL*UFuC6G3jzOd)L3cUGs}v9wc2j0K z>A_Oj`Kj4|Hj;hRbS^PN+~&pZebI@%E365@xB6eYUTz$_TgaEVs|1|hc zpZnm~3Tw|=uTbibGFU4`Io(sVj4#bQ$`?o$dT^}|cICh8luMYc&+d%)KFc;Wk+X5B z>1EMFMzm!QbTQ1>8j<>*#N**W%=WnsRMlDbOWB?Qp?%9&O2Z_Nrw{By#qa{sc7!l$ zU-qib$h9-9;&v?tjC@Lw4j3u#ukZ1KBaREw9=T^>JT30|T)fLW* zJbcsldOYO;`g8GEk7JpL1Gp01DJ*wg&%OQ!mstkW(X=Q2+v>Ds7GE z@je&0JFYcW`ZQSd=)dSnB}**Ji#5~P+m4O3m1fsI$uowmFy6FQ(V0DuCb$ZLiMXqV z1=tg8pJoe+IM+;DM8)mOEC3ZqK5G8ClQ8!R$~QeQk$m6B*afns-&GFh{W-K$ zu(X}g5+AO+r4d(!_$SH%rE1MvXb_RV`;J?V+ z1FtR>$QYeDXm+yW$lXSfIqT0|up^)OW2y=eH{C$;!DoMND(;J(#fo+C={3W(K+=HK zaWw{7%BOo4iXKzn7(24i*wTNb(!Qpb;-^?zloes&;^xgkGd(Ywr^0=McU?QERBGX- zBZ2mdlIE+`9*nGfJ94U5B(^Q&*Z{$=LCDB<7E|r;mrX1^Vd* zN4nX$dm(w9H~1CewV6EKeTL_f-0TRCo*)30;YrrEN7sLJ~kwNonWpNv-=ay>9`vgfQ`ss9$wNG1P$%{k|S>X zc;i%4igrfGoaL<`#s)524Pln8sXjF2)`pAYjedJz$9{S7?XaA6ivELXHe#dL7BejRW;mq}6M9l$_Y?=%JDG zva&v_16p63nHjq-KN>tYF#_u-;Nxka3`NF$9S$Ttd#eu_+G9SZ=3m5GOcV{rp8DF`|dGYb* zb)_EyxZy9-0bTXk23|`$Hx*q) zVvup=)M3qUdWFkvI{BFW7>iNy1RO{i-g=)QYsAXSv&j{MHrOZ&z6*z>>7S6$7Wa0 ztel!ayE{27q}kT`_HkO^_&?tL1EB(6d!Q&e4`ZpuegCo&)rrpTW6;nQ&hN|D*@|Ta ziWe|=09$LPJQ(0tqZ+#KfU8TQZnr7hOlV(Pj$nFTiH66T*&sPCNx1Z(PI~*1n#Q;q z<%hMC6R$DO<&<|T9@h@?TbX9*Yh5c&Wl!brpqvri_-O&Q*#9C*5{~ylZ#a>bdN5P7 zSFIyFbWD@H6m*^?Cy^eQCOO!URAX5I4AYtlNuw?z0nxD@#s%sOF+T_ zLm!s5n1PMMNNu6b2V*42NWFVc}qI8 z=8~KPCyg1u4##FX6T;ZV?P@~j21>#={^;j0PN_Xle%psRs3vvc_5s0UhNN8m?;>g) z0=KF+J1Vob{xf%{ofA`JdalAW7lYxWKx9USpkAA2Zedb=Xd~~OC7u1FVaaE0t*24+ z&=zfrKG+zRFr!Lwj)?G{%`!_DrNOHBX`)UgwDqOzPyCQ7ar>IN*dm+tVhTC7G)b+~ zTQ2@>La*+(JjCgZ#Q3qLgVA!}{ItSaBFh?0BM-rt&qQ&fG< z;PyYCczfE@dtXQua#M;4hbHiEE>@1_-~5txfI5g>&014rQqf1Vy?-XELk9*Jajm@P z&3XU?cNE8`mCA9@^M5luzj9}Bo^8dO+d0(rGNjLe7tli6)?9pa*IdTVhL4QCH4AIs z+lh8iXk6HCoUTytu+6)wt)9|pV7Q#${HnNw{snX|hBYxp1*Kk3;uQJ#;h&W1JT9Pi zUi0XId*Do2m7_}s?P}z9E!mq;q5%JkKZ_EJg<}8vYszF}q?f;t9R2UIX}U=-t^2H( zH2F1>FQq}6hvi4vZmvg(dfo+g^$1*kbkVjM1Nfm5PK8Aa6%$4|?FfQQJ_EZ7u{9d+ zZ7b8{l@#=eV{dx;ImgqjZ#r>Qy!boaK4J-f38LWfaSk(+;m7HdXYGT*svN+_6T0EX zAh#>_I~csc8UW7S^M)~b75r#$`?* zpbyy0M`_u*czT0I{~I?-F0Fau!db+(OAZI1fd=+F!T#He@1m+xa->uTbKn9<+|Wcn)CEKY3%$Cd z^qW%sP2}4_?C?{b-rKoVAyM!6AoRLPKYXAwh>H|Q9XJ~puj3COFfb$fvM(aE`QhW^ z7udG+_XWMJkGawi#9z6p?e9MSclM!)xe-B30PAZh(XdbmC~c#9gU0;Ko{XNl zvHrzy5CdUvj82k|1J{oFUAoIk37&;-Kfqw5Av28?If;)wC89qp)qYmV8h%kslXzyg zAG^qeYFD4epE$ELLni7^^ry9)Klv?g(~HD(!!+rGahF1A-J9l`mhzbP=E zwV}K9*w+0KrQt6MZ#O5_{WH~n#@3DWfQ5BiA(K)ql!ExOHYj1X>%PKvHKX=VT%&O# zKj78wsFSL30oDLS_Pc-z-bLlhB$SuTBEAJ7(|*V}kOH~ip+xMBGT5aIUIGZ0T}_*P zJ@}TRAD*(Ps*hCC{;(|+JGvHTu9ux`U$81ki)!ovlhJoGs(P5$Ek1;cduU!1GKo-P z#rTw;G>;7P@urbn&OWoiSMJ9XwIJ@_Q410c3@L$%S34&ol`=;jO)aO&&s00E+@{A9 z-&_PHu~)auIJrEQTl8xK?7zY1woVyah!uTdS2LM3a8FmaVX(LDG6W5s&)}1Dpc{b$ zXUQ2CmLl#BVOH>ITPur|%@G&z0m`?2*40G)5wlW5<4*!_m>(i26(=wbac>6?N;Kdc z(h4PpJL@@=jXn-y77l#6s(xv+0_M<@uRJG0x8%=y?I7HJ#Dso5u zv;Nb8+SMU{yrTX=(kKJHSLSZx2cV&3p1!_lk&QdL{T>H@UC94j`z+n`M(O04c~HN? z4j=zZHon;Ud}9J@jQr_jpPvE{%to$$EG)~KX>BUU4lho-3e0;(?cNzK*6ta#=(`WUPZTUB>F%hD94|YplQO_8 zI?s%X&_Mc(cp@zw`m=AT{J-QJiX^6@g5vS)WP-WD11F3l?H*!W$B3$s~mB( z|ADQa1)jKXSDJC$Utg0jKn2!@%3*67Dj5PJ5R3}s2+=e%L803R-nttMtS;5T8QmD zu!Mt(kydL`8BDad>^iY}HUJsKU}!<}nJM*M=gdw=Q;lG~IN z@d0P-NKB7yXkFr3a zgBW1O^4DZB4PxfNh+vYK^k4vJktGAQJ@wWL=FaRDe`t9J6#yh1AOgB)*ZKa?h9oa; zs-Ls^$ZJMquegULJM?bB?#Uhqep1i+xiySH%7Ine&{ce6YKxwEoj!{osC zVb0$@Y?x#pZI<-^=zb$7Re)$HDdFiGsC%Y=IJGk<(z)jMJAkc*?Q0l%{_W>3^Y!j? zf9@$4t%X*(ke;g!V#HXn{Qjys*&t*9V3@nVu-nyaF*2dP?qF$^*2Dfe@N3UPhiev& zi`RkJt)&B-=AKmlFf2nk{rr$8B>o&YuE)ho&nw%dG>6bLLX+~u*<-*q`)gX3mSVf! zZ5XfC-<0{#e7yfeOXS z;eYNyLV5jaUA@-p5yhl6J3<0nI28jDB9>7V6KEH^5mPusquX1zmz%6Q{$)I;T zLN0!L=nH>^g>bQWD&aB;%p+ef{@*ayIpO>UPx{QyOU*DOa)^_Hfi zJ{NEf30Mi4GY8Ok=-=PJK~XPiroE$NR(Bda&zKph<3|$h34IaVeEa>7%su~-*gIr@ zDKz9D*!QkV+sJ63uJkD~C9cEEIs$WpllZ4nTyX0%VlE&tiFw$ZyBt)ICv3YS4GC=n zcaa&#Q#QPSGuUU&!sA0hkC2bY{Vf{G6#k{XX`D$H#t-@L|L<7OJ+AO zRsS>p9*PR1o`8Myko@sr!1kG#XutwgI_855=7e#NDnjLnD*Sd#k&Ix%MJLVx*V*G+ ze^O27gSE#(8dKYkX)ADRRKv$&1wbc&YRL(YSFMqR1bLTEea>NOVVSiS1I4&!c^u`c zSc(4K2}L_FCHIHmi9^6DnY(Jlsd5DxFa&K*o;3L|Ox6r;aXWW)4@%w(M$9~OE1l(C z+^m^Ri^#yhBbu8`#Vd%UA$(S+@{C3~sMzeA%02R8tm!iMCb z5iWoClc>m7x-W7)$rsudI(W6tI+B$qLIo;EbnGygP8n-}rq`a(xZ zo-hwL2b6dlP6f#H-|hHRhuy~qv2|X^1>D1!?k{by*g`@{+s<5ATJwLo(a<;eiZNx9 z1)R^GU8Ysv=Ey5GKSKV9%ZxieNM8Q8-Q7`)`5@U!A)fbEAXwRL2LcUB%Hx106#^k} z=didivg#mN7L{s7wHeMEF>rz2{^>eo_ca2^p3qKy_%vm#-N)$sOWMD5%3dA6+)xJ3 zT&6|$aQugmqL8*9rsmM|rhPCAUO-a%7umlYKEcO>r48{#RBMbI?_7`iM(OKc|ISu8 z@)b{Snp6f@VZfJ8(;4#igA=dssZ?cLxnw(sQQ)K10AG+i6+57X7D<1kfXYjq33BXF z&Ncq-eeKgTE7`Mg>XKC*Zx?V74I5Y_3DD0{fiCd!{wU~tO470Ll5rt<9YFWQf>Tz_ zJ(U8`oN?lVj{wujoC=w-8{VHmgo|j_Teg3O$TNSI4?3d5YvMwaOF+)soghB?u%gE*{~PC%m&r6f;m+J zX;cN>ohr@&Uc|2IPbHN2v*NXgPr zY&`#{g{oGYY$2$Oa^#^4+xZU{fpXq0^k*bSsA*c{*6Hf{L@73G7$5i~7>FlY`BAsx zWp(+cPLnRUNQXb*YoXFsWB3Kdh(-M5Lcv7jUI+&4PKC#kny?iKpulmGC|H9JBOI2{4104x^O>I>pN!a5|HgVZ%?xEpu#=Rej~N;`}fPzHy= z-b?!+MdG7}O_jE&ZmLo1|3@JX!_7h$)%af{8v`Si;zEkaWBK64h!&a)Ld0L|7`FH- z?fQgie#7P)A|G@I$`mK9_2)seiguT0=k<9-TUxOR_FguIo|ib9Tt|a zbOLJYU-m(rx-W7LNHjJHJ;~0S+haiwYculafcR9|C>q) zF=~6zNInpF1^B&++m$;-(gAO>rd@oJJG?P@r+eyEK5zCKOc>)UPf!ImFE)&%I^GLk z?hG3I5vr)vZ%I+o&N`Xs6K^!*&=j zC|W=^82!T$X)N|@M?Vo#JH0JM*UEZo)tm_{Uy>3LO9f&*=ps`MW!}0iNEvR;fq5w% zmvj0IXJG>r0|GF>Inu^sUZt@txVdKaQhH~`cn2}8e^m|NgvU?7#IA(%ct^Vi2i*ks z{1DwP1EwiDA(sL^ImxKm=5h}!{l$bHo5}fC1F=i}CUbta`?U!L!y3B|xG-^H(fiUc z4|gkE=uNh$*2u6Y-47I42+r}{UEH2(xgucD?FX!pAFOpxyFI$6NFyot zIicxUwJ6{S3-eB~qJg%fDafG|mh!rtOV&xxb-3vot-cV9xv6cl#5i)o!_3d6TY6 z+19Ip)$^9b=xYoL-xK3CDV7c(-MVz{#aEluy(Rg&(JA3^6O(K}?F1}>p{BsH7`V|h zkJvHk{CCi#34ZMio~inTEB53=EKmkL^lty|fIvM{dHRpi%hTa~4;?hZQOoaxn9GBh zq%v6IT*v%WyO#}<^GOhO`Ewv=Zl=y{rP!e4o!S!$ncnBi0rdJ_=sC@0;dIB9H5D=R zdeoPHKYo|GHg+W-1^LHKADPh?iqh@MQf}%oiP)3AGv+qHE*F4$21zrHCY~5e?B3VBhcbid(a~ozXiEes2MPIBq2AwIy;|Ao zS(sJLEgO(`HYU~s636KWBJ7M{->!yxx4}CfJz{Eo&rdSOvPQ|b00sNg$^O_O-tU_d zO9*U7fWR@7C1%?8!GB5~+qZjY=s@vG_QA#q0zO~{Wk7{??;E?ex&FOfyxmJphZbvN z#3ApGWG`AbCpKa4b@3&tD<*jsZrM89MsQ2150WeW5F)tIK#a~+av~wuuDWzKoNeoA zk*0JxVI`I_hV)&<05<@Xm>t_`aMigcX}#BVt%o>k1wdX?4u_iM35LICb97g9I@FCx z7&q&2e8_oc(~;5X%JgX0aN+*@YtF$bvDL2b7HLztcrM49QAS4a?Urmnk*daqL@w|( zd2{C|xhh6^a%A;~bVWn~Tw%A#zhql9+ZcIj?a>k1M48d8*%k9jaUDE;K*b32K&?En zyl6JnvvAt5@3AJ&n4z~(rDvfQ6!m))7#`FGY;{u3+B?7qQ?jQCZ9^#J#=@dVSIy zuA6w79>hlZQa7JUn{I&oem%QZ1{(v)-fgUe?1 zNJ6G~*>}~!B#@A+oHp$ib2anuQ(J>?9g{U(3j+Qcd{x-sj(Ayxt)Y4t=zmHFKx+^u zIK`gf!X*FjP;7NQF|63KdMPox`a&YckkSl%Xr1-7jj;1;Q|_}D^&AO*Xtm|ryt&P& zMgV}3XjnciWq6#-wkx=LLKgc}ex!opwO~K_*7!^@TL9X__T_fN4H-w$suyXxj(~oi zDosCn2`s}R8JZl;={~iIB9S%uwrEYvY9WN9cjPdPgh;a7*)o<5)IOHlzgIn}c0#*?aTdVz%3LU#2gfJ@+GPWr0~rw)g(ch+i$F_ zZ#^s6d>>!Ts0#z1LFT3Y%vi;^`~tAWfPBFP7^o0IgHy$X*eRR?$&xCWEl@m&{AbWBHgRwlM$-e zxD%?+3!^u$JqZf{LLeQn1h;2l46|aH;&xAwG3)3>yny{6SBPK)8`H1J;nrHYr4*(512B%VBUIBM}>#WvJKW3UVvnlcP z=0?_grcY&XJ`H-G))oD=lw>J%sBZ#MZ2?162-^|NBb9B4Z;l%DK=50gf!}rn;XD1; zU;WiOLDy+~C&APQ$u@(%uz6u42w!StfVvrgeI4kEUQdg%Bh6yo4}XP?!2)=I=;ySn zkp?=1AoyYr>U;fuH~cbdiigSzOA)5dh8ekl^4&%!xEx5D3l}vW^7|nq5LSq3O0qa4 z9{{4@GzZC7z^BIac1(S9=FPBE))Y5TWvGh=qcUJK_c7qY^d^Tearb}1PD@jV|M#Oh z6ADbX3Sj-uH+A4tq|+bzA?L&*=hn5=;z~G{=|QN}9so-{U(7u76}p%_4+fK-!(>LS z?8nmjvsJ>{rNDiLr7Z$y*_fgWh>IB?U}auR3uaRWYfDnX*-!x;7kq%A9aHzujd%wj zLVR5-@BzPEIjFoAh}xvTebJ!HxemlKxRxcU0#@}yJZ{TMjFVqJhEU92Xwqhk&e5pfwysAVby(Om@uP8dz9Reru<5t_;k#LC0!A#0YcbKewjK=?tjiHN{4utpF&#C4#SsY57tmOL5O3&a(hd7v*sVsC&sg^y$7 zY}3cd`BH=AY(FIXZ8z8pyE3?^>HfY+a%bn%%48JI@Y1oOmp%aW`JAWg@;i@tunb&_uM`_L;ksM0^=X<&J@W9wZOC;h!*|ZFK-;Qg>k-SWO^IAV*%y94n#e zK!;-GsEGy5e@cprv2`*Z^DD#xiL$sLgo&`#^q2a*e-VJL&&i%XgSbTNb~#mEZ@>z~`Gh9qE&Rqw|iIWT28 zGgWDqi`dn;wR!2yVzPlG8p5e0O5ef<+{k^K*axDg!Hwsz&!T~7hJ2Ba{1ddhS4Tsw zX)oYPbWl{t+kIyseYz}QS4ruY!vRzL*c;oYvn|xkA?F?&7a%~uWQo%N0-|1;$zSe+ z18^)~J2Q;~rKYR87B3St0St*2dMN5y4C4;Yq4>=a^iBH2k4Z17Z~!|WwyV+D5}6+* zw{r9;4v%fr8Yzo@%#UK>Vu0S&9)aFz9ULN0*=Cf%W@}?3S%nuUEu7)TUHQ}9FKswn z6c2w>qc{9E+x&wH&j4m!20Jp2mXQ%=<+W3-lMbh?eSAXuA7O*RgVP{Fxs_+8r5aJX_9=5nGtlup)6jextB<2%1j}G(|NJuHP=!HXjMY@7V_p;y_zOnvHzOVm5Nq~Wyb%A(pup~s4YV$bOjqel z^X&+&R3}}0=wXypMR2`#I;43-jaAn)$;=|ippv3rB@9^a=w7UeoyMY@13~^`z7xGq zGoO~?!`#pW5VISEf|yxt+Stjh7F`tPqmfTOSNAm;shAjxQG{E!Cd@)2dh$mkTla=OL|NE`f30NP#p z@)MR?ECt^H0?WWl0sIcI*~;-QZEkNRfmDfdSilcSfv$3b29GjwUS|uGq)`QrLRJhy z@G^RfRf(ggTH^RYOyT<trfvnKIW}2NVCQfLiVR0ofIR}E>%SzJXy64tfRh7jc=aI+z!Xf?1yJx# z;K~U3*SF7Rb@0A}3=q5zn<*9*pWu@QKu>T3FaNl>4|HH^hF0!W>`G{6Y$pC)K%^5v z&diUx4v}j@I4m}^&Y>{qFb4$J_CUdR)&?=wXi@qeY?y={3AvGY-KPr3c2?|g*iC*g zy`#zU0uS0BAq-dveXuzIbH*Qk#qbn)+>TpxFupGha9^`QOkP{q(T@mp?F0WH`HlVn ztZB`Q&CEqYo}tJM2FPCH%-(UVgwC^zj723k)2}s8&o7?wI5RBjDMV*D0OZ2SW38A% z^&5}=)7W2jbUUB3s(xuxtJ~Dwb1cSHyp*tJX_)I3>*)6#Z4mIiVaX5?( zgY8I;{>%G*ks~aWcIJ_o13GVX;&$!? zxgs68K_=i)Y*m%ECsZD3m0JcYg$Z00qXy&{fmmYj$Kt;G!NX*?l{3BwI~mBHsslqS zYZBKOcX3V8d#ynMh~dDcz^w!5C?j_Gq-HA@o|uj4$AX;aW5D4PcH$Wlr&D+of<@Wb zp(tADA~(KLE9oVm{BwgCqgr;rp?bnwXoH>sTwm%rmOZ&+uLF}kK#Y$bElzKJJn_`& z|Do&41EFfex3g4~jzK9kLr0Se5fx)EM>R?mEwm7!jT-xw5^_e!plpSgM7FXd$-bnq zrR@8@WRFO)efN0Z-|ze9`~FL3o%1};{XF+|U)S}t0?%zfByTX_ra}%FjOgkpn8tGH z8?CD%RH6amR}bKfV0sXie*xITaPu3r8ZtIa8aE6@4r1?N%kXWA8eVpvpxcF_;aG3j zM&#Dx%s!c6zWqE1ThIYY>AhaEj2$&Pd}lbTvbTxYt7P|Nn^J6MmNVqnnxcy2*8KxC zBw8F^0s8Y)l&T73#DMAu6r#&@@%Uq`-jNx;j`dUHFq4<^@3EUFOJN%OZ(ge_MA5HD zHg%xl9@j`R}BJuWmQP z^AT43(qnV-tjQQ75rvf$Ty&Bn=g4vep$m`QhMsqWWo3ACkMwd8kYBj~%kr zpJ2^}Hic-BHU^->Khhk7^f5+*PF^5(Q`7Vt`uCT4(0Z8s15Yc)Cg>UKXu!+{UzgiS zY;};NkuLiKS2)DENc1Sa}RBeFt2TpO3;y?6Pzn2i-;q|2uBZKc+Jt`&y$=;#7*J~PUibigDU?bfF$o%3r>Arc$?=7B- z1O-79+{@pEj$U|gM^e`i1ubjd%kauSR*RA;){Cj-{^gobKY?Xhag?-TC(&9_1P|Qb ztT}dgza%jbXkHuk`1XT&4%-k@f@}l=XD197k_!{|KSV|v>$>~DW;AkP5 zbRnaGq<&O%7b24*qjwC-1|4kvgR+LEMuWPKjVe?AofWt5xnVE(M8Qz|wRblo*A2U% zV0J~B0!4$D$Ak7e{2D4fr-o0JJs}{Ie}95-wuPYZ@SH2Gt)#md=e31Gx{>*tS-`RR z(fPBpdf-*N-tX&wR-~K!f59l`0Rd!2@G%W;M2OSSdkp*>w+g}h7|@mY z12IT}+8IRNjl^`}?{BByU=~rlX%DQPF@EMxe>L~t5>@~>GfE<`yGjhXg^(|*%>VXdI$-pj@uU(5LKe)a6&fY~8Ly@1dPW8Q# z2h^C0$p6?*2kMD#XRMjqTXyy`>}udI8t4rW8k4`9;9iKP>HnI6r>)6i-eG9`-FUN588G5!tUq|6u%+9X-t0qDX^GuXD!kq+;BuCZ{)ou?kV~H&yEk$ zzvRAwZ$|owjyhL>$+T+IMbyiGf-c<_Og-eO7 z6-iejUy05vFm6S!Mh;Gv6`~4j@H4wK-f9tLAM~z8oLnWgOiKgyuvdw!Zznp=AhcZS z08;w(S3vqSrYe!o*|}rubmZ(!77f>FvEkoJ9_F)JzZKy=7XkNv33E}m2*p#h)5g4? zkyZye)`nh$Tkpk(QHEg=B>EfdaK{>beuP_h1Y$kvhTZH{xMz+CDM&Piu<0=zsPxun zZkY0ouhpm#6e?<=q(PdRTXXwi;ycEUOc}ih1hnw@2ZBWhF*G(uU08NjT z`Mo0d5V}(So+I{31lc7Q9w^F(|FLW+L4$^yYJlLx&I8aw-=3fg$oJnBgY^Gf$3G>GOexAT0u4-d6>bJ7E3uRm({`VCrv4y|jds4`2 z+YgTPvU0%9`xHvMeuxrHo*!DhO<@4Sl(zjau|}-EiWAw@1A?*p zeo}Emgr?kL7Boc_)v#l34}H#oM4vE0rVf1y{Rbl+936x?(j4Z#!@^zK3h>q$Ma zcL;&>0%jQSNdoH#=sCd7|<(U?Ogmd5ufu&A+;zpjV)L()$DwV(Q0-LeUln%~sJ z7#*mm^xHyuH-8%zB4m+T8@j&|FuBf$JHM=(Z|>M-C?&Eu+h-CYl5-z~?_iYiOh3|C z2icb+EfU4bBlo(iNff2pv}EjivD-IGTT1k&`1J@?0NlMWS<$1o7|#>Mx1;~FN{C&42@ab*J#7_kdGtTtj@## z`Ll?Z=~;TqE7nVtC|GS%YtgR`3UzkOT4fg+)7B{Npm4F#ZTwk8*mPm~G3zY}_pd-y zI9`Y*q)FDP5_NydG>kGsZ!hF)z1m{6W5}`R_s0rK@je<=HFlWLl=BikkhSy6pl?U- z_&eTG6A^U>TzTI%d%kx!_664hn5hcwleV|1bCp<{_5A-+JEv=qdKqo~r1ZUQM~S^J zMHXOiI>(MM23j5iyQLc_>_-LrcOY!h*TzFU^~1X$Q`y-Ev3V^qP*j^m%Vt-O8Qzt- zJ@Y_;0;N=SD0y}RzUCo$jDYXi9q2%}Yh-nf(@Nw#QF(oHAcO!ugH~Ge;LS=v=yL-c z`CM9MP7uZgVPe-UT=MR*A;|NpN}%)IQZgN`yU=D&ErR#ph1hFh4U5Y&iWkp-lJDN=pDHt1_8!Y~mBJ;DT)XCwSEEgyi<+)f8VoLCPGJ99J0 z7x!Az=u3KClJlbSu#T59pp=RaWh;~>^ZffwRK*_u@Jm3H#RJ)CTq@Hv`sv0V)`C^| z5hh!x54q`29Wf-0sYDd*igj8GpSr)7@T=;^4?>U$+zvvGU{wfI!XGiq(6VeC+hE66 z^_0Aps1CoM*L))^laKWG5$eW03Z%xil^yG7rv}cp%?DNyCh{STt=-ANJr^P%Mo_Ywf8@Z%7Jq*Iz?y33!3=+_M&2 zcr!11}apLD50y;T+K0nbO6k_IhQ`YU#@t**ofNCLZuVy0>7C>d%Gi`2phYWp^ zEkJSMFy3{73E~gbU z`e0n5La8A*SHQ&1C<=D|jR;MaKDMP!cD|ipqzAy<8MyB%ZhA5P?*NDkc8(KZ{WQ$T z!~U+ltwb(h-`dA<6v(p^Kf&ILu}G?w_zpR}9Dx&Gvob>rG>$M?s)pp|8uXmjK0e!~vY zxDJ>~0LhFHP=Kxbd|>7rtmN98eX-VBH*ChC_sRRMcHUX3TA%d+__2niPt&E>YGD;m zqDP)><*1ZpkF4r_WM{Mzp}^iPLQk3#C{Wl@fvFaLy;f5_$F7jpUX zsR*8Cb{R=nWEm|K?!e%P?v`qs4(zvHx@7*mGb4ujJe)e5nn zIKYHvW`o=a!OkcyKLcWm9whghGBHV_u8K&ES~T>`T~GtL_qw-Okn7HxH9Oa6Y8*Xx zpwW){VIY%6Z&g>~)CUU9xs^L>%_?qk*vw3Yj-Y2LoT2HO_|G_|+}#^(O0jP~t$vPX zw54&M_CsZI*Yxl0LQ5nJIjY1NnsFXawWP$#w|?iHeE8cB)1U2X8iBHDt??_Q#aBa+ zrS)>#)Mm$&JAQtv0*gB5&WD>`j^8j|R5h+5YVz^;79zW3b2=u62J8m;4B^_>I8scA zY!f@guLEuN%tkUSp;vqr$Zg^c_DqYbCq*C|HyZ`@=k4=`@7KFJ1EJq-*9!+`9P7l% z8GLQ{)zLvy6-7ko%>}2lDl|<m zeyZ$~+YEA%fkW?4j18Rj)5M?c53HNNr0MBhpia%bQ`&W<#tiF+`mw-j;_jjoc`VYJ zN%h`Dv{td>oup{|bZW@@EW?_x!=EAI`&sifFg?~GwP$F*QU8$^%9`_rY<7@^0BS zr2JhygntMe@0D^)prdW0F}o+)D^gU=Q!JA6?)1}#XL7+Yp~@FaPttlRgqunN1_V|~ zLTv@Q<`*D(M7v?Z8dP5BieRVb!w5MBOZX=Wc>i8LJ-pwP&jl|vPbSm24uc$Q+h>dS zo~iaMY9{o#S2Fbr%5RV8-30J-Eh6Nvd$0c=7Q|)Jh?cv48BDWdT8wS}wxK%QO*F4& zD-sRwDEyif_y^<(M|Og=oD%U*>^oL*PiB(QpKqE0m6ujQNXX$>0(I$|>EYUp^$;>Z zZE$RRd%%y`n|I40SnPqiL~@UcreVN@sDtsJD;QNvjmZ|i21>-V_?N zzh_mSjp4I`8I3^A&TI`S{|Oe6wou?WqB-Fr=a+!_`b2oKz7$9oq+$#Lxo^e}Fyat=tIPQ8&!|dU*V)MOhj6G=)|0xbI>z4s^@xTbE-82)_6l9ViE! zO{o>T{~B%w(%PMGua3ZPx1#r)(Ah-s+#Y8XTc3YR&(n_X)S6VXno*UK)0g&94c~ph z5@Q0YhGAtR=1K0@q5ijFX;_TZ`^yKfa8W$B4Mvz)Z!uB0 zfLQJOb5n(WY$%^+)T?2klN$^di@ZoCi$RK6HUXdRvXXwH$+nIj3(vP#=H>}d3M=HJ zlpgq0H_yDH1nvE$7iE*(QY3T=cigM6#plQT8B$m#5%6dG@?!KBuq(?PRQ7mRZmmP{ zJ(V2Y3}6cS^3qf#*!)Uu>2~2X>h@;kpTvR?Gf;0OZE^(9RSSuO(&`O3&3o>0=#SjoH>clY)@uxO0dnAfk2(tj5RZAt=zjt@fac^Z@gl}zG-T4&WU(X%A}22qrxD<`kV;@&>R82@gcEmR9iCFGbK!j&wyra4-HCI}D_qcj z*oY>sJ7wZlzE6~q!1l^b0M^d|hh)x{mtG1>{w5Ok7=BPA5`D!_tGpK75>y@d6n3NI z3Q}tL6MA;{$|&!J6GSzWH2>AUB1jBp_Yfae)Zk2QR4wz=_7$HOS&@-}TttD!bjJi@ zIwXe`V)wpxl@$(}^cBwz*w@Xd0^>*PhBy9Dv)I3MWGj9+=l!;DY)_a?&IqFn}T2 z(qayzjGxUqIdXyi0c-84QCt2MrMA2%A~5)8;o-F30iR|IrGB+ux7$7i#t)Hkxav9} z?{AN}k1NJzL?1pivLG9dRSbIFe6X01ypw(9%nOb_RLkC2gMDT0%fpqwdhn|K@Txz$ zHQ*C1r5x8gY`TAW^q%TZ;~_@DN>b_6(8^K>uWun5#(_&JDV{DP>b}1_e%m!ntqsUd zf3sSN_H@TzQMa3-c#!hQ-H2wkAe0(hv4Ss^myr2aN^#=qC%{{8v}W6dz|=wNP$Y|!;q0%7W+uRtPzFm^X4Uh6z&{hF&C#wN^^DdaodgfHi6i_=NgM%%k5mIL5?(qz_w?@rlzFUIYu2|jJO zuBcL4PJ8Bc2e5}A-{>YZnFbcuqFDHVM#o##Ek8)2ojxr4R~QHW;MtL+zQG7) zyAAq^rd=exEzu>{6T!?j%fV!Crm)@se~}{5GtF3u+^pDeD>v(Z9j>aOL*k4cVYyWheIT zN-)*`4CrDXi&zU$O*QbOml+b4JXAHi5Aa5-Zi0yBZjXn!C+p7gIQfFdZDmDr%BeN0 z;mxr2Bou%g*CSIw`l2vfDLq9r6WI^LQyTyIuTKcl=<)TnYsLxPBq-nAhF-B|@}na8 z^@jTHCY1XsM-4JuGdj_rLZk8*qWOWR*alnBC2s&@$Jy{dC#BZjSBe$c2+%8Z#d!8x zj`md9rovj({@16uIGdr2T^DQ;rCxNAR)6+oXYOllNLpA^o?67hQuTP>#Lq0U`c>D@JhLB_{Rpx5pyo)k zVyU^|+_LS&qV&a0W#@jCL4N#36_C>GmcMnKpGQ+0awnFC+voRRO`|oCCdLPORxgvh zUnbe;e*+AL+_2m@VA^v2!R?k6cL(y&=O7L21Dx7 zA1kh<*1C1T|N4%wNfn})Vik3CjPunP%enYOj8%O|SmPTRsTsXmKKUfB`joo6I>4+b`1N%YtR zlQzWQy;tE{sA$_m(w6!F7?2y%U)nNFGeD4B=x_F`u@1&r5!O( zuY&E1^*V$*Q0{CpDc#hPi(-2Hj}6ywMI9TweEeToP>CEdGFK`@jrrrfQ!v4lO^;+6 z{NU!AFU7vj*^5YcYrWm{$R+26yA$YaE9%fU7?%aikPomlOC?hqe(r7t1H7@J=bDacZw1PjC+5aMqkf#>W?fW> zvgsUwCB5U94D3x~1QcWP6@C!-c|t%;vX;m{&C`EGi8WZboz_{io|aEie?MW%JxK`P z3K>D?Bg{S0eS1C$e0xkPxM-mL36gAowE-5%m+k`;l8;cAmhO227I2ODUUE^FRRlj=%j-fqUX z8|dQ{EEz6K$VBbM<)VVJ^DH#-fKb3rAcizfPZ-)T zo24k^_39K)!-nCsK#X~nd&nin|G9=3>*WvH7t|4DKfnt-@>A3>TKQzJ?$ zLTS`+PAjhL#JU^1@iRI6M@iGP%i{e&4c$(o{`o}^1=tw>oCMr(7&jLvd?Z0dn9~l< zR^c#NZRYADm>j;bhN98-?;zO>hUXLkAz09pD5ib~1Awd5$=y%5^zS*V&B+vxk8yv@ z3SZ#)x;dJto;b*}20!$|Lr6o3a~sqRZKPIX9Vn}ZMBVS<+khZXsO&xhMFDpOPu*&v zYp3yV*_%7q*4ztqqrQEVwqHgL5a~`jvXS!Z9|8&$z}VC)dLR} zc0N?u#cSMvP5HMXfJhcAcxrtX0_jv+>mB*TH>Gl5&SB6#cUx*sS2l}ReuR)BtvBh0 zO|L-=CT*v{v9mgN!dh_7S!(Xf$UEiOgTl2{)f;d!?`Yms)FDWl(o*v5UsYVPka?$c zCogzEe~ZH{cZvO(4v@14c zzOMStr48+!1YTAIiAJ6FwB-tTau5WCA2OTno@?n%g)mx&WM}8)wPg`SMZ|{3z(H_5 z6gxfBtYGP)uW1VI5?^7)3ewBY5_6DVv9*V%bKuEN#m$ng|HZ$}TqA_-TW&C*+}?X> zHIOkAZ}|QjnUY;9K02=CRqYzITW?HKkM0CEG~IGMbH`y%0gFeNE_{pmmuH6u+%|bV zDO_D|?;|v$oFml-XjB21d$x8nGIh2KtR~|I3$Ze3R$Sa(K5Y0I_s90sMdyQBn{kbT zZ9pT0(L5S;m<1`r+G^Qg7i)lfI#6fe6e3=lzpayG0=5=kHmz0y__TNMPJ%@U1i*4Z z3c1YbRZj=H(FLTo$CJAW;ZX1nceBFvQ#KXtIXRGV_}6E2V#Z^KrM~1wHawP{$Ujh; zmU*bLE&0^Gm z4KG!&Ap=8FveD~fi(310rQg%sdgI-#s9Yta4+(4jJx(%7lPm2TuP#|W&YOt5C7EPM zauNeKv`X`T*d5@Acsm^yoH46vVr|CIo**LWn~}5?KX645Xg6yq(!p6_;(n-$0UP+!mG=Mc-xLpK6bUaCX;1Bu2m3UsU$IARHhPx1kc_7 z?D#*wq>tdv@BM>8zj%H4pm}JJ5OCv56&*Iic#L>XRM!!eA@NTF%E1c7?}LIUX`_>7 z!tmmQkFef|h+-!d3Yko!vL_D^tXUsq4TY1k2G>wlc?4z7!YveX?=bgEL4@sX@*v?h zzxNnH+#?$ZUPUySZo)~ZqSuJ5BtzR?ggTOpcd0#BKztiKc>|IEFvoWt$nq{;u;tnh z45HI+9@tDK8t1RyPo|LBx)~o8=&srzX=3@DwwVHJ1tj3LoD_la-+$j+{|Rl&-sk^mdx;g;m_+=OpzLqGV$F z-)a{QXO55%o3#S`KH6^!}Lo1x*#7p0O03Tw5!|PW^9lz2p8j}-RyOhTD$oW(` zddIw|3?*-qTE}uCBikQmDw6GYcmkPe4H3>gRxiN|Ef_=bRR8=Ky2g4?Abj$FvIZ&N z&N`Vg<&|-jWFnh}g0{_ysQ%Aj@oF=(&pEEXhRF@^X=JS{eOzbj$3?YOT*4v?mwN<} za-52I8`)_pkUI|++l&*EoH{gF5BpN{A#>RRD_H-mIyvcR$&FK!Q zxb3a`@cI*Us)_goh~+cK!W&agr;SPh{p0zjg(*VisspDPae(2f#8zhv3Q<)Wb?p8* zh8=wXcKKLCOy}!WAlnb@9%MY9PJ_rR|IX#0olCrQoi_ZW^&r~{vt?}*Qe8iO{dyws zbv10M{jH~}(NWXVrOt`#y93fzpKxMgyqLAjDn!Lm#WdYT!D3Sdx`ad z*3_qyjxO7-PQy964AHbrbgBp~;(MUO{VH#wd|5k-*<9 zb$)7+5CmgW1?D9L=rI(9QWZgv-b|7BXWw&@_zz)?u*JjSiJ950`}LZ&7b+tFpZyy%(bLdWfrISP^Q2 zq#5pT$K^I2ZNI(rd?7LV?Bw%|hz5xhKe;#eFkm^xR3Mu^74&6A?`XIim}BK!-g1iD ztm~gPNA+Iue)|x()GOQN_`Osz!+!wR#tD`H>&S2HD0LrO^Y7!!`_eEO)5769qd{+pQ135z}4j<89ya_q?mCW{m^7g6U^T zm=>7zj`ZcJf?~eff zxw)R0ZYbQ%5Hn4ez7Bbg!_@koz>bgD#9jM^TaTft0M;FF@dKM1ldL%w;7nfLtcF(J zOvU~_^2k36_znu$iK$?ksRged8yJ>zftrk(_GZ93!Q)1E>+bEuZ zOiqPhu$=OGgEca_VNxtYugRPvrK?}yw}ws1E-83&mJEOZ8h)er>^3Xn^szM*Pi0dQ zzp6AaXD$l^A!)~_)i@E$ZB1iNP9{J7*sl2ML^0YAa;@jiJUU@BlZ?qO9<4RFDUUHL zXuv}h{+oH(iRvl!*Z-8i&cq%p1-?rj%ecQ%Eintmg@6vF$4Ttc`suO$;ljS(%l$GH zjFq{dm8Gvn4<0ORKbf$&(AVT3#tZ9H_w?0}^WEJ`H{@=2!{50YX@D;Cr&fW-uG<-H z2;ZZw=6h3vFKA!X3LgBV7E~72?x~KJ-OV@YBGfaark0<-p65J1|U8e$NVh2@0jBRJT(4=X6w^jRzTB>6YI;&s#ET`39nD#kvZPlcs0;qKvv$ z0QvOzh^Y^9A>ZBOz`zl#UEam5ubr&CFYxNM+UP=F!OFZCuDjCnFh68GVDOB}Yw_nI zc?$<=Tu$ADC$EKzu;b&T={&$JI}WJEiQlcfzmT}@+{0!5(>@QI)p}>M?B6J-3+XLg zFyKZsH;y3Op}Q#>8@Jn0S32)D6uyyjslgY!mjdpo2?hBDbXmWdS)Y_6X@u>QaZ>wp z@!kvAsNSr2`58sQGv1NYi6z_{17ezLh36*}657Rf&U z2W!vxl#Yci-+}pF2Lx}gg<%gGSbONzctGV1)nP}tpC^=>=XqoxfOTyeN29u(%S%ab+QtSzR45V!F`G2?o`DfxfLlQc$MhK-C*n zo&m8y&*LwWszG~I$f}>yl?SKW|Z@}9%&u|CRXRLBH8`%T(yJEp?v)TjKcf|#1U8hr(uk7D5b=vc1 z=?L{dZ1;)x`Od8rXd13Gf1S@)CWBG&E1VDYih6&J5UqR9%k^(7o`u*OHv{#4Z2AoL5vf0?u+LkG1}yeXeOv;n;jOw_01l5vog?78>)@K zM^$+8cS@|vfsHt0&n^7pz!v0tF~phRJJ`>rsPX2J*&8Yq-&GfP)Gf%Scz5*>rentm z@l}Jpgct47GjGO2r(F;@&~Cs{)VB$_q}jXhegKUrRZmm;-LDJ{5HeN)Cg9Jhw$bQ1+m5c_1VDJbg_i3DwEyy$TO4@M z6bsAWquNMXl|tQe>}7MmorqJew8VVJ(k_VwNu|zv#xcLFJ&^abn3cAplNA3L7g2|Txe2&~G67yn^=9T{Fl zLPX_p(sc9Fs|6E(B08@w(e6YrQ^v&8PEg1y(>8Rg-!`_)D@TKUapeyZvrusFFaL%H z1Flg9HJ(CGBFW^E8~Bjxf!@q<&nbLc@ERCJgCIbITxfp70bIZwR;$PzE+w!G_;7E;I6|@t4Sn zTrV2=)R&~=rQnH8qj&IaD(}NyVaI*IS03Co>OY^5?)CN=xPO?XQQcJ1*V$6P*JJ%# zkm;&8e;dAE?+~Fc-FxijKwobtR^kYQQ`UiARKjndXqv3thlJg4{Q1kn_5MhXc9UW0 zEBa4^g#R3L`8pzfxNYh=*<$c<$Wh_BwmUX$+%FV)Ke7HeNmlotwTObDbc762)|@Gl*2l8O9qEbK$+E`f zRRnXd)BQD)Uw|p5e%wMOUfkpBNI+xI zHq9+6J0C250d*0;P?zy46}d+4gLd>5?_3htS>4!yglz|izsw#oG|#iR>4k(c37vdI zrXG~dFPooWWh-aFic54yYjwlCUKn~9bFdJ*Y``8Ys?e0_52Qdd zE6}M5LBP~QG{^3kagF9ywxJ#!Sw-7!ftyuy$!}uqbNGh&K2p$o#7Ke7a~02ib5XOd z2JYa%j+F2PimMXU@%@S#TegFQZ}<88aH|)#)bputG1>i6JDj>Uol2a6OXEm^jdK<2 zE&#Zl8her#|7M(o^z3e?l-fQp~7nv}@ zEQcLA+;>-2&!JIQVCPf-*^Ur=iGlT5l`kKGT)}pYg3RJASXr&5n0Bu}=p+c907tm0 z;Dn~i(4HRu+}*NUDCci)xHC2a@x~2vHrtWo8o=Qpk`;h;UW7=yff8%9 zEvxll^0^?SJT>1Egf9CJOlrwrr`Q0<*KrH-~QRKj0Zek!WME2};qnCSm1Y2y3j$5cE zoo)#^JLk}a+=D7JboD+)?i12C*8X|TW4;O2-an@p*x@+EKi?q4iplxSCg0YRk><`+ zdu7c#Qv55gV-7eYdUw@S4qkB9=xB>@a@@lD-lmPHf&uv-Y*17mc3ymZewG<0u4%3$ zQ5|_jve@|^h_t|}cbfuvt5519@Qt9cgFVLiobsrnQzZ(e@cJk9wX=eb?ypU?r6Pht zU>C&x5{P$++73!nz?Was1=iSzW``(-CBVf+_9Ne7CC+RO!kO#r<1AQoIoK$~fm$IL zc3%o~tQ%7!ioRx za3NX22gaZL#^B)7Nwr$WKN#6Zo1RHgrQao|(&!f|dkAOXEG6f4KVcS_xag1$YMCA_KW zewJ=$kfB93fhvS(T_%%i_n3#mT>1%baji(LL{CYnj{kqn}&&*f(xP0`3IlFB2NFlCP}CkH{Y+rSo`eSu^Xe z2H)Z%vVSN--x5XZMDv==$`GKFLalkpHO%V7yN|a=3O*=VKNrD|@Y;~lxx6V3bY&ly z05$>A{G5Kkho}9z9C0u5NZ4G-l$$?ngpvJe%enIrX*WCKD>Bf3b`Ym&69i4cut|mk z(9%M|$bDaqtV{fBeUKkxGQET!#`&1w&VXS=rukN$*rz*QZ72tu98p$tZ=#Je4HPwE zH0Jfz$Zg|xj{fjiKNkE)cfd_|a3ux=EHjqBjZrjg{yVMrsebdQTXg`6^T=sTzw9E` z+eh{PQFT(A2o%bB)taBzGwg zV{!=+pZ;P$^sYkpk+~s#WjxEq?`v%Q zDxpwP@D8PvetD{N^C?)eUmx-%P7^P2;gWoCat?34R9Wl(J#;M29WyCzMrBTs*Wt>N z@+Z82E3uox=?ovZC8yh_CdEmk4wWA5A^c#&l?Nx?hpuMD1n}YYqp>oIve4tINc?FU zqBhKu<2D*i=;O4C-elemRpy@u-2|C#23{o0*UgP9U*@xlX?e&hEXN9SBmwiPUX{gK<~YEI$wO6y_V+|8eZiO-nHPB3ui zyQ%pHL_FTe4_h&vi%{N-Kaa;3-e`fwzw?@w9E^Oow(oS^wbNhI3@d7 zb6SVO`6;cJkl=LaJ{zJRN!jFOMR#`xlbY?d7-F^_HbKuIpCH`iU zE;-kfh`RJw%PDhjZ>SSH?I&Mcw*<3!l0A|C^!7~s5KK1x+GSZMJLWIbxcs{&0Z(tJ z_gnf8vJ=zAY0MJkzoEbL?MPYibsC35f`?=$Ki`?xqGyd;6(sq)(Xk8oZd~K}@hz~$ zUtQYQbB-&F`_;ekpaN1l)o7I9B*2se-6zsT1RqdNgxS*2YCsKZhsH-Xz^-`n7>`DB`z{50^^}cPbks$NYFN?uU znE!y##G$iN5xzd_Hg|SB1O0eqvn`cVsJ{3U)_<|c0(Uf17AA_qZf_5>K58a>gX7(d zzd6;G8`k1(X32^g&da&~7>ZfkJx2ye$pZ@)kdqhZ--Z9-=SIA_a}d5rHED_!eGCfG z*Mx|*FH>_29LO7=!+QTVCDW{qKEfL)Z3}#mmqhe%iw`@7HWZ;}S^v|R zCAkU1$9NlsH6CMv?v^<7bfi?ff`)}kD0okG7wx2g0Gw)5T=c;Vu;09CnwSUH3ojo# zsJ%yuB>G;Ir^ZZ9*!i3l71U>gohZf2~zo@awVc1;Le%|j`!Z=UYExEoZ3tV1pp27I!tLt7EP5c#}rMyHeX zXgA@<@#oSXJ++$>1V%d|&)$&l?{w zM>$U0zA`i>-F%G>5^#=`L7IMdV)gZYKkIW>2Yf~LDN%IqEw7)01O-s$7s>+2G?4oy zmGvFLhO|8FsIsEQ$;Yb=d`rh^uOxXLGT%3(R?8{fN#p9L*w7izgvydI(|Wq5QvbV^ zIBpQBU6J6#HP#|<{yr(980-8)MIG`Oje72*4V~^Qbkt7Ud7t#=<4fqn<;kvxD|7KS zkGmOf3ek5#4>s_424D|PE=~=>z#XC3(%n3TN^-E`Chr!zu&9TBhi}aN+kA$5T(<~u z9>f>t-sKu?!H;;K!Z~X~&H~@c_Vu<-k(k`}JrLd4@m%e{5{K5bUtbq&HA0x;huua~ zGu>G~wBN4wMjD_D*Mzc=0I7f@z)y!l8}u`{^JZeQ39BckVV-MTxL|;OTuQ>cD%f>WLY0PS^->YgGb_tQWq&%g> znnkHiw)ANZL2s;Z%^VUS8So9^t7So4YlyXnNn-BT)_!$hep!mU8)7{*A6q|c!T-em z2t|Vj+FM_=2lf-pe>M;1+F!jX6Q6r+5`!vFUlgU73UxEy4xf?X6u+B@eGSob{cf1?IDc6vtDy~F3)rpbivqrZ0TYPj{#{AU}j0C=HAy)^E znGS_l=MLP72s-#r-C7)|EbvZJPj)^&O=HeGD_spg^)>#^FN$-1hidJ?7ye&POiNoP zDNBt63Juw+>=7$QHx~I|r6)CJAN+h$6Ie~O{&e+n9_eI4+p9M8RuWl2+j%5NyIrb0 zF+@XnD8R&uH9{tMA57`Lx5SliyC&|(W2Ft&-*Ha2$&25kP~M_F-8E}p@Y0H@`?HUb zz<-t_D!2FD&4nS^^HH~x)X1*;NP)@E?#tW?XiraRzju+yqV;s`DR7i%J03NX60ei# zbTzK_q&>Xd>2a&drt+8WSn#97yid|6w%`8w>f-(9mIJMK<2;_76B99uy8UaJVbPeO zbC}Qflli-lE0W$9X-pV_OCn3X3ACKKP}i5|9^4I*zS|xjUL*c?JZ_W!*!$yKx;{l& zG1Y$#5W@IxtMwrTWU_^k>XdT9qMOt6iu^=mB@V za4CAtO$|zKHByGyrCg2GKIB_HwE_9wu^r*_IKeuED2iVC^xvVH=_jMpR?s2iG54XN zjWz-myPsA@jT0g_v2}D4BAg7ZcDOOGMzX=R7je3hzEU5zaBLkQpb#Z~e4V9Nvi@22 z4vQtFsFQkS0d0UF@i#-ISBgC>{vMD`On#0Lj8EJ#I@I&ZRuBM$%H%fGdWYy&^&h!+ z#jib#cgIS>MY0&Vn7xVbBDxw5!af#?+*N1AsYxWjF88E8{l&J`2WlDi@@@r!P^#}k zoUV9ny$K&d3>jXJGmk!(HaxZ2-2(qehe&6+sH9QLr?mNr=YjDrV0R}+G3`{>(FYN$ zn zuL!mGfVbK~H2L7pYq5HcF;R5j4T%@i_($-+L!Z2O$BwZse?%1RPi>%!h95aB5B4~+ zl+rTAuSMv78l9-FpiySE!w-`@SvpX*^a$%Gbbnd#3oMD*;^BE@{Mh#fLO>c0AB zu-z^$ky~DVzzo(Gi^YoLx6O zbWIr0jLL4pLei&F3QrSK{({~8 z@6@K7?!i5}3Gxy-yEfqW^*$^3B@P}ov|?IwjWbfi6jFX3qn7$(=lTQ?126#O*K0Y& zpvT*U)lf_icM}|vluF3R5K^vqRxO^t{4WN22<}NnsCKL;RpULD|3KpHcw+r7is?M~ zd>PR^j&5roMS}TYB6z#um^3V7g99L4xoaiR%a{k+e5#+g5&IW{W|2DC9XrCqPvmcy zv{P?7Uv%I5M^!QUPfenZx%u-Q*&2%5MZqPJ0KPcu4sc(+sAFEn`rxuqn{;z}z3yEy zcqGHv?#wrT5w;G-;Z_vk7AP81U7K{a%DginG!pat4(-RqjyoQ({@^qQ`g~tRuWIYREiB|qGM+_cd(wL&cN6?jdf$_;xB}~^09QE#B7BJ z3$dz8Uf4eZ4bHqz=63pS*nHM3s3g=z>Q`mFQQ$)gr(zLmoNp0u%c{zXxv~_P`we+? zS3{xHWwZG}`J02h$o$Nm>1he%kv4Ft-?f?OZi9(!S0$QXa$vty@uj{i>m+wop^<(1 zkOGv-6roWM<|9_YyP0+9-P zS})Lobo*P(Oaen_vfTDh(BbfAJ!hE$)A3odi5y^HDP>{yu*Su(Q$15n z$aRwqQV8j%laBz6Eoj;5=Pr;@D~!NzM>#aClvN+p3 zA&R7}yLPMXa8}M#pl|sAD;yvHRuKme$riVv590WVTsT(r*vIb@JP}}2M!e}ghu4@5F=}qpe_9t@)8caITkhS*w5ngwUPnqd*22xqHsUs14hRp z*eYNd^B(5{XZ|C!j_EUV-d=@&kudvy8w(}8qP(x`vFJhuWuErTst^5Aa3yhe=-od= z*S}jZPClGIBO}fs?=8jTEkHmfg}DU@D9$wDQsI4cVA zfo{f{KnvmTaYOHTnA8EW3i4FYrhG;{YvWOG&Od-wOkq%IGb)(RC$FcYakc8_h9)z|0+|zIb)4mk&zQ zN1leg&~h6bwCM@J)QOHcUp-BSy9jvX>IAi<$ZgMQU;Y~lpci@Iq<0qs&Z}R{PvS9H zrc8{$TdM8zH$D9GFdMZrXdz2xN8))-Fj<1`ucg;5mZ1B^oP)`wt2&MQWZ)JLZe&YR zS>UMnzOD(FR%^Y&d#_DhWegn{YNL+$x5~1MFW!?x9h7BbYe=blWeC7iu1JPnXYARm z_0JxxgnspBa1D3^gaCLOSxzx`I#T2=S6M|!``Na>kB&hY!E+8h&uUk%!tH)$q9n(m z&t!C`xh!!pCjv1~qB6z-*3<4!ZJ!)Cyu2S1e?XHG6a1in#z_=A4|N7zc8${x7o*6} z@!{CHY--rv+FN@zaE)$@y8?Ryp^(fs-D!)>zl~xRjMx&=>OvX}9+$0xPWLF&;XVnd zjcf{Ed%J}&g5?EWzU_GdkE!EJY+ikcMvY$(NNNF$dhZq*T)CKuEB79L2J9;ZcRD&h zK?#0?En%NGj-HxIn3#Q{+5GXU6LeXpvp~KAN@Cpf*=eXR@7k4?7h%d2&$WkQP#Who z_HX=Q%HJO|a5J67(Wf4DQKKDPm~*(Gdb)Ux06jIdV*VQAS8PV0`;7^09D~_3*ZIPe zvD`{Q7^#LjM#=kH*LCjI-Gi9;vB&3&|CDdt{d5_IJY^NJN;)%C!i;zGC7oRy6YHce(;7Pm21$wV)Ao(E?y!##Rd zqB%=v(1WJDZM;zxCdrf3VcpfRd{uS2NOQg5gFKyf6cyI?{_R{G?plWQxMZIDN|ZF0 zbfCqPLER^pI3=(Wmzwj#)Z+d1zH4u^dcsBEKTtIVyI01eMBpfRV#EDABz05<0+^rU zb3@PL>iD(x58arrmlhHuM!J(qJJsOK0MqL>dSymtZQ5&Pe8}KAUlP8$@4f#m|&;iCkoO z)GH?$Y!?2nNsxjfu~)V~`^V~8^|&y60683Rs`+CCYdLB0{)GIudN;!egf=j({o(|-AaCThAV2<`SRl+(2JYMIPK5_G)hvu$ zIi>X)lO{4{_%7aUEXzskRHL1_2!eTu2m{++sp1gb`bzQkyV6f!PR8+5VPTsYci$y=r0S?MbyhzUt*D$5rmaK%cmR0EmP{A@+W-r@gz=;=pY*O0Zyf5&<`*Lu zp_-ffFR#OCyJFlEPHTSF(&J|8IRL92Ycb=!5vq8Ar5M%J=&Br?wmrr>@=nKREgiaD zL;gAyD3g-(O*o3-%^MvL+K^6LkAMbkKfqAN#@(E?#{kFFVhtqI4hPObeJw5`Qb$E> z7`VJI%+YPRg~~%|RAUe+Ac^k$t$XA<9ujm3&s_ZOXx1^smEWOnRPxw|y7tSARW;mD zW4uc}C81^;jbBPEfL(#oJio}E{AKl3jD)pYIqY{1#%;64O$@t^rZ1I8vlsU@2qwDz z8iD;&;OU~I6sugc`K5^3j0i8seB-$_EHMFF2b5e z8H&BqJuCjrpOS+)IDZ^UfV5bkglFB@g7u8-*;C;5`@vFTRROU z_=>7xdGvhMiP<1(l1;$+IbyW^zIh{G2a4s`j1%Bo7Xilh3}g9QBnUt&q6z2aUY4k z_ZkHL);v52#2C`?#3K2IPQ19zu1VTx*@Nr*wFug@9Y_d!v>%4*6eM5+Vj zsrUZ!qNe;9$e^pF{IvvW*7OezL^{JbL$m97Vb0mKpA!2GohOz#9Zk zQ&`_>t1zPZo7T{~WZvKfSv%R{b5I(7iPqy_kqOfBp%qBE01OZ16|Hn20sqWp#94Fk zg1qc1SR?CSUZLwKx)qdq#+oS+*g+~9ZCU*^if#$eU8pj~raHiBt!)!&>kseC`Xqk; zvM}N@;t6#<3&+*LfARPj5Pk*-WGR}d068hjC}T;AbB*U$BF#$1e@DdLKU&g7p+rLH zo2OaWT>ta!DC6UrfH9Zn+YPXx9iI3e-G8nSu9KBWM#5M%Paa%CGtWetrF}op=;>91 z(-to|cB@(iNYL|AtTm!3Aj~tKTxf5jjNX!-oKPXFV37jC1}29Hl)4Rlt8pWK?v+iIG zUnDU2Zn031#5=lm z5|{MC=|@UlV6`YN&Hv{_{@^BNr`AHsdq18)1TCvbIVkPFXY zMojsAX)^e+V)`SC^w=KWjpZn5mh;f?mf+dE>1Qq`%Lv<_s)i|XnzJ;Vm^ zFVIJ{qvBAvtks-n0Syl5b;kIQkDdW2Lkdzy_)Hk^5;;#3k9M8PPSDlK9(G;{^p#$I zVi=ReEC=;h77_Eqp6w7=gPE8FB3>tV_zC_|e}mOTvA~%De=H-72(JS(PEfwF_I3$6 zTq;eH1y^VArEK~b>p>Wjh+AiguYEdGCI@VE*q<`thkmS2_1Ex8*zVNp8`q(}m3|tW zR88|`!qw2VU%I_}xho{^C_KhctiDTmi{+t=aUnP9}aBl!Eq&<3;#1zUlPO<%OG<5rbKp ztbL|4(9RBTIG~FaRvvE{_51KLA}^_Dg(2gYQY{iryUG-G^Vt$xrjY#hZ7S;YF-yv(S>v#zt(a z?T;=wUe;c#@FC+UY4l4q^h@H(f4%m5D?uacaUaNj!h}22I}qz8CxTtf4$*GZHzV08 zM^#c=%4AAig{Ep4eDu9EG@lif{wZtT&ofqs7kQ**Xg~tD1izpBs1Z8)+PbiKJ*h`{ zwPmf(jxw@!u6bcT#wlnx>^w@$(L}aF?BNq@!It!8^Ae0D2p@9t!+coE8Ls5&dlDw^ z=-c6chH_r#eDTSS>)I-t2ykk`T}{~Db)m|Y=R=%RpM!f#`WkT+OB6fHOa)zW{J1V4ZN;0K z5*$MXmOL`xlsQT0&FieAUh$07Cn3E_q4NjunHqSp?5@VUrHzxW&B(&S3N-bTjCp~i zdwe+XDcJF(85cdrR7IzjP8nCrUMT#@7zqvVQBb7tESf#4de^X9%1@a5dMw#{{z2gP9p1EE`DaZSI^lDh-Ts_%h!dR8# zRTUp@YHjWqIUFW&3w4RI{ssMzX%trQdM@<|?92Z9+xF~c`_`Kls4>P*=4U#=Ic-kXW`}Bh_DX8{HdX-4lPCJU|dUJEO{%(?Y)l`dM zdCRtkN~Bi1+#f-z6#}rro3a=y(Q$v_n{`%3`5VoQb?ZMeb&|L+`&+I^H?L>zg<15j zqb2oHAW&Fr4ATcfKJSmIu+Zu%?{i%}uBv4+ubw5m3O<`a>d*Ye_tr(nEg+&yRcAn^ z(#*a%KS{3L8D8X&qDoIgHX~|)=rHBqE~|Xwxm00lMv1!cTuf0q)f|^)S!QYVz?9!0 zyf1Y8X|G#lma1SpKlFhNapDcbD5*pcmtfte^xXejmCO$_Y@tle{;aE4#82eoEK>hf zoJq*n$jBskI!n3g4_M`|h+=klk;~|vlf2lTbDdz~?XD2r)k)q*^oz!mPj4nUDR0Cj zPN!wc_qn@8MdZfqIoFJYO|aY(qer0vrxRKdzUj_-lFE0)Be?x%sEl8qsN&G-p(b5l zXQ+J^xLjYC@LQ~%-H*J1pKR`4jo2WvZB|&4Anumek~OumXE147m9bGV!9Nlv3R4%R z=Zwmr)Rhj+7N^_Fd3Nt&;x=)SJYuq&xO3&{z&J?=>lSsdNqgFe%;5+(2)hku?W}5^ z^SDo{5{!6~sasBxPSe+G1CFzYRz($M@nSkfU64l;wdK_)48PleG&HWyMUl&X=eI2lU;B+L9*EqJUY#lHRTY58$#?w|F zsp6?ZN!S@}ei+V2C~flQ4f>Y>C2&-bQ;7uH(j?=i8omTij@be8AWL5-H#32i>7us0 z1ll@9>Sr1%pLs&@2DsgwkQE}9jeilK9QYgtZXRnPtc{q=m>zTnfz1dHX-r)(g`}l( z4Q#)+2s1trfoU1|_jjA>k;^PSG(2pQtV}F;5JZgz>qsUj1t|LYeE<{ z)0HXfc!MSHT#D2jio@JfX}y_@3`CN~1Zfq-6jOE{jfPFYdVDV&qq)l5^@kZJfFFMB z8_202+_V-AGNLjtLQvWV=nQ!@^a1O2ggX(IcE@-}dNk}UQ&;_kQ^+{f^?f#5$`3qs zI`H@*D}kDi$FQE1&4DgG&c42X)|Ns`phAL9dQBPLh#l-X`gaZ;|>&j9$w=DhKff^uzF%_w-H3$ipofTrM0v zO3x0&#X*A}J-vDKgBCr?(8pT15cXi89(l8aBn|JIAMQPiNZEIU)80@t80`l8qBI{Y zeDpg?1d;OX{`z|S&W7lIq_v3d~01ALznatHLV6+hS zD*13bVXx(hoVV(8t|st&aq3QTPoKwIA@9Sjsa0nV8rUd#QsMY=u*G=f&+n?X< zvko4HxxB{y8m&V?;VTonp&qfMk8!2y2M0+T5#SsQAxJb;DVj;4S(>I6>|^I1C9C30 zR#k%?teJ5)k2Bi_n+CQzP&U&(5}n`IZe)9H?>2|#Q_1D6SCa1$JOt4Z-@q=LLzyh8 zcU8Cxx$QWx@SGQt7R~#TY0;?d@&ILI%?*7@ywM#T`P~!*x*0i!!YyL*aTzE zZV5UxsGM;N$bo&0l`(8am3a#R)B#kPd{RsRxYGVv%XO<)5M_KxgS)95hQAPW6(kBM zlNtSwWOM;NdWsXk4Pgw4sM>2;)LXbE4>tOk9N4~FKYg~!hD9q+0>oUdfTdxyEDA`NppcMWi37{vq^vRq9?>^3l z9qw|uT9ji3M8JvgIKc(mhuY5(MXXT!#wYp!{v9Ms_-EiX*QAte=*h=fmjjd>8Kuz? zWTAu>A2guMP`WBS2Oy_YeJNd$a=Nf%>P(-5x;G2J&DRc|b??u%FE9A{D((pz{HZy! zUBf_sB5=zz%N;0L0tZva+M~2r;JDfknyLOYSksqEW5Yn$o1H1S%j!hRjO^rslN>1BAD9HQ;r3j zi&zKNF6zE2wU0Ia(L{0Ae!8QR<3t&>F4v4si|YqbHz;($4%eGmYvSE>%5mfB;hR$v z1MM%WCuSGkuW-fh#R)=bvfmRK_?xB&t;ZtDjs zmT=Y~3-lGtqEx@Qr!uKKH(daI%FbJ9<}dK7`vZb@_NLKBFtYEmqYZuTDeCscK=B!{ z)ny+Qz9IFhyB=AfM>}QZaW>>iq>uw(SRF>ltH_9OruaC~*HI2tuUa)&Ecw|n zx{viK%org(Ci?hOW#^2UiC661q`)BztOgnK&Zt5t&t zs8Xz&6GiRAFwDpF_0hAo=a@83yvgTUelMkBN%X2MJ;Yq@^60*-R@1_kUhXHYT`Lf( zMqm0;hkusbVp-!iT*=uYN$`44DsTsgT{LoHjS#=X&3G1kDTsmn<~C0oF{-M_d8u)^n+( zNk;rX_rKmofQ++dTm7(7C(0@f(*$2*1PW*==}1dw4Y)mTV$1GGRaq{l0fveKOaEra ze1Kx*NHIuv(FQjZ^hK+nyzDTokKyu1ByqWMBhN89e^ZiLK9xHFCF`Xu6(cR@!={d* zNOC=UD&UfXVGo1+<&<9b6_1%D6gw9h3z3m^fvYs_hpIg~lS%c`_FodqP_phG))Y@r}mguCSO7^!;ySXHb zRpPk%E89imU0eF3czAAR0%WiLc}45w{BrdEk8I1_Y-@IEY+Lgf=eD!P^C#V0 zEbUY`4XhsqqNkWNm^oP5GxQ;{N>&OHUUoE6>Y58d0U7bh!NUAC|%p`H#T_tcl>gBjsHITio z*5bVy$IWc9{1%;uU-L#2^0H;Ex24`WpZLZG?$Tgyj}2H){sjPb$n{L_Bl~loCtIQ} zI<`F#s?=u&hz%dnPW$8;71Jp(#Afznalngeiv~{Vk6Mk<3(rAU@@>^H{I~h2P8)19qpn{aq>uB$w$={^ky3<0hDEjZP@Z5J2zV~8q08n(-8dsDl8 zNolS2G{o1%k<$Dzrb6RqD;$?q-2R_Lsrb@pgFYXSsOT#E-R!F+C~tZscA|yKLU(RPU?ISuPQ!vh`Z+_RT?iuLlO(JxS`v ze1x7Lv`xGQ3MdDQNg0`U-rCm6KD4*{vArGrE#1PoG1U@hlAKgL8&dWARi=Ia3YB-l zpj{}C|MNh#1!Sq=rZiU8nk1p3)flvqu)42zs4v)7W-EvY_q?NhXxG6~+rF=}VZHWF zyEdv(^z%Tu1;nP~rZ=7>CD|fi-6m;TbMB*w_nH(s@#&(q>-dYI0jTR$aqp|3e5neM zSF_JCRybYLv~OZ{-BDw}U5js`vSbPzvn!+Sdxo1~H{$5u%S5yBr8}rT{C9hH78qR< z@@JNb-1faf#H)8hHxjzmJ!;cDGhG>9RF+h0itc}@sWQsdcJ}y{2N1EEyzd?*HNJZ~ z-+u$LWi%|;WA7BKo4#!@VQ1eixgGhqL0!1Iwq$p}TI#dY^V@oAy(cQq^*OoU$=<>I z=d~}Zi>6jjJwFabHNAc81KV<>;O2Ak-(hlJU4l3)&A@br;w)bTE{L6lNG%O||4+*P gf9vo6sIyClkM$OdJv@ycL%^Skq6Rik!SMC}0?N>og#Z8m literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.dot b/doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.dot new file mode 100644 index 000000000..a66f19f13 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.dot @@ -0,0 +1,773 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "impliedTwoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "addon":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "app":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "attach":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "channel":"channel_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"event_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"id":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fserver":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "fsuggest":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "group_member":"elipses":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hook":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "hubloc":"hubloc_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"hubloc_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "likes":"channel_id":w -> "channel":"channel_id.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "likes":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "mail":"account_id":w -> "account":"elipses":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "mail":"channel_id":w -> "channel":"channel_id.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "mail":"from_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "mail":"to_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"outq_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"outq_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"outq_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "pconfig":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "pconfig":"elipses":w -> "cache":"elipses":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "photo":"elipses":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"channel_id":w -> "channel":"channel_id.type":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "profext":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "profext":"k":w -> "cache":"elipses":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "profile":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "register":"hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"id":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "spam":"elipses":w -> "notify":"id":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "term":"parent_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"parent_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"term_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"ud_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xconfig":"elipses":w -> "cache":"elipses":e [arrowhead=none dir=back arrowtail=crowodot style=dashed]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "verify":"elipses":e [arrowhead=none dir=back arrowtail=teeodot style=dashed]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"xprof_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"xprof_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"xtag_hash":w -> "channel":"channel_hash.type":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"xtag_hash":w -> "hubloc":"hubloc_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"xtag_hash":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + +
    abook
    ...
    < 1685 rows
    > + URL="abook.html" + tooltip="abook" + ]; + "account" [ + label=< + + + + +
    account
    ...
    2 rows1 >
    > + URL="account.html" + tooltip="account" + ]; + "addon" [ + label=< + + + + +
    addon
    ...
    < 120 rows
    > + URL="addon.html" + tooltip="addon" + ]; + "app" [ + label=< + + + + +
    app
    ...
    < 14 rows
    > + URL="app.html" + tooltip="app" + ]; + "attach" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + +
    attach
    id
    aid
    uid
    hash
    creator
    filename
    filetype
    filesize
    revision
    folder
    flags
    is_dir
    is_photo
    os_storage
    os_path
    display_path
    data
    created
    edited
    allow_cid
    allow_gid
    deny_cid
    deny_gid
    < 4105 rows
    > + URL="attach.html" + tooltip="attach" + ]; + "cache" [ + label=< + + + + +
    cache
    ...
    334 rows5 >
    > + URL="cache.html" + tooltip="cache" + ]; + "channel" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    channel
    channel_idint unsigned[10]
    channel_account_idint unsigned[10]
    channel_primarybit[0]
    channel_namechar[255]
    channel_addresschar[255]
    channel_guidchar[255]
    channel_guid_sigtext[65535]
    channel_hashchar[255]
    channel_timezonechar[128]
    channel_locationchar[255]
    channel_themechar[255]
    channel_startpagechar[255]
    channel_pubkeytext[65535]
    channel_prvkeytext[65535]
    channel_notifyflagsint unsigned[10]
    channel_pageflagsint unsigned[10]
    channel_dirdatedatetime[19]
    channel_lastpostdatetime[19]
    channel_deleteddatetime[19]
    channel_max_anon_mailint unsigned[10]
    channel_max_friend_reqint unsigned[10]
    channel_expire_daysint[10]
    channel_passwd_resetchar[255]
    channel_default_groupchar[255]
    channel_allow_cidmediumtext[16777215]
    channel_allow_gidmediumtext[16777215]
    channel_deny_cidmediumtext[16777215]
    channel_deny_gidmediumtext[16777215]
    channel_r_streamint unsigned[10]
    channel_r_profileint unsigned[10]
    channel_r_photosint unsigned[10]
    channel_r_abookint unsigned[10]
    channel_w_streamint unsigned[10]
    channel_w_wallint unsigned[10]
    channel_w_tagwallint unsigned[10]
    channel_w_commentint unsigned[10]
    channel_w_mailint unsigned[10]
    channel_w_photosint unsigned[10]
    channel_w_chatint unsigned[10]
    channel_a_delegateint unsigned[10]
    channel_r_storageint unsigned[10]
    channel_w_storageint unsigned[10]
    channel_r_pagesint unsigned[10]
    channel_w_pagesint unsigned[10]
    channel_a_republishint unsigned[10]
    channel_w_likeint unsigned[10]
    channel_removedbit[0]
    channel_systembit[0]
    < 112 rows17 >
    > + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + +
    chat
    ...
    < 10 rows
    > + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + +
    chatpresence
    ...
    < 11 row
    > + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "dreport" [ + label=< + + + + +
    dreport
    ...
    < 18 579 rows
    > + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    event
    id
    aid
    uid
    event_xchan
    event_hash
    created
    edited
    start
    finish
    summary
    description
    location
    type
    nofinish
    adjust
    ignore
    allow_cid
    allow_gid
    deny_cid
    deny_gid
    event_status
    event_status_date
    event_percent
    event_repeat
    event_sequence
    event_priority
    event_vdata
    < 512 rows
    > + URL="event.html" + tooltip="event" + ]; + "fserver" [ + label=< + + + + +
    fserver
    ...
    < 10 rows
    > + URL="fserver.html" + tooltip="fserver" + ]; + "fsuggest" [ + label=< + + + + +
    fsuggest
    ...
    < 10 rows
    > + URL="fsuggest.html" + tooltip="fsuggest" + ]; + "group_member" [ + label=< + + + + +
    group_member
    ...
    < 242 rows
    > + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + + + + + + +
    groups
    id
    hash
    uid
    visible
    deleted
    name
    < 410 rows
    > + URL="groups.html" + tooltip="groups" + ]; + "hook" [ + label=< + + + + +
    hook
    ...
    < 141 rows
    > + URL="hook.html" + tooltip="hook" + ]; + "hubloc" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + +
    hubloc
    hubloc_id
    hubloc_guid
    hubloc_guid_sig
    hubloc_hash
    hubloc_addr
    hubloc_network
    hubloc_flags
    hubloc_status
    hubloc_url
    hubloc_url_sig
    hubloc_host
    hubloc_callback
    hubloc_connect
    hubloc_sitekey
    hubloc_updated
    hubloc_connected
    hubloc_primary
    hubloc_orphancheck
    hubloc_error
    hubloc_deleted
    < 32 658 rows14 >
    > + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
    item
    ...
    < 437 583 rows
    > + URL="item.html" + tooltip="item" + ]; + "likes" [ + label=< + + + + + + + + + + + + + +
    likes
    id
    channel_id
    liker
    likee
    iid
    verb
    target_type
    target_id
    target
    i_mid
    < 20 rows
    > + URL="likes.html" + tooltip="likes" + ]; + "mail" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + +
    mail
    id
    convid
    mail_flags
    from_xchan
    to_xchan
    account_id
    channel_id
    title
    body
    sig
    attach
    mid
    parent_mid
    mail_deleted
    mail_replied
    mail_isreply
    mail_seen
    mail_recalled
    mail_obscured
    created
    expires
    conv_guid
    < 539 rows
    > + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
    manage
    ...
    < 20 rows
    > + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + + + + + + + + + + + + + + + +
    notify
    id
    hash
    name
    url
    photo
    date
    msg
    aid
    uid
    link
    parent
    seen
    type
    verb
    otype
    < 3528 rows10 >
    > + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + + + + + + + + + + + + +
    outq
    outq_hash
    outq_account
    outq_channel
    outq_driver
    outq_posturl
    outq_async
    outq_delivered
    outq_created
    outq_updated
    outq_notify
    outq_msg
    outq_priority
    < 3660 rows
    > + URL="outq.html" + tooltip="outq" + ]; + "pconfig" [ + label=< + + + + +
    pconfig
    ...
    < 2719 rows
    > + URL="pconfig.html" + tooltip="pconfig" + ]; + "photo" [ + label=< + + + + +
    photo
    ...
    < 25 888 rows
    > + URL="photo.html" + tooltip="photo" + ]; + "profext" [ + label=< + + + + + + + + +
    profext
    id
    channel_id
    hash
    k
    v
    < 60 rows
    > + URL="profext.html" + tooltip="profext" + ]; + "profile" [ + label=< + + + + +
    profile
    ...
    < 111 rows
    > + URL="profile.html" + tooltip="profile" + ]; + "register" [ + label=< + + + + + + + + + +
    register
    id
    hash
    created
    uid
    password
    language
    < 40 rows
    > + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
    shares
    ...
    < 10 rows
    > + URL="shares.html" + tooltip="shares" + ]; + "source" [ + label=< + + + + +
    source
    ...
    < 20 rows
    > + URL="source.html" + tooltip="source" + ]; + "spam" [ + label=< + + + + +
    spam
    ...
    < 10 rows
    > + URL="spam.html" + tooltip="spam" + ]; + "term" [ + label=< + + + + + + + + + + + + + + +
    term
    tid
    aid
    uid
    oid
    otype
    type
    term
    url
    imgurl
    term_hash
    parent_hash
    < 68 980 rows
    > + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + + + + + + + +
    updates
    ud_id
    ud_hash
    ud_guid
    ud_date
    ud_last
    ud_flags
    ud_addr
    < 30 rows
    > + URL="updates.html" + tooltip="updates" + ]; + "verify" [ + label=< + + + + +
    verify
    ...
    0 rows20 >
    > + URL="verify.html" + tooltip="verify" + ]; + "vote" [ + label=< + + + + +
    vote
    ...
    < 10 rows
    > + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xchan
    xchan_hash
    xchan_guid
    xchan_guid_sig
    xchan_pubkey
    xchan_photo_mimetype
    xchan_photo_l
    xchan_photo_m
    xchan_photo_s
    xchan_addr
    xchan_url
    xchan_connurl
    xchan_follow
    xchan_connpage
    xchan_name
    xchan_network
    xchan_instance_url
    xchan_flags
    xchan_photo_date
    xchan_name_date
    xchan_hidden
    xchan_orphan
    xchan_censored
    xchan_selfcensored
    xchan_system
    xchan_pubforum
    xchan_deleted
    < 22 301 rows35 >
    > + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
    xchat
    ...
    < 19 rows
    > + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
    xconfig
    ...
    < 38 rows
    > + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
    xign
    ...
    < 20 rows
    > + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
    xlink
    ...
    < 14 105 rows
    > + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + + + + + + + + + + + + + + + +
    xprof
    xprof_hash
    xprof_age
    xprof_desc
    xprof_dob
    xprof_gender
    xprof_marital
    xprof_sexual
    xprof_locale
    xprof_region
    xprof_postcode
    xprof_country
    xprof_keywords
    xprof_about
    xprof_homepage
    xprof_hometown
    < 30 rows
    > + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + + + + +
    xtag
    xtag_id
    xtag_hash
    xtag_term
    xtag_flags
    < 30 rows
    > + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.png b/doc/schemaspy_hubzilla/diagrams/channel.implied2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..06c54ca9fb1efc0423c0cd46b1d187850f7351a5 GIT binary patch literal 169025 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 QkkZvgLyw!!%LMT)osB zM`A`}vKbX8BQdV*)!gVdVS7}@6#e3QEte*DMa58eVKHFWP?KZd)u{RnG(;MPAjllA zj($fi3%53q&h!^9wD8al2!^ZVFtCKf#rP*wTrYS>R(7m{i2AO_W_HY&zOa~>Fw5zy zu+{zaHm3{k0N8`=Q_6C}bHOJMd(WPdof%sb)?nc9xle&u%MG7LzIbm&ZB7=Ndah8{ ztuqwO7vgPi=9nt&q%K}#I-yH*29w#)Ao~p|PE95yeNRpQ z?sv^PqwdR(YDRk{3nzY##$DAN3e*eyo4^B5F%cou?WW?*=L)QIwLbE9A0fKJtnNZDJP=2+R+w(fen=W4m{F9#f80FpF&3Ae_$namb}>i``oIn`h%xhL-Epd*Zf#!wpjB2HYg%A_ zPBLCozDoYPq>|vzJq9xcFsD%Yf&% zj-3#t-2dn{^EVNOPan9KVIiCrt5b3`&Tsn7hwC_^nPoeYXky5t7$cRX7LRy*)jIV2 zWcKXmkq}*eshlmx;V-sT{SJ+pJO`Mv&??D?E{rkr?Z#{*ey!8Q0^u&zd z)TKMYrx-9o_A&nEAf6CpSNv<7O zf9^zE_4k>zp6~D36K79oJY}Dq(*a9h*v&FzC${bxU=FdC2gu9%`!CyQnH?}N@9xGf zyx!-^&#+s8XV9I2b`cq^ZZEBuQ@QO6uunU7?IhhrJ`|tb`$lFQzXtf93&jpZr&oU! zr_Vfb{I>LDH#m#j%lS1lIak#S!v<3s_a4bV zA!!-LkFB$SBz8WkI+axs7ydI~l+(U-FhTyMyr$jHHx;U#`b4&8lSeO?%_ySV`m@u; z&AoR}`vE8>48}W`A+gwCVG0{#KK4EE*M+-4p2yEyFn1I@Y{#S9M9c_=b&1I{g}%+F zmq8Hnq!Y>M8%I_)tvMfXVLz=IQYDXjST@wul?mBP8&E%oNHNXXZE=X01-bBbb}ka; zetW{K7&tyYdF%I!qf3R$zoZi2Fmm7J*=@0iSlY(Ij})CR&R_*{4fVKMGMi5R9e-8myJWI=8JieZ@?Ds88Pnv%3X_QAQ{A!x6y@N6v5D$Jn^%u+7O-CA2fU}p?)Y-` zh@lG_o5exgnuu7M-$c-Yfs9YpJhIh>0kbk3Po#&x;RXgz@t+R-SNcYD{XYO{dD)~xO(0h-^t@>3gDHjO;BsrXE!J&3 z1!38lt+9xurH-S5{FuGR{Pe`cqCap6D)1EjfB++1v;1SEoe*H{qHYxB3q|_+To820 zTk1=PR{>)on*D`dW?POW9+k8v=!At_*dOKCxlwff^)VuE)xJZhbNABxC$WKmhaj#@BIN$ z^9%Jlr`1?ky8ZS^;irqQi}Bwi!_Gj}z80rC-vIEO=UrPS2PhTb>m+M6rE*WWDZuOsfhMo- zr*eRUrj$E>Xf2%;ay81D88b!tj;FSNAZh8cL5IFB2cX5~dp3g=lH-pA+$c3;?%6y) zvc+zGpH6mH>c}2!-P&u|WK^&T|5pPq?6{P_8!0#vF<8jcZ+6V9X3kt8f&>jzA%z9^ z0gLZtPCwPknRBBKnroeO?QfesC#vl5N8meBw3SYo!P3Q7>!9)#kLX>a^d2GX9+IU{ zunxXqoeA^a1pf;}qOGw5d$-V29h&CBb%4*`>8Q+x z@H3rwWgqH-k~@aaHsO^D4ATeMJUi9zCnE-dCY(+9-;>L(S{Ql8PF>`bsFpo2AU%SW$gYC^XV0P)R^L!F3y`K9=lYRIH!FaKlcU}iA z2sd-?AZ<;+(eEAYdSSldbf#m@%1$uA`w-C`P7eHx$4wKCO+B8r*Cx|am|6dbHokQL zf`7(JBbcd5vzp=FNn~VPbWWY#wgZ~HNAFbNuZ~?UF}LW|tKD$_)Uk3eo&HtnC-^?k ztmWHhO^El1a3s7XG;)oWOs-X_KWIgWQ#=&+TSWTkdIFmJ^%6vTh`}H1v$kc?p>?!= zIWf?>h)8!8I^~KApIt2oeIEnM&k;yrp~J9St=NrkC-c5IR_mNk3i|Pe`&pK7Ea{F` z8L8GoIf^vya>}x=KJ3JPelods=9vB8#IGe#d=k79i8MWpt>mAKXb_bYs|*V9v>9zG zs7`N5IS9TUSNrW!mfsJB^mi?$g}mhAWnk$;?&G1Qwqy` zuH~G08+~6T*S$J&(_(*dNacW=QVH(QrFi#bQ_U#d{K>7rs?}~!0S6Ot-I}R?3ci2- zotWiWH?dCcXD6vlh=j!Qpz3g>KKh1{p+hcz+QgKbAM!vjQ&<{&fXl1X#oO2U?65T} zay1xNdkJ+5SD;{idD+w?qIBKD~|*5hhWYuD18XI$5FpjM7O*sGGAh< zZE7c0#rLa$`LXeknAvtzo-&}|&m?4xaj1tj{1U3xA$G^I2; z=omOzII3L`BWEEcjo_eq&otqvcYy+W!`FM_GQX^rrlERSXXwXGUz1r=R})f0db4(~ zdDUSNRAueB9-V_^a09h@A%RJq@ur-t4T}{WEU$dT?lV`NH;sIuw>^oOnei>uI%2qO z%L?0>Cl%8l>K4j+9e*tQ$@>(PztV)j13&P!4O8}gcnI=R?=qcrxcW)d&AB4ncndAp z-wPBO+@y2Mc3!~j>{?BkMM4V(YcF6Tsw=+lA=xQ|N3$A#Tn9qfOCRTxcR)BaQ0vH? zny4#ddd55tMQnGep`piAUY6i$D~QyeKCBDU>-W zKF+1*|F$q_*36Iev*%x4$m|&Vd@Sb)JNdZZ+Q;{xLu;Yr?MGL+vL=~m^)E3EWtlt| zyf*=BfKDM}Rgl)YY`ssLnH`^-8yEj|=wP|TY*;@2A`&vHE=Z7a zGIQ2pfxI!;5Wfxr#1TdEb3*x*27#H{4kye#tm!k zNlFV>$B0?|t6&C4)l=Yq!5S#qS~k<1hmse|uIP1KK$?=`>){OdI@q*V++lT_lx61rFu(Bo6J2NRztITV|H$rNDav zfjM1dOn>p1HiVxBPTc6yY}Naj6h1U`Tz^RHhW%FI9pEpXrn2VtMnoYmH=-49>8XeZ zXRanbK_%wJ5~Y$IH$lf4P(H!VbNbkg z|6u|8MX%8kc$fofEOzEX@T_6P7AiXu8R1-QxJm>xEmkkG0}$l&c8qGFe&UT4p~UyI z3E}8!=;u6l&VNbuGms7pPOhfCF}kIXogr$uy*ha~ zx3t&~3)X~&oJ`$7-0mXK_j_cCdb)0DIQ5nGSvQt;3urbj+OWbSQD=!zhR z@uF@I?myYyx1Ak?YKNli6Lih3B6~%tIo8OW@QFM*$vcw=%7Fc zdAdv>Pcu9OE$NtKYr>-q&NNuIX|c%S&;|@@r1odPsKo)0+j8U43nY(+FkLs6vMbNv z`(WiGM!mUBvghgdCm;RQ*`n%{i*yWZ$GGn5P*p!Ev*Cn_2H#p{Cv}pSzdy(bdKN0%gZjYr=uEcONE zKjb)lI%jQ+&vHn^*^H>d_Kp(V`e!LF(!Q2$iA_gXQ!aV0UglA^&L0xuZ&?#E79!%$8c0K6M%4OR#h^5f z+UMBlJyel()CS0(tjAEqvTwe(!8cBjRv75WcK4jo9yqXcqq;(LqJC_i61(*^*{53j zbP;Y{tL%?ESAGz(N&tH}5n;zn=66ZT>WQ;|Lk$5=|Cy2;l^a9$i<{CUQGQ#1V)`v zX2cQ}kQdF((Fr|)QR=H$bFeKs#jf8m~aUKqeDm$Ne>bN2z~ z5HoM|DlZQ;I||Xzed%Co$8>w)^c{b98@ad!b(2uPYlv=1KYQV?+(7|tw|YzF8x7bh zATe<`?Z1vrSr+nrL#jPA1XWx>c8cCisRS){b_I?;_?x608w`Yd;OgBnp`N!U(^G`@N?NDzKSYqnBop#7S65}NuMw9t}Z^uNw*+VYc4xYIDfAm zj@j|2*fVc$Sw-E5t;Qyw1|!l8%Fze6Wt}BHX5 zYC{1?BbVANx9?j2wX|rA?VwX$^pRAW9jhV+)Yw;B&*?md(+Po#d=m*&4or+D~ z2tcde;%io9hJjZrO#d_K?uvf8rwx%$tV(a|O?&wTy2eiJGd5_yYE)zlx z>~8xH>~XRn>`(29%1%IX1S67*xTzc0Uk7m7E0D%$L4;2vGL<_@A{_W8i5UQNpI;@D8Bt#VkQ*V63P z6kjj06Nqnk2g;ZpOT2F{5mt8=Dzsb znm}IJ@|Da$5H*Xn0oAKhmxys;GTQK|_-{c1U0G}Y4LR8dz@XUij_M5I`Y;#??|vI} zF4WCP=(bE?wOcb)LRuvHb+a()AFwM+V5FucA|87yyL6KYP6o9(NL~Q3?bFKD%uK!x zydSlHa|DDz8A#XZir`a$FCn@EJ|-u%nJ9>gHX*yj<48`xuAzh6i7701OM*l-n96ot zOk@Ozm$2Yh%nvx`@M+*QfNuTS3o)ZY#1?>$*j0G{ngr}Q1|-$*Ol8@Lwr(@H-Evw;QIqU+rZ7!`#K zWCIh_J2z2@df{A<;GfkU4G>r>RKb1s!Hv5M?!?ne>I_rfp(huX>fu?xewWIUQFsdv zq{Gj_<@93BYulPDvo_Yu;)kWe)UMI%hb$_}d>hUZd7pp6_sFn<)8Sh`O0edIbbb}u z0Eq#JUOYR-q0{`_*()}1AfC`y zZ;a;=-hqBdCUZV7V6{_k5Sf;(b(jJzY;u0^Z8l)tE`OJt6;v+DttP zBf7xZ0mqrtWakn{l(xnA*JfuOd=@c!!~_(u*-cbnIalRcye)ahVUQv<*Jx6njpV5{ zACgpJR}aODCLgt6TxTR<%A+gOW;L(W7P3}{ca0?b?DtkH!Z^c`kGIq-_aDCJXb&&O z*!%ebn9#g~E}SHZTF_arM4m&b`Aqh~i|C0OYJ%%&%R3E7K;8{?d?;@_Bzkj)&~KgG z5CM1KM@&7<8JB+Q?E+rr?|UEXef~PES%rP4mdSWu3wl+Ybpqb-j{tM3;C(PgNizf0%t_~{!}$j)URkpeUJ2JhlwAqNl`XTYtku~{xutx1%HcC zEwq({ePgk9so4R!hpkjc>XIsl9 zH1sO)qJ}Td(LpmeFD9NfRUkY6R%*$kH$@GD+;SE1GkzzW1AC5{os;Nie?=$_8S;O$ z{%?iS>Y~tNdkZRqARnW@L%;) zH-{xG_C3=meysf=P?n2}0(bl}O=SC0tMy%v$yy(~bTF@3*PDg!K;?2Dh_GDwyasI~ z*Q{?ss>7Z|eiI|vPmwO);AqS;w^S->DKmP@X`|+OIG3i8{a_}eD6Fr`ieh`kzO-NKcD|p2Dj#!OjwOxXlW1uIB<=%iN071NBpjhrTzj6FA7DrL zVvBx1nq-so#=Ua+`I>Aq>_-(O>uhWN3L5$TOwImLTly2dyouManP4^Xs|KGSx)8rX z__mwKFg>Bn7E>DNoQ!XqqDn0)o6DlTZ52Cz&@P2n{;ql-rY70B@}d>zRMvFk4XG z8EPx>rkyy9XCd37sVFD*CJ;pET4p#S=V4Ku~#ouPUL9tQamWTSxg z;l^SAWKX@Bfc{ke=(c#&$T`nPHm#-N=7ozgL|!@L9q9UZFMiR=WOkwWW>e=E#6=z1 zr&78ScdX>PBpcib5^q|whV9E=*02Fz5w4EliP~48nU>ve8!nibFoSd`Q`3*i|4v;j zTsRaOkoe;|5jU%%@1tdPdey< zw*Jj*PI(nbLvG#ZYXAK2J{n=meElvY9U(i8%Bsy{v?Ldo}smgmBr1K-|;l2eY#RFPi;eyB+UEsAILuJx2?A{S*WKv-siaFC zY-*QFgbiW5y*b|N&#M>Q-NO8d&)z2v(#RKzrMFKu}rjeKh;Qwg;9sY0k6iNzN9~*|16P%Mq<3>=rCM| zs#NL2cfP&Uf+yzeNJU<1SZSje@J6mLZnv zpp7cM^x{C~)|X*7%z`Wkr?|v?9UlXV`PpsrmB$1zWkbofCrHEx#6C*4-eY}C4IBUS z*aH-xPI9n!iG(!$hxDaQY|ssGPD{|cvh>);|Ns99LkVLrLCX%J?4ugEG)elH`{q5s zy^1hre)74xgBnh-W)?~OTfPB^_ou7s009GT;GRa>=6ZXeBHl&vfyH5YA6YvO138($ zpqt9B7eeU0n!jXEDD}TG;V(cw9Jwz`=HOUqHM|((HT-#;|F^1ov$@XW#|H9ndgLiWi=IVty) zZ^-GO*!~X{q2u+AyyKc#vFd46$FfYA#t}Bm8lTGtp@4%ucUpYKymyYs>jDGX`(Y60 zKi(PHJ~w623h-5fpKwE&)Wh1enY1OPVmmoCko;9#24%mWcb3l|E%XGR5iVCx6->MY zd@&7KH*6tKIfzPpTqWK;r=*l7{5xi2ukK!;fQW8Et6^w7+2(DucDk^{N)85B7R|t{ z&$AglKh~Wn$BQCiM329K5XtFK&NzVde(WMjH>V2nD(tPONsvKCxz-8$0d9{Zb`*| zUsq{#S_8&htm%Tu5d2@ZPGbvze7Jxwo5$P}ny7dSR~qg*nHDW!_piSTF~yO!e>YOg zb`!@(cy4w*M7km_&U<{uADgtV#}t8gFTz6=yl!1}-H{MH`~nn*PQ4dx?$Ui$z)$3z z0sG26u5!G+@7;e|_PfUHrE6nzkjKK?S298ARaBZ_s){iT^jh#Tg$!s%VAZSuSok>r zL%mcHQ53-Rx8Fjy*aPWO?J=FQ>UrOboZV*|RYNd+OS3IhtBnB9$i%o>A!qf&wwIXf znQm9j8yPM8tCxv5zbw7623rTAWVXqasLM5M_ZWK3mHG8RjHlc$=eDm-&z6Nw+8L>T z!l6DQD0{>oVOAb!GBVUrlu>3>9~4h~a!19XUN@oqXx>pLG|hT>n*nK-y7;Yc{*+v_AaPMuDNmj{$~kD zMvDtAyJd7U>XG^e^a_G#$T?lrdCTpdkG@zvmoq?RP8sgP)|EVuN2r1lFhZ*_+M&fy z6iP|pbSAewuHCwq+7HA+`B03@a6eEr`T@ZqPpAAQ>@>NL?65~uv7fmi^DFuMfB()! zc8upj*ROVulShj>+Ij&2k z%-`I8CStwGSJDBLUv}plHhh?(^j{BO+b~)>_#D@oi}m;%GkZ0f_&3_UPwHNLMWL(6 zCUgy`xI3Ae5E#TLuJ?O<59u)~7Pq5+HmH1WWV{;af%YfV*&pX1J#~q?w_P|rUm>$2 zkU8}iwc}bdYq8<1Sg)qn_Jk81xIfDu(S}O%%lmTbRN}|EI*{c^T|CgXXNJ%D*IUG+ z_U^*>!^&w2c7(g%4=Yi_Md_4w^$g($o}8`CxW_Gzn?Gu)zf7|^4-6*FRCSk(W}mX+ zG+~}MAzOA5i#Ogz=3zGdxi&oVW5ezKI~tqO8$5qzbc7>yc>6V%%5?x9wI}f&odW5r zlc@tR*2rf&*e3F%X9&ALokTsPJO1dwh)H3+Krw!?*q9*ILgdkgsqxgVCn_!Y5xq`) zg}<>1jSJ%1aD4Q>>M+pF^cWLI?^2j=zRRM@6|du!uwN82@P;sk?OmYXd0N6(GO2ch z1xKVAGpLil1J{pikDyapLD1rPlE5+4Z7)ZF;9+g+v65z7<$%~Ah`c-J(z0t+pa?iX zv11Z{!B>zNefvIB*i{5DO;d5=Ub--#&%og_wo`fd(7!_d%D`ur9!Z~NgG&`ECB?p6 z4m(mAD9Phy>A3IM)D*0{I|tMOuc%34SS`esng zqAc^)P{U6~78dM+!wD}VoKdQ~?eNp_`>vfI3m9$pbdM0OGJa0a4mH-++(+)*1edWR zgY{|kQ+A+!$*0wU*{bJ|zspfEOk%*cK=I`3tB3N&Kd3FuMK3=JoxW#qS6Q=Z;w}&} zwu9!Jr65UqkLxG=FQ(X$+?U+J@0kk%0GufsUb*k(OyTVHR5WsU&mZ9~aJ5I{I-6?$ zf>{}6<*b<=`%&A~g%64<|3sOZD%~GXIG}~5+GLtA-~8D{(jtz{128|?9H{q8v#}mu z^#BUtb5KSza;5ejr5C)99eDs1yE~3c^Sy-_U~4(Nug>cO3VVNG zt;V>zaEV<(WT(99hUtBKw{Ku9l8rz@|VZ?m=5)N9LLZ1`yX=D$O*dBZRY(s(OWV&_Uq#Ppmd zvQsyK5FiUY0Ft5s#f*AdnIC#ODLO@)R)*#JHA74Bl{7?rNju(qv>eX-lhL0UyE~GP zIIH(0SFo%2?ULupYgU2S1_T%s-y^rGQ|Laj-6FOGQKPk)lx}4qS?Mbqfv2Z!=sKp5 z;x|_t{xpisv=>|nKbs$w;!`$&rCDpKZGUbJ@Nc{X+b_UYf|Lb+WZ(`?B;8)aERC`MQkQC=;8qGlwv{ z#iWjOR!wH{xdnoY7|q=#khbDxwL%$}fkdXr6RS_WwX4&RJkB_3q+BBA*5gm`9n0K1FC&(Da6zlYMIQ(VkaHDZrII{;$}Q)s*-)XiKeNy?C*ZUi-?S=qZ{pYs{aH%zv`~TNtUNS^q)Hv zrkFhCF_y!El|Uss8Dc z0ddj~oB`))&92Ty$1aXj%$X&UVJ!a(yZ#@h-a0OdH|hgLBt@Db1dNp&N(5<8Vv(+0 z8bp?skd+QaN?>TDC70M;1nCe^5LrP|1PK9yl14%V1ia(#ecyZUXaC%JVxBp3=A7?2 z=X+pmY*k2P|JN>3b1jR_Mbht{r!i~`v^Q605CXYc_k_%axwiMOQ^Hu&!pezX%AZD2 z*fW}j5-UROHp}7Y6THM-~d^{phI^6}B=4QtN=Wg6XkBSy;JInC(4H2538>jg|n+N+%TwMiXF)=%e>NP)ajq zcwRZ?fmuQA|Ht<~?JGPN+21 zY~6|(=9z-q4Btql-=X;Ly^!QEg&E0SWwFL*2!wdwC%toqJ4>XM4@1n)$j$cdlk7LR z`i6!e!;YyFiCIYE_xkDLj~^3Kg)e_d3p9T!SyKcCjue;rJqaK=c&gLaIFTc zgbiQ4XlVlUbBFc~8vgSOR~xE0n+5NZOsia7760g6gGK8sjG%;>N&C%3!EO0Ed13yQ zz&f1eXizR|zJ;-h@N_X_KjXcB84*v8qI;!89_aJAk_O=F3|ra3IGEEptEQac>I9rW z7Xj!$kCRg2g+ptEf88S+8g4IL%QBO$KGm-havro!hodHJm2aV1YlOZ?g-P8&BQW8O zS#yWOc_wf;FDt7aP7r!FRG&9_dLc$7=HfrIA)R1tEEa#kVk95%Oqbhr5UX5nbDsQ< zx|TC6NM7B{rt)|R_pGWrY1IER@xQbV;Zb|iGXEJ7h1xkQF_)K5J#qoD`6fBYh4NpI zIK86IsdHvF^|==7g0O+d4fDgD%X`^`t6j-7!8GLp+}z?Y$rqeW98T`yRkf@dx0vPZ zgnZ5!wz^`URKQOKw}SH|9q^tJ5qCwRK8aOydq9Av!!cl(>$f*!35Qv0aMcNwaoi%o zCK#ABK6HW=bG)rHpWlFsI2Ng2`L#!mc9_j8e>lTxFkP{&k+}w)%yCx64|^&@Z*}vC1j813 zVRgA#L;Q9OyYJjsRrX`Ja&pHWBl^r0$vXWKE^dAgjZ2<>m`=N1i5(OUzDu$+lm1}a zGtbB#y~6s$tRZ1LCRKiXPvr=qVN#Fr33Vn%4rSKkQd#hhA3)ZlsA6E_W!oh~sSFD^ zUc*^Lvku4X`+6%xF{EwQhZ%+B&-LYN=eF=RP)BBSF`ui*{!OMTiSG)BRxB1HC{44n z3213i_K<#{w^&}pBDFb(S4UD$#2~;X(7)1BvMAILCKhodrJ@{2sDe*|Sq-@3UkZEn zhpLI9Y0Y!j4d~t`k}N4j-VG~>B<1(H7sytI1Rt(J;9(Ihcep-%R{{lXPYF4Hq0-s~Bg>N{V3^+V@b05iM=Y+N)t+ zH$7i5N}Vwq$dwww8K|H{lJcqwh8DHq_F7UN>f_Mbg^?dI`{W|dgE_9X4Tx9eKHD#^ z?#^-_!hUI**&ZmU@V}dbpBKFqcK!UX0P?rc(9iq)i2wZ~+Zua(k)7jE3is=MlUV~x zY01GOOiZF^a5IAbN~)`_Y}K-|I-D}WV1+$4a}k`9!j+i0r@_5~&i@5JUcRhpA(?3M z%o2MXwHNfxKePb_2ZB8A{u|$jprre>T~IQ1;X_4)jUAIRm6^00$3unMwR*TS$;Gt5 z-!@9-sjn7TI|`v1vzvwp236IZu914c%`#PEurl$7%^OHNJ$MWf=wQGAB#b1tjf5HP z=zHpWUu(1GxMmV!luyLeEKg#y&Hfg?+Vx20cAEbA$7!9bSsATANY$a0(JEO$GRyKMnJ?F@iD@OR{`J%PU*@m!kMpFOXpO| z{)Wel1w6SaUYs9IHXW|%TqRVOlm~IG|M{dw`kX`4IN3gFK#IOtTH_(++L75;SDkXQ z^d0RO<$#Ww@OmjMV&-Xc1F*h}7`sltGKj*mre3T>?^!>3xc&P6pR#Z4dj=(QZ}S~X zoKD1+bz&?;t(@suf=A2KK&$C81h1Jry4%P3VJn-|P3z-Xe(NO}*%bBA2FeJAUm_1= zzI=&aq8V5D{P9c3o#Qw~APe64M*_`Qj=X>2%R;f!%`fP5=Or>N&2WhEo6z+&`#~w6 z&!PQv6JGyw?e#H$S^^xmHcl6BBgpaFTN!YPX_B6N-M*g8usnV;;jh1n=Fys-N`_3; zCFy|xm)luSyRBj&dMW0LUbPnAX<`c{79?-Yp8TdtYAw!=g1i+1?8Veb?{a7|Ii_Hg+l|0xr zG*9~M4JeDJ(>=ielrb^h^LgzAdX@VMGBl&GuhMewok81(>qo=~;pf`B-E4z!EjK`N z`{$c4^mM|v@pBk$7US->1Wu~nP|Z`w2zyp9s*kzuf@k)YqvP@t*iUxEr{Q~ zn5keVc7@oII>9A^b&NK>Et{5LU4)Ytc}TR7Q(a{Lj%H~?3hU$-J;KS5Mx?YgpB`(t{ zfAVCKj9kMo>mTBwrfVNZMKjch%Wj7amf(1f zu2Xu&;RvxM&GnDzS4WUM5o)r}g;<4KC^woyKYP=)F6Dv6Ios5Mqr{dcu7B+N^^p&i zTD=fzl*vtjmMWgU4P`s+V6o+5Bg$A|q%PFQpadsp3$z*KHK)iFpwHKZeqJ8P6W9^y za4sb;!L^~QblgiYWUYB<3TRqjVZ`TKRQj78;#j%C3sJNOe@~tJzTlaBNWVu>=&v96 zQIg|gUEU6yMB;=)nrLAEg-g zPa2huXi>r#+C%bdoyZdK@4rEq74We>iJ74F_MT(+RFMIRz2BQQT9B?p9gnew@EqL! z<7?0$0=ta%sHWjSxe}dCN&g9(fzPs28GNFd?HOd!OOG_D+%mXPH!KUIcI~%_%u||HB|;!7p9Kb*Dn)P~ zR@~L`b075DQNG73=u*!gnk;YliWUh=7&od_9ayvciHsK(icnW1MxT@^^&(HrM7w;>>~vXLi{xl|6~+8ha`|Yq^Mx;3y7lZuuda+(NbHBTHf6hN zKGb(7LkF$zXwTJC^mNw#46Fh4e^^@{3IH3157;aGh+<&*i8UqJngPYLlDX4!JmL}z z9Nw2sida*OvgU_=k?3{U-c`k~oo#7#6qI=J=KJvz9&#$JxqDooOulE?VvfahDegB>ieMVQg3EXqno5diAD6 zk=?DJ*ygcMENBl!xQ1=Z34xwjx~qE@J@BDSl|aJ=HYvq~{47IMjBHekGsI#!*1NR` z%9VS(Y+yt@_d6BD(i2o_tJP!pex?u)$~d22@&(7awiiBW@PM8Q&(W1q%%PM~Roe>W zR|=F9?*<0(=Y30fN(g+^^1A&lMU~V zzIZ4$$|&aK^m2ZU5i^2Oi(+O}UD~mpI^ua3+C#oM^Aoy{)?*o6sl#Qh*`O;K0Z~rq z$Hrx^DX3j2h5OzX*v&I@_(x#3YT$+()m@n~DnWjau-Kp?uNOVJ^QUAK=1xQl%N$P~ z)-a{$d;_?5Usl{(3IIQP<=1B#Rwyoa?TEhoGFi)t-m3o|Maf*O@|}(8`4xqQ1=8}q zxAyF}L%CbtrsbVE$F#1vo9!)a|QRg!fn{ zdlmSjN+7pRnGSd}%1CzSQrP1kf`JEnN}FU6U0HU+-+EZ@r6t`Squ(DP_AVkxiS0O& zv?P-H{P9;RG$Y`1bwueyW+XJ6eD!DN=-SoKT(Zf->CnwbuiI5l5q`)es>5Y8+k!eg zu9%W?Am*_-hiuwXhEZ+k4da&k_dvDolR!1UH`pJ{+sQ`E?RN!T`{CpRHW#CjO{ulY zT`l3{Nn%Uv<8AmZQUhHI?np8#^{OIUg5F8|X*nx@phi5{J)9V&D?|85G25I6Y$*eI z_lsnAV1}n_8+2xhGHJ{Gs1a5TsjkA;^1W)vCAIRowf^+9dYr3Pcs<{~>u#GB^}I;yTBcR-dBuDP zxmD1XyUY_vmP0t8Nu~aCK4T@|R;URDtJUdjC!jQlvjBL}}EbV}3|vKb~L%M5`nIX^MjOFGDG<438> zx#`87&&k%&q8wY%&xQsvBB3QCH5cqn73$z+v@a4{I!FGi;znOe>s z1{b&9OwGo@`blXHTKVpA9_2H<1>8pFnc^R~`&OF2lQouE9w%DxeVLk&r)>$>L!N!% zf?{qeDk;uRh7^B#f6m|7-1_!rR#{P!<=za>)>cOF?8fYN!@S__a^7OQPLapAypa@d zr}NKzQtmLv&vjj&Fzl|tS>2zBfKZYlHzd!u8h{sAOE)vRZGvKZqwe{(P0w>-W>WJx zX&coWZ%0Gl2sgrWxDAl25RQ%N7a98Z@f~AyRFWbv3P0YQURk>1nu~wQAUzvpB`xxt{F(U5q^IwIpW_wbjon+cP{zR z79%z@YfwIF!%lFpeYyjAyDKi|=vnQXnE8YghB z{lm*~V)ndv<8^G&Xp6SXrzZp&!5*?1UjaYG;0R-EH)r+!#!p|~2Rm}DNR-!yD+S4C zDa_Hn&PnTcS`I-1O^03ZVYGQv$l;C6_N1AR!(S-5xBdq^Slyd9KBB{a!1lq)mholb zlCAIRNM-#c{b%$hj+Fw{6=L&?i-yRfig68O1K*5@CG%$V&}59_`uXYa{XJqkgbIPS z1dIGyl;k#jg)>eMdA9_&xz=H_ik7}z1%hd&Qimp5-tYZ7Ct_IxLNk*^2=B=ai8Sd_ z?&i*5=B>H*+nS$h{fwC_bD+xl=K`S0bM$d|FjFFW&r;<@Q8}HGQT*sT0>RKG?~?x& zfuUAiJTBf`!#;)X*O&}oNtf%jU8k)H9*JHuH_C^o+_v@EH?C{tJ>(7pp;w`?5Kki4 z6)r<$+whY$s9hVy3QW1uDUkOn4fl`Mr$Q?IJwW=)&Umq&4L=d*63kUSo~ZlQJZKG$ zpPxpI@ffQ{ebR*Bbt!7z&PSw6WD=L~s1cXLmI(Ofgy;ae8~IO*CbFOfCHse=N;15GoN=tgfHWD{+}BM8)*V9L z)_!!bhFagru=+;-DxnA^S?*<$68CJUm+Do!4V2{Aj_|Gi zds_yOdP9J8@UWe^XeOPMsr_y73}WXqDjOx}Q?PU-fgbnGL}sOzF@IB8AIF>*&2b^W3BndvTQdvZ&^A_+T?eHW5 zXF7jpOQD!~83m&jo84`)>8_Xf*_IDFLmR2K*?R_=;W*+woqYpjK)bFv>+TZCnaFwX z5bdg}%V0@owflwGOTM&%;7=1V4&}9vaS7;NT4zoQR{nO={1KY(7ZOEWLG#RPizjst z1lU{wf+U;eA6Kgr7E$&M$OpZe*3w&bVLkmsC7c10gj4`EshE8gul9e`I@*m4_%=DU z66NzL9_mc*Qkqo+@OJn{N$gwn`NmLicz~Hl` z$^Wal`S8#0ur98qUCPkgn>Rq`Q;j&3ap4}HQR=kLzWapAg5Whl?tUjGD~B`%BV=R@oP@z-j* zmEGEM#N$SZt|9;5?%&8V$TpnpZAN{@CeWMF$c8fNi`k4CH%?H-&O_^H8w+vpUhT+jYtEz7-y74vt2Mz# z;d@fQMA*4KJVPT}XKZZGaVP-FfFbGc>!&&LY}l`-X96=54UlqD)W;5-k>WB^ zKQ#6aO8J%OZ@0FT#525ckdcbHvxusI0jWxSODB69u;c7{#3cdDJ9M$9r#d5!W)43M^(pm_A5$d}<8?cr)?i!g6+dv*gxJEzlBMl?6J$VeQ#VpR{LdqL ztoY~Iv;OCwj3jrQlD5a;&q*jzNV>#aA`a>dX}we6V!80e3nVYTo!VH+58kmk7TEl5Q zxf+=Kj?(e|YYF^LY(5k{MkMHFd)2L99>wSfPy^xK`VkJh=!DvByj<6s<%kqMHL>SU z8;>8-r&+T(G*|OQM1wI1#ivUg^2E>Purp*p2Mxssl`#LA)4U;;;-;>HON#V;OQMA+ zhjYaQ@Qj6N^;VaEc#nmS8TjBlIq^lTVMa)?vqpa~^J|7TGN%TD@0o9Sk%l@ACn)}g z|Nl0n^>mTYa(t|n0WGIAX1h5V@0o2zL-9|aL3{eYnzjQJw3CE@shsIQC2yW>!Kx7> z2SnEKxt*Swf3cvZqwrT_+mFI|`rsL;2OE(#C(KPwg}7s}PtT;l9ot$Td!ynODv)aW zK=FMNZ2RprO;Z7$0sG}R*`Mt^sllP`i5>5|8iYae%eQ@sC6}F0xl3~H{Pkw_-c#Q^ zm#i17J<#XjO{DSGj<5$W?QaH#%AsBb-Gfn*UbF`CcMz}s%IC413G*3t;8&bnyhg~B z+dK=*_;*f$T?Ep+FZC4+gLPTg)n_@Zj_|qh4GpNe+^we<^8oICPKFgIh79=5H=;Y* z>IEB)8Z&)+xXmfkqmZD^EAt6VY8p<_F3g`1Jug}@`7)>FbgWf^7S}P#bEb&x1tXQu z@q+bVBG?TK0!8pGa!!946t>CKlz`u^Q!@X}H$4@pyKtu*;b*9h>&TjynBgGws--)c4fa{BccV6mN8X&2GYH@9~ zm9^H5Px&G?tkMm>Q=hmO&5s^GjS+HUesEsmETS#aA>HPJpqn@?WB?L| zr7B|~M}6J5tzJ8;yxt+5VSgPfu)n4Gc0z6qZbxb%5T+*X$SyMLIHf@ zvq*z<1tq_|)z5twcaOuC=b99j64AF8PEpxdql=hD-Oi1?iha zPy3cq3dn9L3vq5BQQ3Zz!sybQ27ll9O0_3Fx`;r?vJpfC#@T>G$r0-hzWw8Vqr}+U zm-l3@{kEdJa09Bo_H&;B3~nkibWCT_BVCnL+SIV?+3o} zdulbiPxUL~IKb;&Ptlb|eOLWK6EXMs`}t2{4jYHVBG@==E}-Aa^G=oD-a_-x0A)E3 zJU||n!qIm_hW7bZN#I%N6vblWOA)Fu462ol)(=%%v^1yU*1r zjE!@Jd*C{yRvt6_TzVg>wp0OFOJQWrEW*50^%{QTSm%V^JAX0L&#gR92}m-`a`+KK z7Yy5~vu{h24@|9a0ger@I9Cht+r_A1&& z%eokIjWsHAU|amdEyh^o2Zl|O=yaF95u&%p5qHk0=5SU)&U|Qaa!8DdM>`xx`ndO} z%PzKw$Vn01g&r83xrIR7oV--8&7?s>NT6L40^4~E;ZNJ0Z$rj=Z`m(Nzd*$Pxc+sS z^&06Eb%W;NpxUtOk#Vg^v_SmG1p;SmG!8wWaJ473%|C1b{_(?}Am7T72CH!ONbvI? z6LWKs?@TGGha|lAC!Ww|lLNmlPn!FBDB$g+Lu_kP%nV81*V0QduZtYwVviYo*Mr<) zlT)P~aitR6AyE%Lr%7WD@FXw4g;b_-BT>rakMa&0kkocc5j8(FK0&sPmI}SGFKoUK zJ&!O^r=KoCocH+$KekBfb+Qp$X(C?qA*%y5pQ1)so*Iy(t)zhY z>Ew^94n}z>?b0hXkHy#u-8%BOaDHn;(5|W#*AurPCnes{f<80mqyzo zUuSmbFA%Gx5a%xcc&6XND-Ig*5Yi;=of#IK>lAK5f^~7}|BFg)QyHpF2;ALSq^4KZ zatEk1d^XT*<0fnqCpxdX51ol}F$`sdY`GaW4W91IrE}IFo;vYT4G5SN*x4283I-w# zHMrW(S%3aaq4)Z@=n9R@XEpc+eB{BU6fcomMYtAC4?KotaNQKea2=`WR1+5~r^WRO z1m^0Mu_JuBUnmXuPBz=t zI{8ekd-SQ7xa-%)<^qUQBkS77RZ+1+@%t1Na9o07mIn9{@LZTW2$wH9=Bu%w3_0FR zhZfl`N?i$N=Q!P}{}XMcD?u(rh(9>^bJ{SV`ha7R znG5jTCVMYh*h(Zs(cFit?SA2|_@mI3Eq1k6K!H*Xe{g8yx1M3Q>LVeAJGzS7I0DW2 z5MqNI&@WT~?ZUP0?9y$eM#i+;OFN-qEwm$!bggre%g#@V>i1rZL?&d^d3RXG5(Mtz zF}x6d&Z8e6+7PWUx(Yprt=S2@$PRB8+dyfpQuXjPh8wL%4-KFb7{oc4sW)=S-XB?_ z*`Tlw{d2$6_~XjIj!F;$!J($mK9{9yF84ZcJczuui`U07**WT>g)F;+GX`#WObtxD zBLS2=m*;wF7lV-oGO~oc4mEz$W$+aojhdHpq4OTDc}u8{KJfCY{HnV4L!<<=!Rqs% zhMaKQjXK!j*b#|44dCYmu4aAq?=VW0%r|&)RH}segr1?+?|+$7gxi^|54O1#{82Yf z)LG3BJupTpzv#49zqfNOM^(6#nsM^)!fZl0rqq%hUKFh8gBQ&t&>HDun63 z@-<~tbtyp_fKMnh3S%R;Q$HF@evB&o6RpE;ez+on3Iads+^gW!`{M4lKlMonkeWkW z1*Jl94+}#kIJnUqmbpyw|1N})ksGQc+&38FoNjrC(C|G;oVo_6!=g#q93`wxJ&mw= zqs!zEikDImELuDC<#n(DC{8+4mXWIbtd+la9nhu5KN~|YXpp|~)BHe53hAEP9lP7x z*NextwcR}1%(%c=$PyrPo3yjsdkZNROBpBEB9(R(Ym3fHqVZCNZyvDvFz_kE)2$1h zKoM9;i*Ifl-P||urAEt67tgV*YZ)T>yOD9rPs^_ZCr|HE{s#smG<{g>a-~y5o=}LZ zP7<|-N=Po>q1j(X%r*0MRO?suaP6@oBi>t+e_y*-*8m`NiL7I+OOKZ2$2UXOi5kn%FdmSNtT2Wvm(D@PFTn}=%*>n&)VFU9P9bQ5b#O|{F0 ziglT+2(HPLTJDEq-%<-)3g)7#%#>4jq93b!F0f9WnXx(Z@oa0LV%P4OowN;)Xo&82 zoAB-3i&SIk8egOM6ZJ8)!KUcE_6xt9spT1}tVt;B>qS)C?FOfUIg;mbK83m&49j!Y zIPax@_74A?udT>kG&e`1twRcql?(jw?IU`RMgY{e-A#@7;(D#{+{FOniz9{qG}dQj zoM%LKNvH~n7#Od>aRY>m&>MdW@>Vuw8o+p_TMrU==P^YEyPv~FO#-9k|*oJoccmxlSfOY$;gB|9)tP+ZP>Y+ zVTq61v)D2$BtS_ePZ+&m)IO_vld)^)I$HDwg)JpZ3>(^!hsdXCbS4>x8kx8X8jYp% zKf_?VFA1a+wpj-z?&nFhWw~CUQdvir!g@6H-;QLX${f$3Lf4JVR8nBevrE=>n=Ru^ zDpcAr7c01P>+()M4lSxEiBGzR_^1RzOhf@4`(%W%WGVM8nUJA!i-fQf!?uv4NauXz z$JEjv4mv$buU=C0g=O)d$KOlmtde8~A7_f(KrxOy1wsIOLQ+JU?R{@uh$9yhZhh0Y zfq9=V|BV|vf~HLt5_tp#fHz z&@V~j#PVIwx=&>lah5+L2TBp1s`bL`MihR_KlT}t8uQ*Tws`UP$XkDKB4i&RxBN)a z4VM9TcLfI`IxqNL+_=*X0Boi&ezgbVv50&mYY54-eR*MEwJAr1M&{QT}{# z{aH?=uEXmb`F!Y;8$DX@s9?fUUt^~jSAUAuUB{&b2>|iwpJTNSjhV$f{JNh$8DX?s zfyDeM$u8}&%}N$Mb;}*&&2P*> z>(!(;1%?mQELL?AioPY?IGxh5n50$KW7fY3`j@4=VvDm(S=X=5jT=Qbl#e?y#S8Dq zk82~Z9T+j|7tPGh@mJjiQu3HGTUo9OwLGPQ*aAGFD|1HH{YYw{9`dibhwv0(SzAM$ zNmqDZa>=+>k4T@KehC=%MxJ@YL{C4$+P6cAp5fgPF*WPL#0cZ2h!$E%qJ=UGwG?nR zmJm~uj=Q9e$GI4Z6d@AHD|x@@xT`)R_RdIxposmp`qaJ$B2I)_sELdJY9u zh|&IRV&D#YA5*k;UxAf)5?h>Xdt2H?iL#U1hTKdY`Qt7fm!~QndbW$1O-TceF7@Vb zbPL*VF1yk_E03G4eakj7BMOMrZf9jfRhO|$tM4957tFUyJeN1TVvL>S1iowVJbpIB zC-W~n-Ye&3g}eSKO@Fj|bJ8Air82_4NW8gp(OQ(Ei{biy&qGyKD(_V5BW^8HrpNI% zV=0SK?G*tQwx4LXG^qZfS_v+!10zo&-TRE(32<+kgAK)ZmwY;Ik5`4)L=FyLvors} zA^XSulv|Tj?r~gJf|1g9K`iFG!yiQFh~c9D(Z$%>iiMR|FjhDvbDAB}P`A#{fiy%Sc^YCUNii6 zDub6Iyq?6Z>VB00Se3{baHv{xeojyOWx9s#o*8aU>y)!gbf~wKqwdL z?@<_JC2LyrBN>5^&(Kd%>FfE1LaQEeVy_7Z+s1y|dy!XRuUF=BHN|f%Itdz4|Db;j zJExpnHn%fkuty3McQtZjzbfyhJ9n^kFrv zxIsJ1bfTbG^QIwK797Ebj>7m1rMQWVEuVS7(Hg34@xLP{w9}`#9>FTbLk;b;!T7@+>cr447xHu zu0SH-8Coy(#QC*TnvoKV$>4l0y6b z2o~W~ek8~|WhM_u<1VJ$7%hucPl!YF0ExVz2M1f1Lcebn8vfj8-VsVQfZ@*fNaS_m zM8-p12Ya0__iy+s2Q4q+ThhK18Zi$LMeg|wEvNJ;OYa8=ykyq2Uaqj+G~vF0hk^OR z~757`X^sPKP(oWr3c6P@AY8NMg1*bfe$$pF@` zj|2e0hI($l+!jaC#$xO_+}z~#(_QnMo)7w~U)QVPlVtsk=chSa3Als5E8a`wtvX&|1`0%EXvM<2#X#vWC~cfGvMpLr|CyDZ?t5G zw5F;!m$q&Wob^4C^!l6hmr3+yCv}D1>yt;9PWM|8#vy*lo1j^r#@58-!UT4G-`MPZ zeWwQUt0X?|0oAkj>^u54b(x>DwStVdH+=ZA2+gS;mkPu5y-4|tmt? z1AomAlYN;@wr{70gQ-_?$Ph9`f|^?uj&nQ+#NQ+bd`z8A*l#_wp3OZ61e~K#+EFOb z+%?qmqb>9t@7ve!Y8eiH)7SYO|NZ@=Fd5F{#N9BdRTCKEN1S_$UEec8b9s3c;qKot z*F|1_H^7W-q!hCqV|brLhRlGjQuh3OXEiT)?s(Y67%Z=I=C{*7dxzLE*~dV5w?m`` z)*LY82;5zs9`WDEjQORdN62bLQv>Av+hKnR%5h1pbNA0c4MTAX9N&%lr|&NxKHXQ$ ztP*K5M7CFT?hv0r8IqDn{#2?(Ifk}8b4xD+q859>ECMi&PTf>%KRG$BX+bKou)V*b z@cH^3%8rr!voXI$K)^x0F$S?n5W|l&QT5{uz;Oyvl!nF|`6Trh&SnMA0>HkbKU6AT zMIAoyIrZ8k1*}}iflKaV2$J+#7GZrx*rr8PT`s~dnmHCfYFx|JkAJY$IzDm7a7|v4 z**GO>KIM5(#>y8Kp!SCAeJ~S+&SQ~-ycOTxR{~tDRmw!}i=Z9p9^i2p#Y{sy(SnY3 zl$AMpRc^l{+kEO&S{Thkel7h}B6iTw!lJ+d`CdJ5V?q-d(#lsK8XWBjN9G;hS)2T~ z?A>e}1~3{hf)N_Uq=(f`X0NRSKmq^%cO~`{Ht@RoKee5(II0bbGm=6zG>ZRSx@dYz zVZjV2^HxJpy;xx;4kMLmXbPH9klHmg0=#+t*!ETC1q`W@ejA#VfB8xlC^hhufle|V zQrR>|lBO~Z-RLgZd)pOJ>Ng*OzDE7lD)~ioxDvXlxY*4(x&4=EaFgYPv((zegMHQh zF-4xNlY>1H<{U_F`1?8TpJ(rDu^3$GF!w!UphPS^ywOUfDg|pbm!-k%`l19Lsz!_Oi3gl=p2 z%Klm^VCW}madhc{I_}t4$)@Tsari(-M^tv;h}c@L^(A2f&GNfN7h5>NzXh(<_(WVIb~jgzx1IM#>T>ZWsX7s|7L|sR8~EvFYN0S8f~7h3aHZo z_Jbp@m&_pc1}5J7H$OqfBkVa*=qUZgN+S>VL7v7lVwsgDR!?G=hgKsGTEKGh-}(k5 z!#YAy9JJnw9jr1yA`gjLB1B@ZY*2OCl#BU8v`td%@@AjCDO!|@lrH8@BG$7h>Q*tC8|MH zH%p)AC}TJldgaih_EyaJM-2_e;)~BNx{-|ZG>~p$FYLeZYZX+-8ca>h1V7V9c7|n1 zSnraEu5oZ6>jD>npgN+moT6jO#9V;^GhaR@Qu3-JPgq`q52qsxE#WbSnj|ub8*rXt zN(1?QoAZdZte!?D=DrvxUdi*j|#CB+ZsZ$zyv)~1bA3bBm<6{w>wwB3;BW< zlG0GMItaB-+N6lz=>)AwIFT@p0?fTS0Ye`5f@E(Lg^RJ`&|=KRd1xDXwi{rC0V$Zx zfOL6BPq9Ecods^=eu<3WmL=u7kj$;<6!HPFn&ZrTW6p9BoX%}hMI6l{Ztioj zYccNYT|*~yWm_r9H5%Oz$W}dDjC|{bZ1&yS{~oCDkQiUxRL zzK1C1X2h2NJuB9lOOVmUHAnq*-xVf9DMX_Fq;;zj?!jPO0jt}=j^HiL(|2MjiIKSH ze$&K2|2|zLO5(ybyB%}Z3=Nzcn3=4(oj(7PzKdvKa4Ko}^q45;3D0Y2hk9P14liU} zR>_Z0(>KAM5fb<75dzK1oTS8)kBQ6Iguso<%?~{PLMF~8k zy;1r`-uKn!1Xf3(MS^i^L3yiUTi9ip!v=SQy&C!ua*OZXHLMpO#SF9BdBkjfA7THl z=L~`l!&jW1tNyn~IwNURZH|}yi|7!Q9W5MA*en6MNQKPEN3s2j^M_2@$|pk+g)!D& zNZLn0M$Bk1M{-|IH#)Bp%&mV@su@R9hVP6(+wd_vf#hlA8;b-T(s;pFp)fF*lWnnc z#;yJPpnX(pej}wmQM#T|zYw-qFMVR)%P)D+t4Omm2H>AVcle*%!<#Y2vKraY0gc47 ziOL<8*8zI$$J^FIVZM<#4;TC}^@6(KZwFph#^UVT*8ZWseD@j_&rh#iH6-haG74QR|*%mD7vUp7yFA&057cBDc~?z=!t6+_&+&s#hJ-o+D24f5pXxt2636YwgwVj;JeU|Jd5v{VkM*LH(VSvD`R4f{6Vj?kXkds zT}4(4S$*>-eFYz2?<02}D!#*Fb`Rwa`}S#kiQ2OJbuFgU0Ega~0V%i4WCVRXhno9n z!w3v`YCo`@XWq~r!ofHG?%o=5`)LNm9X_W(SUz(9Qn>?%n!ra!Qh?`%OK5PuMpQ*O z6faPvh2%M*a>0i99ybUlLRL<2erlXn(C_;`4Zk8N`ZP&Zx3By5)AmkkpVoMGh<$dL2rqHgr@|8Hm3cy2~Y|Pg)#pg#D36 zeN+UY6LKvQCH+@w;(qHKADjMt4en~KnmsDt5ldd6v?39Tm)$r?Ke`f0gyHsl$Qd@E z6xpi$q6EIA-nDE6=#WiMq)iDlPcjMFr(DnQ7$!ux)7Q;=nS9`9CfW~qy}Xi9-f13( zwfWc46nxPeT%S4>S*}O{vJ|9pV)l1h?jqcmYR<$OkQm$CtXLWNo8U-?e@W~`$-34^mev4-AGES@jH-&_8l-zEZ;3Qd z$_aAYfjLB)UpvP~4y9j3Dz4PMx>Qqeu;)PW<*NVFXlTzk&f69nHkr)H{a=FAv(yld zi63x&R6TW8?<+mz;QXgU(%_wQ*C_!!ykK`*qDom1~sSclG{o@`m%5Au7kN>?G8*y_92O zc*E=e1lFT}M53YA9=g$tmuO$kt8B5qFHi62x{nQOkhDUz%L}ecySj+%8S9~E5Ny^Z zb9?oRWpj*Ub}dSPn*{aj<^RhCuzj-yU*kMkzlhc_xENkbndtwB z4L5h$WV^^@d-X^yytvNCp%}3n=!1PkugE!SGV+$Qm2HZ~U%&@<|y_fDYP z+smsv;0-`Ifmz4MvFZ5ZgDD5=fG8xEPif~KPN|>*&j>!j#U%v%8~!3!y7rSw7HT{P>SBWrrEpdRl}Gz_3ud-;t@fI z4(}}%|FG~u?{?6YVjCtXN%x8R`>`;{f372PADg}vf3t1?gPy8d|CIFf`zttbyUH@8 zg=8{7UZoi&zkWI8VA>CKhJmqsJNY)-C^{q2IzwTHbB0lc=gMAJza(1N)ujq{6+YB7 z9!U^*)`=xQaY&UgGcBKB1Mn9ERi4`@CzSO6V-?a*26Mq`YB=O5;n}^aUw#WT<4#6{mia4wq~Iu`Yv&x*OV_fwl!o7xb9`yUSh^<} zaKTPvp#mUP;RQm~9TwIzJRITvrHLJU9lEv{G= &cpa3$Z(37ZTt&05vIWnMgYp(vUU@ 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 &yxGJygv_Wq=`2y$%V? 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 "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat" [ + label=< + + + + + + + + +
    chat
    chat_idint unsigned[10]
    chat_roomint unsigned[10]
    chat_xchanchar[255]
    chat_textmediumtext[16777215]
    createddatetime[19]
    < 10 rows0 >
    > + URL="chat.html" + tooltip="chat" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xchan
    xchan_hash
    xchan_guid
    xchan_guid_sig
    xchan_pubkey
    xchan_photo_mimetype
    xchan_photo_l
    xchan_photo_m
    xchan_photo_s
    xchan_addr
    xchan_url
    xchan_connurl
    xchan_follow
    xchan_connpage
    xchan_name
    xchan_network
    xchan_instance_url
    xchan_flags
    xchan_photo_date
    xchan_name_date
    xchan_hidden
    xchan_orphan
    xchan_censored
    xchan_selfcensored
    xchan_system
    xchan_pubforum
    xchan_deleted
    < 22 301 rows35 >
    > + URL="xchan.html" + tooltip="xchan" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/chat.1degree.png b/doc/schemaspy_hubzilla/diagrams/chat.1degree.png new file mode 100644 index 0000000000000000000000000000000000000000..05183cc44dc558192a72ad7f9011f011bc71f4dc GIT binary patch literal 11047 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 a@o>JK^1PN^3w>-#a{HEwT+U6Sfd2z`TecJc literal 0 HcmV?d00001 diff --git a/doc/schemaspy_hubzilla/diagrams/chat.2degrees.dot b/doc/schemaspy_hubzilla/diagrams/chat.2degrees.dot new file mode 100644 index 000000000..91fe54058 --- /dev/null +++ b/doc/schemaspy_hubzilla/diagrams/chat.2degrees.dot @@ -0,0 +1,413 @@ +// dot 2.26.3 on Linux 3.2.0-4-686-pae +// SchemaSpy rev 590 +digraph "twoDegreesRelationshipsDiagram" { + graph [ + rankdir="RL" + bgcolor="#f7f7f7" + label="\nGenerated by SchemaSpy" + labeljust="l" + nodesep="0.18" + ranksep="0.46" + fontname="Helvetica" + fontsize="11" + ]; + node [ + fontname="Helvetica" + fontsize="11" + shape="plaintext" + ]; + edge [ + arrowsize="0.8" + ]; + "abook":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "attach":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "channel":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chat":"chat_xchan":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "chatpresence":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "dreport":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "event":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "group_member":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "groups":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "hubloc":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "item":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "mail":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "manage":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "notify":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "outq":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "outq":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "photo":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "profext":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "register":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "shares":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "source":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "term":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "updates":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "vote":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xchan":"xchan_hash":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchan":"xchan_hash":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xchat":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xconfig":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xign":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xlink":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "xprof":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=teeodot]; + "xprof":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=teeodot]; + "xtag":"elipses":w -> "channel":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "hubloc":"elipses":e [arrowhead=none dir=back arrowtail=crowodot]; + "xtag":"elipses":w -> "xchan":"xchan_hash":e [arrowhead=none dir=back arrowtail=crowodot]; + "abook" [ + label=< + + + + +
    abook
    ...
    < 1685 rows
    > + URL="abook.html" + tooltip="abook" + ]; + "attach" [ + label=< + + + + +
    attach
    ...
    < 3105 rows
    > + URL="attach.html" + tooltip="attach" + ]; + "channel" [ + label=< + + + + +
    channel
    ...
    < 112 rows14 >
    > + URL="channel.html" + tooltip="channel" + ]; + "chat" [ + label=< + + + + + + + + +
    chat
    chat_idint unsigned[10]
    chat_roomint unsigned[10]
    chat_xchanchar[255]
    chat_textmediumtext[16777215]
    createddatetime[19]
    < 10 rows0 >
    > + URL="chat.html" + tooltip="chat" + ]; + "chatpresence" [ + label=< + + + + +
    chatpresence
    ...
    < 11 row
    > + URL="chatpresence.html" + tooltip="chatpresence" + ]; + "dreport" [ + label=< + + + + +
    dreport
    ...
    < 18 579 rows
    > + URL="dreport.html" + tooltip="dreport" + ]; + "event" [ + label=< + + + + +
    event
    ...
    < 412 rows
    > + URL="event.html" + tooltip="event" + ]; + "group_member" [ + label=< + + + + +
    group_member
    ...
    < 142 rows
    > + URL="group_member.html" + tooltip="group_member" + ]; + "groups" [ + label=< + + + + +
    groups
    ...
    < 310 rows
    > + URL="groups.html" + tooltip="groups" + ]; + "hubloc" [ + label=< + + + + +
    hubloc
    ...
    < 32 658 rows14 >
    > + URL="hubloc.html" + tooltip="hubloc" + ]; + "item" [ + label=< + + + + +
    item
    ...
    < 337 583 rows
    > + URL="item.html" + tooltip="item" + ]; + "mail" [ + label=< + + + + +
    mail
    ...
    < 239 rows
    > + URL="mail.html" + tooltip="mail" + ]; + "manage" [ + label=< + + + + +
    manage
    ...
    < 10 rows
    > + URL="manage.html" + tooltip="manage" + ]; + "notify" [ + label=< + + + + +
    notify
    ...
    < 3528 rows
    > + URL="notify.html" + tooltip="notify" + ]; + "outq" [ + label=< + + + + +
    outq
    ...
    < 3660 rows
    > + URL="outq.html" + tooltip="outq" + ]; + "photo" [ + label=< + + + + +
    photo
    ...
    < 15 888 rows
    > + URL="photo.html" + tooltip="photo" + ]; + "profext" [ + label=< + + + + +
    profext
    ...
    < 30 rows
    > + URL="profext.html" + tooltip="profext" + ]; + "register" [ + label=< + + + + +
    register
    ...
    < 30 rows
    > + URL="register.html" + tooltip="register" + ]; + "shares" [ + label=< + + + + +
    shares
    ...
    < 10 rows
    > + URL="shares.html" + tooltip="shares" + ]; + "source" [ + label=< + + + + +
    source
    ...
    < 20 rows
    > + URL="source.html" + tooltip="source" + ]; + "term" [ + label=< + + + + +
    term
    ...
    < 68 980 rows
    > + URL="term.html" + tooltip="term" + ]; + "updates" [ + label=< + + + + +
    updates
    ...
    < 30 rows
    > + URL="updates.html" + tooltip="updates" + ]; + "vote" [ + label=< + + + + +
    vote
    ...
    < 10 rows
    > + URL="vote.html" + tooltip="vote" + ]; + "xchan" [ + label=< + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    xchan
    xchan_hash
    xchan_guid
    xchan_guid_sig
    xchan_pubkey
    xchan_photo_mimetype
    xchan_photo_l
    xchan_photo_m
    xchan_photo_s
    xchan_addr
    xchan_url
    xchan_connurl
    xchan_follow
    xchan_connpage
    xchan_name
    xchan_network
    xchan_instance_url
    xchan_flags
    xchan_photo_date
    xchan_name_date
    xchan_hidden
    xchan_orphan
    xchan_censored
    xchan_selfcensored
    xchan_system
    xchan_pubforum
    xchan_deleted
    < 22 301 rows35 >
    > + URL="xchan.html" + tooltip="xchan" + ]; + "xchat" [ + label=< + + + + +
    xchat
    ...
    < 19 rows
    > + URL="xchat.html" + tooltip="xchat" + ]; + "xconfig" [ + label=< + + + + +
    xconfig
    ...
    < 18 rows
    > + URL="xconfig.html" + tooltip="xconfig" + ]; + "xign" [ + label=< + + + + +
    xign
    ...
    < 10 rows
    > + URL="xign.html" + tooltip="xign" + ]; + "xlink" [ + label=< + + + + +
    xlink
    ...
    < 14 105 rows
    > + URL="xlink.html" + tooltip="xlink" + ]; + "xprof" [ + label=< + + + + +
    xprof
    ...
    < 30 rows
    > + URL="xprof.html" + tooltip="xprof" + ]; + "xtag" [ + label=< + + + + +
    xtag
    ...
    < 30 rows
    > + URL="xtag.html" + tooltip="xtag" + ]; +} diff --git a/doc/schemaspy_hubzilla/diagrams/chat.2degrees.png b/doc/schemaspy_hubzilla/diagrams/chat.2degrees.png new file mode 100644 index 0000000000000000000000000000000000000000..2434eb6eaa33fdce030d01f0bb93ee83a67b22e0 GIT binary patch literal 69850 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