From b2c9daa45534985e558268543754465ed95c6a1a Mon Sep 17 00:00:00 2001 From: aB0t Date: Tue, 9 Apr 2024 13:54:59 +0200 Subject: [PATCH] Release of v5.0.0-beta2 Add view list and single name fix. Add component code name fix. Add reset list of powers. --- CHANGELOG.md | 12 +- ComponentbuilderInstallerScript.php | 2 +- README.md | 10 +- admin/README.txt | 10 +- .../en-GB/en-GB.com_componentbuilder.ini | 14 +- admin/sql/install.mysql.utf8.sql | 10 +- .../{4.0.0-beta1.sql => 4.0.0-beta2.sql} | 0 admin/sql/updates/mysql/5.0.0-beta1.sql | 1 + admin/src/Controller/PowersController.php | 35 +- admin/src/Field/PluginsclassmethodsField.php | 8 +- .../src/Field/PluginsclasspropertiesField.php | 8 +- admin/src/Field/PowersclassmethodsField.php | 8 +- .../src/Field/PowersclasspropertiesField.php | 8 +- admin/src/Model/Admin_viewModel.php | 6 + admin/src/Model/Joomla_componentModel.php | 4 + admin/tmpl/admin_view/default.php | 384 +++--- admin/tmpl/class_method/default.php | 10 +- admin/tmpl/class_property/default.php | 10 +- admin/tmpl/custom_admin_view/default.php | 100 +- admin/tmpl/custom_code/default.php | 78 +- admin/tmpl/dynamic_get/default.php | 336 ++--- admin/tmpl/field/default.php | 142 +- admin/tmpl/fieldtype/default.php | 420 +++--- admin/tmpl/help_document/default.php | 54 +- admin/tmpl/joomla_plugin/default.php | 308 ++--- admin/tmpl/layout/default.php | 10 +- admin/tmpl/library/default.php | 358 ++--- admin/tmpl/power/default.php | 10 +- admin/tmpl/server/default.php | 136 +- admin/tmpl/site_view/default.php | 110 +- admin/tmpl/template/default.php | 10 +- componentbuilder.xml | 6 +- componentbuilder_update_server.xml | 22 +- .../String/ComponentCodeNameHelper.php | 48 + media/js/admin_view.js | 410 +++--- media/js/class_method.js | 38 +- media/js/class_property.js | 38 +- media/js/custom_admin_view.js | 100 +- media/js/custom_code.js | 78 +- media/js/dynamic_get.js | 1168 ++++++++--------- media/js/field.js | 364 ++--- media/js/fieldtype.js | 708 +++++----- media/js/help_document.js | 218 +-- media/js/joomla_plugin.js | 297 ++--- media/js/layout.js | 10 +- media/js/library.js | 624 ++++----- media/js/power.js | 10 +- media/js/server.js | 580 ++++---- media/js/site_view.js | 128 +- media/js/template.js | 10 +- 50 files changed, 3747 insertions(+), 3722 deletions(-) rename admin/sql/updates/mysql/{4.0.0-beta1.sql => 4.0.0-beta2.sql} (100%) create mode 100644 admin/sql/updates/mysql/5.0.0-beta1.sql create mode 100644 libraries/vendor_jcb/VDM.Joomla/src/Utilities/String/ComponentCodeNameHelper.php diff --git a/CHANGELOG.md b/CHANGELOG.md index d5553eca5..644a6ae29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v5.0.0-beta2 + +- Add view list and single name fix. +- Add component code name fix. +- Add reset list of powers. + # v5.0.0-beta1 - Add the compiler menu back. @@ -26,9 +32,11 @@ - Add power path override option on component level. - Fix the sql build feature. #1032 -# v4.0.0-beta1 +# v4.0.0-beta2 -- Add the compiler menu back. +- Add view list and single name fix. +- Add component code name fix. +- Add reset list of powers. # v3.2.0 diff --git a/ComponentbuilderInstallerScript.php b/ComponentbuilderInstallerScript.php index c6519580c..8f58f9e31 100644 --- a/ComponentbuilderInstallerScript.php +++ b/ComponentbuilderInstallerScript.php @@ -3139,7 +3139,7 @@ class Com_ComponentbuilderInstallerScript implements InstallerScriptInterface echo '
-

Upgrade to Version 5.0.0-beta1 Was Successful! Let us know if anything is not working as expected.

'; +

Upgrade to Version 5.0.0-beta2 Was Successful! Let us know if anything is not working as expected.

'; // Add/Update component in the action logs extensions table. $this->setActionLogsExtensions(); diff --git a/README.md b/README.md index 8a858eda4..b87812a94 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (5.0.0-beta1) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (5.0.0-beta2) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,13 +144,13 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 7th April, 2024 -+ *Version*: 5.0.0-beta1 ++ *Last Build*: 9th April, 2024 ++ *Version*: 5.0.0-beta2 + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **730042** ++ *Line count*: **730207** + *Field count*: **2080** -+ *File count*: **5127** ++ *File count*: **5133** + *Folder count*: **518** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com). diff --git a/admin/README.txt b/admin/README.txt index 8a858eda4..b87812a94 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (5.0.0-beta1) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [gitea](https://git.vdm.dev/joomla/Component-Builder/tags) is the latest release (5.0.0-beta2) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) @@ -144,13 +144,13 @@ TODO + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](https://git.vdm.dev/joomla/Component-Builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 7th April, 2024 -+ *Version*: 5.0.0-beta1 ++ *Last Build*: 9th April, 2024 ++ *Version*: 5.0.0-beta2 + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *License*: GNU General Public License version 2 or later; see LICENSE.txt -+ *Line count*: **730042** ++ *Line count*: **730207** + *Field count*: **2080** -+ *File count*: **5127** ++ *File count*: **5133** + *Folder count*: **518** > This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](https://www.joomlacomponentbuilder.com). diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini index 077f9bd0e..9f4418804 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini @@ -4021,7 +4021,7 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB="New Tab" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB_2="New Tab 2" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEXT="Next" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NO="No" -COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo JText::_('Text'); ?>
<?php echo JText::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" +COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo Text::_('Text'); ?>
<?php echo Text::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the libraries for more details." COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code" @@ -6388,7 +6388,7 @@ COM_COMPONENTBUILDER_JOOMLA_MODULE_NAME_MESSAGE="Error! Please add name here." COM_COMPONENTBUILDER_JOOMLA_MODULE_NEW="A New Joomla Module" COM_COMPONENTBUILDER_JOOMLA_MODULE_NO="No" COM_COMPONENTBUILDER_JOOMLA_MODULE_NONE="None" -COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo JText::_('Text'); ?>
<?php echo JText::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" +COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo Text::_('Text'); ?>
<?php echo Text::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String" COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_DESCRIPTION="

All libraries added to modules are added to the component media folder for now

So over here you are able to manually add HTML code to your model default tmpl.

" COM_COMPONENTBUILDER_JOOMLA_MODULE_NOTE_LIBRARIES_OPTIONS_LABEL="Libraries Options" @@ -7232,7 +7232,7 @@ COM_COMPONENTBUILDER_LAYOUT_NAME_LABEL="Name" COM_COMPONENTBUILDER_LAYOUT_NAME_MESSAGE="Error! Please add name here." COM_COMPONENTBUILDER_LAYOUT_NEW="A New Layout" COM_COMPONENTBUILDER_LAYOUT_NO="No" -COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo JText::_('Text'); ?>
<?php echo JText::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" +COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo Text::_('Text'); ?>
<?php echo Text::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String" COM_COMPONENTBUILDER_LAYOUT_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the libraries for more details." COM_COMPONENTBUILDER_LAYOUT_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code" @@ -7804,7 +7804,6 @@ COM_COMPONENTBUILDER_PLACES_ACROSS_JCB_WHERE_THIS_S_IS_LINKED="Places across JCB COM_COMPONENTBUILDER_PLEASE_ADD_FILES_TO_S="Please add files to (%s)" COM_COMPONENTBUILDER_PLEASE_ADD_FOLDERS_TO_S="Please add folders to (%s)" COM_COMPONENTBUILDER_PLEASE_CHECK_AGAIN_LATER="Please check again later" -COM_COMPONENTBUILDER_PLEASE_CHECK_AGAIN_SOON_ANDOR_FOLLOW_THE_PROGRESS_ON_SGITVDMDEVA="Please check again soon! and/or follow the progress on %sgit.vdm.dev." COM_COMPONENTBUILDER_PLEASE_FIRST_MAKE_A_SELECTION_FROM_THE_LIST="Please first make a selection from the list." COM_COMPONENTBUILDER_PLEASE_NOTE_THAT_THIS_PACKAGE_BHAS_NOB_CHECKSUM_VALIDATION="Please note that this package has no checksum validation!" COM_COMPONENTBUILDER_PLEASE_SELECT_A_COMPONENT_THAT_YOU_WOULD_LIKE_TO_COMPILE="Please select a component that you would like to compile." @@ -8497,7 +8496,7 @@ COM_COMPONENTBUILDER_SITE_VIEW_NEW_TAB_2="New Tab 2" COM_COMPONENTBUILDER_SITE_VIEW_NEXT="Next" COM_COMPONENTBUILDER_SITE_VIEW_NO="No" COM_COMPONENTBUILDER_SITE_VIEW_NONE="None" -COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo JText::_('Text'); ?>
<?php echo JText::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" +COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo Text::_('Text'); ?>
<?php echo Text::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String" COM_COMPONENTBUILDER_SITE_VIEW_NOTE_CUSTOM_TOOLBAR_PLACEHOLDER_DESCRIPTION="Use this placeholder in the body [[[SITE_TOOLBAR]]] to add the custom position of the toolbar." COM_COMPONENTBUILDER_SITE_VIEW_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the libraries for more details." @@ -8995,7 +8994,7 @@ COM_COMPONENTBUILDER_TEMPLATE_NAME_LABEL="Name" COM_COMPONENTBUILDER_TEMPLATE_NAME_MESSAGE="Error! Please add name here." COM_COMPONENTBUILDER_TEMPLATE_NEW="A New Template" COM_COMPONENTBUILDER_TEMPLATE_NO="No" -COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo JText::_('Text'); ?>
<?php echo JText::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" +COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_DESCRIPTION="<?php echo Text::_('Text'); ?>
<?php echo Text::sprintf('Hello %s', $this->user->name); ?>
Just get UPPERCASE language string:
<?php echo JustTEXT::_('Text'); ?>" COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_PHP_LANGUAGE_STRING_LABEL="Add PHP Language String" COM_COMPONENTBUILDER_TEMPLATE_NOTE_LIBRARIES_SELECTION_DESCRIPTION="All libraries you select will dynamically be added to the header of the page according to the settings of the selected library. Each library will also get its respective buttons added to the component global options if it has any set. Please take a look at the libraries for more details." COM_COMPONENTBUILDER_TEMPLATE_NOTE_LIBRARIES_SELECTION_LABEL="Select libraries you would like to use in your code" @@ -9031,6 +9030,7 @@ COM_COMPONENTBUILDER_THESE_ARE_THE_SAME_PACKAGES_FOUND_ON_A_S_GITHUBA_AND_CAN_BE COM_COMPONENTBUILDER_THESE_ARE_THE_SAME_PACKAGES_FOUND_ON_A_S_GITHUBA_AND_CAN_BE_IMPORTED_BY_SIMPLY_MAKING_A_SELECTION_AND_THEN_CLICKING_THE_BGET_PACKAGEB_BUTTONBR_SOME_OF_THESE_PACKAGES_WOULD_REQUIRE_A_KEY_SINCE_THEY_ARE_NOT_FREE_A_S_GET_A_KEY_TODAYA="These are the same packages found on gitHub and can be imported by simply making a selection and then clicking the [Get Package] button.
Some of these packages would require a key, since they are not free. Get a key today!." COM_COMPONENTBUILDER_THESE_OPTIONS_ARE_NOT_AVAILABLE_TO_THE_FIELD_IF_BNONE_DBB_OPTION_IS_SELECTED="These options are not available to the field if None DB option is selected." COM_COMPONENTBUILDER_THESE_OPTIONS_ARE_ONLY_AVAILABLE_TO_THE_FIELD_IF_BSHOW_IN_LIST_VIEWB_OPTION_IS_SELECTED="These options are only available to the field if Show in list view option is selected." +COM_COMPONENTBUILDER_THESE_POWERS_HAVE_SUCCESSFULLY_BEEN_RESET="These powers have successfully been reset." COM_COMPONENTBUILDER_THE_ADMIN_CUSTOM_TABS="The admin custom tabs" COM_COMPONENTBUILDER_THE_ADMIN_FIELDS="The admin fields" COM_COMPONENTBUILDER_THE_ADMIN_FIELDS_CONDITIONS="The admin fields conditions" @@ -9096,6 +9096,7 @@ COM_COMPONENTBUILDER_THE_PRIVATE_KEY_FILE_COULD_NOT_BE_LOADEDFOUND_FOR_BSB_SERVE COM_COMPONENTBUILDER_THE_PRO_BOARD_IS_LOADING="The pro board is loading" COM_COMPONENTBUILDER_THE_README_IS_LOADING="The readme is loading" COM_COMPONENTBUILDER_THE_REPLACE_PROCESS_HAD_AN_ERROR_WITH_TABLE="The replace process had an error with table" +COM_COMPONENTBUILDER_THE_RESET_OF_THESE_POWERS_HAS_FAILED="The reset of these powers has failed." COM_COMPONENTBUILDER_THE_RESET_OF_THIS_POWER_HAS_FAILED="The reset of this power has failed." COM_COMPONENTBUILDER_THE_SEARCH_FOR_THE_SNIPPETS_ARE_CASE_SENSITIVE_SO_IF_YOU_CHANGED_THE_LOCAL_BNAMESB_OF_EITHER_OR_THE_BSNIPPET_LIBRARY_OR_SNIPPET_TYPESB_IN_ANY_SMALL_WAY_THE_SYSTEM_WILL_NOT_BE_ABLE_TO_CONNECT_YOUR_LOCAL_SNIPPETS_WITH_THOSE_IN_THE_COMMUNITY_REPOSITORY_SO_WE_STRONGLY_ADVICE_TO_BKEEP_TO_THE_COMMUNITY_NAMINGB_TO_AVOID_MISMATCHING_THAT_WILL_IN_TURN_CAUSE_DUPLICATION_SO_IF_YOU_CHANGED_ANY_NAMES_JUST_CHANGE_THEM_BACK_AND_ALL_WILL_AGAIN_WORK_AS_EXPECTED="The search for the snippets are case sensitive so if you changed the local names of either or the snippet, library or snippet types in any small way, the system will not be able to connect your local snippets with those in the community repository. So we strongly advice to keep to the community naming to avoid mismatching, that will in turn cause duplication. So if you changed any names, just change them back and all will again work as expected." COM_COMPONENTBUILDER_THE_SEARCH_PROCESS_HAD_AN_ERROR_WITH_TABLE="The search process had an error with table" @@ -9115,7 +9116,6 @@ COM_COMPONENTBUILDER_THIS_CAN_NOT_BE_UNDONE_BYOU_HAVE_BEEN_WARNEDB="This can not COM_COMPONENTBUILDER_THIS_MAY_TAKE_A_WHILE_DEPENDING_ON_THE_SIZE_OF_YOUR_PROJECT="This may take a while depending on the size of your project." COM_COMPONENTBUILDER_THIS_PACKAGE_BPASSEDB_THE_CHECKSUM_VALIDATIONBR_BR_SMALLMANUALLY_ALSO_VALIDATE_THAT_THE_CORRECT_CHECKSUM_WAS_USEDSMALLBR_THIS_CHECKSUM_BSB_MUST_BE_THE_SAME_AS_THE_ONE_FOUND_A_S_SA="This package PASSED the checksum validation!

