From 0d5f51b4b5148d638e933ed819417c55193c6929 Mon Sep 17 00:00:00 2001
From: John Mertic {sugar_translate label="LBL_CONFIG_AJAX_DESC"} {sugar_translate label="LBL_CONFIG_AJAX_HELP"}
' + box_msg;
}
-
+
// id is selected index of email template drop-down
if(id == '' || id == "0") {
YAHOO.SUGAR.MessageBox.show({
@@ -5406,13 +5406,19 @@ SE.composeLayout = {
if (start > -1) {
tinyHTML = tinyHTML.substr(start);
tiny.setContent(tinyHTML);
- } else {
+ } else {
tiny.setContent('');
}
},
processResult : function(idx , id){
- call_json_method('EmailTemplates','retrieve','record='+id,'email_template_object', this.appendEmailTemplateJSON);
+ var post_data = {"module":"EmailTemplates","record":id};
+ var global_rpcClient = new SugarRPCClient();
+
+ result = global_rpcClient.call_method('retrieve', post_data, true);
+ if(!result['record']) return;
+ json_objects['email_template_object'] = result['record'];
+ this.appendEmailTemplateJSON();
// get attachments if any
AjaxObject.target = '';
@@ -5804,7 +5810,7 @@ SE.composeLayout = {
var form = document.getElementById('emailCompose' + idx);
var composeOptionsFormName = "composeOptionsForm" + idx;
-
+
var t = SE.util.getTiny(SE.tinyInstances.currentHtmleditor);
if (t != null || typeof(t) != "undefined") {
var html = t.getContent();
diff --git a/include/javascript/sugar_grp_jsolait.js b/include/javascript/sugar_grp_jsolait.js
index 4f759269..8071616e 100644
--- a/include/javascript/sugar_grp_jsolait.js
+++ b/include/javascript/sugar_grp_jsolait.js
@@ -117,7 +117,7 @@ while(startdate.valueOf()
' + box_msg;
}
-
+
// id is selected index of email template drop-down
if(id == '' || id == "0") {
YAHOO.SUGAR.MessageBox.show({
@@ -3863,13 +3863,19 @@ SE.composeLayout = {
if (start > -1) {
tinyHTML = tinyHTML.substr(start);
tiny.setContent(tinyHTML);
- } else {
+ } else {
tiny.setContent('');
}
},
processResult : function(idx , id){
- call_json_method('EmailTemplates','retrieve','record='+id,'email_template_object', this.appendEmailTemplateJSON);
+ var post_data = {"module":"EmailTemplates","record":id};
+ var global_rpcClient = new SugarRPCClient();
+
+ result = global_rpcClient.call_method('retrieve', post_data, true);
+ if(!result['record']) return;
+ json_objects['email_template_object'] = result['record'];
+ this.appendEmailTemplateJSON();
// get attachments if any
AjaxObject.target = '';
@@ -4261,7 +4267,7 @@ SE.composeLayout = {
var form = document.getElementById('emailCompose' + idx);
var composeOptionsFormName = "composeOptionsForm" + idx;
-
+
var t = SE.util.getTiny(SE.tinyInstances.currentHtmleditor);
if (t != null || typeof(t) != "undefined") {
var html = t.getContent();
diff --git a/include/language/en_us.lang.php b/include/language/en_us.lang.php
index 5f532db6..754d5368 100644
--- a/include/language/en_us.lang.php
+++ b/include/language/en_us.lang.php
@@ -1521,6 +1521,7 @@ $app_strings = array (
'ERR_AJAX_LOAD' => 'An error has occured:',
+ 'ERR_AJAX_LOAD_FAILURE' => 'There was an error processing your request, please try again at a later time.',
'ERR_AJAX_LOAD_FOOTER' => 'If this error persists, please have your administrator disable Ajax for this module',
'ERR_CREATING_FIELDS' => 'Error filling in additional detail fields: ',
'ERR_CREATING_TABLE' => 'Error creating table: ',
diff --git a/include/utils/db_utils.php b/include/utils/db_utils.php
index f80d0444..b835bdcf 100644
--- a/include/utils/db_utils.php
+++ b/include/utils/db_utils.php
@@ -199,4 +199,31 @@ function run_sql_file( $filename )
return strtolower ( $result ) ;
}
+/**
+ * Utility to perform the check during install to ensure a database name entered by the user
+ * is valid based on the type of database server
+ * @param string $name Proposed name for the DB
+ * @param string $dbType Type of database server
+ * @return bool true or false based on the validity of the DB name
+ */
+function isValidDBName($name, $dbType) {
+ switch ($dbType){
+ case 'mssql':
+ $pattern = '/^[0-9#@]+|[\"\'\*\/\\?\:\\<\>\-\ \&\!\(\)\[\]\{\}\;\,\.\`\~\|\\\\]+/i';
+ break;
+ case 'oci8':
+ $pattern = '/[\#\"\'\*\/\\?\:\\<\>\-\ \&\!\(\)\[\]\{\}\;\,\.\`\~\|\\\\]+/i';
+ break;
+ case 'mysql':
+ $pattern = '/[\/\.\\\\]/i';
+ break;
+ default:
+ $pattern = '/[\/\.\\\\]/i';
+ break;
+ }
+ return preg_match($pattern, $name)==0?true:false;
+}
+
+
+
?>
diff --git a/include/utils/layout_utils.php b/include/utils/layout_utils.php
index e717d6bf..20421706 100644
--- a/include/utils/layout_utils.php
+++ b/include/utils/layout_utils.php
@@ -240,7 +240,9 @@ EOHTML;
* );
*
* would display as:
+ *
* Contacts >> John Smith >> Edit
+ *
* @param $show_help boolean which determines if the print and help links are shown.
* @return string HTML
*/
diff --git a/include/utils/mvc_utils.php b/include/utils/mvc_utils.php
index 5989d3c6..732a11cb 100644
--- a/include/utils/mvc_utils.php
+++ b/include/utils/mvc_utils.php
@@ -57,7 +57,7 @@ function loadParentView($type)
}
}
-$msi0="len";$msi="code";$msi1="824A5CDE0C0E2C8F04D5A3376EF44AEAaWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW5kcyBTdWdhckJlYW4geyAgdmFyICRtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgIHZhciAkdGFibGVfbmFtZSA9ICd0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcmFja2VyJzsgICAgIHZhciAkb2JqZWN0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAX25hbWUgPSAnVHJhY2tlcic7ICB2YXIgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXInOyAgICAgIHZhciAkY29sdW1uX2ZpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWxkcyA9IEFycmF5KCAgICAgICAgICJpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZCIsICAgICAgICAgIm1vbml0b3JfaWQiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEALCAgICAgICAgICJ1c2VyX2lkIiwgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAibW9kdWxlX25hbWUiLCAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICJpdGVtX2lkIiwgICAgICAgICAiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaXRlbV9zdW1tYXJ5IiwgICAgICAgICAiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbiIsICAgICAgInNlc3Npb25faWQiLCAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICJ2aXNpYmxlIiAgICAgKTsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICBmdW5jdGlvbiBUcmFja2VyKCkgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIHsgICAgICBnbG9iYWwgJGRpY3Rpb25hDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ11bJHRoaXMtPm9iamVjdF9uYW1lXSkpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeyAgICAgICAgICAkcGF0aCA9ICdtb2R1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJzsgICAgaWYoZGVmaW5lZCgnVEVNUExBDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVEVfVVJMJykpJHBhdGggPSBTdWdhclRlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcmVfb25jZSgkcGF0aCk7ICAgICAgfSAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgIHBhcmVudDo6U3VnYXJCZWFuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIG1ha2VJbnZpc2libGVGb3JBbGwoJGl0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW1faWQpICAgICB7ICAgICAgICAgJHF1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZCcgQU5EIHZpc2libGUgPSAxIjsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGggPSAnbW9kdWxlcy9UcmFja2Vycy9CDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcmVhZENydW1iU3RhY2sucGhwJzsgICBpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZihkZWZpbmVkKCdURU1QTEFURV9VUkwnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYXRoKTsgICAgICByZXF1aXJlX29uY2UoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJHBhdGgpOyAgICAgICAgIGlmKCFlbXB0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ10pKXsgICAgICAgICAgJGJyZWFkQ3J1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbWJzID0gJF9TRVNTSU9OWydicmVhZENyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdW1icyddOyAgICAgICAgICAkYnJlYWRDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOyAgICAgICAgIH0gICAgIH0gICAgICBmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJHRpbWVfb25fbGFzdF9wYWdlID0gMDsgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICBpZihlbXB0eSgkR0xPQkFMU1snDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYXBwJ10tPmhlYWRlckRpc3BsYXllZCApDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKXJldHVybjsgICAgICBpZighZW1wdHkoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJF9TRVNTSU9OWydscGFnZSddKSkkdGltDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEALSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgJF9TRVNTSU9OWydscGFnZSddPXRpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbWUoKTsgICBtdmNsb2coJHRpbWVfb25fDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGFzdF9wYWdlKTsgICAgIH0gICAgZnVuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJykgICAgIHsgICAgICAkcGF0aCA9ICdtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbWJTdGFjay5waHAnOyAgIGlmKGRlZmluDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAczo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgaWYoZW1wdHkoJF9TRVNTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASU9OWydicmVhZENydW1icyddKSkgeyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgICAkYnJlYWRDcnVtYiA9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIG5ldyBCcmVhZENydW1iU3RhY2soJHVzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXJfaWQsICRtb2R1bGVzKTsgICAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgJF9TRVNTSU9OWydicmVhZENyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdW1icyddID0gJGJyZWFkQ3J1bWI7ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgICRHTE9CQUxTWydsb2cnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAXS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATE9CQUxTWydhcHBfc3RyaW5ncyddWydMDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgfSBlbHNlIHsgICAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICRtb2R1bGVfcXVlcnkgPSAnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJzsgICAgICAgICAgaWYoIWVtcHR5KCRtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2R1bGVzKSkgeyAgICAgICAgICAgICAkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaGlzdG9yeV9tYXhfdmlld2VkID0gMTA7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgICAgICRtb2R1bGVfcXVlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcnkgPSBpc19hcnJheSgkbW9kdWxlcykgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAXCcnIC4gaW1wbG9kZSgiJywnIiAsICRtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2R1bGVzKSAuICdcJyknIDogICcgQU5EDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZHVsZXMgLiAnXCcnOyAgICAgICAgICB9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGVsc2UgeyAgICAgICAgICAgICAkaGlzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdG9yeV9tYXhfdmlld2VkID0gKCFlbXB0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeSgkR0xPQkFMU1snc3VnYXJfY29uZmlnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKSk/ICRHTE9CQUxTWydzdWdhcl9jb25mDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ10gOiA1MDsgICAgICAgICAgfSAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGhpcy0+dGFibGVfbmFtZSAuICcgV0hFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaWQgPSBcJycgLiAkdXNlcl9pZCAuICdcDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZHVsZV9xdWVyeSAuICcpJzsgICAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGltaXRRdWVyeSgkcXVlcnksMCwkaGlzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdG9yeV9tYXhfdmlld2VkLHRydWUsJHF1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc3NvYygkcmVzdWx0KSkpIHsgICAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgICRicmVhZENydW1iLT5wDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdXNoKCRyb3cpOyAgICAgICAgICB9ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgfSAgICAgICAgICRsaXN0ID0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbWJMaXN0KCRtb2R1bGVzKTsgICAgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAkR0xPQkFMU1snbG9nJ10tPmluZm8oDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgIHJldHVybiAkbGlzdDsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbWVudHMoJGludGVyZmFjZSl7ICAgcmV0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIWZ1bmN0aW9uX2V4aXN0cygndmNtc2knDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXJhdGUsICRtZDUsICRhbHQgPSAnJykgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaXN0cygkZ2VuZXJhdGUpICYmICRoYW5kDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYicsIHRydWUpKSB7ICAgICRmcm9tX2tlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeSA9IHN0cmVhbV9nZXRfY29udGVudHMoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXkpID09ICRhbHQpKSB7ICAgICByZXR1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcm4gMDsgICAgfSAgIH0gICAgcmV0dXJuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIC0xOyAgIH0gfSBpZighZnVuY3Rpb25fDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGhrZXksICRpLCAkYWx0ID0gJycsICRjDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY29kZSgkYXV0aGtleSk7ICAgaWYoIWVtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGUsICdyYicsIHRydWUpKSApIHsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaWYoJGMpeyAgICAgJGZyb21fa2V5ID0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbHNleyAgICAgJGZyb21fa2V5ID0gc3RyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWFtX2dldF9jb250ZW50cygkaGFuZGxlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKTsgICAgfSAgICBpZiAoc3Vic3RyX2NvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdW50KCRmcm9tX2tleSwgJGF1dGhrZXkpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIDwgJGkpIHsgICAgICAgaWYgKCFlbXB0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbV9rZXksICRhbHRrZXkpID49ICRpKSB7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgIHJldHVybiAwOyAgICAgfSAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIHsgICAgIHJldHVybiAwOyAgICB9ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIH0gZWxzZSB7ICAgICByZXR1cm4gLTE7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgfSAgfSB9ICBpZighZnVuY3Rpb25fDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb24gYW1zaSgkYXMpIHsgICBpbmNsdWRlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJHogPSAxOyAgIGdsb2JhbCAkbG9naW5fDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJyc7ICAgJHN0ciA9ICcnOyAgICAgIGZvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcmVhY2ggKCRhcyBhcyAkaykgeyAgICBpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZiAoIWVtcHR5ICgka1snbSddKSkgeyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgJHRlbXAgPSB2Y21zaSgka1snZyddDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEALCAka1snbSddLCAka1snYSddLCAka1snDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbCddKTsgICAgfSBlbHNlIHsgICAgICR0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW1wID0gIGFjbXNpKCRrWydnJ10sICRrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWydhJ10sICRrWydpJ10sICRrWydiJ10sDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICRrWydjJ10sJGtbJ2wnXSk7ICAgIH0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgaWYoIWVtcHR5KCR0ZW1wKSl7ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAkcSA9ICRxIHwgJGtbJ3MnXTsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAfSAgICBpZigka1sncyddID09IDIpeyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQ0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ0NPTScpeyAgICAgICRtID0gJGtbJ2EnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAXTsgICAgICAkc3RyIC49IGJhc2U2NF9kDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWNvZGUoJG0pOyAgICAgfWVsc2V7ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgJG0gPSAka1snYiddOyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgIGlmKCFlbXB0eSgkc3RyKSkkc3RyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEALj0nPGJyLz4nOyAgICAgICRzdHIgLj0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYmFzZTY0X2RlY29kZSgkbSk7ICAgICB9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgIH0gICB9ICAgaWYgKCRxICE9IDAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAfHwgIWVtcHR5KCRfU0VTU0lPTlsnbXZpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ10pKSB7ICAgIGlmKCFlbXB0eSgkX1NFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU1NJT05bJ212aSddKSkkb2RkID0gJF9TDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARVNTSU9OWydtdmknXTsgICAgJGltYWdlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAX2NvbnRlbnRzPSAnaVZCT1J3MEtHZ29BDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQUFBTlNVaEVVZ0FBQUdvQUFBQVhDQVlBDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQUFEam5kcUlBQUFBQkdkQlRVRUFBTEdPDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZlB0Umt3QUFDa0ZwUTBOUVNVTkRJRkJ5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYjJacGJHVUFBSGdCblpaM1ZGUFpGb2ZQDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdlRlOTBCSWlJQ1gwR25vSklOSTdTQlVFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVVlsSmdGQUNob1FtZGtRRlJoUVJLVlprDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVk1BQlI0Y2lZMFVVQzRPQ1l0Y0o4aEJRDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeHNGUlJFWGwzWXhyQ2UrdE5mUGVtdjNIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV2QvWjU3ZlgyV2Z2ZmRlNkFGRDhnZ1RDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZEZnQmdEU2hXQlR1NjhGY0VoUEx4UGNDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAR0JBQkRsZ0J3T0ZtWmdSSCtFUUMxUHk5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUFptWnFFakdzL2J1TG9Ca3U5c3N2MUFtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYzliL2Y1RWlOME1rQmdBS1JkVTJQSDRtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARitVQ2xGT3p4Umt5L3dUSzlKVXBNb1l4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATWhhaENhS3NJdVBFcjJ6MnArWXJ1OG1ZDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbHlia29ScFp6aG04Tko2TXUxRGVtaVhoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbzR3RW9WeVlKZUJubzN3SFpiMVVTWm9BDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANWZjbzA5UDRuRXdBTUJTWlg4em5KcUZzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaVRKRkZCbnVpZklDQUFpVXhEbThjZzZMDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAK1Rsb25nQjRwbWZraWdTSlNXS21FZGVZDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYWVYb3lHYjY4Yk5UK1dJeEs1VERUZUdJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZUV6UDlMUU1qakFYZ0s5dmxrVUJKVmx0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbVdpUjdhMGM3ZTFaMXVabytiL1ozeDUrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVS8wOXlIcjdWZkVtN00rZVFZeWVXZDlzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN0t3dnZSWUE5aVJhbXgyenZwVlZBTFJ0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQmtEbDRheFA3eUFBOGdVQXRONmM4eDZHDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYkY2U3hPSU1Kd3VMN094c2N3R2ZheTRyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANkRmN240SnZ5citHT2ZlWnkrNzdWanVtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARnorQkkwa1ZNMlZGNWFhbnBrdEV6TXdNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARHBmUFpQMzNFUC9qd0RscHpjbkRMSnlmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd0JmeGhlaFZVZWlVQ1lTSmFMdUZQSUZZDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAa0M1a0NvUi8xZUYvR0RZbkJ4bCtuV3NVDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYUhWZkFIMkZPVkM0U1FmSWJ6MEFReU1EDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASkc0L2VnSjk2MXNRTVFySXZyeG9yWkd2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYzQ4eWV2N24raDhMWElwdTRVeEJJbFBtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOWd5UFpISWxvaXdabzkrRWJNRUNFcEFIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZEtBS05JRXVNQUlzWUEwY2dETndBOTRnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQUlTQVNCQURsZ011U0FKcFFBU3lRVDdZDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQUFwQk1kZ0Jkb05xY0FEVWdYclFCRTZDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATm5BR1hBUlh3QTF3Q3d5QVIwQUtoc0ZMDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATUFIZWdXa0lndkFRRmFKQnFwQVdwQStaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUXRZUUcxb0llVU5CVURnVUE4VkRpWkFRDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAa2tENTBDYW9HQ3FEcXFGRFVEMzBJM1FhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWdoZGcvcWdCOUFnTkFiOUFYMkVFWmdDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMDJFTjJBQzJnTm13T3h3SVI4TEw0RVI0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARlp3SEY4RGI0VXE0Rmo0T3Q4SVg0UnZ3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQUN5Rlg4S1RDRURJQ0FQUlJsZ0lHL0ZFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUXBCWUpBRVJJV3VSSXFRQ3FVV2FrQTZrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARzdtTlNKRng1QU1HaDZGaG1CZ1d4aG5qDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaDFtTTRXSldZZFppU2pEVm1HT1lWa3dYDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANWpabUVET0IrWUtsWXRXeHBsZ25yRDkyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQ1RZUm00MHR4RlpnajJCYnNKZXhBOWhoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN0RzY0RzZkFHZUljY0g2NEdGd3liald1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQkxjUDE0eTdnT3ZERGVFbThYaThLdDRVDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANzRJUHdYUHdZbndodmdwL0hIOGUzNDhmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeHI4bmtBbGFCR3VDRHlHV0lDUnNKRlFRDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAR2dqbkNQMkVFY0kwVVlHb1QzUWloaEI1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeEZ4aUtiR08yRUc4U1J3bVRwTVVTWVlrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARjFJa0tabTBnVlJKYWlKZEpqMG12U0dUDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeVRwa1IzSVlXVUJlVDY0a255QmZKUStTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUDFDVUtDWVVUMG9jUlVMWlRqbEt1VUI1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUUhsRHBWSU5xRzdVV0txWXVwMWFUNzFFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZlVwOUwwZVRNNWZ6bCtQSnJaT3JrV3VWDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANjVkN0pVK1UxNWQzbDE4dW55ZGZJWDlLDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAL3FiOHVBSlJ3VURCVTRHanNGYWhSdUcwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd2oyRlNVV2FvcFZpaUdLYVlvbGlnK0kxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeFZFbHZKS0JrcmNTVDZsQTZiRFNKYVVoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAR2tMVHBYblN1TFJOdERyYVpkb3dIVWMzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcFB2VGsrbkY5Qi9vdmZRSlpTVmxXK1VvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANVJ6bEd1V3p5bElHd2pCZytETlNHYVdNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAazR5N2pJL3pOT2E1eitQUDJ6YXZhVjcvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdkNtVitTcHVLbnlWSXBWbWxRR1ZqNnBNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVlcvVkZOV2RxbTJxVDlRd2FpWnFZV3JaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYXZ2VkxxdU56NmZQZDU3UG5WODAvK1Q4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaCtxd3VvbDZ1UHBxOWNQcVBlcVRHcG9hDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdmhvWkdsVWFselRHTlJtYWJwckptdVdhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANXpUSHRHaGFDN1VFV3VWYTU3VmVNSldaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN3N4VVppV3ppem1ocmE3dHB5M1JQcVRkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcXoydFk2aXpXR2VqVHJQT0UxMlNMbHMzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUWJkY3QxTjNRazlMTDFndlg2OVI3NkUrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVVordG42Uy9SNzliZjhyQTBDRGFZSXRCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbThHb29ZcWh2MkdlWWFQaFl5T3FrYXZSDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAS3FOYW96dkdPR08yY1lyeFB1TmJKckNKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAblVtU1NZM0pUVlBZMU41VVlMclB0TThNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYStab0pqU3JOYnZIb3JEY1dWbXNSdGFnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT2NNOHlIeWplWnY1S3dzOWkxaUxuUmJkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARmw4czdTeFRMZXNzSDFrcFdRVlliYlRxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc1ByRDJzU2FhMTFqZmNlR2F1TmpzODZtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAM2VhMXJha3QzM2EvN1gwN21sMnczUmE3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVHJ2UDlnNzJJdnNtK3pFSFBZZDRoNzBPDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOTloMGRpaTdoSDNWRWV2bzRiak84WXpqDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQnlkN0o3SFRTYWZmblZuT0tjNE56cU1MDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAREJmd0Y5UXRHSExSY2VHNEhIS1JMbVF1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAakY5NGNLSFVWZHVWNDFycitzeE4xNDNuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZHNSdHhOM1lQZG45dVBzckQwc1BrVWVMDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeDVTbmsrY2F6d3RlaUpldlY1RlhyN2VTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOTJMdmF1K25Qam8raVQ2TlBoTytkcjZyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZlMvNFlmMEMvWGI2M2ZQWDhPZjYxL3RQDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQkRnRXJBbm9DcVFFUmdSV0J6NExNZ2tTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQlhVRXc4RUJ3YnVDSHkvU1h5UmMxQllDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUXZ4RGRvVThDVFVNWFJYNmN4Z3VMRFNzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASnV4NXVGVjRmbmgzQkMxaVJVUkR4THRJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAajhqU3lFZUxqUlpMRm5kR3lVZkZSZFZIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVFVWN1JaZEZTNWRZTEZtejVFYU1Xb3dnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcGowV0h4c1ZleVIyY3FuMzB0MUxoK1BzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANGdyajdpNHpYSmF6N05weXRlV3B5OCt1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAa0YvQldYRXFIaHNmSGQ4US80a1R3cW5sDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVEs3MFg3bDM1UVRYazd1SCs1TG54aXZuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAamZGZCtHWDhrUVNYaExLRTBVU1h4RjJKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWTBtdVNSVko0d0pQUWJYZ2RiSmY4b0hrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcVpTUWxLTXBNNm5ScWMxcGhMVDR0Tk5DDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASldHS3NDdGRNejBudlMvRE5LTXdRN3JLDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYWRYdVZST2lRTkdSVENoeldXYTdtSTcrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVFBWSWpDU2JKWU5aQzdOcXN0NW5SMldmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeWxITUVlYjA1SnJrYnNzZHlmUEorMzQxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWmpWM2RXZStkdjZHL01FMTdtc09yWVhXDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcmx6YnVVNTNYY0c2NGZXKzY0OXRJRzFJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMmZETFJzdU5aUnZmYm9yZTFGR2dVYkMrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWUdpejcrYkdRcmxDVWVHOUxjNWJEbXpGDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYkJWczdkMW1zNjFxMjVjaVh0SDFZc3ZpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaXVKUEpkeVM2OTlaZlZmNTNjejJoTzI5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcGZhbCszZmdkZ2gzM04zcHV2TlltV0paDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWHRuUXJ1QmRyZVhNOHFMeXQ3dFg3TDVXDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWVZ0eFlBOXBqMlNQdERLb3NyMUtyMnBIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMWFmcXBPcUJHbythNXIzcWU3ZnRuZHJIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMjllLzMyMS8wd0dOQThVSFBoNFVITHgvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeVBkUWE2MUJiY1ZoM09Hc3c4L3JvdXE2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdjJkL1gzOUU3VWp4a2M5SGhVZWx4OEtQDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZGRVNzFOYzNxRGVVTnNLTmtzYXg0M0hIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYi8zZzlVTjdFNnZwVURPanVmZ0VPQ0U1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOGVMSCtCL3ZuZ3c4MlhtS2ZhcnBKLzJmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOXJiUVdvcGFvZGJjMW9tMnBEWnBlMHg3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMyttQTA1MGR6aDB0UDV2L2ZQU005cG1hDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAczhwblM4K1J6aFdjbXptZmQzN3lRc2FGDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOFl1SkY0YzZWM1ErdXJUazBwMnVzSzdlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeTRHWHIxN3h1WEtwMjczNy9GV1hxMmV1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT1YwN2ZaMTl2ZTJHL1kzV0hydWVsbC9zDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZm1ucHRlOXR2ZWx3cy8yVzQ2Mk92Z1Y5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANS9wZCt5L2U5cnA5NVk3L25Sc0Rpd2I2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN2k2K2UvOWUzRDNwZmQ3OTBRZXBEMTQvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAekhvNC9XajlZK3pqb2ljS1R5cWVxait0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAL2RYNDEyYXB2ZlRzb05kZ3o3T0laNCtHDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdUVNdi81WDVyMC9EQmMrcHp5dEd0RWJxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUjYxSHo0ejVqTjE2c2ZURjhNdU1sOVBqDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaGI4cC9yYjNsZEdybjM1Mys3MW5Zc25FDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOEd2UjY1ay9TdDZvdmpuNjF2WnQ1MlRvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANU5OM2FlK21wNHJlcTc0LzlvSDlvZnRqDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOU1lUjZleFArRStWbjQwL2Qzd0ovUEo0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASm0xbTV0LzNoUFA3cGZJbUlnQUFBQWx3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQitOSlJFRlVhQVh0V25sUVZXVVVQK1JqDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaENlSXlwTkJmQ0N1TkVPWllPYWs1VExxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVkNiNlg3bE1saldwb2ROa3VlYVNMU0p1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV1FwR0dGa1dpVnAvNE5hNGpXYkJqRmxzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUllVYjVrTjhJb3VLTEU0WWZiOFB6K1c3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbC91dUdJNmx3NW01NzF2Tzh0MTdmdDg1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANTd2dlBhLzYrbnBxcGYrL0IyeTR4YlZyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVXpvVm5NZzYwcjE3OXlBeHRJc0w4L2VKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeTB0Y3JYVG5QSUNvK1Z0Y2RkVTF0ZFVYDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAM09kTElucEhENWsxNjZWeXIzVUppZHZQDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAblN2dUdSLzNYdFNkdTUvV2xacnJnZmx2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATHNydTJqWGtsTmUwVjJMcmt6WWtObGV2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaVZ4WldSbGxaV1hyNXFPam95Z3dNRkNiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMjcvL2dOWkhoL25RTFMrdm9ONjllMG4rDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaVJNblpjdmpINDhkbzU0OWVzZzU0eG9CDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASFFMb2tRRUQ2R2JydzhibFM1ZWxEZjRZDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATldxazdCcnZpMjJ5bkxHMXNzWDNxajYzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMlp6UlpuUEcwMk5ua0MwNHVFdHpaRDNLDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd0lGYnQzK3RPUnVDR0s5WXZreUNoVVd3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaHErdmo3UlJVMU1yK1o4a0o5R3AwNmZwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMDAyZkVXK1VGYXRXazcrL1A2MWRzMHJLDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASm05TWtYYk0xZ2dLQ3BKQWdaZStjeGVGDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaGpvMSsybmJ0bFBLeG8vbGVQTVhxUnBQDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVG9nUEJzcDQzeTVYRWUzNWRpOHRYYktJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUlhVdGJQbjUrVkhIamgza3ZOdDlnUTRlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT2t3aUcxSCtiNy9MWjFuMjdqdnl1VGQ5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdnBtT0hqMUtHTGVVUkVraUd6dXdKY1o4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZkh4bzNwelptZ21BQXhCNGR4a2ZmT2FyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcjBsWlJBU0FRaVJWWEtvZzJLbXNySlRqDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAM0x3OGNqZ2NtZzJiclExRjkrdW5yUkVlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASHE3MUFaSnhmWTBwT3FvZW9vYkplTitZDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANTN0akdXUHI3QnBDRVgzNnlPbXNuQndDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV0tBcHowK1c3Y0xGUytpQnlFajZOVDlmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ3NRK2tNd1dmTWpEUkF2MHBXcE5UWTN1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQVgxOTdYSzNnMm16ZVZ1YUh6aHdJS1Z1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU2FQYTJscnEzeithU2twS2FPKytmUUxvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUWhyOTVCT2FibDNkZFlKalZPSVVDYURaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd2JCakpGV1BJOUVvMDl4eDBibGlxcXF1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbHVMSURpb0JyS3FyVnlrbk4wL0xLQ3EvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASmYzYkFwU3ZyeThsclB2QTlENEFJaHlwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT2xWMTV0Z3hUOU84QlF1bExsSUlaSkVDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUVp5aTBEZmIvWmdId2JaVlJLbThCZzN6DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVDJQTk1wTWFNWHlZZGwrb1FVaUhLaUhhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAL2lnNHJtVUNsZGVTZm91QlFpcEJpdkpFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVDRtbytIQjlnbzQ5ZVBBZ2JZelV3Q0JpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARW4ybjAwbmR1b1ZwTXB5dU9HckF3SnBJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcWVBaFNsUlM2eTdrVkQzSXFadEs1YUgrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVEg1dWttcEsxNGV0ZEZFUGNZRzh2YjFwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMk5BaE9wbWIrVU1uZkFzRHIvaVZxK3FiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdStOdXdXNnI2RzMwQURJTVhtcGI2Uzd3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd0UxVFgxVmVBWlh2T21UNktMWUFmK29VDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATTV6YWhvVVE1SzVmcnBSeTdSOS91SW44DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGU5L2tuTnRoRTY3dmhGVUoyUXhCejB6DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQ2hBMnJPeEFoMjJwK3VwOXFQTnFYN1ZiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV2xwR0JRVUZWQ3JlNll4a0Y3VTNLaXBLDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcE5sQWdseHBXYWxSUkRjT0N3MGx1OTFPDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWjEwdXFyNXg0SUNBSTlBaGJhakM0RU9PDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQ1hyUTkwU1dRTG5pa3Fob2VjUDdpQ2NEDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEANEVmbDc2WXo4MWRMeDBQdTBVcjlDekRtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOGtlL2pFWTZ2MWZTMjVRM2FMd0VTMDZhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZk1CdWx4bVRLRHgrdHNZRnNHeUhKNlBGDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMnRnb1RPcDk4Snl4eFVicG01RkdHUm1aDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbENKZUQ2eG95OVp0TkhOR0xMbUVVOU4zDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN0xRU2xTQXRYYktZMHRLMmlRTkY0d2E4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUHlLQzVzNTVRNmVMT3FjZVhzeGtWQVZMDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb0s3ODhMTW0yMm5NY0xJLzJQRCtnTW1LDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAM1lkbE5DQXlxajFFaGFaczZKUjh1VU1IDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARWh5SDZBQmQrN09ZcnAwdGx2M3ppYWs2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb0Z3bW0rYms5TGNvY3M5R0tkL2NEMFFkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUUUvZnJYYzhuTVdrUmtXMmVDMXdLTiswDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc0l5eFJaUmtaR1lhcHlWbzJCUjhpSUp0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARmFRbUNpWVRsa0NwOGdBSjZVZ2xUajF0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdXpYdWFKWHZxYTl1Z0lndDd4TTJnVXB3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUG9QRjh4ZFRkMmdSQzNudzJlRnd1cHJPDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV01jWTJZZzJnTStFZEFaQzJsa1pIeWRiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbFllWGNSRDRLaUU2VkZDenNuTW9JWEdEDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAS3FMMW9Rc0FFWmxSVWYya0xVUWNFL041DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN0ttMUJBbzFpQW1weUN3TklwbzZUNHhoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc1Z0dWVRMmtORGpjRTduaUdsTncrSXJaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATXZJNERTTFNJZzJiQ0haVWUxd1QyVDVIDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATU1aY1c1aUhGblZKVFZkcTJuT2RiYXd0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAa00xVW9naDFUYVZSSTBmSWxBbXc5aDg0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAS0w3T0N0WFNJaUtzVEd3V05VMnF1bXJmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARXFpZW9wYTBYZDV3VUZDVjBBZEFlSGhjDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbmc0YlJwMS9PMGF0NUFoRFBVTHFCQUZrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQmdEM1lJeE1CdEs0THFJUDZaWUpUalFqDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQnNlWTloQWRab1RvZ1BPemMzSTE5cml4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATVRJZElucGhEeHNBQk5seE1USHlLelJODA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMktKakNWVEJoTmUxWFRtZzZJaDBETnVDDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWThBM0k2UVgxUkhsb3A2cHBCYi9rdFNHDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT2hHNllCcVJ1T0Q0VXlMMW9RV2hkVy80DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU2xNSFlHYVJmV2JlNmlaQWFVcUdEaUtODA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ1FlTGEwWm9XT09wQzFIRFFDSE5SVVEwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMW1lRE9XMEl3TE5GR2pUU2kxTmVvSldyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMXNocFRyZUlOQWJOS0c4MnRnUktWVGptDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMUwrQnF6ejBWZWVqRm5naUFOaE8xRHZVDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASEJCYTdwdnBBSFFHRFpIUS9ySCtPakUrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMU1EeFJqdFdOUXFIbG1oUk0xQmZRSjZpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQkx6QUcxR0FQc2lxUnBrZDh3RTBMazV4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAQUFpUlppU0FpTU1JSWhocmNoM0VkNHEyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd3NKQ283dzI3aEk3VVhjSzB4aEtCODdEDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATVJxRTl5aXJOSWpVNUJSUmc1UlY5Y3R4DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdW1nNC9TbG1KZkNkSjhWbzBRTWRIRHk0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcHJFc2JPWU5IaStIaUNxN2t0SllodHMyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAN2YyNEs5dXh3bG5WMVRXYUEzWE1Hd000DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYThLeno4ajZZc2JIbk4ydXIwdG1jb2lxDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWZNWFNCYjZaZ1FBRWJrSmlSOFJJbzZCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY3J2UGs5ZjY5WW5mRkJYTFgzZ2ZNbE51DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbmZ0dlBTQis0YzExaG9oZmVQSG5sdVRrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWklmNEtlQzc0T0FRaC9oOXFwMjROZncyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd2YrWDRQYS92ZU43ZjNYK2x4SGF2MFM2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcTNLN2kwdkZiMmxEcDA2ZFdpcUJ1dmQ5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY1BjLzRUL3llSTlzYmpEZDRBQUFBQUJKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUlU1RXJrSmdnZz09JzsgICAgJGltYWdlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAX3BhdGggPSAkR0xPQkFMU1snc3VnYXJfDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY29uZmlnJ11bJ2NhY2hlX2RpciddLidsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2dpbmltYWdlJzsgICAgJGNvdW50ID0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMDsgICAgd2hpbGUoISgkZnAgPSBAZm9wDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW4oJGltYWdlX3BhdGguJy5wbmcnLCAnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdycpKSl7ICAgICAkaW1hZ2VfcGF0aCA9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICRpbWFnZV9wYXRoLiRjb3VudDsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICRjb3VudCsrOyAgICB9ICAgICBmd3JpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGUoJGZwLCBiYXNlNjRfZGVjb2RlKCRpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbWFnZV9jb250ZW50cykpOyAgICBmY2xvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc2UoJGZwKTsgICAgY2hlY2tfbm93KHRyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWUpOyAgICBpZigkX1JFUVVFU1RbJ2FjDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGlvbiddPT0gJ0F1dGhlbnRpY2F0ZScgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKXsgICAgICBpZigkc3VnYXJfZmxhdm9yDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAID09ICdDRScgfHwgJHN1Z2FyX2ZsYXZvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAciA9PSAnQ09NJyl7ICAgICAgJG5vdGljDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZSA9ICcgVGhpcyBjb3B5IG9mIHRoZSBTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWdhckNSTSBjdXN0b21lciByZWxhdGlvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbnNoaXAgbWFuYWdlbWVudCBwcm9ncmFtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGFwcGVhcnMgdG8gaGF2ZSBsZWdhbCBuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb3RpY2VzIG9yIGF1dGhvciBhdHRyaWJ1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGlvbnMgbW9kaWZpZWQgb3IgcmVtb3ZlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZCBpbiB2aW9sYXRpb24gb2YgdGhlIEdODA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATGljZW5zZSB2ZXJzaW9uIDMuIFBsZWFzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZSBjb250YWN0IFN1Z2FyQ1JNIEluYy4gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdG8gY29ycmVjdCB0aGlzIHByb2JsZW0uDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJzsgICAgICB9ZWxzZXsgICAgICAkbm90DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaWNlID0gJ1RoaXMgY29weSBvZiB0aGUgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU3VnYXJDUk0gY3VzdG9tZXIgcmVsYXRpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb25zaGlwIG1hbmFnZW1lbnQgcHJvZ3JhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbSBhcHBlYXJzIHRvIGhhdmUgbGVnYWwgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbm90aWNlcyBvciBhdXRob3IgYXR0cmliDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdXRpb25zIG1vZGlmaWVkIG9yIHJlbW92DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWQgaW4gdmlvbGF0aW9uIG9mIHRoZSBTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWdhckNSTSBTdWJzY3JpcHRpb24gQWdyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWVtZW50LiBQbGVhc2UgY29udGFjdCBTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWdhckNSTSBJbmMuIHRvIGNvcnJlY3QgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGhpcyBwcm9ibGVtLic7ICAgICAgfSAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgIGVjaG8gJzxoZWFkPjx0aXRsZT5QDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb3dlcmVkIEJ5IFN1Z2FyQ1JNPC90aXRsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZT48bGluayByZWw9InN0eWxlc2hlZXQiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIHR5cGU9InRleHQvY3NzIiBocmVmPSJ0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaGVtZXMvU3VnYXIvbmF2aWdhdGlvbi5jDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZj0idGhlbWVzL1N1Z2FyL3N0eWxlLmNzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcyIgLz48bGluayByZWw9InN0eWxlc2hlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZXQiIHR5cGU9InRleHQvY3NzIiBocmVmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPSJ0aGVtZXMvU3VnYXIvY29sb3JzLnN1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2FyLmNzcyIgaWQ9ImN1cnJlbnRfY29sDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb3Jfc3R5bGUiIC8+PGxpbmsgcmVsPSJzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcyIgaHJlZj0idGhlbWVzL1N1Z2FyL2ZvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbnRzLm5vcm1hbC5jc3MiIGlkPSJjdXJyDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW50X2ZvbnRfc3R5bGUiLz48L2hlYWQ+DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPGRpdiAgYWxpZ249ImNlbnRlciIgc3R5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGU9InBvc2l0aW9uOnJlbGF0aXZlO3RvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcDoyMDBweCI+PHRhYmxlIHdpZHRoPTQwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMCBjbGFzcz0idGFiRm9ybSI+PHRyPjx0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdGVyIj48Yj4nLiRub3RpY2UuJzwvYj48DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAL3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPSIyIiBhbGlnbj0iY2VudGVyIj48aW1nDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIHN0eWxlPSJtYXJnaW4tdG9wOiAycHgiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGJvcmRlcj0iMCIgd2lkdGg9IjEwNiIgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaGVpZ2h0PSIyMyIgc3JjPSInLiAkaW1hDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2VfcGF0aCAuICcucG5nIiBhbHQ9IlBvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd2VyZWQgQnkgU3VnYXJDUk0iPjwvdGQ+DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPC90cj48dHI+PHRkIGNvbHNwYW49IjIiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGFsaWduPSJyaWdodCI+PHNwYW4gaWQ9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAImRvdHMiPjwvc3Bhbj48L3RkPjwvdHI+DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPC90YWJsZT4nOyAgICAgIGVjaG8gJzxiDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcj48c2NyaXB0PnZhciBjb3VudCA9IDY7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGZ1bmN0aW9uIHVwZGF0ZURvdHMoKXtpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZihjb3VudCA+IDApe2NvdW50LS07fSBpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZihjb3VudD09MSl7ZG9jdW1lbnQubG9jDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYXRpb249ImluZGV4LnBocCI7fWRvY3VtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW50LmdldEVsZW1lbnRCeUlkKCJkb3RzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIikuaW5uZXJIVE1MPSBjb3VudDsgc2V0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVGltZW91dCgidXBkYXRlRG90cygpOyIsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIDEwMDApO311cGRhdGVEb3RzKCk7PC9zDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY3JpcHQ+PC9kaXY+JzsgICAgICBkaWUoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKTsgICAgIH0gICAgaWYoJF9SRVFVRVNUDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWydhY3Rpb24nXT09ICdBYm91dCcgJiYgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIWVtcHR5KCRfU0VTU0lPTlsnbXZpJ10pDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKXsgICAgIGVjaG8gYmFzZTY0X2RlY29kDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZSgkX1NFU1NJT05bJ212aSddKTsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAfWVsc2UgaWYoJF9SRVFVRVNUWydhY3RpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb24nXT09ICdMb2dpbicgfHwgJF9SRVFVDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARVNUWydhY3Rpb24nXT09ICdBYm91dCcgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKXsgICAgICAkX1NFU1NJT05bJ212aSddDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAID0gJyc7ICAgICBpZigkcSAmIDIpeyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICRfU0VTU0lPTlsnbXZpJ10gLj0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJzxkaXYgYWxpZ249ImNlbnRlciIgY2xhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc3M9ImNvcHlSaWdodCI+JyAuJHN0ciAuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICc8L2Rpdj4nOyAgICAgfSAgICAgaWYoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJHEgJiAxKXsgICAgICAkX1NFU1NJT05bDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ212aSddIC49ICc8ZGl2IGFsaWduPSJjDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZW50ZXIiPjxpbWcgc3R5bGU9Im1hcmdpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbi10b3A6IDJweCIgYm9yZGVyPSIwIiB3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaWR0aD0iMTA2IiBoZWlnaHQ9IjIzIiBzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcmM9IicuICRpbWFnZV9wYXRoIC4gJy5wDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbmciIGFsdD0iUG93ZXJlZCBCeSBTdWdhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAckNSTSI+PC9kaXY+JzsgICAgIH0gICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAIGlmKGVtcHR5KCRfU0VTU0lPTlsnbXZpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ10pICYmICFlbXB0eSgkb2RkKSkkX1NFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU1NJT05bJ212aSddID0gYmFzZTY0X2RlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY29kZSgkb2RkKTsgICAgIGVjaG8gJF9TDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARVNTSU9OWydtdmknXTsgICAgICRfU0VTDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU0lPTlsnbXZpJ10gPSBiYXNlNjRfZW5jDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb2RlKCRfU0VTU0lPTlsnbXZpJ10pOyAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgfSAgICAgfSAgfSB9ICBpZighZnVuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY3Rpb25fZXhpc3RzKCdtdmNjaGVjaycpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKXsgIGZ1bmN0aW9uIG12Y2NoZWNrKCl7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbXZpJ10pICYmICFlbXB0eSgkR0xPQkFMDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAU1snYXBwJ10tPmhlYWRlckRpc3BsYXllDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZCkpeyAgICBlY2hvIGJhc2U2NF9kZWNvDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZGUoJF9TRVNTSU9OWydtdmknXSk7ICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAfSAgfSB9ICBpZighZnVuY3Rpb25fZXhpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAc3RzKCdtdmNsb2cnKSl7ICAgZnVuY3RpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb24gbXZjbG9nKCR0aW1lX29uX2xhc3RfDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcGFnZSkgeyAgIGlmKGVtcHR5KCRfUkVRDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVUVTVFsnYWN0aW9uJ10pKXJldHVybjsgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICBzd2l0Y2goJF9SRVFVRVNUWydhY3RpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAb24nXSl7ICAgIGNhc2UgJ0xvZ2luJzokDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY2FzZSA9IDE7JGxldmVsPTE7YnJlYWs7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgIGNhc2UgJ0F1dGhlbnRpY2F0ZSc6DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJGNhc2UgPSAwOyRsZXZlbD0yO2JyZWFrDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOyAgICBjYXNlICdBYm91dCc6JGNhc2UgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPSAxOyRsZXZlbD0xO2JyZWFrOyAgICBkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWZhdWx0Om12Y2NoZWNrKCk7cmV0dXJuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOyAgIH0gICBnbG9iYWwgJGF1dGhMZXZlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbDsgICAkYXV0aExldmVsID0gJGxldmVsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOyAgICAkZnMgPSBhcnJheSAoKTsgICAgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJGZzW10gPSBhcnJheSAoJ2cnID0+ICdhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVzVqYkhWa1pTOU5Wa012Vm1sbGR5OVRkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAV2RoY2xacFpYY3VjR2h3JywgJ20nID0+DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICcnLCAnYScgPT4gJ0ptTnZjSGs3SURJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAd01EUXRNakF4TVNCVGRXZGhja05TVFNCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASmJtTXVJRlJvWlNCUWNtOW5jbUZ0SUdsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeklIQnliM1pwWkdWa0lFRlRJRWxUTENCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAM2FYUm9iM1YwSUhkaGNuSmhiblI1TGlBDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ1RHbGpaVzV6WldRZ2RXNWtaWElnUEdFDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2FISmxaajBpVEVsRFJVNVRSUzUwZUhRDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaUlIUmhjbWRsZEQwaVgySnNZVzVySWlCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAamJHRnpjejBpWTI5d2VWSnBaMmgwVEdsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdWF5SStRVWRRVEhZelBDOWhQaTQ4WW5JDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAK1ZHaHBjeUJ3Y205bmNtRnRJR2x6SUdaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeVpXVWdjMjltZEhkaGNtVTdJSGx2ZFNCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAallXNGdjbVZrYVhOMGNtbGlkWFJsSUdsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMElHRnVaQzl2Y2lCdGIyUnBabmtnYVhRDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2RXNWtaWElnZEdobElIUmxjbTF6SUc5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbUlIUm9aU0E4WW5JK1BHRWdhSEpsWmowDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaVRFbERSVTVUUlM1MGVIUWlJSFJoY21kDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGREMGlYMkpzWVc1cklpQmpiR0Z6Y3owDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAaVkyOXdlVkpwWjJoMFRHbHVheUkrSUVkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT1ZTQkJabVpsY204Z1IyVnVaWEpoYkNCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUWRXSnNhV01nVEdsalpXNXpaU0IyWlhKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAemFXOXVJRE04TDJFK0lHRnpJSEIxWW14DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcGMyaGxaQ0JpZVNCMGFHVWdSbkpsWlNCDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAVGIyWjBkMkZ5WlNCR2IzVnVaR0YwYVc5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdUxDQnBibU5zZFdScGJtY2dkR2hsSUdGDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAa1pHbDBhVzl1WVd3Z2NHVnliV2x6YzJsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdmJpQnpaWFFnWm05eWRHZ2dhVzRnZEdoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbElITnZkWEpqWlNCamIyUmxJR2hsWVdSDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGNpNDhZbkkrJywgJ2knID0+ICcxJywgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ2InID0+ICdKbU52Y0hrN0lESXdNRFF0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATWpBeE1TQThZU0JvY21WbVBTSm9kSFJ3DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAT2k4dmQzZDNMbk4xWjJGeVkzSnRMbU52DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYlNJZ2RHRnlaMlYwUFNKZllteGhibXNpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASUdOc1lYTnpQU0pqYjNCNVVtbG5hSFJNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYVc1cklqNVRkV2RoY2tOU1RTQkpibU11DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUEM5aFBpQkJiR3dnVW1sbmFIUnpJRkpsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYzJWeWRtVmtMZz09JywgJ2MnPT4kY2FzDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZSwgJ2wnPT4kbGV2ZWwsICdzJz0+Mik7DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICRmc1tdID0gYXJyYXkgKCdnJyA9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAPiAnYVc1amJIVmtaUzlOVmtNdlZtbGxkDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeTlUZFdkaGNsWnBaWGN1Y0dodycsICdtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJyA9PiAnJywgJ2EnID0+ICdVM1ZuWVhKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEARFVrMGdhWE1nWVNCMGNtRmtaVzFoY21zDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2IyWWdVM1ZuWVhKRFVrMHNJRWx1WXk0DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ1FXeHNJRzkwYUdWeUlHTnZiWEJoYm5rDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ1lXNWtJSEJ5YjJSMVkzUWdibUZ0WlhNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2JXRjVJR0psSUhSeVlXUmxiV0Z5YTNNDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ2IyWWdkR2hsSUhKbGMzQmxZM1JwZG1VDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ1kyOXRjR0Z1YVdWeklIZHBkR2dnZDJoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcFkyZ2dkR2hsZVNCaGNtVWdZWE56YjJODA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAcFlYUmxaQzQ9JywgJ2knID0+ICcxJywgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ2InID0+ICdVM1ZuWVhKRFVrMGdhWE1nDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWVNCMGNtRmtaVzFoY21zZ2IyWWdVM1ZuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWVhKRFVrMHNJRWx1WXk0Z1FXeHNJRzkwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYUdWeUlHTnZiWEJoYm5rZ1lXNWtJSEJ5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYjJSMVkzUWdibUZ0WlhNZ2JXRjVJR0psDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASUhSeVlXUmxiV0Z5YTNNZ2IyWWdkR2hsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASUhKbGMzQmxZM1JwZG1VZ1kyOXRjR0Z1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYVdWeklIZHBkR2dnZDJocFkyZ2dkR2hsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZVNCaGNtVWdZWE56YjJOcFlYUmxaQzQ9DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJywgJ2MnPT4kY2FzZSwgJ2wnPT4kbGV2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZWwsICdzJz0+Mik7ICAgICRmc1tdID0gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYXJyYXkgKCdnJyA9PiAnYVc1amJIVmtaDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUzlwYldGblpYTXZjRzkzWlhKbFpHSjVYDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAM04xWjJGeVkzSnRMbkJ1Wnc9PScsICdtDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJyA9PiAnODI0ZTdlNjVhM2I3OTAxY2IwDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYTFkNTNhODBhZDkzMTAnLCAnYScgPT4gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJycsICdpJyA9PiAwICwnYyc9PiRjYXNlDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEALCAnbCc9PiRsZXZlbCwgJ3MnPT4xKTsgDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAICAgICAgICAgICAgJGZzW10gPSBhcnJhDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAeSAoJ2cnID0+ICdhVzVqYkhWa1pTOU5WDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAa012Vm1sbGR5OVRkV2RoY2xacFpYY3VjDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAR2h3JywgJ20nID0+ICcnLCAnYScgPT4gDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJ1BHbHRaeUJ6ZEhsc1pUMG5iV0Z5WjJsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAdUxYUnZjRG9nTW5CNEp5QmliM0prWlhJDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAOUp6QW5JSGRwWkhSb1BTY3hNRFluSUdoDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbGFXZG9kRDBuTWpNbklITnlZejBuYVc1DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAamJIVmtaUzlwYldGblpYTXZjRzkzWlhKDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAbFpHSjVYM04xWjJGeVkzSnRMbkJ1WnljDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAZ1lXeDBQU2RRYjNkbGNtVmtJRUo1SUZODA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMVoyRnlRMUpOSno0PScsICdpJyA9PiAnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAMScsICdiJyA9PiAnUEVFZ2FISmxaajBuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYUhSMGNEb3ZMM2QzZHk1emRXZGhjbVp2DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY21kbExtOXlaeWNnZEdGeVoyVjBQU2RmDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWW14aGJtc25QanhwYldjZ2MzUjViR1U5DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEASjIxaGNtZHBiaTEwYjNBNklESndlQ2NnDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWW05eVpHVnlQU2N3SnlCM2FXUjBhRDBuDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATVRBMkp5Qm9aV2xuYUhROUp6SXpKeUJ6DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAY21NOUoybHVZMngxWkdVdmFXMWhaMlZ6DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEATDNCdmQyVnlaV1JpZVY5emRXZGhjbU55DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAYlM1d2JtY25JR0ZzZEQwblVHOTNaWEpsDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAWkNCQ2VTQlRkV2RoY2tOU1RTYytQQzloDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAUGc9PScsICdjJz0+JGNhc2UsICdsJz0+DA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAJGxldmVsLCAncyc9PjEpOyAgICBhbXNpDA7832197024932C13832C469D4A049F824A5CDE0C0E2C8F04D5A3376EF44AEAKCRmcyk7ICAgfSB9IA==";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10);
+$msi0="len";$msi="code";$msi1="570C863B0A5BE54644FF4414252D0B77aWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW5kcyBTdWdhckJlYW4geyAgdmFyICRtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgIHZhciAkdGFibGVfbmFtZSA9ICd0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cmFja2VyJzsgICAgIHZhciAkb2JqZWN0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77X25hbWUgPSAnVHJhY2tlcic7ICB2YXIgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXInOyAgICAgIHZhciAkY29sdW1uX2ZpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWxkcyA9IEFycmF5KCAgICAgICAgICJpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZCIsICAgICAgICAgIm1vbml0b3JfaWQiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77LCAgICAgICAgICJ1c2VyX2lkIiwgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAibW9kdWxlX25hbWUiLCAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICJpdGVtX2lkIiwgICAgICAgICAiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aXRlbV9zdW1tYXJ5IiwgICAgICAgICAiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77biIsICAgICAgInNlc3Npb25faWQiLCAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICJ2aXNpYmxlIiAgICAgKTsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICBmdW5jdGlvbiBUcmFja2VyKCkgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IHsgICAgICBnbG9iYWwgJGRpY3Rpb25hA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Pm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J11bJHRoaXMtPm9iamVjdF9uYW1lXSkpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eyAgICAgICAgICAkcGF0aCA9ICdtb2R1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JzsgICAgaWYoZGVmaW5lZCgnVEVNUExBA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VEVfVVJMJykpJHBhdGggPSBTdWdhclRlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cmVfb25jZSgkcGF0aCk7ICAgICAgfSAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgIHBhcmVudDo6U3VnYXJCZWFuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IG1ha2VJbnZpc2libGVGb3JBbGwoJGl0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW1faWQpICAgICB7ICAgICAgICAgJHF1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZCcgQU5EIHZpc2libGUgPSAxIjsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGggPSAnbW9kdWxlcy9UcmFja2Vycy9CA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cmVhZENydW1iU3RhY2sucGhwJzsgICBpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZihkZWZpbmVkKCdURU1QTEFURV9VUkwnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YXRoKTsgICAgICByZXF1aXJlX29uY2UoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JHBhdGgpOyAgICAgICAgIGlmKCFlbXB0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J10pKXsgICAgICAgICAgJGJyZWFkQ3J1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bWJzID0gJF9TRVNTSU9OWydicmVhZENyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dW1icyddOyAgICAgICAgICAkYnJlYWRDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OyAgICAgICAgIH0gICAgIH0gICAgICBmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JHRpbWVfb25fbGFzdF9wYWdlID0gMDsgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICBpZihlbXB0eSgkR0xPQkFMU1snA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YXBwJ10tPmhlYWRlckRpc3BsYXllZCApA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KXJldHVybjsgICAgICBpZighZW1wdHkoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JF9TRVNTSU9OWydscGFnZSddKSkkdGltA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77LSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgJF9TRVNTSU9OWydscGFnZSddPXRpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bWUoKTsgICBtdmNsb2coJHRpbWVfb25fA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGFzdF9wYWdlKTsgICAgIH0gICAgZnVuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JykgICAgIHsgICAgICAkcGF0aCA9ICdtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bWJTdGFjay5waHAnOyAgIGlmKGRlZmluA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77czo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgaWYoZW1wdHkoJF9TRVNTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SU9OWydicmVhZENydW1icyddKSkgeyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgICAkYnJlYWRDcnVtYiA9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IG5ldyBCcmVhZENydW1iU3RhY2soJHVzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXJfaWQsICRtb2R1bGVzKTsgICAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgJF9TRVNTSU9OWydicmVhZENyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dW1icyddID0gJGJyZWFkQ3J1bWI7ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgICRHTE9CQUxTWydsb2cnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77XS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TE9CQUxTWydhcHBfc3RyaW5ncyddWydMA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgfSBlbHNlIHsgICAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICRtb2R1bGVfcXVlcnkgPSAnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JzsgICAgICAgICAgaWYoIWVtcHR5KCRtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2R1bGVzKSkgeyAgICAgICAgICAgICAkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aGlzdG9yeV9tYXhfdmlld2VkID0gMTA7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgICAgICRtb2R1bGVfcXVlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cnkgPSBpc19hcnJheSgkbW9kdWxlcykgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77XCcnIC4gaW1wbG9kZSgiJywnIiAsICRtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2R1bGVzKSAuICdcJyknIDogICcgQU5EA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZHVsZXMgLiAnXCcnOyAgICAgICAgICB9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGVsc2UgeyAgICAgICAgICAgICAkaGlzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dG9yeV9tYXhfdmlld2VkID0gKCFlbXB0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eSgkR0xPQkFMU1snc3VnYXJfY29uZmlnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KSk/ICRHTE9CQUxTWydzdWdhcl9jb25mA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J10gOiA1MDsgICAgICAgICAgfSAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGhpcy0+dGFibGVfbmFtZSAuICcgV0hFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aWQgPSBcJycgLiAkdXNlcl9pZCAuICdcA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZHVsZV9xdWVyeSAuICcpJzsgICAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGltaXRRdWVyeSgkcXVlcnksMCwkaGlzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dG9yeV9tYXhfdmlld2VkLHRydWUsJHF1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c3NvYygkcmVzdWx0KSkpIHsgICAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgICRicmVhZENydW1iLT5wA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dXNoKCRyb3cpOyAgICAgICAgICB9ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgfSAgICAgICAgICRsaXN0ID0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bWJMaXN0KCRtb2R1bGVzKTsgICAgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAkR0xPQkFMU1snbG9nJ10tPmluZm8oA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgIHJldHVybiAkbGlzdDsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bWVudHMoJGludGVyZmFjZSl7ICAgcmV0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IWZ1bmN0aW9uX2V4aXN0cygndmNtc2knA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXJhdGUsICRtZDUsICRhbHQgPSAnJykgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aXN0cygkZ2VuZXJhdGUpICYmICRoYW5kA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YicsIHRydWUpKSB7ICAgICRmcm9tX2tlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eSA9IHN0cmVhbV9nZXRfY29udGVudHMoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXkpID09ICRhbHQpKSB7ICAgICByZXR1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cm4gMDsgICAgfSAgIH0gICAgcmV0dXJuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IC0xOyAgIH0gfSBpZighZnVuY3Rpb25fA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGhrZXksICRpLCAkYWx0ID0gJycsICRjA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y29kZSgkYXV0aGtleSk7ICAgaWYoIWVtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGUsICdyYicsIHRydWUpKSApIHsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aWYoJGMpeyAgICAgJGZyb21fa2V5ID0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bHNleyAgICAgJGZyb21fa2V5ID0gc3RyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWFtX2dldF9jb250ZW50cygkaGFuZGxlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KTsgICAgfSAgICBpZiAoc3Vic3RyX2NvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dW50KCRmcm9tX2tleSwgJGF1dGhrZXkpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IDwgJGkpIHsgICAgICAgaWYgKCFlbXB0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bV9rZXksICRhbHRrZXkpID49ICRpKSB7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgIHJldHVybiAwOyAgICAgfSAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IHsgICAgIHJldHVybiAwOyAgICB9ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IH0gZWxzZSB7ICAgICByZXR1cm4gLTE7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgfSAgfSB9ICBpZighZnVuY3Rpb25fA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b24gYW1zaSgkYXMpIHsgICBpbmNsdWRlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JHogPSAxOyAgIGdsb2JhbCAkbG9naW5fA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Jyc7ICAgJHN0ciA9ICcnOyAgICAgIGZvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cmVhY2ggKCRhcyBhcyAkaykgeyAgICBpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZiAoIWVtcHR5ICgka1snbSddKSkgeyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgJHRlbXAgPSB2Y21zaSgka1snZyddA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77LCAka1snbSddLCAka1snYSddLCAka1snA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bCddKTsgICAgfSBlbHNlIHsgICAgICR0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW1wID0gIGFjbXNpKCRrWydnJ10sICRrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WydhJ10sICRrWydpJ10sICRrWydiJ10sA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICRrWydjJ10sJGtbJ2wnXSk7ICAgIH0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgaWYoIWVtcHR5KCR0ZW1wKSl7ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAkcSA9ICRxIHwgJGtbJ3MnXTsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77fSAgICBpZigka1sncyddID09IDIpeyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Q0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J0NPTScpeyAgICAgICRtID0gJGtbJ2EnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77XTsgICAgICAkc3RyIC49IGJhc2U2NF9kA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWNvZGUoJG0pOyAgICAgfWVsc2V7ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgJG0gPSAka1snYiddOyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgIGlmKCFlbXB0eSgkc3RyKSkkc3RyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Lj0nPGJyLz4nOyAgICAgICRzdHIgLj0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YmFzZTY0X2RlY29kZSgkbSk7ICAgICB9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgIH0gICB9ICAgaWYgKCRxICE9IDAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77fHwgIWVtcHR5KCRfU0VTU0lPTlsnbXZpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J10pKSB7ICAgIGlmKCFlbXB0eSgkX1NFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U1NJT05bJ212aSddKSkkb2RkID0gJF9TA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RVNTSU9OWydtdmknXTsgICAgJGltYWdlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77X2NvbnRlbnRzPSAnaVZCT1J3MEtHZ29BA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QUFBTlNVaEVVZ0FBQUdvQUFBQVhDQVlBA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QUFEam5kcUlBQUFBQkdkQlRVRUFBTEdPA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZlB0Umt3QUFDa0ZwUTBOUVNVTkRJRkJ5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YjJacGJHVUFBSGdCblpaM1ZGUFpGb2ZQA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dlRlOTBCSWlJQ1gwR25vSklOSTdTQlVFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VVlsSmdGQUNob1FtZGtRRlJoUVJLVlprA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Vk1BQlI0Y2lZMFVVQzRPQ1l0Y0o4aEJRA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eHNGUlJFWGwzWXhyQ2UrdE5mUGVtdjNIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V2QvWjU3ZlgyV2Z2ZmRlNkFGRDhnZ1RDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZEZnQmdEU2hXQlR1NjhGY0VoUEx4UGNDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77R0JBQkRsZ0J3T0ZtWmdSSCtFUUMxUHk5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UFptWnFFakdzL2J1TG9Ca3U5c3N2MUFtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YzliL2Y1RWlOME1rQmdBS1JkVTJQSDRtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RitVQ2xGT3p4Umt5L3dUSzlKVXBNb1l4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TWhhaENhS3NJdVBFcjJ6MnArWXJ1OG1ZA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bHlia29ScFp6aG04Tko2TXUxRGVtaVhoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bzR3RW9WeVlKZUJubzN3SFpiMVVTWm9BA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NWZjbzA5UDRuRXdBTUJTWlg4em5KcUZzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aVRKRkZCbnVpZklDQUFpVXhEbThjZzZMA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77K1Rsb25nQjRwbWZraWdTSlNXS21FZGVZA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YWVYb3lHYjY4Yk5UK1dJeEs1VERUZUdJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZUV6UDlMUU1qakFYZ0s5dmxrVUJKVmx0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bVdpUjdhMGM3ZTFaMXVabytiL1ozeDUrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VS8wOXlIcjdWZkVtN00rZVFZeWVXZDlzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N0t3dnZSWUE5aVJhbXgyenZwVlZBTFJ0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QmtEbDRheFA3eUFBOGdVQXRONmM4eDZHA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YkY2U3hPSU1Kd3VMN094c2N3R2ZheTRyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NkRmN240SnZ5citHT2ZlWnkrNzdWanVtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RnorQkkwa1ZNMlZGNWFhbnBrdEV6TXdNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RHBmUFpQMzNFUC9qd0RscHpjbkRMSnlmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d0JmeGhlaFZVZWlVQ1lTSmFMdUZQSUZZA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77a0M1a0NvUi8xZUYvR0RZbkJ4bCtuV3NVA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YUhWZkFIMkZPVkM0U1FmSWJ6MEFReU1EA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Skc0L2VnSjk2MXNRTVFySXZyeG9yWkd2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YzQ4eWV2N24raDhMWElwdTRVeEJJbFBtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OWd5UFpISWxvaXdabzkrRWJNRUNFcEFIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZEtBS05JRXVNQUlzWUEwY2dETndBOTRnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QUlTQVNCQURsZ011U0FKcFFBU3lRVDdZA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QUFwQk1kZ0Jkb05xY0FEVWdYclFCRTZDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Tm5BR1hBUlh3QTF3Q3d5QVIwQUtoc0ZMA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TUFIZWdXa0lndkFRRmFKQnFwQVdwQStaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UXRZUUcxb0llVU5CVURnVUE4VkRpWkFRA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77a2tENTBDYW9HQ3FEcXFGRFVEMzBJM1FhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWdoZGcvcWdCOUFnTkFiOUFYMkVFWmdDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MDJFTjJBQzJnTm13T3h3SVI4TEw0RVI0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Rlp3SEY4RGI0VXE0Rmo0T3Q4SVg0UnZ3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QUN5Rlg4S1RDRURJQ0FQUlJsZ0lHL0ZFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UXBCWUpBRVJJV3VSSXFRQ3FVV2FrQTZrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RzdtTlNKRng1QU1HaDZGaG1CZ1d4aG5qA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aDFtTTRXSldZZFppU2pEVm1HT1lWa3dYA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NWpabUVET0IrWUtsWXRXeHBsZ25yRDkyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Q1RZUm00MHR4RlpnajJCYnNKZXhBOWhoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N0RzY0RzZkFHZUljY0g2NEdGd3liald1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QkxjUDE0eTdnT3ZERGVFbThYaThLdDRVA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NzRJUHdYUHdZbndodmdwL0hIOGUzNDhmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eHI4bmtBbGFCR3VDRHlHV0lDUnNKRlFRA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77R2dqbkNQMkVFY0kwVVlHb1QzUWloaEI1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eEZ4aUtiR08yRUc4U1J3bVRwTVVTWVlrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RjFJa0tabTBnVlJKYWlKZEpqMG12U0dUA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eVRwa1IzSVlXVUJlVDY0a255QmZKUStTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UDFDVUtDWVVUMG9jUlVMWlRqbEt1VUI1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UUhsRHBWSU5xRzdVV0txWXVwMWFUNzFFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZlVwOUwwZVRNNWZ6bCtQSnJaT3JrV3VWA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NjVkN0pVK1UxNWQzbDE4dW55ZGZJWDlLA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77L3FiOHVBSlJ3VURCVTRHanNGYWhSdUcwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d2oyRlNVV2FvcFZpaUdLYVlvbGlnK0kxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eFZFbHZKS0JrcmNTVDZsQTZiRFNKYVVoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77R2tMVHBYblN1TFJOdERyYVpkb3dIVWMzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cFB2VGsrbkY5Qi9vdmZRSlpTVmxXK1VvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NVJ6bEd1V3p5bElHd2pCZytETlNHYVdNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77azR5N2pJL3pOT2E1eitQUDJ6YXZhVjcvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dkNtVitTcHVLbnlWSXBWbWxRR1ZqNnBNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VlcvVkZOV2RxbTJxVDlRd2FpWnFZV3JaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YXZ2VkxxdU56NmZQZDU3UG5WODAvK1Q4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aCtxd3VvbDZ1UHBxOWNQcVBlcVRHcG9hA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dmhvWkdsVWFselRHTlJtYWJwckptdVdhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NXpUSHRHaGFDN1VFV3VWYTU3VmVNSldaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N3N4VVppV3ppem1ocmE3dHB5M1JQcVRkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cXoydFk2aXpXR2VqVHJQT0UxMlNMbHMzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UWJkY3QxTjNRazlMTDFndlg2OVI3NkUrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VVordG42Uy9SNzliZjhyQTBDRGFZSXRCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bThHb29ZcWh2MkdlWWFQaFl5T3FrYXZSA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77S3FOYW96dkdPR08yY1lyeFB1TmJKckNKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77blVtU1NZM0pUVlBZMU41VVlMclB0TThNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YStab0pqU3JOYnZIb3JEY1dWbXNSdGFnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T2NNOHlIeWplWnY1S3dzOWkxaUxuUmJkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Rmw4czdTeFRMZXNzSDFrcFdRVlliYlRxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c1ByRDJzU2FhMTFqZmNlR2F1TmpzODZtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77M2VhMXJha3QzM2EvN1gwN21sMnczUmE3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VHJ2UDlnNzJJdnNtK3pFSFBZZDRoNzBPA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OTloMGRpaTdoSDNWRWV2bzRiak84WXpqA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QnlkN0o3SFRTYWZmblZuT0tjNE56cU1MA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77REJmd0Y5UXRHSExSY2VHNEhIS1JMbVF1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77akY5NGNLSFVWZHVWNDFycitzeE4xNDNuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZHNSdHhOM1lQZG45dVBzckQwc1BrVWVMA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eDVTbmsrY2F6d3RlaUpldlY1RlhyN2VTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OTJMdmF1K25Qam8raVQ2TlBoTytkcjZyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZlMvNFlmMEMvWGI2M2ZQWDhPZjYxL3RQA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QkRnRXJBbm9DcVFFUmdSV0J6NExNZ2tTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QlhVRXc4RUJ3YnVDSHkvU1h5UmMxQllDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UXZ4RGRvVThDVFVNWFJYNmN4Z3VMRFNzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SnV4NXVGVjRmbmgzQkMxaVJVUkR4THRJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ajhqU3lFZUxqUlpMRm5kR3lVZkZSZFZIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VFVWN1JaZEZTNWRZTEZtejVFYU1Xb3dnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cGowV0h4c1ZleVIyY3FuMzB0MUxoK1BzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NGdyajdpNHpYSmF6N05weXRlV3B5OCt1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77a0YvQldYRXFIaHNmSGQ4US80a1R3cW5sA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VEs3MFg3bDM1UVRYazd1SCs1TG54aXZuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77amZGZCtHWDhrUVNYaExLRTBVU1h4RjJKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WTBtdVNSVko0d0pQUWJYZ2RiSmY4b0hrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cVpTUWxLTXBNNm5ScWMxcGhMVDR0Tk5DA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SldHS3NDdGRNejBudlMvRE5LTXdRN3JLA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YWRYdVZST2lRTkdSVENoeldXYTdtSTcrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VFBWSWpDU2JKWU5aQzdOcXN0NW5SMldmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eWxITUVlYjA1SnJrYnNzZHlmUEorMzQxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WmpWM2RXZStkdjZHL01FMTdtc09yWVhXA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cmx6YnVVNTNYY0c2NGZXKzY0OXRJRzFJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MmZETFJzdU5aUnZmYm9yZTFGR2dVYkMrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WUdpejcrYkdRcmxDVWVHOUxjNWJEbXpGA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YkJWczdkMW1zNjFxMjVjaVh0SDFZc3ZpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aXVKUEpkeVM2OTlaZlZmNTNjejJoTzI5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cGZhbCszZmdkZ2gzM04zcHV2TlltV0paA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WHRuUXJ1QmRyZVhNOHFMeXQ3dFg3TDVXA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WVZ0eFlBOXBqMlNQdERLb3NyMUtyMnBIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MWFmcXBPcUJHbythNXIzcWU3ZnRuZHJIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MjllLzMyMS8wd0dOQThVSFBoNFVITHgvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eVBkUWE2MUJiY1ZoM09Hc3c4L3JvdXE2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77djJkL1gzOUU3VWp4a2M5SGhVZWx4OEtQA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZGRVNzFOYzNxRGVVTnNLTmtzYXg0M0hIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Yi8zZzlVTjdFNnZwVURPanVmZ0VPQ0U1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OGVMSCtCL3ZuZ3c4MlhtS2ZhcnBKLzJmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OXJiUVdvcGFvZGJjMW9tMnBEWnBlMHg3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MyttQTA1MGR6aDB0UDV2L2ZQU005cG1hA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77czhwblM4K1J6aFdjbXptZmQzN3lRc2FGA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OFl1SkY0YzZWM1ErdXJUazBwMnVzSzdlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eTRHWHIxN3h1WEtwMjczNy9GV1hxMmV1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T1YwN2ZaMTl2ZTJHL1kzV0hydWVsbC9zA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Zm1ucHRlOXR2ZWx3cy8yVzQ2Mk92Z1Y5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NS9wZCt5L2U5cnA5NVk3L25Sc0Rpd2I2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N2k2K2UvOWUzRDNwZmQ3OTBRZXBEMTQvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ekhvNC9XajlZK3pqb2ljS1R5cWVxait0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77L2RYNDEyYXB2ZlRzb05kZ3o3T0laNCtHA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dUVNdi81WDVyMC9EQmMrcHp5dEd0RWJxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UjYxSHo0ejVqTjE2c2ZURjhNdU1sOVBqA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aGI4cC9yYjNsZEdybjM1Mys3MW5Zc25FA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OEd2UjY1ay9TdDZvdmpuNjF2WnQ1MlRvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NU5OM2FlK21wNHJlcTc0LzlvSDlvZnRqA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OU1lUjZleFArRStWbjQwL2Qzd0ovUEo0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Sm0xbTV0LzNoUFA3cGZJbUlnQUFBQWx3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QitOSlJFRlVhQVh0V25sUVZXVVVQK1JqA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aENlSXlwTkJmQ0N1TkVPWllPYWs1VExxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VkNiNlg3bE1saldwb2ROa3VlYVNMU0p1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V1FwR0dGa1dpVnAvNE5hNGpXYkJqRmxzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UllVYjVrTjhJb3VLTEU0WWZiOFB6K1c3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bC91dUdJNmx3NW01NzF2Tzh0MTdmdDg1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NTd2dlBhLzYrbnBxcGYrL0IyeTR4YlZyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VXpvVm5NZzYwcjE3OXlBeHRJc0w4L2VKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eTB0Y3JYVG5QSUNvK1Z0Y2RkVTF0ZFVYA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77M09kTElucEhENWsxNjZWeXIzVUppZHZQA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77blN2dUdSLzNYdFNkdTUvV2xacnJnZmx2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77THNydTJqWGtsTmUwVjJMcmt6WWtObGV2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aVZ4WldSbGxaV1hyNXFPam95Z3dNRkNiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MjcvL2dOWkhoL25RTFMrdm9ONjllMG4rA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aVJNblpjdmpINDhkbzU0OWVzZzU0eG9CA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SFFMb2tRRUQ2R2JydzhibFM1ZWxEZjRZA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TldxazdCcnZpMjJ5bkxHMXNzWDNxajYzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Mlp6UlpuUEcwMk5ua0MwNHVFdHpaRDNLA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d0lGYnQzK3RPUnVDR0s5WXZreUNoVVd3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aHErdmo3UlJVMU1yK1o4a0o5R3AwNmZwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MDAyZkVXK1VGYXRXazcrL1A2MWRzMHJLA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Sm05TWtYYk0xZ2dLQ3BKQWdaZStjeGVGA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aGpvMSsybmJ0bFBLeG8vbGVQTVhxUnBQA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VG9nUEJzcDQzeTVYRWUzNWRpOHRYYktJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UlhVdGJQbjUrVkhIamgza3ZOdDlnUTRlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T2t3aUcxSCtiNy9MWjFuMjdqdnl1VGQ5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dnBtT0hqMUtHTGVVUkVraUd6dXdKY1o4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Zkh4bzNwelptZ21BQXhCNGR4a2ZmT2FyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cjBsWlJBU0FRaVJWWEtvZzJLbXNySlRqA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77M0x3OGNqZ2NtZzJiclExRjkrdW5yUkVlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SHE3MUFaSnhmWTBwT3FvZW9vYkplTitZA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NTN0akdXUHI3QnBDRVgzNnlPbXNuQndDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V0tBcHowK1c3Y0xGUytpQnlFajZOVDlmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z3NRK2tNd1dmTWpEUkF2MHBXcE5UWTN1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QVgxOTdYSzNnMm16ZVZ1YUh6aHdJS1Z1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U2FQYTJscnEzeithU2twS2FPKytmUUxvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UWhyOTVCT2FibDNkZFlKalZPSVVDYURaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d2JCakpGV1BJOUVvMDl4eDBibGlxcXF1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bHVMSURpb0JyS3FyVnlrbk4wL0xLQ3EvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SmYzYkFwU3ZyeThsclB2QTlENEFJaHlwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T2xWMTV0Z3hUOU84QlF1bExsSUlaSkVDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UVp5aTBEZmIvWmdId2JaVlJLbThCZzN6A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VDJQTk1wTWFNWHlZZGwrb1FVaUhLaUhhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77L2lnNHJtVUNsZGVTZm91QlFpcEJpdkpFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VDRtbytIQjlnbzQ5ZVBBZ2JZelV3Q0JpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RW4ybjAwbmR1b1ZwTXB5dU9HckF3SnBJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cWVBaFNsUlM2eTdrVkQzSXFadEs1YUgrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VEg1dWttcEsxNGV0ZEZFUGNZRzh2YjFwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Mk5BaE9wbWIrVU1uZkFzRHIvaVZxK3FiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dStOdXdXNnI2RzMwQURJTVhtcGI2Uzd3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d0UxVFgxVmVBWlh2T21UNktMWUFmK29VA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TTV6YWhvVVE1SzVmcnBSeTdSOS91SW44A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGU5L2tuTnRoRTY3dmhGVUoyUXhCejB6A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Q2hBMnJPeEFoMjJwK3VwOXFQTnFYN1ZiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V2xwR0JRVUZWQ3JlNll4a0Y3VTNLaXBLA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cE5sQWdseHBXYWxSUkRjT0N3MGx1OTFPA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WjEwdXFyNXg0SUNBSTlBaGJhakM0RU9PA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Q1hyUTkwU1dRTG5pa3Fob2VjUDdpQ2NEA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77NEVmbDc2WXo4MWRMeDBQdTBVcjlDekRtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OGtlL2pFWTZ2MWZTMjVRM2FMd0VTMDZhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Zk1CdWx4bVRLRHgrdHNZRnNHeUhKNlBGA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MnRnb1RPcDk4Snl4eFVicG01RkdHUm1aA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bENKZUQ2eG95OVp0TkhOR0xMbUVVOU4zA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N0xRU2xTQXRYYktZMHRLMmlRTkY0d2E4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UHlLQzVzNTVRNmVMT3FjZVhzeGtWQVZMA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b0s3ODhMTW0yMm5NY0xJLzJQRCtnTW1LA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77M1lkbE5DQXlxajFFaGFaczZKUjh1VU1IA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RWh5SDZBQmQrN09ZcnAwdGx2M3ppYWs2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b0Z3bW0rYms5TGNvY3M5R0tkL2NEMFFkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UUUvZnJYYzhuTVdrUmtXMmVDMXdLTiswA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c0l5eFJaUmtaR1lhcHlWbzJCUjhpSUp0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RmFRbUNpWVRsa0NwOGdBSjZVZ2xUajF0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dXpYdWFKWHZxYTl1Z0lndDd4TTJnVXB3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UG9QRjh4ZFRkMmdSQzNudzJlRnd1cHJPA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V01jWTJZZzJnTStFZEFaQzJsa1pIeWRiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bFllWGNSRDRLaUU2VkZDenNuTW9JWEdEA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77S3FMMW9Rc0FFWmxSVWYya0xVUWNFL041A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N0ttMUJBbzFpQW1weUN3TklwbzZUNHhoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c1Z0dWVRMmtORGpjRTduaUdsTncrSXJaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TXZJNERTTFNJZzJiQ0haVWUxd1QyVDVIA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TU1aY1c1aUhGblZKVFZkcTJuT2RiYXd0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77a00xVW9naDFUYVZSSTBmSWxBbXc5aDg0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77S0w3T0N0WFNJaUtzVEd3V05VMnF1bXJmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RXFpZW9wYTBYZDV3VUZDVjBBZEFlSGhjA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bmc0YlJwMS9PMGF0NUFoRFBVTHFCQUZrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QmdEM1lJeE1CdEs0THFJUDZaWUpUalFqA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QnNlWTloQWRab1RvZ1BPemMzSTE5cml4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TVRJZElucGhEeHNBQk5seE1USHlLelJOA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MktKakNWVEJoTmUxWFRtZzZJaDBETnVDA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WThBM0k2UVgxUkhsb3A2cHBCYi9rdFNHA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T2hHNllCcVJ1T0Q0VXlMMW9RV2hkVy80A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U2xNSFlHYVJmV2JlNmlaQWFVcUdEaUtOA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z1FlTGEwWm9XT09wQzFIRFFDSE5SVVEwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MW1lRE9XMEl3TE5GR2pUU2kxTmVvSldyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MXNocFRyZUlOQWJOS0c4MnRnUktWVGptA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MUwrQnF6ejBWZWVqRm5naUFOaE8xRHZVA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SEJCYTdwdnBBSFFHRFpIUS9ySCtPakUrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MU1EeFJqdFdOUXFIbG1oUk0xQmZRSjZpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Qkx6QUcxR0FQc2lxUnBrZDh3RTBMazV4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77QUFpUlppU0FpTU1JSWhocmNoM0VkNHEyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d3NKQ283dzI3aEk3VVhjSzB4aEtCODdEA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TVJxRTl5aXJOSWpVNUJSUmc1UlY5Y3R4A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dW1nNC9TbG1KZkNkSjhWbzBRTWRIRHk0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cHJFc2JPWU5IaStIaUNxN2t0SllodHMyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77N2YyNEs5dXh3bG5WMVRXYUEzWE1Hd000A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YThLeno4ajZZc2JIbk4ydXIwdG1jb2lxA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWZNWFNCYjZaZ1FBRWJrSmlSOFJJbzZCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y3J2UGs5ZjY5WW5mRkJYTFgzZ2ZNbE51A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bmZ0dlBTQis0YzExaG9oZmVQSG5sdVRrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WklmNEtlQzc0T0FRaC9oOXFwMjROZncyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d2YrWDRQYS92ZU43ZjNYK2x4SGF2MFM2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cTNLN2kwdkZiMmxEcDA2ZFdpcUJ1dmQ5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y1BjLzRUL3llSTlzYmpEZDRBQUFBQUJKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UlU1RXJrSmdnZz09JzsgICAgJGltYWdlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77X3BhdGggPSAkR0xPQkFMU1snc3VnYXJfA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y29uZmlnJ11bJ2NhY2hlX2RpciddLidsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2dpbmltYWdlJzsgICAgJGNvdW50ID0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MDsgICAgd2hpbGUoISgkZnAgPSBAZm9wA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW4oJGltYWdlX3BhdGguJy5wbmcnLCAnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dycpKSl7ICAgICAkaW1hZ2VfcGF0aCA9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICRpbWFnZV9wYXRoLiRjb3VudDsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICRjb3VudCsrOyAgICB9ICAgICBmd3JpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGUoJGZwLCBiYXNlNjRfZGVjb2RlKCRpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bWFnZV9jb250ZW50cykpOyAgICBmY2xvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c2UoJGZwKTsgICAgY2hlY2tfbm93KHRyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWUpOyAgICBpZigkX1JFUVVFU1RbJ2FjA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGlvbiddPT0gJ0F1dGhlbnRpY2F0ZScgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KXsgICAgICBpZigkc3VnYXJfZmxhdm9yA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ID09ICdDRScgfHwgJHN1Z2FyX2ZsYXZvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ciA9PSAnQ09NJyl7ICAgICAgJG5vdGljA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZSA9ICcgVGhpcyBjb3B5IG9mIHRoZSBTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWdhckNSTSBjdXN0b21lciByZWxhdGlvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bnNoaXAgbWFuYWdlbWVudCBwcm9ncmFtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGFwcGVhcnMgdG8gaGF2ZSBsZWdhbCBuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b3RpY2VzIG9yIGF1dGhvciBhdHRyaWJ1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGlvbnMgbW9kaWZpZWQgb3IgcmVtb3ZlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZCBpbiB2aW9sYXRpb24gb2YgdGhlIEdOA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TGljZW5zZSB2ZXJzaW9uIDMuIFBsZWFzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZSBjb250YWN0IFN1Z2FyQ1JNIEluYy4gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dG8gY29ycmVjdCB0aGlzIHByb2JsZW0uA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JzsgICAgICB9ZWxzZXsgICAgICAkbm90A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aWNlID0gJ1RoaXMgY29weSBvZiB0aGUgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U3VnYXJDUk0gY3VzdG9tZXIgcmVsYXRpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b25zaGlwIG1hbmFnZW1lbnQgcHJvZ3JhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bSBhcHBlYXJzIHRvIGhhdmUgbGVnYWwgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bm90aWNlcyBvciBhdXRob3IgYXR0cmliA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dXRpb25zIG1vZGlmaWVkIG9yIHJlbW92A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWQgaW4gdmlvbGF0aW9uIG9mIHRoZSBTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWdhckNSTSBTdWJzY3JpcHRpb24gQWdyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWVtZW50LiBQbGVhc2UgY29udGFjdCBTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWdhckNSTSBJbmMuIHRvIGNvcnJlY3QgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGhpcyBwcm9ibGVtLic7ICAgICAgfSAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgIGVjaG8gJzxoZWFkPjx0aXRsZT5QA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b3dlcmVkIEJ5IFN1Z2FyQ1JNPC90aXRsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZT48bGluayByZWw9InN0eWxlc2hlZXQiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IHR5cGU9InRleHQvY3NzIiBocmVmPSJ0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aGVtZXMvU3VnYXIvbmF2aWdhdGlvbi5jA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Zj0idGhlbWVzL1N1Z2FyL3N0eWxlLmNzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cyIgLz48bGluayByZWw9InN0eWxlc2hlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PSJ0aGVtZXMvU3VnYXIvY29sb3JzLnN1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2FyLmNzcyIgaWQ9ImN1cnJlbnRfY29sA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b3Jfc3R5bGUiIC8+PGxpbmsgcmVsPSJzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cyIgaHJlZj0idGhlbWVzL1N1Z2FyL2ZvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bnRzLm5vcm1hbC5jc3MiIGlkPSJjdXJyA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW50X2ZvbnRfc3R5bGUiLz48L2hlYWQ+A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PGRpdiAgYWxpZ249ImNlbnRlciIgc3R5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGU9InBvc2l0aW9uOnJlbGF0aXZlO3RvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cDoyMDBweCI+PHRhYmxlIHdpZHRoPTQwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MCBjbGFzcz0idGFiRm9ybSI+PHRyPjx0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dGVyIj48Yj4nLiRub3RpY2UuJzwvYj48A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77L3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PSIyIiBhbGlnbj0iY2VudGVyIj48aW1nA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IHN0eWxlPSJtYXJnaW4tdG9wOiAycHgiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGJvcmRlcj0iMCIgd2lkdGg9IjEwNiIgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aGVpZ2h0PSIyMyIgc3JjPSInLiAkaW1hA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2VfcGF0aCAuICcucG5nIiBhbHQ9IlBvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d2VyZWQgQnkgU3VnYXJDUk0iPjwvdGQ+A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PC90cj48dHI+PHRkIGNvbHNwYW49IjIiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGFsaWduPSJyaWdodCI+PHNwYW4gaWQ9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ImRvdHMiPjwvc3Bhbj48L3RkPjwvdHI+A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PC90YWJsZT4nOyAgICAgIGVjaG8gJzxiA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cj48c2NyaXB0PnZhciBjb3VudCA9IDY7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGZ1bmN0aW9uIHVwZGF0ZURvdHMoKXtpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Zihjb3VudCA+IDApe2NvdW50LS07fSBpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Zihjb3VudD09MSl7ZG9jdW1lbnQubG9jA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YXRpb249ImluZGV4LnBocCI7fWRvY3VtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW50LmdldEVsZW1lbnRCeUlkKCJkb3RzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IikuaW5uZXJIVE1MPSBjb3VudDsgc2V0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VGltZW91dCgidXBkYXRlRG90cygpOyIsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IDEwMDApO311cGRhdGVEb3RzKCk7PC9zA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y3JpcHQ+PC9kaXY+JzsgICAgICBkaWUoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KTsgICAgIH0gICAgaWYoJF9SRVFVRVNUA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WydhY3Rpb24nXT09ICdBYm91dCcgJiYgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IWVtcHR5KCRfU0VTU0lPTlsnbXZpJ10pA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KXsgICAgIGVjaG8gYmFzZTY0X2RlY29kA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZSgkX1NFU1NJT05bJ212aSddKTsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77fWVsc2UgaWYoJF9SRVFVRVNUWydhY3RpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b24nXT09ICdMb2dpbicgfHwgJF9SRVFVA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RVNUWydhY3Rpb24nXT09ICdBYm91dCcgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KXsgICAgICAkX1NFU1NJT05bJ212aSddA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ID0gJyc7ICAgICBpZigkcSAmIDIpeyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICRfU0VTU0lPTlsnbXZpJ10gLj0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JzxkaXYgYWxpZ249ImNlbnRlciIgY2xhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c3M9ImNvcHlSaWdodCI+JyAuJHN0ciAuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICc8L2Rpdj4nOyAgICAgfSAgICAgaWYoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JHEgJiAxKXsgICAgICAkX1NFU1NJT05bA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J212aSddIC49ICc8ZGl2IGFsaWduPSJjA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZW50ZXIiPjxpbWcgc3R5bGU9Im1hcmdpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bi10b3A6IDJweCIgYm9yZGVyPSIwIiB3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aWR0aD0iMTA2IiBoZWlnaHQ9IjIzIiBzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cmM9IicuICRpbWFnZV9wYXRoIC4gJy5wA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bmciIGFsdD0iUG93ZXJlZCBCeSBTdWdhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ckNSTSI+PC9kaXY+JzsgICAgIH0gICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77IGlmKGVtcHR5KCRfU0VTU0lPTlsnbXZpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J10pICYmICFlbXB0eSgkb2RkKSkkX1NFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U1NJT05bJ212aSddID0gYmFzZTY0X2RlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y29kZSgkb2RkKTsgICAgIGVjaG8gJF9TA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RVNTSU9OWydtdmknXTsgICAgICRfU0VTA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U0lPTlsnbXZpJ10gPSBiYXNlNjRfZW5jA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b2RlKCRfU0VTU0lPTlsnbXZpJ10pOyAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgfSAgICAgfSAgfSB9ICBpZighZnVuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y3Rpb25fZXhpc3RzKCdtdmNjaGVjaycpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KXsgIGZ1bmN0aW9uIG12Y2NoZWNrKCl7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bXZpJ10pICYmICFlbXB0eSgkR0xPQkFMA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77U1snYXBwJ10tPmhlYWRlckRpc3BsYXllA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZCkpeyAgICBlY2hvIGJhc2U2NF9kZWNvA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZGUoJF9TRVNTSU9OWydtdmknXSk7ICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77fSAgfSB9ICBpZighZnVuY3Rpb25fZXhpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77c3RzKCdtdmNsb2cnKSl7ICAgZnVuY3RpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b24gbXZjbG9nKCR0aW1lX29uX2xhc3RfA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cGFnZSkgeyAgIGlmKGVtcHR5KCRfUkVRA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VUVTVFsnYWN0aW9uJ10pKXJldHVybjsgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICBzd2l0Y2goJF9SRVFVRVNUWydhY3RpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77b24nXSl7ICAgIGNhc2UgJ0xvZ2luJzokA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y2FzZSA9IDE7JGxldmVsPTE7YnJlYWs7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgIGNhc2UgJ0F1dGhlbnRpY2F0ZSc6A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JGNhc2UgPSAwOyRsZXZlbD0yO2JyZWFrA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OyAgICBjYXNlICdBYm91dCc6JGNhc2UgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PSAxOyRsZXZlbD0xO2JyZWFrOyAgICBkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWZhdWx0Om12Y2NoZWNrKCk7cmV0dXJuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OyAgIH0gICBnbG9iYWwgJGF1dGhMZXZlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bDsgICAkYXV0aExldmVsID0gJGxldmVsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OyAgICAkZnMgPSBhcnJheSAoKTsgICAgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JGZzW10gPSBhcnJheSAoJ2cnID0+ICdhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VzVqYkhWa1pTOU5Wa012Vm1sbGR5OVRkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77V2RoY2xacFpYY3VjR2h3JywgJ20nID0+A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICcnLCAnYScgPT4gJ0ptTnZjSGs3SURJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77d01EUXRNakF4TVNCVGRXZGhja05TVFNCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SmJtTXVJRlJvWlNCUWNtOW5jbUZ0SUdsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eklIQnliM1pwWkdWa0lFRlRJRWxUTENCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77M2FYUm9iM1YwSUhkaGNuSmhiblI1TGlBA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z1RHbGpaVzV6WldRZ2RXNWtaWElnUEdFA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2FISmxaajBpVEVsRFJVNVRSUzUwZUhRA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aUlIUmhjbWRsZEQwaVgySnNZVzVySWlCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77amJHRnpjejBpWTI5d2VWSnBaMmgwVEdsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dWF5SStRVWRRVEhZelBDOWhQaTQ4WW5JA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77K1ZHaHBjeUJ3Y205bmNtRnRJR2x6SUdaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eVpXVWdjMjltZEhkaGNtVTdJSGx2ZFNCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77allXNGdjbVZrYVhOMGNtbGlkWFJsSUdsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MElHRnVaQzl2Y2lCdGIyUnBabmtnYVhRA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2RXNWtaWElnZEdobElIUmxjbTF6SUc5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bUlIUm9aU0E4WW5JK1BHRWdhSEpsWmowA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aVRFbERSVTVUUlM1MGVIUWlJSFJoY21kA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGREMGlYMkpzWVc1cklpQmpiR0Z6Y3owA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77aVkyOXdlVkpwWjJoMFRHbHVheUkrSUVkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T1ZTQkJabVpsY204Z1IyVnVaWEpoYkNCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UWRXSnNhV01nVEdsalpXNXpaU0IyWlhKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77emFXOXVJRE04TDJFK0lHRnpJSEIxWW14A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cGMyaGxaQ0JpZVNCMGFHVWdSbkpsWlNCA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77VGIyWjBkMkZ5WlNCR2IzVnVaR0YwYVc5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dUxDQnBibU5zZFdScGJtY2dkR2hsSUdGA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77a1pHbDBhVzl1WVd3Z2NHVnliV2x6YzJsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dmJpQnpaWFFnWm05eWRHZ2dhVzRnZEdoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bElITnZkWEpqWlNCamIyUmxJR2hsWVdSA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGNpNDhZbkkrJywgJ2knID0+ICcxJywgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J2InID0+ICdKbU52Y0hrN0lESXdNRFF0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TWpBeE1TQThZU0JvY21WbVBTSm9kSFJ3A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77T2k4dmQzZDNMbk4xWjJGeVkzSnRMbU52A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YlNJZ2RHRnlaMlYwUFNKZllteGhibXNpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SUdOc1lYTnpQU0pqYjNCNVVtbG5hSFJNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YVc1cklqNVRkV2RoY2tOU1RTQkpibU11A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UEM5aFBpQkJiR3dnVW1sbmFIUnpJRkpsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YzJWeWRtVmtMZz09JywgJ2MnPT4kY2FzA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZSwgJ2wnPT4kbGV2ZWwsICdzJz0+Mik7A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICRmc1tdID0gYXJyYXkgKCdnJyA9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77PiAnYVc1amJIVmtaUzlOVmtNdlZtbGxkA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eTlUZFdkaGNsWnBaWGN1Y0dodycsICdtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JyA9PiAnJywgJ2EnID0+ICdVM1ZuWVhKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77RFVrMGdhWE1nWVNCMGNtRmtaVzFoY21zA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2IyWWdVM1ZuWVhKRFVrMHNJRWx1WXk0A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z1FXeHNJRzkwYUdWeUlHTnZiWEJoYm5rA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z1lXNWtJSEJ5YjJSMVkzUWdibUZ0WlhNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2JXRjVJR0psSUhSeVlXUmxiV0Z5YTNNA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z2IyWWdkR2hsSUhKbGMzQmxZM1JwZG1VA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z1kyOXRjR0Z1YVdWeklIZHBkR2dnZDJoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cFkyZ2dkR2hsZVNCaGNtVWdZWE56YjJOA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77cFlYUmxaQzQ9JywgJ2knID0+ICcxJywgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J2InID0+ICdVM1ZuWVhKRFVrMGdhWE1nA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WVNCMGNtRmtaVzFoY21zZ2IyWWdVM1ZuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WVhKRFVrMHNJRWx1WXk0Z1FXeHNJRzkwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YUdWeUlHTnZiWEJoYm5rZ1lXNWtJSEJ5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YjJSMVkzUWdibUZ0WlhNZ2JXRjVJR0psA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SUhSeVlXUmxiV0Z5YTNNZ2IyWWdkR2hsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SUhKbGMzQmxZM1JwZG1VZ1kyOXRjR0Z1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YVdWeklIZHBkR2dnZDJocFkyZ2dkR2hsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZVNCaGNtVWdZWE56YjJOcFlYUmxaQzQ9A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JywgJ2MnPT4kY2FzZSwgJ2wnPT4kbGV2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ZWwsICdzJz0+Mik7ICAgICRmc1tdID0gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YXJyYXkgKCdnJyA9PiAnYVc1amJIVmtaA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UzlwYldGblpYTXZjRzkzWlhKbFpHSjVYA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77M04xWjJGeVkzSnRMbkJ1Wnc9PScsICdtA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JyA9PiAnODI0ZTdlNjVhM2I3OTAxY2IwA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YTFkNTNhODBhZDkzMTAnLCAnYScgPT4gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JycsICdpJyA9PiAwICwnYyc9PiRjYXNlA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77LCAnbCc9PiRsZXZlbCwgJ3MnPT4xKTsgA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77ICAgICAgICAgICAgJGZzW10gPSBhcnJhA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77eSAoJ2cnID0+ICdhVzVqYkhWa1pTOU5WA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77a012Vm1sbGR5OVRkV2RoY2xacFpYY3VjA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77R2h3JywgJ20nID0+ICcnLCAnYScgPT4gA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77J1BHbHRaeUJ6ZEhsc1pUMG5iV0Z5WjJsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77dUxYUnZjRG9nTW5CNEp5QmliM0prWlhJA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77OUp6QW5JSGRwWkhSb1BTY3hNRFluSUdoA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bGFXZG9kRDBuTWpNbklITnlZejBuYVc1A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77amJIVmtaUzlwYldGblpYTXZjRzkzWlhKA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77bFpHSjVYM04xWjJGeVkzSnRMbkJ1WnljA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Z1lXeDBQU2RRYjNkbGNtVmtJRUo1SUZOA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MVoyRnlRMUpOSno0PScsICdpJyA9PiAnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77MScsICdiJyA9PiAnUEVFZ2FISmxaajBuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YUhSMGNEb3ZMM2QzZHk1emRXZGhjbVp2A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y21kbExtOXlaeWNnZEdGeVoyVjBQU2RmA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WW14aGJtc25QanhwYldjZ2MzUjViR1U5A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77SjIxaGNtZHBiaTEwYjNBNklESndlQ2NnA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WW05eVpHVnlQU2N3SnlCM2FXUjBhRDBuA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TVRBMkp5Qm9aV2xuYUhROUp6SXpKeUJ6A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77Y21NOUoybHVZMngxWkdVdmFXMWhaMlZ6A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77TDNCdmQyVnlaV1JpZVY5emRXZGhjbU55A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77YlM1d2JtY25JR0ZzZEQwblVHOTNaWEpsA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77WkNCQ2VTQlRkV2RoY2tOU1RTYytQQzloA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77UGc9PScsICdjJz0+JGNhc2UsICdsJz0+A7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77JGxldmVsLCAncyc9PjEpOyAgICBhbXNpA7C281A962E63480AE7A253EBE84B85D570C863B0A5BE54644FF4414252D0B77KCRmcyk7ICAgfSB9IA==";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10);
function getPrintLink()
{
diff --git a/install/checkDBSettings.php b/install/checkDBSettings.php
index a2a08622..29c0555c 100644
--- a/install/checkDBSettings.php
+++ b/install/checkDBSettings.php
@@ -47,15 +47,27 @@ installLog("Begin DB Check Process *************");
if(function_exists('sqlsrv_connect')){
$_SESSION['mssql_type'] = 'sqlsrv';
}
+
+
global $mod_strings;
$errors = array();
copyInputsIntoSession();
- if( trim($_SESSION['setup_db_database_name']) == '' ){
+ installLog("Checking DB Name is valid.");
+
+ $_SESSION['setup_db_database_name'] = trim($_SESSION['setup_db_database_name']);
+
+ if($_SESSION['setup_db_database_name'] == '' ){
$errors['ERR_DB_NAME'] = $mod_strings['ERR_DB_NAME'];
installLog("ERROR:: {$errors['ERR_DB_NAME']}");
}
+ if (!isValidDBName($_SESSION['setup_db_database_name'], $_SESSION['setup_db_type'])) {
+ $errIdx = 'ERR_DB_' . strtoupper($_SESSION['setup_db_type']) . '_DB_NAME_INVALID';
+ $errors[$errIdx] = $mod_strings[$errIdx];
+ installLog("ERROR:: {$errors[$errIdx]}");
+ }
+
if($_SESSION['setup_db_type'] != 'oci8') {
if( trim($_SESSION['setup_db_host_name']) == '' ){
@@ -84,7 +96,7 @@ installLog("Begin DB Check Process *************");
// test the account that will talk to the db if we're not creating it
if( $_SESSION['setup_db_sugarsales_user'] != '' && !$_SESSION['setup_db_create_sugarsales_user'] ){
- if( $_SESSION['setup_db_type'] == 'mysql' ){
+ if( $_SESSION['setup_db_type'] == 'mysql' ){
installLog("testing with mysql");
if(isset($_SESSION['mysql_type']) && $_SESSION['mysql_type'] == 'mysqli'){
installLog("MySQLI library detected");
@@ -160,10 +172,11 @@ installLog("Begin DB Check Process *************");
}
}
// Bug 29855 - Check to see if given db name is valid
- if (preg_match("/[\"\'\*\/\\?\:\\<\>\-]+/i", $_SESSION['setup_db_database_name']) ) {
- $errors['ERR_DB_MSSQL_DB_NAME'] = $mod_strings['ERR_DB_MSSQL_DB_NAME_INVALID'];
- installLog("ERROR:: {$errors['ERR_DB_MSSQL_DB_NAME']}");
- }
+// if (preg_match("/^[0-9#@]+|[\"\'\*\/\\?\:\\<\>\-\ \&\!\(\)\[\]\{\}\;\,\.\`\~\|\\\\]+/i", $_SESSION['setup_db_database_name']) ) {
+// $errors['ERR_DB_MSSQL_DB_NAME'] = $mod_strings['ERR_DB_MSSQL_DB_NAME_INVALID'];
+// installLog("ERROR:: {$errors['ERR_DB_MSSQL_DB_NAME']}");
+// }
+// Moved to isValidDBName function in db_utils.php
} elseif( $_SESSION['setup_db_type'] == 'oci8' ){
}
diff --git a/install/language/en_us.lang.php b/install/language/en_us.lang.php
index 20dd8829..b7755aaf 100644
--- a/install/language/en_us.lang.php
+++ b/install/language/en_us.lang.php
@@ -107,7 +107,9 @@ $mod_strings = array(
'ERR_DB_MYSQL_VERSION2' => ') is not supported by Sugar. You will need to install a version that is compatible with the Sugar application. Please consult the Compatibility Matrix in the Release Notes for supported MySQL versions.',
'ERR_DB_NAME' => 'Database name cannot be blank.',
'ERR_DB_NAME2' => "Database name cannot contain a '\\', '/', or '.'",
- 'ERR_DB_MSSQL_DB_NAME_INVALID' => "Database name cannot contain a '\"', \"'\", '*', '/', '\', '?', ':', '<', '>', or '-'",
+ 'ERR_DB_MYSQL_DB_NAME_INVALID' => "Database name cannot contain a '\\', '/', or '.'",
+ 'ERR_DB_MSSQL_DB_NAME_INVALID' => "Database name cannot begin with a number, '#', or '@' and cannot contain a space, '\"', \"'\", '*', '/', '\', '?', ':', '<', '>', '&', '!', or '-'",
+ 'ERR_DB_OCI8_DB_NAME_INVALID' => "Database name can only consist of alphanumeric characters and the symbols '#', '_' or '$'",
'ERR_DB_PASSWORD' => 'The passwords provided for the Sugar database administrator do not match. Please re-enter the same passwords in the password fields.',
'ERR_DB_PRIV_USER' => 'Provide a database administrator user name. The user is required for the initial connection to the database.',
'ERR_DB_USER_EXISTS' => 'User name for Sugar database user already exists -- cannot create another one with the same name. Please enter a new user name.',
diff --git a/json_server.php b/json_server.php
index 64ab0376..0e4fe38a 100644
--- a/json_server.php
+++ b/json_server.php
@@ -49,11 +49,6 @@ $global_registry_var_name = 'GLOBAL_REGISTRY';
$SUPPORTED_METHODS = array(
'retrieve',
'query',
- 'set_accept_status',
- 'get_user_array',
- 'get_objects_from_module',
- 'email',
- 'get_full_list'
);
/**
@@ -114,11 +109,17 @@ function json_query($request_id, $params) {
$query_orderby = '';
if(!empty($args['order'])) {
- $query_orderby = $args['order'];
+ $query_orderby = preg_replace('/[^\w_.-]+/i', '', $args['order']['by']);
+ if(!empty($args['order']['desc'])) {
+ $query_orderby .= " DESC";
+ } else {
+ $query_orderby .= " ASC";
+ }
}
+
$query_limit = '';
if(!empty($args['limit'])) {
- $query_limit = $args['limit'];
+ $query_limit = (int)$args['limit'];
}
$query_where = construct_where($args, $focus->table_name,$module);
$list_arr = array();
@@ -169,273 +170,10 @@ function json_query($request_id, $params) {
echo $json_response;
}
-
-function json_set_accept_status($request_id, $params) {
- global $current_user;
- global $beanFiles,$beanList;
- $json = getJSONobj();
- require_once($beanFiles[$beanList[$params[0]['module']]]);
-
- $focus = new $beanList[$params[0]['module']];
- $focus->id = $params[0]['record'];
-
- $test = $focus->set_accept_status($current_user,$params[0]['accept_status']);
-
- $response = array();
- $response['id'] = $request_id;
- $response['result'] = array("status"=>"success","record"=>$params[0]['record'],'accept_status'=>$params[0]['accept_status']);
- $json_response = $json->encode($response, true);
- print $json_response;
-}
-
-
-/**
- * retrieves Users matching passed criteria
- */
-function json_get_user_array($request_id, $params) {
- $json = getJSONobj();
- $args = $params[0];
-
- //decode condition parameter values..
- if(is_array($args['conditions'])) {
- foreach($args['conditions'] as $key=>$condition) {
- if(!empty($condition['value'])) {
- $args['conditions'][$key]['value']=$json->decode($condition['value']);
- }
- }
- }
-
- $response = array();
- $response['id'] = $request_id;
- $response['result'] = array();
- $response['result']['list'] = array();
-
- if(showFullName()) {
- $user_array = getUserArrayFromFullName($args['conditions'][0]['value']);
- } else {
- $user_array = get_user_array(false, "Active", $focus->assigned_user_id, false, $args['conditions'][0]['value']);
- }
-
- foreach($user_array as $id=>$name) {
- array_push($response['result']['list'], array('fields' => array('id' => $id, 'user_name' => $name), 'module' => 'Users'));
- }
-
- print $json->encode($response, true);
-}
-
-function json_get_objects_from_module($request_id, $params) {
- global $beanList, $beanFiles, $current_user;
- $json = getJSONobj();
-
- $module_name = $params[0]['module'];
- $offset = intval($params[0]['offset']);
- $where = $params[0]['where'];
- $max = $params[0]['max'];
- $order_by = $params[0]['order_by'];
- $using_cp = false;
-
- if($module_name == 'CampaignProspects'){
- $module_name = 'Prospects';
- $using_cp = true;
- }
-
- $class_name = $beanList[$module_name];
- require_once($beanFiles[$class_name]);
- $seed = new $class_name();
- if($where == ''){
- $where = '';
- }
- if($offset == '' || $offset == -1){
- $offset = 0;
- }
- if($max == ''){
- $max = 10;
- }
-
- $deleted = '0';
- if($using_cp){
- $fields = array('id', 'first_name', 'last_name');
- $response = $seed->retrieveTargetList($where, $fields, $offset,-1,$max,$deleted);
- }else{
- $response = $seed->get_list($order_by, $where, $offset,-1,$max,$deleted);
- }
-
- $list = $response['list'];
- $row_count = $response['row_count'];
-
- $output_list = array();
- foreach($list as $value)
- {
- $output_list[] = get_return_value($value, $module_name);
- }
- $response = array();
- $response['id'] = $request_id;
-
- $response['result'] = array('result_count'=>$row_count,'entry_list'=>$output_list);
- $json_response = $json->encode($response, true);
- print $json_response;
-}
-
-
-
-
-function json_email($request_id, $params) {
- global $response, $sugar_config;
- global $beanFiles,$beanList;
- $json = getJSONobj();
-
- $args = $params[0];
-
- if($sugar_config['list_max_entries_per_page'] < 50) // override query limits
- $sugar_config['list_max_entries_per_page'] = 50;
-
- $list_return = array();
-
- if(! empty($args['module'])) {
- $args['modules'] = array($args['module']);
- }
-
- foreach($args['modules'] as $module) {
- require_once($beanFiles[$beanList[$module]]);
- $focus = new $beanList[$module];
-
- $query_orderby = '';
- if(!empty($args['order'])) {
- $query_orderby = $args['order'];
- }
- $query_limit = '';
- if(!empty($args['limit'])) {
- $query_limit = $args['limit'];
- }
- $query_where = construct_where($args,$focus->table_name);
- $list_arr = array();
-
- $curlist = $focus->get_list($query_orderby, $query_where, 0, $query_limit, -1, 0);
- $list_return = array_merge($list_return,$curlist['list']);
- }
-
- for($i = 0;$i < count($list_return);$i++) {
- $list_arr[$i]= array();
- $list_arr[$i]['fields']= array();
- $list_arr[$i]['module']= $list_return[$i]->object_name;
-
- foreach($args['field_list'] as $field) {
- $list_arr[$i]['fields'][$field] = $list_return[$i]->$field;
- }
- }
-
- $response['id'] = $request_id;
- $response['result'] = array("list"=>$list_arr);
- $json_response = $json->encode($response, true);
- echo $json_response;
-}
-
-
-function json_get_full_list($request_id, $params) {
- global $beanFiles;
- global $beanList;
- $json = getJSONobj();
- require_once($beanFiles[$beanList[$params[0]['module']]]);
-
- $where = str_replace('\\','', rawurldecode($params[0]['where']));
- $order = str_replace('\\','', rawurldecode($params[0]['order']));
- $focus = new $beanList[$params[0]['module']];
-
- $fullList = $focus->get_full_list($order, $where, '');
- $all_fields = array_merge($focus->column_fields,$focus->additional_column_fields);
-
- $js_fields_arr = array();
-
- if(isset($fullList) && !empty($fullList)) { // json error if this isn't defensive
- $i=0;
- foreach($fullList as $note) {
- $js_fields_arr[$i] = array();
-
- foreach($all_fields as $field) {
- if(isset($note->$field)) {
- $note->$field = from_html($note->$field);
- $note->$field = preg_replace('/\r\n/','
',$note->$field);
- $note->$field = preg_replace('/\n/','
',$note->$field);
- $js_fields_arr[$i][$field] = addslashes($note->$field);
- }
- }
- $i++;
- }
- }
-
- $fin['id'] = $request_id;
- $fin['result'] = $js_fields_arr;
- $out = $json->encode($fin, true);
-
- print($out);
-}
//// END SUPPORTED METHODS
///////////////////////////////////////////////////////////////////////////////
-
-
-
-
-
-
-
-
-
-
// ONLY USED FOR MEETINGS
-function meeting_retrieve($module,$record) {
- global $response;
- global $beanFiles,$beanList;
- //header('Content-type: text/xml');
- require_once($beanFiles[$beanList[$module]]);
- $focus = new $beanList[$module];
- $json = getJSONobj();
-
- if(empty($module) || empty($record))
- {
- $response['error'] = array("error_msg"=>"method: retrieve: missing module or record as parameters");
- print $json->encode($response, true);
-
- }
-
- $focus->retrieve($record);
-
- $GLOBALS['log']->debug("JSON_SERVER:retrieved meeting:");
-
- $module_arr = populateBean($focus);
-
- if($module == 'Meetings')
- {
- $users = $focus->get_meeting_users();
- } else if($module == 'Calls')
- {
- $users = $focus->get_call_users();
- }
-
- $module_arr['users_arr'] = array();
-
- foreach($users as $user)
- {
- array_push($module_arr['users_arr'], populateBean($user));
- }
- $module_arr['orig_users_arr_hash'] = array();
- foreach($users as $user)
- {
- $module_arr['orig_users_arr_hash'][$user->id] = '1';
- }
-
- $module_arr['contacts_arr'] = array();
-
- $focus->load_relationships('contacts');
- $contacts=$focus->get_linked_beans('contacts','Contact');
- foreach($contacts as $contact)
- {
- array_push($module_arr['users_arr'], populateBean($contact));
- }
-
- return $module_arr;
-}
-
// HAS MEETING SPECIFIC CODE:
function populateBean(&$focus) {
$all_fields = $focus->column_fields;
@@ -463,54 +201,6 @@ $GLOBALS['log']->debug("JSON_SERVER:populate bean:");
return $module_arr;
}
-
-
-
-
-
-
-
-
-
-
-
-function getUserJSON() {
-}
-
-
-function getUserConfigJSON() {
- require_once('include/TimeDate.php');
- $timedate = TimeDate::getInstance();
- global $current_user,$global_registry_var_name,$json,$sugar_config;
-
- if(isset($_SESSION['authenticated_user_theme']) && $_SESSION['authenticated_user_theme'] != '')
- {
- $theme = $_SESSION['authenticated_user_theme'];
- }
- else
- {
- $theme = $sugar_config['default_theme'];
- }
- $user_arr = array();
- $user_arr['theme'] = $theme;
- $user_arr['fields'] = array();
- $user_arr['module'] = 'User';
- $user_arr['fields']['id'] = $current_user->id;
- $user_arr['fields']['user_name'] = $current_user->user_name;
- $user_arr['fields']['first_name'] = $current_user->first_name;
- $user_arr['fields']['last_name'] = $current_user->last_name;
- $user_arr['fields']['email'] = $current_user->email1;
- $user_arr['fields']['gmt_offset'] = $timedate->getUserUTCOffset();
- $str = "\n".$global_registry_var_name.".current_user = ".$json->encode($user_arr, true).";\n";
-return $str;
-
-}
-
-
-
-
-
-
///////////////////////////////////////////////////////////////////////////////
//// UTILS
function authenticate() {
@@ -590,74 +280,17 @@ function construct_where(&$query_obj, $table='',$module=null) {
return implode(" {$query_obj['group']} ",$cond_arr);
}
-function getAppMetaJSON() {
- global $global_registry_var_name, $sugar_config;
- $json = getJSONobj();
-
- $str = "\nvar ".$global_registry_var_name." = new Object();\n";
- $str .= "\n".$global_registry_var_name.".config = {\"site_url\":\"".getJavascriptSiteURL()."\"};\n";
-
- $str .= $global_registry_var_name.".meta = new Object();\n";
- $str .= $global_registry_var_name.".meta.modules = new Object();\n";
- $modules_arr = array('Meetings','Calls');
- $meta_modules = array();
-
- global $beanFiles,$beanList;
- //header('Content-type: text/xml');
- foreach($modules_arr as $module) {
- require_once($beanFiles[$beanList[$module]]);
- $focus = new $beanList[$module];
- $meta_modules[$module] = array();
- $meta_modules[$module]['field_defs'] = $focus->field_defs;
- }
-
- $str .= $global_registry_var_name.".meta.modules.Meetings = ". $json->encode($meta_modules['Meetings'], true)."\n";
- $str .= $global_registry_var_name.".meta.modules.Calls = ". $json->encode($meta_modules['Calls'], true)."\n";
- return $str;
-}
-
-function getFocusData() {
- global $global_registry_var_name;
- $json = getJSONobj();
-
- if(empty($_REQUEST['module']) )
- return '';
- elseif(empty($_REQUEST['record'] ) )
- return "\n".$global_registry_var_name.'["focus"] = {"module":"'.$_REQUEST['module'].'",users_arr:[],fields:{"id":"-1"}}'."\n";
-
- $module_arr = meeting_retrieve($_REQUEST['module'], $_REQUEST['record']);
- return "\n".$global_registry_var_name."['focus'] = ". $json->encode($module_arr, true).";\n";
-}
-
-function getStringsJSON() {
- //set module and application string arrays based upon selected language
- global $current_language;
- global $global_registry_var_name;
- $json = getJSONobj();
-
- $currentModule = 'Calendar';
- $mod_list_strings = return_mod_list_strings_language($current_language,$currentModule);
- $str = "\n".$global_registry_var_name."['calendar_strings'] = {\"dom_cal_month_long\":". $json->encode($mod_list_strings['dom_cal_month_long']).",\"dom_cal_weekdays_long\":". $json->encode($mod_list_strings['dom_cal_weekdays_long'])."}\n";
-
- if(empty($_REQUEST['module']))
- $_REQUEST['module'] = 'Home';
-
- $currentModule = $_REQUEST['module'];
- $mod_strings = return_module_language($current_language,$currentModule);
- return $str . "\n".$global_registry_var_name."['meeting_strings'] = ". $json->encode($mod_strings, true)."\n";
-}
//// END UTILS
///////////////////////////////////////////////////////////////////////////////
-
///////////////////////////////////////////////////////////////////////////////
//// JSON SERVER HANDLER LOGIC
//ignore notices
-error_reporting(E_ALL ^ E_NOTICE);
+error_reporting(E_ALL & ~E_NOTICE);
ob_start();
insert_charset_header();
-
+global $sugar_config;
if(!empty($sugar_config['session_dir'])) {
session_save_path($sugar_config['session_dir']);
$GLOBALS['log']->debug("JSON_SERVER:session_save_path:".$sugar_config['session_dir']);
@@ -688,33 +321,6 @@ $GLOBALS['log']->debug("JSON_SERVER: current_language:".$current_language);
// resulting in 2 or more server hits per page load. Very bad for SSL.
if(strtolower($_SERVER['REQUEST_METHOD'])== 'get') {
echo "alert('DEPRECATED API\nPlease report as a bug.');";
- /**
- * Deprecated for security reasons.
- *
- * DO NOT USE.
- *
- *
- $current_user = authenticate();
- if(empty($current_user)) {
- $GLOBALS['log']->debug("JSON_SERVER: current_user isn't set");
- print "";
- }
-
- $str = '';
- $str .= getAppMetaJSON();
- $GLOBALS['log']->debug("JSON_SERVER:getAppMetaJSON");
-
- if($_GET['module'] != '_configonly') {
- $str .= getFocusData();
- $GLOBALS['log']->debug("JSON_SERVER: getFocusData");
- $str .= getStringsJSON();
- $GLOBALS['log']->debug("JSON_SERVER:getStringsJSON");
- }
-
- $str .= getUserConfigJSON();
- $GLOBALS['log']->debug("JSON_SERVER:getUserConfigJSON");
- print $str;
- */
} else {
// else act as a JSON-RPC server for SugarCRM
// create result array
@@ -762,4 +368,3 @@ if(strtolower($_SERVER['REQUEST_METHOD'])== 'get') {
ob_end_flush();
sugar_cleanup();
exit();
-?>
\ No newline at end of file
diff --git a/jssource/src_files/include/SugarEmailAddress/SugarEmailAddress.js b/jssource/src_files/include/SugarEmailAddress/SugarEmailAddress.js
index 1e484b0d..cac74e43 100644
--- a/jssource/src_files/include/SugarEmailAddress/SugarEmailAddress.js
+++ b/jssource/src_files/include/SugarEmailAddress/SugarEmailAddress.js
@@ -400,16 +400,13 @@
newContent.eaw = this;
newContent.onblur = function(e){this.eaw.retrieveEmailAddress(e)};
newContent.onkeydown = function(e){this.eaw.handleKeyDown(e)};
- if (YAHOO.env.ua.ie) {
- // IE doesn't bubble up "change" events through the DOM. So we need to find events that are looking at our parent and manually push them down to here
+ if (YAHOO.env.ua.ie > 0) {
+ // IE doesn't bubble up "change" events through the DOM.
+ // So we need to fire onChange events on the parent span when the input changes
var emailcontainer = Dom.getAncestorByTagName(insertInto,'span');
- var listeners = YAHOO.util.Event.getListeners(emailcontainer);
- if (typeof listeners != 'undefined' && listeners instanceof Array) {
- for (var i=0; i
+
id))
+ ){
$focus->save(true);
$return_id = $focus->id;
}else{
diff --git a/modules/Configurator/language/en_us.lang.php b/modules/Configurator/language/en_us.lang.php
index 9e11ae94..bc3c676f 100644
--- a/modules/Configurator/language/en_us.lang.php
+++ b/modules/Configurator/language/en_us.lang.php
@@ -200,6 +200,8 @@ $mod_strings = array (
'LBL_LOGGER_LOG_LEVEL'=>'Log Level',
'LBL_LEAD_CONV_OPTION' => 'Lead Conversion Options',
'LEAD_CONV_OPT_HELP' => "Copy - Creates and relates copies of all of the Lead's activities to new records that are selected by the user during conversion. Copies are created for each of the selected records.
Move - Moves all of the Lead's activities to a new record that is selected by the user during conversion.
Do Nothing - Does nothing with the Lead's activities during conversion. The activities remain related to the Lead only.",
+ 'LBL_CONFIG_AJAX' => 'Configure AJAX User Interface',
+ 'LBL_CONFIG_AJAX_DESC' => 'Enable or disable the use of the AJAX UI for specific modules.',
'LBL_LOGGER_MAX_LOGS'=>'Maximum number of logs (before rolling)',
'LBL_LOGGER_FILENAME_SUFFIX' =>'Append after filename',
'LBL_VCAL_PERIOD' => 'vCal Updates Time Period:',
diff --git a/modules/Configurator/tpls/EditView.tpl b/modules/Configurator/tpls/EditView.tpl
index e2d87063..a085d332 100644
--- a/modules/Configurator/tpls/EditView.tpl
+++ b/modules/Configurator/tpls/EditView.tpl
@@ -157,6 +157,7 @@
diff --git a/modules/Documents/documents.js b/modules/Documents/documents.js
index 0c2eef5d..b1491657 100644
--- a/modules/Documents/documents.js
+++ b/modules/Documents/documents.js
@@ -37,7 +37,7 @@ var rhandle=new RevisionListHandler();var from_popup_return=false;function docum
{if(the_key!='toJSON')
{var displayValue=name_to_value_array[the_key];displayValue=displayValue.replace(''',"'");displayValue=displayValue.replace('&',"&");displayValue=displayValue.replace('>',">");displayValue=displayValue.replace('<',"<");displayValue=displayValue.replace('" ',"\"");if(the_key=='related_doc_id'){related_doc_id=displayValue;}
window.document.forms[form_name].elements[the_key].value=displayValue;}}
-related_doc_id=YAHOO.lang.JSON.stringify(related_doc_id);var conditions=new Array();conditions[conditions.length]={"name":"document_id","op":"starts_with","value":related_doc_id};var query={"module":"DocumentRevisions","field_list":['id','revision','date_entered'],"conditions":conditions,"order":'date_entered desc'};result=global_rpcClient.call_method('query',query,true);rhandle.display(result);}
+related_doc_id=YAHOO.lang.JSON.stringify(related_doc_id);var conditions=new Array();conditions[conditions.length]={"name":"document_id","op":"starts_with","value":related_doc_id};var query={"module":"DocumentRevisions","field_list":['id','revision','date_entered'],"conditions":conditions,"order":{'by':'date_entered','desc':true}};result=global_rpcClient.call_method('query',query,true);rhandle.display(result);}
function RevisionListHandler(){}
RevisionListHandler.prototype.display=function(result){var names=result['list'];var rev_tag=document.getElementById('related_doc_rev_id');rev_tag.options.length=0;for(i=0;i{$MOD.LBL_LEAD_CONV_OPTION}: {sugar_help text=$MOD.LEAD_CONV_OPT_HELP}
+ {$MOD.LBL_CONFIG_AJAX} {sugar_help text=$MOD.LBL_CONFIG_AJAX_DESC}