Changeset 2929157
- Timestamp:
- 06/21/2023 11:53:49 AM (3 years ago)
- Location:
- wp-mail-logging
- Files:
-
- 175 added
- 33 edited
-
tags/1.12.0 (added)
-
tags/1.12.0/.svnignore (added)
-
tags/1.12.0/assets (added)
-
tags/1.12.0/assets/css (added)
-
tags/1.12.0/assets/css/modal.css (added)
-
tags/1.12.0/assets/css/modal.min.css (added)
-
tags/1.12.0/assets/css/wp-mail-logging-admin.css (added)
-
tags/1.12.0/assets/css/wp-mail-logging-admin.min.css (added)
-
tags/1.12.0/assets/css/wp-mail-logging-product-education.css (added)
-
tags/1.12.0/assets/css/wp-mail-logging-product-education.min.css (added)
-
tags/1.12.0/assets/css/wp-mail-logging-smtp.css (added)
-
tags/1.12.0/assets/css/wp-mail-logging-smtp.min.css (added)
-
tags/1.12.0/assets/images (added)
-
tags/1.12.0/assets/images/arrow-right-plain-icon.svg (added)
-
tags/1.12.0/assets/images/arrow-right.svg (added)
-
tags/1.12.0/assets/images/font-awesome (added)
-
tags/1.12.0/assets/images/font-awesome/exclamation-circle-solid-orange.svg (added)
-
tags/1.12.0/assets/images/icon_resend.svg (added)
-
tags/1.12.0/assets/images/icon_trash.svg (added)
-
tags/1.12.0/assets/images/icon_view.svg (added)
-
tags/1.12.0/assets/images/logo.png (added)
-
tags/1.12.0/assets/images/[email protected] (added)
-
tags/1.12.0/assets/images/plane-bg.png (added)
-
tags/1.12.0/assets/images/[email protected] (added)
-
tags/1.12.0/assets/images/plus-icon.svg (added)
-
tags/1.12.0/assets/images/prod-edu (added)
-
tags/1.12.0/assets/images/prod-edu/archive-thumbnail.png (added)
-
tags/1.12.0/assets/images/prod-edu/archive.png (added)
-
tags/1.12.0/assets/images/prod-edu/reports-thumbnail.png (added)
-
tags/1.12.0/assets/images/prod-edu/reports.png (added)
-
tags/1.12.0/assets/images/prod-edu/single-thumbnail.png (added)
-
tags/1.12.0/assets/images/prod-edu/single.png (added)
-
tags/1.12.0/assets/images/sep.png (added)
-
tags/1.12.0/assets/images/smtp (added)
-
tags/1.12.0/assets/images/smtp/screenshot-full.png (added)
-
tags/1.12.0/assets/images/smtp/screenshot-tnail.png (added)
-
tags/1.12.0/assets/images/smtp/step-1.svg (added)
-
tags/1.12.0/assets/images/smtp/step-2.svg (added)
-
tags/1.12.0/assets/images/smtp/step-complete.svg (added)
-
tags/1.12.0/assets/images/smtp/wpmailsmtp-logo.png (added)
-
tags/1.12.0/assets/images/smtp/[email protected] (added)
-
tags/1.12.0/assets/images/smtp/zoom.svg (added)
-
tags/1.12.0/assets/images/zoom.svg (added)
-
tags/1.12.0/assets/js (added)
-
tags/1.12.0/assets/js/modal.js (added)
-
tags/1.12.0/assets/js/modal.min.js (added)
-
tags/1.12.0/assets/js/wp-mail-logging-admin-logs.js (added)
-
tags/1.12.0/assets/js/wp-mail-logging-admin-logs.min.js (added)
-
tags/1.12.0/assets/js/wp-mail-logging-admin-settings.js (added)
-
tags/1.12.0/assets/js/wp-mail-logging-admin-settings.min.js (added)
-
tags/1.12.0/assets/js/wp-mail-logging-admin-smtp.js (added)
-
tags/1.12.0/assets/js/wp-mail-logging-admin-smtp.min.js (added)
-
tags/1.12.0/assets/languages (added)
-
tags/1.12.0/assets/languages/wp-mail-logging-de_DE.mo (added)
-
tags/1.12.0/assets/languages/wp-mail-logging-de_DE.po (added)
-
tags/1.12.0/assets/languages/wp-mail-logging-zh_CN.mo (added)
-
tags/1.12.0/assets/languages/wp-mail-logging-zh_CN.po (added)
-
tags/1.12.0/assets/languages/wp-mail-logging.pot (added)
-
tags/1.12.0/autoload.php (added)
-
tags/1.12.0/lib (added)
-
tags/1.12.0/lib/jquery-confirm (added)
-
tags/1.12.0/lib/jquery-confirm/jquery-confirm.min.css (added)
-
tags/1.12.0/lib/jquery-confirm/jquery-confirm.min.js (added)
-
tags/1.12.0/lib/lity (added)
-
tags/1.12.0/lib/lity/lity.min.css (added)
-
tags/1.12.0/lib/lity/lity.min.js (added)
-
tags/1.12.0/lib/vendor (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Admin (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Admin/AdminHelper.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Admin/ListTable.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/BaseModel.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/DefaultQueryFactory.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Model (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Model/Comment.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Model/Page.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Model/Post.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Model/User.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/ModelInterface.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/Query.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/src/QueryFactory.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/views (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/views/list-table.php (added)
-
tags/1.12.0/lib/vendor/brandonwamboldt/wp-orm/wp-orm.php (added)
-
tags/1.12.0/lib/vendor/pimple (added)
-
tags/1.12.0/lib/vendor/pimple/pimple (added)
-
tags/1.12.0/lib/vendor/pimple/pimple/src (added)
-
tags/1.12.0/lib/vendor/pimple/pimple/src/Container.php (added)
-
tags/1.12.0/lib/vendor/pimple/pimple/src/ServiceProviderInterface.php (added)
-
tags/1.12.0/readme.txt (added)
-
tags/1.12.0/src (added)
-
tags/1.12.0/src/FS (added)
-
tags/1.12.0/src/FS/Filesystem.php (added)
-
tags/1.12.0/src/FS/IFilesystem.php (added)
-
tags/1.12.0/src/IHooks.php (added)
-
tags/1.12.0/src/Model (added)
-
tags/1.12.0/src/Model/DefaultMailService.php (added)
-
tags/1.12.0/src/Model/Email_Log_Collection.php (added)
-
tags/1.12.0/src/Model/IMailService.php (added)
-
tags/1.12.0/src/Model/WPML_Mail.php (added)
-
tags/1.12.0/src/Renderer (added)
-
tags/1.12.0/src/Renderer/Column (added)
-
tags/1.12.0/src/Renderer/Column/AttachmentsColumn.php (added)
-
tags/1.12.0/src/Renderer/Column/ColumnFormat.php (added)
-
tags/1.12.0/src/Renderer/Column/ErrorColumn.php (added)
-
tags/1.12.0/src/Renderer/Column/EscapingColumnDecorator.php (added)
-
tags/1.12.0/src/Renderer/Column/GenericColumn.php (added)
-
tags/1.12.0/src/Renderer/Column/IColumn.php (added)
-
tags/1.12.0/src/Renderer/Column/SanitizedColumnDecorator.php (added)
-
tags/1.12.0/src/Renderer/Column/SubjectColumn.php (added)
-
tags/1.12.0/src/Renderer/Column/TimestampColumn.php (added)
-
tags/1.12.0/src/Renderer/Exception (added)
-
tags/1.12.0/src/Renderer/Exception/ColumnDoesntExistException.php (added)
-
tags/1.12.0/src/Renderer/Format (added)
-
tags/1.12.0/src/Renderer/Format/BaseRenderer.php (added)
-
tags/1.12.0/src/Renderer/Format/HTMLRenderer.php (added)
-
tags/1.12.0/src/Renderer/Format/HeadingsRenderer.php (added)
-
tags/1.12.0/src/Renderer/Format/IMailRenderer.php (added)
-
tags/1.12.0/src/Renderer/Format/JSONRenderer.php (added)
-
tags/1.12.0/src/Renderer/Format/MailRendererFactory.php (added)
-
tags/1.12.0/src/Renderer/Format/RawRenderer.php (added)
-
tags/1.12.0/src/Renderer/WPML_ColumnManager.php (added)
-
tags/1.12.0/src/Renderer/WPML_MailRenderer.php (added)
-
tags/1.12.0/src/Renderer/WPML_MailRenderer_AJAX_Handler.php (added)
-
tags/1.12.0/src/WPML_Attachment.php (added)
-
tags/1.12.0/src/WPML_DI_Container.php (added)
-
tags/1.12.0/src/WPML_Email_Dispatcher.php (added)
-
tags/1.12.0/src/WPML_Email_Log_List.php (added)
-
tags/1.12.0/src/WPML_Email_Resender.php (added)
-
tags/1.12.0/src/WPML_Hook_Remover.php (added)
-
tags/1.12.0/src/WPML_Init.php (added)
-
tags/1.12.0/src/WPML_InstallIndicator.php (added)
-
tags/1.12.0/src/WPML_LifeCycle.php (added)
-
tags/1.12.0/src/WPML_LogRotation.php (added)
-
tags/1.12.0/src/WPML_MailExtractor.php (added)
-
tags/1.12.0/src/WPML_MessageSanitizer.php (added)
-
tags/1.12.0/src/WPML_OptionsManager.php (added)
-
tags/1.12.0/src/WPML_Plugin.php (added)
-
tags/1.12.0/src/WPML_PrivacyController.php (added)
-
tags/1.12.0/src/WPML_ProductEducation.php (added)
-
tags/1.12.0/src/WPML_UserFeedback.php (added)
-
tags/1.12.0/src/WPML_Utils.php (added)
-
tags/1.12.0/src/inc (added)
-
tags/1.12.0/src/inc/Admin (added)
-
tags/1.12.0/src/inc/Admin/EmailLogsTab.php (added)
-
tags/1.12.0/src/inc/Admin/SMTPTab.php (added)
-
tags/1.12.0/src/inc/Admin/SettingsTab.php (added)
-
tags/1.12.0/src/inc/Helpers (added)
-
tags/1.12.0/src/inc/Helpers/PluginSilentUpgrader.php (added)
-
tags/1.12.0/src/inc/Helpers/PluginSilentUpgraderSkin.php (added)
-
tags/1.12.0/src/inc/Migration (added)
-
tags/1.12.0/src/inc/Migration/Migration.php (added)
-
tags/1.12.0/src/inc/class-install-skin.php (added)
-
tags/1.12.0/src/inc/class-wp-list-table.php (added)
-
tags/1.12.0/vendor (added)
-
tags/1.12.0/vendor/autoload.php (added)
-
tags/1.12.0/vendor/composer (added)
-
tags/1.12.0/vendor/composer/ClassLoader.php (added)
-
tags/1.12.0/vendor/composer/LICENSE (added)
-
tags/1.12.0/vendor/composer/autoload_classmap.php (added)
-
tags/1.12.0/vendor/composer/autoload_namespaces.php (added)
-
tags/1.12.0/vendor/composer/autoload_psr4.php (added)
-
tags/1.12.0/vendor/composer/autoload_real.php (added)
-
tags/1.12.0/vendor/composer/autoload_static.php (added)
-
tags/1.12.0/wp-mail-logging.php (added)
-
trunk/assets/css/wp-mail-logging-admin.css (modified) (5 diffs)
-
trunk/assets/css/wp-mail-logging-admin.min.css (modified) (1 diff)
-
trunk/assets/css/wp-mail-logging-product-education.css (modified) (2 diffs)
-
trunk/assets/css/wp-mail-logging-product-education.min.css (modified) (1 diff)
-
trunk/assets/images/font-awesome (added)
-
trunk/assets/images/font-awesome/exclamation-circle-solid-orange.svg (added)
-
trunk/assets/js/modal.js (modified) (1 diff)
-
trunk/assets/js/modal.min.js (modified) (1 diff)
-
trunk/assets/js/wp-mail-logging-admin-logs.js (modified) (2 diffs)
-
trunk/assets/js/wp-mail-logging-admin-logs.min.js (modified) (1 diff)
-
trunk/assets/js/wp-mail-logging-admin-settings.js (modified) (2 diffs)
-
trunk/assets/js/wp-mail-logging-admin-settings.min.js (modified) (1 diff)
-
trunk/assets/js/wp-mail-logging-admin-smtp.js (modified) (2 diffs)
-
trunk/assets/js/wp-mail-logging-admin-smtp.min.js (modified) (1 diff)
-
trunk/assets/languages/wp-mail-logging.pot (modified) (8 diffs)
-
trunk/lib/jquery-confirm (added)
-
trunk/lib/jquery-confirm/jquery-confirm.min.css (added)
-
trunk/lib/jquery-confirm/jquery-confirm.min.js (added)
-
trunk/readme.txt (modified) (4 diffs)
-
trunk/src/Model/Email_Log_Collection.php (modified) (6 diffs)
-
trunk/src/Renderer/Column/SubjectColumn.php (added)
-
trunk/src/Renderer/Format/BaseRenderer.php (modified) (3 diffs)
-
trunk/src/Renderer/WPML_ColumnManager.php (modified) (2 diffs)
-
trunk/src/WPML_Email_Log_List.php (modified) (4 diffs)
-
trunk/src/WPML_Init.php (modified) (2 diffs)
-
trunk/src/WPML_InstallIndicator.php (modified) (1 diff)
-
trunk/src/WPML_LifeCycle.php (modified) (1 diff)
-
trunk/src/WPML_OptionsManager.php (modified) (2 diffs)
-
trunk/src/WPML_Plugin.php (modified) (7 diffs)
-
trunk/src/WPML_ProductEducation.php (modified) (1 diff)
-
trunk/src/WPML_UserFeedback.php (modified) (6 diffs)
-
trunk/src/inc/Admin/EmailLogsTab.php (modified) (3 diffs)
-
trunk/src/inc/Admin/SettingsTab.php (modified) (2 diffs)
-
trunk/src/inc/Migration (added)
-
trunk/src/inc/Migration/Migration.php (added)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (3 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (5 diffs)
-
trunk/wp-mail-logging.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
wp-mail-logging/trunk/assets/css/wp-mail-logging-admin.css
r2880502 r2929157 21 21 #wp-mail-logging .subsubsub a.current { 22 22 font-weight: 600; 23 } 24 #wp-mail-logging #wp-mail-logging-setting-db-upgrade { 25 background: #fff; 26 border: 1px solid #c3c4c7; 27 border-left: 4px solid #e77c5c; 28 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); 29 margin-bottom: 30px; 30 padding: 16px; 31 position: relative; 32 } 33 #wp-mail-logging #wp-mail-logging-setting-db-upgrade h3 { 34 font-size: 18px; 35 line-height: 22px; 36 margin-bottom: 10px; 37 } 38 #wp-mail-logging #wp-mail-logging-setting-db-upgrade ul { 39 list-style-type: initial; 40 list-style-position: inside; 41 } 42 #wp-mail-logging #wp-mail-logging-setting-db-upgrade #wp-mail-logging-btn-db-upgrade { 43 height: inherit; 44 padding: 11px 16px; 45 line-height: 1.2; 23 46 } 24 47 #wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-setting-tab-row-log-rotation-limit-amout-keep, #wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-setting-tab-row-log-rotation-delete-time-days { … … 412 435 background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEzIDciIGZpbGw9IiM4ZDhmOTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMyAwLjk5ODI4MUMxMyAwLjkwMjA2MiAxMi45NTE5IDAuNzkzODE0IDEyLjg3OTcgMC43MjE2NDlMMTIuMjc4NCAwLjEyMDI3NEMxMi4yMDYyIDAuMDQ4MTA5OCAxMi4wOTggMCAxMi4wMDE3IDBDMTEuOTA1NSAwIDExLjc5NzMgMC4wNDgxMDk4IDExLjcyNTEgMC4xMjAyNzRMNi45OTgzIDQuODQ3MDhMMi4yNzE1IDAuMTIwMjc0QzIuMTk5MzMgMC4wNDgxMDk4IDIuMDkxMDggMCAxLjk5NDg2IDBDMS44ODY2MiAwIDEuNzkwNCAwLjA0ODEwOTggMS43MTgyMyAwLjEyMDI3NEwxLjExNjg2IDAuNzIxNjQ5QzEuMDQ0NjkgMC43OTM4MTQgMC45OTY1ODIgMC45MDIwNjIgMC45OTY1ODIgMC45OTgyODFDMC45OTY1ODIgMS4wOTQ1IDEuMDQ0NjkgMS4yMDI3NSAxLjExNjg2IDEuMjc0OTFMNi43MjE2NyA2Ljg3OTcyQzYuNzkzODMgNi45NTE4OSA2LjkwMjA4IDcgNi45OTgzIDdDNy4wOTQ1MiA3IDcuMjAyNzcgNi45NTE4OSA3LjI3NDkzIDYuODc5NzJMMTIuODc5NyAxLjI3NDkxQzEyLjk1MTkgMS4yMDI3NSAxMyAxLjA5NDUgMTMgMC45OTgyODFaIiBmaWxsPSIjOGQ4Zjk1Ii8+Cjwvc3ZnPgo="); 413 436 background-position: right 12px center; 437 background-repeat: no-repeat; 414 438 } 415 439 #wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label { … … 613 637 @media (max-width: 600px) { 614 638 #wp-mail-logging #email-list p.search-box { 615 width: inherit; 616 } 639 position: relative; 640 bottom: auto; 641 max-width: 600px; 642 width: 100%; 643 height: auto; 644 clear: both; 645 margin-bottom: 10px; 646 } 647 #wp-mail-logging #email-list p.search-box select, #wp-mail-logging #email-list p.search-box input[type=search] { 648 width: 100%; 649 max-width: unset; 650 margin: 0 0 5px 0; 651 } 652 } 653 #wp-mail-logging #email-list p.search-box select { 654 vertical-align: unset; 617 655 } 618 656 … … 878 916 } 879 917 } 880 @media (max-width: 782px) { 918 @media (max-width: 600px) { 919 #wp-mail-logging-product-education-email-logs-bottom { 920 margin-top: 0; 921 } 922 } 923 @media (min-width: 601px) and (max-width: 782px) { 881 924 #wp-mail-logging-product-education-email-logs-bottom { 882 925 margin-top: 100px; … … 960 1003 box-shadow: 0 0 0 1px #fff, 0 0 0 3px #cb5836; 961 1004 } 962 /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9nZW5lcmFsLnNjc3MiLCJfaW5jbHVkZS1tZWRpYS5zY3NzIiwid3AtbWFpbC1sb2dnaW5nLWFkbWluLnNjc3MiLCJfY29sb3JzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJ3cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNJO0VBQ0E7O0FDNGlCSDtFRDlpQkQ7SUFLUTs7OztBQ3lpQlA7RURyaUJEO0lBRVE7Ozs7QUVQUjtFQUNJLE9DRmU7RURHZjs7QUFJSTtFQUNJLGFFSkk7O0FGVVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBS1o7RUFDSTs7QUFHSjtFQUNJOztBQUVBO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUlKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FEc2VYO0VDMWVPO0lBT1E7OztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJSjtFQUNJOztBQUdJO0FBQUE7RUFFSTs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFNSjtFQUNJO0VBQ0E7O0FBT0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBVUo7RUFDSTs7QUFPSjtFQUNJOztBQVNBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQU1aO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQVFJO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksa0JDdk1qQjs7QUR5TWlCO0VBQ0k7RUFDQTtFQUNBOztBQUtKO0VBRUk7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUVJOztBQUtBO0VBQ0k7O0FBTUo7RUFDSTtFQUNBOztBQUtaO0FBQUE7RUFFSTtFQUNBLGFFcFFSO0VGcVFRLE9DMVFQO0VEMlFPOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFNaEI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFFQTtFQUNJO0VBQ0EsYUUzVFI7RUY0VFE7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7QUFLWjtFQUNJOztBQUVBO0VBQ0k7O0FBTUo7QUFBQTtFQUVJOztBQUtKO0VBQ0ksYUU1VlI7O0FGa1dKO0VBQ0ksT0N6V0Q7RUQwV0M7RUFDQSxhRXJXQTtFRnNXQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSSxPQ3JYRDtFRHNYQztFQUNBO0VBQ0E7O0FBR0o7RUFDSSxPQzVYRDtFRDZYQztFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBLE9DeFlIOztBRDBZRztFQUNJOztBQUtaO0VBQ0k7O0FBR0k7RUFDSTtFQUNBOztBQU9KO0VBQ0k7RUFDQTs7QUFJQTtFQUNJOztBQUVKO0VBQ0k7O0FBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUVJLE9DN2F6Qjs7QUQrYXlCO0VBQ0k7O0FBVzVCO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFLSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE9DbGNIO0VEbWNHO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRDRGZjtFQzVHVztBQUFBO0FBQUE7QUFBQTtBQUFBO0lBbUJROzs7QUR5Rm5CO0VDNUdXO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUF1QlE7SUFDQTtJQUNBOztFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7SUFDSTs7O0FBSVI7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFNSjtBQUFBO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FEaUNYO0VDckNPO0lBT1E7SUFDQTtJQUNBOzs7QUFHSjtFQUNJLE9DNWdCSDtFRDZnQkc7RUFDQSxhRWpoQkE7O0FGc2hCUjtFQUNJO0VBQ0E7RUFDQTs7QURjWDtFQ2pCTztJQU1ROzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksbUJDaGtCTDs7QURta0JDO0VBQ0k7O0FBR0o7RUFDSSxtQkN2a0JMOztBRDBrQkM7RUFDSTs7QUFJUjtBQUFBO0VBRUk7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLGtCQzVvQkw7O0FEOG9CSztFQUNJO0VBQ0E7RUFDQTs7QUFNSjtFQUNJOztBQU1KO0VBQ0k7RUFDQTs7QUFLSjtFQUVJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFTWjtFQUVJOztBQUVBO0VBQ0k7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7QURsS2Y7RUM4Slc7QUFBQTtJQU9ROzs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUQxTTNCO0VDaU5PO0lBRVE7Ozs7QUFNaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FEM09QO0VDdU9HO0lBT1E7SUFDQTs7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FEeFBYO0VDdVBPO0lBSVE7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhRTN5Qkk7RUY0eUJKO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBRDdSWDtFQ3VSTztJQVNROzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQU1aO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0EsYUUzMkJRO0VGNDJCUjs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFHSSxrQkN4M0JFO0VEeTNCRjtFQUNBOztBQUdKO0VBQ0k7OztBQU1aO0FBRUk7O0FBQ0E7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7O0FEN1dYO0VDb1hBO0lBRUU7OztBQUlDO0VBQ0k7RUFDQTs7QUFFQTtFQUNJLGFFdDZCSTs7O0FGODZCWjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FHeDdCUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtaO0VBQ0k7O0FBRUE7RUFDSSxhRHZDSTs7QUMyQ0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBLGFEM0VRO0VDNEVSO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFLQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7RUFDQTtBQUVBOztBQUNBO0VBTEo7SUFVUTs7O0FKMGFQO0VJcGJEO0lBY1E7SUFDQTtJQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0EsYURuTEE7O0FDc0xKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBT3BCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhRGhOUTtFQ2lOUjtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJIiwiZmlsZSI6ImFzc2V0cy9jc3Mvd3AtbWFpbC1sb2dnaW5nLWFkbWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgYWRtaW4gc3R5bGUgb3ZlcnJpZGVzLlxuI3dwY29udGVudCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDQ2cHg7XG4gICAgfVxufVxuXG4jd3Bib2R5IHtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuXHRAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuXHRAd2FybiAkbWVzc2FnZTtcblx0JF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcblx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcblx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0ICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuXHQgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuXHQgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuXHQgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuXHRcdCAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0ICB9XG5cdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHQgIEByZXR1cm4gZmFsc2U7XG5cdH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuXHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcblx0ICBAcmV0dXJuICRvcGVyYXRvcjtcblx0fVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG5cdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcblx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG5cdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuXHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG5cdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuXHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcblx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG5cdEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG5cdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG5cdEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG5cdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcblx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcblx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuXHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG5cdCAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcblx0fVxuXG5cdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG5cdCAgJGRpZ2l0czogMTtcblx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuXHQgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuXHR9IEBlbHNlIHtcblx0ICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG5cdCAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcblx0fVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuXHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG5cdCAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcblx0QGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuXHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG5cdCAgLy8gUmVjdXJzaXZlIGNhbGxcblx0ICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcblx0XHRAY29udGVudDtcblx0ICB9XG5cdH1cbiAgfVxufVxuIiwiQGltcG9ydCBcImluY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJjb2xvcnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJnZW5lcmFsXCI7XG5cbiN3cC1tYWlsLWxvZ2dpbmcge1xuICAgIGNvbG9yOiAkZGVzY3JpcHRpb24tdGV4dDtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAuc3Vic3Vic3ViIHtcblxuICAgICAgICBhLmN1cnJlbnQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3dwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRhYi1mb3JtIHtcblxuICAgICAgICAjd3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdGFiLXJvdy1sb2ctcm90YXRpb24tbGltaXQtYW1vdXQta2VlcCwgI3dwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRhYi1yb3ctbG9nLXJvdGF0aW9uLWRlbGV0ZS10aW1lLWRheXMge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjd3AtbWFpbC1sb2dnaW5nLXNldHRpbmdzLWJvdHRvbSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgI3dwLW1haWwtbG9nZ2luZy1zZXR0aW5ncy1yZXNldC1saW5rIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogIzIyNzFCMTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMxMzVlOTY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3AtbWFpbC1sb2dnaW5nLWhpZGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcGFnZS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuXG4gICAgICAgICosXG4gICAgICAgICo6OmJlZm9yZSxcbiAgICAgICAgKjo6YWZ0ZXIge1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgICN3cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctaGVhZGluZy1nZW5lcmFsLXNldHRpbmdzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0dGluZyByb3dzLCBlZyBmaWVsZCByb3cuXG4gICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3cge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMzBweCAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaW5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1taWQtcm93LXNlcCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2U0ZTRlNDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNlY3Rpb24gaGVhZGluZy5cbiAgICAgICAgICAgICYuc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDAgMjBweCAwO1xuXG4gICAgICAgICAgICAgICAgJi5uby1kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1maWVsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmRlc2Mge1xuICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbnB1dCBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWlucHV0IHtcbiAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogODBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVja2JveCBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWNoZWNrYm94IHtcblxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMXB4IDAgMCAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDhweDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAzMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwgKyAuZGVzYyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogOHB4IDAgMCAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGV4dCBiYXNlZCBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LXRleHQsXG4gICAgICAgICAgICAmLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdy1wYXNzd29yZCxcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LW51bWJlcixcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWVtYWlsIHtcblxuICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTZWxlY3Qgc2V0dGluZ3MgZmllbGQuXG4gICAgICAgICAgICAmLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdy1zZWxlY3Qge1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJhZGlvIHNldHRpbmdzIGZpZWxkLlxuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctcmFkaW8ge1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLWZpZWxkIHtcblxuICAgICAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IC0zcHggMTBweCAwIDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctbm8tYm9yZGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdy1uby1wYWRkaW5nIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSYWRpbyBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWNoZWNrYm94LXRvZ2dsZSB7XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctZmllbGQge1xuXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3NpdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Y2hlY2tlZDpob3ZlciArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bm90KDpjaGVja2VkKTpob3ZlciArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6aG92ZXIgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Y2hlY2tlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcG9zaXRpdmUsIDI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2ggKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLWNoZWNrZWQtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2ggKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLWNoZWNrZWQtbGFiZWwgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXVuY2hlY2tlZC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpkaXNhYmxlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1jaGVja2VkLWxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpkaXNhYmxlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS11bmNoZWNrZWQtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCM0NDQsIDQwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICMyZTg3NmE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6aG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YzhmOTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAzcHggIzk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXVuY2hlY2tlZC1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1jaGVja2VkLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1jaGVja2VkLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzNjNGM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246ICAgIGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLXRyYW5zaXRpb246ICAgICBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICAgICAgICAgYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAtMXB4IDVweCAwIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246ICAgIGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy10cmFuc2l0aW9uOiAgICAgYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogICAgICAgICBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctYWxlcnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICAgICAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubm90aWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNi41cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctZmllbGQge1xuXG4gICAgICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtY2hlY2tlZC1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS11bmNoZWNrZWQtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEdlbmVyYWwgZWxlbWVudHMuXG4gICAgICAgICAgICBoMiwgaDQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS10ZXh0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktdGV4dDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGg1IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktdGV4dDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgJi5kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuICAgICAgICAgICAgICAgICAgICAmICsgLmRlc2Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA4cHggMCAwO1xuXG4gICAgICAgICAgICAgICAgJi5saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICAmLmFjdGlvbnMtbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIHRkLCB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggNXB4IDVweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYuZW1haWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYuc3RhdHVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmLmFjdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW2NsYXNzKj1kZWxldGVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW2NsYXNzKj1lcnJvcl0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRuZWdhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwgJjphY3RpdmUsICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oICRuZWdhdGl2ZSwgMjAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBGb3JtIGVsZW1lbnRzLlxuICAgICAgICAgICAgaW5wdXRbdHlwZT10ZXh0XSxcbiAgICAgICAgICAgIGlucHV0W3R5cGU9ZW1haWxdLFxuICAgICAgICAgICAgaW5wdXRbdHlwZT1udW1iZXJdLFxuICAgICAgICAgICAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGZpZWxkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGZpZWxkLXRleHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDEycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHBob25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICAgICAmIH4gYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbcmVhZG9ubHldIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNtYWxsLXRleHQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAxNkFBQjtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICMwMTZBQUI7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuICAgICAgICAgICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDE2QUFCO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggIzAxNkFBQjtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTVRNaUlHaGxhV2RvZEQwaU55SWdkbWxsZDBKdmVEMGlNQ0F3SURFeklEY2lJR1pwYkd3OUlpTTRaRGhtT1RVaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJK0NqeHdZWFJvSUdROUlrMHhNeUF3TGprNU9ESTRNVU14TXlBd0xqa3dNakEyTWlBeE1pNDVOVEU1SURBdU56a3pPREUwSURFeUxqZzNPVGNnTUM0M01qRTJORGxNTVRJdU1qYzROQ0F3TGpFeU1ESTNORU14TWk0eU1EWXlJREF1TURRNE1UQTVPQ0F4TWk0d09UZ2dNQ0F4TWk0d01ERTNJREJETVRFdU9UQTFOU0F3SURFeExqYzVOek1nTUM0d05EZ3hNRGs0SURFeExqY3lOVEVnTUM0eE1qQXlOelJNTmk0NU9UZ3pJRFF1T0RRM01EaE1NaTR5TnpFMUlEQXVNVEl3TWpjMFF6SXVNVGs1TXpNZ01DNHdORGd4TURrNElESXVNRGt4TURnZ01DQXhMams1TkRnMklEQkRNUzQ0T0RZMk1pQXdJREV1Tnprd05DQXdMakEwT0RFd09UZ2dNUzQzTVRneU15QXdMakV5TURJM05Fd3hMakV4TmpnMklEQXVOekl4TmpRNVF6RXVNRFEwTmprZ01DNDNPVE00TVRRZ01DNDVPVFkxT0RJZ01DNDVNREl3TmpJZ01DNDVPVFkxT0RJZ01DNDVPVGd5T0RGRE1DNDVPVFkxT0RJZ01TNHdPVFExSURFdU1EUTBOamtnTVM0eU1ESTNOU0F4TGpFeE5qZzJJREV1TWpjME9URk1OaTQzTWpFMk55QTJMamczT1RjeVF6WXVOemt6T0RNZ05pNDVOVEU0T1NBMkxqa3dNakE0SURjZ05pNDVPVGd6SURkRE55NHdPVFExTWlBM0lEY3VNakF5TnpjZ05pNDVOVEU0T1NBM0xqSTNORGt6SURZdU9EYzVOekpNTVRJdU9EYzVOeUF4TGpJM05Ea3hRekV5TGprMU1Ua2dNUzR5TURJM05TQXhNeUF4TGpBNU5EVWdNVE1nTUM0NU9UZ3lPREZhSWlCbWFXeHNQU0lqT0dRNFpqazFJaTgrQ2p3dmMzWm5QZ289XCIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEycHggY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUm93IGxhYmVsIChsZWZ0KS5cbiAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICB3aWR0aDogMjA1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDIwcHggMCAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsYWJlbC10ZXh0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJvdyBmaWVsZCAocmlnaHQpLlxuICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctZmllbGQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAwIDIwNXB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDIwcHggMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLWZpZWxkLXJvdyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgICAgICAmID4gLndwLW1haWwtc210cC1idG4ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zdWJtaXQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMjVweCAwO1xuXG4gICAgICAgICAgICAuaGVscC10ZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm5vdGljZS1pbmxpbmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgI2ZmZjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDFweCAwIHJnYmEoIDAsIDAsIDAsIDAuMSApO1xuICAgICAgICAgICAgbWFyZ2luOiA1cHggMCAxNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMXB4IDEycHg7XG5cbiAgICAgICAgICAgICYubm90aWNlLXN1Y2Nlc3Mge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkcG9zaXRpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubm90aWNlLXdhcm5pbmcge1xuICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZmZiOTAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm5vdGljZS1lcnJvciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRuZWdhdGl2ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5ub3RpY2UtaW5mbyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMGEwZDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubm90aWNlIHAsXG4gICAgICAgIC5ub3RpY2UtaW5saW5lIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVlbSAwO1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgcHJlIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZSB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAmX19zd2l0Y2gge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogLTFweCAwIDAgMDtcbiAgICAgICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDJweDtcbiAgICAgICAgICAgICAgICB0b3A6IDJweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICY6Y2hlY2tlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGVfX3N3aXRjaCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvc2l0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpjaGVja2VkOmhvdmVyLFxuICAgICAgICAgICAgJjpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAmICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDNweCAjMDBhMzJhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpub3QoOmNoZWNrZWQpOmhvdmVyLFxuICAgICAgICAgICAgJjpub3QoOmNoZWNrZWQpOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAmICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDNweCAjOTk5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgJjpjaGVja2VkOmhvdmVyICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoLFxuICAgICAgICAgICAgICAgICY6bm90KDpjaGVja2VkKTpob3ZlciArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGVfX3N3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpub3QoOmNoZWNrZWQpOmhvdmVyICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6Y2hlY2tlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGVfX3N3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIzAwYTMyYSwgMjUpO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW1haWwgTG9ncy5cbiAgICAjZW1haWwtbGlzdCB7XG5cbiAgICAgICAgdGFibGUuZW1haWxzIHtcblxuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICAgICB0aCwgdGQge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2x1bW4tY2IsXG4gICAgICAgICAgICAuY2hlY2stY29sdW1uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAwIDAgM3B4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGgjdGltZXN0YW1wLCB0aCNhY3Rpb25zLCB0ZC5jb2x1bW4tdGltZXN0YW1wLCB0ZC5jb2x1bW4tYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRkLmNvbHVtbi1hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1hY3Rpb24tY29sdW1uIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLWFjdGlvbi1pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNDQ0QwRDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzhDOEY5NDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogIzNjNDM0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzNjNDM0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwLnNlYXJjaC1ib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wYWdlLWhlYWRlci10ZW1wIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDk5O1xufVxuXG4jd3AtbWFpbC1sb2dnaW5nLXBhZ2UtaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAud3AtbWFpbC1sb2dnaW5nLXBhZ2UtdGl0bGUge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCAyMHB4IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAud3AtbWFpbC1sb2dnaW5nLWxvZ28taW1hZ2Uge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLndwLW1haWwtbG9nZ2luZy1sb2dvLXNlcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMTVweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYS50YWIge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNmZmY7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICM3ODdDODI7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDAgMThweCAwO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjRTc3QzVDO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMkMzMzM4O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI0U3N0M1QztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2E3YWFhZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEuYWN0aW9uIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIG1hcmdpbjogMTRweCAwIDE0cHggMTBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucGFnZS10aXRsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC1zaXplOiAyM3B4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMjBweCAyMHB4IDIwcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQnV0dG9ucy5cbi53cC1tYWlsLWxvZ2dpbmctYnRuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxuXG4gICAgJi53cC1tYWlsLWxvZ2dpbmctYnRuLWxnIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICB9XG5cbiAgICAmLndwLW1haWwtbG9nZ2luZy1idG4tb3JhbmdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0U3N0M1QztcbiAgICAgICAgY29sb3I6ICNmZmY7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZS1kYXJrO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgY29sb3I6ICNGRkZGRkY7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAzcHggJG9yYW5nZS1kYXJrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBMaWdodGJveC5cbi53cC1tYWlsLWxvZ2dpbmctYWRtaW4tcGFnZSB7XG5cbiAgICAvKiBMaWdodGJveCBsaWJyYXJ5IGdsb2JhbCBzdHlsZXMuICovXG4gICAgLmxpdHkge1xuICAgICAgICB6LWluZGV4OiA5OTk5OTk5OTk7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgfVxuXG4gICAgLmxpdHktY2xvc2Uge1xuICAgICAgICBtYXJnaW46IDEwcHg7XG4gICAgfVxuXG4gICAgLmxpdHktY29udGVudCB7XG4gICAgICAgIG1heC13aWR0aDogODB2dztcbiAgICAgICAgbWF4LWhlaWdodDogODB2aDtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA4MHZ3ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53cC1tYWlsLWxvZ2dpbmctYWRtaW4tcGFnZSB7XG5cblx0cC5zZWFyY2gtYm94IHtcblx0XHRAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcblx0XHRcdHdpZHRoOiA4MCU7XG5cdFx0fVxuXHR9XG5cbiAgICAjd3Bmb290ZXIgcCB7XG4gICAgICAgIGNvbG9yOiAjNTA1NzVFO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIFV0aWxpdHkuXG4ud3AtbWFpbC1sb2dnaW5nLWNsZWFyZml4IHtcblxuICAgICY6YWZ0ZXIsICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG59XG5cbkBpbXBvcnQgXCJ3cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb25cIjtcbiIsIi8vIENvbG9yIHN0eWxlc1xuXG4kcHJpbWFyeS10ZXh0OiAjMUQyMzI3O1xuJHNlY29uZGFyeS10ZXh0OiAjNjQ2OTcwO1xuJGRlc2NyaXB0aW9uLXRleHQ6ICMzQzQzNEE7XG4kb3JhbmdlOiAjRTI3NzMwO1xuJG9yYW5nZS1kYXJrOiAjY2I1ODM2O1xuJHBvc2l0aXZlOiAjMzhhMTdlO1xuJG5lZ2F0aXZlOiAjRDYzNjM4O1xuJGZpZWxkLWJvcmRlcjogIzhiOGY5MztcbiRmaWVsZC10ZXh0OiAjMkMzMzM4O1xuJGxhYmVsLXRleHQ6ICMxRTIzMjc7XG4kbGluazogIzIxNzFCMTtcbiRsaW5rLWhvdmVyOiAjMTM1ZTk2O1xuIiwiJGJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzLXBob25lJzogMzIwcHgsXG4gICAgJ3Bob25lJzogNjAwcHgsXG4gICAgJ2lwYWQnOiA3NjhweCxcbiAgICAndGFibGV0JzogNzgycHgsXG4gICAgJ2Rlc2t0b3AnOiA5NjBweFxuKTtcblxuJG1lZGl1bS13ZWlnaHQ6IDYwMDtcbiIsIkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbi8vIFByb2R1Y3QgRWR1Y2F0aW9uLlxuLndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICM1MDU3NUU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICB1bCB7XG4gICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgIH1cblxuICAgICYtZGlzbWlzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRvcDogMTVweDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAjYTdhYWFkO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNkNjM2Mzg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kYXNoaWNvbnMsIC5kYXNoaWNvbnMtYmVmb3JlOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLWVkdWNhdGlvbi1idG4ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRTc3QzVDO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjY2I1ODM2O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICMzQzQzNEE7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1lbWFpbC1sb2dzLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgY29sb3I6ICMyMjIyMjI7XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2IHtcblxuICAgICAgICAgICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYS53cC1tYWlsLWxvZ2dpbmctZWR1Y2F0aW9uLWJ0biB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1lbWFpbC1sb2dzLWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRiB1cmwoXCIuLi9pbWFnZXMvcGxhbmUtYmcucG5nXCIpIG5vLXJlcGVhdCByaWdodCBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDFweCAxMTlweDtcblxuICAgIC8qIEAyeCBJbWFnZXMgKFBpeGVsIFJhdGlvIG9mIDEuMjUrKSAqL1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDUvNCksXG4gICAgICAgICAgIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpIHtcblxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvcGxhbmUtYmdAMngucG5nXCIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgLndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1pbWFnZXMtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDI1cHg7XG4gICAgICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM3MHB4O1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDVweCBzb2xpZCAjRENEQ0RFO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2OCwgNjgsIDY4LCAuMTUpIHVybCgnLi4vaW1hZ2VzL3pvb20uc3ZnJykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzNDNDM0QTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWFnZXMvYXJyb3ctcmlnaHQtcGxhaW4taWNvbi5zdmcnKSBuby1yZXBlYXQgbGVmdCAzcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndwLW1haWwtbG9nZ2luZy1lZHVjYXRpb24tYnRuIHtcbiAgICAgICAgYmFja2dyb3VuZDogI0U3N0M1QztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjRTc3QzVDO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NiNTgzNjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2NiNTgzNjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDNweCAjY2I1ODM2O1xuICAgICAgICB9XG4gICAgfVxufVxuIl19 */ 1005 1006 body.wp-mail-logging-admin-page div.jconfirm *, 1007 body.wp-mail-logging-admin-page div.jconfirm *::before, 1008 body.wp-mail-logging-admin-page div.jconfirm *::after { 1009 -webkit-box-sizing: border-box; 1010 -moz-box-sizing: border-box; 1011 box-sizing: border-box; 1012 } 1013 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-bg { 1014 background-color: rgba(114, 119, 124, 0.75); 1015 opacity: 1; 1016 } 1017 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box { 1018 padding: 30px; 1019 border-radius: 6px; 1020 box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15); 1021 border-top-width: 4px; 1022 } 1023 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-closeIcon { 1024 color: rgba(0, 0, 0, 0.4); 1025 top: 8px; 1026 right: 8px; 1027 } 1028 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover { 1029 color: rgba(0, 0, 0, 0.8); 1030 } 1031 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c { 1032 margin: 0 0 15px 0; 1033 padding: 0; 1034 } 1035 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c { 1036 margin: 0 0 30px; 1037 -webkit-transition: none; 1038 transition: none; 1039 -webkit-transform: none !important; 1040 -ms-transform: none !important; 1041 transform: none !important; 1042 } 1043 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty, 1044 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i:empty { 1045 display: none; 1046 } 1047 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title { 1048 display: block; 1049 color: #222222; 1050 font-weight: 500; 1051 font-size: 24px; 1052 } 1053 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content-pane { 1054 display: block; 1055 margin-bottom: 30px; 1056 } 1057 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content { 1058 margin-bottom: 0; 1059 overflow: inherit; 1060 } 1061 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content { 1062 font-size: 16px; 1063 color: #222222; 1064 line-height: 1.4; 1065 } 1066 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p { 1067 margin: 0 0 20px; 1068 font-size: 16px; 1069 line-height: 1.5; 1070 } 1071 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p:last-of-type { 1072 margin: 0; 1073 } 1074 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p.large { 1075 font-size: 18px; 1076 } 1077 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p.small { 1078 font-size: 14px; 1079 } 1080 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content .wp-mail-smtp-debug-event-preview p { 1081 font-size: 14px; 1082 } 1083 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content .wp-mail-smtp-btn { 1084 font-weight: 600; 1085 text-transform: uppercase; 1086 -webkit-transition: background 0.1s; 1087 transition: background 0.1s; 1088 padding: 10px 20px; 1089 outline: none; 1090 display: inline-block; 1091 font-size: 14px; 1092 line-height: 1.4; 1093 -ms-touch-action: manipulation; 1094 touch-action: manipulation; 1095 cursor: pointer; 1096 -webkit-user-select: none; 1097 -moz-user-select: none; 1098 -ms-user-select: none; 1099 user-select: none; 1100 border-radius: 4px; 1101 min-height: 1em; 1102 -webkit-tap-highlight-color: transparent; 1103 border: 0; 1104 background-image: none; 1105 } 1106 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content .wp-mail-smtp-btn.with-loader { 1107 padding: 12px 12px 7px; 1108 } 1109 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons { 1110 padding: 0; 1111 } 1112 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button { 1113 transition: 0.2s; 1114 box-shadow: none; 1115 margin: 0 10px 0; 1116 } 1117 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button:hover { 1118 box-shadow: inset 0 0 0 100px rgba(0, 0, 0, 0.1); 1119 } 1120 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-confirm { 1121 color: #fff; 1122 outline: none; 1123 border: 1px solid #e77c5c; 1124 background-color: #e77c5c; 1125 } 1126 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-cancel { 1127 color: #777777; 1128 outline: none; 1129 background: #F8F8F8; 1130 border: 1px solid #CCCCCC; 1131 } 1132 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button, body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-default { 1133 color: #666; 1134 } 1135 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-hide { 1136 display: none; 1137 } 1138 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-block { 1139 display: block; 1140 text-align: center; 1141 width: 100%; 1142 margin: 0 0 10px 0 !important; 1143 } 1144 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-normal-case { 1145 text-transform: none !important; 1146 } 1147 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.jconfirm-type-orange { 1148 border-color: #e77c5c; 1149 } 1150 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.jconfirm-type-orange div.jconfirm-buttons button.btn-confirm { 1151 background-color: #e77c5c; 1152 border-color: #e77c5c; 1153 } 1154 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading { 1155 border-top-color: #fff !important; 1156 height: 160px; 1157 } 1158 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading .jconfirm-title-c { 1159 display: block !important; 1160 position: relative; 1161 z-index: 4; 1162 } 1163 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading .jconfirm-title-c .jconfirm-icon-c { 1164 display: none; 1165 } 1166 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading:before { 1167 z-index: 2; 1168 } 1169 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading:after { 1170 content: ""; 1171 position: absolute; 1172 left: 50%; 1173 top: 68%; 1174 margin-left: -20px; 1175 height: 40px; 1176 width: 40px; 1177 border: solid 6px transparent; 1178 border-bottom-color: #e77c5c; 1179 opacity: 1; 1180 z-index: 3; 1181 } 1182 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal { 1183 padding: 30px 30px 15px; 1184 border-top: none; 1185 } 1186 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-title-c { 1187 margin: 0 0 26px 0; 1188 padding: 0; 1189 } 1190 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-title-c .jconfirm-icon-c { 1191 margin-bottom: 20px; 1192 color: #c4c4c4 !important; 1193 } 1194 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-title-c .jconfirm-icon-c svg { 1195 height: 35px; 1196 } 1197 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-content-pane { 1198 margin-bottom: 25px; 1199 } 1200 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-buttons button.btn-confirm { 1201 background-color: #e77c5c; 1202 border-color: #e77c5c; 1203 } 1204 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note { 1205 text-align: center; 1206 margin: 45px 0 0; 1207 } 1208 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note p { 1209 background-color: #fcf9e8; 1210 margin: 0 -30px; 1211 padding: 24px 60px 20px; 1212 font-size: 15px; 1213 color: #4d4d4d; 1214 position: relative; 1215 } 1216 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note p:after { 1217 content: url(../images/font-awesome/check-circle-solid-green.svg); 1218 width: 40px; 1219 height: 40px; 1220 background-color: #fff; 1221 border-radius: 50%; 1222 padding: 5px 6px; 1223 position: absolute; 1224 top: -20px; 1225 right: 50%; 1226 margin-right: -18px; 1227 } 1228 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note span { 1229 font-weight: 600; 1230 color: #00A32A; 1231 } 1232 body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note a { 1233 color: #aaa; 1234 display: block; 1235 margin-top: 12px; 1236 } 1237 /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9nZW5lcmFsLnNjc3MiLCJfaW5jbHVkZS1tZWRpYS5zY3NzIiwid3AtbWFpbC1sb2dnaW5nLWFkbWluLnNjc3MiLCJfY29sb3JzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJ3cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24uc2NzcyIsIl9jb25maXJtLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7RUFDSTtFQUNBOztBQzRpQkg7RUQ5aUJEO0lBS1E7Ozs7QUN5aUJQO0VEcmlCRDtJQUVROzs7O0FFUFI7RUFDSSxPQ0ZlO0VER2Y7O0FBSUk7RUFDSSxhRUpJOztBRlFaO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQU1KO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7O0FBR0o7RUFDSTs7QUFFQTtBQUFBO0FBQUE7RUFHSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFJSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBRDJjWDtFQy9jTztJQU9ROzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSUo7RUFDSTs7QUFHSTtBQUFBO0VBRUk7O0FBSVI7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBTUo7RUFDSTtFQUNBOztBQU9KO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQVVKO0VBQ0k7O0FBT0o7RUFDSTs7QUFTQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFNWjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFRSTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLGtCQ2xPakI7O0FEb09pQjtFQUNJO0VBQ0E7RUFDQTs7QUFLSjtFQUVJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFFSTs7QUFLQTtFQUNJOztBQU1KO0VBQ0k7RUFDQTs7QUFLWjtBQUFBO0VBRUk7RUFDQSxhRS9SUjtFRmdTUSxPQ3JTUDtFRHNTTzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBTWhCO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBLGFFdFZSO0VGdVZRO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7O0FBS1o7RUFDSTs7QUFFQTtFQUNJOztBQU1KO0FBQUE7RUFFSTs7QUFLSjtFQUNJLGFFdlhSOztBRjZYSjtFQUNJLE9DcFlEO0VEcVlDO0VBQ0EsYUVoWUE7RUZpWUE7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0ksT0NoWkQ7RURpWkM7RUFDQTtFQUNBOztBQUdKO0VBQ0ksT0N2WkQ7RUR3WkM7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQSxPQ25hSDs7QURxYUc7RUFDSTs7QUFLWjtFQUNJOztBQUdJO0VBQ0k7RUFDQTs7QUFPSjtFQUNJO0VBQ0E7O0FBSUE7RUFDSTs7QUFFSjtFQUNJOztBQUdBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFFSSxPQ3hjekI7O0FEMGN5QjtFQUNJOztBQVc1QjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBS0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxPQzdkSDtFRDhkRztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QURpRWY7RUNqRlc7QUFBQTtBQUFBO0FBQUE7QUFBQTtJQW1CUTs7O0FEOERuQjtFQ2pGVztBQUFBO0FBQUE7QUFBQTtBQUFBO0lBdUJRO0lBQ0E7SUFDQTs7RUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0lBQ0k7OztBQUlSO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0VBQ0k7O0FBTUo7QUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FES1g7RUNUTztJQU9RO0lBQ0E7SUFDQTs7O0FBR0o7RUFDSSxPQ3hpQkg7RUR5aUJHO0VBQ0EsYUU3aUJBOztBRmtqQlI7RUFDSTtFQUNBO0VBQ0E7O0FEZFg7RUNXTztJQU1ROzs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0ksbUJDNWxCTDs7QUQrbEJDO0VBQ0k7O0FBR0o7RUFDSSxtQkNubUJMOztBRHNtQkM7RUFDSTs7QUFJUjtBQUFBO0VBRUk7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLGtCQ3hxQkw7O0FEMHFCSztFQUNJO0VBQ0E7RUFDQTs7QUFNSjtFQUNJOztBQU1KO0VBQ0k7RUFDQTs7QUFLSjtFQUVJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFTWjtFQUVJOztBQUVBO0VBQ0k7O0FBR0o7QUFBQTtFQUVJO0VBQ0E7RUFDQTs7QUQ5TGY7RUMwTFc7QUFBQTtJQU9ROzs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUR0TzNCO0VDNk9PO0lBRVE7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7O0VBRUE7SUFDSTtJQUNBO0lBQ0E7OztBQUlSO0VBQ0k7OztBQU1oQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUR2UlA7RUNtUkc7SUFPUTtJQUNBOzs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QURwU1g7RUNtU087SUFJUTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGFFdjFCSTtFRncxQko7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FEelVYO0VDbVVPO0lBU1E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBTVo7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQSxhRXY1QlE7RUZ3NUJSOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUdJLGtCQ3A2QkU7RURxNkJGO0VBQ0E7O0FBR0o7RUFDSTs7O0FBTVo7QUFFSTs7QUFDQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOzs7QUR6Wlg7RUNnYUE7SUFFRTs7O0FBSUM7RUFDSTtFQUNBOztBQUVBO0VBQ0ksYUVsOUJJOzs7QUYwOUJaO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOzs7QUdwK0JSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBS1o7RUFDSTs7QUFFQTtFQUNJLGFEdkNJOztBQzJDSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFNaEI7RUFDSTtFQUNBO0VBQ0EsYUQzRVE7RUM0RVI7RUFDQTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtBO0VBQ0k7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7O0FBS1o7RUFDSTtFQUNBO0FBRUE7O0FBQ0E7RUFMSjtJQVVROzs7QUowYVA7RUlwYkQ7SUFjUTs7O0FKc2FQO0VJcGJEO0lBa0JRO0lBQ0E7SUFDQTs7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBLGFEdkxBOztBQzBMSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQU9wQjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsYURwTlE7RUNxTlI7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7O0FDNU5KO0FBQUE7QUFBQTtFQUdJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtBQUFBO0VBRUk7O0FBSVI7RUFDSTtFQUNBLE9BM0RMO0VBNERLO0VBQ0E7O0FBSVI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0EsT0E3RUQ7RUE4RUM7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBLGtCQWxKZjs7QUFxSlc7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUVJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUtaO0VBQ0ksY0FsTEQ7O0FBb0xDO0VBQ0ksa0JBckxMO0VBc0xLLGNBdExMOztBQTBMSDtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHFCQXROWDtFQXVOVztFQUNBOztBQUtaO0VBQ0k7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBS1o7RUFDSTs7QUFHSjtFQUNJLGtCQXBQUDtFQXFQTyxjQXJQUDs7QUF3UEc7RUFDSTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBLE9BbFJUOztBQXFSSztFQUNJO0VBQ0E7RUFDQSIsImZpbGUiOiJhc3NldHMvY3NzL3dwLW1haWwtbG9nZ2luZy1hZG1pbi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3JlIGFkbWluIHN0eWxlIG92ZXJyaWRlcy5cbiN3cGNvbnRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0NnB4O1xuICAgIH1cbn1cblxuI3dwYm9keSB7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcblx0QGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcblx0QHdhcm4gJG1lc3NhZ2U7XG5cdCRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG5cdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG5cdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG5cdCAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcblx0ICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcblx0ICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cblx0ICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3Jcblx0XHQgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuXHRcdEByZXR1cm4gZmFsc2U7XG5cdCAgfVxuXHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0ICBAcmV0dXJuIGZhbHNlO1xuXHR9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcblx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG5cdCAgQHJldHVybiAkb3BlcmF0b3I7XG5cdH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuXHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG5cdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuXHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2Vcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cblx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuXHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcblx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG5cdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuXHRAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuXHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuXHRAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuXHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG5cdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG5cdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XG5cblx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuXHQgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG5cdH1cblxuXHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuXHQgICRkaWdpdHM6IDE7XG5cdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcblx0ICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcblx0fSBAZWxzZSB7XG5cdCAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuXHQgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG5cdH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcblx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XG59XG5cbi8vL1xuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcbi8vLyBmb3IgaW5zdGFuY2UuXG4vLy9cbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuXHQgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG5cdEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcblx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuXHQgIC8vIFJlY3Vyc2l2ZSBjYWxsXG5cdCAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdCAgfVxuXHR9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwiY29sb3JzXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwiZ2VuZXJhbFwiO1xuXG4jd3AtbWFpbC1sb2dnaW5nIHtcbiAgICBjb2xvcjogJGRlc2NyaXB0aW9uLXRleHQ7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLnN1YnN1YnN1YiB7XG5cbiAgICAgICAgYS5jdXJyZW50IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN3cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1kYi11cGdyYWRlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2MzYzRjNztcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZTc3YzVjO1xuICAgICAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDQpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgaDMge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBpbml0aWFsO1xuICAgICAgICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3dwLW1haWwtbG9nZ2luZy1idG4tZGItdXBncmFkZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMXB4IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3dwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRhYi1mb3JtIHtcblxuICAgICAgICAjd3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdGFiLXJvdy1sb2ctcm90YXRpb24tbGltaXQtYW1vdXQta2VlcCwgI3dwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRhYi1yb3ctbG9nLXJvdGF0aW9uLWRlbGV0ZS10aW1lLWRheXMge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAjd3AtbWFpbC1sb2dnaW5nLXNldHRpbmdzLWJvdHRvbSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgI3dwLW1haWwtbG9nZ2luZy1zZXR0aW5ncy1yZXNldC1saW5rIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogIzIyNzFCMTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMxMzVlOTY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3AtbWFpbC1sb2dnaW5nLWhpZGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcGFnZS1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuXG4gICAgICAgICosXG4gICAgICAgICo6OmJlZm9yZSxcbiAgICAgICAgKjo6YWZ0ZXIge1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgICN3cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctaGVhZGluZy1nZW5lcmFsLXNldHRpbmdzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0dGluZyByb3dzLCBlZyBmaWVsZCByb3cuXG4gICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3cge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDAgMzBweCAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaW5hY3RpdmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1taWQtcm93LXNlcCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2U0ZTRlNDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxNXB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNlY3Rpb24gaGVhZGluZy5cbiAgICAgICAgICAgICYuc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDAgMjBweCAwO1xuXG4gICAgICAgICAgICAgICAgJi5uby1kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgaDIsXG4gICAgICAgICAgICAgICAgICAgIGg0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1maWVsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmRlc2Mge1xuICAgICAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbnB1dCBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWlucHV0IHtcbiAgICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogODBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVja2JveCBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWNoZWNrYm94IHtcblxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMXB4IDAgMCAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAwIDhweDtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMCAzMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdICsgbGFiZWwgKyAuZGVzYyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogOHB4IDAgMCAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVGV4dCBiYXNlZCBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LXRleHQsXG4gICAgICAgICAgICAmLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdy1wYXNzd29yZCxcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LW51bWJlcixcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWVtYWlsIHtcblxuICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTZWxlY3Qgc2V0dGluZ3MgZmllbGQuXG4gICAgICAgICAgICAmLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdy1zZWxlY3Qge1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFJhZGlvIHNldHRpbmdzIGZpZWxkLlxuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctcmFkaW8ge1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLWZpZWxkIHtcblxuICAgICAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IC0zcHggMTBweCAwIDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctbm8tYm9yZGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdy1uby1wYWRkaW5nIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSYWRpbyBzZXR0aW5ncyBmaWVsZC5cbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93LWNoZWNrYm94LXRvZ2dsZSB7XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctZmllbGQge1xuXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3NpdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Y2hlY2tlZDpob3ZlciArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bm90KDpjaGVja2VkKTpob3ZlciArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6aG92ZXIgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6Y2hlY2tlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkcG9zaXRpdmUsIDI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2ggKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLWNoZWNrZWQtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2ggKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLWNoZWNrZWQtbGFiZWwgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXVuY2hlY2tlZC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpkaXNhYmxlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1jaGVja2VkLWxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpkaXNhYmxlZCArIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtc3dpdGNoICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS11bmNoZWNrZWQtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCM0NDQsIDQwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkOmhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgJjpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICMyZTg3NmE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6aG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4YzhmOTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAzcHggIzk5OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXVuY2hlY2tlZC1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1jaGVja2VkLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS10ZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS1jaGVja2VkLWxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlLXN3aXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzNjNGM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246ICAgIGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgLW1zLXRyYW5zaXRpb246ICAgICBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246ICAgICAgICAgYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAtMXB4IDVweCAwIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246ICAgIGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tcy10cmFuc2l0aW9uOiAgICAgYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogICAgICAgICBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1yb3ctYWxlcnQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyNXB4O1xuXG4gICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXJvdyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuc2VjdGlvbi1oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcblxuICAgICAgICAgICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubm90aWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogNi41cHggMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93IHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctcm93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctZmllbGQge1xuXG4gICAgICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy10b2dnbGUtY2hlY2tlZC1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZS11bmNoZWNrZWQtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEdlbmVyYWwgZWxlbWVudHMuXG4gICAgICAgICAgICBoMiwgaDQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS10ZXh0O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktdGV4dDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGg1IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktdGV4dDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMTJweCAwIDA7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgJi5kZXNjIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktdGV4dDtcblxuICAgICAgICAgICAgICAgICAgICAmICsgLmRlc2Mge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA4cHggMCAwO1xuXG4gICAgICAgICAgICAgICAgJi5saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICAmLmFjdGlvbnMtbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIHRkLCB0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiA1cHggNXB4IDVweCAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICYuZW1haWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICYuc3RhdHVzIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmLmFjdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW2NsYXNzKj1kZWxldGVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmW2NsYXNzKj1lcnJvcl0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRuZWdhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwgJjphY3RpdmUsICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkYXJrZW4oICRuZWdhdGl2ZSwgMjAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBGb3JtIGVsZW1lbnRzLlxuICAgICAgICAgICAgaW5wdXRbdHlwZT10ZXh0XSxcbiAgICAgICAgICAgIGlucHV0W3R5cGU9ZW1haWxdLFxuICAgICAgICAgICAgaW5wdXRbdHlwZT1udW1iZXJdLFxuICAgICAgICAgICAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gICAgICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGZpZWxkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGZpZWxkLXRleHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDEycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHggMCAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHBob25lXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICAgICAmIH4gYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbcmVhZG9ubHldIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLnNtYWxsLXRleHQge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNzVweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzAxNkFBQjtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICMwMTZBQUI7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuICAgICAgICAgICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDE2QUFCO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggIzAxNkFBQjtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCM2FXUjBhRDBpTVRNaUlHaGxhV2RvZEQwaU55SWdkbWxsZDBKdmVEMGlNQ0F3SURFeklEY2lJR1pwYkd3OUlpTTRaRGhtT1RVaUlIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eU1EQXdMM04yWnlJK0NqeHdZWFJvSUdROUlrMHhNeUF3TGprNU9ESTRNVU14TXlBd0xqa3dNakEyTWlBeE1pNDVOVEU1SURBdU56a3pPREUwSURFeUxqZzNPVGNnTUM0M01qRTJORGxNTVRJdU1qYzROQ0F3TGpFeU1ESTNORU14TWk0eU1EWXlJREF1TURRNE1UQTVPQ0F4TWk0d09UZ2dNQ0F4TWk0d01ERTNJREJETVRFdU9UQTFOU0F3SURFeExqYzVOek1nTUM0d05EZ3hNRGs0SURFeExqY3lOVEVnTUM0eE1qQXlOelJNTmk0NU9UZ3pJRFF1T0RRM01EaE1NaTR5TnpFMUlEQXVNVEl3TWpjMFF6SXVNVGs1TXpNZ01DNHdORGd4TURrNElESXVNRGt4TURnZ01DQXhMams1TkRnMklEQkRNUzQ0T0RZMk1pQXdJREV1Tnprd05DQXdMakEwT0RFd09UZ2dNUzQzTVRneU15QXdMakV5TURJM05Fd3hMakV4TmpnMklEQXVOekl4TmpRNVF6RXVNRFEwTmprZ01DNDNPVE00TVRRZ01DNDVPVFkxT0RJZ01DNDVNREl3TmpJZ01DNDVPVFkxT0RJZ01DNDVPVGd5T0RGRE1DNDVPVFkxT0RJZ01TNHdPVFExSURFdU1EUTBOamtnTVM0eU1ESTNOU0F4TGpFeE5qZzJJREV1TWpjME9URk1OaTQzTWpFMk55QTJMamczT1RjeVF6WXVOemt6T0RNZ05pNDVOVEU0T1NBMkxqa3dNakE0SURjZ05pNDVPVGd6SURkRE55NHdPVFExTWlBM0lEY3VNakF5TnpjZ05pNDVOVEU0T1NBM0xqSTNORGt6SURZdU9EYzVOekpNTVRJdU9EYzVOeUF4TGpJM05Ea3hRekV5TGprMU1Ua2dNUzR5TURJM05TQXhNeUF4TGpBNU5EVWdNVE1nTUM0NU9UZ3lPREZhSWlCbWFXeHNQU0lqT0dRNFpqazFJaTgrQ2p3dmMzWm5QZ289XCIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEycHggY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSb3cgbGFiZWwgKGxlZnQpLlxuICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiAyMDVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweCAwIDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGxhYmVsLXRleHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUm93IGZpZWxkIChyaWdodCkuXG4gICAgICAgIC53cC1tYWlsLWxvZ2dpbmctc2V0dGluZy1maWVsZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAgMjA1cHg7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaHIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctZmllbGQtcm93IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgICAgICYgPiAud3AtbWFpbC1zbXRwLWJ0biB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAud3AtbWFpbC1sb2dnaW5nLXN1Ym1pdCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAyNXB4IDA7XG5cbiAgICAgICAgICAgIC5oZWxwLXRleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubm90aWNlLWlubGluZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZmZmO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggMXB4IDAgcmdiYSggMCwgMCwgMCwgMC4xICk7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwIDE1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcHggMTJweDtcblxuICAgICAgICAgICAgJi5ub3RpY2Utc3VjY2VzcyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3NpdGl2ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5ub3RpY2Utd2FybmluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNmZmI5MDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubm90aWNlLWVycm9yIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJG5lZ2F0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm5vdGljZS1pbmZvIHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogIzAwYTBkMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ub3RpY2UgcCxcbiAgICAgICAgLm5vdGljZS1pbmxpbmUgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICBwcmUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICZfX3N3aXRjaCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiAtMXB4IDAgMCAwO1xuICAgICAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMnB4O1xuICAgICAgICAgICAgICAgIHRvcDogMnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9zaXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICAgICAgICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTZweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmNoZWNrZWQ6aG92ZXIsXG4gICAgICAgICAgICAmOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlX19zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICMwMGEzMmE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6aG92ZXIsXG4gICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6Zm9jdXMge1xuICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlX19zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICM5OTk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICAmOmNoZWNrZWQ6aG92ZXIgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlX19zd2l0Y2gsXG4gICAgICAgICAgICAgICAgJjpub3QoOmNoZWNrZWQpOmhvdmVyICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm5vdCg6Y2hlY2tlZCk6aG92ZXIgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlX19zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYgKyAud3AtbWFpbC1sb2dnaW5nLXNldHRpbmctdG9nZ2xlX19zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpjaGVja2VkICsgLndwLW1haWwtbG9nZ2luZy1zZXR0aW5nLXRvZ2dsZV9fc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigjMDBhMzJhLCAyNSk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbWFpbCBMb2dzLlxuICAgICNlbWFpbC1saXN0IHtcblxuICAgICAgICB0YWJsZS5lbWFpbHMge1xuXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgICAgIHRoLCB0ZCB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbHVtbi1jYixcbiAgICAgICAgICAgIC5jaGVjay1jb2x1bW4ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDAgMCAzcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aCN0aW1lc3RhbXAsIHRoI2FjdGlvbnMsIHRkLmNvbHVtbi10aW1lc3RhbXAsIHRkLmNvbHVtbi1hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGQuY29sdW1uLWFjdGlvbnMge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1sb2dnaW5nLWFjdGlvbi1jb2x1bW4ge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAgICAgICAgIC53cC1tYWlsLWxvZ2dpbmctYWN0aW9uLWl0ZW0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0NDRDBENDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjOEM4Rjk0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjM2M0MzRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjM2M0MzRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAuc2VhcmNoLWJveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgICAgICAgICAgIHNlbGVjdCwgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4jd3AtbWFpbC1sb2dnaW5nLXBhZ2UtaGVhZGVyLXRlbXAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMXB4O1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogOTk7XG59XG5cbiN3cC1tYWlsLWxvZ2dpbmctcGFnZS1oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcGFnZS10aXRsZSB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDIwcHggMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53cC1tYWlsLWxvZ2dpbmctbG9nby1pbWFnZSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAud3AtbWFpbC1sb2dnaW5nLWxvZ28tc2VwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxNXB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhLnRhYiB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2ZmZjtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogIzc4N0M4MjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHggMCAxOHB4IDA7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNFNzdDNUM7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMyQzMzMzg7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjRTc3QzVDO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYTdhYWFkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYS5hY3Rpb24ge1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbWFyZ2luOiAxNHB4IDAgMTRweCAxMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDIzcHg7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBCdXR0b25zLlxuLndwLW1haWwtbG9nZ2luZy1idG4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAmLndwLW1haWwtbG9nZ2luZy1idG4tbGcge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIH1cblxuICAgICYud3AtbWFpbC1sb2dnaW5nLWJ0bi1vcmFuZ2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTc3QzVDO1xuICAgICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlLWRhcms7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDNweCAkb3JhbmdlLWRhcms7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIExpZ2h0Ym94LlxuLndwLW1haWwtbG9nZ2luZy1hZG1pbi1wYWdlIHtcblxuICAgIC8qIExpZ2h0Ym94IGxpYnJhcnkgZ2xvYmFsIHN0eWxlcy4gKi9cbiAgICAubGl0eSB7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5OTk5OTtcbiAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICB9XG5cbiAgICAubGl0eS1jbG9zZSB7XG4gICAgICAgIG1hcmdpbjogMTBweDtcbiAgICB9XG5cbiAgICAubGl0eS1jb250ZW50IHtcbiAgICAgICAgbWF4LXdpZHRoOiA4MHZ3O1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDgwdncgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLndwLW1haWwtbG9nZ2luZy1hZG1pbi1wYWdlIHtcblxuXHRwLnNlYXJjaC1ib3gge1xuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuXHRcdFx0d2lkdGg6IDgwJTtcblx0XHR9XG5cdH1cblxuICAgICN3cGZvb3RlciBwIHtcbiAgICAgICAgY29sb3I6ICM1MDU3NUU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gVXRpbGl0eS5cbi53cC1tYWlsLWxvZ2dpbmctY2xlYXJmaXgge1xuXG4gICAgJjphZnRlciwgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbn1cblxuQGltcG9ydCBcIndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvblwiO1xuQGltcG9ydCBcImNvbmZpcm1cIjtcbiIsIi8vIENvbG9yIHN0eWxlc1xuXG4kcHJpbWFyeS10ZXh0OiAjMUQyMzI3O1xuJHNlY29uZGFyeS10ZXh0OiAjNjQ2OTcwO1xuJGRlc2NyaXB0aW9uLXRleHQ6ICMzQzQzNEE7XG4kb3JhbmdlOiAjRTI3NzMwO1xuJG9yYW5nZS1kYXJrOiAjY2I1ODM2O1xuJHBvc2l0aXZlOiAjMzhhMTdlO1xuJG5lZ2F0aXZlOiAjRDYzNjM4O1xuJGZpZWxkLWJvcmRlcjogIzhiOGY5MztcbiRmaWVsZC10ZXh0OiAjMkMzMzM4O1xuJGxhYmVsLXRleHQ6ICMxRTIzMjc7XG4kbGluazogIzIxNzFCMTtcbiRsaW5rLWhvdmVyOiAjMTM1ZTk2O1xuIiwiJGJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzLXBob25lJzogMzIwcHgsXG4gICAgJ3Bob25lJzogNjAwcHgsXG4gICAgJ2lwYWQnOiA3NjhweCxcbiAgICAndGFibGV0JzogNzgycHgsXG4gICAgJ2Rlc2t0b3AnOiA5NjBweFxuKTtcblxuJG1lZGl1bS13ZWlnaHQ6IDYwMDtcbiIsIkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbi8vIFByb2R1Y3QgRWR1Y2F0aW9uLlxuLndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICM1MDU3NUU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICB1bCB7XG4gICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgIH1cblxuICAgICYtZGlzbWlzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRvcDogMTVweDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAjYTdhYWFkO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNkNjM2Mzg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kYXNoaWNvbnMsIC5kYXNoaWNvbnMtYmVmb3JlOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLWVkdWNhdGlvbi1idG4ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRTc3QzVDO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjY2I1ODM2O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICMzQzQzNEE7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1lbWFpbC1sb2dzLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgY29sb3I6ICMyMjIyMjI7XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2IHtcblxuICAgICAgICAgICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYS53cC1tYWlsLWxvZ2dpbmctZWR1Y2F0aW9uLWJ0biB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1lbWFpbC1sb2dzLWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRiB1cmwoXCIuLi9pbWFnZXMvcGxhbmUtYmcucG5nXCIpIG5vLXJlcGVhdCByaWdodCBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDFweCAxMTlweDtcblxuICAgIC8qIEAyeCBJbWFnZXMgKFBpeGVsIFJhdGlvIG9mIDEuMjUrKSAqL1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDUvNCksXG4gICAgICAgICAgIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpIHtcblxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvcGxhbmUtYmdAMngucG5nXCIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD1waG9uZVwiKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI+cGhvbmVcIiwgXCI8PXRhYmxldFwiKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAud3AtbWFpbC1sb2dnaW5nLXByb2R1Y3QtZWR1Y2F0aW9uLWltYWdlcy1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMjVweDtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgJi1pbWFnZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzcwcHg7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogNXB4IHNvbGlkICNEQ0RDREU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDY4LCA2OCwgNjgsIC4xNSkgdXJsKCcuLi9pbWFnZXMvem9vbS5zdmcnKSBuby1yZXBlYXQgY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDUwcHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjM0M0MzRBO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJy4uL2ltYWdlcy9hcnJvdy1yaWdodC1wbGFpbi1pY29uLnN2ZycpIG5vLXJlcGVhdCBsZWZ0IDNweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAud3AtbWFpbC1sb2dnaW5nLWVkdWNhdGlvbi1idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjRTc3QzVDO1xuICAgICAgICBib3JkZXItY29sb3I6ICNFNzdDNUM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG5cbiAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2I1ODM2O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjY2I1ODM2O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggI2ZmZiwgMCAwIDAgM3B4ICNjYjU4MzY7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIkcHJpbWFyeS10ZXh0OiAjMjIyMjIyO1xuJG9yYW5nZTogI2U3N2M1YztcbiRtb2RhbC1vcmFuZ2U6ICNlNzdjNWM7XG4kcG9zaXRpdmU6ICMwMEEzMkE7XG5cbi8vIFN0eWxpbmcgdHdlYWtzIGZvciBqUXVlcnktY29uZmlybSBKUyBhbGVydCBsaWJyYXJ5LlxuYm9keS53cC1tYWlsLWxvZ2dpbmctYWRtaW4tcGFnZSB7XG5cbiAgICBkaXYuamNvbmZpcm0ge1xuXG4gICAgICAgICosXG4gICAgICAgICo6OmJlZm9yZSxcbiAgICAgICAgKjo6YWZ0ZXIge1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5qY29uZmlybS1iZyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDExNCwgMTE5LCAxMjQsIDAuNzUpO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5qY29uZmlybS1ib3gge1xuICAgICAgICAgICAgcGFkZGluZzogMzBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC13aWR0aDogNHB4O1xuXG4gICAgICAgICAgICBkaXYuamNvbmZpcm0tY2xvc2VJY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICAgICAgICAgICAgICAgIHRvcDogOHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA4cHg7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44MCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXYuamNvbmZpcm0tdGl0bGUtYyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgICAgICAuamNvbmZpcm0taWNvbi1jIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMzBweDtcbiAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAgICAgICAgICY6ZW1wdHksXG4gICAgICAgICAgICAgICAgICAgIGk6ZW1wdHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5qY29uZmlybS10aXRsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktdGV4dDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGl2Lmpjb25maXJtLWNvbnRlbnQtcGFuZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcblxuICAgICAgICAgICAgICAgIC5qY29uZmlybS1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXYuamNvbmZpcm0tY29udGVudCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS10ZXh0O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuXG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5zbWFsbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1zbXRwLWRlYnVnLWV2ZW50LXByZXZpZXcgcCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAud3AtbWFpbC1zbXRwLWJ0biB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuMXM7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgLjFzO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuICAgICAgICAgICAgICAgICAgICAtbXMtdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgICAgICAgICAgICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogMWVtO1xuICAgICAgICAgICAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgJi53aXRoLWxvYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDEycHggN3B4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkaXYuamNvbmZpcm0tYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IDAuMnM7XG4gICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxMHB4IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxMDBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLmJ0bi1jb25maXJtIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5idG4tY2FuY2VsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjNzc3Nzc3O1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNGOEY4Rjg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJixcbiAgICAgICAgICAgICAgICAgICAgJi5idG4tZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuYnRuLWhpZGUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuYnRuLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYuYnRuLW5vcm1hbC1jYXNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuamNvbmZpcm0tdHlwZS1vcmFuZ2Uge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1vZGFsLW9yYW5nZTtcblxuICAgICAgICAgICAgICAgIGRpdi5qY29uZmlybS1idXR0b25zIGJ1dHRvbi5idG4tY29uZmlybSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1vcmFuZ2U7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1vZGFsLW9yYW5nZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubG9hZGluZyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTYwcHg7XG5cbiAgICAgICAgICAgICAgICAuamNvbmZpcm0tdGl0bGUtYyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogNDtcblxuICAgICAgICAgICAgICAgICAgICAuamNvbmZpcm0taWNvbi1jIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA2OCU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCA2cHggdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmpjb25maXJtLWJveC53cC1tYWlsLXNtdHAtdXBncmFkZS1tYWlsZXItZWR1Y2F0aW9uLW1vZGFsIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHggMzBweCAxNXB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcblxuICAgICAgICAgICAgZGl2Lmpjb25maXJtLXRpdGxlLWMge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDI2cHggMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgLmpjb25maXJtLWljb24tYyB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYzRjNGM0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGl2Lmpjb25maXJtLWNvbnRlbnQtcGFuZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGl2Lmpjb25maXJtLWJ1dHRvbnMgYnV0dG9uLmJ0bi1jb25maXJtIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJG9yYW5nZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmRpc2NvdW50LW5vdGUge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDQ1cHggMCAwO1xuXG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2Y5ZTg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAtMzBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMjRweCA2MHB4IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM0ZDRkNGQ7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvZm9udC1hd2Vzb21lL2NoZWNrLWNpcmNsZS1zb2xpZC1ncmVlbi5zdmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMThweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHBvc2l0aXZlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2FhYTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19 */ -
wp-mail-logging/trunk/assets/css/wp-mail-logging-admin.min.css
r2880502 r2929157 1 #wpcontent{padding-left:0 !important;position:relative}@media(max-width: 600px){#wpcontent{padding-top:46px}}@media(max-width: 600px){#wpbody{padding-top:0}}#wp-mail-logging{color:#3c434a;margin:0}#wp-mail-logging .subsubsub a.current{font-weight:600}#wp-mail-logging #wp-mail-logging-setting- tab-form #wp-mail-logging-setting-tab-row-log-rotation-limit-amout-keep,#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-setting-tab-row-log-rotation-delete-time-days{padding-top:0}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-settings-bottom{align-items:center;border-top:1px solid #e4e4e4;display:flex;justify-content:space-between;margin-top:15px;padding-top:30px}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-settings-reset-link{background:none;border:none;color:#2271b1;cursor:pointer;font-size:14px;font-weight:400;line-height:35px;margin:0;outline:0;text-decoration:underline}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-settings-reset-link:hover{color:#135e96}#wp-mail-logging .wp-mail-logging-hide{display:none}#wp-mail-logging .wp-mail-logging-page-content{padding:0 20px}#wp-mail-logging .wp-mail-logging-page-content *,#wp-mail-logging .wp-mail-logging-page-content *::before,#wp-mail-logging .wp-mail-logging-page-content *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-mail-logging .wp-mail-logging-page-content #wp-mail-logging-setting-row-heading-general-settings{padding-top:10px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row{border-bottom:1px solid #e4e4e4;padding:15px 0 30px 0;font-size:14px;line-height:1.3}@media(max-width: 781px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row{padding:20px 0}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.inactive{display:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row .wp-mail-logging-setting-mid-row-sep{background:#e4e4e4;height:1px;border:0;margin:15px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading{padding:30px 0 20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading.no-desc h2,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading.no-desc h4{margin:0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading .wp-mail-logging-setting-field{margin:0;max-width:1005px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading .desc{font-style:normal}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-input input{max-width:80px;padding:8px 12px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox input[type=checkbox]+label{margin:0 0 0 8px;vertical-align:baseline}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox .desc{margin:0 0 0 30px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox input[type=checkbox]+label+.desc{margin:8px 0 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-text .wp-mail-logging-setting-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-password .wp-mail-logging-setting-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-number .wp-mail-logging-setting-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-email .wp-mail-logging-setting-label{padding-top:8px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-select .wp-mail-logging-setting-label{padding-top:8px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-radio .wp-mail-logging-setting-field input[type=radio]{margin:-3px 10px 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-radio .wp-mail-logging-setting-field label{margin-right:30px;display:inline-block}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-no-border{border-bottom:none;padding-bottom:15px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-no-padding{padding:0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field label{vertical-align:middle;display:inline-block}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;white-space:nowrap}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch{background-color:#38a17e}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:checked:hover+.wp-mail-logging-setting-toggle-switch,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle-switch{box-shadow:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle-switch{background-color:#ddd}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle-switch{background-color:#ddd;cursor:default}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:checked+.wp-mail-logging-setting-toggle-switch{background-color:#84d4ba;cursor:default}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-checked-label{display:inline-block}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-checked-label+.wp-mail-logging-setting-toggle-unchecked-label{display:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-checked-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-unchecked-label{color:#aaa}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked:hover+.wp-mail-logging-setting-toggle-switch,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked:focus+.wp-mail-logging-setting-toggle-switch{box-shadow:0 0 0 1px #fff,0 0 0 3px #2e876a}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:not(:checked):hover+.wp-mail-logging-setting-toggle-switch,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:not(:checked):focus+.wp-mail-logging-setting-toggle-switch{background-color:#8c8f94;box-shadow:0 0 0 1px #fff,0 0 0 3px #999}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-unchecked-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-checked-label{text-transform:uppercase;font-weight:600;color:#646970;font-size:12px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-checked-label{display:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-switch{position:relative;cursor:pointer;background-color:#c3c4c7;border-radius:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;display:inline-block;margin:-1px 5px 0 0;width:36px;height:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert{padding-top:20px;padding-bottom:25px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-row{border:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading{margin-bottom:25px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading h3{margin-bottom:10px;font-weight:600;font-size:18px;line-height:22px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading .notice{margin-top:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading .notice p{margin:6.5px 0;font-size:13px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-row{padding:0 !important}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-row+.wp-mail-logging-setting-row{margin-top:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-checked-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-unchecked-label{text-transform:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-label label{font-weight:600}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h2,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h4{color:#1d2327;font-size:18px;font-weight:600;line-height:22px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h2{margin-top:0;margin-bottom:10px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h3{color:#1d2327;font-size:24px;font-weight:600;margin:0 0 20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h5{color:#1d2327;font-size:16px;font-weight:600;margin:0 0 20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row p{margin:12px 0 0;font-size:14px;line-height:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row p.desc{margin:10px 0 0;color:#646970}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row p.desc+.desc{font-style:normal}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row ul{margin:8px 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row ul.list li{margin-left:20px;list-style-type:disc}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list th{padding:5px 5px 5px 0;text-align:left}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.email{padding-right:2em}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.status{width:100px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a{border-bottom:1px solid;display:inline-block;margin-right:5px;text-decoration:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]{color:#d63638}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete]:hover,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete]:active,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]:hover,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]:active,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]:focus{color:#8a1c1d}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{background-color:#fff;border:1px solid #8b8f93;border-radius:4px;box-shadow:none;color:#2c3338;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px;line-height:1.3}@media(max-width: 959px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{width:300px}}@media(max-width: 599px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{width:100%;max-width:unset;margin-right:0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select~button{margin-top:8px}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select[readonly]{background-color:#f9f9f9}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select.small-text{width:75px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select:focus{border:1px solid #016aab;box-shadow:0 0 0 1px #016aab;outline:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select:disabled{opacity:.6}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=checkbox]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=radio]:focus{border:1px solid #016aab;box-shadow:0 0 0 1px #016aab;outline:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]{width:80px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEzIDciIGZpbGw9IiM4ZDhmOTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMyAwLjk5ODI4MUMxMyAwLjkwMjA2MiAxMi45NTE5IDAuNzkzODE0IDEyLjg3OTcgMC43MjE2NDlMMTIuMjc4NCAwLjEyMDI3NEMxMi4yMDYyIDAuMDQ4MTA5OCAxMi4wOTggMCAxMi4wMDE3IDBDMTEuOTA1NSAwIDExLjc5NzMgMC4wNDgxMDk4IDExLjcyNTEgMC4xMjAyNzRMNi45OTgzIDQuODQ3MDhMMi4yNzE1IDAuMTIwMjc0QzIuMTk5MzMgMC4wNDgxMDk4IDIuMDkxMDggMCAxLjk5NDg2IDBDMS44ODY2MiAwIDEuNzkwNCAwLjA0ODEwOTggMS43MTgyMyAwLjEyMDI3NEwxLjExNjg2IDAuNzIxNjQ5QzEuMDQ0NjkgMC43OTM4MTQgMC45OTY1ODIgMC45MDIwNjIgMC45OTY1ODIgMC45OTgyODFDMC45OTY1ODIgMS4wOTQ1IDEuMDQ0NjkgMS4yMDI3NSAxLjExNjg2IDEuMjc0OTFMNi43MjE2NyA2Ljg3OTcyQzYuNzkzODMgNi45NTE4OSA2LjkwMjA4IDcgNi45OTgzIDdDNy4wOTQ1MiA3IDcuMjAyNzcgNi45NTE4OSA3LjI3NDkzIDYuODc5NzJMMTIuODc5NyAxLjI3NDkxQzEyLjk1MTkgMS4yMDI3NSAxMyAxLjA5NDUgMTMgMC45OTgyODFaIiBmaWxsPSIjOGQ4Zjk1Ii8+Cjwvc3ZnPgo=");background-position:right 12px center}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label{display:block;float:left;width:205px;padding:0 20px 0 0}@media(max-width: 781px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label{float:none;width:100%;padding-bottom:15px}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label label{color:#1e2327;display:block;font-weight:600}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field{display:block;margin:0 0 0 205px;max-width:800px}@media(max-width: 781px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field{margin:0}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field hr{margin:20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field .wp-mail-logging-setting-field-row{display:flex;flex-wrap:wrap}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field .wp-mail-logging-setting-field-row>.wp-mail-smtp-btn{margin-right:10px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-submit{margin:0;padding:25px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-submit .help-text{margin-left:10px;vertical-align:middle}#wp-mail-logging .wp-mail-logging-page-content .notice-inline{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px;padding:1px 12px}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-success{border-left-color:#38a17e}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-warning{border-left-color:#ffb900}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-error{border-left-color:#d63638}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-info{border-left-color:#00a0d2}#wp-mail-logging .wp-mail-logging-page-content .notice p,#wp-mail-logging .wp-mail-logging-page-content .notice-inline p{margin:.5em 0;padding:2px}#wp-mail-logging .wp-mail-logging-page-content pre{white-space:pre-line}#wp-mail-logging .wp-mail-logging-page-content.active{display:block}#wp-mail-logging .wp-mail-logging-setting-toggle{vertical-align:middle;display:inline-block}#wp-mail-logging .wp-mail-logging-setting-toggle__switch{position:relative;cursor:pointer;background-color:#ccc;border-radius:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;display:inline-block;margin:-1px 0 0 0;width:36px;height:20px}#wp-mail-logging .wp-mail-logging-setting-toggle__switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;white-space:nowrap}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked+.wp-mail-logging-setting-toggle__switch{background-color:#38a17e}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked+.wp-mail-logging-setting-toggle__switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked:hover+.wp-mail-logging-setting-toggle__switch,#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked:focus+.wp-mail-logging-setting-toggle__switch{box-shadow:0 0 0 1px #fff,0 0 0 3px #00a32a}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:not(:checked):hover+.wp-mail-logging-setting-toggle__switch,#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:not(:checked):focus+.wp-mail-logging-setting-toggle__switch{background-color:#999;box-shadow:0 0 0 1px #fff,0 0 0 3px #999}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:checked:hover+.wp-mail-logging-setting-toggle__switch,#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle__switch{box-shadow:none}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle__switch{background-color:#ddd}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle__switch{background-color:#ddd;cursor:default}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:checked+.wp-mail-logging-setting-toggle__switch{background-color:#24ff5c;cursor:default}#wp-mail-logging #email-list table.emails{border-radius:4px}#wp-mail-logging #email-list table.emails th,#wp-mail-logging #email-list table.emails td{vertical-align:middle}#wp-mail-logging #email-list table.emails .column-cb,#wp-mail-logging #email-list table.emails .check-column{padding:0;text-align:center;vertical-align:middle}@media(max-width: 600px){#wp-mail-logging #email-list table.emails .column-cb,#wp-mail-logging #email-list table.emails .check-column{padding:10px 0 0 3px}}#wp-mail-logging #email-list table.emails th#timestamp,#wp-mail-logging #email-list table.emails th#actions,#wp-mail-logging #email-list table.emails td.column-timestamp,#wp-mail-logging #email-list table.emails td.column-actions{width:200px;max-width:200px}#wp-mail-logging #email-list table.emails td.column-actions{text-align:right;vertical-align:middle}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column{align-items:center;display:flex;justify-content:flex-end}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item{align-items:center;display:flex;background-color:#fff;border:1px solid #ccd0d4;border-radius:5px;color:#8c8f94;line-height:0;margin:0 4px;padding:5px}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item img{width:16px;height:16px}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item:hover,#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item:focus{border-color:#3c434a;color:#3c434a;cursor:pointer}@media(max-width: 600px){#wp-mail-logging #email-list p.search-box{width:inherit}}#wp-mail-logging-page-header-temp{margin:0;position:absolute;top:-1px;left:20px;right:0;z-index:99}#wp-mail-logging-page-header{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05);margin-bottom:20px}#wp-mail-logging-page-header .wp-mail-logging-page-title{align-items:center;display:flex;font-size:14px;padding:4px 20px 0}@media(max-width: 600px){#wp-mail-logging-page-header .wp-mail-logging-page-title{display:block;padding-top:20px}}#wp-mail-logging-page-header .wp-mail-logging-page-title .wp-mail-logging-logo-image{align-items:center;justify-content:center}#wp-mail-logging-page-header .wp-mail-logging-page-title .wp-mail-logging-logo-sep{margin:0 15px}@media(max-width: 600px){#wp-mail-logging-page-header .wp-mail-logging-page-title .wp-mail-logging-logo-sep{display:none}}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab{border-bottom:4px solid #fff;box-shadow:none;color:#787c82;display:inline-block;font-weight:600;margin-right:30px;padding:20px 0 18px 0;text-decoration:none}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab.active{border-color:#e77c5c;color:#2c3338}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab.active:hover{border-color:#e77c5c}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab:hover{border-color:#a7aaad}#wp-mail-logging-page-header .wp-mail-logging-page-title a.action{color:#fff;font-weight:600;margin:14px 0 14px 10px;line-height:28px;min-height:30px;vertical-align:top}@media(max-width: 600px){#wp-mail-logging-page-header .wp-mail-logging-page-title a.action{margin-left:0}}#wp-mail-logging-page-header .wp-mail-logging-page-title .page-title{background-color:#fff;display:inline-block;font-size:23px;margin:0;padding:20px 20px 20px 0}.wp-mail-logging-btn{border:0;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;text-shadow:none;box-shadow:none;outline:none}.wp-mail-logging-btn:disabled{opacity:.5;cursor:not-allowed}.wp-mail-logging-btn.wp-mail-logging-btn-lg{font-size:16px;font-weight:600;padding:12px 16px}.wp-mail-logging-btn.wp-mail-logging-btn-orange{background-color:#e77c5c;color:#fff}.wp-mail-logging-btn.wp-mail-logging-btn-orange:hover,.wp-mail-logging-btn.wp-mail-logging-btn-orange:active,.wp-mail-logging-btn.wp-mail-logging-btn-orange:focus{background-color:#cb5836;border:0;color:#fff}.wp-mail-logging-btn.wp-mail-logging-btn-orange:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #cb5836}.wp-mail-logging-admin-page .lity{z-index:999999999;padding:20px}.wp-mail-logging-admin-page .lity-close{margin:10px}.wp-mail-logging-admin-page .lity-content{max-width:80vw;max-height:80vh}.wp-mail-logging-admin-page .lity-content img{max-height:80vh !important;max-width:80vw !important}@media(max-width: 782px){.wp-mail-logging-admin-page p.search-box{width:80%}}.wp-mail-logging-admin-page #wpfooter p{color:#50575e;font-weight:400}.wp-mail-logging-admin-page #wpfooter p strong{font-weight:600}.wp-mail-logging-clearfix:after,.wp-mail-logging-clearfix:before{content:" ";display:table}.wp-mail-logging-clearfix:after{clear:both}.wp-mail-logging-product-education{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05);border-radius:6px;color:#50575e;font-size:14px;font-weight:400;margin-top:20px;position:relative}.wp-mail-logging-product-education ul{color:#646970}.wp-mail-logging-product-education-dismiss{position:absolute;right:15px;top:15px}.wp-mail-logging-product-education-dismiss button{background:none;border:none;color:#a7aaad;cursor:pointer;margin:0;padding:0}.wp-mail-logging-product-education-dismiss button:focus,.wp-mail-logging-product-education-dismiss button:hover{color:#d63638}.wp-mail-logging-product-education-dismiss button .dashicons,.wp-mail-logging-product-education-dismiss button .dashicons-before::before{width:16px;height:16px;font-size:16px}.wp-mail-logging-product-education-content{padding:20px}.wp-mail-logging-product-education-content strong{font-weight:600}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-radius:3px;color:#fff;display:inline-block;font-size:14px;padding:7px 10px;text-decoration:none}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn:hover{color:#fff}.wp-mail-logging-product-education-content p{color:#646970;font-size:14px;margin:10px 0}.wp-mail-logging-product-education-content p a{color:#e77c5c}.wp-mail-logging-product-education-content p a:hover,.wp-mail-logging-product-education-content p a:focus{color:#cb5836}.wp-mail-logging-product-education h3{color:#3c434a;font-size:18px;font-weight:600;margin-bottom:10px;margin-top:0}#wp-mail-logging-product-education-email-logs-top{border-radius:7px;margin-bottom:20px;margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content{padding:15px}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content h2{color:#222}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content p{color:#646970;line-height:18px;margin:5px 0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content div p:last-child{margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-width:0;font-size:13px;line-height:16px;margin-top:7px}#wp-mail-logging-product-education-email-logs-bottom{background:#fff url("../images/plane-bg.png") no-repeat right bottom;background-size:401px 119px}@media only screen and (-o-min-device-pixel-ratio: 5/4),only screen and (-webkit-min-device-pixel-ratio: 1.25),only screen and (min-device-pixel-ratio: 1.25),only screen and (min-resolution: 1.25dppx){#wp-mail-logging-product-education-email-logs-bottom{background-image:url("../images/[email protected]")}}@media(max-width: 782px){#wp-mail-logging-product-education-email-logs-bottom{margin-top:100px;margin-right:20px;position:absolute}}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row{display:flex;flex-wrap:wrap;gap:25px;margin:20px 0}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image{display:flex;flex-direction:column;max-width:370px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a{border:5px solid #dcdcde;border-radius:4px;box-sizing:border-box;margin-bottom:10px;position:relative}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a:hover::after{opacity:1}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a::after{background:rgba(68,68,68,.15) url("../images/zoom.svg") no-repeat center;background-size:50px;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .3s;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image img{display:block;height:auto;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image span{color:#3c434a;font-size:16px;font-weight:600}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul{font-size:13px;line-height:20px;margin-bottom:0;margin-top:10px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li{background:rgba(0,0,0,0) url("../images/arrow-right-plain-icon.svg") no-repeat left 3px;background-size:12px;padding-left:18px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li::before{left:0;position:absolute;top:-1px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn{background:#e77c5c;border-color:#e77c5c;border-radius:4px;border-width:0;font-weight:600;line-height:16px;padding:12px 16px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:hover,#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{background-color:#cb5836;border-color:#cb5836}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #cb5836}1 #wpcontent{padding-left:0 !important;position:relative}@media(max-width: 600px){#wpcontent{padding-top:46px}}@media(max-width: 600px){#wpbody{padding-top:0}}#wp-mail-logging{color:#3c434a;margin:0}#wp-mail-logging .subsubsub a.current{font-weight:600}#wp-mail-logging #wp-mail-logging-setting-db-upgrade{background:#fff;border:1px solid #c3c4c7;border-left:4px solid #e77c5c;box-shadow:0 1px 1px rgba(0,0,0,.04);margin-bottom:30px;padding:16px;position:relative}#wp-mail-logging #wp-mail-logging-setting-db-upgrade h3{font-size:18px;line-height:22px;margin-bottom:10px}#wp-mail-logging #wp-mail-logging-setting-db-upgrade ul{list-style-type:initial;list-style-position:inside}#wp-mail-logging #wp-mail-logging-setting-db-upgrade #wp-mail-logging-btn-db-upgrade{height:inherit;padding:11px 16px;line-height:1.2}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-setting-tab-row-log-rotation-limit-amout-keep,#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-setting-tab-row-log-rotation-delete-time-days{padding-top:0}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-settings-bottom{align-items:center;border-top:1px solid #e4e4e4;display:flex;justify-content:space-between;margin-top:15px;padding-top:30px}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-settings-reset-link{background:none;border:none;color:#2271b1;cursor:pointer;font-size:14px;font-weight:400;line-height:35px;margin:0;outline:0;text-decoration:underline}#wp-mail-logging #wp-mail-logging-setting-tab-form #wp-mail-logging-settings-reset-link:hover{color:#135e96}#wp-mail-logging .wp-mail-logging-hide{display:none}#wp-mail-logging .wp-mail-logging-page-content{padding:0 20px}#wp-mail-logging .wp-mail-logging-page-content *,#wp-mail-logging .wp-mail-logging-page-content *::before,#wp-mail-logging .wp-mail-logging-page-content *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-mail-logging .wp-mail-logging-page-content #wp-mail-logging-setting-row-heading-general-settings{padding-top:10px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row{border-bottom:1px solid #e4e4e4;padding:15px 0 30px 0;font-size:14px;line-height:1.3}@media(max-width: 781px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row{padding:20px 0}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.inactive{display:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row .wp-mail-logging-setting-mid-row-sep{background:#e4e4e4;height:1px;border:0;margin:15px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading{padding:30px 0 20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading.no-desc h2,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading.no-desc h4{margin:0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading .wp-mail-logging-setting-field{margin:0;max-width:1005px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.section-heading .desc{font-style:normal}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-input input{max-width:80px;padding:8px 12px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox input[type=checkbox]+label{margin:0 0 0 8px;vertical-align:baseline}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox .desc{margin:0 0 0 30px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox input[type=checkbox]+label+.desc{margin:8px 0 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-text .wp-mail-logging-setting-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-password .wp-mail-logging-setting-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-number .wp-mail-logging-setting-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-email .wp-mail-logging-setting-label{padding-top:8px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-select .wp-mail-logging-setting-label{padding-top:8px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-radio .wp-mail-logging-setting-field input[type=radio]{margin:-3px 10px 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-radio .wp-mail-logging-setting-field label{margin-right:30px;display:inline-block}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-no-border{border-bottom:none;padding-bottom:15px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-no-padding{padding:0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field label{vertical-align:middle;display:inline-block}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;white-space:nowrap}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch{background-color:#38a17e}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:checked:hover+.wp-mail-logging-setting-toggle-switch,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle-switch{box-shadow:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle-switch{background-color:#ddd}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle-switch{background-color:#ddd;cursor:default}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled:checked+.wp-mail-logging-setting-toggle-switch{background-color:#84d4ba;cursor:default}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-checked-label{display:inline-block}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-checked-label+.wp-mail-logging-setting-toggle-unchecked-label{display:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-checked-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle-switch+.wp-mail-logging-setting-toggle-unchecked-label{color:#aaa}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked:hover+.wp-mail-logging-setting-toggle-switch,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:checked:focus+.wp-mail-logging-setting-toggle-switch{box-shadow:0 0 0 1px #fff,0 0 0 3px #2e876a}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:not(:checked):hover+.wp-mail-logging-setting-toggle-switch,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field input[type=checkbox]:not(:checked):focus+.wp-mail-logging-setting-toggle-switch{background-color:#8c8f94;box-shadow:0 0 0 1px #fff,0 0 0 3px #999}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-unchecked-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-checked-label{text-transform:uppercase;font-weight:600;color:#646970;font-size:12px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-checked-label{display:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-switch{position:relative;cursor:pointer;background-color:#c3c4c7;border-radius:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;display:inline-block;margin:-1px 5px 0 0;width:36px;height:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-checkbox-toggle .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert{padding-top:20px;padding-bottom:25px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-row{border:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading{margin-bottom:25px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading h3{margin-bottom:10px;font-weight:600;font-size:18px;line-height:22px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading .notice{margin-top:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .section-heading .notice p{margin:6.5px 0;font-size:13px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-row{padding:0 !important}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-row+.wp-mail-logging-setting-row{margin-top:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-checked-label,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-field .wp-mail-logging-setting-toggle-unchecked-label{text-transform:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row.wp-mail-logging-setting-row-alert .wp-mail-logging-setting-label label{font-weight:600}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h2,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h4{color:#1d2327;font-size:18px;font-weight:600;line-height:22px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h2{margin-top:0;margin-bottom:10px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h3{color:#1d2327;font-size:24px;font-weight:600;margin:0 0 20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row h5{color:#1d2327;font-size:16px;font-weight:600;margin:0 0 20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row p{margin:12px 0 0;font-size:14px;line-height:20px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row p.desc{margin:10px 0 0;color:#646970}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row p.desc+.desc{font-style:normal}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row ul{margin:8px 0 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row ul.list li{margin-left:20px;list-style-type:disc}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list th{padding:5px 5px 5px 0;text-align:left}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.email{padding-right:2em}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.status{width:100px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a{border-bottom:1px solid;display:inline-block;margin-right:5px;text-decoration:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]{color:#d63638}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete]:hover,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete]:active,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=delete]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]:hover,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]:active,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row table.actions-list td.actions a[class*=error]:focus{color:#8a1c1d}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{background-color:#fff;border:1px solid #8b8f93;border-radius:4px;box-shadow:none;color:#2c3338;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px;line-height:1.3}@media(max-width: 959px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{width:300px}}@media(max-width: 599px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{width:100%;max-width:unset;margin-right:0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password]~button,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select~button{margin-top:8px}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password][readonly],#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select[readonly]{background-color:#f9f9f9}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password].small-text,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select.small-text{width:75px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select:focus{border:1px solid #016aab;box-shadow:0 0 0 1px #016aab;outline:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=text]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=email]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=password]:disabled,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select:disabled{opacity:.6}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=checkbox]:focus,#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=radio]:focus{border:1px solid #016aab;box-shadow:0 0 0 1px #016aab;outline:none}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row input[type=number]{width:80px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-row select{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTMiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEzIDciIGZpbGw9IiM4ZDhmOTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMyAwLjk5ODI4MUMxMyAwLjkwMjA2MiAxMi45NTE5IDAuNzkzODE0IDEyLjg3OTcgMC43MjE2NDlMMTIuMjc4NCAwLjEyMDI3NEMxMi4yMDYyIDAuMDQ4MTA5OCAxMi4wOTggMCAxMi4wMDE3IDBDMTEuOTA1NSAwIDExLjc5NzMgMC4wNDgxMDk4IDExLjcyNTEgMC4xMjAyNzRMNi45OTgzIDQuODQ3MDhMMi4yNzE1IDAuMTIwMjc0QzIuMTk5MzMgMC4wNDgxMDk4IDIuMDkxMDggMCAxLjk5NDg2IDBDMS44ODY2MiAwIDEuNzkwNCAwLjA0ODEwOTggMS43MTgyMyAwLjEyMDI3NEwxLjExNjg2IDAuNzIxNjQ5QzEuMDQ0NjkgMC43OTM4MTQgMC45OTY1ODIgMC45MDIwNjIgMC45OTY1ODIgMC45OTgyODFDMC45OTY1ODIgMS4wOTQ1IDEuMDQ0NjkgMS4yMDI3NSAxLjExNjg2IDEuMjc0OTFMNi43MjE2NyA2Ljg3OTcyQzYuNzkzODMgNi45NTE4OSA2LjkwMjA4IDcgNi45OTgzIDdDNy4wOTQ1MiA3IDcuMjAyNzcgNi45NTE4OSA3LjI3NDkzIDYuODc5NzJMMTIuODc5NyAxLjI3NDkxQzEyLjk1MTkgMS4yMDI3NSAxMyAxLjA5NDUgMTMgMC45OTgyODFaIiBmaWxsPSIjOGQ4Zjk1Ii8+Cjwvc3ZnPgo=");background-position:right 12px center;background-repeat:no-repeat}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label{display:block;float:left;width:205px;padding:0 20px 0 0}@media(max-width: 781px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label{float:none;width:100%;padding-bottom:15px}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-label label{color:#1e2327;display:block;font-weight:600}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field{display:block;margin:0 0 0 205px;max-width:800px}@media(max-width: 781px){#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field{margin:0}}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field hr{margin:20px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field .wp-mail-logging-setting-field-row{display:flex;flex-wrap:wrap}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-setting-field .wp-mail-logging-setting-field-row>.wp-mail-smtp-btn{margin-right:10px}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-submit{margin:0;padding:25px 0}#wp-mail-logging .wp-mail-logging-page-content .wp-mail-logging-submit .help-text{margin-left:10px;vertical-align:middle}#wp-mail-logging .wp-mail-logging-page-content .notice-inline{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px;padding:1px 12px}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-success{border-left-color:#38a17e}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-warning{border-left-color:#ffb900}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-error{border-left-color:#d63638}#wp-mail-logging .wp-mail-logging-page-content .notice-inline.notice-info{border-left-color:#00a0d2}#wp-mail-logging .wp-mail-logging-page-content .notice p,#wp-mail-logging .wp-mail-logging-page-content .notice-inline p{margin:.5em 0;padding:2px}#wp-mail-logging .wp-mail-logging-page-content pre{white-space:pre-line}#wp-mail-logging .wp-mail-logging-page-content.active{display:block}#wp-mail-logging .wp-mail-logging-setting-toggle{vertical-align:middle;display:inline-block}#wp-mail-logging .wp-mail-logging-setting-toggle__switch{position:relative;cursor:pointer;background-color:#ccc;border-radius:15px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;display:inline-block;margin:-1px 0 0 0;width:36px;height:20px}#wp-mail-logging .wp-mail-logging-setting-toggle__switch:before{position:absolute;content:"";height:16px;width:16px;left:2px;top:2px;background-color:#fff;border-radius:50%;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-ms-transition:all .2s ease-in-out;transition:all .2s ease-in-out}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]{position:absolute;top:auto;overflow:hidden;clip:rect(1px, 1px, 1px, 1px);width:1px;height:1px;white-space:nowrap}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked+.wp-mail-logging-setting-toggle__switch{background-color:#38a17e}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked+.wp-mail-logging-setting-toggle__switch:before{-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked:hover+.wp-mail-logging-setting-toggle__switch,#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:checked:focus+.wp-mail-logging-setting-toggle__switch{box-shadow:0 0 0 1px #fff,0 0 0 3px #00a32a}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:not(:checked):hover+.wp-mail-logging-setting-toggle__switch,#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:not(:checked):focus+.wp-mail-logging-setting-toggle__switch{background-color:#999;box-shadow:0 0 0 1px #fff,0 0 0 3px #999}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:checked:hover+.wp-mail-logging-setting-toggle__switch,#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle__switch{box-shadow:none}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:not(:checked):hover+.wp-mail-logging-setting-toggle__switch{background-color:#ddd}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled+.wp-mail-logging-setting-toggle__switch{background-color:#ddd;cursor:default}#wp-mail-logging .wp-mail-logging-setting-toggle input[type=checkbox]:disabled:checked+.wp-mail-logging-setting-toggle__switch{background-color:#24ff5c;cursor:default}#wp-mail-logging #email-list table.emails{border-radius:4px}#wp-mail-logging #email-list table.emails th,#wp-mail-logging #email-list table.emails td{vertical-align:middle}#wp-mail-logging #email-list table.emails .column-cb,#wp-mail-logging #email-list table.emails .check-column{padding:0;text-align:center;vertical-align:middle}@media(max-width: 600px){#wp-mail-logging #email-list table.emails .column-cb,#wp-mail-logging #email-list table.emails .check-column{padding:10px 0 0 3px}}#wp-mail-logging #email-list table.emails th#timestamp,#wp-mail-logging #email-list table.emails th#actions,#wp-mail-logging #email-list table.emails td.column-timestamp,#wp-mail-logging #email-list table.emails td.column-actions{width:200px;max-width:200px}#wp-mail-logging #email-list table.emails td.column-actions{text-align:right;vertical-align:middle}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column{align-items:center;display:flex;justify-content:flex-end}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item{align-items:center;display:flex;background-color:#fff;border:1px solid #ccd0d4;border-radius:5px;color:#8c8f94;line-height:0;margin:0 4px;padding:5px}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item img{width:16px;height:16px}#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item:hover,#wp-mail-logging #email-list table.emails td.column-actions .wp-mail-logging-action-column .wp-mail-logging-action-item:focus{border-color:#3c434a;color:#3c434a;cursor:pointer}@media(max-width: 600px){#wp-mail-logging #email-list p.search-box{position:relative;bottom:auto;max-width:600px;width:100%;height:auto;clear:both;margin-bottom:10px}#wp-mail-logging #email-list p.search-box select,#wp-mail-logging #email-list p.search-box input[type=search]{width:100%;max-width:unset;margin:0 0 5px 0}}#wp-mail-logging #email-list p.search-box select{vertical-align:unset}#wp-mail-logging-page-header-temp{margin:0;position:absolute;top:-1px;left:20px;right:0;z-index:99}#wp-mail-logging-page-header{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05);margin-bottom:20px}#wp-mail-logging-page-header .wp-mail-logging-page-title{align-items:center;display:flex;font-size:14px;padding:4px 20px 0}@media(max-width: 600px){#wp-mail-logging-page-header .wp-mail-logging-page-title{display:block;padding-top:20px}}#wp-mail-logging-page-header .wp-mail-logging-page-title .wp-mail-logging-logo-image{align-items:center;justify-content:center}#wp-mail-logging-page-header .wp-mail-logging-page-title .wp-mail-logging-logo-sep{margin:0 15px}@media(max-width: 600px){#wp-mail-logging-page-header .wp-mail-logging-page-title .wp-mail-logging-logo-sep{display:none}}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab{border-bottom:4px solid #fff;box-shadow:none;color:#787c82;display:inline-block;font-weight:600;margin-right:30px;padding:20px 0 18px 0;text-decoration:none}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab.active{border-color:#e77c5c;color:#2c3338}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab.active:hover{border-color:#e77c5c}#wp-mail-logging-page-header .wp-mail-logging-page-title a.tab:hover{border-color:#a7aaad}#wp-mail-logging-page-header .wp-mail-logging-page-title a.action{color:#fff;font-weight:600;margin:14px 0 14px 10px;line-height:28px;min-height:30px;vertical-align:top}@media(max-width: 600px){#wp-mail-logging-page-header .wp-mail-logging-page-title a.action{margin-left:0}}#wp-mail-logging-page-header .wp-mail-logging-page-title .page-title{background-color:#fff;display:inline-block;font-size:23px;margin:0;padding:20px 20px 20px 0}.wp-mail-logging-btn{border:0;border-radius:4px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;text-shadow:none;box-shadow:none;outline:none}.wp-mail-logging-btn:disabled{opacity:.5;cursor:not-allowed}.wp-mail-logging-btn.wp-mail-logging-btn-lg{font-size:16px;font-weight:600;padding:12px 16px}.wp-mail-logging-btn.wp-mail-logging-btn-orange{background-color:#e77c5c;color:#fff}.wp-mail-logging-btn.wp-mail-logging-btn-orange:hover,.wp-mail-logging-btn.wp-mail-logging-btn-orange:active,.wp-mail-logging-btn.wp-mail-logging-btn-orange:focus{background-color:#cb5836;border:0;color:#fff}.wp-mail-logging-btn.wp-mail-logging-btn-orange:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #cb5836}.wp-mail-logging-admin-page .lity{z-index:999999999;padding:20px}.wp-mail-logging-admin-page .lity-close{margin:10px}.wp-mail-logging-admin-page .lity-content{max-width:80vw;max-height:80vh}.wp-mail-logging-admin-page .lity-content img{max-height:80vh !important;max-width:80vw !important}@media(max-width: 782px){.wp-mail-logging-admin-page p.search-box{width:80%}}.wp-mail-logging-admin-page #wpfooter p{color:#50575e;font-weight:400}.wp-mail-logging-admin-page #wpfooter p strong{font-weight:600}.wp-mail-logging-clearfix:after,.wp-mail-logging-clearfix:before{content:" ";display:table}.wp-mail-logging-clearfix:after{clear:both}.wp-mail-logging-product-education{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05);border-radius:6px;color:#50575e;font-size:14px;font-weight:400;margin-top:20px;position:relative}.wp-mail-logging-product-education ul{color:#646970}.wp-mail-logging-product-education-dismiss{position:absolute;right:15px;top:15px}.wp-mail-logging-product-education-dismiss button{background:none;border:none;color:#a7aaad;cursor:pointer;margin:0;padding:0}.wp-mail-logging-product-education-dismiss button:focus,.wp-mail-logging-product-education-dismiss button:hover{color:#d63638}.wp-mail-logging-product-education-dismiss button .dashicons,.wp-mail-logging-product-education-dismiss button .dashicons-before::before{width:16px;height:16px;font-size:16px}.wp-mail-logging-product-education-content{padding:20px}.wp-mail-logging-product-education-content strong{font-weight:600}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-radius:3px;color:#fff;display:inline-block;font-size:14px;padding:7px 10px;text-decoration:none}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn:hover{color:#fff}.wp-mail-logging-product-education-content p{color:#646970;font-size:14px;margin:10px 0}.wp-mail-logging-product-education-content p a{color:#e77c5c}.wp-mail-logging-product-education-content p a:hover,.wp-mail-logging-product-education-content p a:focus{color:#cb5836}.wp-mail-logging-product-education h3{color:#3c434a;font-size:18px;font-weight:600;margin-bottom:10px;margin-top:0}#wp-mail-logging-product-education-email-logs-top{border-radius:7px;margin-bottom:20px;margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content{padding:15px}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content h2{color:#222}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content p{color:#646970;line-height:18px;margin:5px 0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content div p:last-child{margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-width:0;font-size:13px;line-height:16px;margin-top:7px}#wp-mail-logging-product-education-email-logs-bottom{background:#fff url("../images/plane-bg.png") no-repeat right bottom;background-size:401px 119px}@media only screen and (-o-min-device-pixel-ratio: 5/4),only screen and (-webkit-min-device-pixel-ratio: 1.25),only screen and (min-device-pixel-ratio: 1.25),only screen and (min-resolution: 1.25dppx){#wp-mail-logging-product-education-email-logs-bottom{background-image:url("../images/[email protected]")}}@media(max-width: 600px){#wp-mail-logging-product-education-email-logs-bottom{margin-top:0}}@media(min-width: 601px)and (max-width: 782px){#wp-mail-logging-product-education-email-logs-bottom{margin-top:100px;margin-right:20px;position:absolute}}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row{display:flex;flex-wrap:wrap;gap:25px;margin:20px 0}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image{display:flex;flex-direction:column;max-width:370px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a{border:5px solid #dcdcde;border-radius:4px;box-sizing:border-box;margin-bottom:10px;position:relative}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a:hover::after{opacity:1}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a::after{background:rgba(68,68,68,.15) url("../images/zoom.svg") no-repeat center;background-size:50px;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .3s;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image img{display:block;height:auto;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image span{color:#3c434a;font-size:16px;font-weight:600}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul{font-size:13px;line-height:20px;margin-bottom:0;margin-top:10px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li{background:rgba(0,0,0,0) url("../images/arrow-right-plain-icon.svg") no-repeat left 3px;background-size:12px;padding-left:18px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li::before{left:0;position:absolute;top:-1px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn{background:#e77c5c;border-color:#e77c5c;border-radius:4px;border-width:0;font-weight:600;line-height:16px;padding:12px 16px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:hover,#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{background-color:#cb5836;border-color:#cb5836}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #cb5836}body.wp-mail-logging-admin-page div.jconfirm *,body.wp-mail-logging-admin-page div.jconfirm *::before,body.wp-mail-logging-admin-page div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-bg{background-color:rgba(114,119,124,.75);opacity:1}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box{padding:30px;border-radius:6px;box-shadow:0 3px 6px rgba(0,0,0,.15);border-top-width:4px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,.4);top:8px;right:8px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{color:rgba(0,0,0,.8)}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c{margin:0 0 15px 0;padding:0}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin:0 0 30px;-webkit-transition:none;transition:none;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty,body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i:empty{display:none}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{display:block;color:#222;font-weight:500;font-size:24px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content-pane{display:block;margin-bottom:30px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{margin-bottom:0;overflow:inherit}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content{font-size:16px;color:#222;line-height:1.4}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p{margin:0 0 20px;font-size:16px;line-height:1.5}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p:last-of-type{margin:0}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p.large{font-size:18px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content p.small{font-size:14px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content .wp-mail-smtp-debug-event-preview p{font-size:14px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content .wp-mail-smtp-btn{font-weight:600;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px;outline:none;display:inline-block;font-size:14px;line-height:1.4;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-tap-highlight-color:rgba(0,0,0,0);border:0;background-image:none}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-content .wp-mail-smtp-btn.with-loader{padding:12px 12px 7px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons{padding:0}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button{transition:.2s;box-shadow:none;margin:0 10px 0}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button:hover{box-shadow:inset 0 0 0 100px rgba(0,0,0,.1)}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-confirm{color:#fff;outline:none;border:1px solid #e77c5c;background-color:#e77c5c}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-cancel{color:#777;outline:none;background:#f8f8f8;border:1px solid #ccc}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button,body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-default{color:#666}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-hide{display:none}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-block{display:block;text-align:center;width:100%;margin:0 0 10px 0 !important}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box div.jconfirm-buttons button.btn-normal-case{text-transform:none !important}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.jconfirm-type-orange{border-color:#e77c5c}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.jconfirm-type-orange div.jconfirm-buttons button.btn-confirm{background-color:#e77c5c;border-color:#e77c5c}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading{border-top-color:#fff !important;height:160px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading .jconfirm-title-c{display:block !important;position:relative;z-index:4}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading .jconfirm-title-c .jconfirm-icon-c{display:none}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading:before{z-index:2}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.loading:after{content:"";position:absolute;left:50%;top:68%;margin-left:-20px;height:40px;width:40px;border:solid 6px rgba(0,0,0,0);border-bottom-color:#e77c5c;opacity:1;z-index:3}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal{padding:30px 30px 15px;border-top:none}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-title-c{margin:0 0 26px 0;padding:0}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-title-c .jconfirm-icon-c{margin-bottom:20px;color:#c4c4c4 !important}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-title-c .jconfirm-icon-c svg{height:35px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-content-pane{margin-bottom:25px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal div.jconfirm-buttons button.btn-confirm{background-color:#e77c5c;border-color:#e77c5c}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note{text-align:center;margin:45px 0 0}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note p{background-color:#fcf9e8;margin:0 -30px;padding:24px 60px 20px;font-size:15px;color:#4d4d4d;position:relative}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note p:after{content:url(../images/font-awesome/check-circle-solid-green.svg);width:40px;height:40px;background-color:#fff;border-radius:50%;padding:5px 6px;position:absolute;top:-20px;right:50%;margin-right:-18px}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note span{font-weight:600;color:#00a32a}body.wp-mail-logging-admin-page div.jconfirm .jconfirm-box.wp-mail-smtp-upgrade-mailer-education-modal .discount-note a{color:#aaa;display:block;margin-top:12px} -
wp-mail-logging/trunk/assets/css/wp-mail-logging-product-education.css
r2880502 r2929157 105 105 } 106 106 } 107 @media (max-width: 782px) { 107 @media (max-width: 600px) { 108 #wp-mail-logging-product-education-email-logs-bottom { 109 margin-top: 0; 110 } 111 } 112 @media (min-width: 601px) and (max-width: 782px) { 108 113 #wp-mail-logging-product-education-email-logs-bottom { 109 114 margin-top: 100px; … … 187 192 box-shadow: 0 0 0 1px #fff, 0 0 0 3px #cb5836; 188 193 } 189 /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtaO0VBQ0k7O0FBRUE7RUFDSSxhQ3ZDSTs7QUQyQ0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBLGFDM0VRO0VENEVSO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFLQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7RUFDQTtBQUVBOztBQUNBO0VBTEo7SUFVUTs7O0FFMGFQO0VGcGJEO0lBY1E7 SUFDQTtJQUNBOzs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0EsYUNuTEE7O0FEc0xKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBT3BCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQSxhQ2hOUTtFRGlOUjtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJIiwiZmlsZSI6ImFzc2V0cy9jc3Mvd3AtbWFpbC1sb2dnaW5nLXByb2R1Y3QtZWR1Y2F0aW9uLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7XG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbi8vIFByb2R1Y3QgRWR1Y2F0aW9uLlxuLndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICM1MDU3NUU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICB1bCB7XG4gICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgIH1cblxuICAgICYtZGlzbWlzcyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgIHRvcDogMTVweDtcblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAjYTdhYWFkO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgJjpmb2N1cywgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNkNjM2Mzg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5kYXNoaWNvbnMsIC5kYXNoaWNvbnMtYmVmb3JlOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgICYud3AtbWFpbC1sb2dnaW5nLWVkdWNhdGlvbi1idG4ge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRTc3QzVDO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjY2I1ODM2O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgY29sb3I6ICMzQzQzNEE7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1lbWFpbC1sb2dzLXRvcCB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMDtcblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24tY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG5cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgY29sb3I6ICMyMjIyMjI7XG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjQ2OTcwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2IHtcblxuICAgICAgICAgICAgcDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYS53cC1tYWlsLWxvZ2dpbmctZWR1Y2F0aW9uLWJ0biB7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuI3dwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1lbWFpbC1sb2dzLWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZDogI0ZGRkZGRiB1cmwoXCIuLi9pbWFnZXMvcGxhbmUtYmcucG5nXCIpIG5vLXJlcGVhdCByaWdodCBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiA0MDFweCAxMTlweDtcblxuICAgIC8qIEAyeCBJbWFnZXMgKFBpeGVsIFJhdGlvIG9mIDEuMjUrKSAqL1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDUvNCksXG4gICAgICAgICAgIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjI1KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMS4yNWRwcHgpIHtcblxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvcGxhbmUtYmdAMngucG5nXCIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgLndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1pbWFnZXMtcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBnYXA6IDI1cHg7XG4gICAgICAgIG1hcmdpbjogMjBweCAwO1xuXG4gICAgICAgICYtaW1hZ2Uge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM3MHB4O1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDVweCBzb2xpZCAjRENEQ0RFO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSg2OCwgNjgsIDY4LCAuMTUpIHVybCgnLi4vaW1hZ2VzL3pvb20uc3ZnJykgbm8tcmVwZWF0IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzNDNDM0QTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgdXJsKCcuLi9pbWFnZXMvYXJyb3ctcmlnaHQtcGxhaW4taWNvbi5zdmcnKSBuby1yZXBlYXQgbGVmdCAzcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLndwLW1haWwtbG9nZ2luZy1lZHVjYXRpb24tYnRuIHtcbiAgICAgICAgYmFja2dyb3VuZDogI0U3N0M1QztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjRTc3QzVDO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtZWRpdW0td2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuXG4gICAgICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NiNTgzNjtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogI2NiNTgzNjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMXB4ICNmZmYsIDAgMCAwIDNweCAjY2I1ODM2O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiJGJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzLXBob25lJzogMzIwcHgsXG4gICAgJ3Bob25lJzogNjAwcHgsXG4gICAgJ2lwYWQnOiA3NjhweCxcbiAgICAndGFibGV0JzogNzgycHgsXG4gICAgJ2Rlc2t0b3AnOiA5NjBweFxuKTtcblxuJG1lZGl1bS13ZWlnaHQ6IDYwMDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcblxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG5cdEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG5cdEB3YXJuICRtZXNzYWdlO1xuXHQkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuXHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuXHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHQgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG5cdCAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG5cdCAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG5cdCAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG5cdFx0ICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcblx0XHRAcmV0dXJuIGZhbHNlO1xuXHQgIH1cblx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG5cdCAgQHJldHVybiBmYWxzZTtcblx0fVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG5cdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuXHQgIEByZXR1cm4gJG9wZXJhdG9yO1xuXHR9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcblx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuXHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcblx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG5cdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcblx0JHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG5cdCR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuXHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcblx0QHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcblx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfVxuLy8vXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcblx0QHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcblx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuXHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuXHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG5cdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcblx0ICBAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxuXHR9XG5cblx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcblx0ICAkZGlnaXRzOiAxO1xuXHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG5cdCAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG5cdH0gQGVsc2Uge1xuXHQgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcblx0ICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuXHR9XG4gIH1cblxuICBAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xufVxuXG5cbi8vL1xuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxuLy8vXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcbiAgJHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcblxuICBAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XG5cdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3Jcblx0ICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuXHRAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG5cdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcblx0ICAvLyBSZWN1cnNpdmUgY2FsbFxuXHQgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuXHRcdEBjb250ZW50O1xuXHQgIH1cblx0fVxuICB9XG59XG4iXX0=*/194 /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUtaO0VBQ0k7O0FBRUE7RUFDSSxhQ3ZDSTs7QUQyQ0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUVBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBLGFDM0VRO0VENEVSO0VBQ0E7OztBQUlSO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFLQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7OztBQUtaO0VBQ0k7RUFDQTtBQUVBOztBQUNBO0VBTEo7SUFVUTs7O0FFMGFQO0VGcGJEO0lBY1E7OztBRXNhUDtFRnBiRDtJQWtCUTtJQUNBO0lBQ0E7OztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQSxhQ3ZMQTs7QUQwTEo7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFPcEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGFDcE5RO0VEcU5SO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUdKO0VBQ0kiLCJmaWxlIjoiYXNzZXRzL2Nzcy93cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImluY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuLy8gUHJvZHVjdCBFZHVjYXRpb24uXG4ud3AtbWFpbC1sb2dnaW5nLXByb2R1Y3QtZWR1Y2F0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjb2xvcjogIzUwNTc1RTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHVsIHtcbiAgICAgICAgY29sb3I6ICM2NDY5NzA7XG4gICAgfVxuXG4gICAgJi1kaXNtaXNzIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTVweDtcbiAgICAgICAgdG9wOiAxNXB4O1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICNhN2FhYWQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAmOmZvY3VzLCAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2Q2MzYzODtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmRhc2hpY29ucywgLmRhc2hpY29ucy1iZWZvcmU6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAgICAgc3Ryb25nIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgJi53cC1tYWlsLWxvZ2dpbmctZWR1Y2F0aW9uLWJ0biB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICM2NDY5NzA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNFNzdDNUM7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNjYjU4MzY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBjb2xvcjogIzNDNDM0QTtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXdlaWdodDogJG1lZGl1bS13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxufVxuXG4jd3AtbWFpbC1sb2dnaW5nLXByb2R1Y3QtZWR1Y2F0aW9uLWVtYWlsLWxvZ3MtdG9wIHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgLndwLW1haWwtbG9nZ2luZy1wcm9kdWN0LWVkdWNhdGlvbi1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMTVweDtcblxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBjb2xvcjogIzIyMjIyMjtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICM2NDY5NzA7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICAgICAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYge1xuXG4gICAgICAgICAgICBwOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBhLndwLW1haWwtbG9nZ2luZy1lZHVjYXRpb24tYnRuIHtcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jd3AtbWFpbC1sb2dnaW5nLXByb2R1Y3QtZWR1Y2F0aW9uLWVtYWlsLWxvZ3MtYm90dG9tIHtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGIHVybChcIi4uL2ltYWdlcy9wbGFuZS1iZy5wbmdcIikgbm8tcmVwZWF0IHJpZ2h0IGJvdHRvbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDQwMXB4IDExOXB4O1xuXG4gICAgLyogQDJ4IEltYWdlcyAoUGl4ZWwgUmF0aW8gb2YgMS4yNSspICovXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogNS80KSxcbiAgICAgICAgICAgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMjUpLFxuICAgICAgICAgICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMjUpLFxuICAgICAgICAgICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxLjI1ZHBweCkge1xuXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9wbGFuZS1iZ0AyeC5wbmdcIik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYShcIj5waG9uZVwiLCBcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgIC53cC1tYWlsLWxvZ2dpbmctcHJvZHVjdC1lZHVjYXRpb24taW1hZ2VzLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAyNXB4O1xuICAgICAgICBtYXJnaW46IDIwcHggMDtcblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzNzBweDtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiA1cHggc29saWQgI0RDRENERTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXI6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjgsIDY4LCA2OCwgLjE1KSB1cmwoJy4uL2ltYWdlcy96b29tLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNTBweDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICMzQzQzNEE7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgnLi4vaW1hZ2VzL2Fycm93LXJpZ2h0LXBsYWluLWljb24uc3ZnJykgbm8tcmVwZWF0IGxlZnQgM3B4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMThweDtcblxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC53cC1tYWlsLWxvZ2dpbmctZWR1Y2F0aW9uLWJ0biB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNFNzdDNUM7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI0U3N0M1QztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkbWVkaXVtLXdlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjYjU4MzY7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICNjYjU4MzY7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCAjZmZmLCAwIDAgMCAzcHggI2NiNTgzNjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiRicmVha3BvaW50czogKFxuICAgICd4cy1waG9uZSc6IDMyMHB4LFxuICAgICdwaG9uZSc6IDYwMHB4LFxuICAgICdpcGFkJzogNzY4cHgsXG4gICAgJ3RhYmxldCc6IDc4MnB4LFxuICAgICdkZXNrdG9wJzogOTYwcHhcbik7XG5cbiRtZWRpdW0td2VpZ2h0OiA2MDA7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuXHRAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuXHRAd2FybiAkbWVzc2FnZTtcblx0JF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcblx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcblx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0ICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuXHQgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuXHQgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuXHQgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuXHRcdCAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0ICB9XG5cdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHQgIEByZXR1cm4gZmFsc2U7XG5cdH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuXHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcblx0ICBAcmV0dXJuICRvcGVyYXRvcjtcblx0fVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG5cdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcblx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG5cdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuXHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG5cdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuXHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcblx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG5cdEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG5cdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG5cdEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG5cdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcblx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcblx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuXHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG5cdCAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcblx0fVxuXG5cdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG5cdCAgJGRpZ2l0czogMTtcblx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuXHQgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuXHR9IEBlbHNlIHtcblx0ICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG5cdCAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcblx0fVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuXHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG5cdCAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcblx0QGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuXHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG5cdCAgLy8gUmVjdXJzaXZlIGNhbGxcblx0ICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcblx0XHRAY29udGVudDtcblx0ICB9XG5cdH1cbiAgfVxufVxuIl19 */ -
wp-mail-logging/trunk/assets/css/wp-mail-logging-product-education.min.css
r2880502 r2929157 1 .wp-mail-logging-product-education{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05);border-radius:6px;color:#50575e;font-size:14px;font-weight:400;margin-top:20px;position:relative}.wp-mail-logging-product-education ul{color:#646970}.wp-mail-logging-product-education-dismiss{position:absolute;right:15px;top:15px}.wp-mail-logging-product-education-dismiss button{background:none;border:none;color:#a7aaad;cursor:pointer;margin:0;padding:0}.wp-mail-logging-product-education-dismiss button:focus,.wp-mail-logging-product-education-dismiss button:hover{color:#d63638}.wp-mail-logging-product-education-dismiss button .dashicons,.wp-mail-logging-product-education-dismiss button .dashicons-before::before{width:16px;height:16px;font-size:16px}.wp-mail-logging-product-education-content{padding:20px}.wp-mail-logging-product-education-content strong{font-weight:600}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-radius:3px;color:#fff;display:inline-block;font-size:14px;padding:7px 10px;text-decoration:none}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn:hover{color:#fff}.wp-mail-logging-product-education-content p{color:#646970;font-size:14px;margin:10px 0}.wp-mail-logging-product-education-content p a{color:#e77c5c}.wp-mail-logging-product-education-content p a:hover,.wp-mail-logging-product-education-content p a:focus{color:#cb5836}.wp-mail-logging-product-education h3{color:#3c434a;font-size:18px;font-weight:600;margin-bottom:10px;margin-top:0}#wp-mail-logging-product-education-email-logs-top{border-radius:7px;margin-bottom:20px;margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content{padding:15px}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content h2{color:#222}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content p{color:#646970;line-height:18px;margin:5px 0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content div p:last-child{margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-width:0;font-size:13px;line-height:16px;margin-top:7px}#wp-mail-logging-product-education-email-logs-bottom{background:#fff url("../images/plane-bg.png") no-repeat right bottom;background-size:401px 119px}@media only screen and (-o-min-device-pixel-ratio: 5/4),only screen and (-webkit-min-device-pixel-ratio: 1.25),only screen and (min-device-pixel-ratio: 1.25),only screen and (min-resolution: 1.25dppx){#wp-mail-logging-product-education-email-logs-bottom{background-image:url("../images/[email protected]")}}@media(max-width: 782px){#wp-mail-logging-product-education-email-logs-bottom{margin-top:100px;margin-right:20px;position:absolute}}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row{display:flex;flex-wrap:wrap;gap:25px;margin:20px 0}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image{display:flex;flex-direction:column;max-width:370px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a{border:5px solid #dcdcde;border-radius:4px;box-sizing:border-box;margin-bottom:10px;position:relative}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a:hover::after{opacity:1}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a::after{background:rgba(68,68,68,.15) url("../images/zoom.svg") no-repeat center;background-size:50px;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .3s;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image img{display:block;height:auto;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image span{color:#3c434a;font-size:16px;font-weight:600}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul{font-size:13px;line-height:20px;margin-bottom:0;margin-top:10px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li{background:rgba(0,0,0,0) url("../images/arrow-right-plain-icon.svg") no-repeat left 3px;background-size:12px;padding-left:18px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li::before{left:0;position:absolute;top:-1px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn{background:#e77c5c;border-color:#e77c5c;border-radius:4px;border-width:0;font-weight:600;line-height:16px;padding:12px 16px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:hover,#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{background-color:#cb5836;border-color:#cb5836}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #cb5836}1 .wp-mail-logging-product-education{background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.05);border-radius:6px;color:#50575e;font-size:14px;font-weight:400;margin-top:20px;position:relative}.wp-mail-logging-product-education ul{color:#646970}.wp-mail-logging-product-education-dismiss{position:absolute;right:15px;top:15px}.wp-mail-logging-product-education-dismiss button{background:none;border:none;color:#a7aaad;cursor:pointer;margin:0;padding:0}.wp-mail-logging-product-education-dismiss button:focus,.wp-mail-logging-product-education-dismiss button:hover{color:#d63638}.wp-mail-logging-product-education-dismiss button .dashicons,.wp-mail-logging-product-education-dismiss button .dashicons-before::before{width:16px;height:16px;font-size:16px}.wp-mail-logging-product-education-content{padding:20px}.wp-mail-logging-product-education-content strong{font-weight:600}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-radius:3px;color:#fff;display:inline-block;font-size:14px;padding:7px 10px;text-decoration:none}.wp-mail-logging-product-education-content a.wp-mail-logging-education-btn:hover{color:#fff}.wp-mail-logging-product-education-content p{color:#646970;font-size:14px;margin:10px 0}.wp-mail-logging-product-education-content p a{color:#e77c5c}.wp-mail-logging-product-education-content p a:hover,.wp-mail-logging-product-education-content p a:focus{color:#cb5836}.wp-mail-logging-product-education h3{color:#3c434a;font-size:18px;font-weight:600;margin-bottom:10px;margin-top:0}#wp-mail-logging-product-education-email-logs-top{border-radius:7px;margin-bottom:20px;margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content{padding:15px}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content h2{color:#222}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content p{color:#646970;line-height:18px;margin:5px 0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content div p:last-child{margin-top:0}#wp-mail-logging-product-education-email-logs-top .wp-mail-logging-product-education-content a.wp-mail-logging-education-btn{border-width:0;font-size:13px;line-height:16px;margin-top:7px}#wp-mail-logging-product-education-email-logs-bottom{background:#fff url("../images/plane-bg.png") no-repeat right bottom;background-size:401px 119px}@media only screen and (-o-min-device-pixel-ratio: 5/4),only screen and (-webkit-min-device-pixel-ratio: 1.25),only screen and (min-device-pixel-ratio: 1.25),only screen and (min-resolution: 1.25dppx){#wp-mail-logging-product-education-email-logs-bottom{background-image:url("../images/[email protected]")}}@media(max-width: 600px){#wp-mail-logging-product-education-email-logs-bottom{margin-top:0}}@media(min-width: 601px)and (max-width: 782px){#wp-mail-logging-product-education-email-logs-bottom{margin-top:100px;margin-right:20px;position:absolute}}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row{display:flex;flex-wrap:wrap;gap:25px;margin:20px 0}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image{display:flex;flex-direction:column;max-width:370px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a{border:5px solid #dcdcde;border-radius:4px;box-sizing:border-box;margin-bottom:10px;position:relative}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a:hover::after{opacity:1}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image a::after{background:rgba(68,68,68,.15) url("../images/zoom.svg") no-repeat center;background-size:50px;content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:all .3s;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image img{display:block;height:auto;width:100%}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image span{color:#3c434a;font-size:16px;font-weight:600}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul{font-size:13px;line-height:20px;margin-bottom:0;margin-top:10px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li{background:rgba(0,0,0,0) url("../images/arrow-right-plain-icon.svg") no-repeat left 3px;background-size:12px;padding-left:18px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-product-education-images-row-image ul li::before{left:0;position:absolute;top:-1px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn{background:#e77c5c;border-color:#e77c5c;border-radius:4px;border-width:0;font-weight:600;line-height:16px;padding:12px 16px}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:hover,#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{background-color:#cb5836;border-color:#cb5836}#wp-mail-logging-product-education-email-logs-bottom .wp-mail-logging-education-btn:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #cb5836} -
wp-mail-logging/trunk/assets/js/modal.js
r2880502 r2929157 166 166 redirectUrl = utils.updateQueryString( wp_mail_logging_admin_logs.single_log_action_key, wp_mail_logging_admin_logs.single_log_action_nonce, redirectUrl ); 167 167 168 if ( action === 'delete' ) { 169 170 $.confirm( { 171 animateFromElement: false, 172 animationBounce: 1, 173 backgroundDismiss: false, 174 buttons: { 175 confirm: { 176 text: WPMailLoggingJqueryConfirm.yes, 177 btnClass: 'btn-confirm', 178 keys: [ 'enter' ], 179 action: function() { 180 window.location.href = redirectUrl; 181 } 182 }, 183 cancel: { 184 text: WPMailLoggingJqueryConfirm.cancel, 185 btnClass: 'btn-cancel', 186 } 187 }, 188 content: WPMailLoggingJqueryConfirm.delete_log_confirm_msg, 189 draggable: false, 190 escapeKey: true, 191 theme: 'modern', 192 type: 'orange', 193 typeAnimated: false, 194 title: WPMailLoggingJqueryConfirm.headsup, 195 useBootstrap: false, 196 boxWidth: '400px', 197 icon: '"></i><img src="' + WPMailLoggingJqueryConfirm.icon + '" style="width: 40px; height: 40px;" alt="' + WPMailLoggingJqueryConfirm.warning + '"><i class="' 198 } ); 199 return; 200 } 201 168 202 window.location.href = redirectUrl; 169 203 return; -
wp-mail-logging/trunk/assets/js/modal.min.js
r2880502 r2929157 1 jQuery(function( l){var i={};i.modal={self:this,id:void 0,selectedFormat:void 0,init:function(){var o=l(".wp-mail-logging-active-format"),a=wpml_modal_ajax.default_format;0<o.length&&o.data("format")&&(a=o.data("format")),i.modal.setSelectedFormat(a),i.modal.bindActions()},bindActions:function(){l(document).on("click",".wp-mail-logging-modal-format",function(o){o.preventDefault();o=l(this).data("format");o&&i.modal.setSelectedFormat(o)}),l(document).on("click",".wp-mail-logging-html-error-notice > .notice-dismiss",function(o){o.preventDefault(),($noticeElem=l(this).parent(".wp-mail-logging-html-error-notice")).length<=0||$noticeElem.fadeTo(100,0,function(){$noticeElem.slideUp(100,function(){$noticeElem.remove()})})})},clear:function(){l("#wp-mail-logging-modal-content-body-content").html("")},set:function(o){l(".wp-mail-logging-modal-format").removeClass("wp-mail-logging-active-format"),l("#wp-mail-logging-modal-format-"+i.modal.selectedFormat).addClass("wp-mail-logging-active-format"),l("#wp-mail-logging-modal-content-body-content").html(o)},show:function(){l("#wp-mail-logging-product-education-email-logs-bottom").css("z-index",-1),l("#wp-mail-logging-modal-wrap").fadeIn()},hide:function(){l("#wp-mail-logging-modal-wrap").fadeOut(400,function(){l("#wp-mail-logging-product-education-email-logs-bottom").css("z-index","")})},setSelectedFormat:function(o){i.modal.selectedFormat=o,jQuery.ajax({type:"POST",url:ajaxurl,data:{action:wpml_modal_ajax.action,_ajax_nonce:wpml_modal_ajax.nonce,id:i.modal.id,format:i.modal.selectedFormat},success:i.modal.ajaxResponse,error:i.modal.ajaxError})},ajaxResponse:function(o,a,l){o.success?i.modal.set(o.data):i.modal.set("Error ("+o.data.code+"): '"+o.data.message+"'")},ajaxError:function(o,a,l){i.modal.set(l)}};var n=function(o,a,l){var i,n=new RegExp("([?&])"+o+"=.*?(&|#|$)(.*)","gi");return n.test(l)?null!=a?l.replace(n,"$1"+o+"="+a+"$2$3"):(l=(i=l.split("#"))[0].replace(n,"$1$3").replace(/(&|\?)$/,""),void 0!==i[1]&&null!==i[1]&&(l+="#"+i[1]),l):(null!=a&&(n=-1!==l.indexOf("?")?"&":"?",l=(i=l.split("#"))[0]+n+o+"="+a,void 0!==i[1])&&null!==i[1]&&(l+="#"+i[1]),l)};l(".wp-mail-logging-action-item").click(function(o){var a;o.preventDefault(),"undefined"==typeof wp_mail_logging_admin_logs||void 0===wp_mail_logging_admin_logs.single_log_action_nonce||void 0===wp_mail_logging_admin_logs.single_log_action_key||void 0===wp_mail_logging_admin_logs.admin_email_logs_url||(a=(o=l(this)).parent(".wp-mail-logging-action-column")).length<=0||(a=a.data("mail-id"),o=o.data("action"),a&&o&&("resend"===o||"delete"===o?(o=n("action",o,wp_mail_logging_admin_logs.admin_email_logs_url),o=n("email_log_id",a,o),o=n(wp_mail_logging_admin_logs.single_log_action_key,wp_mail_logging_admin_logs.single_log_action_nonce,o),window.location.href=o):(i.modal.id=a,i.modal.init(),i.modal.show())))}),l(".wp-mail-logging-modal-close").click(function(o){o.preventDefault(),i.modal.hide()}),l(document).keyup(function(o){27===o.keyCode&&i.modal.hide()})});1 jQuery(function(n){var e={};e.modal={self:this,id:void 0,selectedFormat:void 0,init:function(){var o=n(".wp-mail-logging-active-format"),i=wpml_modal_ajax.default_format;0<o.length&&o.data("format")&&(i=o.data("format")),e.modal.setSelectedFormat(i),e.modal.bindActions()},bindActions:function(){n(document).on("click",".wp-mail-logging-modal-format",function(o){o.preventDefault();o=n(this).data("format");o&&e.modal.setSelectedFormat(o)}),n(document).on("click",".wp-mail-logging-html-error-notice > .notice-dismiss",function(o){o.preventDefault(),($noticeElem=n(this).parent(".wp-mail-logging-html-error-notice")).length<=0||$noticeElem.fadeTo(100,0,function(){$noticeElem.slideUp(100,function(){$noticeElem.remove()})})})},clear:function(){n("#wp-mail-logging-modal-content-body-content").html("")},set:function(o){n(".wp-mail-logging-modal-format").removeClass("wp-mail-logging-active-format"),n("#wp-mail-logging-modal-format-"+e.modal.selectedFormat).addClass("wp-mail-logging-active-format"),n("#wp-mail-logging-modal-content-body-content").html(o)},show:function(){n("#wp-mail-logging-product-education-email-logs-bottom").css("z-index",-1),n("#wp-mail-logging-modal-wrap").fadeIn()},hide:function(){n("#wp-mail-logging-modal-wrap").fadeOut(400,function(){n("#wp-mail-logging-product-education-email-logs-bottom").css("z-index","")})},setSelectedFormat:function(o){e.modal.selectedFormat=o,jQuery.ajax({type:"POST",url:ajaxurl,data:{action:wpml_modal_ajax.action,_ajax_nonce:wpml_modal_ajax.nonce,id:e.modal.id,format:e.modal.selectedFormat},success:e.modal.ajaxResponse,error:e.modal.ajaxError})},ajaxResponse:function(o,i,a){o.success?e.modal.set(o.data):e.modal.set("Error ("+o.data.code+"): '"+o.data.message+"'")},ajaxError:function(o,i,a){e.modal.set(a)}};var l=function(o,i,a){var n,e=new RegExp("([?&])"+o+"=.*?(&|#|$)(.*)","gi");return e.test(a)?null!=i?a.replace(e,"$1"+o+"="+i+"$2$3"):(a=(n=a.split("#"))[0].replace(e,"$1$3").replace(/(&|\?)$/,""),void 0!==n[1]&&null!==n[1]&&(a+="#"+n[1]),a):(null!=i&&(e=-1!==a.indexOf("?")?"&":"?",a=(n=a.split("#"))[0]+e+o+"="+i,void 0!==n[1])&&null!==n[1]&&(a+="#"+n[1]),a)};n(".wp-mail-logging-action-item").click(function(o){if(o.preventDefault(),"undefined"!=typeof wp_mail_logging_admin_logs&&void 0!==wp_mail_logging_admin_logs.single_log_action_nonce&&void 0!==wp_mail_logging_admin_logs.single_log_action_key&&void 0!==wp_mail_logging_admin_logs.admin_email_logs_url){var o=n(this),i=o.parent(".wp-mail-logging-action-column");if(!(i.length<=0)){var a,i=i.data("mail-id"),o=o.data("action");if(i&&o){if("resend"===o||"delete"===o)return a=l("action",o,wp_mail_logging_admin_logs.admin_email_logs_url),a=l("email_log_id",i,a),a=l(wp_mail_logging_admin_logs.single_log_action_key,wp_mail_logging_admin_logs.single_log_action_nonce,a),"delete"===o?void n.confirm({animateFromElement:!1,animationBounce:1,backgroundDismiss:!1,buttons:{confirm:{text:WPMailLoggingJqueryConfirm.yes,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location.href=a}},cancel:{text:WPMailLoggingJqueryConfirm.cancel,btnClass:"btn-cancel"}},content:WPMailLoggingJqueryConfirm.delete_log_confirm_msg,draggable:!1,escapeKey:!0,theme:"modern",type:"orange",typeAnimated:!1,title:WPMailLoggingJqueryConfirm.headsup,useBootstrap:!1,boxWidth:"400px",icon:'"></i><img src="'+WPMailLoggingJqueryConfirm.icon+'" style="width: 40px; height: 40px;" alt="'+WPMailLoggingJqueryConfirm.warning+'"><i class="'}):void(window.location.href=a);e.modal.id=i,e.modal.init(),e.modal.show()}}}}),n(".wp-mail-logging-modal-close").click(function(o){o.preventDefault(),e.modal.hide()}),n(document).keyup(function(o){27===o.keyCode&&e.modal.hide()})}); -
wp-mail-logging/trunk/assets/js/wp-mail-logging-admin-logs.js
r2880502 r2929157 40 40 41 41 $( document ).on( 'click', '.wp-mail-logging-product-education-dismiss', app.productEducationDismiss ); 42 $( document ).on( 'click', '#wp-mail-logging-db-upgrade-admin-notice .notice-dismiss', app.dbUpgradeAdminNoticeDismiss ); 42 43 }, 43 44 … … 89 90 } 90 91 ); 92 }, 93 94 /** 95 * Event triggered when DB upgrade admin notice is dismissed. 96 * 97 * @since 1.12.0 98 * 99 * @param {Event} e Event object. 100 */ 101 dbUpgradeAdminNoticeDismiss: function( e ) { 102 103 var $notice = $( this ).parents( '#wp-mail-logging-db-upgrade-admin-notice' ).first(); 104 105 if ( $notice.length <= 0 || ! $notice.data( 'nonce' ) ) { 106 return; 107 } 108 109 $.post( 110 ajaxurl, 111 { 112 action: 'wp_mail_logging_dismiss_db_upgrade_notice', 113 nonce: $notice.data( 'nonce' ), 114 type: 'admin-notice' 115 } 116 ) 91 117 } 92 118 }; -
wp-mail-logging/trunk/assets/js/wp-mail-logging-admin-logs.min.js
r2880502 r2929157 1 "use strict";var WPMailLogging=window.WPMailLogging||{};WPMailLogging.Admin=WPMailLogging.Admin||{},WPMailLogging.Admin.Logs=WPMailLogging.Admin.Logs||function(i, t){var n={init:function(){t(n.ready)},ready:function(){t("#screen-meta-links, #screen-meta").prependTo("#wp-mail-logging-page-header-temp").show(),n.bindActions()},bindActions:function(){t(i).on("click",".wp-mail-logging-product-education-dismiss",n.productEducationDismiss)},productEducationDismiss:function(i){i.preventDefault();var n,o=t(this).parents(".wp-mail-logging-product-education").first();o.length<=0||(i=o.data("productEducationId"),n=o.data("nonce"),i&&n&&t.post(wp_mail_logging_admin_logs.ajaxurl,{action:"wp_mail_logging_product_education_dismiss",nonce:n,productEducationID:i},function(i){i.success?o.fadeTo(100,0,function(){o.slideUp(100,function(){o.remove()})}):alert(i.data)}))}};return n}(document,(window,jQuery)),WPMailLogging.Admin.Logs.init();1 "use strict";var WPMailLogging=window.WPMailLogging||{};WPMailLogging.Admin=WPMailLogging.Admin||{},WPMailLogging.Admin.Logs=WPMailLogging.Admin.Logs||function(i,a){var n={init:function(){a(n.ready)},ready:function(){a("#screen-meta-links, #screen-meta").prependTo("#wp-mail-logging-page-header-temp").show(),n.bindActions()},bindActions:function(){a(i).on("click",".wp-mail-logging-product-education-dismiss",n.productEducationDismiss),a(i).on("click","#wp-mail-logging-db-upgrade-admin-notice .notice-dismiss",n.dbUpgradeAdminNoticeDismiss)},productEducationDismiss:function(i){i.preventDefault();var n,o=a(this).parents(".wp-mail-logging-product-education").first();o.length<=0||(i=o.data("productEducationId"),n=o.data("nonce"),i&&n&&a.post(wp_mail_logging_admin_logs.ajaxurl,{action:"wp_mail_logging_product_education_dismiss",nonce:n,productEducationID:i},function(i){i.success?o.fadeTo(100,0,function(){o.slideUp(100,function(){o.remove()})}):alert(i.data)}))},dbUpgradeAdminNoticeDismiss:function(i){var n=a(this).parents("#wp-mail-logging-db-upgrade-admin-notice").first();n.length<=0||!n.data("nonce")||a.post(ajaxurl,{action:"wp_mail_logging_dismiss_db_upgrade_notice",nonce:n.data("nonce"),type:"admin-notice"})}};return n}(document,(window,jQuery)),WPMailLogging.Admin.Logs.init(); -
wp-mail-logging/trunk/assets/js/wp-mail-logging-admin-settings.js
r2880502 r2929157 31 31 * 32 32 * @since 1.11.0 33 * @since 1.12.0 Add support for dismissing the database upgrade notice. 33 34 */ 34 35 bindActions: function() { … … 49 50 } 50 51 } ); 52 53 $( document ).on( 'click', '#wp-mail-logging-setting-db-upgrade .notice-dismiss', function ( e ) { 54 55 e.preventDefault(); 56 57 var $notice = $( this ).closest( '#wp-mail-logging-setting-db-upgrade' ); 58 59 if ( $notice.length <= 0 ) { 60 return; 61 } 62 63 $notice.fadeTo( 100, 0, function() { 64 $notice.slideUp( 100, function() { 65 $notice.remove(); 66 } ); 67 } ); 68 69 // Get nonce. 70 var $nonce = $notice.data( 'dismiss' ); 71 72 if ( ! $nonce ) { 73 return; 74 } 75 76 $.post( 77 ajaxurl, 78 { 79 'action': 'wp_mail_logging_dismiss_db_upgrade_notice', 80 'nonce': $nonce 81 } 82 ) 83 } ); 84 85 $( document ).on( 'click', '#wp-mail-logging-btn-db-upgrade', function( e ) { 86 87 e.preventDefault(); 88 89 $.confirm( { 90 animateFromElement: false, 91 animationBounce: 1, 92 backgroundDismiss: false, 93 buttons: { 94 confirm: { 95 text: WPMailLoggingJqueryConfirm.yes, 96 btnClass: 'btn-confirm', 97 keys: [ 'enter' ], 98 action: function() { 99 window.location = WPMailLoggingJqueryConfirm.db_upgrade_url; 100 } 101 }, 102 cancel: { 103 text: WPMailLoggingJqueryConfirm.cancel, 104 btnClass: 'btn-cancel', 105 } 106 }, 107 content: WPMailLoggingJqueryConfirm.db_upgrade_message, 108 draggable: false, 109 escapeKey: true, 110 theme: 'modern', 111 type: 'orange', 112 typeAnimated: false, 113 title: WPMailLoggingJqueryConfirm.headsup, 114 useBootstrap: false, 115 boxWidth: '400px', 116 icon: '"></i><img src="' + WPMailLoggingJqueryConfirm.icon + '" style="width: 40px; height: 40px;" alt="' + WPMailLoggingJqueryConfirm.warning + '"><i class="' 117 } ); 118 } ); 51 119 } 52 120 }; -
wp-mail-logging/trunk/assets/js/wp-mail-logging-admin-settings.min.js
r2880502 r2929157 1 "use strict";var WPMailLogging=window.WPMailLogging||{};WPMailLogging.Admin=WPMailLogging.Admin||{},WPMailLogging.Admin.Settings=WPMailLogging.Admin.Settings||function(i, t){var n={init:function(){t(n.ready)},ready:function(){n.bindActions()},bindActions:function(){t(i).on("click",".wp-mail-logging-settings-toggle",function(){var i=t(this),n=i.data("toggles-id"),g=t("#wp-mail-logging-setting-tab-row-"+n);!n||g.length<=0||(i.is(":checked")?g.show():g.hide())})}};return n}(document,(window,jQuery)),WPMailLogging.Admin.Settings.init();1 "use strict";var WPMailLogging=window.WPMailLogging||{};WPMailLogging.Admin=WPMailLogging.Admin||{},WPMailLogging.Admin.Settings=WPMailLogging.Admin.Settings||function(i,n,t){var g={init:function(){t(g.ready)},ready:function(){g.bindActions()},bindActions:function(){t(i).on("click",".wp-mail-logging-settings-toggle",function(){var i=t(this),n=i.data("toggles-id"),g=t("#wp-mail-logging-setting-tab-row-"+n);!n||g.length<=0||(i.is(":checked")?g.show():g.hide())}),t(i).on("click","#wp-mail-logging-setting-db-upgrade .notice-dismiss",function(i){i.preventDefault();var n=t(this).closest("#wp-mail-logging-setting-db-upgrade");n.length<=0||(n.fadeTo(100,0,function(){n.slideUp(100,function(){n.remove()})}),(i=n.data("dismiss"))&&t.post(ajaxurl,{action:"wp_mail_logging_dismiss_db_upgrade_notice",nonce:i}))}),t(i).on("click","#wp-mail-logging-btn-db-upgrade",function(i){i.preventDefault(),t.confirm({animateFromElement:!1,animationBounce:1,backgroundDismiss:!1,buttons:{confirm:{text:WPMailLoggingJqueryConfirm.yes,btnClass:"btn-confirm",keys:["enter"],action:function(){n.location=WPMailLoggingJqueryConfirm.db_upgrade_url}},cancel:{text:WPMailLoggingJqueryConfirm.cancel,btnClass:"btn-cancel"}},content:WPMailLoggingJqueryConfirm.db_upgrade_message,draggable:!1,escapeKey:!0,theme:"modern",type:"orange",typeAnimated:!1,title:WPMailLoggingJqueryConfirm.headsup,useBootstrap:!1,boxWidth:"400px",icon:'"></i><img src="'+WPMailLoggingJqueryConfirm.icon+'" style="width: 40px; height: 40px;" alt="'+WPMailLoggingJqueryConfirm.warning+'"><i class="'})})}};return g}(document,window,jQuery),WPMailLogging.Admin.Settings.init(); -
wp-mail-logging/trunk/assets/js/wp-mail-logging-admin-smtp.js
r2880502 r2929157 74 74 // Step 'Setup' button click. 75 75 el.$stepSetup.on( 'click', 'button', app.gotoURL ); 76 77 // DB upgrade admin notice dismiss. 78 $( document ).on( 'click', '#wp-mail-logging-db-upgrade-admin-notice .notice-dismiss', app.dbUpgradeAdminNoticeDismiss ); 76 79 }, 77 80 … … 242 245 window.location.href = $btn.attr( 'data-url' ); 243 246 }, 247 248 /** 249 * Event triggered when DB upgrade admin notice is dismissed. 250 * 251 * @since 1.12.0 252 * 253 * @param {Event} e Event object. 254 */ 255 dbUpgradeAdminNoticeDismiss: function( e ) { 256 257 var $notice = $( this ).parents( '#wp-mail-logging-db-upgrade-admin-notice' ).first(); 258 259 if ( $notice.length <= 0 || ! $notice.data( 'nonce' ) ) { 260 return; 261 } 262 263 $.post( 264 ajaxurl, 265 { 266 action: 'wp_mail_logging_dismiss_db_upgrade_notice', 267 nonce: $notice.data( 'nonce' ), 268 type: 'admin-notice' 269 } 270 ) 271 } 244 272 }; 245 273 -
wp-mail-logging/trunk/assets/js/wp-mail-logging-admin-smtp.min.js
r2880502 r2929157 1 "use strict";var WPMailLogging=window.WPMailLogging||{};WPMailLogging.Admin=WPMailLogging.Admin||{},WPMailLogging.Admin.SMTP=WPMailLogging.Admin.SMTP||function( s,l){var e={},p={init:function(){l(p.ready)},ready:function(){p.initVars(),p.bindActions()},initVars:function(){e={$stepInstall:l("section.step-install"),$stepInstallNum:l("section.step-install .num img"),$stepSetup:l("section.step-setup"),$stepSetupNum:l("section.step-setup .num img")}},bindActions:function(){e.$stepInstall.on("click","button",p.stepInstallClick),e.$stepSetup.on("click","button",p.gotoURL)},stepInstallClick:function(){var a=l(this),n=a.attr("data-action"),t=a.attr("data-plugin"),i="";if(!a.hasClass("disabled")){switch(n){case"activate":i="wp_mail_logging_activate_smtp",a.text(wp_mail_logging_admin_smtp.activating);break;case"install":i="wp_mail_logging_install_smtp",a.text(wp_mail_logging_admin_smtp.installing);break;case"goto-url":return void(s.location.href=a.attr("data-url"));default:return}a.addClass("disabled"),p.showSpinner(e.$stepInstallNum);t={action:i,nonce:wp_mail_logging_admin_smtp.nonce,plugin:t};l.post(wp_mail_logging_admin_smtp.ajaxurl,t).done(function(t){p.stepInstallDone(t,a,n)}).always(function(){p.hideSpinner(e.$stepInstallNum)})}},showSpinner:function(t){t.siblings(".loader").removeClass("hidden")},stepInstallDone:function(t,a,n){var i;("install"===n?t.success&&t.data.is_activated:t.success)?(e.$stepInstallNum.attr("src",e.$stepInstallNum.attr("src").replace("step-1.","step-complete.")),a.addClass("grey").removeClass("button-primary").text(wp_mail_logging_admin_smtp.activated),p.stepInstallPluginStatus()):(n=(t="install"===n&&t.success&&!t.data.is_activated||"activate"===n)?wp_mail_logging_admin_smtp.manual_activate_url:wp_mail_logging_admin_smtp.manual_install_url,i=t?wp_mail_logging_admin_smtp.error_could_not_activate:wp_mail_logging_admin_smtp.error_could_not_install,t=t?wp_mail_logging_admin_smtp.plugins_page:wp_mail_logging_admin_smtp.download_now,a.removeClass("grey disabled").text(t).attr("data-action","goto-url").attr("data-url",n),a.after('<p class="error">'+i+"</p>"))},stepInstallPluginStatus:function(){l.post(wp_mail_logging_admin_smtp.ajaxurl,{action:"wp_mail_logging_smtp_page_check_plugin_status",nonce:wp_mail_logging_admin_smtp.nonce}).done(p.stepInstallPluginStatusDone)},stepInstallPluginStatusDone:function(t){t.success&&(e.$stepSetup.removeClass("grey"),e.$stepSetupBtn=e.$stepSetup.find("button"),e.$stepSetupBtn.removeClass("grey disabled").addClass("button-primary"),0<t.data.setup_status?(e.$stepSetupNum.attr("src",e.$stepSetupNum.attr("src").replace("step-2.svg","step-complete.svg")),e.$stepSetupBtn.attr("data-url",wp_mail_logging_admin_smtp.smtp_settings_url).text(wp_mail_logging_admin_smtp.smtp_settings)):e.$stepSetupBtn.attr("data-url",wp_mail_logging_admin_smtp.smtp_wizard_url).text(wp_mail_logging_admin_smtp.smtp_wizard))},hideSpinner:function(t){t.siblings(".loader").addClass("hidden")},gotoURL:function(){var t=l(this);t.hasClass("disabled")||(s.location.href=t.attr("data-url"))}};return p}((document,window),jQuery),WPMailLogging.Admin.SMTP.init();1 "use strict";var WPMailLogging=window.WPMailLogging||{};WPMailLogging.Admin=WPMailLogging.Admin||{},WPMailLogging.Admin.SMTP=WPMailLogging.Admin.SMTP||function(t,s,l){var e={},g={init:function(){l(g.ready)},ready:function(){g.initVars(),g.bindActions()},initVars:function(){e={$stepInstall:l("section.step-install"),$stepInstallNum:l("section.step-install .num img"),$stepSetup:l("section.step-setup"),$stepSetupNum:l("section.step-setup .num img")}},bindActions:function(){e.$stepInstall.on("click","button",g.stepInstallClick),e.$stepSetup.on("click","button",g.gotoURL),l(t).on("click","#wp-mail-logging-db-upgrade-admin-notice .notice-dismiss",g.dbUpgradeAdminNoticeDismiss)},stepInstallClick:function(){var a=l(this),i=a.attr("data-action"),t=a.attr("data-plugin"),n="";if(!a.hasClass("disabled")){switch(i){case"activate":n="wp_mail_logging_activate_smtp",a.text(wp_mail_logging_admin_smtp.activating);break;case"install":n="wp_mail_logging_install_smtp",a.text(wp_mail_logging_admin_smtp.installing);break;case"goto-url":return void(s.location.href=a.attr("data-url"));default:return}a.addClass("disabled"),g.showSpinner(e.$stepInstallNum);t={action:n,nonce:wp_mail_logging_admin_smtp.nonce,plugin:t};l.post(wp_mail_logging_admin_smtp.ajaxurl,t).done(function(t){g.stepInstallDone(t,a,i)}).always(function(){g.hideSpinner(e.$stepInstallNum)})}},showSpinner:function(t){t.siblings(".loader").removeClass("hidden")},stepInstallDone:function(t,a,i){var n;("install"===i?t.success&&t.data.is_activated:t.success)?(e.$stepInstallNum.attr("src",e.$stepInstallNum.attr("src").replace("step-1.","step-complete.")),a.addClass("grey").removeClass("button-primary").text(wp_mail_logging_admin_smtp.activated),g.stepInstallPluginStatus()):(i=(t="install"===i&&t.success&&!t.data.is_activated||"activate"===i)?wp_mail_logging_admin_smtp.manual_activate_url:wp_mail_logging_admin_smtp.manual_install_url,n=t?wp_mail_logging_admin_smtp.error_could_not_activate:wp_mail_logging_admin_smtp.error_could_not_install,t=t?wp_mail_logging_admin_smtp.plugins_page:wp_mail_logging_admin_smtp.download_now,a.removeClass("grey disabled").text(t).attr("data-action","goto-url").attr("data-url",i),a.after('<p class="error">'+n+"</p>"))},stepInstallPluginStatus:function(){l.post(wp_mail_logging_admin_smtp.ajaxurl,{action:"wp_mail_logging_smtp_page_check_plugin_status",nonce:wp_mail_logging_admin_smtp.nonce}).done(g.stepInstallPluginStatusDone)},stepInstallPluginStatusDone:function(t){t.success&&(e.$stepSetup.removeClass("grey"),e.$stepSetupBtn=e.$stepSetup.find("button"),e.$stepSetupBtn.removeClass("grey disabled").addClass("button-primary"),0<t.data.setup_status?(e.$stepSetupNum.attr("src",e.$stepSetupNum.attr("src").replace("step-2.svg","step-complete.svg")),e.$stepSetupBtn.attr("data-url",wp_mail_logging_admin_smtp.smtp_settings_url).text(wp_mail_logging_admin_smtp.smtp_settings)):e.$stepSetupBtn.attr("data-url",wp_mail_logging_admin_smtp.smtp_wizard_url).text(wp_mail_logging_admin_smtp.smtp_wizard))},hideSpinner:function(t){t.siblings(".loader").addClass("hidden")},gotoURL:function(){var t=l(this);t.hasClass("disabled")||(s.location.href=t.attr("data-url"))},dbUpgradeAdminNoticeDismiss:function(t){var a=l(this).parents("#wp-mail-logging-db-upgrade-admin-notice").first();a.length<=0||!a.data("nonce")||l.post(ajaxurl,{action:"wp_mail_logging_dismiss_db_upgrade_notice",nonce:a.data("nonce"),type:"admin-notice"})}};return g}(document,window,jQuery),WPMailLogging.Admin.SMTP.init(); -
wp-mail-logging/trunk/assets/languages/wp-mail-logging.pot
r2880502 r2929157 1 1 msgid "" 2 2 msgstr "" 3 "Project-Id-Version: WP Mail Logging 1.1 1.0\n"3 "Project-Id-Version: WP Mail Logging 1.12.0\n" 4 4 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-mail-logging\n" 5 5 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 8 8 "Content-Type: text/plain; charset=UTF-8\n" 9 9 "Content-Transfer-Encoding: 8bit\n" 10 "POT-Creation-Date: 2023-0 3-15T04:08:54+00:00\n"10 "POT-Creation-Date: 2023-06-21T10:18:59+00:00\n" 11 11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 12 "X-Generator: WP-CLI 2.6.0\n" … … 36 36 msgstr "" 37 37 38 #: src/inc/Admin/EmailLogsTab.php:2 4238 #: src/inc/Admin/EmailLogsTab.php:270 39 39 msgid "To solve email delivery issues, install WP Mail SMTP (free) - trusted by over 3,000,00 sites!" 40 40 msgstr "" 41 41 42 #: src/inc/Admin/EmailLogsTab.php:2 4342 #: src/inc/Admin/EmailLogsTab.php:271 43 43 msgid "Use the one-click install and setup wizard to fix your emails in minutes." 44 44 msgstr "" 45 45 46 #: src/inc/Admin/EmailLogsTab.php:2 4846 #: src/inc/Admin/EmailLogsTab.php:276 47 47 msgid "Heads up! WP Mail Logging has detected a problem sending emails." 48 48 msgstr "" 49 49 50 #: src/inc/Admin/EmailLogsTab.php:2 5250 #: src/inc/Admin/EmailLogsTab.php:280 51 51 #: src/inc/Admin/SMTPTab.php:532 52 52 msgid "Install WP Mail SMTP" 53 53 msgstr "" 54 54 55 #: src/inc/Admin/EmailLogsTab.php:3 0556 #: src/inc/Admin/EmailLogsTab.php:4 0555 #: src/inc/Admin/EmailLogsTab.php:333 56 #: src/inc/Admin/EmailLogsTab.php:433 57 57 msgid "Email Logs" 58 58 msgstr "" 59 59 60 #: src/inc/Admin/EmailLogsTab.php:3 0760 #: src/inc/Admin/EmailLogsTab.php:335 61 61 msgid "See delivery status" 62 62 msgstr "" 63 63 64 #: src/inc/Admin/EmailLogsTab.php:3 0864 #: src/inc/Admin/EmailLogsTab.php:336 65 65 msgid "Resend emails" 66 66 msgstr "" 67 67 68 #: src/inc/Admin/EmailLogsTab.php:3 0968 #: src/inc/Admin/EmailLogsTab.php:337 69 69 msgid "View original email content" 70 70 msgstr "" 71 71 72 #: src/inc/Admin/EmailLogsTab.php:3 1472 #: src/inc/Admin/EmailLogsTab.php:342 73 73 msgid "Individual Log" 74 74 msgstr "" 75 75 76 #: src/inc/Admin/EmailLogsTab.php:3 1676 #: src/inc/Admin/EmailLogsTab.php:344 77 77 msgid "Review technical details" 78 78 msgstr "" 79 79 80 #: src/inc/Admin/EmailLogsTab.php:3 1780 #: src/inc/Admin/EmailLogsTab.php:345 81 81 msgid "Track open and click data" 82 82 msgstr "" 83 83 84 #: src/inc/Admin/EmailLogsTab.php:3 1884 #: src/inc/Admin/EmailLogsTab.php:346 85 85 msgid "Download sent attachments" 86 86 msgstr "" 87 87 88 #: src/inc/Admin/EmailLogsTab.php:3 2388 #: src/inc/Admin/EmailLogsTab.php:351 89 89 msgid "Email Reports" 90 90 msgstr "" 91 91 92 #: src/inc/Admin/EmailLogsTab.php:3 2592 #: src/inc/Admin/EmailLogsTab.php:353 93 93 msgid "Generate deliverability charts" 94 94 msgstr "" 95 95 96 #: src/inc/Admin/EmailLogsTab.php:3 2696 #: src/inc/Admin/EmailLogsTab.php:354 97 97 msgid "Review open & click statistics" 98 98 msgstr "" 99 99 100 #: src/inc/Admin/EmailLogsTab.php:3 27100 #: src/inc/Admin/EmailLogsTab.php:355 101 101 msgid "Get weekly email summary" 102 102 msgstr "" 103 103 104 104 #. translators: 1: URL to WP Mail SMTP pricing page 2: URL to WP Forms pricing page 105 #: src/inc/Admin/EmailLogsTab.php:3 39105 #: src/inc/Admin/EmailLogsTab.php:367 106 106 msgid "Want more from your email logs? <strong><a target=\"_blank\" href=\"%1$s\">WP Mail SMTP Pro</a></strong> offers advanced email logging, failed email alerts, backup connections, email reports, email tracking, and much more!" 107 107 msgstr "" 108 108 109 #: src/inc/Admin/EmailLogsTab.php:3 53109 #: src/inc/Admin/EmailLogsTab.php:381 110 110 msgid "We know you'll love the powerful features in WP Mail SMTP. It's used by over 3,000,000 websites." 111 111 msgstr "" 112 112 113 #: src/inc/Admin/EmailLogsTab.php: 385113 #: src/inc/Admin/EmailLogsTab.php:413 114 114 msgid "Take Your Email Logs to the Next level" 115 115 msgstr "" 116 116 117 #: src/inc/Admin/EmailLogsTab.php: 389117 #: src/inc/Admin/EmailLogsTab.php:417 118 118 msgid "Get WP Mail SMTP Pro" 119 119 msgstr "" 120 120 121 #: src/inc/Admin/EmailLogsTab.php:453 122 #: src/Renderer/Format/BaseRenderer.php:44 121 #: src/inc/Admin/EmailLogsTab.php:481 122 #: src/Renderer/Format/BaseRenderer.php:46 123 #: src/WPML_Email_Log_List.php:511 123 124 msgid "Message" 124 125 msgstr "" 125 126 126 #: src/inc/Admin/EmailLogsTab.php: 498127 #: src/inc/Admin/EmailLogsTab.php:526 127 128 msgid "Search" 129 msgstr "" 130 131 #: src/inc/Admin/EmailLogsTab.php:560 132 msgid "Are you sure you want to delete this log?" 128 133 msgstr "" 129 134 … … 394 399 msgstr "" 395 400 396 #: src/Model/Email_Log_Collection.php:414 401 #: src/inc/Migration/Migration.php:327 402 msgid "An optional database optimization upgrade is available. Click <a href=\"%s\">here</a> to learn more." 403 msgstr "" 404 405 #: src/inc/Migration/Migration.php:368 406 msgid "Database upgrade completed." 407 msgstr "" 408 409 #: src/inc/Migration/Migration.php:393 410 msgid "Database Upgrade" 411 msgstr "" 412 413 #: src/inc/Migration/Migration.php:398 414 msgid "This upgrade will include the following:" 415 msgstr "" 416 417 #: src/inc/Migration/Migration.php:406 418 msgid "Support for non-UTF8 characters like emojis (%s)." 419 msgstr "" 420 421 #: src/inc/Migration/Migration.php:412 422 msgid "Faster email log search by message." 423 msgstr "" 424 425 #: src/inc/Migration/Migration.php:417 426 msgid "If you do not need these improvements, you can keep using the plugin as is and dismiss this banner in the top right corner." 427 msgstr "" 428 429 #: src/inc/Migration/Migration.php:423 430 msgid "<strong>Important!</strong> By performing this upgrade, <strong>ALL your existing logs will be deleted</strong>." 431 msgstr "" 432 433 #: src/inc/Migration/Migration.php:434 434 msgid "<i>If you wish to keep all email logs and get the above improvements as well, please <a href=\"https://wordpress.org/support/topic/how-to-keep-your-email-logs-with-manual-v1-12-0-database-upgrade/\" target=\"_blank\">read our manual upgrade guide</a> for more information.</i>" 435 msgstr "" 436 437 #: src/inc/Migration/Migration.php:451 438 msgid "Please create a backup of your database before performing the upgrade." 439 msgstr "" 440 441 #: src/inc/Migration/Migration.php:455 442 msgid "Upgrade" 443 msgstr "" 444 445 #: src/inc/Migration/Migration.php:458 446 #: src/Renderer/Format/BaseRenderer.php:200 447 #: src/WPML_Email_Log_List.php:862 448 msgid "Dismiss this notice." 449 msgstr "" 450 451 #: src/inc/Migration/Migration.php:593 452 msgid "This upgrade will delete all of your existings logs. Are you sure you want to proceed?" 453 msgstr "" 454 455 #: src/Model/Email_Log_Collection.php:482 397 456 msgid "All" 398 457 msgstr "" 399 458 400 #: src/Model/Email_Log_Collection.php:4 15459 #: src/Model/Email_Log_Collection.php:483 401 460 msgid "Successful" 402 461 msgstr "" 403 462 404 #: src/Model/Email_Log_Collection.php:4 16463 #: src/Model/Email_Log_Collection.php:484 405 464 msgid "Failed" 406 465 msgstr "" … … 412 471 msgstr "" 413 472 414 #: src/Renderer/Format/BaseRenderer.php:39 473 #: src/Renderer/Format/BaseRenderer.php:41 474 #: src/Renderer/WPML_ColumnManager.php:34 475 msgid "Time" 476 msgstr "" 477 478 #: src/Renderer/Format/BaseRenderer.php:42 479 #: src/Renderer/WPML_ColumnManager.php:36 480 msgid "Receiver" 481 msgstr "" 482 483 #: src/Renderer/Format/BaseRenderer.php:43 484 #: src/Renderer/WPML_ColumnManager.php:37 485 msgid "Subject" 486 msgstr "" 487 488 #: src/Renderer/Format/BaseRenderer.php:44 489 #: src/Renderer/WPML_ColumnManager.php:39 490 msgid "Error" 491 msgstr "" 492 493 #: src/Renderer/Format/BaseRenderer.php:45 494 msgid "Headers" 495 msgstr "" 496 497 #: src/Renderer/Format/BaseRenderer.php:47 498 #: src/Renderer/WPML_ColumnManager.php:38 499 msgid "Attachments" 500 msgstr "" 501 502 #: src/Renderer/Format/BaseRenderer.php:53 503 #: src/Renderer/WPML_ColumnManager.php:35 504 msgid "Host" 505 msgstr "" 506 507 #. translators: %s - Link to the SMTP page. 508 #: src/Renderer/Format/BaseRenderer.php:188 509 msgid "<strong>This email failed to send.</strong> <a href=\"%s\">Install WP Mail SMTP</a> to solve your deliverability issues." 510 msgstr "" 511 415 512 #: src/Renderer/WPML_ColumnManager.php:33 416 msgid "Time"417 msgstr ""418 419 #: src/Renderer/Format/BaseRenderer.php:40420 #: src/Renderer/WPML_ColumnManager.php:35421 msgid "Receiver"422 msgstr ""423 424 #: src/Renderer/Format/BaseRenderer.php:41425 #: src/Renderer/WPML_ColumnManager.php:36426 msgid "Subject"427 msgstr ""428 429 #: src/Renderer/Format/BaseRenderer.php:42430 #: src/Renderer/WPML_ColumnManager.php:38431 msgid "Error"432 msgstr ""433 434 #: src/Renderer/Format/BaseRenderer.php:43435 msgid "Headers"436 msgstr ""437 438 #: src/Renderer/Format/BaseRenderer.php:45439 #: src/Renderer/WPML_ColumnManager.php:37440 msgid "Attachments"441 msgstr ""442 443 #: src/Renderer/Format/BaseRenderer.php:51444 #: src/Renderer/WPML_ColumnManager.php:34445 msgid "Host"446 msgstr ""447 448 #. translators: %s - Link to the SMTP page.449 #: src/Renderer/Format/BaseRenderer.php:169450 msgid "<strong>This email failed to send.</strong> <a href=\"%s\">Install WP Mail SMTP</a> to solve your deliverability issues."451 msgstr ""452 453 #: src/Renderer/Format/BaseRenderer.php:181454 #: src/WPML_Email_Log_List.php:759455 msgid "Dismiss this notice."456 msgstr ""457 458 #: src/Renderer/WPML_ColumnManager.php:32459 513 msgid "ID" 460 514 msgstr "" … … 510 564 msgstr "" 511 565 512 #: src/WPML_Email_Log_List.php: 519566 #: src/WPML_Email_Log_List.php:601 513 567 msgid "Invalid request!" 568 msgstr "" 569 570 #. translators: %d: Email Log ID to view. 571 #: src/WPML_Email_Log_List.php:757 572 msgid "View log #%d" 573 msgstr "" 574 575 #. translators: %d: Email Log ID to resend. 576 #: src/WPML_Email_Log_List.php:764 577 msgid "Resend log #%d" 578 msgstr "" 579 580 #. translators: %d: Email Log ID to delete. 581 #: src/WPML_Email_Log_List.php:771 582 msgid "Delete log #%d" 514 583 msgstr "" 515 584 … … 524 593 #: src/WPML_OptionsManager.php:406 525 594 #: src/WPML_OptionsManager.php:407 526 #: src/WPML_Plugin.php:2 48595 #: src/WPML_Plugin.php:291 527 596 msgid "Email Log" 528 597 msgstr "" 529 598 530 #: src/WPML_OptionsManager.php:41 3531 #: src/WPML_OptionsManager.php:41 4532 #: src/WPML_Plugin.php: 252599 #: src/WPML_OptionsManager.php:417 600 #: src/WPML_OptionsManager.php:418 601 #: src/WPML_Plugin.php:301 533 602 msgid "Settings" 534 603 msgstr "" 535 604 536 #: src/WPML_OptionsManager.php:42 1537 #: src/WPML_OptionsManager.php:42 2538 #: src/WPML_Plugin.php: 256605 #: src/WPML_OptionsManager.php:425 606 #: src/WPML_OptionsManager.php:426 607 #: src/WPML_Plugin.php:305 539 608 msgid "SMTP" 540 609 msgstr "" 541 610 542 #: src/WPML_OptionsManager.php:50 5543 #: src/WPML_OptionsManager.php:5 34611 #: src/WPML_OptionsManager.php:509 612 #: src/WPML_OptionsManager.php:547 544 613 msgid "You do not have sufficient permissions to access this page." 545 614 msgstr "" 546 615 547 #: src/WPML_OptionsManager.php:5 74616 #: src/WPML_OptionsManager.php:587 548 617 msgid "true" 549 618 msgstr "" 550 619 551 #: src/WPML_OptionsManager.php:5 76620 #: src/WPML_OptionsManager.php:589 552 621 msgid "false" 553 622 msgstr "" 554 623 555 #: src/WPML_OptionsManager.php:5 79624 #: src/WPML_OptionsManager.php:592 556 625 msgid "Administrator" 557 626 msgstr "" 558 627 559 #: src/WPML_OptionsManager.php:5 81628 #: src/WPML_OptionsManager.php:594 560 629 msgid "Editor" 561 630 msgstr "" 562 631 563 #: src/WPML_OptionsManager.php:5 83632 #: src/WPML_OptionsManager.php:596 564 633 msgid "Author" 565 634 msgstr "" 566 635 567 #: src/WPML_OptionsManager.php:5 85636 #: src/WPML_OptionsManager.php:598 568 637 msgid "Contributor" 569 638 msgstr "" 570 639 571 #: src/WPML_OptionsManager.php: 587640 #: src/WPML_OptionsManager.php:600 572 641 msgid "Subscriber" 573 642 msgstr "" 574 643 575 #: src/WPML_OptionsManager.php: 589644 #: src/WPML_OptionsManager.php:602 576 645 msgid "Anyone" 577 646 msgstr "" 578 647 648 #: src/WPML_Plugin.php:420 649 msgid "Heads up!" 650 msgstr "" 651 652 #: src/WPML_Plugin.php:421 653 #: src/WPML_UserFeedback.php:116 654 msgid "Yes" 655 msgstr "" 656 657 #: src/WPML_Plugin.php:422 658 msgid "Cancel" 659 msgstr "" 660 661 #: src/WPML_Plugin.php:424 662 msgid "Warning!" 663 msgstr "" 664 579 665 #. translators: $1$s - WP Mail Logging plugin name; $2$s - WP.org review link; $3$s - WP.org review link. 580 #: src/WPML_Plugin.php: 375666 #: src/WPML_Plugin.php:559 581 667 msgid "Please rate %1$s <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">★★★★★</a> on <a href=\"%3$s\" target=\"_blank\" rel=\"noopener\">WordPress.org</a> to help us spread the word." 582 668 msgstr "" … … 595 681 msgstr "" 596 682 597 #: src/WPML_UserFeedback.php: 90683 #: src/WPML_UserFeedback.php:113 598 684 msgid "Are you enjoying WP Mail Logging?" 599 685 msgstr "" 600 686 601 #: src/WPML_UserFeedback.php:93 602 msgid "Yes" 603 msgstr "" 604 605 #: src/WPML_UserFeedback.php:95 687 #: src/WPML_UserFeedback.php:118 606 688 msgid "Not Really" 607 689 msgstr "" 608 690 609 #: src/WPML_UserFeedback.php: 99691 #: src/WPML_UserFeedback.php:122 610 692 msgid "We're sorry to hear you aren't enjoying WP Mail Logging. We would love a chance to improve. Could you take a minute and let us know what we can do better?" 611 693 msgstr "" 612 694 613 #: src/WPML_UserFeedback.php:1 04695 #: src/WPML_UserFeedback.php:127 614 696 msgid "Give Feedback" 615 697 msgstr "" 616 698 617 #: src/WPML_UserFeedback.php:1 09699 #: src/WPML_UserFeedback.php:132 618 700 msgid "No thanks" 619 701 msgstr "" 620 702 621 #: src/WPML_UserFeedback.php:1 14703 #: src/WPML_UserFeedback.php:137 622 704 msgid "That’s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress to help us spread the word and boost our motivation?" 623 705 msgstr "" 624 706 625 #: src/WPML_UserFeedback.php:1 15707 #: src/WPML_UserFeedback.php:138 626 708 msgid "~ WP Mail Logging team" 627 709 msgstr "" 628 710 629 #: src/WPML_UserFeedback.php:1 20711 #: src/WPML_UserFeedback.php:143 630 712 msgid "OK, you deserve it" 631 713 msgstr "" 632 714 633 #: src/WPML_UserFeedback.php:1 23715 #: src/WPML_UserFeedback.php:146 634 716 msgid "Nope, maybe later" 635 717 msgstr "" 636 718 637 #: src/WPML_UserFeedback.php:1 25719 #: src/WPML_UserFeedback.php:148 638 720 msgid "I already did" 639 721 msgstr "" -
wp-mail-logging/trunk/readme.txt
r2925728 r2929157 5 5 License URI: http://www.gnu.org/licenses/gpl-3.0.html 6 6 Requires at least: 5.0 7 Tested up to: 6. 17 Tested up to: 6.2 8 8 Requires PHP: 7.1 9 Stable tag: 1.1 1.29 Stable tag: 1.12.0 10 10 11 11 Log, view, and resend all emails sent from your WordPress site. Great for resolving email sending issues or keeping a copy for auditing. … … 82 82 Yes, it logs all emails sent from your site, including any emails that are created by your plugins or your theme. 83 83 84 = Why are some attachments not logged? = 85 86 This plugin only stores the file path of the attachments and not the attachments file themselves. If the attachment file path does not exist or the file was deleted, then it will not show up in the logs. 87 84 88 = I need help! = 85 89 … … 105 109 106 110 == Changelog == 111 = 1.12.0 - 2023-06-21 = 112 Added: Support UTF-8 encoded subjects. 113 Added: Search by filter. 114 Added: New filter hook for mail data before it’s saved. 115 Improved: Hide unrelated notices in admin plugin pages. 116 Improved: Use transient to cache certain DB calls. 117 Improved: Search logs by message optimization. 118 Fixed: Missing security checks in AJAX dismiss notices feature. 119 Fixed: MySQL 8 syntax error when `sql-mode = ANSI_QUOTES`. 120 Fixed: PHP Deprecated: Constant FILTER_SANITIZE_STRING. 121 Fixed: Logger breaks if no array passed from wp_mail. 122 Fixed: Line breaks on plain text email on “HTML” preview. 123 Fixed: Non-admin users can see and access “Settings” and “SMTP” pages. 124 Fixed: Escape the subject in logs table and single view. 125 107 126 = 1.11.2 - 2023-06-14 = 108 127 - Fixed: Email Log JSON preview security. … … 116 135 - Improved: overall UI/UX. 117 136 - Removed: Redux Framework. 137 - Fixed: resend with HTML type email not working all the time due to headers parsing error. 118 138 119 139 = 1.10.5 - 2022-12-21 = -
wp-mail-logging/trunk/src/Model/Email_Log_Collection.php
r2880502 r2929157 4 4 5 5 // Exit if accessed directly 6 use No3x\WPML\Migration\Migration; 7 6 8 if ( ! defined( 'ABSPATH' ) ) { 7 9 exit; … … 114 116 115 117 /** 118 * What field to search in. 119 * 120 * @since 1.12.0 121 * 122 * @var string 123 */ 124 private $search_place = ''; 125 126 /** 116 127 * Sorting of the email logs. 117 128 * … … 240 251 241 252 $this->search = $search; 253 254 return $this; 255 } 256 257 /** 258 * Set the field where we want to search in. 259 * 260 * @since 1.12.0 261 * 262 * @param string $search_place Field to search in. 263 * 264 * @return $this 265 */ 266 public function search_place( $search_place ) { 267 268 $this->search_place = $search_place; 242 269 243 270 return $this; … … 338 365 switch( $this->status ) { 339 366 case self::STATUS_SUCCESSFUL: 340 $status_where .= " WHERE `error` IS NULL ";367 $status_where .= " WHERE `error` IS NULL OR `error` = ''"; 341 368 break; 342 369 case self::STATUS_FAILED: … … 356 383 } 357 384 358 foreach ( $this->searchable_fields as $field ) { 359 $search_where .= '`' . esc_sql( $field ) . '` LIKE "%' . esc_sql( $this->search ) . '%" OR '; 385 foreach ( $this->get_search_place() as $field ) { 386 387 $search_where .= $this->get_search_sql( $field ); 360 388 } 361 389 … … 400 428 401 429 return $results; 430 } 431 432 /** 433 * Get the fields where the search term will be searched. 434 * 435 * @since 1.12.0 436 * 437 * @return string[] 438 */ 439 private function get_search_place() { 440 441 if ( empty( $this->search_place ) || ! in_array( $this->search_place, $this->searchable_fields, true ) ) { 442 return $this->searchable_fields; 443 } 444 445 return [ $this->search_place ]; 446 } 447 448 /** 449 * Get the search SQL. 450 * 451 * @since 1.12.0 452 * 453 * @param string $field Field we are trying to search to. 454 * 455 * @return string 456 */ 457 private function get_search_sql( $field ) { 458 459 $db_migrate_version = absint( get_option( Migration::OPTION_NAME, 0 ) ); 460 461 /* 462 * We use `MATCH AGAINST` for the `message` field if the database is migrated to version 2 or higher. 463 * We add the FULL TEXT index to the `message` field in version 2. 464 */ 465 if ( $field === 'message' && version_compare( $db_migrate_version, 2, '>=' ) ) { 466 return "MATCH (`message`) AGAINST ('" . esc_sql( $this->search ) . "') OR "; 467 } 468 469 return '`' . esc_sql( $field ) . '` LIKE "%' . esc_sql( $this->search ) . '%" OR '; 402 470 } 403 471 -
wp-mail-logging/trunk/src/Renderer/Format/BaseRenderer.php
r2880502 r2929157 9 9 use No3x\WPML\Renderer\Column\AttachmentsColumn; 10 10 use No3x\WPML\Renderer\Column\ColumnFormat; 11 use No3x\WPML\Renderer\Column\SubjectColumn; 11 12 use No3x\WPML\Renderer\WPML_ColumnManager; 13 use No3x\WPML\Renderer\WPML_MailRenderer; 12 14 use No3x\WPML\WPML_Utils; 13 15 … … 147 149 * 148 150 * @since 1.11.0 151 * @since 1.12.0 149 152 * 150 153 * @param string $key Key of the value to render. … … 154 157 */ 155 158 private function render_column_value( $key, $value ) { 159 $format = empty( $_POST['format'] ) ? 'html' : $_POST['format']; 156 160 ?> 157 161 <div class="wp-mail-logging-modal-row-value wp-mail-logging-modal-row-value-<?php echo esc_attr( $key ); ?>"> 158 162 <?php 159 163 160 echo wp_kses_post( $value ); 164 if ( $key === WPML_ColumnManager::COLUMN_SUBJECT && $format === WPML_MailRenderer::FORMAT_HTML ) { 165 try { 166 $value = ( new SubjectColumn() )->render( 167 [ 168 'subject' => $value, 169 ], 170 ColumnFormat::SIMPLE 171 ); 172 } catch ( \Exception $e ) {} 173 } 174 175 if ( $key === WPML_ColumnManager::COLUMN_SUBJECT ) { 176 echo esc_html( $value ); 177 } else { 178 echo wp_kses_post( $value ); 179 } 161 180 162 181 if ( $key === 'error' ) { -
wp-mail-logging/trunk/src/Renderer/WPML_ColumnManager.php
r2880502 r2929157 8 8 use No3x\WPML\Renderer\Column\GenericColumn; 9 9 use No3x\WPML\Renderer\Column\IColumn; 10 use No3x\WPML\Renderer\Column\SubjectColumn; 10 11 use No3x\WPML\Renderer\Column\TimestampColumn; 11 12 … … 52 53 case self::COLUMN_ERROR: 53 54 return new ErrorColumn(); 55 case self::COLUMN_SUBJECT: 56 return new SubjectColumn(); 54 57 default: 55 58 return new GenericColumn($column_name); -
wp-mail-logging/trunk/src/WPML_Email_Log_List.php
r2880502 r2929157 461 461 $per_page = $this->get_items_per_page( 'per_page', 25 ); 462 462 463 $search_place = ! empty( $_REQUEST['search']['place'] ) ? sanitize_key( $_REQUEST['search']['place'] ) : ''; 464 $search = ! empty( $_REQUEST['search']['term'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['search']['term'] ) ) : $search; 465 463 466 $log_collection = new Email_Log_Collection( Mail::get_table(), Mail::get_searchable_fields() ); 467 $log_collection->search( $search )->search_place( $search_place ); 464 468 $this->statuses_counts = $log_collection->get_statuses_count(); 465 469 466 470 $this->items = $log_collection->status( $this->get_current_status() ) 467 ->search( $search )468 471 ->sort_by( $this->sanitize_orderby() ) 469 472 ->order( $this->sanitize_order() ) … … 479 482 480 483 /** 484 * Display the search box. 485 * 486 * @since 1.12.0 487 * 488 * @param string $text The 'submit' button label. 489 * @param string $input_id ID attribute value for the search input field. 490 */ 491 public function search_box( $text, $input_id ) { 492 493 if ( ! $this->has_items() ) { 494 return; 495 } 496 497 $search_place = ! empty( $_REQUEST['search']['place'] ) ? sanitize_key( $_REQUEST['search']['place'] ) : 'people'; 498 $search_term = ! empty( $_REQUEST['search']['term'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['search']['term'] ) ) : ''; 499 500 if ( ! empty( $_REQUEST['orderby'] ) && in_array( $_REQUEST['orderby'], [ 'timestamp', 'host', 'receiver', 'subject' ], true ) ) { 501 echo '<input type="hidden" name="orderby" value="' . esc_attr( sanitize_key( $_REQUEST['orderby'] ) ) . '" />'; 502 } 503 504 if ( ! empty( $_REQUEST['order'] ) ) { 505 $order = strtoupper( sanitize_key( $_REQUEST['order'] ) ); 506 $order = $order === 'ASC' ? 'ASC' : 'DESC'; 507 echo '<input type="hidden" name="order" value="' . esc_attr( $order ) . '" />'; 508 } 509 510 $columns = $this->columnManager->getColumns(); 511 $columns['message'] = __( 'Message', 'wp-mail-logging' ); 512 ?> 513 514 <p class="search-box"> 515 <label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_html( $text ); ?>:</label> 516 <select name="search[place]"> 517 <?php 518 foreach ( $this->get_search_dropdown_fields() as $field ) { 519 520 if ( ! isset( $columns[ $field ] ) ) { 521 continue; 522 } 523 ?> 524 <option value="<?php echo esc_attr( $field ); ?>" <?php selected( esc_attr( $field ), $search_place ); ?>><?php echo esc_html( $columns[ $field ] ); ?></option> 525 <?php 526 } 527 ?> 528 </select> 529 <input type="search" id="<?php echo esc_attr( $input_id ); ?>" name="search[term]" value="<?php echo esc_attr( $search_term ); ?>" /> 530 <?php submit_button( $text, '', '', false, array( 'id' => 'search-submit' ) ); ?> 531 </p> 532 533 <?php 534 } 535 536 /** 537 * Get the dropdown search fields. 538 * 539 * @since 1.12.0 540 * 541 * @return array 542 */ 543 private function get_search_dropdown_fields() { 544 545 $searchable_fields = Mail::get_searchable_fields(); 546 $settings = SettingsTab::get_settings([]); 547 548 foreach ( $searchable_fields as $k => $v ) { 549 550 // Check if we need to remove host or attachment. 551 if ( 552 ( $v === 'host' && empty( $settings['display-host'] ) ) || 553 ( $v === 'attachments' && empty( $settings['display-attachments'] ) ) 554 ) { 555 unset( $searchable_fields[ $k ] ); 556 } 557 } 558 559 return $searchable_fields; 560 } 561 562 /** 481 563 * Process action for a single log. 482 564 * … … 668 750 private function display_actions_icons( $email_log_id ) { 669 751 670 $assets_url = WPML_Init::getInstance()->getService( 'plugin' )->get_assets_url(); 752 $assets_url = WPML_Init::getInstance()->getService( 'plugin' )->get_assets_url(); 753 $view_title = sprintf( 754 /* 755 * translators: %d: Email Log ID to view. 756 */ 757 __( 'View log #%d', 'wp-mail-logging' ), 758 $email_log_id 759 ); 760 $resend_title = sprintf( 761 /* 762 * translators: %d: Email Log ID to resend. 763 */ 764 __( 'Resend log #%d', 'wp-mail-logging' ), 765 $email_log_id 766 ); 767 $delete_title = sprintf( 768 /* 769 * translators: %d: Email Log ID to delete. 770 */ 771 __( 'Delete log #%d', 'wp-mail-logging' ), 772 $email_log_id 773 ); 671 774 672 775 return '<div class="wp-mail-logging-action-column" data-mail-id="' . esc_attr( $email_log_id ) . '"> 673 <button class="wp-mail-logging-action-item" data-action="view">776 <button title="' . esc_attr( $view_title ) . '" class="wp-mail-logging-action-item" data-action="view"> 674 777 <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 675 778 <path d="M8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z" fill="#50575E" fill-opacity="0.8"/> … … 677 780 </svg> 678 781 </button> 679 <button class="wp-mail-logging-action-item" data-action="resend">782 <button title="' . esc_attr( $resend_title ) . '" class="wp-mail-logging-action-item" data-action="resend"> 680 783 <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 681 784 <path d="M2.39998 3.3079C2.39998 3.06708 2.49832 2.83613 2.67338 2.66585C2.84844 2.49557 3.08586 2.3999 3.33343 2.3999C3.581 2.3999 3.81843 2.49557 3.99348 2.66585C4.16854 2.83613 4.26688 3.06708 4.26688 3.3079V4.08998C5.18891 3.28835 6.35776 2.8061 7.59112 2.71844C8.82447 2.63078 10.053 2.94265 11.085 3.6054C12.117 4.26815 12.8945 5.24452 13.2962 6.38219C13.698 7.51987 13.7013 8.75488 13.3057 9.8946C12.9101 11.0343 12.1379 12.0146 11.1095 12.6826C10.0811 13.3506 8.85425 13.6688 7.62044 13.5874C6.38663 13.5061 5.21519 13.0298 4.28885 12.2329C3.36251 11.436 2.73337 10.3632 2.49954 9.18202C2.39002 8.61906 2.8779 8.15054 3.4666 8.15054C3.90844 8.15054 4.25817 8.50284 4.35152 8.92294C4.52107 9.68189 4.93619 10.368 5.53598 10.8807C6.13577 11.3933 6.88867 11.7055 7.68423 11.7715C8.47978 11.8374 9.27613 11.6537 9.95646 11.2471C10.6368 10.8406 11.1653 10.2327 11.4644 9.51259C11.7636 8.7925 11.8176 7.99811 11.6186 7.24595C11.4196 6.49379 10.9781 5.82345 10.3588 5.33327C9.73944 4.84308 8.97493 4.55884 8.17737 4.52225C7.37982 4.48566 6.5912 4.69863 5.92719 5.12994H6.44495C6.69251 5.12994 6.92994 5.2256 7.105 5.39589C7.28006 5.56617 7.3784 5.79712 7.3784 6.03794C7.3784 6.27875 7.28006 6.5097 7.105 6.67999C6.92994 6.85027 6.69251 6.94593 6.44495 6.94593H3.33343C3.08586 6.94593 2.84844 6.85027 2.67338 6.67999C2.49832 6.5097 2.39998 6.27875 2.39998 6.03794V3.3079Z" fill="currentColor"/> 682 785 </svg> 683 786 </button> 684 <button class="wp-mail-logging-action-item" data-action="delete">787 <button title="' . esc_attr( $delete_title ) . '" class="wp-mail-logging-action-item" data-action="delete"> 685 788 <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"> 686 789 <path d="M4 4.66683H3.33333V13.3335C3.33333 13.6871 3.47381 14.0263 3.72386 14.2763C3.97391 14.5264 4.31304 14.6668 4.66667 14.6668H11.3333C11.687 14.6668 12.0261 14.5264 12.2761 14.2763C12.5262 14.0263 12.6667 13.6871 12.6667 13.3335V4.66683H4ZM6.66667 12.6668H5.33333V6.66683H6.66667V12.6668ZM10.6667 12.6668H9.33333V6.66683H10.6667V12.6668ZM11.0787 2.66683L10 1.3335H6L4.92133 2.66683H2V4.00016H14V2.66683H11.0787Z" fill="currentColor"/> -
wp-mail-logging/trunk/src/WPML_Init.php
r2880502 r2929157 22 22 namespace No3x\WPML; 23 23 24 use No3x\WPML\Migration\Migration; 24 25 use No3x\WPML\Model\DefaultMailService; 25 26 use No3x\WPML\Renderer\WPML_MailRenderer; … … 152 153 // Perform any version-upgrade activities prior to activation (e.g. database changes). 153 154 $this->container['plugin']->upgrade(); 155 156 // Perform DB migrations. 157 new Migration(); 154 158 } 155 159 -
wp-mail-logging/trunk/src/WPML_InstallIndicator.php
r2187843 r2929157 37 37 */ 38 38 public function isInstalled() { 39 $installed = false;40 39 41 // We don't use the cached value, only its presence. 42 // This is because we never cache not installed state. 43 wp_cache_get(self::CACHE_INSTALLED_KEY, self::CACHE_GROUP, false, $installed); 44 if (!$installed) { 45 global $wpdb; 40 $installed = (bool) get_transient( self::CACHE_GROUP . '_' . self::CACHE_INSTALLED_KEY ); 46 41 47 $mails = $this->getTablename('mails');48 $query = $wpdb->query("SHOW TABLES LIKE \"$mails\"");49 $installed = (bool) $query;42 if ( $installed ) { 43 return true; 44 } 50 45 51 if ($installed) { 52 wp_cache_set(self::CACHE_INSTALLED_KEY, true, self::CACHE_GROUP, 3600); 53 } 46 global $wpdb; 47 48 $query = $wpdb->query( 49 $wpdb->prepare( 50 "SHOW TABLES LIKE %s", 51 $this->getTablename( 'mails' ) 52 ) 53 ); 54 55 $installed = (bool) $query; 56 57 if ( $installed ) { 58 set_transient( self::CACHE_GROUP . '_' . self::CACHE_INSTALLED_KEY, true, 3600 ); 54 59 } 60 55 61 return $installed; 56 62 } -
wp-mail-logging/trunk/src/WPML_LifeCycle.php
r2880502 r2929157 47 47 48 48 if ( $this->getSetting('delete-on-deactivation', false) == true ) { 49 50 // Delete some options. 51 delete_option( 'wp_mail_logging_activated_time' ); 52 delete_option( 'wp_mail_logging_user_feedback_notice' ); 53 delete_option( 'wp_mail_logging_db_version' ); 54 55 // Remove some transient. 56 delete_transient( self::CACHE_GROUP . '_' . self::CACHE_INSTALLED_KEY ); 57 49 58 //TOOD: is multi site? 50 59 $this->unInstallDatabaseTables(); -
wp-mail-logging/trunk/src/WPML_OptionsManager.php
r2880502 r2929157 410 410 ); 411 411 412 if ( ! current_user_can( WPML_Plugin::get_view_settings_capability() ) ) { 413 return; 414 } 415 412 416 add_submenu_page( $menu_slug, 413 417 __( 'Settings', 'wp-mail-logging' ), … … 515 519 <div class="wp-mail-logging-page-content"> 516 520 <?php 521 /** 522 * Hook before the tab content. 523 * 524 * @since 1.12.0 525 * 526 * @param string $tab Current active tab. 527 */ 528 do_action( 'wp_mail_logging_admin_tab_content_before', $tab ); 529 517 530 /** 518 531 * Hook the tab content here. -
wp-mail-logging/trunk/src/WPML_Plugin.php
r2880502 r2929157 6 6 use No3x\WPML\Admin\SettingsTab; 7 7 use No3x\WPML\Admin\SMTPTab; 8 use No3x\WPML\Migration\Migration; 8 9 use No3x\WPML\Model\WPML_Mail as Mail; 9 10 use No3x\WPML\Renderer\WPML_MailRenderer_AJAX_Handler; … … 55 56 protected function installDatabaseTables() { 56 57 global $wpdb; 58 59 $collate = ! empty( $wpdb->collate ) ? "COLLATE='{$wpdb->collate}'" : ''; 60 57 61 $tableName = WPML_Plugin::getTablename('mails'); 58 $wpdb->query("CREATE TABLE IF NOT EXISTS `$tableName` ( 59 `mail_id` INT NOT NULL AUTO_INCREMENT, 60 `timestamp` TIMESTAMP NOT NULL, 61 `host` VARCHAR(200) NOT NULL DEFAULT '0', 62 `receiver` VARCHAR(200) NOT NULL DEFAULT '0', 63 `subject` VARCHAR(200) NOT NULL DEFAULT '0', 64 `message` TEXT NULL, 65 `headers` TEXT NULL, 66 `attachments` VARCHAR(800) NOT NULL DEFAULT '0', 67 `error` VARCHAR(400) NULL DEFAULT '', 68 `plugin_version` VARCHAR(200) NOT NULL DEFAULT '0', 69 PRIMARY KEY (`mail_id`) 70 ) DEFAULT CHARACTER SET = utf8 DEFAULT COLLATE utf8_general_ci;"); 62 $result = $wpdb->query(" 63 CREATE TABLE IF NOT EXISTS `$tableName` ( 64 `mail_id` INT NOT NULL AUTO_INCREMENT, 65 `timestamp` TIMESTAMP NOT NULL, 66 `host` VARCHAR(200) NOT NULL DEFAULT '0', 67 `receiver` VARCHAR(200) NOT NULL DEFAULT '0', 68 `subject` VARCHAR(200) NOT NULL DEFAULT '0', 69 `message` TEXT NULL, 70 `headers` TEXT NULL, 71 `attachments` VARCHAR(800) NOT NULL DEFAULT '0', 72 `error` VARCHAR(400) NULL DEFAULT '', 73 `plugin_version` VARCHAR(200) NOT NULL DEFAULT '0', 74 PRIMARY KEY (`mail_id`), 75 FULLTEXT INDEX `idx_message` (`message`) 76 ) 77 ENGINE='InnoDB' 78 {$collate};"); 79 80 if ( $result !== false ) { 81 /* 82 * Set the option to `2` to indicate that previous migrations are no longer needed. 83 */ 84 update_option( Migration::OPTION_NAME, 2, false ); 85 } 71 86 } 72 87 … … 199 214 200 215 add_filter( 'in_admin_header', [ $this, 'admin_header' ] ); 216 217 add_filter( 'admin_body_class', [ $this, 'add_admin_body_class' ] ); 218 } 219 220 /** 221 * Add admin body class for WP Mail Logging admin pages. 222 * 223 * @since 1.12.0 224 * 225 * @param string $classes Space-separated list of CSS classes. 226 * 227 * @return string 228 */ 229 public function add_admin_body_class( $classes ) { 230 231 global $wp_logging_list_page; 232 233 $current_screen = get_current_screen(); 234 235 if ( 236 empty( $current_screen ) || 237 ! is_a( $current_screen, 'WP_Screen' ) || 238 $current_screen->id !== $wp_logging_list_page 239 ) { 240 return $classes; 241 } 242 243 return $classes . ' wp-mail-logging-admin-page'; 201 244 } 202 245 … … 248 291 'label' => __( 'Email Log', 'wp-mail-logging' ), 249 292 ], 250 [251 'slug' => 'settings',252 'label' => __( 'Settings', 'wp-mail-logging' ),253 ],254 [255 'slug' => 'smtp',256 'label' => __( 'SMTP', 'wp-mail-logging' ),257 ],258 293 ]; 294 295 if ( current_user_can( self::get_view_settings_capability() ) ) { 296 $menu_tabs = array_merge( 297 $menu_tabs, 298 [ 299 [ 300 'slug' => 'settings', 301 'label' => __( 'Settings', 'wp-mail-logging' ), 302 ], 303 [ 304 'slug' => 'smtp', 305 'label' => __( 'SMTP', 'wp-mail-logging' ), 306 ], 307 ] 308 ); 309 } 259 310 260 311 foreach ( $menu_tabs as $menu_tab ) { … … 274 325 275 326 /** 327 * Get the user capability that is required to view the settings page. 328 * 329 * @since 1.12.0 330 * 331 * @return string 332 */ 333 public static function get_view_settings_capability() { 334 335 return apply_filters( 'wp_mail_logging_view_settings_capability', 'manage_options' ); 336 } 337 338 /** 276 339 * Create WP Mail Logging screens. 277 340 * … … 290 353 } 291 354 292 $tab = filter_input( INPUT_GET, 'tab' ); 293 294 switch ( $tab ) { 295 case 'settings': 296 $tabObj = SettingsTab::get_instance(); 297 break; 298 case 'smtp': 299 $tabObj = SMTPTab::get_instance(); 300 break; 301 default: 302 $tabObj = EmailLogsTab::get_instance(); 303 break; 304 } 305 306 if ( is_null( $tabObj ) ) { 355 // Hide all unrelated to the plugin notices on the plugin admin pages. 356 add_action( 'admin_print_scripts', [ $this, 'hide_unrelated_notices' ] ); 357 358 if ( current_user_can( self::get_view_settings_capability() ) ) { 359 $allowed_screens = [ 360 'settings' => SettingsTab::get_instance(), 361 'smtp' => SMTPTab::get_instance(), 362 ]; 363 } 364 365 $tab = ! empty( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ): 'logs'; 366 367 if ( ! isset( $allowed_screens[ $tab ] ) ) { 368 EmailLogsTab::get_instance()->screen_hooks(); 369 } 370 else { 371 $allowed_screens[ $tab ]->screen_hooks(); 372 } 373 374 if ( $tab === 'logs' || $tab === 'settings' ) { 375 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_jquery_confirm' ] ); 376 } 377 } 378 379 /** 380 * Enqueue the jQuery confirm library. 381 * 382 * @since 1.12.0 383 * 384 * @return void 385 * 386 * @throws \Exception 387 */ 388 public function enqueue_jquery_confirm() { 389 390 $plugin_meta = WPML_Init::getInstance()->getService( 'plugin-meta' ); 391 392 wp_enqueue_script( 393 'wp-mail-logging-jquery-confirm', 394 $plugin_meta['uri'] . "lib/jquery-confirm/jquery-confirm.min.js", 395 [ 'jquery' ], 396 '3.3.4', 397 true 398 ); 399 400 wp_enqueue_style( 401 'wp-mail-logging-jquery-confirm', 402 $plugin_meta['uri'] . "lib/jquery-confirm/jquery-confirm.min.css", 403 [], 404 '3.3.4' 405 ); 406 407 $assets_url = WPML_Init::getInstance()->getService( 'plugin' )->get_assets_url(); 408 409 wp_localize_script( 410 'wp-mail-logging-jquery-confirm', 411 'WPMailLoggingJqueryConfirm', 412 /** 413 * Filter the jQuery Confirm localized strings. 414 * 415 * @since 1.12.0 416 */ 417 apply_filters( 418 'wp_mail_logging_jquery_confirm_localized_strings', 419 [ 420 'headsup' => esc_html__( 'Heads up!', 'wp-mail-logging' ), 421 'yes' => esc_html__( 'Yes', 'wp-mail-logging' ), 422 'cancel' => esc_html__( 'Cancel', 'wp-mail-logging' ), 423 'icon' => esc_url( $assets_url . '/images/font-awesome/exclamation-circle-solid-orange.svg' ), 424 'warning' => esc_html__( 'Warning!', 'wp-mail-logging' ), 425 ] 426 ) 427 ); 428 } 429 430 /** 431 * Remove all non-WP Mail Logging plugin notices from our plugin pages. 432 * 433 * @since 1.12.0 434 */ 435 public function hide_unrelated_notices() { 436 437 $this->remove_unrelated_actions( 'user_admin_notices' ); 438 $this->remove_unrelated_actions( 'admin_notices' ); 439 $this->remove_unrelated_actions( 'all_admin_notices' ); 440 $this->remove_unrelated_actions( 'network_admin_notices' ); 441 } 442 443 /** 444 * Remove all non-WP Mail Logging notices from the our plugin pages based on the provided action hook. 445 * 446 * @since 1.12.0 447 * 448 * @param string $action The name of the action. 449 */ 450 private function remove_unrelated_actions( $action ) { 451 452 global $wp_filter; 453 454 if ( empty( $wp_filter[ $action ]->callbacks ) || ! is_array( $wp_filter[ $action ]->callbacks ) ) { 307 455 return; 308 456 } 309 457 310 $tabObj->screen_hooks(); 458 foreach ( $wp_filter[ $action ]->callbacks as $priority => $hooks ) { 459 foreach ( $hooks as $name => $arr ) { 460 461 if ( strpos( strtolower( $name ), 'no3x\wpml' ) !== false ) { 462 continue; 463 } 464 465 // Handle the case when the callback is an array. 466 if ( 467 is_array( $arr ) && ! empty( $arr['function'] ) && is_array( $arr['function'] ) 468 && ! empty( $arr['function'][0] ) && is_object( $arr['function'][0] ) 469 && ( strpos( strtolower( get_class( $arr['function'][0] ) ), 'no3x\wpml' ) !== false ) 470 ) { 471 continue; 472 } 473 474 unset( $wp_filter[ $action ]->callbacks[ $priority ][ $name ] ); 475 } 476 } 311 477 } 312 478 … … 329 495 * Logs mail to database. 330 496 * 497 * @global $wpml_current_mail_id 498 * 331 499 * @param array $mailArray 332 * @global $wpml_current_mail_id500 * 333 501 * @since 1.0 502 * @since 1.12.0 Short-circuit if $mailArray is not an array. 503 * 334 504 * @return array $mailOriginal 335 505 */ 336 506 public function log_email( $mailArray ) { 507 508 /** 509 * Filters mail data before it is logged. 510 * 511 * @since 1.12.0 512 * 513 * @param array $mailArray Array containing the mail data to be logged. 514 */ 515 $mailArray = apply_filters( 'wp_mail_logging_before_log_email', $mailArray ); 516 517 if ( ! is_array( $mailArray ) ) { 518 return $mailArray; 519 } 520 337 521 global $wpml_current_mail_id; 338 522 -
wp-mail-logging/trunk/src/WPML_ProductEducation.php
r2880502 r2929157 65 65 check_ajax_referer( self::DISMISS_NONCE_ACTION, 'nonce' ); 66 66 67 if ( empty( $_POST['productEducationID'] ) ) {67 if ( empty( $_POST['productEducationID'] || ! is_super_admin() ) ) { 68 68 69 69 wp_send_json_error( -
wp-mail-logging/trunk/src/WPML_UserFeedback.php
r2837381 r2929157 14 14 */ 15 15 class WPML_UserFeedback implements IHooks { 16 17 /** 18 * The ajax action for notice dismissal. 19 * 20 * @since 1.12.0 21 * 22 * @var string 23 */ 24 const AJAX_ACTION_NONCE = 'wp_mail_logging_user_feedback_notice_dismiss_nonce'; 25 26 /** 27 * Transient key for mail logs count. 28 * 29 * @since 1.12.0 30 * 31 * @var string 32 */ 33 const MAIL_LOGS_COUNT_TRANSIENT_KEY = 'wp_mail_logging_total_logs_count'; 16 34 17 35 /** … … 78 96 } 79 97 98 $total_logs = get_transient( self::MAIL_LOGS_COUNT_TRANSIENT_KEY ); 99 100 if ( $total_logs === false ) { 101 $total_logs = Mail::query()->search( false )->find( true ); 102 set_transient( self::MAIL_LOGS_COUNT_TRANSIENT_KEY, absint( $total_logs ), DAY_IN_SECONDS ); 103 } 104 80 105 // Only display the notice if our plugin is being used (has at least 10 email logs). 81 $total_logs = Mail::query()->search( false )->find( true );82 83 106 if ( $total_logs < 10 ) { 84 107 return; … … 86 109 87 110 ?> 88 <div class="notice notice-info is-dismissible wp-mail-logging-review-notice" >111 <div class="notice notice-info is-dismissible wp-mail-logging-review-notice" data-nonce="<?php echo esc_attr( wp_create_nonce( self::AJAX_ACTION_NONCE ) ); ?>"> 89 112 <div class="wp-mail-logging-review-step wp-mail-logging-review-step-1"> 90 113 <p><?php esc_html_e( 'Are you enjoying WP Mail Logging?', 'wp-mail-logging' ); ?></p> … … 130 153 jQuery( document ).ready( function( $ ) { 131 154 $( document ).on( 'click', '.wp-mail-logging-dismiss-review-notice, .wp-mail-logging-review-notice button', function( e ) { 155 156 var $parent = $( this ).parent( '.wp-mail-logging-review-notice' ); 157 158 if ( $parent.length <= 0 || ! $parent.data( 'nonce' ) ) { 159 return; 160 } 161 132 162 if (! $( this ).hasClass( 'wp-mail-logging-review-out' )) { 133 163 e.preventDefault(); 134 164 } 135 $.post( ajaxurl, {action: 'wp_mail_logging_feedback_notice_dismiss'} ); 165 166 $.post( 167 ajaxurl, 168 { 169 action: 'wp_mail_logging_feedback_notice_dismiss', 170 nonce: $parent.data( 'nonce' ) 171 } 172 ); 173 136 174 $( '.wp-mail-logging-review-notice' ).remove(); 137 175 } ); … … 162 200 public function feedback_notice_dismiss() { 163 201 202 if ( empty( $_POST['nonce'] ) || ! check_admin_referer( self::AJAX_ACTION_NONCE, 'nonce' ) || ! is_super_admin() ) { 203 wp_send_json_error(); 204 } 205 164 206 $options = get_option( self::OPTION_NAME, [] ); 165 207 $options['time'] = time(); … … 168 210 update_option( self::OPTION_NAME, $options ); 169 211 170 if ( is_ super_admin() && is_multisite() ) {212 if ( is_multisite() ) { 171 213 $site_list = get_sites(); 172 214 foreach ( (array) $site_list as $site ) { -
wp-mail-logging/trunk/src/inc/Admin/EmailLogsTab.php
r2923464 r2929157 174 174 add_filter( 'admin_body_class', [ $this, 'add_admin_body_class' ] ); 175 175 add_action( 'wp_mail_logging_admin_tab_content', [ $this, 'display_tab_content' ] ); 176 add_filter( 'wp_mail_logging_jquery_confirm_localized_strings', [ $this, 'jquery_confirm_localized_string' ] ); 176 177 } 177 178 … … 535 536 * 536 537 * @since 1.11.0 537 * 538 * @param $classes Space-separated list of CSS classes. 538 * @deprecated 1.12.0 We are now adding this class in all the WP Mail Logging pages. 539 * 540 * @param string $classes Space-separated list of CSS classes. 539 541 * 540 542 * @return string … … 542 544 public function add_admin_body_class( $classes ) { 543 545 544 global $wp_logging_list_page; 545 546 $current_screen = get_current_screen(); 547 548 if ( empty( $current_screen ) || ! is_a( $current_screen, 'WP_Screen' ) || $current_screen->id !== $wp_logging_list_page ) { 549 return $classes; 550 } 551 552 return $classes . ' wp-mail-logging-admin-page'; 546 return $classes; 547 } 548 549 /** 550 * The localised strings for the jQuery confirm dialog. 551 * 552 * @since 1.12.0 553 * 554 * @param array $strings Localized strings. 555 * 556 * @return mixed 557 */ 558 public function jquery_confirm_localized_string( $strings ) { 559 560 $strings['delete_log_confirm_msg'] = esc_html__( 'Are you sure you want to delete this log?', 'wp-mail-logging' ); 561 562 return $strings; 553 563 } 554 564 } -
wp-mail-logging/trunk/src/inc/Admin/SettingsTab.php
r2880502 r2929157 119 119 120 120 // Check if we need to save data. 121 $data = filter_input( INPUT_POST, 'wp-mail-logging-setting', FILTER_SANITIZE_ STRING, FILTER_REQUIRE_ARRAY );121 $data = filter_input( INPUT_POST, 'wp-mail-logging-setting', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_REQUIRE_ARRAY ); 122 122 123 123 if ( empty( $data ) || empty( $_POST[ self::SAVE_SETTINGS_NONCE_ACTION ] ) || ! wp_verify_nonce( $_POST[ self::SAVE_SETTINGS_NONCE_ACTION ], self::SAVE_SETTINGS_NONCE_ACTION ) ) { … … 177 177 'wp-mail-logging-admin-settings', 178 178 $assets_url . '/js/wp-mail-logging-admin-settings.js', 179 [ 'jquery' ],179 [ 'jquery', 'wp-mail-logging-jquery-confirm' ], 180 180 $plugin_meta['version'] 181 181 ); -
wp-mail-logging/trunk/vendor/autoload.php
r2880502 r2929157 5 5 require_once __DIR__ . '/composer/autoload_real.php'; 6 6 7 return ComposerAutoloaderInit df2ae46301f4573d07a68bb090e3e922::getLoader();7 return ComposerAutoloaderInit69a7d59a98d30eebcee330fbb3951b1e::getLoader(); -
wp-mail-logging/trunk/vendor/composer/autoload_classmap.php
r2880502 r2929157 12 12 'No3x\\WPML\\Helpers\\PluginSilentUpgrader' => $baseDir . '/src/inc/Helpers/PluginSilentUpgrader.php', 13 13 'No3x\\WPML\\Helpers\\PluginSilentUpgraderSkin' => $baseDir . '/src/inc/Helpers/PluginSilentUpgraderSkin.php', 14 'No3x\\WPML\\Migration\\Migration' => $baseDir . '/src/inc/Migration/Migration.php', 14 15 'No3x\\WPML\\Tests\\Helper\\WPML_IntegrationTestCase' => $baseDir . '/tests/helper/WPML_IntegrationTestCase.php', 15 16 'No3x\\WPML\\Tests\\Helper\\WPMailArrayBuilder' => $baseDir . '/tests/helper/WPMailArrayBuilder.php', -
wp-mail-logging/trunk/vendor/composer/autoload_psr4.php
r2880502 r2929157 9 9 'No3x\\WPML\\Tests\\Helper\\' => array($baseDir . '/tests/helper'), 10 10 'No3x\\WPML\\Tests\\' => array($baseDir . '/tests/phpunit/tests'), 11 'No3x\\WPML\\Migration\\' => array($baseDir . '/src/inc/Migration'), 11 12 'No3x\\WPML\\Helpers\\' => array($baseDir . '/src/inc/Helpers'), 12 13 'No3x\\WPML\\Admin\\' => array($baseDir . '/src/inc/Admin'), -
wp-mail-logging/trunk/vendor/composer/autoload_real.php
r2880502 r2929157 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit df2ae46301f4573d07a68bb090e3e9225 class ComposerAutoloaderInit69a7d59a98d30eebcee330fbb3951b1e 6 6 { 7 7 private static $loader; … … 23 23 } 24 24 25 spl_autoload_register(array('ComposerAutoloaderInit df2ae46301f4573d07a68bb090e3e922', 'loadClassLoader'), true, true);25 spl_autoload_register(array('ComposerAutoloaderInit69a7d59a98d30eebcee330fbb3951b1e', 'loadClassLoader'), true, true); 26 26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(); 27 spl_autoload_unregister(array('ComposerAutoloaderInit df2ae46301f4573d07a68bb090e3e922', 'loadClassLoader'));27 spl_autoload_unregister(array('ComposerAutoloaderInit69a7d59a98d30eebcee330fbb3951b1e', 'loadClassLoader')); 28 28 29 29 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); … … 31 31 require_once __DIR__ . '/autoload_static.php'; 32 32 33 call_user_func(\Composer\Autoload\ComposerStaticInit df2ae46301f4573d07a68bb090e3e922::getInitializer($loader));33 call_user_func(\Composer\Autoload\ComposerStaticInit69a7d59a98d30eebcee330fbb3951b1e::getInitializer($loader)); 34 34 } else { 35 35 $map = require __DIR__ . '/autoload_namespaces.php'; -
wp-mail-logging/trunk/vendor/composer/autoload_static.php
r2880502 r2929157 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit df2ae46301f4573d07a68bb090e3e9227 class ComposerStaticInit69a7d59a98d30eebcee330fbb3951b1e 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 12 12 'No3x\\WPML\\Tests\\Helper\\' => 23, 13 13 'No3x\\WPML\\Tests\\' => 16, 14 'No3x\\WPML\\Migration\\' => 20, 14 15 'No3x\\WPML\\Helpers\\' => 18, 15 16 'No3x\\WPML\\Admin\\' => 16, … … 25 26 array ( 26 27 0 => __DIR__ . '/../..' . '/tests/phpunit/tests', 28 ), 29 'No3x\\WPML\\Migration\\' => 30 array ( 31 0 => __DIR__ . '/../..' . '/src/inc/Migration', 27 32 ), 28 33 'No3x\\WPML\\Helpers\\' => … … 42 47 'No3x\\WPML\\Helpers\\PluginSilentUpgrader' => __DIR__ . '/../..' . '/src/inc/Helpers/PluginSilentUpgrader.php', 43 48 'No3x\\WPML\\Helpers\\PluginSilentUpgraderSkin' => __DIR__ . '/../..' . '/src/inc/Helpers/PluginSilentUpgraderSkin.php', 49 'No3x\\WPML\\Migration\\Migration' => __DIR__ . '/../..' . '/src/inc/Migration/Migration.php', 44 50 'No3x\\WPML\\Tests\\Helper\\WPML_IntegrationTestCase' => __DIR__ . '/../..' . '/tests/helper/WPML_IntegrationTestCase.php', 45 51 'No3x\\WPML\\Tests\\Helper\\WPMailArrayBuilder' => __DIR__ . '/../..' . '/tests/helper/WPMailArrayBuilder.php', … … 49 55 { 50 56 return \Closure::bind(function () use ($loader) { 51 $loader->prefixLengthsPsr4 = ComposerStaticInit df2ae46301f4573d07a68bb090e3e922::$prefixLengthsPsr4;52 $loader->prefixDirsPsr4 = ComposerStaticInit df2ae46301f4573d07a68bb090e3e922::$prefixDirsPsr4;53 $loader->classMap = ComposerStaticInit df2ae46301f4573d07a68bb090e3e922::$classMap;57 $loader->prefixLengthsPsr4 = ComposerStaticInit69a7d59a98d30eebcee330fbb3951b1e::$prefixLengthsPsr4; 58 $loader->prefixDirsPsr4 = ComposerStaticInit69a7d59a98d30eebcee330fbb3951b1e::$prefixDirsPsr4; 59 $loader->classMap = ComposerStaticInit69a7d59a98d30eebcee330fbb3951b1e::$classMap; 54 60 55 61 }, null, ClassLoader::class); -
wp-mail-logging/trunk/wp-mail-logging.php
r2925728 r2929157 3 3 * Plugin Name: WP Mail Logging 4 4 * Plugin URI: https://wordpress.org/plugins/wp-mail-logging/ 5 * Version: 1.1 1.25 * Version: 1.12.0 6 6 * Requires at least: 5.0 7 7 * Requires PHP: 7.1
Note: See TracChangeset
for help on using the changeset viewer.