Manually also validate that the correct checksum was used.
This checksum: %s must be the same as the one found @ " COM_COMPONENTBUILDER_THIS_PACKAGE_HAS_NO_KEY="This package has no key." -COM_COMPONENTBUILDER_THIS_RESET_FEATURE_IS_STILL_UNDER_DEVELOPMENT="This (reset) feature is still under development!" COM_COMPONENTBUILDER_TITLE="Title" COM_COMPONENTBUILDER_TO_ADD_SIMPLY_COPY_AND_PAST_THE_SNIPPET_INTO_YOUR_CODE="To add simply copy and past the snippet into your code." COM_COMPONENTBUILDER_TO_ADD_VALIDATION_TO_A_FIELD_IF_VALIDATION_IS_NOT_PART_OF_FIELD_TYPE_PROPERTIES_LOADED_ABOVE_SO_IF_YOU_HAVE_VALIDATION_SET_AS_A_FIELD_PROPERTY_THIS_EXTRA_PROPERTY_WILL_NOT_BE_NEEDED="To add validation to a field if validation is not part of field type properties loaded above. So if you have validation set as a field property this extra property will not be needed." diff --git a/admin/sql/install.mysql.utf8.sql b/admin/sql/install.mysql.utf8.sql index f1daa6c42..b3fa1b8b9 100644 --- a/admin/sql/install.mysql.utf8.sql +++ b/admin/sql/install.mysql.utf8.sql @@ -2217,9 +2217,9 @@ INSERT INTO `#__componentbuilder_snippet` (`id`, `contributor_company`, `contrib INSERT INTO `#__componentbuilder_validation_rule` (`id`, `name`, `php`, `short_description`, `published`, `created`, `params`) VALUES (1, 'inspect', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB2YWx1ZS4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gbG9vayBpbnRvIHRoZXNlIHZhbHVlcyBvbmUgYXQgYSB0aW1lDQoJCWVjaG8gJzxwcmU+ZWxlbWVudDxiciAvPic7DQoJCXZhcl9kdW1wKCRlbGVtZW50KTsNCgkJZWNobyAndmFsdWU8YnIgLz4nOw0KCQl2YXJfZHVtcCgkdmFsdWUpOw0KCQllY2hvICdncm91cDxiciAvPic7DQoJCXZhcl9kdW1wKCRncm91cCk7DQoJCWVjaG8gJ2lucHV0PGJyIC8+JzsNCgkJdmFyX2R1bXAoJGlucHV0KTsNCgkJZWNobyAnZm9ybTxiciAvPic7DQoJCXZhcl9kdW1wKCRmb3JtKTsNCgkJamV4aXQoKTsNCgl9', 'simple function to inspect the test values', 1, '2018-03-30 09:22:15', ''), (2, 'code', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB2YWx1ZS4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gVGhpcyByZW1vdmVzIGFsbCB2YWxpZGF0aW9uIChpcyBkYW5nZXJvdXMpIGJ1dCBuZWVkZWQgdG8gc3VibWl0IGNvZGUgdmlhIEpDQg0KCQlyZXR1cm4gdHJ1ZTsNCg0KCQkvKioNCgkJICogTXkgaWRlYSBpcyB0byBhZGQgc29tZSBraW5kIG9mIHZhbGlkYXRpb24gdG8gaW1wcm92ZSBKQ0IgY29kZSAocGVyL2xhbmd1YWdlKQ0KCQkgKg0KCQkgKiBTbyBhdCB0aGlzIHRpbWUgdGhpcyBjb2RlIHZhbGlkYXRpb24gaXMgdXNlZCBmb3IgSmF2YVNjcmlwdCxDU1MsSFRNTCBhbmQgUEhQLg0KCQkgKiBXZSBjYW4gc2VlIHdoYXQgbGFuZ3VhZ2UgaXMgYmVpbmcgd29ya2VkIG9uIHdpdGggdGhlIHN5bnRheCBwcm9wZXJ0eSBpbiB0aGUgJGVsZW1lbnQuIChpbiBKQ0IpDQoJCSAqIFdoYXQgY29tcGxpY2F0ZXMgdGhpbmdzIGlzIHRoZSBwbGFjZWhvbGRlcnMsIG9mIGJvdGggY3VzdG9tIGNvZGUsIGNvbXBvbmVudCwgYW5kIHZpZXcgbmFtZXMuDQoJCSAqIElkZWFsbHkgd2UgY291bGQgc3RyaXAgdGhlbSBhbmQgdGhlbiB2YWxpZGF0ZSB0aGUgY29kZSB0byBiZWluZyBzeW50YWN0aWNhbGx5IGNvcnJlY3QuDQoJCSAqIEJ1dCBzaW5jZSBzb21lIG9mIHRoZSBwbGFjZWhvbGRlcnMgZm9ybSBwYXJ0IG9mIHRoZSBjbGFzcy9mdW5jdGlvbiBuYW1lcyBhbmQgdGhlIG1vcmUsIGl0IHNlZW1zIGxpa2Ugd2UgYXJlIHByZXNzZWQgZm9yIGEgbXVjaCBtb3JlIGFkdmFuY2Ugc29sdXRpb24uDQoJCSAqIElmIHlvdSBoYXZlIGFueSBpZGVhcyB0byBob3cgd2UgY2FuIGdvIGFib3V0IHRvIGRvIHRoaXMsIHRoZW4gcGxlYXNlIG9wZW4gYW4gaXNzdWUgb24gZ2l0aHViIGFuZCBsZXRzIGJlZ2luLiAodGhpcyBpcyBhIG5pY2UgdG8gaGF2ZSwgc28gZG9uJ3QgYnJlYWsgYSBsZWcuLi4pDQoJCSAqLw0KCX0=', 'To validate code', 1, '2018-06-24 19:11:45', ''), -(3, 'uniquefield', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBmaWVsZCB2YWx1ZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gXEZhY3Rvcnk6OmdldERibygpOw0KCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCS8vIEdldCB0aGUgZXh0cmEgZmllbGQgY2hlY2sgYXR0cmlidXRlLg0KCQkkaWQgPSAoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkpID8gJGlucHV0LT5nZXQoJ2lkJywgbnVsbCkgOiBudWxsOw0KDQoJCS8vIGdldCB0aGUgY29tcG9uZW50ICYgdGFibGUgbmFtZQ0KCQkkdGFibGUgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtKSA/ICRmb3JtLT5nZXROYW1lKCkgOiAnJzsNCg0KCQkvLyBnZXQgdGhlIGNvbHVtbiBuYW1lDQoJCSRuYW1lID0gKGFycmF5KSAkZWxlbWVudC0+YXR0cmlidXRlcygpLT57J25hbWUnfTsNCgkJJGNvbHVtbiA9IChzdHJpbmcpIHRyaW0oJG5hbWVbMF0pOw0KCQkNCgkJLy8gY2hlY2sgdGhhdCB3ZSBoYXZlIGEgdmFsdWUNCgkJaWYgKHN0cmxlbigkdmFsdWUpICYmIHN0cmxlbigkdGFibGUpID4gMyAmJiBzdHJwb3MoJHRhYmxlLCAnW1tbY29tcG9uZW50XV1dLicpICE9PSBmYWxzZSkNCgkJew0KCQkJLy8gbm93IGdldCB0aGUgdGFibGUgbmFtZQ0KCQkJJHRhYmxlQXJyYXkgPSBleHBsb2RlKCcuJywgJHRhYmxlKTsNCgkJCS8vIGRvIHdlIGhhdmUgdHdvIHZhbHVlcw0KCQkJaWYgKGNvdW50KCAoYXJyYXkpICR0YWJsZUFycmF5KSA9PSAyKQ0KCQkJew0KCQkJCS8vIEJ1aWxkIHRoZSBxdWVyeS4NCgkJCQkkcXVlcnktPnNlbGVjdCgnQ09VTlQoKiknKQ0KCQkJCQktPmZyb20oJyNfX1tbW2NvbXBvbmVudF1dXV8nIC4gKHN0cmluZykgJHRhYmxlQXJyYXlbMV0pDQoJCQkJCS0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJGNvbHVtbikgLiAnID0gJyAuICRkYi0+cXVvdGUoJHZhbHVlKSk7DQoNCgkJCQkvLyByZW1vdmUgdGhpcyBpdGVtIGZyb20gdGhlIGxpc3QNCgkJCQlpZiAoJGlkID4gMCkNCgkJCQl7DQoJCQkJCSRxdWVyeS0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJ2lkJykgLiAnIDw+ICcgLiAoaW50KSAkaWQpOw0KCQkJCX0NCg0KCQkJCS8vIFNldCBhbmQgcXVlcnkgdGhlIGRhdGFiYXNlLg0KCQkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCQkkZHVwbGljYXRlID0gKGJvb2wpICRkYi0+bG9hZFJlc3VsdCgpOw0KDQoJCQkJaWYgKCRkdXBsaWNhdGUpDQoJCQkJew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ==', 'unique field value', 1, '2018-07-21 06:06:42', ''), -(4, 'memberloginname', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB1c2VybmFtZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gXEZhY3Rvcnk6OmdldERibygpOw0KCQkkcXVlcnkgPSAkZGItPmdldFF1ZXJ5KHRydWUpOw0KDQoJCS8vIEJ1aWxkIHRoZSBxdWVyeS4NCgkJJHF1ZXJ5LT5zZWxlY3QoJ0NPVU5UKCopJykNCgkJCS0+ZnJvbSgnI19fdXNlcnMnKQ0KCQkJLT53aGVyZSgndXNlcm5hbWUgPSAnIC4gJGRiLT5xdW90ZSgkdmFsdWUpKTsNCg0KCQkvLyBHZXQgdGhlIHVzZXIgSUQgaWYgc2V0Lg0KCQkkdXNlcklkID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSAmJiAoJHVzZXJJZCA9ICRmb3JtLT5nZXRWYWx1ZSgndXNlcicpKSkgPyAkdXNlcklkIDogKCgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSAmJiAoJHVzZXJJZCA9ICRpbnB1dC0+Z2V0KCd1c2VyJykpKSA/ICR1c2VySWQgOiAwKTsNCgkJLy8gaWYgc3RpbGwgbm90IHVzZXIgaXMgZm91bmQgZ2V0IG1lbWJlciBpZA0KCQlpZiAoJHVzZXJJZCA9PSAwKQ0KCQl7DQoJCQkkbWVtYmVySWQgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtICYmICgkbWVtYmVySWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ2lkJykpKSA/ICRtZW1iZXJJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCRtZW1iZXJJZCA9ICRpbnB1dC0+Z2V0KCdpZCcpKSkgPyAkbWVtYmVySWQgOiAwKTsNCgkJfQ0KCQkvLyBnZXQgYWNjb3VudCB0eXBlIGlmIG5lZWRlZA0KCQlpZiAoJHVzZXJJZCA9PSAwICYmICRtZW1iZXJJZCA+IDApDQoJCXsNCgkJCSRhY2NvdW50SWQgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtICYmICgkYWNjb3VudElkID0gJGZvcm0tPmdldFZhbHVlKCdhY2NvdW50JykpKSA/ICRhY2NvdW50SWQgOiAoKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5ICYmICgkYWNjb3VudElkID0gJGlucHV0LT5nZXQoJ2FjY291bnQnKSkpID8gJGFjY291bnRJZCA6IDApOw0KCQkJLy8gbWFrZSBzdXJlIHRoZXNlIGFjY291bnQgaXMgc2V0DQoJCQlpZiAoJGFjY291bnRJZCA9PSAwKQ0KCQkJew0KCQkJCSRhY2NvdW50SWQgPSBTdXBlcl9fX2RiODdjMzM5XzViYjZfNDI5MV9hN2VmXzJjNDhlYTFiMDZiY19fX1Bvd2VyOjp2YXIoJ21lbWJlcicsICRtZW1iZXJJZCwgJ2lkJywgJ2FjY291bnQnKTsNCgkJCX0NCgkJfQ0KCQkvLyBnZXQgdXNlciB2YWx1ZSBpZiBub3Qgc2V0IChkdWUgdG8gcGVybWlzc2lvbnMpDQoJCWlmICgkdXNlcklkID09IDAgJiYgJG1lbWJlcklkID4gMCAmJiAkYWNjb3VudElkID4gMCAmJiAoMSA9PSAkYWNjb3VudElkIHx8IDQgPT0gJGFjY291bnRJZCkpDQoJCXsNCgkJCSR1c2VySWQgPSBTdXBlcl9fX2RiODdjMzM5XzViYjZfNDI5MV9hN2VmXzJjNDhlYTFiMDZiY19fX1Bvd2VyOjp2YXIoJ21lbWJlcicsICRtZW1iZXJJZCwgJ2lkJywgJ3VzZXInKTsNCgkJfQ0KCQkkcXVlcnktPndoZXJlKCRkYi0+cXVvdGVOYW1lKCdpZCcpIC4gJyA8PiAnIC4gKGludCkgJHVzZXJJZCk7DQoNCgkJLy8gU2V0IGFuZCBxdWVyeSB0aGUgZGF0YWJhc2UuDQoJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJJGR1cGxpY2F0ZSA9IChib29sKSAkZGItPmxvYWRSZXN1bHQoKTsNCg0KCQlpZiAoJGR1cGxpY2F0ZSkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJcmV0dXJuIHRydWU7DQoJfQ==', 'Validate the member username', 1, '2018-09-16 00:42:59', ''), -(5, 'memberuseremail', 'CS8qKg0KCSAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdXNlIGluIHRlc3RpbmcgYSBmb3JtIGZpZWxkIHZhbHVlLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDExLjENCgkgKiBAbGluayAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwtbWFya3VwL2lucHV0LmVtYWlsLmh0bWwNCgkgKi8NCglwcm90ZWN0ZWQgJHJlZ2V4ID0gIl5bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05LV0rKD86XC5bYS16QS1aMC05LV0rKSokIjsNCg0KCS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBlbWFpbCBhZGRyZXNzIGFuZCBvcHRpb25hbGx5IGNoZWNrIGZvciB1bmlxdWVuZXNzLg0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICRlbGVtZW50ICBUaGUgU2ltcGxlWE1MRWxlbWVudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBgPGZpZWxkPmAgdGFnIGZvciB0aGUgZm9ybSBmaWVsZCBvYmplY3QuDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgICAgICR2YWx1ZSAgICBUaGUgZm9ybSBmaWVsZCB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgICAgICAgJGdyb3VwICAgIFRoZSBmaWVsZCBuYW1lIGdyb3VwIGNvbnRyb2wgdmFsdWUuIFRoaXMgYWN0cyBhcyBhbiBhcnJheSBjb250YWluZXIgZm9yIHRoZSBmaWVsZC4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlIGlmIHRoZSBmaWVsZCBoYXMgbmFtZT0iZm9vIiBhbmQgdGhlIGdyb3VwIHZhbHVlIGlzIHNldCB0byAiYmFyIiB0aGVuIHRoZQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCBmaWVsZCBuYW1lIHdvdWxkIGVuZCB1cCBiZWluZyAiYmFyW2Zvb10iLg0KCSAqIEBwYXJhbSAgIFJlZ2lzdHJ5ICAgICAgICAgICAkaW5wdXQgICAgQW4gb3B0aW9uYWwgUmVnaXN0cnkgb2JqZWN0IHdpdGggdGhlIGVudGlyZSBkYXRhIHNldCB0byB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBlbnRpcmUgZm9ybS4NCgkgKiBAcGFyYW0gICBGb3JtICAgICAgICAgICAgICAgJGZvcm0gICAgIFRoZSBmb3JtIG9iamVjdCBmb3Igd2hpY2ggdGhlIGZpZWxkIGlzIGJlaW5nIHRlc3RlZC4NCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAc2luY2UgICAxMS4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHRlc3QoXFNpbXBsZVhNTEVsZW1lbnQgJGVsZW1lbnQsICR2YWx1ZSwgJGdyb3VwID0gbnVsbCwgUmVnaXN0cnkgJGlucHV0ID0gbnVsbCwgRm9ybSAkZm9ybSA9IG51bGwpDQoJew0KCQkvLyBJZiB0aGUgZmllbGQgaXMgZW1wdHkgYW5kIG5vdCByZXF1aXJlZCwgdGhlIGZpZWxkIGlzIHZhbGlkLg0KCQkkcmVxdWlyZWQgPSAoKHN0cmluZykgJGVsZW1lbnRbJ3JlcXVpcmVkJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50WydyZXF1aXJlZCddID09ICdyZXF1aXJlZCcpOw0KDQoJCWlmICghJHJlcXVpcmVkICYmIGVtcHR5KCR2YWx1ZSkpDQoJCXsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJLy8gSWYgdGhlIHRsZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcmVxdWlyZSBhdCBsZWFzdCAyIGNoYXJhY3RlcnMgZm9yIGl0Lg0KCQkkdGxkID0gKChzdHJpbmcpICRlbGVtZW50Wyd0bGQnXSA9PSAndGxkJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsndGxkJ10gPT0gJ3JlcXVpcmVkJyk7DQoNCgkJaWYgKCR0bGQpDQoJCXsNCgkJCSR0aGlzLT5yZWdleCA9ICJeW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSkiDQoJCQkJLiAnPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSskJzsNCgkJfQ0KDQoJCS8vIERldGVybWluZSBpZiB0aGUgbXVsdGlwbGUgYXR0cmlidXRlIGlzIHByZXNlbnQNCgkJJG11bHRpcGxlID0gKChzdHJpbmcpICRlbGVtZW50WydtdWx0aXBsZSddID09ICd0cnVlJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsnbXVsdGlwbGUnXSA9PSAnbXVsdGlwbGUnKTsNCg0KCQlpZiAoISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCSR2YWx1ZSA9IFxKU3RyaW5nUHVueWNvZGU6OmVtYWlsVG9QdW55Y29kZSgkdmFsdWUpOw0KDQoJCQkvLyBUZXN0IHRoZSB2YWx1ZSBhZ2FpbnN0IHRoZSByZWd1bGFyIGV4cHJlc3Npb24uDQoJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSR2YWx1ZXMgPSBleHBsb2RlKCcsJywgJHZhbHVlKTsNCg0KCQkJZm9yZWFjaCAoJHZhbHVlcyBhcyAkdmFsdWUpDQoJCQl7DQoJCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCQkkdmFsdWUgPSBcSlN0cmluZ1B1bnljb2RlOjplbWFpbFRvUHVueWNvZGUoJHZhbHVlKTsNCg0KCQkJCS8vIFRlc3QgdGhlIHZhbHVlIGFnYWluc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4NCgkJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCS8vIENoZWNrIGlmIHdlIHNob3VsZCB0ZXN0IGZvciB1bmlxdWVuZXNzLiBUaGlzIG9ubHkgY2FuIGJlIHVzZWQgaWYgbXVsdGlwbGUgaXMgbm90IHRydWUNCgkJJHVuaXF1ZSA9ICgoc3RyaW5nKSAkZWxlbWVudFsndW5pcXVlJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50Wyd1bmlxdWUnXSA9PSAndW5pcXVlJyk7DQoNCgkJaWYgKCR1bmlxdWUgJiYgISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJCSRkYiA9IFxGYWN0b3J5OjpnZXREYm8oKTsNCgkJCSRxdWVyeSA9ICRkYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJCS8vIEJ1aWxkIHRoZSBxdWVyeS4NCgkJCSRxdWVyeS0+c2VsZWN0KCdDT1VOVCgqKScpDQoJCQkJLT5mcm9tKCcjX191c2VycycpDQoJCQkJLT53aGVyZSgnZW1haWwgPSAnIC4gJGRiLT5xdW90ZSgkdmFsdWUpKTsNCg0KCQkJLy8gR2V0IHRoZSB1c2VyIElEIGlmIHNldC4NCgkJCSR1c2VySWQgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtICYmICgkdXNlcklkID0gJGZvcm0tPmdldFZhbHVlKCd1c2VyJykpKSA/ICR1c2VySWQgOiAoKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5ICYmICgkdXNlcklkID0gJGlucHV0LT5nZXQoJ3VzZXInKSkpID8gJHVzZXJJZCA6IDApOw0KCQkJLy8gaWYgc3RpbGwgbm90IHVzZXIgaXMgZm91bmQgZ2V0IG1lbWJlciBpZA0KCQkJaWYgKCR1c2VySWQgPT0gMCkNCgkJCXsNCgkJCQkkbWVtYmVySWQgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtICYmICgkbWVtYmVySWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ2lkJykpKSA/ICRtZW1iZXJJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCRtZW1iZXJJZCA9ICRpbnB1dC0+Z2V0KCdpZCcpKSkgPyAkbWVtYmVySWQgOiAwKTsNCgkJCX0NCgkJCS8vIGdldCBhY2NvdW50IHR5cGUgaWYgbmVlZGVkDQoJCQlpZiAoJHVzZXJJZCA9PSAwICYmICRtZW1iZXJJZCA+IDApDQoJCQl7DQoJCQkJJGFjY291bnRJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCRhY2NvdW50SWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ2FjY291bnQnKSkpID8gJGFjY291bnRJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCRhY2NvdW50SWQgPSAkaW5wdXQtPmdldCgnYWNjb3VudCcpKSkgPyAkYWNjb3VudElkIDogMCk7DQoJCQkJLy8gbWFrZSBzdXJlIHRoZXNlIGFjY291bnQgaXMgc2V0DQoJCQkJaWYgKCRhY2NvdW50SWQgPT0gMCkNCgkJCQl7DQoJCQkJCSRhY2NvdW50SWQgPSBTdXBlcl9fX2RiODdjMzM5XzViYjZfNDI5MV9hN2VmXzJjNDhlYTFiMDZiY19fX1Bvd2VyOjp2YXIoJ21lbWJlcicsICRtZW1iZXJJZCwgJ2lkJywgJ2FjY291bnQnKTsNCgkJCQl9DQoJCQl9DQoJCQkvLyBnZXQgdXNlciB2YWx1ZSBpZiBub3Qgc2V0IChkdWUgdG8gcGVybWlzc2lvbnMpDQoJCQlpZiAoJHVzZXJJZCA9PSAwICYmICRtZW1iZXJJZCA+IDAgJiYgJGFjY291bnRJZCA+IDAgJiYgKDEgPT0gJGFjY291bnRJZCB8fCA0ID09ICRhY2NvdW50SWQpKQ0KCQkJew0KCQkJCSR1c2VySWQgPSBTdXBlcl9fX2RiODdjMzM5XzViYjZfNDI5MV9hN2VmXzJjNDhlYTFiMDZiY19fX1Bvd2VyOjp2YXIoJ21lbWJlcicsICRtZW1iZXJJZCwgJ2lkJywgJ3VzZXInKTsNCgkJCX0NCgkJCSRxdWVyeS0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJ2lkJykgLiAnIDw+ICcgLiAoaW50KSAkdXNlcklkKTsNCg0KCQkJLy8gU2V0IGFuZCBxdWVyeSB0aGUgZGF0YWJhc2UuDQoJCQkkZGItPnNldFF1ZXJ5KCRxdWVyeSk7DQoJCQkkZHVwbGljYXRlID0gKGJvb2wpICRkYi0+bG9hZFJlc3VsdCgpOw0KDQoJCQlpZiAoJGR1cGxpY2F0ZSkNCgkJCXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9', 'Validate the member useremail', 1, '2018-09-16 00:43:44', ''), +(3, 'uniquefield', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBmaWVsZCB2YWx1ZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCSRxdWVyeSA9ICRkYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJLy8gR2V0IHRoZSBleHRyYSBmaWVsZCBjaGVjayBhdHRyaWJ1dGUuDQoJCSRpZCA9ICgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSkgPyAkaW5wdXQtPmdldCgnaWQnLCBudWxsKSA6IG51bGw7DQoNCgkJLy8gZ2V0IHRoZSBjb21wb25lbnQgJiB0YWJsZSBuYW1lDQoJCSR0YWJsZSA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0pID8gJGZvcm0tPmdldE5hbWUoKSA6ICcnOw0KDQoJCS8vIGdldCB0aGUgY29sdW1uIG5hbWUNCgkJJG5hbWUgPSAoYXJyYXkpICRlbGVtZW50LT5hdHRyaWJ1dGVzKCktPnsnbmFtZSd9Ow0KCQkkY29sdW1uID0gKHN0cmluZykgdHJpbSgkbmFtZVswXSk7DQoJCQ0KCQkvLyBjaGVjayB0aGF0IHdlIGhhdmUgYSB2YWx1ZQ0KCQlpZiAoc3RybGVuKCR2YWx1ZSkgJiYgc3RybGVuKCR0YWJsZSkgPiAzICYmIHN0cnBvcygkdGFibGUsICdbW1tjb21wb25lbnRdXV0uJykgIT09IGZhbHNlKQ0KCQl7DQoJCQkvLyBub3cgZ2V0IHRoZSB0YWJsZSBuYW1lDQoJCQkkdGFibGVBcnJheSA9IGV4cGxvZGUoJy4nLCAkdGFibGUpOw0KCQkJLy8gZG8gd2UgaGF2ZSB0d28gdmFsdWVzDQoJCQlpZiAoY291bnQoIChhcnJheSkgJHRhYmxlQXJyYXkpID09IDIpDQoJCQl7DQoJCQkJLy8gQnVpbGQgdGhlIHF1ZXJ5Lg0KCQkJCSRxdWVyeS0+c2VsZWN0KCdDT1VOVCgqKScpDQoJCQkJCS0+ZnJvbSgnI19fW1tbY29tcG9uZW50XV1dXycgLiAoc3RyaW5nKSAkdGFibGVBcnJheVsxXSkNCgkJCQkJLT53aGVyZSgkZGItPnF1b3RlTmFtZSgkY29sdW1uKSAuICcgPSAnIC4gJGRiLT5xdW90ZSgkdmFsdWUpKTsNCg0KCQkJCS8vIHJlbW92ZSB0aGlzIGl0ZW0gZnJvbSB0aGUgbGlzdA0KCQkJCWlmICgkaWQgPiAwKQ0KCQkJCXsNCgkJCQkJJHF1ZXJ5LT53aGVyZSgkZGItPnF1b3RlTmFtZSgnaWQnKSAuICcgPD4gJyAuIChpbnQpICRpZCk7DQoJCQkJfQ0KDQoJCQkJLy8gU2V0IGFuZCBxdWVyeSB0aGUgZGF0YWJhc2UuDQoJCQkJJGRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkJCSRkdXBsaWNhdGUgPSAoYm9vbCkgJGRiLT5sb2FkUmVzdWx0KCk7DQoNCgkJCQlpZiAoJGR1cGxpY2F0ZSkNCgkJCQl7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9', 'unique field value', 1, '2018-07-21 06:06:42', ''), +(4, 'memberloginname', 'CS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSB1c2VybmFtZSBmb3IgdW5pcXVlbmVzcy4NCgkgKg0KCSAqIEBwYXJhbSAgIFxTaW1wbGVYTUxFbGVtZW50ICAkZWxlbWVudCAgVGhlIFNpbXBsZVhNTEVsZW1lbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgYDxmaWVsZD5gIHRhZyBmb3IgdGhlIGZvcm0gZmllbGQgb2JqZWN0Lg0KCSAqIEBwYXJhbSAgIG1peGVkICAgICAgICAgICAgICAkdmFsdWUgICAgVGhlIGZvcm0gZmllbGQgdmFsdWUgdG8gdmFsaWRhdGUuDQoJICogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3IgZXhhbXBsZSBpZiB0aGUgZmllbGQgaGFzIG5hbWU9ImZvbyIgYW5kIHRoZSBncm91cCB2YWx1ZSBpcyBzZXQgdG8gImJhciIgdGhlbiB0aGUNCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGwgZmllbGQgbmFtZSB3b3VsZCBlbmQgdXAgYmVpbmcgImJhcltmb29dIi4NCgkgKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJICogQHBhcmFtICAgRm9ybSAgICAgICAgICAgICAgICRmb3JtICAgICBUaGUgZm9ybSBvYmplY3QgZm9yIHdoaWNoIHRoZSBmaWVsZCBpcyBiZWluZyB0ZXN0ZWQuDQoJICoNCgkgKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSAqDQoJICogQHNpbmNlICAgMTEuMQ0KCSAqLw0KCXB1YmxpYyBmdW5jdGlvbiB0ZXN0KFxTaW1wbGVYTUxFbGVtZW50ICRlbGVtZW50LCAkdmFsdWUsICRncm91cCA9IG51bGwsIFJlZ2lzdHJ5ICRpbnB1dCA9IG51bGwsIEZvcm0gJGZvcm0gPSBudWxsKQ0KCXsNCgkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJJGRiID0gRmFjdG9yeTo6Z2V0RGJvKCk7DQoJCSRxdWVyeSA9ICRkYi0+Z2V0UXVlcnkodHJ1ZSk7DQoNCgkJLy8gQnVpbGQgdGhlIHF1ZXJ5Lg0KCQkkcXVlcnktPnNlbGVjdCgnQ09VTlQoKiknKQ0KCQkJLT5mcm9tKCcjX191c2VycycpDQoJCQktPndoZXJlKCd1c2VybmFtZSA9ICcgLiAkZGItPnF1b3RlKCR2YWx1ZSkpOw0KDQoJCS8vIEdldCB0aGUgdXNlciBJRCBpZiBzZXQuDQoJCSR1c2VySWQgPSAoJGZvcm0gaW5zdGFuY2VvZiBGb3JtICYmICgkdXNlcklkID0gJGZvcm0tPmdldFZhbHVlKCd1c2VyJykpKSA/ICR1c2VySWQgOiAoKCRpbnB1dCBpbnN0YW5jZW9mIFJlZ2lzdHJ5ICYmICgkdXNlcklkID0gJGlucHV0LT5nZXQoJ3VzZXInKSkpID8gJHVzZXJJZCA6IDApOw0KCQkvLyBpZiBzdGlsbCBub3QgdXNlciBpcyBmb3VuZCBnZXQgbWVtYmVyIGlkDQoJCWlmICgkdXNlcklkID09IDApDQoJCXsNCgkJCSRtZW1iZXJJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCRtZW1iZXJJZCA9ICRmb3JtLT5nZXRWYWx1ZSgnaWQnKSkpID8gJG1lbWJlcklkIDogKCgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSAmJiAoJG1lbWJlcklkID0gJGlucHV0LT5nZXQoJ2lkJykpKSA/ICRtZW1iZXJJZCA6IDApOw0KCQl9DQoJCS8vIGdldCBhY2NvdW50IHR5cGUgaWYgbmVlZGVkDQoJCWlmICgkdXNlcklkID09IDAgJiYgJG1lbWJlcklkID4gMCkNCgkJew0KCQkJJGFjY291bnRJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCRhY2NvdW50SWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ2FjY291bnQnKSkpID8gJGFjY291bnRJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCRhY2NvdW50SWQgPSAkaW5wdXQtPmdldCgnYWNjb3VudCcpKSkgPyAkYWNjb3VudElkIDogMCk7DQoJCQkvLyBtYWtlIHN1cmUgdGhlc2UgYWNjb3VudCBpcyBzZXQNCgkJCWlmICgkYWNjb3VudElkID09IDApDQoJCQl7DQoJCQkJJGFjY291bnRJZCA9IFN1cGVyX19fZGI4N2MzMzlfNWJiNl80MjkxX2E3ZWZfMmM0OGVhMWIwNmJjX19fUG93ZXI6OnZhcignbWVtYmVyJywgJG1lbWJlcklkLCAnaWQnLCAnYWNjb3VudCcpOw0KCQkJfQ0KCQl9DQoJCS8vIGdldCB1c2VyIHZhbHVlIGlmIG5vdCBzZXQgKGR1ZSB0byBwZXJtaXNzaW9ucykNCgkJaWYgKCR1c2VySWQgPT0gMCAmJiAkbWVtYmVySWQgPiAwICYmICRhY2NvdW50SWQgPiAwICYmICgxID09ICRhY2NvdW50SWQgfHwgNCA9PSAkYWNjb3VudElkKSkNCgkJew0KCQkJJHVzZXJJZCA9IFN1cGVyX19fZGI4N2MzMzlfNWJiNl80MjkxX2E3ZWZfMmM0OGVhMWIwNmJjX19fUG93ZXI6OnZhcignbWVtYmVyJywgJG1lbWJlcklkLCAnaWQnLCAndXNlcicpOw0KCQl9DQoJCSRxdWVyeS0+d2hlcmUoJGRiLT5xdW90ZU5hbWUoJ2lkJykgLiAnIDw+ICcgLiAoaW50KSAkdXNlcklkKTsNCg0KCQkvLyBTZXQgYW5kIHF1ZXJ5IHRoZSBkYXRhYmFzZS4NCgkJJGRiLT5zZXRRdWVyeSgkcXVlcnkpOw0KCQkkZHVwbGljYXRlID0gKGJvb2wpICRkYi0+bG9hZFJlc3VsdCgpOw0KDQoJCWlmICgkZHVwbGljYXRlKQ0KCQl7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9', 'Validate the member username', 1, '2018-09-16 00:42:59', ''), +(5, 'memberuseremail', 'CS8qKg0KCSAqIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gdXNlIGluIHRlc3RpbmcgYSBmb3JtIGZpZWxkIHZhbHVlLg0KCSAqDQoJICogQHZhciAgICBzdHJpbmcNCgkgKiBAc2luY2UgIDExLjENCgkgKiBAbGluayAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWwtbWFya3VwL2lucHV0LmVtYWlsLmh0bWwNCgkgKi8NCglwcm90ZWN0ZWQgJHJlZ2V4ID0gIl5bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dK0BbYS16QS1aMC05LV0rKD86XC5bYS16QS1aMC05LV0rKSokIjsNCg0KCS8qKg0KCSAqIE1ldGhvZCB0byB0ZXN0IHRoZSBlbWFpbCBhZGRyZXNzIGFuZCBvcHRpb25hbGx5IGNoZWNrIGZvciB1bmlxdWVuZXNzLg0KCSAqDQoJICogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICRlbGVtZW50ICBUaGUgU2ltcGxlWE1MRWxlbWVudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBgPGZpZWxkPmAgdGFnIGZvciB0aGUgZm9ybSBmaWVsZCBvYmplY3QuDQoJICogQHBhcmFtICAgbWl4ZWQgICAgICAgICAgICAgICR2YWx1ZSAgICBUaGUgZm9ybSBmaWVsZCB2YWx1ZSB0byB2YWxpZGF0ZS4NCgkgKiBAcGFyYW0gICBzdHJpbmcgICAgICAgICAgICAgJGdyb3VwICAgIFRoZSBmaWVsZCBuYW1lIGdyb3VwIGNvbnRyb2wgdmFsdWUuIFRoaXMgYWN0cyBhcyBhbiBhcnJheSBjb250YWluZXIgZm9yIHRoZSBmaWVsZC4NCgkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlIGlmIHRoZSBmaWVsZCBoYXMgbmFtZT0iZm9vIiBhbmQgdGhlIGdyb3VwIHZhbHVlIGlzIHNldCB0byAiYmFyIiB0aGVuIHRoZQ0KCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCBmaWVsZCBuYW1lIHdvdWxkIGVuZCB1cCBiZWluZyAiYmFyW2Zvb10iLg0KCSAqIEBwYXJhbSAgIFJlZ2lzdHJ5ICAgICAgICAgICAkaW5wdXQgICAgQW4gb3B0aW9uYWwgUmVnaXN0cnkgb2JqZWN0IHdpdGggdGhlIGVudGlyZSBkYXRhIHNldCB0byB2YWxpZGF0ZSBhZ2FpbnN0IHRoZSBlbnRpcmUgZm9ybS4NCgkgKiBAcGFyYW0gICBGb3JtICAgICAgICAgICAgICAgJGZvcm0gICAgIFRoZSBmb3JtIG9iamVjdCBmb3Igd2hpY2ggdGhlIGZpZWxkIGlzIGJlaW5nIHRlc3RlZC4NCgkgKg0KCSAqIEByZXR1cm4gIGJvb2xlYW4gIFRydWUgaWYgdGhlIHZhbHVlIGlzIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuDQoJICoNCgkgKiBAc2luY2UgICAxMS4xDQoJICovDQoJcHVibGljIGZ1bmN0aW9uIHRlc3QoXFNpbXBsZVhNTEVsZW1lbnQgJGVsZW1lbnQsICR2YWx1ZSwgJGdyb3VwID0gbnVsbCwgUmVnaXN0cnkgJGlucHV0ID0gbnVsbCwgRm9ybSAkZm9ybSA9IG51bGwpDQoJew0KCQkvLyBJZiB0aGUgZmllbGQgaXMgZW1wdHkgYW5kIG5vdCByZXF1aXJlZCwgdGhlIGZpZWxkIGlzIHZhbGlkLg0KCQkkcmVxdWlyZWQgPSAoKHN0cmluZykgJGVsZW1lbnRbJ3JlcXVpcmVkJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50WydyZXF1aXJlZCddID09ICdyZXF1aXJlZCcpOw0KDQoJCWlmICghJHJlcXVpcmVkICYmIGVtcHR5KCR2YWx1ZSkpDQoJCXsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJLy8gSWYgdGhlIHRsZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgY2hhbmdlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gcmVxdWlyZSBhdCBsZWFzdCAyIGNoYXJhY3RlcnMgZm9yIGl0Lg0KCQkkdGxkID0gKChzdHJpbmcpICRlbGVtZW50Wyd0bGQnXSA9PSAndGxkJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsndGxkJ10gPT0gJ3JlcXVpcmVkJyk7DQoNCgkJaWYgKCR0bGQpDQoJCXsNCgkJCSR0aGlzLT5yZWdleCA9ICJeW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSkiDQoJCQkJLiAnPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSskJzsNCgkJfQ0KDQoJCS8vIERldGVybWluZSBpZiB0aGUgbXVsdGlwbGUgYXR0cmlidXRlIGlzIHByZXNlbnQNCgkJJG11bHRpcGxlID0gKChzdHJpbmcpICRlbGVtZW50WydtdWx0aXBsZSddID09ICd0cnVlJyB8fCAoc3RyaW5nKSAkZWxlbWVudFsnbXVsdGlwbGUnXSA9PSAnbXVsdGlwbGUnKTsNCg0KCQlpZiAoISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCSR2YWx1ZSA9IFxKU3RyaW5nUHVueWNvZGU6OmVtYWlsVG9QdW55Y29kZSgkdmFsdWUpOw0KDQoJCQkvLyBUZXN0IHRoZSB2YWx1ZSBhZ2FpbnN0IHRoZSByZWd1bGFyIGV4cHJlc3Npb24uDQoJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSR2YWx1ZXMgPSBleHBsb2RlKCcsJywgJHZhbHVlKTsNCg0KCQkJZm9yZWFjaCAoJHZhbHVlcyBhcyAkdmFsdWUpDQoJCQl7DQoJCQkJLy8gSGFuZGxlIGlkbiBlbWFpbCBhZGRyZXNzZXMgYnkgY29udmVydGluZyB0byBwdW55Y29kZS4NCgkJCQkkdmFsdWUgPSBcSlN0cmluZ1B1bnljb2RlOjplbWFpbFRvUHVueWNvZGUoJHZhbHVlKTsNCg0KCQkJCS8vIFRlc3QgdGhlIHZhbHVlIGFnYWluc3QgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4NCgkJCQlpZiAoIXBhcmVudDo6dGVzdCgkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAsICRpbnB1dCwgJGZvcm0pKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCS8vIENoZWNrIGlmIHdlIHNob3VsZCB0ZXN0IGZvciB1bmlxdWVuZXNzLiBUaGlzIG9ubHkgY2FuIGJlIHVzZWQgaWYgbXVsdGlwbGUgaXMgbm90IHRydWUNCgkJJHVuaXF1ZSA9ICgoc3RyaW5nKSAkZWxlbWVudFsndW5pcXVlJ10gPT0gJ3RydWUnIHx8IChzdHJpbmcpICRlbGVtZW50Wyd1bmlxdWUnXSA9PSAndW5pcXVlJyk7DQoNCgkJaWYgKCR1bmlxdWUgJiYgISRtdWx0aXBsZSkNCgkJew0KCQkJLy8gR2V0IHRoZSBkYXRhYmFzZSBvYmplY3QgYW5kIGEgbmV3IHF1ZXJ5IG9iamVjdC4NCgkJCSRkYiA9IEZhY3Rvcnk6OmdldERibygpOw0KCQkJJHF1ZXJ5ID0gJGRiLT5nZXRRdWVyeSh0cnVlKTsNCg0KCQkJLy8gQnVpbGQgdGhlIHF1ZXJ5Lg0KCQkJJHF1ZXJ5LT5zZWxlY3QoJ0NPVU5UKCopJykNCgkJCQktPmZyb20oJyNfX3VzZXJzJykNCgkJCQktPndoZXJlKCdlbWFpbCA9ICcgLiAkZGItPnF1b3RlKCR2YWx1ZSkpOw0KDQoJCQkvLyBHZXQgdGhlIHVzZXIgSUQgaWYgc2V0Lg0KCQkJJHVzZXJJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCR1c2VySWQgPSAkZm9ybS0+Z2V0VmFsdWUoJ3VzZXInKSkpID8gJHVzZXJJZCA6ICgoJGlucHV0IGluc3RhbmNlb2YgUmVnaXN0cnkgJiYgKCR1c2VySWQgPSAkaW5wdXQtPmdldCgndXNlcicpKSkgPyAkdXNlcklkIDogMCk7DQoJCQkvLyBpZiBzdGlsbCBub3QgdXNlciBpcyBmb3VuZCBnZXQgbWVtYmVyIGlkDQoJCQlpZiAoJHVzZXJJZCA9PSAwKQ0KCQkJew0KCQkJCSRtZW1iZXJJZCA9ICgkZm9ybSBpbnN0YW5jZW9mIEZvcm0gJiYgKCRtZW1iZXJJZCA9ICRmb3JtLT5nZXRWYWx1ZSgnaWQnKSkpID8gJG1lbWJlcklkIDogKCgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSAmJiAoJG1lbWJlcklkID0gJGlucHV0LT5nZXQoJ2lkJykpKSA/ICRtZW1iZXJJZCA6IDApOw0KCQkJfQ0KCQkJLy8gZ2V0IGFjY291bnQgdHlwZSBpZiBuZWVkZWQNCgkJCWlmICgkdXNlcklkID09IDAgJiYgJG1lbWJlcklkID4gMCkNCgkJCXsNCgkJCQkkYWNjb3VudElkID0gKCRmb3JtIGluc3RhbmNlb2YgRm9ybSAmJiAoJGFjY291bnRJZCA9ICRmb3JtLT5nZXRWYWx1ZSgnYWNjb3VudCcpKSkgPyAkYWNjb3VudElkIDogKCgkaW5wdXQgaW5zdGFuY2VvZiBSZWdpc3RyeSAmJiAoJGFjY291bnRJZCA9ICRpbnB1dC0+Z2V0KCdhY2NvdW50JykpKSA/ICRhY2NvdW50SWQgOiAwKTsNCgkJCQkvLyBtYWtlIHN1cmUgdGhlc2UgYWNjb3VudCBpcyBzZXQNCgkJCQlpZiAoJGFjY291bnRJZCA9PSAwKQ0KCQkJCXsNCgkJCQkJJGFjY291bnRJZCA9IFN1cGVyX19fZGI4N2MzMzlfNWJiNl80MjkxX2E3ZWZfMmM0OGVhMWIwNmJjX19fUG93ZXI6OnZhcignbWVtYmVyJywgJG1lbWJlcklkLCAnaWQnLCAnYWNjb3VudCcpOw0KCQkJCX0NCgkJCX0NCgkJCS8vIGdldCB1c2VyIHZhbHVlIGlmIG5vdCBzZXQgKGR1ZSB0byBwZXJtaXNzaW9ucykNCgkJCWlmICgkdXNlcklkID09IDAgJiYgJG1lbWJlcklkID4gMCAmJiAkYWNjb3VudElkID4gMCAmJiAoMSA9PSAkYWNjb3VudElkIHx8IDQgPT0gJGFjY291bnRJZCkpDQoJCQl7DQoJCQkJJHVzZXJJZCA9IFN1cGVyX19fZGI4N2MzMzlfNWJiNl80MjkxX2E3ZWZfMmM0OGVhMWIwNmJjX19fUG93ZXI6OnZhcignbWVtYmVyJywgJG1lbWJlcklkLCAnaWQnLCAndXNlcicpOw0KCQkJfQ0KCQkJJHF1ZXJ5LT53aGVyZSgkZGItPnF1b3RlTmFtZSgnaWQnKSAuICcgPD4gJyAuIChpbnQpICR1c2VySWQpOw0KDQoJCQkvLyBTZXQgYW5kIHF1ZXJ5IHRoZSBkYXRhYmFzZS4NCgkJCSRkYi0+c2V0UXVlcnkoJHF1ZXJ5KTsNCgkJCSRkdXBsaWNhdGUgPSAoYm9vbCkgJGRiLT5sb2FkUmVzdWx0KCk7DQoNCgkJCWlmICgkZHVwbGljYXRlKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0cnVlOw0KCX0=', 'Validate the member useremail', 1, '2018-09-16 00:43:44', ''), (6, 'iban', 'CS8qKg0KCSogTWV0aG9kIHRvIGNoZWNrIGlmIElCQU4gaXMgdmFsaWQuDQoJKg0KCSogQHBhcmFtICAgXFNpbXBsZVhNTEVsZW1lbnQgICRlbGVtZW50ICBUaGUgU2ltcGxlWE1MRWxlbWVudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBgPGZpZWxkPmAgdGFnIGZvciB0aGUgZm9ybSBmaWVsZCBvYmplY3QuDQoJKiBAcGFyYW0gICBtaXhlZCAgICAgICAgICAgICAgJHZhbHVlICAgIFRoZSBmb3JtIGZpZWxkIHZhbHVlIHRvIHZhbGlkYXRlLg0KCSogQHBhcmFtICAgc3RyaW5nICAgICAgICAgICAgICRncm91cCAgICBUaGUgZmllbGQgbmFtZSBncm91cCBjb250cm9sIHZhbHVlLiBUaGlzIGFjdHMgYXMgYW4gYXJyYXkgY29udGFpbmVyIGZvciB0aGUgZmllbGQuDQoJKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciBleGFtcGxlIGlmIHRoZSBmaWVsZCBoYXMgbmFtZT0iZm9vIiBhbmQgdGhlIGdyb3VwIHZhbHVlIGlzIHNldCB0byAiYmFyIiB0aGVuIHRoZQ0KCSogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsIGZpZWxkIG5hbWUgd291bGQgZW5kIHVwIGJlaW5nICJiYXJbZm9vXSIuDQoJKiBAcGFyYW0gICBSZWdpc3RyeSAgICAgICAgICAgJGlucHV0ICAgIEFuIG9wdGlvbmFsIFJlZ2lzdHJ5IG9iamVjdCB3aXRoIHRoZSBlbnRpcmUgZGF0YSBzZXQgdG8gdmFsaWRhdGUgYWdhaW5zdCB0aGUgZW50aXJlIGZvcm0uDQoJKiBAcGFyYW0gICBGb3JtICAgICAgICAgICAgICAgJGZvcm0gICAgIFRoZSBmb3JtIG9iamVjdCBmb3Igd2hpY2ggdGhlIGZpZWxkIGlzIGJlaW5nIHRlc3RlZC4NCgkqDQoJKiBAcmV0dXJuICBib29sZWFuICBUcnVlIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLg0KCSoNCgkqIEBzaW5jZSAgIDMuOS4wDQoJKi8NCglwdWJsaWMgZnVuY3Rpb24gdGVzdChcU2ltcGxlWE1MRWxlbWVudCAkZWxlbWVudCwgJHZhbHVlLCAkZ3JvdXAgPSBudWxsLCBSZWdpc3RyeSAkaW5wdXQgPSBudWxsLCBGb3JtICRmb3JtID0gbnVsbCkNCgl7DQoJCSRjb3VudHJ5Q29kZU9mZnNldCA9IDA7IC8vIENPVU5UUllfQ09ERV9PRkZTRVQNCgkJJGNvdW50cnlDb2RlTGVuZ3RoID0gMjsgLy9DT1VOVFJZX0NPREVfTEVOR1RIDQoJCSRjaGVja3N1bU9mZnNldCA9IDI7IC8vQ0hFQ0tTVU1fT0ZGU0VUDQoJCSRjaGVja3N1bUxlbmd0aCA9IDI7IC8vQ0hFQ0tTVU1fTEVOR1RIDQoJCSRpbnN0aXR1dGVJZGVudGlmaWNhdGlvbk9mZnNldCA9IDQ7IC8vSU5TVElUVVRFX0lERU5USUZJQ0FUSU9OX09GRlNFVA0KDQoJCS8qKg0KCQkqIEB2YXIgYXJyYXkgQ291bnRyeSBjb2RlIHRvIHNpemUsIHJlZ2V4IGZvcm1hdCBmb3IgZWFjaCBjb3VudHJ5IHRoYXQgc3VwcG9ydHMgSUJBTg0KCQkqLw0KCQkkaWJhbkZvcm1hdE1hcCA9IGFycmF5KA0KCQkJJ0FBJyA9PiBhcnJheSgxMiwgJ15bQS1aMC05XXsxMn0kJyksDQoJCQknQUQnID0+IGFycmF5KDIwLCAnXlswLTldezR9WzAtOV17NH1bQS1aMC05XXsxMn0kJyksDQoJCQknQUUnID0+IGFycmF5KDE5LCAnXlswLTldezN9WzAtOV17MTZ9JCcpLA0KCQkJJ0FMJyA9PiBhcnJheSgyNCwgJ15bMC05XXs4fVtBLVowLTldezE2fSQnKSwNCgkJCSdBTycgPT4gYXJyYXkoMjEsICdeWzAtOV17MjF9JCcpLA0KCQkJJ0FUJyA9PiBhcnJheSgxNiwgJ15bMC05XXs1fVswLTldezExfSQnKSwNCgkJCSdBWCcgPT4gYXJyYXkoMTQsICdeWzAtOV17Nn1bMC05XXs3fVswLTldezF9JCcpLA0KCQkJJ0FaJyA9PiBhcnJheSgyNCwgJ15bQS1aXXs0fVtBLVowLTldezIwfSQnKSwNCgkJCSdCQScgPT4gYXJyYXkoMTYsICdeWzAtOV17M31bMC05XXszfVswLTldezh9WzAtOV17Mn0kJyksDQoJCQknQkUnID0+IGFycmF5KDEyLCAnXlswLTldezN9WzAtOV17N31bMC05XXsyfSQnKSwNCgkJCSdCRicgPT4gYXJyYXkoMjMsICdeWzAtOV17MjN9JCcpLA0KCQkJJ0JHJyA9PiBhcnJheSgxOCwgJ15bQS1aXXs0fVswLTldezR9WzAtOV17Mn1bQS1aMC05XXs4fSQnKSwNCgkJCSdCSCcgPT4gYXJyYXkoMTgsICdeW0EtWl17NH1bQS1aMC05XXsxNH0kJyksDQoJCQknQkknID0+IGFycmF5KDEyLCAnXlswLTldezEyfSQnKSwNCgkJCSdCSicgPT4gYXJyYXkoMjQsICdeW0EtWl17MX1bMC05XXsyM30kJyksDQoJCQknQkwnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdCUicgPT4gYXJyYXkoMjUsICdeWzAtOV17OH1bMC05XXs1fVswLTldezEwfVtBLVpdezF9W0EtWjAtOV17MX0kJyksDQoJCQknQ0gnID0+IGFycmF5KDE3LCAnXlswLTldezV9W0EtWjAtOV17MTJ9JCcpLA0KCQkJJ0NJJyA9PiBhcnJheSgyNCwgJ15bQS1aXXsxfVswLTldezIzfSQnKSwNCgkJCSdDTScgPT4gYXJyYXkoMjMsICdeWzAtOV17MjN9JCcpLA0KCQkJJ0NSJyA9PiBhcnJheSgxNywgJ15bMC05XXs0fVswLTldezEzfSQnKSwNCgkJCSdDVicgPT4gYXJyYXkoMjEsICdeWzAtOV17MjF9JCcpLA0KCQkJJ0NZJyA9PiBhcnJheSgyNCwgJ15bMC05XXszfVswLTldezV9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ0NaJyA9PiBhcnJheSgyMCwgJ15bMC05XXs0fVswLTldezZ9WzAtOV17MTB9JCcpLA0KCQkJJ0RFJyA9PiBhcnJheSgxOCwgJ15bMC05XXs4fVswLTldezEwfSQnKSwNCgkJCSdESycgPT4gYXJyYXkoMTQsICdeWzAtOV17NH1bMC05XXs5fVswLTldezF9JCcpLA0KCQkJJ0RPJyA9PiBhcnJheSgyNCwgJ15bQS1aMC05XXs0fVswLTldezIwfSQnKSwNCgkJCSdEWicgPT4gYXJyYXkoMjAsICdeWzAtOV17MjB9JCcpLA0KCQkJJ0VFJyA9PiBhcnJheSgxNiwgJ15bMC05XXsyfVswLTldezJ9WzAtOV17MTF9WzAtOV17MX0kJyksDQoJCQknRVMnID0+IGFycmF5KDIwLCAnXlswLTldezR9WzAtOV17NH1bMC05XXsxfVswLTldezF9WzAtOV17MTB9JCcpLA0KCQkJJ0ZJJyA9PiBhcnJheSgxNCwgJ15bMC05XXs2fVswLTldezd9WzAtOV17MX0kJyksDQoJCQknRk8nID0+IGFycmF5KDE0LCAnXlswLTldezR9WzAtOV17OX1bMC05XXsxfSQnKSwNCgkJCSdGUicgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ0dCJyA9PiBhcnJheSgxOCwgJ15bQS1aXXs0fVswLTldezZ9WzAtOV17OH0kJyksDQoJCQknR0UnID0+IGFycmF5KDE4LCAnXltBLVpdezJ9WzAtOV17MTZ9JCcpLA0KCQkJJ0dGJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknR0knID0+IGFycmF5KDE5LCAnXltBLVpdezR9W0EtWjAtOV17MTV9JCcpLA0KCQkJJ0dMJyA9PiBhcnJheSgxNCwgJ15bMC05XXs0fVswLTldezl9WzAtOV17MX0kJyksDQoJCQknR1AnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdHUicgPT4gYXJyYXkoMjMsICdeWzAtOV17M31bMC05XXs0fVtBLVowLTldezE2fSQnKSwNCgkJCSdHVCcgPT4gYXJyYXkoMjQsICdeW0EtWjAtOV17NH1bQS1aMC05XXsyMH0kJyksDQoJCQknSFInID0+IGFycmF5KDE3LCAnXlswLTldezd9WzAtOV17MTB9JCcpLA0KCQkJJ0hVJyA9PiBhcnJheSgyNCwgJ15bMC05XXszfVswLTldezR9WzAtOV17MX1bMC05XXsxNX1bMC05XXsxfSQnKSwNCgkJCSdJRScgPT4gYXJyYXkoMTgsICdeW0EtWl17NH1bMC05XXs2fVswLTldezh9JCcpLA0KCQkJJ0lMJyA9PiBhcnJheSgxOSwgJ15bMC05XXszfVswLTldezN9WzAtOV17MTN9JCcpLA0KCQkJJ0lSJyA9PiBhcnJheSgyMiwgJ15bMC05XXsyMn0kJyksDQoJCQknSVMnID0+IGFycmF5KDIyLCAnXlswLTldezR9WzAtOV17Mn1bMC05XXs2fVswLTldezEwfSQnKSwNCgkJCSdJVCcgPT4gYXJyYXkoMjMsICdeW0EtWl17MX1bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTJ9JCcpLA0KCQkJJ0pPJyA9PiBhcnJheSgyNiwgJ15bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTh9JCcpLA0KCQkJJ0tXJyA9PiBhcnJheSgyNiwgJ15bQS1aXXs0fVtBLVowLTldezIyfSQnKSwNCgkJCSdLWicgPT4gYXJyYXkoMTYsICdeWzAtOV17M31bQS1aMC05XXsxM30kJyksDQoJCQknTEInID0+IGFycmF5KDI0LCAnXlswLTldezR9W0EtWjAtOV17MjB9JCcpLA0KCQkJJ0xDJyA9PiBhcnJheSgyOCwgJ15bQS1aXXs0fVtBLVowLTldezI0fSQnKSwNCgkJCSdMSScgPT4gYXJyYXkoMTcsICdeWzAtOV17NX1bQS1aMC05XXsxMn0kJyksDQoJCQknTFQnID0+IGFycmF5KDE2LCAnXlswLTldezV9WzAtOV17MTF9JCcpLA0KCQkJJ0xVJyA9PiBhcnJheSgxNiwgJ15bMC05XXszfVtBLVowLTldezEzfSQnKSwNCgkJCSdMVicgPT4gYXJyYXkoMTcsICdeW0EtWl17NH1bQS1aMC05XXsxM30kJyksDQoJCQknTUMnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdNRCcgPT4gYXJyYXkoMjAsICdeW0EtWjAtOV17Mn1bQS1aMC05XXsxOH0kJyksDQoJCQknTUUnID0+IGFycmF5KDE4LCAnXlswLTldezN9WzAtOV17MTN9WzAtOV17Mn0kJyksDQoJCQknTUYnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdNRycgPT4gYXJyYXkoMjMsICdeWzAtOV17MjN9JCcpLA0KCQkJJ01LJyA9PiBhcnJheSgxNSwgJ15bMC05XXszfVtBLVowLTldezEwfVswLTldezJ9JCcpLA0KCQkJJ01MJyA9PiBhcnJheSgyNCwgJ15bQS1aXXsxfVswLTldezIzfSQnKSwNCgkJCSdNUScgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ01SJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9WzAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknTVQnID0+IGFycmF5KDI3LCAnXltBLVpdezR9WzAtOV17NX1bQS1aMC05XXsxOH0kJyksDQoJCQknTVUnID0+IGFycmF5KDI2LCAnXltBLVpdezR9WzAtOV17Mn1bMC05XXsyfVswLTldezEyfVswLTldezN9W0EtWl17M30kJyksDQoJCQknTVonID0+IGFycmF5KDIxLCAnXlswLTldezIxfSQnKSwNCgkJCSdOQycgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ05MJyA9PiBhcnJheSgxNCwgJ15bQS1aXXs0fVswLTldezEwfSQnKSwNCgkJCSdOTycgPT4gYXJyYXkoMTEsICdeWzAtOV17NH1bMC05XXs2fVswLTldezF9JCcpLA0KCQkJJ1BGJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknUEsnID0+IGFycmF5KDIwLCAnXltBLVpdezR9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ1BMJyA9PiBhcnJheSgyNCwgJ15bMC05XXs4fVswLTldezE2fSQnKSwNCgkJCSdQTScgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpLA0KCQkJJ1BTJyA9PiBhcnJheSgyNSwgJ15bQS1aXXs0fVtBLVowLTldezIxfSQnKSwNCgkJCSdQVCcgPT4gYXJyYXkoMjEsICdeWzAtOV17NH1bMC05XXs0fVswLTldezExfVswLTldezJ9JCcpLA0KCQkJJ1FBJyA9PiBhcnJheSgyNSwgJ15bQS1aXXs0fVswLTldezR9W0EtWjAtOV17MTd9JCcpLA0KCQkJJ1JFJyA9PiBhcnJheSgyMywgJ15bMC05XXs1fVswLTldezV9W0EtWjAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknUk8nID0+IGFycmF5KDIwLCAnXltBLVpdezR9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ1JTJyA9PiBhcnJheSgxOCwgJ15bMC05XXszfVswLTldezEzfVswLTldezJ9JCcpLA0KCQkJJ1NBJyA9PiBhcnJheSgyMCwgJ15bMC05XXsyfVtBLVowLTldezE4fSQnKSwNCgkJCSdTQycgPT4gYXJyYXkoMjcsICdeW0EtWl17NH1bMC05XXs0fVswLTldezE2fVtBLVpdezN9JCcpLA0KCQkJJ1NFJyA9PiBhcnJheSgyMCwgJ15bMC05XXszfVswLTldezE2fVswLTldezF9JCcpLA0KCQkJJ1NJJyA9PiBhcnJheSgxNSwgJ15bMC05XXs1fVswLTldezh9WzAtOV17Mn0kJyksDQoJCQknU0snID0+IGFycmF5KDIwLCAnXlswLTldezR9WzAtOV17Nn1bMC05XXsxMH0kJyksDQoJCQknU00nID0+IGFycmF5KDIzLCAnXltBLVpdezF9WzAtOV17NX1bMC05XXs1fVtBLVowLTldezEyfSQnKSwNCgkJCSdTTicgPT4gYXJyYXkoMjQsICdeW0EtWl17MX1bMC05XXsyM30kJyksDQoJCQknU1QnID0+IGFycmF5KDIxLCAnXlswLTldezh9WzAtOV17MTF9WzAtOV17Mn0kJyksDQoJCQknVEYnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdUTCcgPT4gYXJyYXkoMTksICdeWzAtOV17M31bMC05XXsxNH1bMC05XXsyfSQnKSwNCgkJCSdUTicgPT4gYXJyYXkoMjAsICdeWzAtOV17Mn1bMC05XXszfVswLTldezEzfVswLTldezJ9JCcpLA0KCQkJJ1RSJyA9PiBhcnJheSgyMiwgJ15bMC05XXs1fVswLTldezF9W0EtWjAtOV17MTZ9JCcpLA0KCQkJJ1VBJyA9PiBhcnJheSgyNSwgJ15bMC05XXs2fVtBLVowLTldezE5fSQnKSwNCgkJCSdWRycgPT4gYXJyYXkoMjAsICdeW0EtWl17NH1bMC05XXsxNn0kJyksDQoJCQknV0YnID0+IGFycmF5KDIzLCAnXlswLTldezV9WzAtOV17NX1bQS1aMC05XXsxMX1bMC05XXsyfSQnKSwNCgkJCSdYSycgPT4gYXJyYXkoMTYsICdeWzAtOV17NH1bMC05XXsxMH1bMC05XXsyfSQnKSwNCgkJCSdZVCcgPT4gYXJyYXkoMjMsICdeWzAtOV17NX1bMC05XXs1fVtBLVowLTldezExfVswLTldezJ9JCcpDQoJCSk7DQoNCgkJLy8gQ0xFQU4gVVAgSUJBTg0KCQkkaWJhbiA9IHByZWdfcmVwbGFjZSgnL1teYS16MC05XSsvaScsICcnLCB0cmltKHN0cnRvdXBwZXIoJHZhbHVlKSkpOw0KDQoJCS8vIENIRUNLIENvdW50cnkgQ29kZQ0KCQkkY291bnRyeUNvZGUgPSBzdWJzdHIoJGliYW4sICRjb3VudHJ5Q29kZU9mZnNldCwgJGNvdW50cnlDb2RlTGVuZ3RoKTsNCgkJJGlzQ291bnRyeUNvZGVWYWxpZCA9ICEoaXNzZXQoJGliYW5Gb3JtYXRNYXBbJGNvdW50cnlDb2RlXSkgPT09IGZhbHNlKTsNCg0KCQkkdmFsaWRMZW5ndGggPSAkY291bnRyeUNvZGVMZW5ndGggKyAkY2hlY2tzdW1MZW5ndGggKyAkaWJhbkZvcm1hdE1hcFskY291bnRyeUNvZGVdWzBdOw0KCQkkaXNMZW5ndGhWYWxpZCA9IHN0cmxlbigkaWJhbikgPT09ICR2YWxpZExlbmd0aDsNCg0KCQkkYWNjb3VudElkZW50aWZpY2F0aW9uID0gc3Vic3RyKCRpYmFuLCAkaW5zdGl0dXRlSWRlbnRpZmljYXRpb25PZmZzZXQpOw0KCQkkaXNGb3JtYXRWYWxpZCA9ICEocHJlZ19tYXRjaCgnLycgLiAkaWJhbkZvcm1hdE1hcFskY291bnRyeUNvZGVdWzFdIC4gJy8nLCAkYWNjb3VudElkZW50aWZpY2F0aW9uKSAhPT0gMSk7DQoNCgkJJGNoZWNrc3VtID0gc3Vic3RyKCRpYmFuLCAkY2hlY2tzdW1PZmZzZXQsICRjaGVja3N1bUxlbmd0aCk7DQoJCSRhY2NvdW50SWRlbnRpZmljYXRpb24gPSBzdWJzdHIoJGliYW4sICRpbnN0aXR1dGVJZGVudGlmaWNhdGlvbk9mZnNldCk7DQoNCgkJLy8gR0VUIE5VTUVSSUMgQ09VTlRSWSBDT0RFDQoJCSRudW1lcmljUmVwcmVzZW50YXRpb24gPSAnJzsNCgkJJGxldHRlclJlcHJlc2VudGF0aW9uID0gJGNvdW50cnlDb2RlOw0KCQlmb3JlYWNoIChzdHJfc3BsaXQoJGxldHRlclJlcHJlc2VudGF0aW9uKSBhcyAkY2hhcikNCgkJew0KCQkJJG9yZCA9IG9yZCgkY2hhcik7DQoJCQlpZiAoJG9yZCA+PSA2NSAmJiAkb3JkIDw9IDkwKQ0KCQkJew0KCQkJCSRudW1lcmljUmVwcmVzZW50YXRpb24gLj0gKHN0cmluZykgKCRvcmQgLSA1NSk7DQoJCQl9DQoJCQllbHNlaWYgKCRvcmQgPj0gNDggJiYgJG9yZCA8PSA1NykNCgkJCXsNCgkJCQkkbnVtZXJpY1JlcHJlc2VudGF0aW9uIC49IChzdHJpbmcpICgkb3JkIC0gNDgpOw0KCQkJfQ0KCQl9DQoJCSRudW1lcmljQ291bnRyeUNvZGUgPSAkbnVtZXJpY1JlcHJlc2VudGF0aW9uOw0KDQoJCSRudW1lcmljUmVwcmVzZW50YXRpb24gPSAnJzsNCgkJJGxldHRlclJlcHJlc2VudGF0aW9uID0gJGFjY291bnRJZGVudGlmaWNhdGlvbjsNCgkJZm9yZWFjaCAoc3RyX3NwbGl0KCRsZXR0ZXJSZXByZXNlbnRhdGlvbikgYXMgJGNoYXIpDQoJCXsNCgkJCSRvcmQgPSBvcmQoJGNoYXIpOw0KCQkJaWYgKCRvcmQgPj0gNjUgJiYgJG9yZCA8PSA5MCkNCgkJCXsNCgkJCQkkbnVtZXJpY1JlcHJlc2VudGF0aW9uIC49IChzdHJpbmcpICgkb3JkIC0gNTUpOw0KCQkJfQ0KCQkJZWxzZWlmICgkb3JkID49IDQ4ICYmICRvcmQgPD0gNTcpDQoJCQl7DQoJCQkJJG51bWVyaWNSZXByZXNlbnRhdGlvbiAuPSAoc3RyaW5nKSAoJG9yZCAtIDQ4KTsNCgkJCX0NCgkJfQ0KCQkkbnVtZXJpY0FjY291bnRJZGVudGlmaWNhdGlvbiA9ICRudW1lcmljUmVwcmVzZW50YXRpb247DQoJCSRpbnZlcnRlZEliYW4gPSAkbnVtZXJpY0FjY291bnRJZGVudGlmaWNhdGlvbiAuICRudW1lcmljQ291bnRyeUNvZGUgLiAkY2hlY2tzdW07DQoNCgkJLy8gQ0hFQ0tTVU0gQkNNT0QNCgkJJHggPSAkaW52ZXJ0ZWRJYmFuOw0KCQkkeSA9IDk3Ow0KCQlpZiAoIWZ1bmN0aW9uX2V4aXN0cygnYmNtb2QnKSkNCgkJew0KCQkJJHRha2UgPSA1Ow0KCQkJJG1vZCA9ICcnOw0KCQkJZG8gew0KCQkJCSRhID0gKGludCkkbW9kIC4gc3Vic3RyKCR4LCAwLCAkdGFrZSk7DQoJCQkJJHggPSBzdWJzdHIoJHgsICR0YWtlKTsNCgkJCQkkbW9kID0gJGEgJSAkeTsNCgkJCX0gd2hpbGUgKHN0cmxlbigkeCkpOw0KCQkJJGJjbW9kID0gKHN0cmluZykkbW9kOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJGJjbW9kID0gYmNtb2QoJHgsICR5KTsNCgkJfQ0KDQoJCSRpc0NoZWNrc3VtVmFsaWQgPSAkYmNtb2QgPT09ICcxJzsNCg0KCQlpZiAoISRpc0NvdW50cnlDb2RlVmFsaWQgfHwgISRpc0xlbmd0aFZhbGlkIHx8ICEkaXNGb3JtYXRWYWxpZCB8fCAhJGlzQ2hlY2tzdW1WYWxpZCkNCgkJew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkgICAgcmV0dXJuIHRydWU7DQoJCX0NCgl9', 'IBAN validation', 1, '2019-02-12 23:14:43', ''); -- @@ -2747,7 +2747,7 @@ INSERT INTO `#__componentbuilder_field` (`id`, `add_css_view`, `add_css_views`, (558, 1, '', 1, '', 'I2pmb3JtX21haW5fZ2V0X2Noem4gew0Kd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCn0NCi5qZm9ybV9tYWluX2dldF9pbnB1dF93aWR0aCB7DQp3aWR0aDogOTAlICFpbXBvcnRhbnQ7DQp9', '', '', '', 11, '', 'INT', 2, 'alF1ZXJ5KCcjamZvcm1fbWFpbl9nZXQnKS5jbG9zZXN0KCcuaW5wdXQtYXBwZW5kJykuYWRkQ2xhc3MoJ2pmb3JtX21haW5fZ2V0X2lucHV0X3dpZHRoJyk7', '', 'Main Get (dynamic)', 'NOT NULL', '', 6, '\"getQuery(true);\\\" \\r\\n\\ttype_php_3=\\\"$query->select($db->quoteName(array(\'a.###ID###\',\'a.###TEXT###\',\'a.gettype\'),array(\'###ID###\',\'###CODE_TEXT###\',\'type\')));\\\" \\r\\n\\ttype_php_4=\\\"$query->from($db->quoteName(\'###TABLE###\', \'a\'));\\\" \\r\\n\\ttype_php_5=\\\"$query->where($db->quoteName(\'a.published\') . \' = 1\');\\\\n\\\\t\\\\t$query->where(\'( \'.$db->quoteName(\'a.gettype\') . \' = 1 OR \' . $db->quoteName(\'a.gettype\') . \' = 2 )\');\\\\n\\\\t\\\\t$query->order(\'a.###TEXT### ASC\');\\\" \\r\\n\\ttype_php_6=\\\"$db->setQuery((string)$query);\\\" \\r\\n\\ttype_php_7=\\\"$items = $db->loadObjectList();\\\" \\r\\n\\ttype_php_8=\\\"$options = array();\\\" \\r\\n\\ttype_php_9=\\\"if ($items)\\\" \\r\\n\\ttype_php_10=\\\"{\\\" \\r\\n\\ttype_php_11=\\\"\\\\t$model = ###Component###Helper::getModel(\'dynamic_gets\');\\\" \\r\\n\\ttype_php_12=\\\"\\\\tforeach($items as $item)\\\" \\r\\n\\ttype_php_13=\\\"\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t$type = $model->selectionTranslation($item->type,\'gettype\');\\\" \\r\\n\\ttype_php_14=\\\"\\\\t\\\\t$options[] = JHtml::_(\'select.option\', $item->###ID###, $item->###CODE_TEXT### . \' (\' . JText::_($type) . \')\' );\\\" \\r\\n\\ttype_php_15=\\\"\\\\t}\\\" \\r\\n\\ttype_php_16=\\\"}\\\" \\r\\n\\ttype_php_18=\\\"return $options;\\\"\\r\\n\\/>\"', 1, '2015-06-01 22:00:07', '2017-11-22 21:38:11', 10, '', 402, 'd20027fe-4e74-4261-9bf2-7e573a3e883b', '', '', '', '', ''), (559, '', '', '', '', '', '', '', '', '', '', 'TEXT', '', '', '', 'Custom Get (dynamic)', 'NOT NULL', '', 6, '\"\"', 1, '2015-06-01 22:02:10', '2024-03-26 13:25:02', 11, '', 403, 'bed7693b-ccd1-4803-b065-5e20fac13881', '', '', '', '', ''), (560, 1, '', 1, '', 'I2pmb3JtX2R5bmFtaWNfZ2V0X2Noem4gew0Kd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCn0NCi5qZm9ybV9keW5hbWljX2dldF9pbnB1dF93aWR0aCB7DQp3aWR0aDogOTAlICFpbXBvcnRhbnQ7DQp9', '', '', '', 11, '', 'INT', 2, 'alF1ZXJ5KCcjamZvcm1fZHluYW1pY19nZXQnKS5jbG9zZXN0KCcuaW5wdXQtYXBwZW5kJykuYWRkQ2xhc3MoJ2pmb3JtX2R5bmFtaWNfZ2V0X2lucHV0X3dpZHRoJyk7', '', 'Dynamic Get (snippet)', 'NOT NULL', '', 6, '\"getQuery(true);\\\" \\r\\n\\ttype_php_3=\\\"$query->select($db->quoteName(array(\'a.###ID###\',\'a.###TEXT###\',\'a.gettype\'),array(\'###ID###\',\'###CODE_TEXT###\',\'type\')));\\\" \\r\\n\\ttype_php_4=\\\"$query->from($db->quoteName(\'###TABLE###\', \'a\'));\\\" \\r\\n\\ttype_php_5=\\\"$query->where($db->quoteName(\'a.published\') . \' = 1\');\\\\n$query->order(\'a.###TEXT### ASC\');\\\" \\r\\n\\ttype_php_6=\\\"$db->setQuery((string)$query);\\\" \\r\\n\\ttype_php_7=\\\"$items = $db->loadObjectList();\\\" \\r\\n\\ttype_php_8=\\\"$options = array();\\\" \\r\\n\\ttype_php_9=\\\"if ($items)\\\" \\r\\n\\ttype_php_10=\\\"{\\\" \\r\\n\\ttype_php_11=\\\"\\\\t$model = ###Component###Helper::getModel(\'dynamic_gets\');\\\" \\r\\n\\ttype_php_12=\\\"\\\\tforeach($items as $item)\\\" \\r\\n\\ttype_php_13=\\\"\\\\t{\\\\n\\\\t\\\\t\\\\t\\\\t$type = $model->selectionTranslation($item->type,\'gettype\');\\\" \\r\\n\\ttype_php_14=\\\"\\\\t\\\\t$options[] = JHtml::_(\'select.option\', $item->###ID###, $item->###CODE_TEXT### . \' (\' . JText::_($type) . \')\' );\\\" \\r\\n\\ttype_php_15=\\\"\\\\t}\\\" \\r\\n\\ttype_php_16=\\\"}\\\" \\r\\n\\ttype_php_17=\\\"\\\" \\r\\n\\ttype_php_18=\\\"return $options;\\\"\\r\\n\\/>\"', 1, '2015-06-01 22:51:20', '2017-11-22 21:42:34', 6, '', 404, 'c37aa662-719c-4ed5-bbf2-e36672a3ce33', '', '', '', '', ''), -(561, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Note - Add PHP Language String', 'NOT NULL', '', 14, '\"<?php echo JText::_('Text'); ?><\\/code>
\\r\\n<?php echo JText::sprintf('Hello %s', $this->user->name); ?><\\/code>
\\r\\nJust get UPPERCASE language string:<\\/b>
\\r\\n<?php echo JustTEXT::_('Text'); ?><\\/code>\\\"\\n\\theading=\\\"h4\\\"\\n\\/>\"', 1, '2015-06-03 15:23:13', '2022-02-02 13:35:21', 15, '', 539, 'edaac8c1-d2df-4e51-9d48-e1d7259984a3', '', '', '', '', ''), +(561, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Note - Add PHP Language String', 'NOT NULL', '', 14, '\"<?php echo Text::_('Text'); ?><\\/code>
\\r\\n<?php echo Text::sprintf('Hello %s', $this->user->name); ?><\\/code>
\\r\\nJust get UPPERCASE language string:<\\/b>
\\r\\n<?php echo JustTEXT::_('Text'); ?><\\/code>\\\"\\n\\theading=\\\"h4\\\"\\n\\/>\"', 1, '2015-06-03 15:23:13', '2024-04-08 07:54:26', 16, '', 539, 'edaac8c1-d2df-4e51-9d48-e1d7259984a3', '', '', '', '', ''), (562, '', '', '', '', '', '', '', '', '', '', 'MEDIUMTEXT', '', '', '', 'PHP (helper_site)', 'NOT NULL', 2, 8, '\"\"', 1, '2015-06-07 22:39:33', '2019-07-08 14:14:42', 4, '', 540, 'f4134f92-7dc5-4729-9a16-bfaa51de27f9', '', '', '', '', ''), (563, '', '', '', '', '', '', '', '', 1, '', 'TINYINT', 2, '', '', 'Add PHP (helper_site Class)', 'NOT NULL', '', 17, '\"\"', 1, '2015-06-07 22:39:54', '2015-08-25 21:15:22', 2, '', 548, 'ff624860-89db-4465-97f1-962bf09dcc9f', '', '', '', '', ''), (564, '', '', '', '', '', '', '', '', 11, '', 'TINYINT', 2, '', '', 'Site Menu', 'NOT NULL', '', 3, '\"\"', 1, '2015-06-09 19:58:37', '2019-06-11 12:15:59', 3, '', 549, '5ad1beb3-ad4c-4704-a1fd-be7045e3478a', '', '', '', '', ''), @@ -4769,7 +4769,7 @@ INSERT INTO `#__componentbuilder_field` (`id`, `add_css_view`, `add_css_views`, (2581, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'PHP Dashboard Note', 'NOT NULL', '', 14, '\"use the public function getMethodName()<\\/b> to insure the data is set to the view,
Note the convention public function get...()<\\/b> replace the ... with the unique method name.\\\"\\n\\/>\"', 1, '2019-07-09 15:37:53', '2019-07-09 15:40:26', 2, '', 939, 'ac1e8e4e-74f5-4e5d-9d26-de73e2b4dd85', '', '', '', '', ''), (2582, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Plugin Note', 'NOT NULL', '', 14, '\"So over here you are able to manually code your plugin methods which usually will be the event name you are targeting.<\\/p>

We have also added some methods via the boilerplate repo<\\/a> that can serve as a starting point, simple select them and it will be added to your code.<\\/p>

If you have added any fields in the Config\\/Params tab, these fields will be available to you in the $this->params<\\/code> object, and can be accessed via the field name $this->params->get(\'fieldname\');<\\/code> with the get method.<\\/p>\\\"\\n\\theading=\\\"h4\\\"\\n\\tclass=\\\"alert alert-info\\\"\\n\\/>\"', 1, '2019-07-10 10:45:56', '2019-07-10 11:04:59', 3, '', 940, '9f50213b-07b5-4147-a24c-f3d390498c6c', '', '', '', '', ''), (2583, '', '', '', '', '', '', '', '', 64, '', 'VARCHAR', '', '', '', 'Extension Type', 'NOT NULL', '', 11, '\"\"', 1, '2019-07-10 19:45:26', '2021-08-10 11:54:35', 4, '', 856, '7e059ab7-d79b-4218-9488-6f38d85d17a0', '', '', '', '', ''), -(2584, '', '', '', '', '', '', '', '', 11, '', 'INT', 2, '', '', 'Class Property (plugins)', 'NOT NULL', '', 6, '\"\"', 1, '2019-07-10 19:59:30', '2019-07-15 00:26:37', 9, '', 937, '9fff86dc-3fbb-4001-9dc0-c2b89164b00c', '', '', '', '', ''), +(2584, '', '', '', '', '', '', '', '', 11, '', 'INT', 2, '', '', 'Class Property (plugins)', 'NOT NULL', '', 6, '\"\"', 1, '2019-07-10 19:59:30', '2024-04-09 11:17:54', 10, '', 937, '9fff86dc-3fbb-4001-9dc0-c2b89164b00c', '', '', '', '', ''), (2585, '', '', '', '', '', '', '', '', '', '', 'TEXT', '', '', '', 'Property Selection', 'NOT NULL', '', 35, '\"\"', 1, '2019-07-10 22:18:17', '2021-09-05 09:44:54', 4, '', 938, 'cc01a6b1-7f18-4452-bfa6-4d64fc595a49', '', '', '', '', ''), (2586, '', '', '', '', '', '', '', '', '', '', 'TEXT', '', '', '', 'Default (property value)', 'NOT NULL', 2, 25, '\"\"', 1, '2019-07-12 23:05:12', '2021-08-10 12:05:06', 6, '', 390, '73ef5c00-c8c5-4cb7-9f69-6aed98346818', '', '', '', '', ''), (2587, '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Beta Stage', 'NOT NULL', '', 14, '\"\"', 1, '2019-07-13 23:26:13', '0000-00-00 00:00:00', 1, '', 941, 'c352c5af-833a-4368-bd13-0ccb3a2f3e88', '', '', '', '', ''), diff --git a/admin/sql/updates/mysql/4.0.0-beta1.sql b/admin/sql/updates/mysql/4.0.0-beta2.sql similarity index 100% rename from admin/sql/updates/mysql/4.0.0-beta1.sql rename to admin/sql/updates/mysql/4.0.0-beta2.sql diff --git a/admin/sql/updates/mysql/5.0.0-beta1.sql b/admin/sql/updates/mysql/5.0.0-beta1.sql new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/admin/sql/updates/mysql/5.0.0-beta1.sql @@ -0,0 +1 @@ + diff --git a/admin/src/Controller/PowersController.php b/admin/src/Controller/PowersController.php index 937633ec7..bc1ee39a2 100644 --- a/admin/src/Controller/PowersController.php +++ b/admin/src/Controller/PowersController.php @@ -19,6 +19,7 @@ use Joomla\CMS\Session\Session; use VDM\Component\Componentbuilder\Administrator\Helper\ComponentbuilderHelper; use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Componentbuilder\Power\Factory as PowerFactory; +use VDM\Joomla\Utilities\GetHelper; // No direct access to this file \defined('_JEXEC') or die; @@ -145,7 +146,7 @@ class PowersController extends AdminController ArrayHelper::toInteger($pks); // check if there is any selections - if ($pks == []) + if ($pks === []) { // set error message $message = '

'.Text::_('COM_COMPONENTBUILDER_NO_SELECTION_DETECTED').'

'; @@ -156,21 +157,39 @@ class PowersController extends AdminController return false; } + $status = 'error'; + $success = false; + // check if user has the right $user = Factory::getUser(); if($user->authorise('power.reset', 'com_componentbuilder')) { - // set success message - $message = '

'.Text::_('COM_COMPONENTBUILDER_THIS_RESET_FEATURE_IS_STILL_UNDER_DEVELOPMENT').'

'; - $message .= '

'.Text::sprintf('COM_COMPONENTBUILDER_PLEASE_CHECK_AGAIN_SOON_ANDOR_FOLLOW_THE_PROGRESS_ON_SGITVDMDEVA', '').'

'; + $guids = GetHelper::vars('power', $pks, 'id', 'guid'); + + if (PowerFactory::_('Superpower')->reset($guids)) + { + // set success message + $message = '

'.Text::_('COM_COMPONENTBUILDER_SUCCESS').'

'; + $message .= '

'.Text::_('COM_COMPONENTBUILDER_THESE_POWERS_HAVE_SUCCESSFULLY_BEEN_RESET').'

'; + $status = 'success'; + $success = true; + } + else + { + $message = '

' . Text::_('COM_COMPONENTBUILDER_RESET_FAILED') . '

'; + $message .= '

' . Text::_('COM_COMPONENTBUILDER_THE_RESET_OF_THESE_POWERS_HAS_FAILED') . '

'; + } + // set redirect - $redirect_url = Route::_('index.php?option=com_componentbuilder&view=powers', false); - $this->setRedirect($redirect_url, $message); - return true; + $redirect_url = Route::_('index.php?option=com_componentbuilder&view=powers', $success); + $this->setRedirect($redirect_url, $message, $status); + + return $success; } + // set redirect $redirect_url = Route::_('index.php?option=com_componentbuilder&view=powers', false); $this->setRedirect($redirect_url); - return false; + return $success; } } \ No newline at end of file diff --git a/admin/src/Field/PluginsclassmethodsField.php b/admin/src/Field/PluginsclassmethodsField.php index 90416ed25..6e800a796 100644 --- a/admin/src/Field/PluginsclassmethodsField.php +++ b/admin/src/Field/PluginsclassmethodsField.php @@ -65,12 +65,17 @@ class PluginsclassmethodsField extends ListField } $db->setQuery((string)$query); $items = $db->loadObjectList(); - $options = array(); + $options = []; if ($items) { $options[] = Html::_('select.option', '', 'Select a method'); foreach($items as $item) { + if (!isset($item->visibility)) + { + continue; + } + // we are using this code in more then one field JCB custom_code if ('method' === 'method') { @@ -80,6 +85,7 @@ class PluginsclassmethodsField extends ListField { $select = $item->visibility . ' $' . $item->method_name; } + $options[] = Html::_('select.option', $item->id, $select); } } diff --git a/admin/src/Field/PluginsclasspropertiesField.php b/admin/src/Field/PluginsclasspropertiesField.php index 8d87c0861..7dac6e05f 100644 --- a/admin/src/Field/PluginsclasspropertiesField.php +++ b/admin/src/Field/PluginsclasspropertiesField.php @@ -65,12 +65,17 @@ class PluginsclasspropertiesField extends ListField } $db->setQuery((string)$query); $items = $db->loadObjectList(); - $options = array(); + $options = []; if ($items) { $options[] = Html::_('select.option', '', 'Select a property'); foreach($items as $item) { + if (!isset($item->visibility)) + { + continue; + } + // we are using this code in more then one field JCB custom_code if ('method' === 'property') { @@ -80,6 +85,7 @@ class PluginsclasspropertiesField extends ListField { $select = $item->visibility . ' $' . $item->property_name; } + $options[] = Html::_('select.option', $item->id, $select); } } diff --git a/admin/src/Field/PowersclassmethodsField.php b/admin/src/Field/PowersclassmethodsField.php index f1c6b90f4..790b11647 100644 --- a/admin/src/Field/PowersclassmethodsField.php +++ b/admin/src/Field/PowersclassmethodsField.php @@ -65,12 +65,17 @@ class PowersclassmethodsField extends ListField } $db->setQuery((string)$query); $items = $db->loadObjectList(); - $options = array(); + $options = []; if ($items) { $options[] = Html::_('select.option', '', 'Select a method'); foreach($items as $item) { + if (!isset($item->visibility)) + { + continue; + } + // we are using this code in more then one field JCB custom_code if ('method' === 'method') { @@ -80,6 +85,7 @@ class PowersclassmethodsField extends ListField { $select = $item->visibility . ' $' . $item->method_name; } + $options[] = Html::_('select.option', $item->id, $select); } } diff --git a/admin/src/Field/PowersclasspropertiesField.php b/admin/src/Field/PowersclasspropertiesField.php index ae1639b5c..ffeee5374 100644 --- a/admin/src/Field/PowersclasspropertiesField.php +++ b/admin/src/Field/PowersclasspropertiesField.php @@ -65,12 +65,17 @@ class PowersclasspropertiesField extends ListField } $db->setQuery((string)$query); $items = $db->loadObjectList(); - $options = array(); + $options = []; if ($items) { $options[] = Html::_('select.option', '', 'Select a property'); foreach($items as $item) { + if (!isset($item->visibility)) + { + continue; + } + // we are using this code in more then one field JCB custom_code if ('method' === 'property') { @@ -80,6 +85,7 @@ class PowersclasspropertiesField extends ListField { $select = $item->visibility . ' $' . $item->property_name; } + $options[] = Html::_('select.option', $item->id, $select); } } diff --git a/admin/src/Model/Admin_viewModel.php b/admin/src/Model/Admin_viewModel.php index f198cda10..778e88d72 100644 --- a/admin/src/Model/Admin_viewModel.php +++ b/admin/src/Model/Admin_viewModel.php @@ -1529,6 +1529,12 @@ class Admin_viewModel extends AdminModel { $data['system_name'] = $data['name_single']; } + + // validate that the list and single view name are not the same + if ($data['name_single'] === $data['name_list']) + { + $data['name_list'] .= '_s'; + } // Set the GUID if empty or not valid if (empty($data['guid']) && $data['id'] > 0) diff --git a/admin/src/Model/Joomla_componentModel.php b/admin/src/Model/Joomla_componentModel.php index 64eb421e3..ab72351f2 100644 --- a/admin/src/Model/Joomla_componentModel.php +++ b/admin/src/Model/Joomla_componentModel.php @@ -34,6 +34,7 @@ use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\GuidHelper; use VDM\Joomla\FOF\Encrypt\AES; use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper; +use VDM\Joomla\Utilities\String\ComponentCodeNameHelper; use VDM\Joomla\Utilities\GetHelper; use VDM\Joomla\Componentbuilder\Extrusion\Helper\Extrusion; @@ -1460,6 +1461,9 @@ class Joomla_componentModel extends AdminModel { $data['system_name'] = $data['name']; } + + // make sure that the component code name is safe. + $data['name_code'] = ComponentCodeNameHelper::safe($data['name_code']); // Set the GUID if empty or not valid if (empty($data['guid']) && $data['id'] > 0) diff --git a/admin/tmpl/admin_view/default.php b/admin/tmpl/admin_view/default.php index 61c330b70..9f29e94de 100644 --- a/admin/tmpl/admin_view/default.php +++ b/admin/tmpl/admin_view/default.php @@ -207,476 +207,491 @@ defined('_JEXEC') or die;