Version Description
- Bring back the upgraded Installer in order to remedy upgrade issues for both subscription and non-subscription clients.
Download this release
Release Info
Developer | zaantar |
Plugin | Toolset Types – Custom Post Types, Custom Fields and Taxonomies |
Version | 2.3.1 |
Comparing to | |
See all releases |
Code changes from version 2.3 to 2.3.1
- application/bootstrap.php +16 -0
- package-lock.json +0 -2265
- readme.txt +5 -1
- vendor/autoload.php +1 -1
- vendor/composer/autoload_classmap.php +2 -0
- vendor/composer/autoload_namespaces.php +1 -0
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +14 -5
- vendor/composer/installed.json +122 -4
- vendor/otgs/icons/css/otgs-icons.css +196 -0
- vendor/otgs/icons/fonts/otgs-icons.eot +0 -0
- vendor/otgs/icons/fonts/otgs-icons.svg +62 -0
- vendor/otgs/icons/fonts/otgs-icons.ttf +0 -0
- vendor/otgs/icons/fonts/otgs-icons.woff +0 -0
- vendor/otgs/icons/icons-overview.html +456 -0
- vendor/otgs/icons/otgs-icons.php +20 -0
- vendor/otgs/icons/plugin-icons/toolset/access/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/access/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/access/icon.svg +25 -0
- vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon.svg +25 -0
- vendor/otgs/icons/plugin-icons/toolset/cred/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/cred/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/cred/icon.svg +24 -0
- vendor/otgs/icons/plugin-icons/toolset/layouts/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/layouts/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/layouts/icon.svg +24 -0
- vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/module-manager/icon.svg +24 -0
- vendor/otgs/icons/plugin-icons/toolset/packager/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/packager/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/packager/icon.svg +26 -0
- vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon.svg +25 -0
- vendor/otgs/icons/plugin-icons/toolset/support/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/support/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/support/icon.svg +24 -0
- vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon.svg +62 -0
- vendor/otgs/icons/plugin-icons/toolset/types/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/types/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/types/icon.svg +24 -0
- vendor/otgs/icons/plugin-icons/toolset/views/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/views/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/toolset/views/icon.svg +27 -0
- vendor/otgs/icons/plugin-icons/wpml/acfml/icon-128.x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/acfml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/acfml/icon.svg +43 -0
- vendor/otgs/icons/plugin-icons/wpml/bpml/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/bpml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/bpml/icon.svg +40 -0
- vendor/otgs/icons/plugin-icons/wpml/gfml/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/gfml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/gfml/icon.svg +39 -0
- vendor/otgs/icons/plugin-icons/wpml/wcml/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wcml/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wcml/icon.svg +38 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-128.x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon.svg +39 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon.svg +38 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon.svg +34 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon.svg +39 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon.svg +39 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon.svg +39 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-128x128.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-256x256.png +0 -0
- vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon.svg +39 -0
- vendor/otgs/installer/README.md +63 -0
- vendor/otgs/installer/changelog.txt +225 -0
- vendor/otgs/installer/dist/css/ui/styles.css +104 -0
- vendor/otgs/installer/dist/js/ui/app.js +701 -0
- vendor/otgs/installer/includes/class-installer-dependencies.php +291 -0
- vendor/otgs/installer/includes/class-installer-theme.php +979 -0
- vendor/otgs/installer/includes/class-installer-upgrader-skins.php +38 -0
- vendor/otgs/installer/includes/class-otgs-installer-factory.php +147 -0
- vendor/otgs/installer/includes/class-otgs-installer-filename-hooks.php +33 -0
- vendor/otgs/installer/includes/class-otgs-installer-icons.php +40 -0
- vendor/otgs/installer/includes/class-otgs-installer-php-functions.php +33 -0
- vendor/otgs/installer/includes/class-otgs-installer-plugins-page-notice.php +89 -0
- vendor/otgs/installer/includes/class-otgs-installer-subscription.php +81 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-hooks.php +78 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-sender.php +49 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-ajax.php +49 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php +43 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-components-storage.php +90 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting-hooks.php +177 -0
- vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php +34 -0
- vendor/otgs/installer/includes/class-otgs-twig-autoloader.php +40 -0
- vendor/otgs/installer/includes/class-translation-service-info.php +40 -0
- vendor/otgs/installer/includes/class-wp-installer-api.php +132 -0
- vendor/otgs/installer/includes/class-wp-installer-channels.php +282 -0
- vendor/otgs/installer/includes/class-wp-installer.php +2829 -0
- vendor/otgs/installer/includes/functions-core.php +18 -0
- vendor/otgs/installer/includes/functions-templates.php +16 -0
- vendor/otgs/installer/installer.php +60 -0
- vendor/otgs/installer/loader.php +155 -0
- vendor/otgs/installer/locale/installer-ar.mo +0 -0
- vendor/otgs/installer/locale/installer-de_DE.mo +0 -0
- vendor/otgs/installer/locale/installer-el.mo +0 -0
- vendor/otgs/installer/locale/installer-es_ES.mo +0 -0
- vendor/otgs/installer/locale/installer-fr_FR.mo +0 -0
- vendor/otgs/installer/locale/installer-he_IL.mo +0 -0
- vendor/otgs/installer/locale/installer-it_IT.mo +0 -0
- vendor/otgs/installer/locale/installer-ja.mo +0 -0
- vendor/otgs/installer/locale/installer-ko_KR.mo +0 -0
- vendor/otgs/installer/locale/installer-nl_NL.mo +0 -0
- vendor/otgs/installer/locale/installer-pl_PL.mo +0 -0
- vendor/otgs/installer/locale/installer-pt_BR.mo +0 -0
- vendor/otgs/installer/locale/installer-pt_PT.mo +0 -0
- vendor/otgs/installer/locale/installer-ru_RU.mo +0 -0
- vendor/otgs/installer/locale/installer-sv_SE.mo +0 -0
- vendor/otgs/installer/locale/installer-uk_UA.mo +0 -0
- vendor/otgs/installer/locale/installer-vi.mo +0 -0
- vendor/otgs/installer/locale/installer-zh_CN.mo +0 -0
- vendor/otgs/installer/locale/installer-zh_TW.mo +0 -0
- vendor/otgs/installer/locale/orig/installer.po +230 -0
- vendor/otgs/installer/phpcs.compatibility.xml +19 -0
- vendor/otgs/installer/phpcs.xml +17 -0
- vendor/otgs/installer/phpunit.xml +24 -0
- vendor/otgs/installer/repositories.xml +13 -0
- vendor/otgs/installer/res/css/admin.css +346 -0
- vendor/otgs/installer/res/css/tooltip/tooltip.css +1 -0
- vendor/otgs/installer/res/img/complete.png +0 -0
- vendor/otgs/installer/res/img/computer.png +0 -0
- vendor/otgs/installer/res/img/dn.gif +0 -0
- vendor/otgs/installer/res/img/dn2.gif +0 -0
- vendor/otgs/installer/res/img/globe.png +0 -0
- vendor/otgs/installer/res/img/icon_error.gif +0 -0
- vendor/otgs/installer/res/img/on.png +0 -0
- vendor/otgs/installer/res/img/spinner.gif +0 -0
- vendor/otgs/installer/res/js/admin.js +463 -0
- vendor/otgs/installer/res/js/channels.js +261 -0
- vendor/otgs/installer/res/js/iframeResizer.min.js +10 -0
- vendor/otgs/installer/res/js/installer_theme_install.js +97 -0
- vendor/otgs/installer/res/js/save-components-setting.js +29 -0
- vendor/otgs/installer/res/js/tooltip/tooltip.js +82 -0
- vendor/otgs/installer/src/js/ui/Switcher.js +44 -0
- vendor/otgs/installer/src/js/ui/UI.js +14 -0
- vendor/otgs/installer/src/js/ui/app.js +10 -0
- vendor/otgs/installer/src/package.json +55 -0
- vendor/otgs/installer/src/postcss.config.js +5 -0
- vendor/otgs/installer/src/scss/ui/styles.scss +141 -0
- vendor/otgs/installer/src/webpack.config.js +56 -0
- vendor/otgs/installer/templates/channel-selector.php +68 -0
- vendor/otgs/installer/templates/components-setting/commercial-tab.twig +7 -0
- vendor/otgs/installer/templates/components-setting/plugins-page.twig +9 -0
- vendor/otgs/installer/templates/components-setting/share-local-data-setting-radio.twig +66 -0
- vendor/otgs/installer/templates/components-setting/share-local-data-setting.twig +50 -0
- vendor/otgs/installer/templates/downloads-list-compact.php +80 -0
- vendor/otgs/installer/templates/downloads-list.php +109 -0
- vendor/otgs/installer/templates/products-compact.php +147 -0
- vendor/otgs/installer/templates/repository-listing.php +271 -0
- vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service-loader.php +36 -0
- vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service.php +27 -0
- vendor/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php +5 -0
- vendor/toolset/toolset-common/inc/toolset.assets.manager.class.php +15 -6
- vendor/toolset/toolset-common/loader.php +6 -1
- vendor/toolset/toolset-common/toolset-common-loader.php +2 -2
- vendor/toolset/types/admin.php +10 -0
- vendor/toolset/types/wpcf.php +8 -0
- wpcf.php +2 -2
application/bootstrap.php
CHANGED
@@ -33,6 +33,22 @@ if ( !defined( 'EDITOR_ADDON_RELPATH' ) ) {
|
|
33 |
define( 'EDITOR_ADDON_RELPATH', WPCF_EMBEDDED_TOOLSET_RELPATH . '/toolset-common/visual-editor' );
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
// Get new functions.php
|
38 |
require_once( dirname( __FILE__ ) . '/functions.php' );
|
33 |
define( 'EDITOR_ADDON_RELPATH', WPCF_EMBEDDED_TOOLSET_RELPATH . '/toolset-common/visual-editor' );
|
34 |
}
|
35 |
|
36 |
+
// installer
|
37 |
+
$installer = TYPES_ABSPATH . '/vendor/otgs/installer/loader.php';
|
38 |
+
if ( file_exists( $installer ) ) {
|
39 |
+
/** @noinspection PhpIncludeInspection */
|
40 |
+
include_once $installer;
|
41 |
+
if ( function_exists( 'WP_Installer_Setup' ) ) {
|
42 |
+
WP_Installer_Setup(
|
43 |
+
$wp_installer_instance,
|
44 |
+
array(
|
45 |
+
'plugins_install_tab' => '1',
|
46 |
+
'repositories_include' => array('toolset', 'wpml')
|
47 |
+
)
|
48 |
+
);
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
|
53 |
// Get new functions.php
|
54 |
require_once( dirname( __FILE__ ) . '/functions.php' );
|
package-lock.json
DELETED
@@ -1,2265 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "otgs-ci",
|
3 |
-
"requires": true,
|
4 |
-
"lockfileVersion": 1,
|
5 |
-
"dependencies": {
|
6 |
-
"ansi-gray": {
|
7 |
-
"version": "0.1.1",
|
8 |
-
"resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
|
9 |
-
"integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=",
|
10 |
-
"requires": {
|
11 |
-
"ansi-wrap": "0.1.0"
|
12 |
-
}
|
13 |
-
},
|
14 |
-
"ansi-regex": {
|
15 |
-
"version": "2.1.1",
|
16 |
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
17 |
-
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
18 |
-
},
|
19 |
-
"ansi-styles": {
|
20 |
-
"version": "2.2.1",
|
21 |
-
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
22 |
-
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
|
23 |
-
},
|
24 |
-
"ansi-wrap": {
|
25 |
-
"version": "0.1.0",
|
26 |
-
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
|
27 |
-
"integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
|
28 |
-
},
|
29 |
-
"archy": {
|
30 |
-
"version": "1.0.0",
|
31 |
-
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
|
32 |
-
"integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA="
|
33 |
-
},
|
34 |
-
"arr-diff": {
|
35 |
-
"version": "4.0.0",
|
36 |
-
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
|
37 |
-
"integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
|
38 |
-
},
|
39 |
-
"arr-flatten": {
|
40 |
-
"version": "1.1.0",
|
41 |
-
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
|
42 |
-
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
|
43 |
-
},
|
44 |
-
"arr-union": {
|
45 |
-
"version": "3.1.0",
|
46 |
-
"resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
|
47 |
-
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
|
48 |
-
},
|
49 |
-
"array-differ": {
|
50 |
-
"version": "1.0.0",
|
51 |
-
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
|
52 |
-
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE="
|
53 |
-
},
|
54 |
-
"array-each": {
|
55 |
-
"version": "1.0.1",
|
56 |
-
"resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
|
57 |
-
"integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
|
58 |
-
},
|
59 |
-
"array-slice": {
|
60 |
-
"version": "1.1.0",
|
61 |
-
"resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
|
62 |
-
"integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
|
63 |
-
},
|
64 |
-
"array-union": {
|
65 |
-
"version": "1.0.2",
|
66 |
-
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
|
67 |
-
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
|
68 |
-
"dev": true,
|
69 |
-
"requires": {
|
70 |
-
"array-uniq": "1.0.3"
|
71 |
-
}
|
72 |
-
},
|
73 |
-
"array-uniq": {
|
74 |
-
"version": "1.0.3",
|
75 |
-
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
|
76 |
-
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY="
|
77 |
-
},
|
78 |
-
"array-unique": {
|
79 |
-
"version": "0.3.2",
|
80 |
-
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
81 |
-
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
|
82 |
-
},
|
83 |
-
"arrify": {
|
84 |
-
"version": "1.0.1",
|
85 |
-
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
|
86 |
-
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
|
87 |
-
"dev": true
|
88 |
-
},
|
89 |
-
"assign-symbols": {
|
90 |
-
"version": "1.0.0",
|
91 |
-
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
|
92 |
-
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
|
93 |
-
},
|
94 |
-
"atob": {
|
95 |
-
"version": "2.1.1",
|
96 |
-
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
|
97 |
-
"integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio="
|
98 |
-
},
|
99 |
-
"balanced-match": {
|
100 |
-
"version": "1.0.0",
|
101 |
-
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
102 |
-
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
103 |
-
},
|
104 |
-
"base": {
|
105 |
-
"version": "0.11.2",
|
106 |
-
"resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
|
107 |
-
"integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
|
108 |
-
"requires": {
|
109 |
-
"cache-base": "1.0.1",
|
110 |
-
"class-utils": "0.3.6",
|
111 |
-
"component-emitter": "1.2.1",
|
112 |
-
"define-property": "1.0.0",
|
113 |
-
"isobject": "3.0.1",
|
114 |
-
"mixin-deep": "1.3.1",
|
115 |
-
"pascalcase": "0.1.1"
|
116 |
-
},
|
117 |
-
"dependencies": {
|
118 |
-
"define-property": {
|
119 |
-
"version": "1.0.0",
|
120 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
121 |
-
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
122 |
-
"requires": {
|
123 |
-
"is-descriptor": "1.0.2"
|
124 |
-
}
|
125 |
-
},
|
126 |
-
"is-accessor-descriptor": {
|
127 |
-
"version": "1.0.0",
|
128 |
-
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
129 |
-
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
130 |
-
"requires": {
|
131 |
-
"kind-of": "6.0.2"
|
132 |
-
}
|
133 |
-
},
|
134 |
-
"is-data-descriptor": {
|
135 |
-
"version": "1.0.0",
|
136 |
-
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
137 |
-
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
138 |
-
"requires": {
|
139 |
-
"kind-of": "6.0.2"
|
140 |
-
}
|
141 |
-
},
|
142 |
-
"is-descriptor": {
|
143 |
-
"version": "1.0.2",
|
144 |
-
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
145 |
-
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
146 |
-
"requires": {
|
147 |
-
"is-accessor-descriptor": "1.0.0",
|
148 |
-
"is-data-descriptor": "1.0.0",
|
149 |
-
"kind-of": "6.0.2"
|
150 |
-
}
|
151 |
-
}
|
152 |
-
}
|
153 |
-
},
|
154 |
-
"beeper": {
|
155 |
-
"version": "1.1.1",
|
156 |
-
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
|
157 |
-
"integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
|
158 |
-
},
|
159 |
-
"brace-expansion": {
|
160 |
-
"version": "1.1.11",
|
161 |
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
162 |
-
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
163 |
-
"requires": {
|
164 |
-
"balanced-match": "1.0.0",
|
165 |
-
"concat-map": "0.0.1"
|
166 |
-
}
|
167 |
-
},
|
168 |
-
"braces": {
|
169 |
-
"version": "2.3.2",
|
170 |
-
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
|
171 |
-
"integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
|
172 |
-
"requires": {
|
173 |
-
"arr-flatten": "1.1.0",
|
174 |
-
"array-unique": "0.3.2",
|
175 |
-
"extend-shallow": "2.0.1",
|
176 |
-
"fill-range": "4.0.0",
|
177 |
-
"isobject": "3.0.1",
|
178 |
-
"repeat-element": "1.1.2",
|
179 |
-
"snapdragon": "0.8.2",
|
180 |
-
"snapdragon-node": "2.1.1",
|
181 |
-
"split-string": "3.1.0",
|
182 |
-
"to-regex": "3.0.2"
|
183 |
-
},
|
184 |
-
"dependencies": {
|
185 |
-
"extend-shallow": {
|
186 |
-
"version": "2.0.1",
|
187 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
188 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
189 |
-
"requires": {
|
190 |
-
"is-extendable": "0.1.1"
|
191 |
-
}
|
192 |
-
}
|
193 |
-
}
|
194 |
-
},
|
195 |
-
"cache-base": {
|
196 |
-
"version": "1.0.1",
|
197 |
-
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
|
198 |
-
"integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
|
199 |
-
"requires": {
|
200 |
-
"collection-visit": "1.0.0",
|
201 |
-
"component-emitter": "1.2.1",
|
202 |
-
"get-value": "2.0.6",
|
203 |
-
"has-value": "1.0.0",
|
204 |
-
"isobject": "3.0.1",
|
205 |
-
"set-value": "2.0.0",
|
206 |
-
"to-object-path": "0.3.0",
|
207 |
-
"union-value": "1.0.0",
|
208 |
-
"unset-value": "1.0.0"
|
209 |
-
}
|
210 |
-
},
|
211 |
-
"chalk": {
|
212 |
-
"version": "1.1.3",
|
213 |
-
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
214 |
-
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
215 |
-
"requires": {
|
216 |
-
"ansi-styles": "2.2.1",
|
217 |
-
"escape-string-regexp": "1.0.5",
|
218 |
-
"has-ansi": "2.0.0",
|
219 |
-
"strip-ansi": "3.0.1",
|
220 |
-
"supports-color": "2.0.0"
|
221 |
-
}
|
222 |
-
},
|
223 |
-
"class-utils": {
|
224 |
-
"version": "0.3.6",
|
225 |
-
"resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
|
226 |
-
"integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
|
227 |
-
"requires": {
|
228 |
-
"arr-union": "3.1.0",
|
229 |
-
"define-property": "0.2.5",
|
230 |
-
"isobject": "3.0.1",
|
231 |
-
"static-extend": "0.1.2"
|
232 |
-
},
|
233 |
-
"dependencies": {
|
234 |
-
"define-property": {
|
235 |
-
"version": "0.2.5",
|
236 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
237 |
-
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
238 |
-
"requires": {
|
239 |
-
"is-descriptor": "0.1.6"
|
240 |
-
}
|
241 |
-
}
|
242 |
-
}
|
243 |
-
},
|
244 |
-
"clone": {
|
245 |
-
"version": "1.0.4",
|
246 |
-
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
247 |
-
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
|
248 |
-
},
|
249 |
-
"clone-stats": {
|
250 |
-
"version": "0.0.1",
|
251 |
-
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
|
252 |
-
"integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE="
|
253 |
-
},
|
254 |
-
"collection-visit": {
|
255 |
-
"version": "1.0.0",
|
256 |
-
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
|
257 |
-
"integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
|
258 |
-
"requires": {
|
259 |
-
"map-visit": "1.0.0",
|
260 |
-
"object-visit": "1.0.1"
|
261 |
-
}
|
262 |
-
},
|
263 |
-
"color-support": {
|
264 |
-
"version": "1.1.3",
|
265 |
-
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
266 |
-
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
|
267 |
-
},
|
268 |
-
"component-emitter": {
|
269 |
-
"version": "1.2.1",
|
270 |
-
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
271 |
-
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
|
272 |
-
},
|
273 |
-
"concat-map": {
|
274 |
-
"version": "0.0.1",
|
275 |
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
276 |
-
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
277 |
-
},
|
278 |
-
"copy-descriptor": {
|
279 |
-
"version": "0.1.1",
|
280 |
-
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
|
281 |
-
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
|
282 |
-
},
|
283 |
-
"core-util-is": {
|
284 |
-
"version": "1.0.2",
|
285 |
-
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
286 |
-
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
287 |
-
},
|
288 |
-
"dateformat": {
|
289 |
-
"version": "2.2.0",
|
290 |
-
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
|
291 |
-
"integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI="
|
292 |
-
},
|
293 |
-
"debug": {
|
294 |
-
"version": "2.6.9",
|
295 |
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
296 |
-
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
297 |
-
"requires": {
|
298 |
-
"ms": "2.0.0"
|
299 |
-
}
|
300 |
-
},
|
301 |
-
"decode-uri-component": {
|
302 |
-
"version": "0.2.0",
|
303 |
-
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
|
304 |
-
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
|
305 |
-
},
|
306 |
-
"defaults": {
|
307 |
-
"version": "1.0.3",
|
308 |
-
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
|
309 |
-
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
|
310 |
-
"requires": {
|
311 |
-
"clone": "1.0.4"
|
312 |
-
}
|
313 |
-
},
|
314 |
-
"define-property": {
|
315 |
-
"version": "2.0.2",
|
316 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
|
317 |
-
"integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
|
318 |
-
"requires": {
|
319 |
-
"is-descriptor": "1.0.2",
|
320 |
-
"isobject": "3.0.1"
|
321 |
-
},
|
322 |
-
"dependencies": {
|
323 |
-
"is-accessor-descriptor": {
|
324 |
-
"version": "1.0.0",
|
325 |
-
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
326 |
-
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
327 |
-
"requires": {
|
328 |
-
"kind-of": "6.0.2"
|
329 |
-
}
|
330 |
-
},
|
331 |
-
"is-data-descriptor": {
|
332 |
-
"version": "1.0.0",
|
333 |
-
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
334 |
-
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
335 |
-
"requires": {
|
336 |
-
"kind-of": "6.0.2"
|
337 |
-
}
|
338 |
-
},
|
339 |
-
"is-descriptor": {
|
340 |
-
"version": "1.0.2",
|
341 |
-
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
342 |
-
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
343 |
-
"requires": {
|
344 |
-
"is-accessor-descriptor": "1.0.0",
|
345 |
-
"is-data-descriptor": "1.0.0",
|
346 |
-
"kind-of": "6.0.2"
|
347 |
-
}
|
348 |
-
}
|
349 |
-
}
|
350 |
-
},
|
351 |
-
"del": {
|
352 |
-
"version": "2.2.2",
|
353 |
-
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
|
354 |
-
"integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
|
355 |
-
"dev": true,
|
356 |
-
"requires": {
|
357 |
-
"globby": "5.0.0",
|
358 |
-
"is-path-cwd": "1.0.0",
|
359 |
-
"is-path-in-cwd": "1.0.1",
|
360 |
-
"object-assign": "4.1.1",
|
361 |
-
"pify": "2.3.0",
|
362 |
-
"pinkie-promise": "2.0.1",
|
363 |
-
"rimraf": "2.6.2"
|
364 |
-
},
|
365 |
-
"dependencies": {
|
366 |
-
"object-assign": {
|
367 |
-
"version": "4.1.1",
|
368 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
369 |
-
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
370 |
-
"dev": true
|
371 |
-
}
|
372 |
-
}
|
373 |
-
},
|
374 |
-
"deprecated": {
|
375 |
-
"version": "0.0.1",
|
376 |
-
"resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz",
|
377 |
-
"integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk="
|
378 |
-
},
|
379 |
-
"detect-file": {
|
380 |
-
"version": "1.0.0",
|
381 |
-
"resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
|
382 |
-
"integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
|
383 |
-
},
|
384 |
-
"duplexer2": {
|
385 |
-
"version": "0.0.2",
|
386 |
-
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
|
387 |
-
"integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
|
388 |
-
"requires": {
|
389 |
-
"readable-stream": "1.1.14"
|
390 |
-
}
|
391 |
-
},
|
392 |
-
"end-of-stream": {
|
393 |
-
"version": "0.1.5",
|
394 |
-
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz",
|
395 |
-
"integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=",
|
396 |
-
"requires": {
|
397 |
-
"once": "1.3.3"
|
398 |
-
}
|
399 |
-
},
|
400 |
-
"escape-string-regexp": {
|
401 |
-
"version": "1.0.5",
|
402 |
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
403 |
-
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
404 |
-
},
|
405 |
-
"expand-brackets": {
|
406 |
-
"version": "2.1.4",
|
407 |
-
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
|
408 |
-
"integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
|
409 |
-
"requires": {
|
410 |
-
"debug": "2.6.9",
|
411 |
-
"define-property": "0.2.5",
|
412 |
-
"extend-shallow": "2.0.1",
|
413 |
-
"posix-character-classes": "0.1.1",
|
414 |
-
"regex-not": "1.0.2",
|
415 |
-
"snapdragon": "0.8.2",
|
416 |
-
"to-regex": "3.0.2"
|
417 |
-
},
|
418 |
-
"dependencies": {
|
419 |
-
"define-property": {
|
420 |
-
"version": "0.2.5",
|
421 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
422 |
-
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
423 |
-
"requires": {
|
424 |
-
"is-descriptor": "0.1.6"
|
425 |
-
}
|
426 |
-
},
|
427 |
-
"extend-shallow": {
|
428 |
-
"version": "2.0.1",
|
429 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
430 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
431 |
-
"requires": {
|
432 |
-
"is-extendable": "0.1.1"
|
433 |
-
}
|
434 |
-
}
|
435 |
-
}
|
436 |
-
},
|
437 |
-
"expand-tilde": {
|
438 |
-
"version": "2.0.2",
|
439 |
-
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
|
440 |
-
"integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
|
441 |
-
"requires": {
|
442 |
-
"homedir-polyfill": "1.0.1"
|
443 |
-
}
|
444 |
-
},
|
445 |
-
"extend": {
|
446 |
-
"version": "3.0.1",
|
447 |
-
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
|
448 |
-
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
|
449 |
-
},
|
450 |
-
"extend-shallow": {
|
451 |
-
"version": "3.0.2",
|
452 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
|
453 |
-
"integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
|
454 |
-
"requires": {
|
455 |
-
"assign-symbols": "1.0.0",
|
456 |
-
"is-extendable": "1.0.1"
|
457 |
-
},
|
458 |
-
"dependencies": {
|
459 |
-
"is-extendable": {
|
460 |
-
"version": "1.0.1",
|
461 |
-
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
462 |
-
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
463 |
-
"requires": {
|
464 |
-
"is-plain-object": "2.0.4"
|
465 |
-
}
|
466 |
-
}
|
467 |
-
}
|
468 |
-
},
|
469 |
-
"extglob": {
|
470 |
-
"version": "2.0.4",
|
471 |
-
"resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
|
472 |
-
"integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
|
473 |
-
"requires": {
|
474 |
-
"array-unique": "0.3.2",
|
475 |
-
"define-property": "1.0.0",
|
476 |
-
"expand-brackets": "2.1.4",
|
477 |
-
"extend-shallow": "2.0.1",
|
478 |
-
"fragment-cache": "0.2.1",
|
479 |
-
"regex-not": "1.0.2",
|
480 |
-
"snapdragon": "0.8.2",
|
481 |
-
"to-regex": "3.0.2"
|
482 |
-
},
|
483 |
-
"dependencies": {
|
484 |
-
"define-property": {
|
485 |
-
"version": "1.0.0",
|
486 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
487 |
-
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
488 |
-
"requires": {
|
489 |
-
"is-descriptor": "1.0.2"
|
490 |
-
}
|
491 |
-
},
|
492 |
-
"extend-shallow": {
|
493 |
-
"version": "2.0.1",
|
494 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
495 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
496 |
-
"requires": {
|
497 |
-
"is-extendable": "0.1.1"
|
498 |
-
}
|
499 |
-
},
|
500 |
-
"is-accessor-descriptor": {
|
501 |
-
"version": "1.0.0",
|
502 |
-
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
503 |
-
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
504 |
-
"requires": {
|
505 |
-
"kind-of": "6.0.2"
|
506 |
-
}
|
507 |
-
},
|
508 |
-
"is-data-descriptor": {
|
509 |
-
"version": "1.0.0",
|
510 |
-
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
511 |
-
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
512 |
-
"requires": {
|
513 |
-
"kind-of": "6.0.2"
|
514 |
-
}
|
515 |
-
},
|
516 |
-
"is-descriptor": {
|
517 |
-
"version": "1.0.2",
|
518 |
-
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
519 |
-
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
520 |
-
"requires": {
|
521 |
-
"is-accessor-descriptor": "1.0.0",
|
522 |
-
"is-data-descriptor": "1.0.0",
|
523 |
-
"kind-of": "6.0.2"
|
524 |
-
}
|
525 |
-
}
|
526 |
-
}
|
527 |
-
},
|
528 |
-
"fancy-log": {
|
529 |
-
"version": "1.3.2",
|
530 |
-
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.2.tgz",
|
531 |
-
"integrity": "sha1-9BEl49hPLn2JpD0G2VjI94vha+E=",
|
532 |
-
"requires": {
|
533 |
-
"ansi-gray": "0.1.1",
|
534 |
-
"color-support": "1.1.3",
|
535 |
-
"time-stamp": "1.1.0"
|
536 |
-
}
|
537 |
-
},
|
538 |
-
"fill-range": {
|
539 |
-
"version": "4.0.0",
|
540 |
-
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
|
541 |
-
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
|
542 |
-
"requires": {
|
543 |
-
"extend-shallow": "2.0.1",
|
544 |
-
"is-number": "3.0.0",
|
545 |
-
"repeat-string": "1.6.1",
|
546 |
-
"to-regex-range": "2.1.1"
|
547 |
-
},
|
548 |
-
"dependencies": {
|
549 |
-
"extend-shallow": {
|
550 |
-
"version": "2.0.1",
|
551 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
552 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
553 |
-
"requires": {
|
554 |
-
"is-extendable": "0.1.1"
|
555 |
-
}
|
556 |
-
}
|
557 |
-
}
|
558 |
-
},
|
559 |
-
"find-index": {
|
560 |
-
"version": "0.1.1",
|
561 |
-
"resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
|
562 |
-
"integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ="
|
563 |
-
},
|
564 |
-
"findup-sync": {
|
565 |
-
"version": "2.0.0",
|
566 |
-
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
|
567 |
-
"integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
|
568 |
-
"requires": {
|
569 |
-
"detect-file": "1.0.0",
|
570 |
-
"is-glob": "3.1.0",
|
571 |
-
"micromatch": "3.1.10",
|
572 |
-
"resolve-dir": "1.0.1"
|
573 |
-
}
|
574 |
-
},
|
575 |
-
"fined": {
|
576 |
-
"version": "1.1.0",
|
577 |
-
"resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz",
|
578 |
-
"integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=",
|
579 |
-
"requires": {
|
580 |
-
"expand-tilde": "2.0.2",
|
581 |
-
"is-plain-object": "2.0.4",
|
582 |
-
"object.defaults": "1.1.0",
|
583 |
-
"object.pick": "1.3.0",
|
584 |
-
"parse-filepath": "1.0.2"
|
585 |
-
}
|
586 |
-
},
|
587 |
-
"first-chunk-stream": {
|
588 |
-
"version": "1.0.0",
|
589 |
-
"resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
|
590 |
-
"integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04="
|
591 |
-
},
|
592 |
-
"flagged-respawn": {
|
593 |
-
"version": "1.0.0",
|
594 |
-
"resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.0.tgz",
|
595 |
-
"integrity": "sha1-Tnmumy6zi/hrO7Vr8+ClaqX8q9c="
|
596 |
-
},
|
597 |
-
"for-in": {
|
598 |
-
"version": "1.0.2",
|
599 |
-
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
600 |
-
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
|
601 |
-
},
|
602 |
-
"for-own": {
|
603 |
-
"version": "1.0.0",
|
604 |
-
"resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
|
605 |
-
"integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
|
606 |
-
"requires": {
|
607 |
-
"for-in": "1.0.2"
|
608 |
-
}
|
609 |
-
},
|
610 |
-
"fragment-cache": {
|
611 |
-
"version": "0.2.1",
|
612 |
-
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
|
613 |
-
"integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
|
614 |
-
"requires": {
|
615 |
-
"map-cache": "0.2.2"
|
616 |
-
}
|
617 |
-
},
|
618 |
-
"fs.realpath": {
|
619 |
-
"version": "1.0.0",
|
620 |
-
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
621 |
-
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
622 |
-
"dev": true
|
623 |
-
},
|
624 |
-
"gaze": {
|
625 |
-
"version": "0.5.2",
|
626 |
-
"resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz",
|
627 |
-
"integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=",
|
628 |
-
"requires": {
|
629 |
-
"globule": "0.1.0"
|
630 |
-
}
|
631 |
-
},
|
632 |
-
"get-value": {
|
633 |
-
"version": "2.0.6",
|
634 |
-
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
|
635 |
-
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
|
636 |
-
},
|
637 |
-
"glob": {
|
638 |
-
"version": "4.5.3",
|
639 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
|
640 |
-
"integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
|
641 |
-
"requires": {
|
642 |
-
"inflight": "1.0.6",
|
643 |
-
"inherits": "2.0.3",
|
644 |
-
"minimatch": "2.0.10",
|
645 |
-
"once": "1.3.3"
|
646 |
-
}
|
647 |
-
},
|
648 |
-
"glob-stream": {
|
649 |
-
"version": "3.1.18",
|
650 |
-
"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz",
|
651 |
-
"integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=",
|
652 |
-
"requires": {
|
653 |
-
"glob": "4.5.3",
|
654 |
-
"glob2base": "0.0.12",
|
655 |
-
"minimatch": "2.0.10",
|
656 |
-
"ordered-read-streams": "0.1.0",
|
657 |
-
"through2": "0.6.5",
|
658 |
-
"unique-stream": "1.0.0"
|
659 |
-
},
|
660 |
-
"dependencies": {
|
661 |
-
"readable-stream": {
|
662 |
-
"version": "1.0.34",
|
663 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
664 |
-
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
665 |
-
"requires": {
|
666 |
-
"core-util-is": "1.0.2",
|
667 |
-
"inherits": "2.0.3",
|
668 |
-
"isarray": "0.0.1",
|
669 |
-
"string_decoder": "0.10.31"
|
670 |
-
}
|
671 |
-
},
|
672 |
-
"through2": {
|
673 |
-
"version": "0.6.5",
|
674 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
675 |
-
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
676 |
-
"requires": {
|
677 |
-
"readable-stream": "1.0.34",
|
678 |
-
"xtend": "4.0.1"
|
679 |
-
}
|
680 |
-
}
|
681 |
-
}
|
682 |
-
},
|
683 |
-
"glob-watcher": {
|
684 |
-
"version": "0.0.6",
|
685 |
-
"resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz",
|
686 |
-
"integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=",
|
687 |
-
"requires": {
|
688 |
-
"gaze": "0.5.2"
|
689 |
-
}
|
690 |
-
},
|
691 |
-
"glob2base": {
|
692 |
-
"version": "0.0.12",
|
693 |
-
"resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
|
694 |
-
"integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
|
695 |
-
"requires": {
|
696 |
-
"find-index": "0.1.1"
|
697 |
-
}
|
698 |
-
},
|
699 |
-
"global-modules": {
|
700 |
-
"version": "1.0.0",
|
701 |
-
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
|
702 |
-
"integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
|
703 |
-
"requires": {
|
704 |
-
"global-prefix": "1.0.2",
|
705 |
-
"is-windows": "1.0.2",
|
706 |
-
"resolve-dir": "1.0.1"
|
707 |
-
}
|
708 |
-
},
|
709 |
-
"global-prefix": {
|
710 |
-
"version": "1.0.2",
|
711 |
-
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
|
712 |
-
"integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
|
713 |
-
"requires": {
|
714 |
-
"expand-tilde": "2.0.2",
|
715 |
-
"homedir-polyfill": "1.0.1",
|
716 |
-
"ini": "1.3.5",
|
717 |
-
"is-windows": "1.0.2",
|
718 |
-
"which": "1.3.1"
|
719 |
-
}
|
720 |
-
},
|
721 |
-
"globby": {
|
722 |
-
"version": "5.0.0",
|
723 |
-
"resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
|
724 |
-
"integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
|
725 |
-
"dev": true,
|
726 |
-
"requires": {
|
727 |
-
"array-union": "1.0.2",
|
728 |
-
"arrify": "1.0.1",
|
729 |
-
"glob": "7.1.2",
|
730 |
-
"object-assign": "4.1.1",
|
731 |
-
"pify": "2.3.0",
|
732 |
-
"pinkie-promise": "2.0.1"
|
733 |
-
},
|
734 |
-
"dependencies": {
|
735 |
-
"glob": {
|
736 |
-
"version": "7.1.2",
|
737 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
738 |
-
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
739 |
-
"dev": true,
|
740 |
-
"requires": {
|
741 |
-
"fs.realpath": "1.0.0",
|
742 |
-
"inflight": "1.0.6",
|
743 |
-
"inherits": "2.0.3",
|
744 |
-
"minimatch": "3.0.4",
|
745 |
-
"once": "1.3.3",
|
746 |
-
"path-is-absolute": "1.0.1"
|
747 |
-
}
|
748 |
-
},
|
749 |
-
"minimatch": {
|
750 |
-
"version": "3.0.4",
|
751 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
752 |
-
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
753 |
-
"dev": true,
|
754 |
-
"requires": {
|
755 |
-
"brace-expansion": "1.1.11"
|
756 |
-
}
|
757 |
-
},
|
758 |
-
"object-assign": {
|
759 |
-
"version": "4.1.1",
|
760 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
761 |
-
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
762 |
-
"dev": true
|
763 |
-
}
|
764 |
-
}
|
765 |
-
},
|
766 |
-
"globule": {
|
767 |
-
"version": "0.1.0",
|
768 |
-
"resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz",
|
769 |
-
"integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=",
|
770 |
-
"requires": {
|
771 |
-
"glob": "3.1.21",
|
772 |
-
"lodash": "1.0.2",
|
773 |
-
"minimatch": "0.2.14"
|
774 |
-
},
|
775 |
-
"dependencies": {
|
776 |
-
"glob": {
|
777 |
-
"version": "3.1.21",
|
778 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
|
779 |
-
"integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
|
780 |
-
"requires": {
|
781 |
-
"graceful-fs": "1.2.3",
|
782 |
-
"inherits": "1.0.2",
|
783 |
-
"minimatch": "0.2.14"
|
784 |
-
}
|
785 |
-
},
|
786 |
-
"graceful-fs": {
|
787 |
-
"version": "1.2.3",
|
788 |
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
|
789 |
-
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q="
|
790 |
-
},
|
791 |
-
"inherits": {
|
792 |
-
"version": "1.0.2",
|
793 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
|
794 |
-
"integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js="
|
795 |
-
},
|
796 |
-
"minimatch": {
|
797 |
-
"version": "0.2.14",
|
798 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
|
799 |
-
"integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
|
800 |
-
"requires": {
|
801 |
-
"lru-cache": "2.7.3",
|
802 |
-
"sigmund": "1.0.1"
|
803 |
-
}
|
804 |
-
}
|
805 |
-
}
|
806 |
-
},
|
807 |
-
"glogg": {
|
808 |
-
"version": "1.0.1",
|
809 |
-
"resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.1.tgz",
|
810 |
-
"integrity": "sha512-ynYqXLoluBKf9XGR1gA59yEJisIL7YHEH4xr3ZziHB5/yl4qWfaK8Js9jGe6gBGCSCKVqiyO30WnRZADvemUNw==",
|
811 |
-
"requires": {
|
812 |
-
"sparkles": "1.0.1"
|
813 |
-
}
|
814 |
-
},
|
815 |
-
"graceful-fs": {
|
816 |
-
"version": "3.0.11",
|
817 |
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
|
818 |
-
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
|
819 |
-
"requires": {
|
820 |
-
"natives": "1.1.4"
|
821 |
-
}
|
822 |
-
},
|
823 |
-
"gulp": {
|
824 |
-
"version": "3.9.1",
|
825 |
-
"resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz",
|
826 |
-
"integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=",
|
827 |
-
"requires": {
|
828 |
-
"archy": "1.0.0",
|
829 |
-
"chalk": "1.1.3",
|
830 |
-
"deprecated": "0.0.1",
|
831 |
-
"gulp-util": "3.0.8",
|
832 |
-
"interpret": "1.1.0",
|
833 |
-
"liftoff": "2.5.0",
|
834 |
-
"minimist": "1.2.0",
|
835 |
-
"orchestrator": "0.3.8",
|
836 |
-
"pretty-hrtime": "1.0.3",
|
837 |
-
"semver": "4.3.6",
|
838 |
-
"tildify": "1.2.0",
|
839 |
-
"v8flags": "2.1.1",
|
840 |
-
"vinyl-fs": "0.3.14"
|
841 |
-
}
|
842 |
-
},
|
843 |
-
"gulp-string-replace": {
|
844 |
-
"version": "0.4.0",
|
845 |
-
"resolved": "https://registry.npmjs.org/gulp-string-replace/-/gulp-string-replace-0.4.0.tgz",
|
846 |
-
"integrity": "sha1-4K+LN+LUxQ+RXW021tly/vZE9xY=",
|
847 |
-
"dev": true,
|
848 |
-
"requires": {
|
849 |
-
"extend": "3.0.1",
|
850 |
-
"gulp-util": "3.0.8",
|
851 |
-
"replacestream": "4.0.3",
|
852 |
-
"through2": "2.0.3"
|
853 |
-
}
|
854 |
-
},
|
855 |
-
"gulp-util": {
|
856 |
-
"version": "3.0.8",
|
857 |
-
"resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
|
858 |
-
"integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
|
859 |
-
"requires": {
|
860 |
-
"array-differ": "1.0.0",
|
861 |
-
"array-uniq": "1.0.3",
|
862 |
-
"beeper": "1.1.1",
|
863 |
-
"chalk": "1.1.3",
|
864 |
-
"dateformat": "2.2.0",
|
865 |
-
"fancy-log": "1.3.2",
|
866 |
-
"gulplog": "1.0.0",
|
867 |
-
"has-gulplog": "0.1.0",
|
868 |
-
"lodash._reescape": "3.0.0",
|
869 |
-
"lodash._reevaluate": "3.0.0",
|
870 |
-
"lodash._reinterpolate": "3.0.0",
|
871 |
-
"lodash.template": "3.6.2",
|
872 |
-
"minimist": "1.2.0",
|
873 |
-
"multipipe": "0.1.2",
|
874 |
-
"object-assign": "3.0.0",
|
875 |
-
"replace-ext": "0.0.1",
|
876 |
-
"through2": "2.0.3",
|
877 |
-
"vinyl": "0.5.3"
|
878 |
-
}
|
879 |
-
},
|
880 |
-
"gulplog": {
|
881 |
-
"version": "1.0.0",
|
882 |
-
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
|
883 |
-
"integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
|
884 |
-
"requires": {
|
885 |
-
"glogg": "1.0.1"
|
886 |
-
}
|
887 |
-
},
|
888 |
-
"has-ansi": {
|
889 |
-
"version": "2.0.0",
|
890 |
-
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
|
891 |
-
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
|
892 |
-
"requires": {
|
893 |
-
"ansi-regex": "2.1.1"
|
894 |
-
}
|
895 |
-
},
|
896 |
-
"has-gulplog": {
|
897 |
-
"version": "0.1.0",
|
898 |
-
"resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
|
899 |
-
"integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
|
900 |
-
"requires": {
|
901 |
-
"sparkles": "1.0.1"
|
902 |
-
}
|
903 |
-
},
|
904 |
-
"has-value": {
|
905 |
-
"version": "1.0.0",
|
906 |
-
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
|
907 |
-
"integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
|
908 |
-
"requires": {
|
909 |
-
"get-value": "2.0.6",
|
910 |
-
"has-values": "1.0.0",
|
911 |
-
"isobject": "3.0.1"
|
912 |
-
}
|
913 |
-
},
|
914 |
-
"has-values": {
|
915 |
-
"version": "1.0.0",
|
916 |
-
"resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
|
917 |
-
"integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
|
918 |
-
"requires": {
|
919 |
-
"is-number": "3.0.0",
|
920 |
-
"kind-of": "4.0.0"
|
921 |
-
},
|
922 |
-
"dependencies": {
|
923 |
-
"kind-of": {
|
924 |
-
"version": "4.0.0",
|
925 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
|
926 |
-
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
927 |
-
"requires": {
|
928 |
-
"is-buffer": "1.1.6"
|
929 |
-
}
|
930 |
-
}
|
931 |
-
}
|
932 |
-
},
|
933 |
-
"homedir-polyfill": {
|
934 |
-
"version": "1.0.1",
|
935 |
-
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
|
936 |
-
"integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=",
|
937 |
-
"requires": {
|
938 |
-
"parse-passwd": "1.0.0"
|
939 |
-
}
|
940 |
-
},
|
941 |
-
"inflight": {
|
942 |
-
"version": "1.0.6",
|
943 |
-
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
944 |
-
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
945 |
-
"requires": {
|
946 |
-
"once": "1.3.3",
|
947 |
-
"wrappy": "1.0.2"
|
948 |
-
}
|
949 |
-
},
|
950 |
-
"inherits": {
|
951 |
-
"version": "2.0.3",
|
952 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
953 |
-
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
954 |
-
},
|
955 |
-
"ini": {
|
956 |
-
"version": "1.3.5",
|
957 |
-
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
|
958 |
-
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
|
959 |
-
},
|
960 |
-
"interpret": {
|
961 |
-
"version": "1.1.0",
|
962 |
-
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
|
963 |
-
"integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
|
964 |
-
},
|
965 |
-
"is-absolute": {
|
966 |
-
"version": "1.0.0",
|
967 |
-
"resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
|
968 |
-
"integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
|
969 |
-
"requires": {
|
970 |
-
"is-relative": "1.0.0",
|
971 |
-
"is-windows": "1.0.2"
|
972 |
-
}
|
973 |
-
},
|
974 |
-
"is-accessor-descriptor": {
|
975 |
-
"version": "0.1.6",
|
976 |
-
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
|
977 |
-
"integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
|
978 |
-
"requires": {
|
979 |
-
"kind-of": "3.2.2"
|
980 |
-
},
|
981 |
-
"dependencies": {
|
982 |
-
"kind-of": {
|
983 |
-
"version": "3.2.2",
|
984 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
985 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
986 |
-
"requires": {
|
987 |
-
"is-buffer": "1.1.6"
|
988 |
-
}
|
989 |
-
}
|
990 |
-
}
|
991 |
-
},
|
992 |
-
"is-buffer": {
|
993 |
-
"version": "1.1.6",
|
994 |
-
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
995 |
-
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
996 |
-
},
|
997 |
-
"is-data-descriptor": {
|
998 |
-
"version": "0.1.4",
|
999 |
-
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
|
1000 |
-
"integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
|
1001 |
-
"requires": {
|
1002 |
-
"kind-of": "3.2.2"
|
1003 |
-
},
|
1004 |
-
"dependencies": {
|
1005 |
-
"kind-of": {
|
1006 |
-
"version": "3.2.2",
|
1007 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1008 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1009 |
-
"requires": {
|
1010 |
-
"is-buffer": "1.1.6"
|
1011 |
-
}
|
1012 |
-
}
|
1013 |
-
}
|
1014 |
-
},
|
1015 |
-
"is-descriptor": {
|
1016 |
-
"version": "0.1.6",
|
1017 |
-
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
|
1018 |
-
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
|
1019 |
-
"requires": {
|
1020 |
-
"is-accessor-descriptor": "0.1.6",
|
1021 |
-
"is-data-descriptor": "0.1.4",
|
1022 |
-
"kind-of": "5.1.0"
|
1023 |
-
},
|
1024 |
-
"dependencies": {
|
1025 |
-
"kind-of": {
|
1026 |
-
"version": "5.1.0",
|
1027 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
|
1028 |
-
"integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
|
1029 |
-
}
|
1030 |
-
}
|
1031 |
-
},
|
1032 |
-
"is-extendable": {
|
1033 |
-
"version": "0.1.1",
|
1034 |
-
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
|
1035 |
-
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
|
1036 |
-
},
|
1037 |
-
"is-extglob": {
|
1038 |
-
"version": "2.1.1",
|
1039 |
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
1040 |
-
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
|
1041 |
-
},
|
1042 |
-
"is-glob": {
|
1043 |
-
"version": "3.1.0",
|
1044 |
-
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
1045 |
-
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
|
1046 |
-
"requires": {
|
1047 |
-
"is-extglob": "2.1.1"
|
1048 |
-
}
|
1049 |
-
},
|
1050 |
-
"is-number": {
|
1051 |
-
"version": "3.0.0",
|
1052 |
-
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
1053 |
-
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
1054 |
-
"requires": {
|
1055 |
-
"kind-of": "3.2.2"
|
1056 |
-
},
|
1057 |
-
"dependencies": {
|
1058 |
-
"kind-of": {
|
1059 |
-
"version": "3.2.2",
|
1060 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1061 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1062 |
-
"requires": {
|
1063 |
-
"is-buffer": "1.1.6"
|
1064 |
-
}
|
1065 |
-
}
|
1066 |
-
}
|
1067 |
-
},
|
1068 |
-
"is-odd": {
|
1069 |
-
"version": "2.0.0",
|
1070 |
-
"resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
|
1071 |
-
"integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
|
1072 |
-
"requires": {
|
1073 |
-
"is-number": "4.0.0"
|
1074 |
-
},
|
1075 |
-
"dependencies": {
|
1076 |
-
"is-number": {
|
1077 |
-
"version": "4.0.0",
|
1078 |
-
"resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
|
1079 |
-
"integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ=="
|
1080 |
-
}
|
1081 |
-
}
|
1082 |
-
},
|
1083 |
-
"is-path-cwd": {
|
1084 |
-
"version": "1.0.0",
|
1085 |
-
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
|
1086 |
-
"integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
|
1087 |
-
"dev": true
|
1088 |
-
},
|
1089 |
-
"is-path-in-cwd": {
|
1090 |
-
"version": "1.0.1",
|
1091 |
-
"resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
|
1092 |
-
"integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
|
1093 |
-
"dev": true,
|
1094 |
-
"requires": {
|
1095 |
-
"is-path-inside": "1.0.1"
|
1096 |
-
}
|
1097 |
-
},
|
1098 |
-
"is-path-inside": {
|
1099 |
-
"version": "1.0.1",
|
1100 |
-
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
|
1101 |
-
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
|
1102 |
-
"dev": true,
|
1103 |
-
"requires": {
|
1104 |
-
"path-is-inside": "1.0.2"
|
1105 |
-
}
|
1106 |
-
},
|
1107 |
-
"is-plain-object": {
|
1108 |
-
"version": "2.0.4",
|
1109 |
-
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
|
1110 |
-
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
|
1111 |
-
"requires": {
|
1112 |
-
"isobject": "3.0.1"
|
1113 |
-
}
|
1114 |
-
},
|
1115 |
-
"is-relative": {
|
1116 |
-
"version": "1.0.0",
|
1117 |
-
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
|
1118 |
-
"integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
|
1119 |
-
"requires": {
|
1120 |
-
"is-unc-path": "1.0.0"
|
1121 |
-
}
|
1122 |
-
},
|
1123 |
-
"is-unc-path": {
|
1124 |
-
"version": "1.0.0",
|
1125 |
-
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
|
1126 |
-
"integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
|
1127 |
-
"requires": {
|
1128 |
-
"unc-path-regex": "0.1.2"
|
1129 |
-
}
|
1130 |
-
},
|
1131 |
-
"is-utf8": {
|
1132 |
-
"version": "0.2.1",
|
1133 |
-
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
|
1134 |
-
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
|
1135 |
-
},
|
1136 |
-
"is-windows": {
|
1137 |
-
"version": "1.0.2",
|
1138 |
-
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
|
1139 |
-
"integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
|
1140 |
-
},
|
1141 |
-
"isarray": {
|
1142 |
-
"version": "0.0.1",
|
1143 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
1144 |
-
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
1145 |
-
},
|
1146 |
-
"isexe": {
|
1147 |
-
"version": "2.0.0",
|
1148 |
-
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
1149 |
-
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
1150 |
-
},
|
1151 |
-
"isobject": {
|
1152 |
-
"version": "3.0.1",
|
1153 |
-
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
|
1154 |
-
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
|
1155 |
-
},
|
1156 |
-
"kind-of": {
|
1157 |
-
"version": "6.0.2",
|
1158 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
|
1159 |
-
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA=="
|
1160 |
-
},
|
1161 |
-
"liftoff": {
|
1162 |
-
"version": "2.5.0",
|
1163 |
-
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
|
1164 |
-
"integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
|
1165 |
-
"requires": {
|
1166 |
-
"extend": "3.0.1",
|
1167 |
-
"findup-sync": "2.0.0",
|
1168 |
-
"fined": "1.1.0",
|
1169 |
-
"flagged-respawn": "1.0.0",
|
1170 |
-
"is-plain-object": "2.0.4",
|
1171 |
-
"object.map": "1.0.1",
|
1172 |
-
"rechoir": "0.6.2",
|
1173 |
-
"resolve": "1.7.1"
|
1174 |
-
}
|
1175 |
-
},
|
1176 |
-
"lodash": {
|
1177 |
-
"version": "1.0.2",
|
1178 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
|
1179 |
-
"integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE="
|
1180 |
-
},
|
1181 |
-
"lodash._basecopy": {
|
1182 |
-
"version": "3.0.1",
|
1183 |
-
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
|
1184 |
-
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY="
|
1185 |
-
},
|
1186 |
-
"lodash._basetostring": {
|
1187 |
-
"version": "3.0.1",
|
1188 |
-
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
|
1189 |
-
"integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U="
|
1190 |
-
},
|
1191 |
-
"lodash._basevalues": {
|
1192 |
-
"version": "3.0.0",
|
1193 |
-
"resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
|
1194 |
-
"integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc="
|
1195 |
-
},
|
1196 |
-
"lodash._getnative": {
|
1197 |
-
"version": "3.9.1",
|
1198 |
-
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
1199 |
-
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U="
|
1200 |
-
},
|
1201 |
-
"lodash._isiterateecall": {
|
1202 |
-
"version": "3.0.9",
|
1203 |
-
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
|
1204 |
-
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw="
|
1205 |
-
},
|
1206 |
-
"lodash._reescape": {
|
1207 |
-
"version": "3.0.0",
|
1208 |
-
"resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
|
1209 |
-
"integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo="
|
1210 |
-
},
|
1211 |
-
"lodash._reevaluate": {
|
1212 |
-
"version": "3.0.0",
|
1213 |
-
"resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
|
1214 |
-
"integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0="
|
1215 |
-
},
|
1216 |
-
"lodash._reinterpolate": {
|
1217 |
-
"version": "3.0.0",
|
1218 |
-
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
1219 |
-
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
|
1220 |
-
},
|
1221 |
-
"lodash._root": {
|
1222 |
-
"version": "3.0.1",
|
1223 |
-
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
|
1224 |
-
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
|
1225 |
-
},
|
1226 |
-
"lodash.escape": {
|
1227 |
-
"version": "3.2.0",
|
1228 |
-
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
|
1229 |
-
"integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
|
1230 |
-
"requires": {
|
1231 |
-
"lodash._root": "3.0.1"
|
1232 |
-
}
|
1233 |
-
},
|
1234 |
-
"lodash.isarguments": {
|
1235 |
-
"version": "3.1.0",
|
1236 |
-
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
1237 |
-
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo="
|
1238 |
-
},
|
1239 |
-
"lodash.isarray": {
|
1240 |
-
"version": "3.0.4",
|
1241 |
-
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
1242 |
-
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U="
|
1243 |
-
},
|
1244 |
-
"lodash.keys": {
|
1245 |
-
"version": "3.1.2",
|
1246 |
-
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
1247 |
-
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
|
1248 |
-
"requires": {
|
1249 |
-
"lodash._getnative": "3.9.1",
|
1250 |
-
"lodash.isarguments": "3.1.0",
|
1251 |
-
"lodash.isarray": "3.0.4"
|
1252 |
-
}
|
1253 |
-
},
|
1254 |
-
"lodash.restparam": {
|
1255 |
-
"version": "3.6.1",
|
1256 |
-
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
|
1257 |
-
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU="
|
1258 |
-
},
|
1259 |
-
"lodash.template": {
|
1260 |
-
"version": "3.6.2",
|
1261 |
-
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
|
1262 |
-
"integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
|
1263 |
-
"requires": {
|
1264 |
-
"lodash._basecopy": "3.0.1",
|
1265 |
-
"lodash._basetostring": "3.0.1",
|
1266 |
-
"lodash._basevalues": "3.0.0",
|
1267 |
-
"lodash._isiterateecall": "3.0.9",
|
1268 |
-
"lodash._reinterpolate": "3.0.0",
|
1269 |
-
"lodash.escape": "3.2.0",
|
1270 |
-
"lodash.keys": "3.1.2",
|
1271 |
-
"lodash.restparam": "3.6.1",
|
1272 |
-
"lodash.templatesettings": "3.1.1"
|
1273 |
-
}
|
1274 |
-
},
|
1275 |
-
"lodash.templatesettings": {
|
1276 |
-
"version": "3.1.1",
|
1277 |
-
"resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
|
1278 |
-
"integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
|
1279 |
-
"requires": {
|
1280 |
-
"lodash._reinterpolate": "3.0.0",
|
1281 |
-
"lodash.escape": "3.2.0"
|
1282 |
-
}
|
1283 |
-
},
|
1284 |
-
"lru-cache": {
|
1285 |
-
"version": "2.7.3",
|
1286 |
-
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
1287 |
-
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI="
|
1288 |
-
},
|
1289 |
-
"make-iterator": {
|
1290 |
-
"version": "1.0.1",
|
1291 |
-
"resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
|
1292 |
-
"integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
|
1293 |
-
"requires": {
|
1294 |
-
"kind-of": "6.0.2"
|
1295 |
-
}
|
1296 |
-
},
|
1297 |
-
"map-cache": {
|
1298 |
-
"version": "0.2.2",
|
1299 |
-
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
|
1300 |
-
"integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
|
1301 |
-
},
|
1302 |
-
"map-visit": {
|
1303 |
-
"version": "1.0.0",
|
1304 |
-
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
|
1305 |
-
"integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
|
1306 |
-
"requires": {
|
1307 |
-
"object-visit": "1.0.1"
|
1308 |
-
}
|
1309 |
-
},
|
1310 |
-
"micromatch": {
|
1311 |
-
"version": "3.1.10",
|
1312 |
-
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
|
1313 |
-
"integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
|
1314 |
-
"requires": {
|
1315 |
-
"arr-diff": "4.0.0",
|
1316 |
-
"array-unique": "0.3.2",
|
1317 |
-
"braces": "2.3.2",
|
1318 |
-
"define-property": "2.0.2",
|
1319 |
-
"extend-shallow": "3.0.2",
|
1320 |
-
"extglob": "2.0.4",
|
1321 |
-
"fragment-cache": "0.2.1",
|
1322 |
-
"kind-of": "6.0.2",
|
1323 |
-
"nanomatch": "1.2.9",
|
1324 |
-
"object.pick": "1.3.0",
|
1325 |
-
"regex-not": "1.0.2",
|
1326 |
-
"snapdragon": "0.8.2",
|
1327 |
-
"to-regex": "3.0.2"
|
1328 |
-
}
|
1329 |
-
},
|
1330 |
-
"minimatch": {
|
1331 |
-
"version": "2.0.10",
|
1332 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
|
1333 |
-
"integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
|
1334 |
-
"requires": {
|
1335 |
-
"brace-expansion": "1.1.11"
|
1336 |
-
}
|
1337 |
-
},
|
1338 |
-
"minimist": {
|
1339 |
-
"version": "1.2.0",
|
1340 |
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
1341 |
-
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
1342 |
-
},
|
1343 |
-
"mixin-deep": {
|
1344 |
-
"version": "1.3.1",
|
1345 |
-
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
|
1346 |
-
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
|
1347 |
-
"requires": {
|
1348 |
-
"for-in": "1.0.2",
|
1349 |
-
"is-extendable": "1.0.1"
|
1350 |
-
},
|
1351 |
-
"dependencies": {
|
1352 |
-
"is-extendable": {
|
1353 |
-
"version": "1.0.1",
|
1354 |
-
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
1355 |
-
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
1356 |
-
"requires": {
|
1357 |
-
"is-plain-object": "2.0.4"
|
1358 |
-
}
|
1359 |
-
}
|
1360 |
-
}
|
1361 |
-
},
|
1362 |
-
"mkdirp": {
|
1363 |
-
"version": "0.5.1",
|
1364 |
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
1365 |
-
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
1366 |
-
"requires": {
|
1367 |
-
"minimist": "0.0.8"
|
1368 |
-
},
|
1369 |
-
"dependencies": {
|
1370 |
-
"minimist": {
|
1371 |
-
"version": "0.0.8",
|
1372 |
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
1373 |
-
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
|
1374 |
-
}
|
1375 |
-
}
|
1376 |
-
},
|
1377 |
-
"ms": {
|
1378 |
-
"version": "2.0.0",
|
1379 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
1380 |
-
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
1381 |
-
},
|
1382 |
-
"multipipe": {
|
1383 |
-
"version": "0.1.2",
|
1384 |
-
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
|
1385 |
-
"integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
|
1386 |
-
"requires": {
|
1387 |
-
"duplexer2": "0.0.2"
|
1388 |
-
}
|
1389 |
-
},
|
1390 |
-
"nanomatch": {
|
1391 |
-
"version": "1.2.9",
|
1392 |
-
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
|
1393 |
-
"integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
|
1394 |
-
"requires": {
|
1395 |
-
"arr-diff": "4.0.0",
|
1396 |
-
"array-unique": "0.3.2",
|
1397 |
-
"define-property": "2.0.2",
|
1398 |
-
"extend-shallow": "3.0.2",
|
1399 |
-
"fragment-cache": "0.2.1",
|
1400 |
-
"is-odd": "2.0.0",
|
1401 |
-
"is-windows": "1.0.2",
|
1402 |
-
"kind-of": "6.0.2",
|
1403 |
-
"object.pick": "1.3.0",
|
1404 |
-
"regex-not": "1.0.2",
|
1405 |
-
"snapdragon": "0.8.2",
|
1406 |
-
"to-regex": "3.0.2"
|
1407 |
-
}
|
1408 |
-
},
|
1409 |
-
"natives": {
|
1410 |
-
"version": "1.1.4",
|
1411 |
-
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz",
|
1412 |
-
"integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg=="
|
1413 |
-
},
|
1414 |
-
"object-assign": {
|
1415 |
-
"version": "3.0.0",
|
1416 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
|
1417 |
-
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
|
1418 |
-
},
|
1419 |
-
"object-copy": {
|
1420 |
-
"version": "0.1.0",
|
1421 |
-
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
|
1422 |
-
"integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
|
1423 |
-
"requires": {
|
1424 |
-
"copy-descriptor": "0.1.1",
|
1425 |
-
"define-property": "0.2.5",
|
1426 |
-
"kind-of": "3.2.2"
|
1427 |
-
},
|
1428 |
-
"dependencies": {
|
1429 |
-
"define-property": {
|
1430 |
-
"version": "0.2.5",
|
1431 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1432 |
-
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1433 |
-
"requires": {
|
1434 |
-
"is-descriptor": "0.1.6"
|
1435 |
-
}
|
1436 |
-
},
|
1437 |
-
"kind-of": {
|
1438 |
-
"version": "3.2.2",
|
1439 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1440 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1441 |
-
"requires": {
|
1442 |
-
"is-buffer": "1.1.6"
|
1443 |
-
}
|
1444 |
-
}
|
1445 |
-
}
|
1446 |
-
},
|
1447 |
-
"object-visit": {
|
1448 |
-
"version": "1.0.1",
|
1449 |
-
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
|
1450 |
-
"integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
|
1451 |
-
"requires": {
|
1452 |
-
"isobject": "3.0.1"
|
1453 |
-
}
|
1454 |
-
},
|
1455 |
-
"object.defaults": {
|
1456 |
-
"version": "1.1.0",
|
1457 |
-
"resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
|
1458 |
-
"integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
|
1459 |
-
"requires": {
|
1460 |
-
"array-each": "1.0.1",
|
1461 |
-
"array-slice": "1.1.0",
|
1462 |
-
"for-own": "1.0.0",
|
1463 |
-
"isobject": "3.0.1"
|
1464 |
-
}
|
1465 |
-
},
|
1466 |
-
"object.map": {
|
1467 |
-
"version": "1.0.1",
|
1468 |
-
"resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
|
1469 |
-
"integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
|
1470 |
-
"requires": {
|
1471 |
-
"for-own": "1.0.0",
|
1472 |
-
"make-iterator": "1.0.1"
|
1473 |
-
}
|
1474 |
-
},
|
1475 |
-
"object.pick": {
|
1476 |
-
"version": "1.3.0",
|
1477 |
-
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
|
1478 |
-
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
|
1479 |
-
"requires": {
|
1480 |
-
"isobject": "3.0.1"
|
1481 |
-
}
|
1482 |
-
},
|
1483 |
-
"once": {
|
1484 |
-
"version": "1.3.3",
|
1485 |
-
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
|
1486 |
-
"integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
|
1487 |
-
"requires": {
|
1488 |
-
"wrappy": "1.0.2"
|
1489 |
-
}
|
1490 |
-
},
|
1491 |
-
"orchestrator": {
|
1492 |
-
"version": "0.3.8",
|
1493 |
-
"resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz",
|
1494 |
-
"integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=",
|
1495 |
-
"requires": {
|
1496 |
-
"end-of-stream": "0.1.5",
|
1497 |
-
"sequencify": "0.0.7",
|
1498 |
-
"stream-consume": "0.1.1"
|
1499 |
-
}
|
1500 |
-
},
|
1501 |
-
"ordered-read-streams": {
|
1502 |
-
"version": "0.1.0",
|
1503 |
-
"resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz",
|
1504 |
-
"integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY="
|
1505 |
-
},
|
1506 |
-
"os-homedir": {
|
1507 |
-
"version": "1.0.2",
|
1508 |
-
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
1509 |
-
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
1510 |
-
},
|
1511 |
-
"parse-filepath": {
|
1512 |
-
"version": "1.0.2",
|
1513 |
-
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
|
1514 |
-
"integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
|
1515 |
-
"requires": {
|
1516 |
-
"is-absolute": "1.0.0",
|
1517 |
-
"map-cache": "0.2.2",
|
1518 |
-
"path-root": "0.1.1"
|
1519 |
-
}
|
1520 |
-
},
|
1521 |
-
"parse-passwd": {
|
1522 |
-
"version": "1.0.0",
|
1523 |
-
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
|
1524 |
-
"integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
|
1525 |
-
},
|
1526 |
-
"pascalcase": {
|
1527 |
-
"version": "0.1.1",
|
1528 |
-
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
|
1529 |
-
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
|
1530 |
-
},
|
1531 |
-
"path-is-absolute": {
|
1532 |
-
"version": "1.0.1",
|
1533 |
-
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
1534 |
-
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
1535 |
-
"dev": true
|
1536 |
-
},
|
1537 |
-
"path-is-inside": {
|
1538 |
-
"version": "1.0.2",
|
1539 |
-
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
|
1540 |
-
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
|
1541 |
-
"dev": true
|
1542 |
-
},
|
1543 |
-
"path-parse": {
|
1544 |
-
"version": "1.0.5",
|
1545 |
-
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
|
1546 |
-
"integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME="
|
1547 |
-
},
|
1548 |
-
"path-root": {
|
1549 |
-
"version": "0.1.1",
|
1550 |
-
"resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
|
1551 |
-
"integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
|
1552 |
-
"requires": {
|
1553 |
-
"path-root-regex": "0.1.2"
|
1554 |
-
}
|
1555 |
-
},
|
1556 |
-
"path-root-regex": {
|
1557 |
-
"version": "0.1.2",
|
1558 |
-
"resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
|
1559 |
-
"integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
|
1560 |
-
},
|
1561 |
-
"pify": {
|
1562 |
-
"version": "2.3.0",
|
1563 |
-
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
1564 |
-
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
|
1565 |
-
"dev": true
|
1566 |
-
},
|
1567 |
-
"pinkie": {
|
1568 |
-
"version": "2.0.4",
|
1569 |
-
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
|
1570 |
-
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
|
1571 |
-
"dev": true
|
1572 |
-
},
|
1573 |
-
"pinkie-promise": {
|
1574 |
-
"version": "2.0.1",
|
1575 |
-
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
|
1576 |
-
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
|
1577 |
-
"dev": true,
|
1578 |
-
"requires": {
|
1579 |
-
"pinkie": "2.0.4"
|
1580 |
-
}
|
1581 |
-
},
|
1582 |
-
"posix-character-classes": {
|
1583 |
-
"version": "0.1.1",
|
1584 |
-
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
|
1585 |
-
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
|
1586 |
-
},
|
1587 |
-
"pretty-hrtime": {
|
1588 |
-
"version": "1.0.3",
|
1589 |
-
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
|
1590 |
-
"integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
|
1591 |
-
},
|
1592 |
-
"process-nextick-args": {
|
1593 |
-
"version": "2.0.0",
|
1594 |
-
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
1595 |
-
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
|
1596 |
-
},
|
1597 |
-
"readable-stream": {
|
1598 |
-
"version": "1.1.14",
|
1599 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
1600 |
-
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
1601 |
-
"requires": {
|
1602 |
-
"core-util-is": "1.0.2",
|
1603 |
-
"inherits": "2.0.3",
|
1604 |
-
"isarray": "0.0.1",
|
1605 |
-
"string_decoder": "0.10.31"
|
1606 |
-
}
|
1607 |
-
},
|
1608 |
-
"rechoir": {
|
1609 |
-
"version": "0.6.2",
|
1610 |
-
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
|
1611 |
-
"integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
|
1612 |
-
"requires": {
|
1613 |
-
"resolve": "1.7.1"
|
1614 |
-
}
|
1615 |
-
},
|
1616 |
-
"regex-not": {
|
1617 |
-
"version": "1.0.2",
|
1618 |
-
"resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
|
1619 |
-
"integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
|
1620 |
-
"requires": {
|
1621 |
-
"extend-shallow": "3.0.2",
|
1622 |
-
"safe-regex": "1.1.0"
|
1623 |
-
}
|
1624 |
-
},
|
1625 |
-
"repeat-element": {
|
1626 |
-
"version": "1.1.2",
|
1627 |
-
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
|
1628 |
-
"integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
|
1629 |
-
},
|
1630 |
-
"repeat-string": {
|
1631 |
-
"version": "1.6.1",
|
1632 |
-
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
1633 |
-
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
1634 |
-
},
|
1635 |
-
"replace-ext": {
|
1636 |
-
"version": "0.0.1",
|
1637 |
-
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
|
1638 |
-
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
|
1639 |
-
},
|
1640 |
-
"replacestream": {
|
1641 |
-
"version": "4.0.3",
|
1642 |
-
"resolved": "https://registry.npmjs.org/replacestream/-/replacestream-4.0.3.tgz",
|
1643 |
-
"integrity": "sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA==",
|
1644 |
-
"dev": true,
|
1645 |
-
"requires": {
|
1646 |
-
"escape-string-regexp": "1.0.5",
|
1647 |
-
"object-assign": "4.1.1",
|
1648 |
-
"readable-stream": "2.3.6"
|
1649 |
-
},
|
1650 |
-
"dependencies": {
|
1651 |
-
"isarray": {
|
1652 |
-
"version": "1.0.0",
|
1653 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
1654 |
-
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
1655 |
-
"dev": true
|
1656 |
-
},
|
1657 |
-
"object-assign": {
|
1658 |
-
"version": "4.1.1",
|
1659 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
1660 |
-
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
1661 |
-
"dev": true
|
1662 |
-
},
|
1663 |
-
"readable-stream": {
|
1664 |
-
"version": "2.3.6",
|
1665 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
1666 |
-
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
1667 |
-
"dev": true,
|
1668 |
-
"requires": {
|
1669 |
-
"core-util-is": "1.0.2",
|
1670 |
-
"inherits": "2.0.3",
|
1671 |
-
"isarray": "1.0.0",
|
1672 |
-
"process-nextick-args": "2.0.0",
|
1673 |
-
"safe-buffer": "5.1.2",
|
1674 |
-
"string_decoder": "1.1.1",
|
1675 |
-
"util-deprecate": "1.0.2"
|
1676 |
-
}
|
1677 |
-
},
|
1678 |
-
"string_decoder": {
|
1679 |
-
"version": "1.1.1",
|
1680 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
1681 |
-
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
1682 |
-
"dev": true,
|
1683 |
-
"requires": {
|
1684 |
-
"safe-buffer": "5.1.2"
|
1685 |
-
}
|
1686 |
-
}
|
1687 |
-
}
|
1688 |
-
},
|
1689 |
-
"resolve": {
|
1690 |
-
"version": "1.7.1",
|
1691 |
-
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
|
1692 |
-
"integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
|
1693 |
-
"requires": {
|
1694 |
-
"path-parse": "1.0.5"
|
1695 |
-
}
|
1696 |
-
},
|
1697 |
-
"resolve-dir": {
|
1698 |
-
"version": "1.0.1",
|
1699 |
-
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
|
1700 |
-
"integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
|
1701 |
-
"requires": {
|
1702 |
-
"expand-tilde": "2.0.2",
|
1703 |
-
"global-modules": "1.0.0"
|
1704 |
-
}
|
1705 |
-
},
|
1706 |
-
"resolve-url": {
|
1707 |
-
"version": "0.2.1",
|
1708 |
-
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
|
1709 |
-
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
|
1710 |
-
},
|
1711 |
-
"ret": {
|
1712 |
-
"version": "0.1.15",
|
1713 |
-
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
|
1714 |
-
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
|
1715 |
-
},
|
1716 |
-
"rimraf": {
|
1717 |
-
"version": "2.6.2",
|
1718 |
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
1719 |
-
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
1720 |
-
"dev": true,
|
1721 |
-
"requires": {
|
1722 |
-
"glob": "7.1.2"
|
1723 |
-
},
|
1724 |
-
"dependencies": {
|
1725 |
-
"glob": {
|
1726 |
-
"version": "7.1.2",
|
1727 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
1728 |
-
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
1729 |
-
"dev": true,
|
1730 |
-
"requires": {
|
1731 |
-
"fs.realpath": "1.0.0",
|
1732 |
-
"inflight": "1.0.6",
|
1733 |
-
"inherits": "2.0.3",
|
1734 |
-
"minimatch": "3.0.4",
|
1735 |
-
"once": "1.3.3",
|
1736 |
-
"path-is-absolute": "1.0.1"
|
1737 |
-
}
|
1738 |
-
},
|
1739 |
-
"minimatch": {
|
1740 |
-
"version": "3.0.4",
|
1741 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
1742 |
-
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
1743 |
-
"dev": true,
|
1744 |
-
"requires": {
|
1745 |
-
"brace-expansion": "1.1.11"
|
1746 |
-
}
|
1747 |
-
}
|
1748 |
-
}
|
1749 |
-
},
|
1750 |
-
"safe-buffer": {
|
1751 |
-
"version": "5.1.2",
|
1752 |
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
1753 |
-
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
1754 |
-
},
|
1755 |
-
"safe-regex": {
|
1756 |
-
"version": "1.1.0",
|
1757 |
-
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
|
1758 |
-
"integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
|
1759 |
-
"requires": {
|
1760 |
-
"ret": "0.1.15"
|
1761 |
-
}
|
1762 |
-
},
|
1763 |
-
"semver": {
|
1764 |
-
"version": "4.3.6",
|
1765 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
1766 |
-
"integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto="
|
1767 |
-
},
|
1768 |
-
"sequencify": {
|
1769 |
-
"version": "0.0.7",
|
1770 |
-
"resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz",
|
1771 |
-
"integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw="
|
1772 |
-
},
|
1773 |
-
"set-value": {
|
1774 |
-
"version": "2.0.0",
|
1775 |
-
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
|
1776 |
-
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
|
1777 |
-
"requires": {
|
1778 |
-
"extend-shallow": "2.0.1",
|
1779 |
-
"is-extendable": "0.1.1",
|
1780 |
-
"is-plain-object": "2.0.4",
|
1781 |
-
"split-string": "3.1.0"
|
1782 |
-
},
|
1783 |
-
"dependencies": {
|
1784 |
-
"extend-shallow": {
|
1785 |
-
"version": "2.0.1",
|
1786 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1787 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1788 |
-
"requires": {
|
1789 |
-
"is-extendable": "0.1.1"
|
1790 |
-
}
|
1791 |
-
}
|
1792 |
-
}
|
1793 |
-
},
|
1794 |
-
"sigmund": {
|
1795 |
-
"version": "1.0.1",
|
1796 |
-
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
|
1797 |
-
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA="
|
1798 |
-
},
|
1799 |
-
"snapdragon": {
|
1800 |
-
"version": "0.8.2",
|
1801 |
-
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
1802 |
-
"integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
|
1803 |
-
"requires": {
|
1804 |
-
"base": "0.11.2",
|
1805 |
-
"debug": "2.6.9",
|
1806 |
-
"define-property": "0.2.5",
|
1807 |
-
"extend-shallow": "2.0.1",
|
1808 |
-
"map-cache": "0.2.2",
|
1809 |
-
"source-map": "0.5.7",
|
1810 |
-
"source-map-resolve": "0.5.2",
|
1811 |
-
"use": "3.1.0"
|
1812 |
-
},
|
1813 |
-
"dependencies": {
|
1814 |
-
"define-property": {
|
1815 |
-
"version": "0.2.5",
|
1816 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1817 |
-
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1818 |
-
"requires": {
|
1819 |
-
"is-descriptor": "0.1.6"
|
1820 |
-
}
|
1821 |
-
},
|
1822 |
-
"extend-shallow": {
|
1823 |
-
"version": "2.0.1",
|
1824 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
1825 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
1826 |
-
"requires": {
|
1827 |
-
"is-extendable": "0.1.1"
|
1828 |
-
}
|
1829 |
-
}
|
1830 |
-
}
|
1831 |
-
},
|
1832 |
-
"snapdragon-node": {
|
1833 |
-
"version": "2.1.1",
|
1834 |
-
"resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
|
1835 |
-
"integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
|
1836 |
-
"requires": {
|
1837 |
-
"define-property": "1.0.0",
|
1838 |
-
"isobject": "3.0.1",
|
1839 |
-
"snapdragon-util": "3.0.1"
|
1840 |
-
},
|
1841 |
-
"dependencies": {
|
1842 |
-
"define-property": {
|
1843 |
-
"version": "1.0.0",
|
1844 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
|
1845 |
-
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
|
1846 |
-
"requires": {
|
1847 |
-
"is-descriptor": "1.0.2"
|
1848 |
-
}
|
1849 |
-
},
|
1850 |
-
"is-accessor-descriptor": {
|
1851 |
-
"version": "1.0.0",
|
1852 |
-
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
|
1853 |
-
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
|
1854 |
-
"requires": {
|
1855 |
-
"kind-of": "6.0.2"
|
1856 |
-
}
|
1857 |
-
},
|
1858 |
-
"is-data-descriptor": {
|
1859 |
-
"version": "1.0.0",
|
1860 |
-
"resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
|
1861 |
-
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
|
1862 |
-
"requires": {
|
1863 |
-
"kind-of": "6.0.2"
|
1864 |
-
}
|
1865 |
-
},
|
1866 |
-
"is-descriptor": {
|
1867 |
-
"version": "1.0.2",
|
1868 |
-
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
|
1869 |
-
"integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
|
1870 |
-
"requires": {
|
1871 |
-
"is-accessor-descriptor": "1.0.0",
|
1872 |
-
"is-data-descriptor": "1.0.0",
|
1873 |
-
"kind-of": "6.0.2"
|
1874 |
-
}
|
1875 |
-
}
|
1876 |
-
}
|
1877 |
-
},
|
1878 |
-
"snapdragon-util": {
|
1879 |
-
"version": "3.0.1",
|
1880 |
-
"resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
|
1881 |
-
"integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
|
1882 |
-
"requires": {
|
1883 |
-
"kind-of": "3.2.2"
|
1884 |
-
},
|
1885 |
-
"dependencies": {
|
1886 |
-
"kind-of": {
|
1887 |
-
"version": "3.2.2",
|
1888 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
1889 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
1890 |
-
"requires": {
|
1891 |
-
"is-buffer": "1.1.6"
|
1892 |
-
}
|
1893 |
-
}
|
1894 |
-
}
|
1895 |
-
},
|
1896 |
-
"source-map": {
|
1897 |
-
"version": "0.5.7",
|
1898 |
-
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
1899 |
-
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
|
1900 |
-
},
|
1901 |
-
"source-map-resolve": {
|
1902 |
-
"version": "0.5.2",
|
1903 |
-
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
|
1904 |
-
"integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
|
1905 |
-
"requires": {
|
1906 |
-
"atob": "2.1.1",
|
1907 |
-
"decode-uri-component": "0.2.0",
|
1908 |
-
"resolve-url": "0.2.1",
|
1909 |
-
"source-map-url": "0.4.0",
|
1910 |
-
"urix": "0.1.0"
|
1911 |
-
}
|
1912 |
-
},
|
1913 |
-
"source-map-url": {
|
1914 |
-
"version": "0.4.0",
|
1915 |
-
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
|
1916 |
-
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
|
1917 |
-
},
|
1918 |
-
"sparkles": {
|
1919 |
-
"version": "1.0.1",
|
1920 |
-
"resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz",
|
1921 |
-
"integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw=="
|
1922 |
-
},
|
1923 |
-
"split-string": {
|
1924 |
-
"version": "3.1.0",
|
1925 |
-
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
|
1926 |
-
"integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
|
1927 |
-
"requires": {
|
1928 |
-
"extend-shallow": "3.0.2"
|
1929 |
-
}
|
1930 |
-
},
|
1931 |
-
"static-extend": {
|
1932 |
-
"version": "0.1.2",
|
1933 |
-
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
1934 |
-
"integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
|
1935 |
-
"requires": {
|
1936 |
-
"define-property": "0.2.5",
|
1937 |
-
"object-copy": "0.1.0"
|
1938 |
-
},
|
1939 |
-
"dependencies": {
|
1940 |
-
"define-property": {
|
1941 |
-
"version": "0.2.5",
|
1942 |
-
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
|
1943 |
-
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
|
1944 |
-
"requires": {
|
1945 |
-
"is-descriptor": "0.1.6"
|
1946 |
-
}
|
1947 |
-
}
|
1948 |
-
}
|
1949 |
-
},
|
1950 |
-
"stream-consume": {
|
1951 |
-
"version": "0.1.1",
|
1952 |
-
"resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
|
1953 |
-
"integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
|
1954 |
-
},
|
1955 |
-
"string_decoder": {
|
1956 |
-
"version": "0.10.31",
|
1957 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
1958 |
-
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
|
1959 |
-
},
|
1960 |
-
"strip-ansi": {
|
1961 |
-
"version": "3.0.1",
|
1962 |
-
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
1963 |
-
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
1964 |
-
"requires": {
|
1965 |
-
"ansi-regex": "2.1.1"
|
1966 |
-
}
|
1967 |
-
},
|
1968 |
-
"strip-bom": {
|
1969 |
-
"version": "1.0.0",
|
1970 |
-
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz",
|
1971 |
-
"integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=",
|
1972 |
-
"requires": {
|
1973 |
-
"first-chunk-stream": "1.0.0",
|
1974 |
-
"is-utf8": "0.2.1"
|
1975 |
-
}
|
1976 |
-
},
|
1977 |
-
"supports-color": {
|
1978 |
-
"version": "2.0.0",
|
1979 |
-
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
1980 |
-
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
|
1981 |
-
},
|
1982 |
-
"through2": {
|
1983 |
-
"version": "2.0.3",
|
1984 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
1985 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
1986 |
-
"requires": {
|
1987 |
-
"readable-stream": "2.3.6",
|
1988 |
-
"xtend": "4.0.1"
|
1989 |
-
},
|
1990 |
-
"dependencies": {
|
1991 |
-
"isarray": {
|
1992 |
-
"version": "1.0.0",
|
1993 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
1994 |
-
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
1995 |
-
},
|
1996 |
-
"readable-stream": {
|
1997 |
-
"version": "2.3.6",
|
1998 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
1999 |
-
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
2000 |
-
"requires": {
|
2001 |
-
"core-util-is": "1.0.2",
|
2002 |
-
"inherits": "2.0.3",
|
2003 |
-
"isarray": "1.0.0",
|
2004 |
-
"process-nextick-args": "2.0.0",
|
2005 |
-
"safe-buffer": "5.1.2",
|
2006 |
-
"string_decoder": "1.1.1",
|
2007 |
-
"util-deprecate": "1.0.2"
|
2008 |
-
}
|
2009 |
-
},
|
2010 |
-
"string_decoder": {
|
2011 |
-
"version": "1.1.1",
|
2012 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
2013 |
-
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
2014 |
-
"requires": {
|
2015 |
-
"safe-buffer": "5.1.2"
|
2016 |
-
}
|
2017 |
-
}
|
2018 |
-
}
|
2019 |
-
},
|
2020 |
-
"tildify": {
|
2021 |
-
"version": "1.2.0",
|
2022 |
-
"resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz",
|
2023 |
-
"integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=",
|
2024 |
-
"requires": {
|
2025 |
-
"os-homedir": "1.0.2"
|
2026 |
-
}
|
2027 |
-
},
|
2028 |
-
"time-stamp": {
|
2029 |
-
"version": "1.1.0",
|
2030 |
-
"resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
|
2031 |
-
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
|
2032 |
-
},
|
2033 |
-
"to-object-path": {
|
2034 |
-
"version": "0.3.0",
|
2035 |
-
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
|
2036 |
-
"integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
|
2037 |
-
"requires": {
|
2038 |
-
"kind-of": "3.2.2"
|
2039 |
-
},
|
2040 |
-
"dependencies": {
|
2041 |
-
"kind-of": {
|
2042 |
-
"version": "3.2.2",
|
2043 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
2044 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
2045 |
-
"requires": {
|
2046 |
-
"is-buffer": "1.1.6"
|
2047 |
-
}
|
2048 |
-
}
|
2049 |
-
}
|
2050 |
-
},
|
2051 |
-
"to-regex": {
|
2052 |
-
"version": "3.0.2",
|
2053 |
-
"resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
|
2054 |
-
"integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
|
2055 |
-
"requires": {
|
2056 |
-
"define-property": "2.0.2",
|
2057 |
-
"extend-shallow": "3.0.2",
|
2058 |
-
"regex-not": "1.0.2",
|
2059 |
-
"safe-regex": "1.1.0"
|
2060 |
-
}
|
2061 |
-
},
|
2062 |
-
"to-regex-range": {
|
2063 |
-
"version": "2.1.1",
|
2064 |
-
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
|
2065 |
-
"integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
|
2066 |
-
"requires": {
|
2067 |
-
"is-number": "3.0.0",
|
2068 |
-
"repeat-string": "1.6.1"
|
2069 |
-
}
|
2070 |
-
},
|
2071 |
-
"unc-path-regex": {
|
2072 |
-
"version": "0.1.2",
|
2073 |
-
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
|
2074 |
-
"integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
|
2075 |
-
},
|
2076 |
-
"union-value": {
|
2077 |
-
"version": "1.0.0",
|
2078 |
-
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
|
2079 |
-
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
|
2080 |
-
"requires": {
|
2081 |
-
"arr-union": "3.1.0",
|
2082 |
-
"get-value": "2.0.6",
|
2083 |
-
"is-extendable": "0.1.1",
|
2084 |
-
"set-value": "0.4.3"
|
2085 |
-
},
|
2086 |
-
"dependencies": {
|
2087 |
-
"extend-shallow": {
|
2088 |
-
"version": "2.0.1",
|
2089 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
2090 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
2091 |
-
"requires": {
|
2092 |
-
"is-extendable": "0.1.1"
|
2093 |
-
}
|
2094 |
-
},
|
2095 |
-
"set-value": {
|
2096 |
-
"version": "0.4.3",
|
2097 |
-
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
|
2098 |
-
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
|
2099 |
-
"requires": {
|
2100 |
-
"extend-shallow": "2.0.1",
|
2101 |
-
"is-extendable": "0.1.1",
|
2102 |
-
"is-plain-object": "2.0.4",
|
2103 |
-
"to-object-path": "0.3.0"
|
2104 |
-
}
|
2105 |
-
}
|
2106 |
-
}
|
2107 |
-
},
|
2108 |
-
"unique-stream": {
|
2109 |
-
"version": "1.0.0",
|
2110 |
-
"resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
|
2111 |
-
"integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs="
|
2112 |
-
},
|
2113 |
-
"unset-value": {
|
2114 |
-
"version": "1.0.0",
|
2115 |
-
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
|
2116 |
-
"integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
|
2117 |
-
"requires": {
|
2118 |
-
"has-value": "0.3.1",
|
2119 |
-
"isobject": "3.0.1"
|
2120 |
-
},
|
2121 |
-
"dependencies": {
|
2122 |
-
"has-value": {
|
2123 |
-
"version": "0.3.1",
|
2124 |
-
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
|
2125 |
-
"integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
|
2126 |
-
"requires": {
|
2127 |
-
"get-value": "2.0.6",
|
2128 |
-
"has-values": "0.1.4",
|
2129 |
-
"isobject": "2.1.0"
|
2130 |
-
},
|
2131 |
-
"dependencies": {
|
2132 |
-
"isobject": {
|
2133 |
-
"version": "2.1.0",
|
2134 |
-
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
|
2135 |
-
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
|
2136 |
-
"requires": {
|
2137 |
-
"isarray": "1.0.0"
|
2138 |
-
}
|
2139 |
-
}
|
2140 |
-
}
|
2141 |
-
},
|
2142 |
-
"has-values": {
|
2143 |
-
"version": "0.1.4",
|
2144 |
-
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
|
2145 |
-
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
|
2146 |
-
},
|
2147 |
-
"isarray": {
|
2148 |
-
"version": "1.0.0",
|
2149 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
2150 |
-
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
2151 |
-
}
|
2152 |
-
}
|
2153 |
-
},
|
2154 |
-
"urix": {
|
2155 |
-
"version": "0.1.0",
|
2156 |
-
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
|
2157 |
-
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
|
2158 |
-
},
|
2159 |
-
"use": {
|
2160 |
-
"version": "3.1.0",
|
2161 |
-
"resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
|
2162 |
-
"integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
|
2163 |
-
"requires": {
|
2164 |
-
"kind-of": "6.0.2"
|
2165 |
-
}
|
2166 |
-
},
|
2167 |
-
"user-home": {
|
2168 |
-
"version": "1.1.1",
|
2169 |
-
"resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
|
2170 |
-
"integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA="
|
2171 |
-
},
|
2172 |
-
"util-deprecate": {
|
2173 |
-
"version": "1.0.2",
|
2174 |
-
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
2175 |
-
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
2176 |
-
},
|
2177 |
-
"v8flags": {
|
2178 |
-
"version": "2.1.1",
|
2179 |
-
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
|
2180 |
-
"integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
|
2181 |
-
"requires": {
|
2182 |
-
"user-home": "1.1.1"
|
2183 |
-
}
|
2184 |
-
},
|
2185 |
-
"vinyl": {
|
2186 |
-
"version": "0.5.3",
|
2187 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
|
2188 |
-
"integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
|
2189 |
-
"requires": {
|
2190 |
-
"clone": "1.0.4",
|
2191 |
-
"clone-stats": "0.0.1",
|
2192 |
-
"replace-ext": "0.0.1"
|
2193 |
-
}
|
2194 |
-
},
|
2195 |
-
"vinyl-fs": {
|
2196 |
-
"version": "0.3.14",
|
2197 |
-
"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz",
|
2198 |
-
"integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=",
|
2199 |
-
"requires": {
|
2200 |
-
"defaults": "1.0.3",
|
2201 |
-
"glob-stream": "3.1.18",
|
2202 |
-
"glob-watcher": "0.0.6",
|
2203 |
-
"graceful-fs": "3.0.11",
|
2204 |
-
"mkdirp": "0.5.1",
|
2205 |
-
"strip-bom": "1.0.0",
|
2206 |
-
"through2": "0.6.5",
|
2207 |
-
"vinyl": "0.4.6"
|
2208 |
-
},
|
2209 |
-
"dependencies": {
|
2210 |
-
"clone": {
|
2211 |
-
"version": "0.2.0",
|
2212 |
-
"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
|
2213 |
-
"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8="
|
2214 |
-
},
|
2215 |
-
"readable-stream": {
|
2216 |
-
"version": "1.0.34",
|
2217 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
2218 |
-
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
2219 |
-
"requires": {
|
2220 |
-
"core-util-is": "1.0.2",
|
2221 |
-
"inherits": "2.0.3",
|
2222 |
-
"isarray": "0.0.1",
|
2223 |
-
"string_decoder": "0.10.31"
|
2224 |
-
}
|
2225 |
-
},
|
2226 |
-
"through2": {
|
2227 |
-
"version": "0.6.5",
|
2228 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
2229 |
-
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
2230 |
-
"requires": {
|
2231 |
-
"readable-stream": "1.0.34",
|
2232 |
-
"xtend": "4.0.1"
|
2233 |
-
}
|
2234 |
-
},
|
2235 |
-
"vinyl": {
|
2236 |
-
"version": "0.4.6",
|
2237 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
|
2238 |
-
"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
|
2239 |
-
"requires": {
|
2240 |
-
"clone": "0.2.0",
|
2241 |
-
"clone-stats": "0.0.1"
|
2242 |
-
}
|
2243 |
-
}
|
2244 |
-
}
|
2245 |
-
},
|
2246 |
-
"which": {
|
2247 |
-
"version": "1.3.1",
|
2248 |
-
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
2249 |
-
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
2250 |
-
"requires": {
|
2251 |
-
"isexe": "2.0.0"
|
2252 |
-
}
|
2253 |
-
},
|
2254 |
-
"wrappy": {
|
2255 |
-
"version": "1.0.2",
|
2256 |
-
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
2257 |
-
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
2258 |
-
},
|
2259 |
-
"xtend": {
|
2260 |
-
"version": "4.0.1",
|
2261 |
-
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
2262 |
-
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
|
2263 |
-
}
|
2264 |
-
}
|
2265 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -8,7 +8,8 @@ License: GPLv2
|
|
8 |
Requires at least: 3.7
|
9 |
Requires PHP: 5.3
|
10 |
Tested up to: 4.9
|
11 |
-
Stable tag: 2.3
|
|
|
12 |
The complete and reliable plugin for managing custom post types, custom taxonomies and custom fields.
|
13 |
|
14 |
== Description ==
|
@@ -170,6 +171,9 @@ Additionally, Types is the only plugin that lets you define parent/child relatio
|
|
170 |
|
171 |
== Changelog ==
|
172 |
|
|
|
|
|
|
|
173 |
= 2.3 =
|
174 |
* Free Types version which will be available on wordpress.org only.
|
175 |
* Added a dismissable notice about what is going on with Types development.
|
8 |
Requires at least: 3.7
|
9 |
Requires PHP: 5.3
|
10 |
Tested up to: 4.9
|
11 |
+
Stable tag: 2.3.1
|
12 |
+
|
13 |
The complete and reliable plugin for managing custom post types, custom taxonomies and custom fields.
|
14 |
|
15 |
== Description ==
|
171 |
|
172 |
== Changelog ==
|
173 |
|
174 |
+
= 2.3.1 =
|
175 |
+
* Bring back the upgraded Installer in order to remedy upgrade issues for both subscription and non-subscription clients.
|
176 |
+
|
177 |
= 2.3 =
|
178 |
* Free Types version which will be available on wordpress.org only.
|
179 |
* Added a dismissable notice about what is going on with Types development.
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit7c997738567ea77204ed10983f70c9f4::getLoader();
|
vendor/composer/autoload_classmap.php
CHANGED
@@ -876,4 +876,6 @@ return array(
|
|
876 |
'WPToolset_Types' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
877 |
'WPV_Handle_Users_Functions' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
878 |
'WPV_wpcf_switch_post_from_attr_id' => $vendorDir . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
|
|
|
|
879 |
);
|
876 |
'WPToolset_Types' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
877 |
'WPV_Handle_Users_Functions' => $vendorDir . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
878 |
'WPV_wpcf_switch_post_from_attr_id' => $vendorDir . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
879 |
+
'xrstf\\Composer52\\AutoloadGenerator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
880 |
+
'xrstf\\Composer52\\Generator' => $vendorDir . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
881 |
);
|
vendor/composer/autoload_namespaces.php
CHANGED
@@ -6,5 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
9 |
'Twig_' => array($vendorDir . '/twig/twig/lib'),
|
10 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
+
'xrstf\\Composer52' => array($vendorDir . '/xrstf/composer-php52/lib'),
|
10 |
'Twig_' => array($vendorDir . '/twig/twig/lib'),
|
11 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071
|
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
-
$includeFiles = Composer\Autoload\
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
-
function
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInit7c997738567ea77204ed10983f70c9f4
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit7c997738567ea77204ed10983f70c9f4', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit7c997738567ea77204ed10983f70c9f4', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit7c997738567ea77204ed10983f70c9f4::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit7c997738567ea77204ed10983f70c9f4::$files;
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
+
composerRequire7c997738567ea77204ed10983f70c9f4($fileIdentifier, $file);
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
+
function composerRequire7c997738567ea77204ed10983f70c9f4($fileIdentifier, $file)
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'a52c1eba913b4ecdd3571194b37baea9' => __DIR__ . '/../..' . '/application/functions.php',
|
@@ -25,6 +25,13 @@ class ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071
|
|
25 |
);
|
26 |
|
27 |
public static $prefixesPsr0 = array (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
'T' =>
|
29 |
array (
|
30 |
'Twig_' =>
|
@@ -905,15 +912,17 @@ class ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071
|
|
905 |
'WPToolset_Types' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
906 |
'WPV_Handle_Users_Functions' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
907 |
'WPV_wpcf_switch_post_from_attr_id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
|
|
|
|
908 |
);
|
909 |
|
910 |
public static function getInitializer(ClassLoader $loader)
|
911 |
{
|
912 |
return \Closure::bind(function () use ($loader) {
|
913 |
-
$loader->prefixLengthsPsr4 =
|
914 |
-
$loader->prefixDirsPsr4 =
|
915 |
-
$loader->prefixesPsr0 =
|
916 |
-
$loader->classMap =
|
917 |
|
918 |
}, null, ClassLoader::class);
|
919 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInit7c997738567ea77204ed10983f70c9f4
|
8 |
{
|
9 |
public static $files = array (
|
10 |
'a52c1eba913b4ecdd3571194b37baea9' => __DIR__ . '/../..' . '/application/functions.php',
|
25 |
);
|
26 |
|
27 |
public static $prefixesPsr0 = array (
|
28 |
+
'x' =>
|
29 |
+
array (
|
30 |
+
'xrstf\\Composer52' =>
|
31 |
+
array (
|
32 |
+
0 => __DIR__ . '/..' . '/xrstf/composer-php52/lib',
|
33 |
+
),
|
34 |
+
),
|
35 |
'T' =>
|
36 |
array (
|
37 |
'Twig_' =>
|
912 |
'WPToolset_Types' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.types.php',
|
913 |
'WPV_Handle_Users_Functions' => __DIR__ . '/..' . '/toolset/toolset-common/toolset-forms/classes/class.conditional.php',
|
914 |
'WPV_wpcf_switch_post_from_attr_id' => __DIR__ . '/..' . '/toolset/toolset-common/inc/toolset.object.relationship.class.php',
|
915 |
+
'xrstf\\Composer52\\AutoloadGenerator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/AutoloadGenerator.php',
|
916 |
+
'xrstf\\Composer52\\Generator' => __DIR__ . '/..' . '/xrstf/composer-php52/lib/xrstf/Composer52/Generator.php',
|
917 |
);
|
918 |
|
919 |
public static function getInitializer(ClassLoader $loader)
|
920 |
{
|
921 |
return \Closure::bind(function () use ($loader) {
|
922 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInit7c997738567ea77204ed10983f70c9f4::$prefixLengthsPsr4;
|
923 |
+
$loader->prefixDirsPsr4 = ComposerStaticInit7c997738567ea77204ed10983f70c9f4::$prefixDirsPsr4;
|
924 |
+
$loader->prefixesPsr0 = ComposerStaticInit7c997738567ea77204ed10983f70c9f4::$prefixesPsr0;
|
925 |
+
$loader->classMap = ComposerStaticInit7c997738567ea77204ed10983f70c9f4::$classMap;
|
926 |
|
927 |
}, null, ClassLoader::class);
|
928 |
}
|
vendor/composer/installed.json
CHANGED
@@ -118,6 +118,91 @@
|
|
118 |
"zikula"
|
119 |
]
|
120 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
121 |
{
|
122 |
"name": "roave/security-advisories",
|
123 |
"version": "dev-master",
|
@@ -308,12 +393,12 @@
|
|
308 |
},
|
309 |
{
|
310 |
"name": "toolset/toolset-common",
|
311 |
-
"version": "2.8",
|
312 |
-
"version_normalized": "2.8.
|
313 |
"source": {
|
314 |
"type": "git",
|
315 |
"url": "ssh://git@git.onthegosystems.com:10022/toolset/toolset-common.git",
|
316 |
-
"reference": "
|
317 |
},
|
318 |
"require": {
|
319 |
"php": ">=5.2.0"
|
@@ -325,7 +410,7 @@
|
|
325 |
"phpunit/php-token-stream": "<2.0",
|
326 |
"sebastian/phpcpd": "^3.0"
|
327 |
},
|
328 |
-
"time": "2018-
|
329 |
"type": "library",
|
330 |
"extra": {
|
331 |
"branch-alias": {
|
@@ -444,5 +529,38 @@
|
|
444 |
"keywords": [
|
445 |
"templating"
|
446 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
}
|
448 |
]
|
118 |
"zikula"
|
119 |
]
|
120 |
},
|
121 |
+
{
|
122 |
+
"name": "otgs/icons",
|
123 |
+
"version": "dev-master",
|
124 |
+
"version_normalized": "9999999-dev",
|
125 |
+
"source": {
|
126 |
+
"type": "git",
|
127 |
+
"url": "https://git.onthegosystems.com/otgs-public/otgs-icons.git",
|
128 |
+
"reference": "622ab3c0549b70c87fa20de1c302ffcc07ea8f9c"
|
129 |
+
},
|
130 |
+
"time": "2018-04-06T08:47:19+00:00",
|
131 |
+
"type": "library",
|
132 |
+
"installation-source": "source",
|
133 |
+
"notification-url": "https://packagist.org/downloads/",
|
134 |
+
"license": [
|
135 |
+
"GPL-2.0"
|
136 |
+
],
|
137 |
+
"description": "Toolset and WPML icons"
|
138 |
+
},
|
139 |
+
{
|
140 |
+
"name": "otgs/installer",
|
141 |
+
"version": "1.8.18",
|
142 |
+
"version_normalized": "1.8.18.0",
|
143 |
+
"source": {
|
144 |
+
"type": "git",
|
145 |
+
"url": "ssh://git@git.onthegosystems.com:10022/installer/installer.git",
|
146 |
+
"reference": "df1ab1ff7b017dadc0aae62b29f2d51ae8b7fd0d"
|
147 |
+
},
|
148 |
+
"require": {
|
149 |
+
"composer/installers": "~1.0",
|
150 |
+
"otgs/icons": "dev-master",
|
151 |
+
"php": ">=5.2.0",
|
152 |
+
"roave/security-advisories": "dev-master",
|
153 |
+
"twig/twig": "~1.32.0",
|
154 |
+
"xrstf/composer-php52": "1.*"
|
155 |
+
},
|
156 |
+
"require-dev": {
|
157 |
+
"otgs/build-tools": "~0.1",
|
158 |
+
"otgs/build-tools-ci": "~0.7",
|
159 |
+
"otgs/unit-tests-framework": "~1.2.0",
|
160 |
+
"sebastian/phpcpd": "^3.0"
|
161 |
+
},
|
162 |
+
"time": "2018-06-06T08:51:23+00:00",
|
163 |
+
"type": "library",
|
164 |
+
"extra": {
|
165 |
+
"branch-alias": {
|
166 |
+
"dev-master": "1.8.x-dev",
|
167 |
+
"dev-develop": "1.8.x-dev"
|
168 |
+
}
|
169 |
+
},
|
170 |
+
"installation-source": "source",
|
171 |
+
"scripts": {
|
172 |
+
"test": [
|
173 |
+
"phpunit"
|
174 |
+
],
|
175 |
+
"post-install-cmd": [
|
176 |
+
"xrstf\\Composer52\\Generator::onPostInstallCmd",
|
177 |
+
"OTGS\\Composer\\Scripts\\Install::PHPCSStandards"
|
178 |
+
],
|
179 |
+
"post-update-cmd": [
|
180 |
+
"xrstf\\Composer52\\Generator::onPostInstallCmd",
|
181 |
+
"OTGS\\Composer\\Scripts\\Install::PHPCSStandards"
|
182 |
+
],
|
183 |
+
"post-autoload-dump": [
|
184 |
+
"xrstf\\Composer52\\Generator::onPostInstallCmd"
|
185 |
+
]
|
186 |
+
},
|
187 |
+
"license": [
|
188 |
+
"GPL-2.0-or-later"
|
189 |
+
],
|
190 |
+
"authors": [
|
191 |
+
{
|
192 |
+
"name": "Mihai Grigori",
|
193 |
+
"email": "mihai@wpml.org",
|
194 |
+
"homepage": "http://www.wp-types.com"
|
195 |
+
}
|
196 |
+
],
|
197 |
+
"description": "Installs and updates WPML and Toolset dependencies automatically",
|
198 |
+
"homepage": "https://git.onthegosystems.com/installer/installer",
|
199 |
+
"keywords": [
|
200 |
+
"install",
|
201 |
+
"plugins",
|
202 |
+
"update",
|
203 |
+
"utils"
|
204 |
+
]
|
205 |
+
},
|
206 |
{
|
207 |
"name": "roave/security-advisories",
|
208 |
"version": "dev-master",
|
393 |
},
|
394 |
{
|
395 |
"name": "toolset/toolset-common",
|
396 |
+
"version": "2.8.1",
|
397 |
+
"version_normalized": "2.8.1.0",
|
398 |
"source": {
|
399 |
"type": "git",
|
400 |
"url": "ssh://git@git.onthegosystems.com:10022/toolset/toolset-common.git",
|
401 |
+
"reference": "ff9291e1a518f4b3c4ba36bd1a211751d370b8b5"
|
402 |
},
|
403 |
"require": {
|
404 |
"php": ">=5.2.0"
|
410 |
"phpunit/php-token-stream": "<2.0",
|
411 |
"sebastian/phpcpd": "^3.0"
|
412 |
},
|
413 |
+
"time": "2018-06-06T11:29:44+00:00",
|
414 |
"type": "library",
|
415 |
"extra": {
|
416 |
"branch-alias": {
|
529 |
"keywords": [
|
530 |
"templating"
|
531 |
]
|
532 |
+
},
|
533 |
+
{
|
534 |
+
"name": "xrstf/composer-php52",
|
535 |
+
"version": "v1.0.20",
|
536 |
+
"version_normalized": "1.0.20.0",
|
537 |
+
"source": {
|
538 |
+
"type": "git",
|
539 |
+
"url": "https://github.com/composer-php52/composer-php52.git",
|
540 |
+
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8"
|
541 |
+
},
|
542 |
+
"dist": {
|
543 |
+
"type": "zip",
|
544 |
+
"url": "https://api.github.com/repos/composer-php52/composer-php52/zipball/bd41459d5e27df8d33057842b32377c39e97a5a8",
|
545 |
+
"reference": "bd41459d5e27df8d33057842b32377c39e97a5a8",
|
546 |
+
"shasum": ""
|
547 |
+
},
|
548 |
+
"time": "2016-04-16T21:52:24+00:00",
|
549 |
+
"type": "library",
|
550 |
+
"extra": {
|
551 |
+
"branch-alias": {
|
552 |
+
"dev-default": "1.x-dev"
|
553 |
+
}
|
554 |
+
},
|
555 |
+
"installation-source": "dist",
|
556 |
+
"autoload": {
|
557 |
+
"psr-0": {
|
558 |
+
"xrstf\\Composer52": "lib/"
|
559 |
+
}
|
560 |
+
},
|
561 |
+
"notification-url": "https://packagist.org/downloads/",
|
562 |
+
"license": [
|
563 |
+
"MIT"
|
564 |
+
]
|
565 |
}
|
566 |
]
|
vendor/otgs/icons/css/otgs-icons.css
ADDED
@@ -0,0 +1,196 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@charset "UTF-8";
|
2 |
+
|
3 |
+
@font-face {
|
4 |
+
font-family: "otgs-icons";
|
5 |
+
src:url("fonts/otgs-icons.eot");
|
6 |
+
src:url("fonts/otgs-icons.eot?#iefix") format("embedded-opentype"),
|
7 |
+
url("fonts/otgs-icons.woff") format("woff"),
|
8 |
+
url("fonts/otgs-icons.ttf") format("truetype"),
|
9 |
+
url("fonts/otgs-icons.svg#otgs-icons") format("svg");
|
10 |
+
font-weight: normal;
|
11 |
+
font-style: normal;
|
12 |
+
|
13 |
+
}
|
14 |
+
|
15 |
+
[data-icon]:before {
|
16 |
+
font-family: "otgs-icons" !important;
|
17 |
+
content: attr(data-icon);
|
18 |
+
font-style: normal !important;
|
19 |
+
font-weight: normal !important;
|
20 |
+
font-variant: normal !important;
|
21 |
+
text-transform: none !important;
|
22 |
+
speak: none;
|
23 |
+
line-height: 1;
|
24 |
+
-webkit-font-smoothing: antialiased;
|
25 |
+
-moz-osx-font-smoothing: grayscale;
|
26 |
+
}
|
27 |
+
|
28 |
+
[class^="otgs-ico-"]:before,
|
29 |
+
[class*=" otgs-ico-"]:before {
|
30 |
+
font-family: "otgs-icons" !important;
|
31 |
+
font-style: normal !important;
|
32 |
+
font-weight: normal !important;
|
33 |
+
font-variant: normal !important;
|
34 |
+
text-transform: none !important;
|
35 |
+
speak: none;
|
36 |
+
line-height: 1;
|
37 |
+
-webkit-font-smoothing: antialiased;
|
38 |
+
-moz-osx-font-smoothing: grayscale;
|
39 |
+
}
|
40 |
+
|
41 |
+
.otgs-ico-note-add:before {
|
42 |
+
content: "\61";
|
43 |
+
}
|
44 |
+
.otgs-ico-note-add-o:before {
|
45 |
+
content: "\62";
|
46 |
+
}
|
47 |
+
.otgs-ico-translated:before {
|
48 |
+
content: "\63";
|
49 |
+
}
|
50 |
+
.otgs-ico-yes:before {
|
51 |
+
content: "\64";
|
52 |
+
}
|
53 |
+
.otgs-ico-in-progress:before {
|
54 |
+
content: "\65";
|
55 |
+
}
|
56 |
+
.otgs-ico-copy:before {
|
57 |
+
content: "\66";
|
58 |
+
}
|
59 |
+
.otgs-ico-copy-o:before {
|
60 |
+
content: "\67";
|
61 |
+
}
|
62 |
+
.otgs-ico-note-edit:before {
|
63 |
+
content: "\69";
|
64 |
+
}
|
65 |
+
.otgs-ico-note-edit-o:before {
|
66 |
+
content: "\6a";
|
67 |
+
}
|
68 |
+
.otgs-ico-add:before {
|
69 |
+
content: "\6b";
|
70 |
+
}
|
71 |
+
.otgs-ico-refresh:before {
|
72 |
+
content: "\6c";
|
73 |
+
}
|
74 |
+
.otgs-ico-no:before {
|
75 |
+
content: "\6e";
|
76 |
+
}
|
77 |
+
.otgs-ico-not-translated:before {
|
78 |
+
content: "\6f";
|
79 |
+
}
|
80 |
+
.otgs-ico-delete:before {
|
81 |
+
content: "\70";
|
82 |
+
}
|
83 |
+
.otgs-ico-waiting:before {
|
84 |
+
content: "\71";
|
85 |
+
}
|
86 |
+
.otgs-ico-warning:before {
|
87 |
+
content: "\73";
|
88 |
+
}
|
89 |
+
.otgs-ico-original:before {
|
90 |
+
content: "\74";
|
91 |
+
}
|
92 |
+
.otgs-ico-needs-update:before {
|
93 |
+
content: "\75";
|
94 |
+
}
|
95 |
+
.otgs-ico-cred:before {
|
96 |
+
content: "\77";
|
97 |
+
}
|
98 |
+
.otgs-ico-layouts:before {
|
99 |
+
content: "\78";
|
100 |
+
}
|
101 |
+
.otgs-ico-module-manager:before {
|
102 |
+
content: "\79";
|
103 |
+
}
|
104 |
+
.otgs-ico-toolset:before {
|
105 |
+
content: "\7a";
|
106 |
+
}
|
107 |
+
.otgs-ico-types:before {
|
108 |
+
content: "\41";
|
109 |
+
}
|
110 |
+
.otgs-ico-views:before {
|
111 |
+
content: "\42";
|
112 |
+
}
|
113 |
+
.otgs-ico-edit:before {
|
114 |
+
content: "\68";
|
115 |
+
}
|
116 |
+
.otgs-ico-duplicate:before {
|
117 |
+
content: "\6d";
|
118 |
+
}
|
119 |
+
.otgs-ico-basket:before {
|
120 |
+
content: "\72";
|
121 |
+
}
|
122 |
+
.otgs-ico-discoverwp:before {
|
123 |
+
content: "\43";
|
124 |
+
}
|
125 |
+
.otgs-ico-wpml:before {
|
126 |
+
content: "\44";
|
127 |
+
}
|
128 |
+
.otgs-ico-otgs:before {
|
129 |
+
content: "\45";
|
130 |
+
}
|
131 |
+
.otgs-ico-wrench:before {
|
132 |
+
content: "\46";
|
133 |
+
}
|
134 |
+
.otgs-ico-link:before {
|
135 |
+
content: "\47";
|
136 |
+
}
|
137 |
+
.otgs-ico-envelope-o:before {
|
138 |
+
content: "\48";
|
139 |
+
}
|
140 |
+
.otgs-ico-user:before {
|
141 |
+
content: "\49";
|
142 |
+
}
|
143 |
+
.otgs-ico-wpml-cms-nav:before {
|
144 |
+
content: "\4a";
|
145 |
+
}
|
146 |
+
.otgs-ico-wpml-media:before {
|
147 |
+
content: "\4b";
|
148 |
+
}
|
149 |
+
.otgs-ico-wpml-string-translation:before {
|
150 |
+
content: "\4c";
|
151 |
+
}
|
152 |
+
.otgs-ico-wpml-translation-management:before {
|
153 |
+
content: "\4d";
|
154 |
+
}
|
155 |
+
.otgs-ico-picture:before {
|
156 |
+
content: "\4e";
|
157 |
+
}
|
158 |
+
.otgs-ico-toolset-training:before {
|
159 |
+
content: "\4f";
|
160 |
+
}
|
161 |
+
.otgs-ico-access-title:before {
|
162 |
+
content: "\50";
|
163 |
+
}
|
164 |
+
.otgs-ico-views-title:before {
|
165 |
+
content: "\51";
|
166 |
+
}
|
167 |
+
.otgs-ico-cred-title:before {
|
168 |
+
content: "\52";
|
169 |
+
}
|
170 |
+
.otgs-ico-layouts-title:before {
|
171 |
+
content: "\53";
|
172 |
+
}
|
173 |
+
.otgs-ico-types-title:before {
|
174 |
+
content: "\54";
|
175 |
+
}
|
176 |
+
.otgs-ico-module-manager-title:before {
|
177 |
+
content: "\55";
|
178 |
+
}
|
179 |
+
.otgs-ico-access:before {
|
180 |
+
content: "\76";
|
181 |
+
}
|
182 |
+
.otgs-ico-bullhorn:before {
|
183 |
+
content: "\56";
|
184 |
+
}
|
185 |
+
.otgs-ico-comment:before {
|
186 |
+
content: "\57";
|
187 |
+
}
|
188 |
+
.otgs-ico-quote:before {
|
189 |
+
content: "\58";
|
190 |
+
}
|
191 |
+
.otgs-ico-thumbsup:before {
|
192 |
+
content: "\59";
|
193 |
+
}
|
194 |
+
.otgs-ico-star:before {
|
195 |
+
content: "\5a";
|
196 |
+
}
|
vendor/otgs/icons/fonts/otgs-icons.eot
ADDED
Binary file
|
vendor/otgs/icons/fonts/otgs-icons.svg
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Generated by Fontastic.me</metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="otgs-icons" horiz-adv-x="512">
|
7 |
+
<font-face font-family="otgs-icons" units-per-em="512" ascent="480" descent="-32"/>
|
8 |
+
<missing-glyph horiz-adv-x="512" />
|
9 |
+
|
10 |
+
<glyph glyph-name="note-add" unicode="a" d="M394 304c-49 0-89 39-89 89l0 59-180 0c-36 0-65-29-65-65l0-261c0-70 66-66 66-66l261 0c36 0 65 29 65 65l0 179z m-92-91l-29 0 0-29c0-15-12-27-27-27-16 0-28 12-28 27l0 29-30 0c-16 0-28 12-28 28 0 15 12 27 28 27l29 0 0 29c0 15 12 27 27 27 15 0 27-12 27-27l0-29 29 0c16 0 28-12 28-27 1-14-11-28-26-28z m97 132l52 0-110 109 0-51c2-33 28-58 58-58z"/>
|
11 |
+
<glyph glyph-name="note-add-o" unicode="b" d="M242 324c16 0 28-12 28-27l0-29 29 0c15 0 27-12 27-27 0-16-12-28-27-28l-29 0 0-29c0-15-12-27-28-27-15 0-27 12-27 27l0 29-29 0c-15 0-27 12-27 28 0 15 12 27 27 27l29 0 0 29c0 14 12 27 27 27z m77 140l-196 0c-44 0-80-36-80-80l0-258c0-65 51-82 80-82l259 0c45 0 81 36 81 81l0 194z m0-48l97-99-25 0c-39 0-72 33-72 72z m111-293c0-26-20-46-46-46l-259 0c-14 0-48 5-48 49l0 258c0 26 20 46 46 46l162 0 0-41c0-58 48-104 104-104l41 0z"/>
|
12 |
+
<glyph glyph-name="translated" unicode="c" d="M439 384c-19 19-50 19-70 0l-156-154-70 70c-18 19-49 19-70 0-18-18-18-49 0-70l104-104c19-18 52-18 70 0l190 188c20 21 20 51 2 70z"/>
|
13 |
+
<glyph glyph-name="yes" unicode="d" d="M111 44c-7 0-36 2-58 23-15 15-24 35-24 61l0 256c0 44 36 80 80 80l179 0 0-34-177 0c-26 0-46-20-46-46l0-258c0-15 5-29 12-36 13-13 34-11 36-11l259 0c26 0 46 20 46 46l0 179 34 0 0-179c0-45-36-81-80-81l-259 0c0 0-2 0-2 0z m123 108c-9 0-17 3-24 10l-91 89c-13 14-13 34 0 48 14 13 35 13 48 0l60-60 140 213c10 16 31 21 48 11 15-11 20-31 10-48l-164-249c-5-9-15-14-25-16 0 2 0 2-2 2z"/>
|
14 |
+
<glyph glyph-name="in-progress" unicode="e" d="M329 203l0-15c-1-9-8-16-17-17l-17 0c-1 0-3 0-5-2-2 0-3-2-5-3-7-7-7-16-2-23l4-3 7-7 3-3c5-7 5-17 0-24l-12-12c-7-5-17-5-24 0l-5 3-7 7-3 4c0 0-2 0-2 1-2 2-5 2-7 2 0 0 0 0-1 0-2 0-4 0-6 0 0 0-1 0-1-2 0 0 0 0-2 0-2 0-2-1-3-3-2-2-4-5-4-9l0-17c-2-8-8-15-17-17l-15 0c-9 2-16 9-17 17l0 17c0 4-2 7-5 11-4 3-9 5-14 5 0 0 0 0-2 0 0 0-2 0-2 0 0 0-1 0-1 0 0 0-2 0-2 0 0 0 0 0-2 0 0 0 0 0-1-2l-9-9-3-3c-7-5-17-5-24 0l-12 12c-5 7-5 17 0 24l3 3 7 7 4 3c1 4 3 7 3 11 0 7-5 13-12 15 0 0 0 0-2 0 0 0-1 0-1 0l-19 0c-9 2-16 9-17 17l0 16c1 8 8 17 17 17l17 0c3 0 7 1 10 5 4 3 5 8 5 13 0 0 0 2 0 2 0 0 0 2 0 2 0 0 0 0 0 1 0 0 0 0 0 2l-12 7-3 3c-5 7-5 17 0 24l12 12c7 5 17 5 24 0l3-3 7-7 3-3c4-2 7-4 11-4 3 0 8 2 10 4 2 1 3 3 3 5 0 0 0 1 0 1 0 0 0 2 0 2 0 0 0 2 0 2 0 0 0 2 0 2l0 18c2 9 9 16 17 17l16 0c8-1 15-8 17-17l0-17c0-3 1-7 5-10 2-2 3-3 5-3 5-2 12-2 17 1l12 12c7 5 17 5 24 0l12-12c5-7 5-17 0-24l0-3-10-10c-2-2-2-4-4-5 0-2-2-4-2-5 0-6 4-11 7-14 2-2 5-2 7-4l22 0c9 0 16-6 17-15z m-134 31c-21 0-38-17-38-38 0-20 17-37 38-37 20 0 37 17 37 37 2 21-17 38-37 38z m257 94l-5-11c-3-5-10-8-17-6l-3 1-7 2-4 2c-1 0-1 0-3 0-2 0-3 0-5-2-5-2-9-9-7-15l2-2 5-10c2-7-2-14-7-17l-10-5c-7-2-14 0-17 6l-2 4-2 7-1 3c0 0 0 0 0 2-2 1-2 3-4 3-1 0-1 0-3 0 0 0-2 0-2 0-2 0-2 0-3-2-2-1-4-3-5-5l-2-1-2-7-5-2c-3-5-10-8-17-7l-10 5c-5 4-9 11-7 17l2 4 1 5 2 3c0 2 0 5 0 9-2 3-3 5-7 7 0 0 0 0-2 0 0 0 0 0-1 0 0 0 0 0-2 0 0 0 0 0-2 0 0 0 0 0-1 0l-9-5-3-2c-7-2-14 2-17 7l-5 10c-2 7 1 14 6 17l11 5 3 2c2 2 3 3 5 5 2 5 0 10-3 14 0 0 0 0-2 0l-9 3-3 2c-5 3-8 10-7 17l5 10c4 5 11 9 17 7l2-2 7-2 3-1c2 0 5 0 9 0 3 1 7 5 7 8 0 0 0 0 0 2 0 0 0 0 0 2l-5 12-2 3c-2 7 2 14 7 17l10 5c7 2 14-1 17-7l2-3 1-7 2-3c2-2 4-4 7-5 2 0 5 0 7 0 2 0 3 1 3 1 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 1l2 2 2 7 1 3c4 6 11 9 17 7l11-5c5-3 8-10 6-17l-1-3-2-7-2-4c0-1 0-5 0-8 0-2 2-4 2-4 3-3 9-5 12-3l14 7 3 2c7 1 14-2 17-7l5-10c2-7 0-14-7-18l-3-1-7-2-3-2c-2 0-2-1-4-3-1-2-1-2-1-3-2-4-2-9 1-12 2-2 2-4 4-4l8-3 4-2c7-3 10-10 8-15z m-83 56c-14 5-31-2-36-15-5-14 2-31 15-36 14-5 31 2 36 15 5 14 0 31-15 36z"/>
|
15 |
+
<glyph glyph-name="copy" unicode="f" d="M420 398l41 0-86 87 0-41c0-26 21-46 45-46z m-4-33c-39 0-71 33-71 70l0 48-144 0c-29 0-51-22-51-51l0-277c0-56 53-53 53-53l208 0c29 0 52 23 52 52l0 211z m-10-106l-51-51c-5-5-12-1-12 5l0 23-113 0c-10 0-18 8-18 18l0 22c0 11 8 19 18 19l113 0 0 22c0 7 9 11 12 6l51-52c0 0 4-3 0 0 4-5 4-8 0-12z m0 11c4-4 0 0 0 0z m-281-132l0 222-17 0c-24 0-52-25-52-49l0-241c0-48 53-51 53-51l181 0c24 0 39 25 39 49l0 2-145 0c-24 0-59 15-59 68z"/>
|
16 |
+
<glyph glyph-name="copy-o" unicode="g" d="M387 271l-47 48c-5 5-12 2-12-5l0-20-108 0c-10 0-17-9-17-18l0-20c0-10 7-17 17-17l108 0 0-21c0-5 7-8 12-5l47 48c2 4 2 9 0 10 0 0 2-1 0 0z m-44 221l-145 0c-29 0-53-21-60-48l-27 0c-32 0-60-28-60-60l0-290c0-19 5-34 17-45 16-15 36-15 43-15 0 0 2 0 2 0l189 0c29 0 53 21 58 48l31 0c32 0 60 27 60 60l0 240z m0-36l72-74-19 0c-29 0-53 24-53 53z m-41-398l-191 0c0 0-15 0-26 9-6 5-8 15-8 27l0 290c0 19 15 34 34 34l26 0 0-276c0-48 37-62 59-62l137 0c-4-13-16-22-31-22z m125 82c0-19-16-34-34-34l-193 0c-11 0-36 3-36 36l0 290c0 19 15 34 34 34l121 0 0-31c0-42 34-78 79-78l29 0z"/>
|
17 |
+
<glyph glyph-name="note-edit" unicode="i" d="M399 345l52 0-110 109 0-51c2-33 28-58 58-58z m-5-41c-49 0-89 39-89 89l0 59-180 0c-36 0-65-29-65-65l0-261c0-70 66-66 66-66l261 0c36 0 65 29 65 65l0 179z m-133-128l-107 107c-7 7-7 19 0 26l29 29c6 7 18 7 25 0l108-108c7-6 7-18 0-25l-29-29c-5-9-17-9-26 0z m31-22l44 44 21-65z"/>
|
18 |
+
<glyph glyph-name="note-edit-o" unicode="j" d="M333 189l-43-42 62-22z m-14 275l-196 0c-44 0-80-36-80-80l0-258c0-65 51-82 80-82l259 0c45 0 81 36 81 81l0 194z m0-48l97-99-25 0c-39 0-72 33-72 72z m111-293c0-26-20-46-46-46l-259 0c-14 0-48 5-48 49l0 258c0 26 20 46 46 46l162 0 0-41c0-58 48-104 104-104l41 0z m-171 46l-105 106c-7 7-7 19 0 25l29 29c6 7 18 7 25 0l106-105c7-7 7-19 0-26l-29-29c-7-7-19-7-26 0z"/>
|
19 |
+
<glyph glyph-name="add" unicode="k" d="M297 215l123 0c19 0 32 15 32 32l0 18c0 18-15 32-32 32l-123 0 0 123c0 19-15 32-32 32l-18 0c-18 0-32-15-32-32l0-123-123 0c-19 0-32-15-32-32l0-18c0-18 15-32 32-32l123 0 0-123c0-19 15-32 32-32l18 0c18 0 32 15 32 32z"/>
|
20 |
+
<glyph glyph-name="refresh" unicode="l" d="M258 437c-103 0-185-82-185-184l-30 0c-9 0-12-6-5-12l27-28 27-25c7-7 17-7 24 0l55 54c6 7 3 12-5 12l-33 0c0 69 56 125 125 125 34 0 66-14 88-36l41 41c-34 32-78 53-129 53z m-4-362c101 0 185 82 185 184l30 0c9 0 12 6 5 12l-27 28-27 25c-7 7-17 7-24 0l-55-54c-6-7-5-12 5-12l33 0c0-69-56-125-125-125-34 0-66 14-88 36l-41-41c34-32 78-53 129-53z"/>
|
21 |
+
<glyph glyph-name="no" unicode="n" d="M464 384c0 44-36 80-80 80l-261 0c-44 0-80-36-80-80l0-258c0-25 8-46 24-61 20-21 49-22 58-22 1 0 1 0 1 0l258 0c44 0 80 36 80 80z m-34-261c0-26-20-46-46-46l-259 0c0 0-21 0-36 12-9 8-12 20-12 36l0 259c0 26 20 46 46 46l261 0c26 0 46-20 46-46z"/>
|
22 |
+
<glyph glyph-name="not-translated" unicode="o" d="M329 256l111 111c16 15 16 43 0 60l-15 15c-15 17-43 17-60 0l-109-113-111 111c-15 16-43 16-58 0l-15-15c-16-15-16-43 0-58l111-111-111-111c-16-15-16-43 0-60l15-15c15-15 43-15 60 0l111 111 111-111c15-15 42-15 59 0l16 15c15 16 15 43 0 60z"/>
|
23 |
+
<glyph glyph-name="delete" unicode="p" d="M403 428l-99 0c0 14-10 24-24 24l-50 0c-13 0-23-10-23-24l-98 0c-13 0-24-10-24-24 0-13 11-23 24-23l295 0c14 0 24 10 24 23 0 14-12 24-25 24z m-295-71l0-243c0-30 25-56 56-56l186 0c31 0 56 26 56 56l0 243z m83-226c0-8-7-15-15-15-9 0-16 7-16 15l0 151c0 8 7 15 16 15 8 0 15-7 15-15z m80 0c0-8-6-15-15-15-9 0-15 7-15 15l0 151c0 8 6 15 15 15 9 0 15-7 15-15z m82 0c0-8-7-15-15-15-9 0-15 7-15 15l0 151c0 8 6 15 15 15 8 0 15-7 15-15z"/>
|
24 |
+
<glyph glyph-name="waiting" unicode="q" d="M439 90c-2 0-4 4-4 6-2 6-2 12-3 18-17 70-62 115-130 135-3 2-5 4-5 7 0 3 2 5 5 7 72 19 123 78 133 152 0 3 2 7 7 7 9 1 12 10 10 17-1 8-8 13-19 13-100 0-201 0-302 0-18 0-35 0-54 0-10 0-17-5-19-13-2-9 3-14 14-17l3-4c4-8 4-15 7-22 19-68 61-113 130-133 3-2 5-4 5-7 0-3 0-5-5-7-72-19-123-78-133-152 0-3-2-7-7-7-9-1-14-15-11-23 2-7 9-16 18-16 59 0 117 0 177 0 60 0 118 0 177 0 11 0 18 10 19 19 2 7-5 19-13 20z m-33 328c-3-10-12-34-15-43l-270 0c-3 6-5 11-7 16-3 7-3 19-6 27m122-196c14 0 41 2 57 0 24-5 46-15 65-33 12-10 22-22 30-35l-252 0c22 34 59 61 100 68z"/>
|
25 |
+
<glyph glyph-name="warning" unicode="s" d="M447 126l-165 285c-14 24-36 24-52 0l-165-285c-14-24-2-44 25-44l330 0c29 0 41 20 27 44z m-165 14l-48 0 0 31 48 0z m-6 51l-39 0-5 126 50 0z"/>
|
26 |
+
<glyph glyph-name="original" unicode="t" d="M256 452c-108 0-196-88-196-196 0-108 88-196 196-196 108 0 196 88 196 196 0 108-88 196-196 196z m138-112l4-5c10-19 17-40 20-62l0-7-73 0 0 7c0 17-2 32-5 48l-2 7 7 1c15 4 30 6 44 11z m-65 59c16-8 29-17 41-29 0 0 2-1 2-1l9-9-11-3c-8-2-18-4-29-5l-5 0-1 5c-4 12-7 25-12 36l-7 17z m-13-131l-125 0 0 7c0 15 2 30 5 44l2 5 5 0c17-1 36-1 55-1 18 0 37 0 54 1l5 0 2-5c2-14 4-29 5-44l0-7z m7-24l0-7c0-15-2-30-6-44l-1-5-5 0c-17 1-36 1-55 1-19 0-38 0-55-1l-5 0-1 5c-2 14-4 29-6 44l0 7z m-120 111c4 10 7 20 10 29 5 12 12 22 17 29l2 2 2 0c7 1 13 1 20 1 7 0 14 0 22-1l2 0 2-2c7-7 12-17 17-29 3-9 7-19 10-29l2-7-9 0c-15-2-30-2-47-2-17 0-33 0-48 2l-7 0z m-63 14c0 0 2 1 2 1 12 12 25 23 41 29l15 9-7-17c-5-10-8-22-12-36l-2-5-5 2c-10 1-20 3-29 5l-12 3z m-44-94c1 22 8 42 20 61l2 5 5-1c14-4 27-7 44-11l7-1-2-7c-3-16-5-31-5-48l0-7-71 0z m22-103l-2 5c-10 19-17 40-20 62l0 7 73 0 0-7c0-17 2-32 5-48l2-7-7-1c-15-4-31-6-44-11z m65-59c-16 8-29 17-41 29 0 0-2 1-2 1l-7 9 10 3c9 2 19 4 29 5l5 2 2-5c4-14 7-26 12-36l7-15z m126 44c-4-10-7-20-10-29-5-12-12-22-17-29l-2-2-2 0c-7-1-13-1-22-1-7 0-14 0-20 1l-2 0-2 2c-7 7-12 17-17 29-3 9-7 19-10 29l-2 7 7 0c15 2 31 2 48 2 17 0 32 0 47-2l9 0z m63-12c0 0-2-2-2-2-12-12-25-22-41-29l-15-8 7 15c5 10 8 22 12 36l2 5 5-2c10-1 20-3 29-5l10-3z m44 92c-1-22-8-42-20-61l-3-5-6 1c-13 4-27 7-44 11l-7 1 2 7c2 16 3 31 5 48l0 7 73 0z"/>
|
27 |
+
<glyph glyph-name="needs-update" unicode="u" d="M258 437c-103 0-185-82-185-184l-30 0c-9 0-12-6-5-12l27-28 27-25c7-7 17-7 24 0l55 54c6 7 3 12-5 12l-33 0c0 69 56 125 125 125 34 0 66-14 88-36l41 41c-34 32-78 53-129 53z m-4-362c101 0 185 82 185 184l30 0c9 0 12 6 5 12l-27 28-27 25c-7 7-17 7-24 0l-55-54c-6-7-5-12 5-12l33 0c0-69-56-125-125-125-34 0-66 14-88 36l-41-41c34-32 78-53 129-53z m19 260l-5-115-36 0-5 115z m0-163l-44 0 0 29 44 0z"/>
|
28 |
+
<glyph glyph-name="cred" unicode="w" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-32-329c0-1 0-2-1-3 0 0 0-1 0-2-1-1-1-1-2-2-1-1-1-1-1-2-1-1-2-2-2-2-1-1-2-2-3-2l-1 0c-1-1-2-2-4-3-1 0-2-2-4-2 0-1-2-1-3-2l0 0c-1-1-2-1-2-1l-2 0c-2-1-3-2-6-2l0 0c-2-1-5-2-7-2l0 0c-3-1-5-2-8-3l-1 0c-3 0-5-1-8-1l-1 0c-2-1-4-1-7-1l-2 0c-2 0-5 0-7 0l-1 0c-3 0-6-1-9-1l-1 0c-2 0-5 0-7 0l-1 0c-1 0-3 0-4 0-1 0-2 0-3 0l-1 0c-2 0-4 0-6 0l-2 0c-2 0-3 0-5 1l-2 0c-2 0-3 0-5 0l-1 0c-2 0-3 1-5 1l-2 0c-2 0-3 1-5 1-2 0-4 0-6 1l-1 0c-3 1-5 1-6 2l-1 0c-3 0-5 1-7 2l-1 0c0 0-1 0-2 0l-2 1c-1 0-1 1-2 1l-1 1 0 0-6 2-2 1-2-3-10 5-2 2-1 1-2 1 0 1-2 2 0 1 0 3-1 1 0 1-1 1 0 3c0 1 0 2 0 2l-1 56c0-1 0-2 0-2l0-4 1-1 6-5 1-1 2-2 5-3 2-5 5-3 2 0 6-3c0 0 1-1 2-1l1-1c1 0 2 0 3 0l1-1c3-1 5-2 7-2l1 0c2-1 3-1 5-2l2 0c1 0 3 0 5-1l1 0c2 0 4-1 6-1l1 0c2 0 3-1 5-1l2 0c2 0 3 0 5 0l2 0c1 0 2 0 5-1l1 0c2 0 4 0 6 0 2 0 3 0 5 0 1 0 3 0 4 0 2 0 5 0 7 0l2 0c2 0 5 0 8 1l1 0c3 0 5 0 8 0l1 0c2 0 5 1 7 1l1 0c3 1 6 1 8 2l1 0c3 0 5 1 8 2l1 0c2 0 4 1 6 2l1 0c2 1 3 1 5 2l1 1c1 0 2 0 2 0l2 1c0 1 2 1 3 2 1 0 3 2 4 2 2 1 3 2 4 3l1 0c0 1 2 2 3 2 0 1 1 2 2 3l0 0c1 1 2 2 2 2 1 1 1 2 1 2l0 1c0 1 1 2 1 2 0 1 0 2 1 3l0 2 0-56z m0 80c0-2 0-2-1-3 0-1 0-1 0-2-1-1-1-2-2-2-1-1-1-2-1-2-1-1-2-2-2-3-1 0-2-1-3-2l-1 0c-1 0-2-1-4-2-1-1-2-2-4-3 0 0-2 0-3-1l-1-1c-1-1-1-1-2-1l-2 0c-2 0-3-1-5-2l-1 0c-2 0-4-1-6-2l-1 0c-2-1-5-1-8-2l-1 0c-2-1-5-1-7-1l-2 0c-2-1-4-1-7-1l-1 0c-3 0-5-1-8-1l-1 0c-3 0-6-1-8-1l-2 0c-2 0-5 0-7 0l-1 0c-1 0-3 0-3 0-2 0-3 0-4 0l-1 0c-2 0-4 0-6 0l-2 0c-2 0-3 0-4 1l-2 0c-3 0-4 1-6 1l-1 0c-1 0-3 1-5 1l-1 0c-2 0-4 0-6 0-2 0-4 1-6 2l-1 0c-2 0-4 0-6 1l-1 0c-2 1-4 2-7 2l0 0c-1 0-2 1-3 1l-2 1c0 0-1 0-2 0l0 1-1 0-4 2-3-3-11 6 0 2-3 3-1 1-1 1-3 2 0 2 0 1-1 1 0 1-1 1 0 3c0 1 0 1 0 2l-1 56c0-1 0-2 0-3l0-3 7-7 1 0 2-2 12-7 2-1 6-2c0 0 1-1 2-1l1-1c1 0 2-1 3-1l1 0c3-1 5-2 7-2l1 0c2-1 3-1 5-2l2 0c1 0 3 0 5-1l1 0c2 0 4-1 6-1l1 0c2 0 3-1 5-1l2 0c2 0 3 0 5 0l2 0c1 0 2 0 5-1l1 0c2 0 4 0 6 0 2 0 3 0 5 0 1 0 3 0 4 0 2 0 5 0 7 0l2 0c2 0 5 0 8 1l1 0c3 0 5 0 8 0l1 0c2 0 5 1 7 1l1 0c3 1 6 1 8 2l1 0c3 0 5 1 8 2l1 0c2 0 4 1 6 2l1 0c2 0 3 1 5 2l1 1c1 0 2 0 2 0l2 1c0 1 2 1 3 1 1 1 3 3 4 3 2 1 3 2 4 2l1 1c0 1 2 2 3 2 0 1 1 2 2 2l0 1c1 1 2 2 2 2 1 1 1 2 1 2l0 1c0 1 1 2 1 2 0 1 1 2 1 3l0 2 0-56z m0 79c0-2 0-2-1-3 0-1 0-2 0-2-1-1-1-2-2-2-1-1-1-2-1-3-1 0-2-1-2-2-1 0-2-1-3-2l-1 0c-1-1-2-1-4-2-1-1-2-2-4-3 0 0-2 0-3-1l-1-1c-1-1-1-1-2-1l-2 0c-2 0-3-1-5-2l-1 0c-2 0-4-1-6-2l-1-3c-2-1-5-2-8-3l-1 0c-2 0-5-1-7-1l-2 0c-2-1-4-1-7-1l-1 0c-3 0-5 0-8 0l-1 0c-3 0-6-1-8-1l-2 0c-2 0-5 0-7 0l-1 0c-1 0-3 0-3 0-2 0-3 0-4 0l-1 0c-2 0-4 0-6 0l-2 0c-2 0-3 0-4 1l-2 0c-3 0-4 0-6 0l-1 0c-1 0-3 1-5 1l-1 0c-2 0-4 1-6 1-2 0-4 0-6 1l-1 0c-2 1-4 1-6 2l0 0c-3 0-5 1-7 2l-1 0c0 0-1 0-2 0l-2 1c-1 0-1 1-2 1l-1 1 0 0-2 0-2 2-3 1-1 1-7 3-2 2-3 1-2 3-1 1-2 2-2 2 0 1 0 1-1 2 0 0-1 1 0 3c0 1 0 1 0 2l-1 48c0 0 0 0 0 1 0 0 0 0 0 1l0 6c0-1 0-1 0-2l0-1c5 19 45 34 95 34 50-1 91-17 95-37 0 0 0 1 0 2l0 1 1-55z"/>
|
29 |
+
<glyph glyph-name="layouts" unicode="x" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-208-370l-79 0 0 193 79 0z m236 0l-216 0 0 193 216 0z m0 214l-315 0 0 83 315 0z"/>
|
30 |
+
<glyph glyph-name="module-manager" unicode="y" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-142-381l-130 76 0 138 130-78c0 0 0-136 0-136z m156 76l-130-76 0 132 130 78z m0 165l-140-84-144 85 141 82z"/>
|
31 |
+
<glyph glyph-name="toolset" unicode="z" d="M410 410l0 102-103 0 0-102-102 0 0 102-103 0 0-102-68 0 0-410 444 0 0 410z m-315-232c0-4-1-7-4-9-3-2-6-3-11-3l-3 0-3-14-6 0 8 36 8 0c3 0 6-1 8-3 2-1 3-4 3-7z m-17-7l2 0c3 0 5 0 7 1 2 2 2 3 2 6 0 2 0 3-1 4 0 1-2 1-4 1l-3 0z m23-19l-5 0 8 38 5 0z m19 27l-3-15c0-2 0-4 0-4 0-2 1-4 2-4 2 0 3 1 4 2 1 1 2 2 3 4 1 1 1 3 2 6l2 11 6 0-6-27-4 0 0 6c-1-2-3-4-4-4-1-1-3-2-4-2-3 0-4 1-5 2-1 1-2 3-2 5 0 1 0 3 1 3 0 1 0 2 0 3l3 14z m44 0l-1-3-4-1c0-1 0-2 0-3 0-3-1-6-3-8-1-1-4-2-8-2 0 0-1 0-2 0-2-1-3-2-3-3 0 0 0-1 1-1 0 0 1 0 2 0l3-1c3-1 5-1 6-2 1-1 2-3 2-5 0-3-1-6-3-7-3-2-6-3-11-3-3 0-5 1-7 2-2 1-3 2-3 5 0 1 1 3 2 4 1 1 3 3 5 3-1 1-2 2-2 3 0 1 1 2 1 3 1 0 2 2 4 2-2 1-4 4-4 6 0 4 2 6 3 8 2 1 5 3 8 3 1 0 3 0 4-1l10 0z m-20-26c-2-1-3-1-4-2-1 0-2-1-2-3 0-1 1-2 1-2 2-1 3-2 4-2 3 0 5 1 7 2 1 1 2 2 2 4 0 0-1 1-1 1-1 1-3 1-4 1z m7 23c-1 0-2-1-3-1-1-1-1-2-2-3 0-1 0-2 0-3 0-1 0-2 1-3 0 0 1-1 2-1 1 0 2 1 3 1 0 1 1 2 2 3 0 1 0 2 0 3 0 3-1 4-3 4z m17-24l-5 0 5 27 6 0z m2 34c0 1 0 2 1 3 0 0 1 1 3 1 1 0 1 0 2-1 0 0 0-1 0-1 0-1 0-3-1-3 0-1-1-1-2-1-1 0-2 0-2 0-1 0-1 1-1 2z m22-34l3 17c1 2 1 2 1 3 0 3-1 4-3 4-1 0-2-1-4-1-1-1-2-3-2-4-2-2-2-4-3-6l-2-11-6 0 6 26 5 0-1-5c1 2 3 4 4 4 1 1 3 1 5 1 2 0 4 0 5-1 1-2 1-3 1-5 0-2 0-3 0-5l-4-16z m30 9c0-3-1-5-2-6-2-2-5-3-8-3-3 0-6 1-8 2l0 5c2-1 5-2 7-2 2 0 3 1 4 1 1 1 2 2 2 3 0 1 0 2-1 2 0 1-2 1-3 3-3 1-4 2-5 3 0 1-1 2-1 4 0 2 1 4 3 6 2 1 4 2 7 2 3 0 5-1 8-2l-1-4c-3 1-5 1-7 1-1 0-2 0-3 0 0-1-1-1-1-2 0-1 0-2 1-2 0-1 2-1 3-2 2-2 3-2 4-3 0 0 1-1 1-2 0-2 0-3 0-4z m14-20c-2 0-3 0-4 0l0 5c1-1 2-1 3-1 2 0 3 2 5 5l5 25-5 0 1 2 4 2 1 2c0 4 1 6 3 7 2 1 4 3 6 3 2 0 4-1 6-2l-2-4c-1 1-2 1-4 1-1 0-2-1-2-1-1-1-2-2-2-4l-1-2 6 0-1-4-6 0-5-26c-1-3-2-5-3-7-1 0-3-1-5-1z m44 29c0-4-1-7-2-10-1-2-3-4-5-6-2-2-4-2-7-2-3 0-5 1-7 3-2 1-3 4-3 7 0 4 1 6 2 9 1 3 3 5 5 6 2 2 4 3 7 3 4 0 6-1 8-3 1-2 2-5 2-7z m-6 0c0 1 0 2-1 4-1 1-2 1-3 1-2 0-3 0-4-1-1-2-3-3-3-5-1-2-1-4-1-6 0-2 0-4 1-4 0-1 2-2 3-2 2 0 3 1 4 2 1 1 2 3 3 4 1 2 1 4 1 7z m27 10c1 0 2 0 3-1l-1-5c-1 0-2 1-3 1-2 0-4-1-5-3-2-2-3-4-4-8l-2-12-6 0 6 27 5 0-1-5c1 2 3 3 4 4 1 1 3 2 4 2z m-203-90l-6 0-1 21 0 7c-1-3-2-5-3-7l-9-21-6 0-1 36 5 0 1-21c0-2 0-5-1-8 2 3 3 6 4 8l9 21 6 0 0-21 0-8c1 1 1 3 2 4 0 2 1 3 2 4l8 20 6 0z m37 18c0-4 0-7-1-10-1-2-3-4-5-6-3-2-5-2-7-2-3 0-6 1-8 3-1 1-2 4-2 7 0 4 0 6 1 9 1 3 3 5 5 6 3 2 5 3 8 3 3 0 5-1 7-3 2-2 2-5 2-7z m-5 0c0 1-1 2-1 4-1 1-2 1-4 1-2 0-3 0-4-1-1-2-2-3-3-5 0-2-1-4-1-6 0-2 1-4 1-4 1-1 2-2 4-2 1 0 3 1 4 2 1 1 2 3 3 4 0 2 1 4 1 7z m26 10c2 0 2 0 3-1l-1-5c-1 0-2 1-2 1-2 0-4-1-6-3-2-2-3-4-3-8l-3-12-6 0 6 27 4 0 0-5c1 2 3 3 4 4 2 1 3 2 4 2z m16 0c3 0 5-2 6-5 0 2 1 5 1 6l2 9 6 0-8-38-5 0 1 4c-1-1-3-2-4-3-1-1-3-1-4-1-3 0-4 0-6 2-1 2-2 4-2 7 0 3 1 6 2 9 1 3 3 5 5 7 1 2 4 3 6 3z m-3-23c1 0 3 1 4 2 1 1 2 3 3 5 0 3 1 5 1 7 0 1-1 3-1 3-1 1-2 1-4 1-1 0-2 0-4-1-1-2-2-3-2-6-1-2-2-4-2-6 1-3 2-5 5-5z m45 21c0-4-1-7-4-9-3-2-6-3-11-3l-3 0-3-14-6 0 8 36 8 0c3 0 6-1 8-3 2-1 3-4 3-7z m-17-7l2 0c3 0 5 0 7 1 2 2 2 3 2 6 0 2 0 3-1 4 0 1-2 1-4 1l-3 0z m36 9c1 0 1 0 3-1l-2-5c-1 0-1 1-2 1-2 0-4-1-6-3-1-2-2-4-3-8l-3-12-6 0 6 27 5 0-1-5c1 2 3 3 4 4 2 1 3 2 5 2z m12-28c-3 0-5 2-7 3-2 2-3 5-3 8 0 3 1 6 2 9 1 3 3 5 5 6 2 2 4 2 7 2 3 0 5 0 6-1 2-2 3-3 3-5 0-3-1-6-4-7-3-2-7-3-12-3l-1 0 0-1c0-1 1-3 1-4 1-1 3-1 4-1 1 0 3 0 4 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1 0-2-2-2-4-2z m4 24c-2 0-3-1-4-2-2-2-3-4-3-6l0 0c3 0 5 0 7 1 2 1 3 2 3 3 0 1 0 2-1 2 0 1-1 2-2 2z m28-15c0-3-1-5-3-6-2-2-4-3-8-3-3 0-5 1-8 2l0 5c3-2 5-3 8-3 1 0 3 1 4 2 1 0 1 1 1 2 0 1 0 2 0 3-1 0-2 1-4 2-2 1-3 2-4 3-1 2-1 3-1 4 0 3 1 5 3 6 1 1 4 2 6 2 4 0 6 0 9-2l-2-4c-2 1-4 2-6 2-1 0-2 0-3-1 0 0-1-1-1-2 0-1 0-1 1-2 0 0 1-1 3-2 2-1 3-2 3-2 1-1 1-1 2-3 0-1 0-2 0-3z m22 0c0-3-1-5-3-6-1-2-4-3-8-3-2 0-5 1-8 2l0 5c3-2 6-3 8-3 2 0 3 1 4 2 1 0 2 1 2 2 0 1-1 2-1 3-1 0-2 1-3 2-3 1-4 2-5 3-1 2-1 3-1 4 0 3 1 5 3 6 1 1 4 2 7 2 3 0 5 0 8-2l-2-4c-2 1-4 2-6 2-1 0-2 0-3-1 0 0-1-1-1-2 0-1 0-1 1-2 0 0 1-1 3-2 2-1 3-2 4-2 0-1 1-1 1-3 0-1 0-2 0-3z m-201-48c0-5 0-8-2-12-2-3-4-5-7-7-3-2-7-3-10-3l-10 0 7 35 9 0c5 0 8-1 11-3 1-2 2-6 2-10z m-19-17c2 0 5 0 7 2 2 1 4 3 5 6 1 2 2 5 2 8 0 3-1 5-3 7-1 2-3 2-6 2l-3 0-6-25z m33-6c-4 0-6 2-8 3-2 2-3 5-3 8 0 3 1 6 2 9 1 3 3 5 5 6 2 2 5 2 7 2 3 0 5 0 7-1 1-2 2-3 2-6 0-2-1-5-4-6-3-2-6-3-11-3l-1 0 0-1c0-1 0-3 1-4 1-1 2-1 4-1 1 0 2 0 3 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1 0-2-2-2-3-2z m3 24c-1 0-2-1-4-3-1-1-2-3-3-5l1 0c3 0 5 0 6 1 2 1 3 2 3 3 0 1 0 2 0 2-1 1-1 2-3 2z m15-23l-3 27 6 0 1-14c0-3 0-6 0-8 1 1 1 2 2 4 1 2 1 2 2 4l7 14 6 0-14-27c0 0-7 0-7 0z m31-1c-3 0-6 2-7 3-2 2-3 5-3 8 0 3 0 6 1 9 2 3 3 5 6 6 2 2 4 2 7 2 3 0 5 0 6-1 2-2 3-3 3-6 0-2-2-5-4-6-3-2-7-3-12-3l-1 0 0-1c0-1 1-3 1-4 1-1 2-1 4-1 1 0 2 0 4 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1-1-2-3-2-4-2z m3 24c-1 0-2-1-4-3-1-1-2-3-3-5l1 0c2 0 5 0 6 1 2 1 3 2 3 3 0 1 0 2 0 2-1 1-1 2-3 2z m17-23l-6 0 8 38 6 0z m32 17c0-4-1-7-2-10-1-2-3-4-5-6-2-2-5-2-7-2-3 0-6 1-7 3-2 1-3 4-3 7 0 4 0 6 2 9 1 3 2 5 5 6 2 2 4 3 7 3 4 0 6-1 7-3 2-2 3-4 3-7z m-6 0c0 1 0 2-1 3-1 2-2 2-3 2-2 0-3 0-4-2-2-1-3-2-3-4-1-2-1-4-1-6 0-2 0-4 1-4 0-1 1-2 3-2 2 0 3 1 4 2 1 1 2 3 3 4 1 3 1 4 1 7z m22-18c-3 0-5 2-7 4 0-1 0-2 0-4l-2-12-6 0 8 39 4 0 0-4c2 3 5 5 8 5 3 0 4-1 6-3 1-1 2-4 2-6 0-4-1-7-2-9-1-3-3-6-4-7-2-2-5-3-7-3z m3 23c-1 0-3 0-4-2-1-1-2-2-3-5-1-2-1-4-1-6 0-2 0-3 1-3 0-1 1-1 3-1 2 0 3 0 4 1 1 1 2 3 3 5 1 3 1 5 1 7 0 3-2 4-4 4z m31 5c3 0 6-1 6-5 1 1 3 3 4 4 2 1 3 1 5 1 2 0 4 0 5-1 1-2 1-3 1-6 0-1 0-2 0-4l-4-16-5 0 3 17c1 1 1 2 1 3 0 2-1 3-3 3-2 0-4-1-5-3-2-2-3-5-4-8l-2-11-6 0 4 16c0 1 0 2 0 3 0 2-1 3-2 3-2 0-4-1-6-3-1-2-2-4-3-7l-2-12-6 0 6 27 4 0 0-5c3 2 5 4 9 4z m36-28c-3 0-5 2-7 3-2 2-3 5-3 8 0 3 1 6 2 9 1 3 3 5 5 6 2 2 4 2 7 2 3 0 5 0 6-1 2-2 3-3 3-6 0-2-1-5-4-6-3-2-6-3-12-3l-1 0 0-1c0-1 1-3 1-4 2-1 3-1 4-1 2 0 3 0 4 0 1 1 2 1 4 2l0-5c-2 0-3-1-5-1-1-2-2-2-4-2z m4 24c-2 0-3-1-5-3-1-1-2-3-3-5l1 0c3 0 5 0 7 1 1 1 2 2 2 3 0 1 0 2-1 2 1 1 0 2-1 2z m26-23l4 17c0 1 0 2 0 3 0 2-1 3-2 3-2 0-3 0-4-1-1 0-2-2-3-4-1-1-1-3-2-5l-2-12-6 0 6 27 4 0 0-5c1 1 3 3 4 4 1 1 3 1 4 1 3 0 4-1 5-2 1-1 2-3 2-5 0-1 0-3-1-4l-3-16z m23 4c1 0 2 0 4 1l0-5c-1 0-2-1-3-1-1 0-1 0-3 0-4 0-6 2-6 6 0 1 0 1 0 3l3 14-4 0 1 2 4 3 3 5 3 0-1-5 7 0-1-5-7 0-3-13c0-2 0-2 0-3 0 0 0-1 0-1 1-1 2-1 3-1z m-256 218l-22 0 13 63-18 0 4 18 57 0-4-18-18 0z m52-1c-7 0-13 3-17 7-4 4-6 10-6 17 0 8 1 15 4 21 3 7 7 11 13 14 5 4 11 6 18 6 7 0 14-3 17-7 4-4 7-10 7-17 0-8-2-15-5-21-3-7-7-11-12-15-5-3-12-5-19-5z m9 49c-3 0-6-3-8-8-2-5-3-11-3-17 0-5 1-8 4-8 3 0 6 3 8 8 2 5 4 10 4 17 0 3-1 4-2 6-1 1-2 2-3 2z m56-49c-8 0-14 3-18 7-4 4-6 10-6 17 0 8 2 15 4 21 3 7 7 11 13 14 5 4 11 6 18 6 8 0 14-3 18-7 4-4 6-10 6-17 0-8-2-15-5-21-2-7-6-11-12-15-5-3-11-5-18-5z m8 49c-3 0-5-3-8-8-2-5-3-11-3-17 0-5 2-8 4-8 3 0 6 3 8 8 3 5 4 10 4 17 0 3-1 4-1 6-1 1-2 2-4 2z m50-48l-21 0 19 86 21 0z m60 22c0-7-2-13-7-16-5-4-12-6-21-6-8 0-15 1-19 3l0 17c3-1 6-2 9-4 3 0 6-1 9-1 2 0 4 1 5 1 1 1 2 2 2 3 0 1-1 2-1 4-1 1-4 2-8 4-4 2-6 5-8 8-2 2-3 6-3 10 0 6 2 11 7 15 4 3 11 5 19 5 4 0 8-1 11-1 3-2 7-3 10-5l-7-14c-2 2-5 3-8 4-2 2-4 2-6 2-3 0-4-2-4-4 0-2 0-3 1-3 1-1 3-2 6-3 9-5 13-12 13-19z m33-23c-8 0-14 3-18 7-5 4-6 10-6 18 0 8 1 15 4 21 3 6 8 11 13 14 5 3 11 5 18 5 7 0 12-2 16-5 4-3 6-7 6-12 0-8-3-14-8-18-6-4-15-5-25-5l-4 0 0-1c0-5 3-8 9-8 3 0 6 0 9 1 3 1 5 2 9 4l0-15c-4-2-8-3-11-5-3 0-7-1-12-1z m9 50c-3 0-5-1-7-4-1-2-2-5-3-8l2 0c4 0 6 0 9 2 2 2 3 4 3 6 0 2 0 3-1 3-1 1-2 1-3 1z m54-33c3 0 6 1 10 3l0-16c-5-2-11-3-18-3-5 0-10 1-13 3-3 3-4 7-4 12 0 3 1 6 1 10l5 22-9 0 3 10 12 5 7 13 14 0-3-13 16 0-3-15-16 0-5-22c0-2-1-4-1-5 1-2 2-4 4-4z"/>
|
32 |
+
<glyph glyph-name="types" unicode="A" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-292-141c0 4 3 8 5 10 1 1 6 3 10 3l9 0c6 0 11-1 12 0 2 2 4 5 5 10l1 6c2 4 3 8 5 9 3 2 7 3 12 3l52 0c6 0 9-2 11-3 1-1 3-4 4-9l2-7c1-6 3-8 5-9 2 0 8 0 16 0l97 0c8 0 10-6 10-13l0-16-162 0c-10 0-17 1-20 0-2-2-7-6-12-15l-62-117z m335-48l-63-124-252 0 64 124c2 4 5 7 7 9 2 1 5 2 11 2l227 0c6 0 9-2 9-3 0-1-1-4-3-8z"/>
|
33 |
+
<glyph glyph-name="views" unicode="B" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-279-214c0 0 137 187 307 0-1 0-138-192-307 0z m152 56c-32 0-57-26-57-58 0-32 25-57 57-57 32 0 58 25 58 57 1 32-26 58-58 58z m0-95c-21 0-38 17-38 38 0 21 17 38 38 38 22 0 39-17 39-38 0-21-17-38-39-38z"/>
|
34 |
+
<glyph glyph-name="edit" unicode="h" d="M273 140l-198 200c-14 13-14 35 0 49l55 55c13 13 36 13 47 0l198-202c14-13 14-35 0-47l-54-55c-12-12-34-12-48 0z m138 41l-80-80 116-41z"/>
|
35 |
+
<glyph glyph-name="duplicate" unicode="m" d="M90 49c-5 0-27 2-42 16-12 10-17 25-17 44l0 290c0 33 27 60 59 60l64 0 0-26-64 0c-18 0-34-15-34-34l0-290c0-12 4-20 9-27 10-10 25-9 25-9l55 0 0-25-55 1c2 0 0 0 0 0z m388 304l-108 108-1-2-142 0c-32 0-60-27-60-60l0-290c0-48 38-61 60-61l191 0c33 0 60 27 60 60z m-34-1l-21 0c-29 0-53 23-53 52l0 21z m8-244c0-19-15-35-34-35l-191 0 0-12 0 12c-10 0-34 4-34 36l0 290c0 19 15 34 34 34l119 0 0-30c0-43 35-77 77-77l31 0 0-218z"/>
|
36 |
+
<glyph glyph-name="basket" unicode="r" d="M184 413l-75-99 50 0 58 77c-16 2-28 10-33 22z m41-10c2 0 2 0 4 0 13 3 22 15 22 27 0 0 0 0 0 2 0 1 0 3 0 5-4 14-14 22-27 22-2 0-4 0-7 0-14-3-24-17-21-31 0 0 0-1 0-1 4-14 14-23 28-23-2-1 0-1 1-1z m178-89l-75 99c-5-12-17-22-31-24l58-77 48 0z m-120 89c2 0 2 0 4 0 1 0 1 0 3 0 12 0 24 8 27 22 0 0 0 2 0 2 2 13-6 27-20 30-2 0-5 0-7 0-12 0-24-8-27-22 0-2 0-3 0-5 0 0 0 0 0-2 0-10 8-22 20-25z m128-101l-351 0 51-249 288 0 52 249z"/>
|
37 |
+
<glyph glyph-name="discoverwp" unicode="C" d="M319 333c-7 8-15 17-25 22-11 5-23 9-35 9-8 0-15 0-22 0-5 0-12 0-17 0 0-2 0-6 0-12 0-7 0-14-2-21l0-24-1-19-4-70-1-20-2-24c0-7 0-14 0-20 0-7 0-11 0-12 3 0 8-2 14-2 5 0 12-2 18-2 28-1 52 7 69 26 17 19 27 49 29 89 0 15 0 30-4 44-3 15-10 27-17 36z m-61 150c-125 0-226-102-226-227 0-125 101-225 226-225 124 0 225 100 225 225 0 125-101 227-225 227z m140-230c-2-23-5-41-12-58-7-18-17-31-29-43-12-12-26-21-43-26-15-5-32-8-49-7-19 2-35 2-48 4-14 2-24 2-34 2-7 0-12 0-17 1-6 0-11 0-14 0 2 16 3 33 5 50 2 17 2 36 3 58l2 53c0 18 2 37 2 54 0 4 0 5 0 9-7-2-12-4-17-5 0 0-4-4-5-5l-11-12c-13-16-15-23-22-29 0 0 9 58 16 105 0 4 1 6 1 7 5-8 12-24 17-34 28 5 55 9 84 9 9 0 19 0 31-2 20-2 41-3 58-9 17-5 32-11 44-22 12-10 21-24 27-41 9-15 12-36 11-59z"/>
|
38 |
+
<glyph glyph-name="wpml" unicode="D" d="M305 227c4-39 36-68 74-68 49 0 70 46 77 82 29 153-89 269-227 252-77-8-186-92-171-227 14-119 150-213 295-150 63 27 91-89 19-92-14 8-12 31-17 46-2 5-5 10-9 14-3 3-6 5-11 6-11 0-21-10-21-25 0-10 3-21 9-26 1-1 3-3 5-5 15-17 49-22 68-15 46 15 41 97-15 106-36 5-52-14-74-19-145-33-230 102-213 208 10 70 72 128 135 140 70 14 150-10 155-63 9-72-84-91-79-164z"/>
|
39 |
+
<glyph glyph-name="otgs" unicode="E" d="M123 265c0-29 5-53 15-72 10-21 26-34 46-45 21-10 43-15 65-15 36 0 67 12 91 38 24 24 35 56 35 92 0 37-11 68-35 92-17 17-40 29-64 34l0 89-59 0 0-91c-12-3-24-6-34-13-21-10-35-26-46-46-9-21-14-41-14-63z m85 52c4 4 7 7 12 11l0-103 60 0 0 104c5-3 10-6 15-12 12-13 17-32 17-56 0-25-5-44-17-56-12-14-25-19-42-19-17 0-31 7-43 19-12 13-17 32-17 56-4 24 3 43 15 56z m183 123l-39-49c41-29 66-77 66-132 0-90-73-162-162-162-89 0-162 74-162 162 0 52 22 96 60 125l-40 51c-51-41-83-104-83-174 0-126 100-227 225-227 125 0 225 101 225 225 0 76-36 140-90 181z"/>
|
40 |
+
<glyph glyph-name="wrench" unicode="F" d="M63 365l50-49c20-21 56-19 78 3 22 22 24 58 4 79l-50 49c10 4 21 4 31 4 65 0 118-53 118-118 0-19-4-36-12-50l158-157c14-13 14-37-1-53-16-15-40-17-53-1l-159 157c-15-7-32-12-50-12-64 0-117 53-117 118 0 10 1 20 3 30z m330-264c0-11 8-21 20-21 10 0 20 9 20 21 0 10-8 20-20 20-12 0-20-10-20-20z"/>
|
41 |
+
<glyph glyph-name="link" unicode="G" d="M299 398l-60-58c-12-12-12-29 0-41l10-11 63 64 38-38-63-63 10-10c12-12 29-12 41 0l60 59c12 12 12 29 0 41l-60 60c-10 9-29 9-39-3z m-69-193c-6-7-18-7-27 0-7 7-7 19 0 27l80 80c7 7 19 7 28 0 6-7 6-18 0-27z m-17-91l60 60c12 12 12 29 0 41l-10 10-63-63-38 38 63 63-12 10c-12 12-29 12-41 0l-59-60c-12-12-12-29 0-41l59-59c12-11 31-11 41 1z"/>
|
42 |
+
<glyph glyph-name="envelope-o" unicode="H" d="M413 365l-328 0 0-218 342 0 0 218z m-14-13l-131-132c-7-7-17-7-22 0l-133 132z m-300-6l89-88-89-89z m10-186l87 87 38-37c5-5 13-9 20-9 7 0 16 4 21 9l37 37 87-87z m304 9l-89 89 89 88z"/>
|
43 |
+
<glyph glyph-name="user" unicode="I" d="M386 121l-258-2c0 0-2 14-2 28 0 13 14 17 14 17 17 8 70 29 73 31l0 13 7 2c0 0 2 22 2 26 0 0-9 18-12 29 0 0-7 0-9 6-1 9 0 14-1 19-2 5 3 12 7 10 0 0-9 41 0 53 5 12 8 33 49 40 0 0 24-4 24-7 0 0 20-14 27-34 4-14 2-41 0-48 0 0 7 1 5-7-1-12-1-36-10-31 0 0 0-25-8-30 0 0-2-21 1-21l5 0c0 0 2-17 7-20 0 0 67-23 75-33 7-12 4-41 4-41z"/>
|
44 |
+
<glyph glyph-name="wpml-cms-nav" unicode="J" d="M232 104l-152 152 152 152m48-304l152 152-152 152"/>
|
45 |
+
<glyph glyph-name="wpml-media" unicode="K" d="M335 425l46 0 0-340-46 0z m-103-67l46 0 0-271-46 0z m-101-68l46 0 0-203-46 0z"/>
|
46 |
+
<glyph glyph-name="wpml-string-translation" unicode="L" d="M294 131c-18 0-35 4-52 11-41 17-80 37-117 58-19 10-40 20-58 30-9 4-11 14-7 23 3 8 13 12 22 6 19-10 37-20 58-30 37-21 77-41 116-57 31-13 63-10 89 7 29 19 44 50 44 87 0 46-37 84-84 84-35 0-63-29-63-63 0-26 23-48 48-48 19 0 34 15 34 34 0 14-12 26-25 26-9 0-16 6-16 15 0 9 7 15 16 15 30 0 56-25 56-56 0-37-31-66-67-66-44 0-80 35-80 80 0 53 43 95 96 95 63 0 116-51 116-116 0-46-22-89-58-112-21-16-45-23-68-23z"/>
|
47 |
+
<glyph glyph-name="wpml-translation-management" unicode="M" d="M381 292c-12 0-24-7-29-19l-135 0c-4 15-12 27-24 36l51 22c0 0 0-2 0-2 3-17 21-29 38-25 17 3 29 20 25 37-3 17-20 29-37 26-11-2-17-9-23-15l-76-33c-4 2-9 2-14 2-34 0-60-27-60-60 0-32 28-60 60-60 9 0 17 2 24 6l118-45c5-7 12-14 20-15 17-4 34 8 38 25 3 17-9 35-26 38-17 3-34-9-37-26 0-1 0-1 0-3l-96 36c10 10 17 24 19 41l129 0c2-16 16-29 33-29 17 0 32 13 32 32 0 19-12 31-30 31z"/>
|
48 |
+
<glyph glyph-name="picture" unicode="N" d="M427 116l-342 0 0 280 342 0z m-311 31l282 0 0 218-282 0z m150 25c33 0 79 0 96 0l0 38-65 92-63-89-41 40-53-50 0-29c34-2 104-2 126-2"/>
|
49 |
+
<glyph glyph-name="toolset-training" unicode="O" d="M384 427l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-33-284c0-19-17-29-38-39 0 0-29-14-58-14-28 0-57 14-57 14-24 11-39 19-39 39l0 51 66-23c9-3 20-5 30-5 11 0 22 2 30 5l66 23z m33-3l6 21c0 3 2 5 5 5 3 0 5-2 5-5l6-21z m22 103l0-60c0-6-5-10-11-10-5 0-10 4-10 10l0 52-106-36c-13-6-35-6-48 0l-153 55 28 11 125 53c13 6 35 6 48 0l125-53 30-12z"/>
|
50 |
+
<glyph glyph-name="access-title" unicode="P" d="M155 101l-19 0-5-12-16 0 30 60 20 0 5-60-15 0z m-13 12l12 0 0 17 0 4c0 2 0 4 0 6-1-3-2-5-3-7z m55-25c-6 0-10 2-13 6-2 3-4 7-4 14 0 5 1 10 3 14 2 5 5 8 9 11 3 2 8 3 13 3 5 0 10-1 15-3l-5-12c-4 2-7 3-10 3-2 0-3-1-4-2-2-1-3-3-4-6-1-3-2-5-2-8 0-2 1-4 2-5 1-1 2-2 4-2 1 0 3 0 5 1 2 0 4 1 6 3l0-13c-2-1-4-2-7-3-2 0-5-1-8-1z m42 0c-6 0-10 2-13 6-3 3-4 7-4 14 0 5 0 10 3 14 2 5 5 8 9 11 3 2 8 3 13 3 5 0 10-1 15-3l-6-12c-3 2-6 3-9 3-2 0-3-1-4-2-2-1-3-3-4-6-1-3-2-5-2-8 0-2 1-4 2-5 1-1 2-2 4-2 1 0 3 0 5 1 2 0 4 1 6 3l0-13c-2-1-5-2-7-3-2 0-5-1-8-1z m43 0c-6 0-10 2-13 5-4 3-5 8-5 14 0 5 1 11 3 15 3 5 6 8 9 11 5 2 9 3 14 3 6 0 10-1 13-3 2-3 4-6 4-10 0-5-2-9-6-12-5-3-11-4-19-4l-2 0 0-1c0-4 2-6 6-6 3 0 4 1 7 1 2 0 4 2 7 3l0-11c-4-1-6-3-9-3-2-1-5-2-9-2z m7 38c-2 0-4-1-5-3-1-2-2-4-3-7l2 0c2 0 5 1 7 2 1 1 2 3 2 5 0 1-1 1-1 2-1 1-1 1-2 1z m56-21c0-5-1-10-5-12-3-3-9-5-15-5-6 0-11 1-15 3l0 13c3-2 5-3 7-3 3 0 5-1 7-1 2 0 3 1 4 1 1 0 2 1 2 2 0 1-1 2-1 3-1 1-3 2-6 3-2 1-5 3-6 5-1 3-2 5-2 8 0 5 2 8 5 11 3 2 8 3 14 3 3 0 6 0 9-1 2 0 5-1 7-3l-5-10c-2 1-4 2-6 3-2 0-3 1-5 1-2 0-3-1-3-3 0-1 0-2 1-2 1 0 3-1 5-2 5-4 8-8 8-14z m42 0c0-5-2-10-5-12-3-3-9-5-15-5-6 0-11 1-15 3l0 13c3-2 5-3 7-3 3 0 5-1 7-1 2 0 3 1 4 1 1 0 1 1 1 2 0 1 0 2 0 3-1 1-3 2-6 3-2 1-5 3-6 5-2 3-2 5-2 8 0 5 2 8 5 11 3 2 8 3 14 3 3 0 6 0 8-1 3 0 6-1 8-3l-5-10c-2 1-4 2-6 3-2 0-4 1-5 1-2 0-3-1-3-3 0-1 0-2 1-2 1 0 3-1 4-2 6-4 9-8 9-14z m-132 286c-13 0-25-11-25-25l0-16 50 0 0 16c0 14-11 25-25 25z m82 65l0 56-56 0 0-56-56 0 0 56-56 0 0-56-55 0 0-279 279 0 0 279z m-20-220c0-7-5-12-12-12l-101 0c-7 0-13 5-13 12l0 101c0 7 6 13 13 13l7 0 0 16c0 25 20 45 44 45 24 0 44-20 44-45l0-16 5 0c7 0 13-6 13-13z"/>
|
51 |
+
<glyph glyph-name="views-title" unicode="Q" d="M178 149l17 0-30-60-18 0-4 60 16 0 1-33 0-2c0-3 0-7-1-10l1 0c0 2 1 4 2 7 0 2 1 4 2 6z m27-60l-16 0 10 46 16 0z m-4 57c0 2 1 5 2 6 2 2 4 3 7 3 3 0 5-1 6-2 1-1 2-2 2-4 0-3-1-5-2-7-2-1-4-2-7-2-5 0-8 1-8 6z m36-58c-5 0-10 2-13 5-3 3-5 8-5 14 0 5 1 11 3 15 3 5 6 8 10 11 4 2 8 3 14 3 5 0 9-1 12-3 3-3 5-6 5-10 0-5-3-9-7-12-4-3-10-4-19-4l-2 0 0-1c0-4 2-6 7-6 2 0 4 1 6 1 2 0 5 2 7 3l0-11c-3-1-6-3-8-3-3-2-6-2-10-2z m7 38c-2 0-3-1-5-3-1-2-2-4-3-7l2 0c3 0 5 1 7 2 2 1 2 3 2 5 0 1 0 1-1 2 0 1-1 1-2 1z m54-37l1 18c0 2 0 5 1 8 0 4 0 7 1 9l-1 0c-2-6-3-11-5-16l-8-20-17 0-2 47 15 0 0-21c0-5 0-8-1-11l1 0c1 5 2 9 3 12l7 20 18 0-1-20c0-3 0-7-1-12l0 0c0 1 1 2 1 2 0 1 0 3 1 6 1 3 5 11 10 24l16 0-22-47-17 0z m72 16c0-5-2-10-6-12-3-3-8-5-15-5-6 0-11 1-14 3l0 12c2-1 4-2 7-2 2-1 4-1 6-1 2 0 3 0 4 1 1 0 2 1 2 2 0 1-1 2-1 2-1 1-3 2-5 3-3 2-5 4-7 6-1 2-2 5-2 7 0 5 2 9 5 11 4 3 8 4 14 4 4 0 6-1 9-1 2 0 5-2 7-3l-5-11c-2 2-4 3-5 3-2 1-4 1-6 1-1 0-3-1-3-3 0-1 1-1 2-1 0-1 2-2 4-3 6-3 9-7 9-13z m-30 351l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-183-140c0 0 90 122 201 0-1 0-90-126-201 0z m100 37c-21 0-38-17-38-38 0-21 17-38 38-38 21 0 38 17 38 38 0 21-17 38-38 38z m0-63c-14 0-25 12-25 26 0 14 11 25 25 25 14 0 25-11 25-25 0-14-11-26-25-26z"/>
|
52 |
+
<glyph glyph-name="cred-title" unicode="R" d="M340 456l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-21-215c0-1 0-1-1-2 0 0 0-1 0-1-1-1-1-1-1-2 0 0 0 0-1-1 0 0-1-1-1-1-1-1-1-1-2-2l-1 0c0 0-1-1-2-1-1-1-2-2-3-2 0 0-1 0-2-1l0 0c-1-1-1-1-2-1l0 0c-2 0-3-1-4-1l-1 0c-1-1-2-1-4-2l0 0c-2 0-4-1-5-1l-1 0c-2-1-3-1-5-1l-1 0c-1 0-3 0-5 0l-1 0c-1 0-3-1-4-1l-1 0c-2 0-4 0-6 0l-1 0c-1 0-3 0-4 0l-1 0c-1 0-2 0-2 0-1 0-2 0-2 0l-1 0c-1 0-3 0-4 0l-1 0c-1 0-2 0-3 0l-2 0c-1 0-2 1-3 1l-1 0c-1 0-2 0-3 0l-1 0c-1 0-2 0-4 0-1 0-2 1-3 1l-1 0c-2 1-3 1-4 1l-1 0c-1 1-3 1-4 2l-1 0c0 0-1 0-2 0l0 1c-1 0-1 0-2 0l0 1-1 0-1 0-2 1-1 0-1 1-1 1-2 1-1 0-3 2-4 4-1 1 0 0-1 1 0 1 0 1 0 1c0 1 0 1 0 2l0 36c0 0 0-1 0-1l0-3 0 0 1-1 1-1 1-1 0 0 1-1 1-1 1-1 1 0 1-1 1-1 1 0 1 0 1-1 2-1 1 0 1-1 2-1 1 0c0 0 1-1 1-1l1 0c0 0 1-1 2-1l1 0c1 0 3-1 4-1l0 0c2-1 3-1 4-1l1 0c1-1 2-1 4-1l0 0c2 0 3-1 4-1l1 0c1 0 2 0 3 0l1 0c2 0 2-1 4-1l1 0c1 0 2 0 3 0l1 0c1 0 3 0 4 0 1 0 2 0 3 0 1 0 2 0 3 0 1 0 3 0 4 0l1 0c2 0 4 0 6 0l1 0c1 0 3 1 4 1l1 0c2 0 4 0 5 0l1 0c1 1 3 1 5 1l1 0c1 1 3 1 5 2l0 0c2 0 3 1 4 1l1 0c1 0 2 1 4 1l0 1c0 0 1 0 1 0l1 1c1 0 2 0 2 1 1 0 3 1 3 2 1 0 2 0 3 1l0 0c1 1 2 1 2 2 1 0 1 1 2 1l0 1c0 0 1 1 1 1 0 1 0 1 1 1l0 1c0 0 0 1 0 1 0 1 0 1 1 2l0 1 0-36z m0 52c0-1 0-1-1-2 0 0 0-1 0-1-1 0-1-1-1-1 0-1 0-1-1-2 0 0-1-1-1-1-1-1-1-1-2-2l-1 0c0 0-1-1-2-1-1 0-2-1-3-2 0 0-1 0-2-1l-1 0c0-1-1-1-1-1l-1 0c-1 0-2-1-4-1l0 0c-2-1-3-1-4-2l-1 0c-1 0-3 0-5-1l0 0c-2 0-4-1-5-1l-1 0c-2 0-3 0-5 0l-1 0c-1 0-3-1-5-1l-1 0c-1 0-3 0-5 0l-1 0c-1 0-3 0-5 0l0 0c-1 0-2 0-3 0 0 0-1 0-2 0l0 0c-2 0-3 0-5 0l-1 0c-1 0-2 0-3 0l-1 0c-1 0-2 1-4 1l0 0c-1 0-2 0-4 0l0 0c-2 0-3 1-4 1-2 0-3 0-4 1l-1 0c-1 0-3 0-4 0l-1 0c-1 1-2 1-4 2l0 0c-1 0-1 0-2 0l-1 1c0 0-1 0-1 0l-1 1 0 0-3 1-1 1-2 1-1 0-2 1-1 0-1 1-1 1-2 1 0 1-1 0 0 1-2 1 0 1-1 0 0 1 0 1 0 1 0 2c0 0 0 0 0 1l-1 36c0 0 0-1 0-1l0-2 3-4 1 0 0-1 2-2 1 0 1 0 2-1 1-1 2-1 1 0 1-1 1-1 2-1 1 0c1 0 1 0 2 0l1-1c0 0 0 0 1 0l1-1c2 0 3-1 4-1l1 0c1-1 2-1 4-1l1 0c1-1 2-1 3-1l1 0c1 0 2-1 4-1l0 0c1 0 2 0 4 0l1 0c1 0 2-1 3-1l1 0c1 0 2 0 4 0l0 0c2 0 3 0 5 0 1 0 2 0 2 0 1 0 2 0 3 0 2 0 4 0 5 0l1 0c2 0 4 0 5 0l1 0c2 0 4 1 5 1l1 0c1 0 3 0 5 0l0 0c2 1 4 1 6 1l0 0c2 1 3 1 5 2l1 0c1 0 2 1 4 1l0 0c2 1 3 1 4 2l1 0c0 0 0 0 1 0l1 1c0 0 1 0 2 1 1 0 2 1 3 2 1 0 1 1 2 1l1 1c0 0 1 0 2 1 0 0 1 1 1 1l1 1c0 0 0 1 0 1 1 1 1 1 1 2l0 0c0 1 1 1 1 1 0 1 0 1 0 2l0 1 1-36z m0 52c0-1 0-1-1-2 0 0 0-1 0-1-1-1-1-1-1-2 0 0 0-1-1-1 0-1-1-1-1-2-1 0-1 0-2-1l-1 0c0 0-1-1-2-1-1-1-2-2-3-2 0-1-1-1-2-1l-1-1c0 0-1 0-1 0l-1 0c-1-1-2-1-4-1l0 0c-2-1-3-1-4-2l-1 0c-1 0-3-1-5-1l0 0c-2-1-4-1-5-1l-1 0c-2-1-3-1-5-1l-1 0c-1 0-3 0-5 0l-1 0c-1 0-3-1-5-1l-1 0c-1 0-3 0-5 0l0 0c-1 0-2 0-3 0 0 0-1 0-2 0l0 0c-2 0-3 0-5 0l-1 0c-1 0-2 0-3 1l-1 0c-1 0-2 0-4 0l0 0c-1 0-2 1-4 1l0 0c-2 0-3 0-4 0-2 0-3 1-4 1l-1 0c-1 1-3 1-4 1l-1 0c-1 1-2 1-4 2l0 0c-1 0-1 0-2 0l-1 0c0 0-1 1-1 1l-1 0 0 0-1 1-1 0-1 1-1 0-2 1-1 1-1 0-1 1-1 0-1 1-1 0-1 1-2 2 0 0-1 1 0 0-1 1 0 1-1 0 0 1 0 0 0 1 0 2c0 1 0 1 0 2l-1 31c0 0 0 0 0 1 0 0 0 0 0 0l0 4c0 0 0-1 0-1l0-1c3 13 29 23 62 22 33 0 60-11 62-24 0 1 0 1 0 2l0 1 1-37z m-134-209c-3 0-5-1-8-3-2-2-4-5-5-9-2-3-2-8-2-12 0-4 1-6 2-8 2-2 4-3 7-3 2 0 4 0 7 1 2 0 5 1 8 3l0-13c-5-3-12-4-18-4-7 0-13 2-16 6-4 4-6 10-6 17 0 8 1 14 4 20 3 6 7 11 11 14 5 3 11 4 17 4 7 0 14-1 19-5l-6-13c-2 2-4 3-7 4-3 1-4 1-7 1z m39-25l-5-22-16 0 13 59 16 0c7 0 12-1 16-4 3-3 5-7 5-12 0-4-1-8-3-11-1-3-4-6-8-7l9-21 2-4-17 0-8 22z m2 12l2 0c3 0 5 1 6 2 2 2 2 4 2 6 0 2 0 3-1 4-1 1-2 1-4 1l-2 0z m67-34l-35 0 12 59 36 0-3-13-20 0-1-9 18 0-3-13-18 0-3-11 20 0z m65 37c0-7-1-14-4-20-3-5-7-10-12-13-5-3-11-5-18-5l-19 0 12 60 18 0c7 0 13-2 17-6 4-3 6-8 6-16z m-32-24c3 0 6 1 8 3 3 2 4 5 6 9 1 3 2 7 2 12 0 3-1 6-3 8-1 1-3 2-6 2l-3 0-7-33 3 0z"/>
|
53 |
+
<glyph glyph-name="layouts-title" unicode="S" d="M95 89l13 59 16 0-10-46 20 0-3-13z m83 0l-12 0 0 5 0 0c-2-2-4-4-5-5-2-1-4-1-6-1-5 0-8 1-10 5-3 3-3 7-3 13 0 4 0 9 2 15 2 5 5 8 8 11 3 3 6 4 10 4 2 0 4-1 6-1 2-1 3-3 5-6l0 0 2 6 13 0z m-16 12c1 0 2 1 3 2 2 2 3 4 3 7 0 3 1 5 1 8 0 2-1 3-1 4 0 1-1 1-2 1-2 0-4-2-6-5-2-3-2-7-2-11 0-4 1-6 4-6z m30 34l16 0 2-22 0-6 0 0c1 3 2 6 2 7 1 0 4 8 10 22l17 0-27-52c-3-5-6-9-10-11-3-2-7-3-12-3-2 0-5 0-7 0l0 13c2-1 3-1 5-1 2 0 4 1 6 2 1 1 3 2 4 4l1 2z m64-47c-6 0-10 1-13 5-3 3-5 7-5 13 0 5 1 10 4 15 2 5 5 8 9 11 4 2 8 3 14 3 5 0 10-1 13-4 3-3 5-8 5-13 0-6-1-11-4-16-2-4-5-8-9-10-4-3-9-4-14-4z m7 36c-3 0-5-2-6-5-1-4-2-9-2-13 0-4 1-6 3-6 2 0 4 2 5 6 2 3 3 8 3 13 0 2-1 3-1 4-1 1-2 1-2 1z m42-20c0-1 1-2 1-3 1 0 2 0 3 0 1 0 3 0 4 3 1 2 2 5 3 9l5 22 16 0-10-47-13 0 1 7-1 0c-1-2-3-4-5-6-2-1-5-1-7-1-4 0-7 0-9 3-3 3-3 6-3 10 0 3 0 6 0 9l6 25 15 0-5-25c0-2-1-4-1-6z m56-3c2 0 4 0 7 2l0-12c-4-2-8-3-14-3-4 0-7 1-9 3-2 2-3 4-3 8 0 2 0 5 1 8l3 16-7 0 2 8 9 4 6 10 10 0-2-10 12 0-3-12-11 0-4-15c0-3 0-4 0-5 0-1 1-2 3-2z m51 4c0-5-1-10-5-12-3-3-9-5-15-5-6 0-11 1-15 3l0 13c3-2 5-3 7-3 3 0 5-1 7-1 2 0 3 1 4 1 1 0 2 1 2 2 0 1-1 2-1 3-1 1-3 2-5 3-3 1-6 3-7 5-1 3-2 5-2 8 0 5 2 8 5 11 4 2 8 3 14 3 3 0 6 0 9-1 2 0 5-1 7-3l-5-10c-2 1-4 2-6 3-2 0-3 1-5 1-2 0-3-1-3-3 0-1 0-2 1-2 1 0 3-1 5-2 5-4 8-8 8-14z m-72 351l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-137-242l-51 0 0 127 51 0z m155 0l-142 0 0 127 142 0z m0 140l-206 0 0 54 206 0z"/>
|
54 |
+
<glyph glyph-name="types-title" unicode="T" d="M165 89l-16 0 10 46-13 0 2 13 42 0-2-13-13 0z m24 46l16 0 2-22 0-6 0 0c1 3 2 6 2 7 0 0 4 8 10 22l17 0-27-52c-3-5-6-9-10-11-4-2-8-3-12-3-3 0-5 0-7 0l0 12c2-1 3-1 5-1 2 0 4 1 6 2 1 1 3 2 4 5l1 1z m68-47c-3 0-7 2-9 6l0 0c-1-5-1-10-3-15l-2-11-15 0 14 67 12 0 0-5 0 0c3 4 6 6 11 6 4 0 7-1 10-5 2-3 4-7 4-12 0-6-1-11-3-16-2-5-5-9-7-11-3-3-8-4-12-4z m2 35c-2 0-3-1-4-2-1-1-2-4-3-7 0-2-1-5-1-7 0-2 1-4 1-5 1-1 2-1 3-1 1 0 3 1 4 2 1 2 2 4 3 6 0 3 1 5 1 8-1 4-2 6-4 6z m44-35c-5 0-10 1-13 5-3 3-5 8-5 13 0 6 1 11 4 15 2 5 5 8 9 11 4 3 8 4 14 4 5 0 9-1 12-4 3-2 5-5 5-9 0-6-3-10-7-13-4-2-10-4-19-4l-2 0 0 0c0-5 2-6 7-6 2 0 4 0 6 1 2 0 5 1 7 3l0-11c-3-2-6-3-8-4-3-1-6-1-10-1z m7 38c-2 0-3-1-5-3-1-2-2-4-2-7l1 0c3 0 5 1 7 2 2 1 2 3 2 5 0 1 0 1-1 2 0 1-1 1-2 1z m57-21c0-5-2-10-5-12-4-3-9-5-16-5-6 0-10 1-14 3l0 13c2-2 5-3 7-3 2 0 4-1 6-1 2 0 4 1 5 1 0 0 1 1 1 2 0 1-1 2-1 3-1 1-2 2-5 3-3 1-5 3-7 5-1 3-1 5-1 8 0 5 1 8 5 11 3 2 8 3 14 3 3 0 6 0 8-1 2 0 5-1 7-3l-5-10c-2 1-3 2-5 3-2 0-4 1-5 1-2 0-4-1-4-3 0-1 1-2 2-2 1 0 2-1 4-2 6-4 9-8 9-14z m-27 351l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-191-92c0 3 1 6 3 6 1 1 4 2 7 2l5 0c4 0 7 0 8 1 2 1 3 3 3 6l1 4c1 3 2 5 4 6 1 1 4 2 8 2l34 0c3 0 5-1 7-2 0-1 1-3 2-6l1-5c1-3 2-5 4-5 1-1 5-1 10-1l64 0c5 0 7-3 7-8l0-10-107 0c-7 0-11 0-13-1-1-1-5-3-8-9l-40-77z m219-31l-41-82-165 0 42 82c2 3 3 4 5 5 1 1 3 2 7 2l148 0c4 0 6-1 6-2 0-1-1-2-2-5z"/>
|
55 |
+
<glyph glyph-name="module-manager-title" unicode="U" d="M127 89l0 43 0 0c-2-11-3-18-4-21l-5-22-14 0 12 60 22 0 0-42 0 0 20 42 21 0-13-60-14 0 4 23c2 6 3 12 5 17l0 3 0 0-20-43z m74-1c-6 0-11 2-13 5-3 3-5 8-5 13 0 6 1 11 3 15 3 5 5 9 9 11 5 3 9 4 14 4 6 0 11-1 13-5 3-3 5-7 5-13 0-5-1-10-3-15-2-5-5-9-9-11-5-2-9-4-14-4z m6 37c-2 0-4-2-5-6-2-4-3-8-3-13 0-4 1-5 3-5 3 0 5 1 6 5 1 4 2 8 2 13 0 2 0 3-1 4 0 1-1 2-2 2z m47 11c2 0 4 0 5-1 2-1 3-2 5-5l0 0 0 1c0 4 1 7 1 9l3 12 15 0-13-64-13 0 1 6-1 0c-1-3-3-4-5-5-2-1-3-1-6-1-4 0-7 1-10 4-2 3-3 8-3 13 0 5 1 10 3 15 2 5 5 9 7 12 3 3 7 4 11 4z m-1-35c2 0 3 1 4 3 1 1 2 4 3 6 0 3 1 5 1 8 0 4-1 6-4 6-1 0-2-1-3-2-1-1-3-4-4-7-1-2-1-5-1-7 1-5 2-7 4-7z m48 4c0-2 0-2 1-3 0-1 1-1 2-1 1 0 3 1 4 3 2 3 2 5 3 9l5 22 16 0-10-46-12 0 0 6 0 0c-2-2-4-4-6-5-1-1-4-2-7-2-4 0-7 1-9 4-2 2-3 5-3 9 0 3 0 7 1 10l5 24 16 0-5-25c-1-2-1-4-1-5z m49-16l-16 0 13 64 16 0z m32-1c-5 0-10 2-13 5-4 3-5 8-5 14 0 5 1 11 3 15 3 5 6 8 10 11 4 2 8 3 14 3 5 0 9-1 12-3 2-3 4-6 4-10 0-5-2-9-6-12-4-3-10-4-19-4l-2 0 0-1c0-4 2-6 6-6 3 0 5 1 7 1 2 0 5 2 7 3l0-11c-3-1-6-3-9-3-2-1-6-2-9-2z m7 38c-2 0-4-1-5-3-1-2-2-4-3-7l2 0c2 0 5 1 7 2 1 1 2 3 2 5 0 1-1 1-1 2 0 1-1 1-2 1z m-290-102l0 43-1 0c-2-11-3-18-4-21l-4-22-15 0 13 60 21 0 0-43 1 0 19 43 22 0-13-60-15 0 5 23c1 6 3 12 4 17l1 3-1 0-19-43z m92 0l-12 0 0 5 0 0c-2-2-4-3-5-4-2-1-4-2-6-2-5 0-8 2-10 5-3 3-3 7-3 13 0 5 0 10 2 15 2 5 5 9 8 11 3 3 6 4 10 4 2 0 4 0 6-1 2-1 3-3 5-5l0 0 3 5 12 0z m-17 12c1 0 3 1 4 3 1 1 2 3 3 6 0 3 1 5 1 8 0 2-1 3-1 4-1 1-2 2-3 2-2 0-3-2-5-5-2-4-3-8-3-12 1-4 2-6 4-6z m60 19c0 2 0 2-1 3 0 1-1 1-2 1-2 0-3-1-4-3-2-2-3-5-4-9l-4-23-16 0 10 47 12 0 0-7 0 0c2 3 4 5 5 6 2 1 5 2 8 2 4 0 7-2 9-4 2-2 3-6 3-10 0-3-1-6-1-9l-5-25-16 0 5 25c1 3 1 5 1 6z m60-31l-12 0 0 5 0 0c-2-2-4-3-6-4-1-1-3-2-6-2-4 0-7 2-9 5-3 3-4 7-4 13 0 5 1 10 3 15 2 5 5 9 8 11 2 3 6 4 10 4 2 0 4 0 6-1 2-1 3-3 5-5l0 0 2 5 13 0z m-17 12c1 0 3 1 4 3 1 1 2 3 2 6 1 3 1 5 1 8 0 2 0 3-1 4 0 1-1 2-2 2-2 0-4-2-5-5-2-4-3-8-3-12 1-4 2-6 4-6z m78 35l-2-9-6-2c0-1 0-2 0-4 0-5-2-9-5-12-4-4-8-5-14-5-2 0-4 0-5 1 0-1-1-1-1-1-1-1-1-1-1-2 0-1 2-2 5-2l5-1c5 0 9-2 11-4 2-2 3-4 3-8 0-6-2-10-7-13-5-3-11-5-20-5-5 0-10 1-14 3-3 3-5 6-5 9 0 3 1 5 3 7 2 2 5 4 9 4-1 1-2 2-2 3-1 1-1 2-1 3 0 2 0 4 2 5 1 2 3 3 6 4-4 3-6 7-6 12 0 5 2 10 6 13 3 2 8 4 14 4 2 0 3 0 5 0 1-1 2-1 3-1l17 0z m-42-53c0-2 2-4 7-4 3 0 6 1 8 2 2 1 2 2 2 3 0 1 0 2-1 2-1 1-2 1-5 1l-4 1c-3-1-4-1-5-2-2-1-2-2-2-3z m12 35c0-3 1-4 3-4 2 0 3 1 4 3 1 2 1 4 1 6 0 3-1 4-2 4-1 0-2-1-3-1-1-1-1-3-2-4 0-2-1-3-1-4z m48-30c-5 0-10 2-13 5-3 3-5 8-5 13 0 6 1 12 3 16 3 4 6 8 10 10 4 3 8 4 14 4 5 0 9-1 12-4 3-2 4-5 4-9 0-5-2-10-6-12-4-3-10-5-19-5l-2 0 0 0c0-4 2-6 6-6 3 0 5 0 7 1 2 0 5 2 7 3l0-11c-3-1-6-3-8-3-3-1-6-2-10-2z m7 38c-2 0-3-1-5-3-1-2-2-4-3-7l2 0c3 0 5 1 7 2 2 1 2 3 2 5 0 1 0 1-1 2 0 1-1 1-2 1z m57 10c1 0 3 0 3 0l-3-16c-1 0-3 1-5 1-3 0-5-1-7-3-1-2-2-5-3-9l-4-20-16 0 9 46 13 0-1-8 1 0c1 4 3 5 5 7 2 1 5 2 8 2z m-97 385l0 56-56 0 0-56-56 0 0 56-56 0 0-56-56 0 0-279 280 0 0 279z m-93-249l-85 49 0 91 85-51z m102 49l-85-48 0 86 85 51z m0 108l-92-54-94 55 93 54z"/>
|
56 |
+
<glyph glyph-name="access" unicode="v" d="M259 327c-21 0-38-17-38-38l0-24 76 0 0 24c0 21-18 38-38 38z m125 100l0 85-85 0 0-85-86 0 0 85-85 0 0-85-85 0 0-427 426 0 0 427z m-30-336c0-11-8-19-19-19l-154 0c-11 0-20 8-20 19l0 154c0 11 9 20 20 20l10 0 0 24c0 37 31 68 68 68 37 0 67-31 67-68l0-24 8 0c11 0 19-9 19-20l0-154z"/>
|
57 |
+
<glyph glyph-name="bullhorn" unicode="V" d="M401 316c-32 73-83 130-109 119-44-18 26-103-189-191-19-8-24-38-16-56 8-18 33-36 52-29 3 2 15 6 15 6 13-18 27-8 32-19l23-53c5-10 15-20 22-17l41 16c7 2 12 9 10 16-1 1-1 2-1 2-3 7-16 9-20 18-3 8-15 34-18 43-5 11 5 21 19 22 98 10 117-50 150-37 26 11 21 86-11 160z m-11-120c-6-3-45 28-69 85-25 58-22 110-16 113 6 2 43-35 68-92 25-58 23-104 17-106z"/>
|
58 |
+
<glyph glyph-name="comment" unicode="W" d="M79 58l0 24c1 35 27 65 63 69 1 0 2 0 3-1 34-24 80-24 114 0 1 1 2 1 4 1 35-4 62-34 62-69l0-24m-196 171c0 41 33 73 73 73 40 0 73-32 73-73 0-40-33-72-73-72-40 0-73 32-73 72z m296 213l-144 0c-10 0-18-8-18-18l0-84c0-10 8-18 18-18l0 0 0-42c0-2 2-4 4-4 1 0 2 0 2 1l41 44 3 1 94 0c10 0 18 8 18 18l0 84c0 10-8 18-18 18z"/>
|
59 |
+
<glyph glyph-name="quote" unicode="X" d="M395 290c0 77-62 139-139 139-77 0-139-62-139-139 0-66 47-122 109-135l0-63c0-5 4-9 9-9 3 0 5 1 7 3l109 102c0 0 0 0-1 0 28 26 45 62 45 102z m-121 4l0 48 47 0 0-41c0-7-1-14-2-20-2-6-5-12-8-17-7-10-15-19-24-26l-13 11c14 11 24 27 26 44l-26 0z m-59-56c0 0 0 0 0 0l-13 11c14 11 24 27 26 44l-26 0 0 49 47 0 0-41c0-7-1-14-3-20-1-6-4-12-7-18-7-9-15-18-24-25z"/>
|
60 |
+
<glyph glyph-name="thumbsup" unicode="Y" d="M321 267c-6 8-58 90-60 97-1 19 0 38 1 57 0 12-37 29-46 7-6-12-25-57-23-69 2-13 6-44 11-67l-108 0c-14 1-26-10-27-24 0 0 0 0 0 0-1-14 5-26 16-33-6-6-9-14-8-22 1-10 7-20 17-26-6-5-9-13-9-21 1-11 8-21 17-27-5-5-7-12-6-20 2-19 19-33 38-31l170 0c9 0 16 4 23 9 5 3 10 7 16 10l83 1c4 0 8 4 8 8l0 124c0 4-2 7-6 7-14 1-94 4-107 20z"/>
|
61 |
+
<glyph glyph-name="star" unicode="Z" d="M262 433l45-108 118-10c5-1 9-5 8-11 0-2-1-4-3-6l-89-77 27-115c1-5-2-9-7-11-3 0-5 0-7 2l-101 60-101-60c-4-3-10-2-12 3-2 2-2 4-2 7l27 114-89 77c-4 4-4 10-1 13 2 2 4 3 6 4l118 10 46 108c1 5 7 7 12 5 2-1 4-3 5-5z"/>
|
62 |
+
</font></defs></svg>
|
vendor/otgs/icons/fonts/otgs-icons.ttf
ADDED
Binary file
|
vendor/otgs/icons/fonts/otgs-icons.woff
ADDED
Binary file
|
vendor/otgs/icons/icons-overview.html
ADDED
@@ -0,0 +1,456 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
6 |
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
7 |
+
<title>Font Reference - otgs-icons</title>
|
8 |
+
<link href="http://fonts.googleapis.com/css?family=Dosis:400,500,700" rel="stylesheet" type="text/css">
|
9 |
+
<link rel="stylesheet" href="styles.css">
|
10 |
+
<style type="text/css">html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-family:inherit;font-size:100%;vertical-align:baseline}body{line-height:1;color:#000;background:#fff}ol,ul{list-style:none}table{border-collapse:separate;border-spacing:0;vertical-align:middle}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}a img{border:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{font-family:'Dosis','Tahoma',sans-serif}.container{margin:15px auto;width:80%}h1{margin:40px 0 20px;font-weight:700;font-size:38px;line-height:32px;color:#fb565e}h2{font-size:18px;padding:0 0 21px 5px;margin:45px 0 0 0;text-transform:uppercase;font-weight:500}.small{font-size:14px;color:#a5adb4;}.small a{color:#a5adb4;}.small a:hover{color:#fb565e}.glyphs.character-mapping{margin:0 0 20px 0;padding:20px 0 20px 30px;color:rgba(0,0,0,0.5);border:1px solid #d8e0e5;-webkit-border-radius:3px;border-radius:3px;}.glyphs.character-mapping li{margin:0 30px 20px 0;display:inline-block;width:90px}.glyphs.character-mapping .icon{margin:10px 0 10px 15px;padding:15px;position:relative;width:55px;height:55px;color:#162a36 !important;overflow:hidden;-webkit-border-radius:3px;border-radius:3px;font-size:32px;}.glyphs.character-mapping .icon svg{fill:#000}.glyphs.character-mapping input{margin:0;padding:5px 0;line-height:12px;font-size:12px;display:block;width:100%;border:1px solid #d8e0e5;-webkit-border-radius:5px;border-radius:5px;text-align:center;outline:0;}.glyphs.character-mapping input:focus{border:1px solid #fbde4a;-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}.glyphs.character-mapping input:hover{-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}.glyphs.css-mapping{margin:0 0 60px 0;padding:30px 0 20px 30px;color:rgba(0,0,0,0.5);border:1px solid #d8e0e5;-webkit-border-radius:3px;border-radius:3px;}.glyphs.css-mapping li{margin:0 30px 20px 0;padding:0;display:inline-block;overflow:hidden}.glyphs.css-mapping .icon{margin:0;margin-right:10px;padding:13px;height:50px;width:50px;color:#162a36 !important;overflow:hidden;float:left;font-size:24px}.glyphs.css-mapping input{margin:0;margin-top:5px;padding:8px;line-height:16px;font-size:16px;display:block;width:150px;height:40px;border:1px solid #d8e0e5;-webkit-border-radius:5px;border-radius:5px;background:#fff;outline:0;float:right;}.glyphs.css-mapping input:focus{border:1px solid #fbde4a;-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}.glyphs.css-mapping input:hover{-webkit-box-shadow:inset 0 0 3px #fbde4a;box-shadow:inset 0 0 3px #fbde4a}</style>
|
11 |
+
</head>
|
12 |
+
<body>
|
13 |
+
<div class="container">
|
14 |
+
<h1>otgs-icons</h1>
|
15 |
+
<p class="small">This font was created with<a href="http://fontastic.me/">Fontastic</a></p>
|
16 |
+
<h2>CSS mapping</h2>
|
17 |
+
<ul class="glyphs css-mapping">
|
18 |
+
<li>
|
19 |
+
<div class="icon otgs-ico-note-add"></div>
|
20 |
+
<input type="text" readonly="readonly" value="note-add">
|
21 |
+
</li>
|
22 |
+
<li>
|
23 |
+
<div class="icon otgs-ico-note-add-o"></div>
|
24 |
+
<input type="text" readonly="readonly" value="note-add-o">
|
25 |
+
</li>
|
26 |
+
<li>
|
27 |
+
<div class="icon otgs-ico-translated"></div>
|
28 |
+
<input type="text" readonly="readonly" value="translated">
|
29 |
+
</li>
|
30 |
+
<li>
|
31 |
+
<div class="icon otgs-ico-yes"></div>
|
32 |
+
<input type="text" readonly="readonly" value="yes">
|
33 |
+
</li>
|
34 |
+
<li>
|
35 |
+
<div class="icon otgs-ico-in-progress"></div>
|
36 |
+
<input type="text" readonly="readonly" value="in-progress">
|
37 |
+
</li>
|
38 |
+
<li>
|
39 |
+
<div class="icon otgs-ico-copy"></div>
|
40 |
+
<input type="text" readonly="readonly" value="copy">
|
41 |
+
</li>
|
42 |
+
<li>
|
43 |
+
<div class="icon otgs-ico-copy-o"></div>
|
44 |
+
<input type="text" readonly="readonly" value="copy-o">
|
45 |
+
</li>
|
46 |
+
<li>
|
47 |
+
<div class="icon otgs-ico-note-edit"></div>
|
48 |
+
<input type="text" readonly="readonly" value="note-edit">
|
49 |
+
</li>
|
50 |
+
<li>
|
51 |
+
<div class="icon otgs-ico-note-edit-o"></div>
|
52 |
+
<input type="text" readonly="readonly" value="note-edit-o">
|
53 |
+
</li>
|
54 |
+
<li>
|
55 |
+
<div class="icon otgs-ico-add"></div>
|
56 |
+
<input type="text" readonly="readonly" value="add">
|
57 |
+
</li>
|
58 |
+
<li>
|
59 |
+
<div class="icon otgs-ico-refresh"></div>
|
60 |
+
<input type="text" readonly="readonly" value="refresh">
|
61 |
+
</li>
|
62 |
+
<li>
|
63 |
+
<div class="icon otgs-ico-no"></div>
|
64 |
+
<input type="text" readonly="readonly" value="no">
|
65 |
+
</li>
|
66 |
+
<li>
|
67 |
+
<div class="icon otgs-ico-not-translated"></div>
|
68 |
+
<input type="text" readonly="readonly" value="not-translated">
|
69 |
+
</li>
|
70 |
+
<li>
|
71 |
+
<div class="icon otgs-ico-delete"></div>
|
72 |
+
<input type="text" readonly="readonly" value="delete">
|
73 |
+
</li>
|
74 |
+
<li>
|
75 |
+
<div class="icon otgs-ico-waiting"></div>
|
76 |
+
<input type="text" readonly="readonly" value="waiting">
|
77 |
+
</li>
|
78 |
+
<li>
|
79 |
+
<div class="icon otgs-ico-warning"></div>
|
80 |
+
<input type="text" readonly="readonly" value="warning">
|
81 |
+
</li>
|
82 |
+
<li>
|
83 |
+
<div class="icon otgs-ico-original"></div>
|
84 |
+
<input type="text" readonly="readonly" value="original">
|
85 |
+
</li>
|
86 |
+
<li>
|
87 |
+
<div class="icon otgs-ico-needs-update"></div>
|
88 |
+
<input type="text" readonly="readonly" value="needs-update">
|
89 |
+
</li>
|
90 |
+
<li>
|
91 |
+
<div class="icon otgs-ico-cred"></div>
|
92 |
+
<input type="text" readonly="readonly" value="cred">
|
93 |
+
</li>
|
94 |
+
<li>
|
95 |
+
<div class="icon otgs-ico-layouts"></div>
|
96 |
+
<input type="text" readonly="readonly" value="layouts">
|
97 |
+
</li>
|
98 |
+
<li>
|
99 |
+
<div class="icon otgs-ico-module-manager"></div>
|
100 |
+
<input type="text" readonly="readonly" value="module-manager">
|
101 |
+
</li>
|
102 |
+
<li>
|
103 |
+
<div class="icon otgs-ico-toolset"></div>
|
104 |
+
<input type="text" readonly="readonly" value="toolset">
|
105 |
+
</li>
|
106 |
+
<li>
|
107 |
+
<div class="icon otgs-ico-types"></div>
|
108 |
+
<input type="text" readonly="readonly" value="types">
|
109 |
+
</li>
|
110 |
+
<li>
|
111 |
+
<div class="icon otgs-ico-views"></div>
|
112 |
+
<input type="text" readonly="readonly" value="views">
|
113 |
+
</li>
|
114 |
+
<li>
|
115 |
+
<div class="icon otgs-ico-edit"></div>
|
116 |
+
<input type="text" readonly="readonly" value="edit">
|
117 |
+
</li>
|
118 |
+
<li>
|
119 |
+
<div class="icon otgs-ico-duplicate"></div>
|
120 |
+
<input type="text" readonly="readonly" value="duplicate">
|
121 |
+
</li>
|
122 |
+
<li>
|
123 |
+
<div class="icon otgs-ico-basket"></div>
|
124 |
+
<input type="text" readonly="readonly" value="basket">
|
125 |
+
</li>
|
126 |
+
<li>
|
127 |
+
<div class="icon otgs-ico-discoverwp"></div>
|
128 |
+
<input type="text" readonly="readonly" value="discoverwp">
|
129 |
+
</li>
|
130 |
+
<li>
|
131 |
+
<div class="icon otgs-ico-wpml"></div>
|
132 |
+
<input type="text" readonly="readonly" value="wpml">
|
133 |
+
</li>
|
134 |
+
<li>
|
135 |
+
<div class="icon otgs-ico-otgs"></div>
|
136 |
+
<input type="text" readonly="readonly" value="otgs">
|
137 |
+
</li>
|
138 |
+
<li>
|
139 |
+
<div class="icon otgs-ico-wrench"></div>
|
140 |
+
<input type="text" readonly="readonly" value="wrench">
|
141 |
+
</li>
|
142 |
+
<li>
|
143 |
+
<div class="icon otgs-ico-link"></div>
|
144 |
+
<input type="text" readonly="readonly" value="link">
|
145 |
+
</li>
|
146 |
+
<li>
|
147 |
+
<div class="icon otgs-ico-envelope-o"></div>
|
148 |
+
<input type="text" readonly="readonly" value="envelope-o">
|
149 |
+
</li>
|
150 |
+
<li>
|
151 |
+
<div class="icon otgs-ico-user"></div>
|
152 |
+
<input type="text" readonly="readonly" value="user">
|
153 |
+
</li>
|
154 |
+
<li>
|
155 |
+
<div class="icon otgs-ico-wpml-cms-nav"></div>
|
156 |
+
<input type="text" readonly="readonly" value="wpml-cms-nav">
|
157 |
+
</li>
|
158 |
+
<li>
|
159 |
+
<div class="icon otgs-ico-wpml-media"></div>
|
160 |
+
<input type="text" readonly="readonly" value="wpml-media">
|
161 |
+
</li>
|
162 |
+
<li>
|
163 |
+
<div class="icon otgs-ico-wpml-string-translation"></div>
|
164 |
+
<input type="text" readonly="readonly" value="wpml-string-translation">
|
165 |
+
</li>
|
166 |
+
<li>
|
167 |
+
<div class="icon otgs-ico-wpml-translation-management"></div>
|
168 |
+
<input type="text" readonly="readonly" value="wpml-translation-management">
|
169 |
+
</li>
|
170 |
+
<li>
|
171 |
+
<div class="icon otgs-ico-picture"></div>
|
172 |
+
<input type="text" readonly="readonly" value="picture">
|
173 |
+
</li>
|
174 |
+
<li>
|
175 |
+
<div class="icon otgs-ico-toolset-training"></div>
|
176 |
+
<input type="text" readonly="readonly" value="toolset-training">
|
177 |
+
</li>
|
178 |
+
<li>
|
179 |
+
<div class="icon otgs-ico-access-title"></div>
|
180 |
+
<input type="text" readonly="readonly" value="access-title">
|
181 |
+
</li>
|
182 |
+
<li>
|
183 |
+
<div class="icon otgs-ico-views-title"></div>
|
184 |
+
<input type="text" readonly="readonly" value="views-title">
|
185 |
+
</li>
|
186 |
+
<li>
|
187 |
+
<div class="icon otgs-ico-cred-title"></div>
|
188 |
+
<input type="text" readonly="readonly" value="cred-title">
|
189 |
+
</li>
|
190 |
+
<li>
|
191 |
+
<div class="icon otgs-ico-layouts-title"></div>
|
192 |
+
<input type="text" readonly="readonly" value="layouts-title">
|
193 |
+
</li>
|
194 |
+
<li>
|
195 |
+
<div class="icon otgs-ico-types-title"></div>
|
196 |
+
<input type="text" readonly="readonly" value="types-title">
|
197 |
+
</li>
|
198 |
+
<li>
|
199 |
+
<div class="icon otgs-ico-module-manager-title"></div>
|
200 |
+
<input type="text" readonly="readonly" value="module-manager-title">
|
201 |
+
</li>
|
202 |
+
<li>
|
203 |
+
<div class="icon otgs-ico-access"></div>
|
204 |
+
<input type="text" readonly="readonly" value="access">
|
205 |
+
</li>
|
206 |
+
<li>
|
207 |
+
<div class="icon otgs-ico-bullhorn"></div>
|
208 |
+
<input type="text" readonly="readonly" value="bullhorn">
|
209 |
+
</li>
|
210 |
+
<li>
|
211 |
+
<div class="icon otgs-ico-comment"></div>
|
212 |
+
<input type="text" readonly="readonly" value="comment">
|
213 |
+
</li>
|
214 |
+
<li>
|
215 |
+
<div class="icon otgs-ico-quote"></div>
|
216 |
+
<input type="text" readonly="readonly" value="quote">
|
217 |
+
</li>
|
218 |
+
<li>
|
219 |
+
<div class="icon otgs-ico-thumbsup"></div>
|
220 |
+
<input type="text" readonly="readonly" value="thumbsup">
|
221 |
+
</li>
|
222 |
+
<li>
|
223 |
+
<div class="icon otgs-ico-star"></div>
|
224 |
+
<input type="text" readonly="readonly" value="star">
|
225 |
+
</li>
|
226 |
+
</ul>
|
227 |
+
<h2>Character mapping</h2>
|
228 |
+
<ul class="glyphs character-mapping">
|
229 |
+
<li>
|
230 |
+
<div data-icon="a" class="icon"></div>
|
231 |
+
<input type="text" readonly="readonly" value="a">
|
232 |
+
</li>
|
233 |
+
<li>
|
234 |
+
<div data-icon="b" class="icon"></div>
|
235 |
+
<input type="text" readonly="readonly" value="b">
|
236 |
+
</li>
|
237 |
+
<li>
|
238 |
+
<div data-icon="c" class="icon"></div>
|
239 |
+
<input type="text" readonly="readonly" value="c">
|
240 |
+
</li>
|
241 |
+
<li>
|
242 |
+
<div data-icon="d" class="icon"></div>
|
243 |
+
<input type="text" readonly="readonly" value="d">
|
244 |
+
</li>
|
245 |
+
<li>
|
246 |
+
<div data-icon="e" class="icon"></div>
|
247 |
+
<input type="text" readonly="readonly" value="e">
|
248 |
+
</li>
|
249 |
+
<li>
|
250 |
+
<div data-icon="f" class="icon"></div>
|
251 |
+
<input type="text" readonly="readonly" value="f">
|
252 |
+
</li>
|
253 |
+
<li>
|
254 |
+
<div data-icon="g" class="icon"></div>
|
255 |
+
<input type="text" readonly="readonly" value="g">
|
256 |
+
</li>
|
257 |
+
<li>
|
258 |
+
<div data-icon="i" class="icon"></div>
|
259 |
+
<input type="text" readonly="readonly" value="i">
|
260 |
+
</li>
|
261 |
+
<li>
|
262 |
+
<div data-icon="j" class="icon"></div>
|
263 |
+
<input type="text" readonly="readonly" value="j">
|
264 |
+
</li>
|
265 |
+
<li>
|
266 |
+
<div data-icon="k" class="icon"></div>
|
267 |
+
<input type="text" readonly="readonly" value="k">
|
268 |
+
</li>
|
269 |
+
<li>
|
270 |
+
<div data-icon="l" class="icon"></div>
|
271 |
+
<input type="text" readonly="readonly" value="l">
|
272 |
+
</li>
|
273 |
+
<li>
|
274 |
+
<div data-icon="n" class="icon"></div>
|
275 |
+
<input type="text" readonly="readonly" value="n">
|
276 |
+
</li>
|
277 |
+
<li>
|
278 |
+
<div data-icon="o" class="icon"></div>
|
279 |
+
<input type="text" readonly="readonly" value="o">
|
280 |
+
</li>
|
281 |
+
<li>
|
282 |
+
<div data-icon="p" class="icon"></div>
|
283 |
+
<input type="text" readonly="readonly" value="p">
|
284 |
+
</li>
|
285 |
+
<li>
|
286 |
+
<div data-icon="q" class="icon"></div>
|
287 |
+
<input type="text" readonly="readonly" value="q">
|
288 |
+
</li>
|
289 |
+
<li>
|
290 |
+
<div data-icon="s" class="icon"></div>
|
291 |
+
<input type="text" readonly="readonly" value="s">
|
292 |
+
</li>
|
293 |
+
<li>
|
294 |
+
<div data-icon="t" class="icon"></div>
|
295 |
+
<input type="text" readonly="readonly" value="t">
|
296 |
+
</li>
|
297 |
+
<li>
|
298 |
+
<div data-icon="u" class="icon"></div>
|
299 |
+
<input type="text" readonly="readonly" value="u">
|
300 |
+
</li>
|
301 |
+
<li>
|
302 |
+
<div data-icon="w" class="icon"></div>
|
303 |
+
<input type="text" readonly="readonly" value="w">
|
304 |
+
</li>
|
305 |
+
<li>
|
306 |
+
<div data-icon="x" class="icon"></div>
|
307 |
+
<input type="text" readonly="readonly" value="x">
|
308 |
+
</li>
|
309 |
+
<li>
|
310 |
+
<div data-icon="y" class="icon"></div>
|
311 |
+
<input type="text" readonly="readonly" value="y">
|
312 |
+
</li>
|
313 |
+
<li>
|
314 |
+
<div data-icon="z" class="icon"></div>
|
315 |
+
<input type="text" readonly="readonly" value="z">
|
316 |
+
</li>
|
317 |
+
<li>
|
318 |
+
<div data-icon="A" class="icon"></div>
|
319 |
+
<input type="text" readonly="readonly" value="A">
|
320 |
+
</li>
|
321 |
+
<li>
|
322 |
+
<div data-icon="B" class="icon"></div>
|
323 |
+
<input type="text" readonly="readonly" value="B">
|
324 |
+
</li>
|
325 |
+
<li>
|
326 |
+
<div data-icon="h" class="icon"></div>
|
327 |
+
<input type="text" readonly="readonly" value="h">
|
328 |
+
</li>
|
329 |
+
<li>
|
330 |
+
<div data-icon="m" class="icon"></div>
|
331 |
+
<input type="text" readonly="readonly" value="m">
|
332 |
+
</li>
|
333 |
+
<li>
|
334 |
+
<div data-icon="r" class="icon"></div>
|
335 |
+
<input type="text" readonly="readonly" value="r">
|
336 |
+
</li>
|
337 |
+
<li>
|
338 |
+
<div data-icon="C" class="icon"></div>
|
339 |
+
<input type="text" readonly="readonly" value="C">
|
340 |
+
</li>
|
341 |
+
<li>
|
342 |
+
<div data-icon="D" class="icon"></div>
|
343 |
+
<input type="text" readonly="readonly" value="D">
|
344 |
+
</li>
|
345 |
+
<li>
|
346 |
+
<div data-icon="E" class="icon"></div>
|
347 |
+
<input type="text" readonly="readonly" value="E">
|
348 |
+
</li>
|
349 |
+
<li>
|
350 |
+
<div data-icon="F" class="icon"></div>
|
351 |
+
<input type="text" readonly="readonly" value="F">
|
352 |
+
</li>
|
353 |
+
<li>
|
354 |
+
<div data-icon="G" class="icon"></div>
|
355 |
+
<input type="text" readonly="readonly" value="G">
|
356 |
+
</li>
|
357 |
+
<li>
|
358 |
+
<div data-icon="H" class="icon"></div>
|
359 |
+
<input type="text" readonly="readonly" value="H">
|
360 |
+
</li>
|
361 |
+
<li>
|
362 |
+
<div data-icon="I" class="icon"></div>
|
363 |
+
<input type="text" readonly="readonly" value="I">
|
364 |
+
</li>
|
365 |
+
<li>
|
366 |
+
<div data-icon="J" class="icon"></div>
|
367 |
+
<input type="text" readonly="readonly" value="J">
|
368 |
+
</li>
|
369 |
+
<li>
|
370 |
+
<div data-icon="K" class="icon"></div>
|
371 |
+
<input type="text" readonly="readonly" value="K">
|
372 |
+
</li>
|
373 |
+
<li>
|
374 |
+
<div data-icon="L" class="icon"></div>
|
375 |
+
<input type="text" readonly="readonly" value="L">
|
376 |
+
</li>
|
377 |
+
<li>
|
378 |
+
<div data-icon="M" class="icon"></div>
|
379 |
+
<input type="text" readonly="readonly" value="M">
|
380 |
+
</li>
|
381 |
+
<li>
|
382 |
+
<div data-icon="N" class="icon"></div>
|
383 |
+
<input type="text" readonly="readonly" value="N">
|
384 |
+
</li>
|
385 |
+
<li>
|
386 |
+
<div data-icon="O" class="icon"></div>
|
387 |
+
<input type="text" readonly="readonly" value="O">
|
388 |
+
</li>
|
389 |
+
<li>
|
390 |
+
<div data-icon="P" class="icon"></div>
|
391 |
+
<input type="text" readonly="readonly" value="P">
|
392 |
+
</li>
|
393 |
+
<li>
|
394 |
+
<div data-icon="Q" class="icon"></div>
|
395 |
+
<input type="text" readonly="readonly" value="Q">
|
396 |
+
</li>
|
397 |
+
<li>
|
398 |
+
<div data-icon="R" class="icon"></div>
|
399 |
+
<input type="text" readonly="readonly" value="R">
|
400 |
+
</li>
|
401 |
+
<li>
|
402 |
+
<div data-icon="S" class="icon"></div>
|
403 |
+
<input type="text" readonly="readonly" value="S">
|
404 |
+
</li>
|
405 |
+
<li>
|
406 |
+
<div data-icon="T" class="icon"></div>
|
407 |
+
<input type="text" readonly="readonly" value="T">
|
408 |
+
</li>
|
409 |
+
<li>
|
410 |
+
<div data-icon="U" class="icon"></div>
|
411 |
+
<input type="text" readonly="readonly" value="U">
|
412 |
+
</li>
|
413 |
+
<li>
|
414 |
+
<div data-icon="v" class="icon"></div>
|
415 |
+
<input type="text" readonly="readonly" value="v">
|
416 |
+
</li>
|
417 |
+
<li>
|
418 |
+
<div data-icon="V" class="icon"></div>
|
419 |
+
<input type="text" readonly="readonly" value="V">
|
420 |
+
</li>
|
421 |
+
<li>
|
422 |
+
<div data-icon="W" class="icon"></div>
|
423 |
+
<input type="text" readonly="readonly" value="W">
|
424 |
+
</li>
|
425 |
+
<li>
|
426 |
+
<div data-icon="X" class="icon"></div>
|
427 |
+
<input type="text" readonly="readonly" value="X">
|
428 |
+
</li>
|
429 |
+
<li>
|
430 |
+
<div data-icon="Y" class="icon"></div>
|
431 |
+
<input type="text" readonly="readonly" value="Y">
|
432 |
+
</li>
|
433 |
+
<li>
|
434 |
+
<div data-icon="Z" class="icon"></div>
|
435 |
+
<input type="text" readonly="readonly" value="Z">
|
436 |
+
</li>
|
437 |
+
</ul>
|
438 |
+
</div>
|
439 |
+
<script>(function() {
|
440 |
+
var glyphs, i, len, ref;
|
441 |
+
|
442 |
+
ref = document.getElementsByClassName('glyphs');
|
443 |
+
for (i = 0, len = ref.length; i < len; i++) {
|
444 |
+
glyphs = ref[i];
|
445 |
+
glyphs.addEventListener('click', function(event) {
|
446 |
+
if (event.target.tagName === 'INPUT') {
|
447 |
+
return event.target.select();
|
448 |
+
}
|
449 |
+
});
|
450 |
+
}
|
451 |
+
|
452 |
+
}).call(this);
|
453 |
+
|
454 |
+
</script>
|
455 |
+
</body>
|
456 |
+
</html>
|
vendor/otgs/icons/otgs-icons.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Include this file to use OTGS-Icons
|
4 |
+
*/
|
5 |
+
|
6 |
+
if( !defined( 'OTGS_ICONS_ROOT_URL' ) )
|
7 |
+
return;
|
8 |
+
|
9 |
+
if( !defined( 'OTGS_ICONS_VERSION' ) )
|
10 |
+
define( 'OTGS_ICONS_VERSION', '1.0' );
|
11 |
+
|
12 |
+
if( ! has_action( 'wp_enqueue_scripts', 'otgs_icons' ) )
|
13 |
+
add_action( 'wp_enqueue_scripts', 'otgs_icons' );
|
14 |
+
|
15 |
+
if( ! function_exists( 'otgs_icons' ) ) {
|
16 |
+
function otgs_icons() {
|
17 |
+
wp_register_style( 'otgs-icons', OTGS_ICONS_ROOT_URL . '/css/otgs-icons.css', array(), OTGS_ICONS_VERSION );
|
18 |
+
wp_enqueue_style( 'otgs-icons' );
|
19 |
+
}
|
20 |
+
}
|
vendor/otgs/icons/plugin-icons/toolset/access/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/access/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/access/icon.svg
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g fill="#FFD059">
|
22 |
+
<path d="M268.7 44.5c-2.9 0-5.3 2.4-5.3 5.3v3.5H274v-3.5c-.1-2.9-2.4-5.3-5.3-5.3z"/>
|
23 |
+
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zM282 77.7c0 1.5-1.2 2.7-2.7 2.7h-21.6c-1.5 0-2.7-1.2-2.7-2.7V56c0-1.5 1.2-2.7 2.7-2.7h1.5v-3.5c0-5.2 4.3-9.5 9.5-9.5s9.5 4.3 9.5 9.5v3.5h1.1c1.5 0 2.7 1.2 2.7 2.7v21.7z"/>
|
24 |
+
</g>
|
25 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon.svg
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g fill="#FFD059">
|
22 |
+
<path d="M278.1 57.9h-18.9v-2.5l-4.7 4.7 4.7 4.7v-2.5h18.9v2.5l4.7-4.7-4.7-4.7z"/>
|
23 |
+
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm2.7 42c0 1.8-1.4 3.2-3.2 3.2H271c.2 1.2 1.2 4.5 6.1 4.5v1.6h-17.5v-1.6c4.9 0 5.9-3.3 6.1-4.5h-15.2c-1.8 0-3.2-1.4-3.2-3.2V47.9c0-1.8 1.4-3.2 3.2-3.2h35.2c1.8 0 3.2 1.4 3.2 3.2v24.6h.1z"/>
|
24 |
+
</g>
|
25 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/cred/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/cred/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/cred/icon.svg
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g>
|
22 |
+
<path fill="#FFD059" d="M286.3 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-4.4 46.3c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1H265.8c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.2.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.4-.3l-.1-7.8v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1H270.2c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4v-.2l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.4-.3L255 57v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1H270.2c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4V57l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.6c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.4-.3l-.1-6.8v-.1-1 .5c.6-2.8 6.3-4.9 13.3-4.8 7 .1 12.8 2.4 13.4 5.2v-.5l.1 7.8-.2.5z"/>
|
23 |
+
</g>
|
24 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/layouts/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/layouts/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/layouts/icon.svg
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g>
|
22 |
+
<path fill="#FFD059" d="M286 30.2v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-29.3 52h-11V55h11v27.2zm33.3 0h-30.5V55H290v27.2zm0-30h-44.3V40.5H290v11.7z"/>
|
23 |
+
</g>
|
24 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/module-manager/icon.svg
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g>
|
22 |
+
<path fill="#FFD059" d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-19.9 53.5l-18.4-10.6V53.9l18.4 10.9v19zM288 73.2l-18.3 10.6V65.2l18.3-11v19zm0-23.2l-19.7 11.8-20.3-12 19.8-11.5L288 50z"/>
|
23 |
+
</g>
|
24 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/packager/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/packager/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/packager/icon.svg
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g fill="#FFD059">
|
22 |
+
<path d="M254.4 69.6h8.3v7.3h10.8v-7.3h8.3l-13.6-11z"/>
|
23 |
+
<path d="M286.7 30.5V18.2h-12.3v12.3H262V18.2h-12.3v12.3h-12.3v61.7H299V30.5h-12.3zm1.9 49.5c.1 1.2-.9 2.3-2.2 2.3h-36.7c-1.2 0-2.3-1-2.3-2.3V53.9l7.9-7.9h25.3l7.9 7.9c.1 0 .1 26.1.1 26.1z"/>
|
24 |
+
<path d="M256.8 49.9l-3.5 3.5h29.8l-3.4-3.5z"/>
|
25 |
+
</g>
|
26 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon.svg
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g fill="#FFD059">
|
22 |
+
<path d="M287.1 29.6V17.1h-12.5v12.5h-12.5V17.1h-12.5v12.5H237v62.7h62.7V29.6h-12.6zm-17.4 55.5l-10.9-14.3h5.4v-6.1h10.9v6.1h5.3l-10.7 14.3zm5.4-24.4v2.7h-10.9v-2.7h10.9zm-10.8-1.4v-2.7h10.9v2.7h-10.9zm28.4 17.4c0 1.4-1.2 2.6-2.6 2.6h-7.8v-3h7.5V46.6h-41.6v29.7h8.4v3h-8.8c-1.4 0-2.6-1.2-2.6-2.6V43.3c0-1.4 1.2-2.6 2.6-2.6h42.4c1.4 0 2.6 1.2 2.6 2.6v33.4z"/>
|
23 |
+
<path d="M277.8 42.5h11.9v2.2h-11.9zM248.1 42.5h2.4v2.2h-2.4z"/>
|
24 |
+
</g>
|
25 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/support/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/support/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/support/icon.svg
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g>
|
22 |
+
<path fill="#FFD059" d="M286.9 28.5V16h-12.5v12.5h-12.5V16h-12.5v12.5h-12.5v62.6h62.6V28.5h-12.6zm1.3 38.1c-.2.2-.5.6-.5.9-.6 4.4-2.5 8.2-5.8 11.2-1.6 1.5-3.5 2.3-5.7 2-.8-.1-1.3.1-1.7.9-1.9 3-7.2 3-9.2 0-1.4-2.1-.6-4.7 1.9-5.9 2.8-1.4 6-.5 7.7 2.2.1.2.4.3.6.3h2.4c.3 0 .6-.1.8-.2 3.6-2.3 5.5-5.7 6.4-9.9h-.7c-1.5 0-2.2-.6-2.2-2.2V54.7c0-1 .2-1.9 1.2-2.4-1.5-4.5-6.8-10.5-15-10.6-7.4-.1-13.3 4.8-15.5 10.6 1.2.5 1.3 1.5 1.3 2.6v10.9c0 1.7-.8 2.4-2.5 2.3-3.1-.3-5.5-2.5-6.1-5.9-.6-3.5 0-6.6 3.1-8.9.2-.2.4-.6.5-.9 2-5.6 5.5-9.8 10.9-12.4 8.6-4 18.8-1.2 24.3 6.5 1.3 1.9 2.4 3.9 3.1 6.1.1.3.3.6.6.8 3.8 3 4 10 .1 13.2z"/>
|
23 |
+
</g>
|
24 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon.svg
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#SVGID_3_)}.st2{opacity:.3}.st3{fill:#f5944c}.st4{fill:#ef6e44}.st5{opacity:.6;fill:#ffd059}.st6{fill-rule:evenodd;clip-rule:evenodd;fill:#fff;stroke:#fff;stroke-miterlimit:10}.st7{display:none}.st8{display:inline}.st10,.st9{fill:#ffd059}.st10{display:inline}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<linearGradient id="SVGID_3_" x1="160.009" x2="160.009" y1="332.14" y2="-6.196" gradientUnits="userSpaceOnUse">
|
13 |
+
<stop offset="0" stop-color="#d63900"/>
|
14 |
+
<stop offset="1" stop-color="#f05a29"/>
|
15 |
+
</linearGradient>
|
16 |
+
<path d="M-9.2-6.2h338.3v338.3H-9.2z" class="st1"/>
|
17 |
+
<g class="st2">
|
18 |
+
<path d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z" class="st3"/>
|
19 |
+
<path d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z" class="st4"/>
|
20 |
+
<path d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5" class="st5"/>
|
21 |
+
</g>
|
22 |
+
</g>
|
23 |
+
<path d="M286.3 185.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V139h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V144h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z" class="st6"/>
|
24 |
+
<g id="view" class="st7">
|
25 |
+
<g class="st8">
|
26 |
+
<path d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-39.3 30.2s19.4-26.3 43.2 0c-.1 0-19.4 27-43.2 0z" class="st9"/>
|
27 |
+
<path d="M268.2 52.5c-4.5 0-8.1 3.6-8.1 8.1s3.6 8.1 8.1 8.1 8.1-3.6 8.1-8.1c.1-4.5-3.6-8.1-8.1-8.1zm0 13.5c-3 0-5.4-2.4-5.4-5.4 0-3 2.4-5.4 5.4-5.4 3 0 5.4 2.4 5.4 5.4 0 3-2.4 5.4-5.4 5.4z" class="st9"/>
|
28 |
+
</g>
|
29 |
+
</g>
|
30 |
+
<g id="access" class="st7">
|
31 |
+
<path d="M268.7 44.5c-2.9 0-5.3 2.4-5.3 5.3v3.5H274v-3.5c-.1-2.9-2.4-5.3-5.3-5.3z" class="st10"/>
|
32 |
+
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zM282 77.7c0 1.5-1.2 2.7-2.7 2.7h-21.6c-1.5 0-2.7-1.2-2.7-2.7V56c0-1.5 1.2-2.7 2.7-2.7h1.5v-3.5c0-5.2 4.3-9.5 9.5-9.5s9.5 4.3 9.5 9.5v3.5h1.1c1.5 0 2.7 1.2 2.7 2.7v21.7z" class="st10"/>
|
33 |
+
</g>
|
34 |
+
<g id="btstrp" class="st7">
|
35 |
+
<path d="M278.1 57.9h-18.9v-2.5l-4.7 4.7 4.7 4.7v-2.5h18.9v2.5l4.7-4.7-4.7-4.7z" class="st10"/>
|
36 |
+
<path d="M286.3 30.5v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm2.7 42c0 1.8-1.4 3.2-3.2 3.2H271c.2 1.2 1.2 4.5 6.1 4.5v1.6h-17.5v-1.6c4.9 0 5.9-3.3 6.1-4.5h-15.2c-1.8 0-3.2-1.4-3.2-3.2V47.9c0-1.8 1.4-3.2 3.2-3.2h35.2c1.8 0 3.2 1.4 3.2 3.2v24.6h.1z" class="st10"/>
|
37 |
+
</g>
|
38 |
+
<g id="cred" class="st7">
|
39 |
+
<path d="M286.3 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-4.4 46.3c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1h-.3c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.2.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2V76l-.1-7.8v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1h3.5c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4v-.2l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.7c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.7L255 57v.8l.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1.2.1c.1 0 .2.1.3.1l.2.1c.1 0 .2.1.4.1l.2.1.9.3h.1c.3.1.5.1.8.2h.2c.3.1.5.1.8.2h.1c.3 0 .5.1.8.1h.2c.2 0 .4.1.7.1h.2c.3 0 .5.1.8.1h.2c.2 0 .4 0 .7.1h3.5c.4 0 .8 0 1.2-.1h.2c.3 0 .7-.1 1-.1h.2c.3 0 .7-.1 1-.1h.1c.4-.1.8-.1 1.2-.2h.1c.4-.1.7-.2 1.1-.3h.1l.9-.3h.1c.3-.1.5-.2.8-.3l.1-.1c.1 0 .2-.1.3-.1l.2-.1c.1-.1.3-.1.4-.2.2-.1.5-.3.7-.4.2-.1.3-.2.5-.3l.1-.1c.1-.1.3-.2.4-.3l.3-.3.1-.1c.1-.1.2-.2.2-.3.1-.1.1-.2.2-.3v-.1c0-.1.1-.2.1-.3 0-.1 0-.2.1-.4V57l.1 7.8-.1.6zm0-11.2c0 .2 0 .3-.1.4 0 .1-.1.2-.1.3-.1.1-.1.2-.2.3-.1.1-.1.2-.2.3l-.3.3c-.1.1-.2.2-.4.3h-.1c-.1.1-.3.2-.5.3-.2.1-.4.3-.6.4-.1.1-.3.1-.4.2l-.1.1c-.1.1-.2.1-.3.1h-.2c-.3.1-.5.2-.8.3h-.1l-.9.3h-.1c-.3.1-.7.2-1.1.3h-.1c-.4.1-.7.2-1.1.2h-.2c-.3.1-.6.1-1 .1h-.2c-.3 0-.7.1-1 .1h-.2c-.4 0-.8.1-1.2.1h-3.6c-.2 0-.4 0-.6-.1h-.2c-.3 0-.5-.1-.8-.1h-.1c-.2 0-.4-.1-.7-.1h-.2c-.3 0-.5-.1-.8-.1-.3 0-.5-.1-.8-.2h-.2c-.3-.1-.6-.1-.8-.2h-.2l-.9-.3h-.1c-.1 0-.2-.1-.4-.1l-.2-.1c-.1 0-.2-.1-.3-.1l-.1-.1h-.1l-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.2-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.2-.1-.1-.1-.2v-.1l-.1-.2v-.7l-.1-6.8v-1.1.5c.6-2.8 6.3-4.9 13.3-4.8 7 .1 12.8 2.4 13.4 5.2v-.5l.1 7.8-.2.5z" class="st10"/>
|
40 |
+
</g>
|
41 |
+
<g id="layout" class="st7">
|
42 |
+
<path d="M286 30.2v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-29.3 52h-11V55h11v27.2zm33.3 0h-30.5V55H290v27.2zm0-30h-44.3V40.5H290v11.7z" class="st10"/>
|
43 |
+
</g>
|
44 |
+
<g id="module" class="st7">
|
45 |
+
<path d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-19.9 53.5l-18.4-10.6V53.9l18.4 10.9v19zM288 73.2l-18.3 10.6V65.2l18.3-11v19zm0-23.2l-19.7 11.8-20.3-12 19.8-11.5L288 50z" class="st10"/>
|
46 |
+
</g>
|
47 |
+
<g id="Packager" class="st7">
|
48 |
+
<path d="M254.4 69.6h8.3v7.3h10.8v-7.3h8.3l-13.6-11z" class="st10"/>
|
49 |
+
<path d="M286.7 30.5V18.2h-12.3v12.3H262V18.2h-12.3v12.3h-12.3v61.7H299V30.5h-12.3zm1.9 49.5c.1 1.2-.9 2.3-2.2 2.3h-36.7c-1.2 0-2.3-1-2.3-2.3V53.9l7.9-7.9h25.3l7.9 7.9.1 26.1z" class="st10"/>
|
50 |
+
<path d="M256.8 49.9l-3.5 3.5h29.8l-3.4-3.5z" class="st10"/>
|
51 |
+
</g>
|
52 |
+
<g id="Toolset_refsite" class="st7">
|
53 |
+
<path d="M287.1 29.6V17.1h-12.5v12.5h-12.5V17.1h-12.5v12.5H237v62.7h62.7V29.6h-12.6zm-17.4 55.5l-10.9-14.3h5.4v-6.1h10.9v6.1h5.3l-10.7 14.3zm5.4-24.4v2.7h-10.9v-2.7h10.9zm-10.8-1.4v-2.7h10.9v2.7h-10.9zm28.4 17.4c0 1.4-1.2 2.6-2.6 2.6h-7.8v-3h7.5V46.6h-41.6v29.7h8.4v3h-8.8c-1.4 0-2.6-1.2-2.6-2.6V43.3c0-1.4 1.2-2.6 2.6-2.6h42.4c1.4 0 2.6 1.2 2.6 2.6v33.4z" class="st10"/>
|
54 |
+
<path d="M277.8 42.5h11.9v2.2h-11.9zm-29.7 0h2.4v2.2h-2.4z" class="st10"/>
|
55 |
+
</g>
|
56 |
+
<g id="Toolset_support" class="st7">
|
57 |
+
<path d="M286.9 28.5V16h-12.5v12.5h-12.5V16h-12.5v12.5h-12.5v62.6h62.6V28.5h-12.6zm1.3 38.1c-.2.2-.5.6-.5.9-.6 4.4-2.5 8.2-5.8 11.2-1.6 1.5-3.5 2.3-5.7 2-.8-.1-1.3.1-1.7.9-1.9 3-7.2 3-9.2 0-1.4-2.1-.6-4.7 1.9-5.9 2.8-1.4 6-.5 7.7 2.2.1.2.4.3.6.3h2.4c.3 0 .6-.1.8-.2 3.6-2.3 5.5-5.7 6.4-9.9h-.7c-1.5 0-2.2-.6-2.2-2.2V54.7c0-1 .2-1.9 1.2-2.4-1.5-4.5-6.8-10.5-15-10.6-7.4-.1-13.3 4.8-15.5 10.6 1.2.5 1.3 1.5 1.3 2.6v10.9c0 1.7-.8 2.4-2.5 2.3-3.1-.3-5.5-2.5-6.1-5.9-.6-3.5 0-6.6 3.1-8.9.2-.2.4-.6.5-.9 2-5.6 5.5-9.8 10.9-12.4 8.6-4 18.8-1.2 24.3 6.5 1.3 1.9 2.4 3.9 3.1 6.1.1.3.3.6.6.8 3.8 3 4 10 .1 13.2z" class="st10"/>
|
58 |
+
</g>
|
59 |
+
<g id="Types_logo" class="st7">
|
60 |
+
<path d="M286.9 28.9V16.3h-12.5v12.5h-12.5V16.3h-12.5v12.5h-12.5v62.6h62.6V28.9h-12.6zm-42.8 20.6c0-.6.4-1.2.6-1.4.2-.2.9-.4 1.6-.4h1.3c.9 0 1.5.1 1.8-.1.3-.2.5-.6.7-1.4l.2-.9c.2-.6.4-1.2.7-1.3.3-.2.9-.4 1.8-.4h7.6c.8 0 1.3.3 1.5.4.2.2.4.7.6 1.3l.2 1c.2.8.4 1.1.7 1.3.3.2 1.1.1 2.4.1h14.3c1 0 1.4.8 1.4 1.9v2.3h-23.9c-1.5 0-2.4-.1-2.8.2-.4.2-1.1.9-1.8 2.1l-9.1 17.2V49.5zm49.1 7.1l-9.1 18.2h-36.9l9.4-18.3c.3-.6.6-1.1.9-1.2.3-.2.9-.3 1.7-.3h33.3c.8 0 1.2.2 1.3.5-.1 0-.3.4-.6 1.1z" class="st10"/>
|
61 |
+
</g>
|
62 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/types/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/types/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/types/icon.svg
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g>
|
22 |
+
<path fill="#FFD059" d="M286.9 28.9V16.3h-12.5v12.5h-12.5V16.3h-12.5v12.5h-12.5v62.6h62.6V28.9h-12.6zm-42.8 20.6c0-.6.4-1.2.6-1.4.2-.2.9-.4 1.6-.4h1.3c.9 0 1.5.1 1.8-.1.3-.2.5-.6.7-1.4l.2-.9c.2-.6.4-1.2.7-1.3.3-.2.9-.4 1.8-.4h7.6c.8 0 1.3.3 1.5.4.2.2.4.7.6 1.3l.2 1c.2.8.4 1.1.7 1.3.3.2 1.1.1 2.4.1h14.3c1 0 1.4.8 1.4 1.9v2.3h-23.9c-1.5 0-2.4-.1-2.8.2-.4.2-1.1.9-1.8 2.1l-9.1 17.2V49.5zm49.1 7.1l-9.1 18.2h-36.9l9.4-18.3c.3-.6.6-1.1.9-1.2.3-.2.9-.3 1.7-.3h33.3c.8 0 1.2.2 1.3.5-.1 0-.3.4-.6 1.1z"/>
|
23 |
+
</g>
|
24 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/toolset/views/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/views/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/toolset/views/icon.svg
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 320 320">
|
2 |
+
<defs>
|
3 |
+
<path id="a" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
4 |
+
</defs>
|
5 |
+
<clipPath id="b">
|
6 |
+
<use xlink:href="#a" overflow="visible"/>
|
7 |
+
</clipPath>
|
8 |
+
<g clip-path="url(#b)">
|
9 |
+
<linearGradient id="c" gradientUnits="userSpaceOnUse" x1="160.009" y1="332.14" x2="160.009" y2="-6.196">
|
10 |
+
<stop offset="0" stop-color="#d63900"/>
|
11 |
+
<stop offset="1" stop-color="#f05a29"/>
|
12 |
+
</linearGradient>
|
13 |
+
<path fill="url(#c)" d="M-9.2-6.2h338.3v338.3H-9.2z"/>
|
14 |
+
<g opacity=".3">
|
15 |
+
<path fill="#F5944C" d="M-9.2 262.6c0-88.2 0-176.5-.1-264.7 0-3.5.7-4.2 4.2-4.2 91.8.1 183.5.1 275.3.1 1.1 2.1 2.1 4.3 3.2 6.4 8.2 15.5 14.6 31.6 20.2 48.2-1.4 1.5-3.8 3.1-5 4.7-8.3 10.8-18.2 20-27.5 29.9-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.6 2.9-13.1 6.2-20.2 7.7z"/>
|
16 |
+
<path fill="#EF6E44" d="M293.8 51c-.1-.3-.1-2.5-.3-2.7-1.3 1.2-4 3.4-5.1 4.8-6.6 8.5-18.2 20-27.4 29.8-15.4 16.4-32.2 31.3-49.8 45.4-32.4 26-67.5 48-102.4 70.4-14.6 9.4-29.6 18.2-44.4 27.3-17.3 10.6-35.2 20.2-53.5 28.8-6.4 3-12.9 6.3-20 7.8 0 22.7.1 45.3-.1 68 0 .9.1 1.5.3 2h96.3c5.1-4 10.9-6.7 16.4-10 34.9-20.8 65.9-46.9 97.9-71.8 33.7-32.4 68.1-65 85.7-108.8 5.6-13.9 8.8-28.4 10.1-43.5 1.3-16.6-.5-31.5-3.7-47.5z"/>
|
17 |
+
<path opacity=".6" fill="#FFD059" d="M329.2-6.2h-59c1.1 2.1 2.1 4.3 3.2 6.4 7.8 14.9 14.8 32.3 20.2 48.2 1.3-2 2.1-3.5 3.3-5 4-4.9 7.8-10 11.7-15 7.6-9.7 13.9-20.3 20.7-30.5"/>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFF" stroke="#FFF" stroke-miterlimit="10" d="M286.3 191.7c1 0 2-.1 3-.2.9-.1 1.7-.3 2.3-.5v4.4c-.6.3-1.5.6-2.8.7-1.2.2-2.3.3-3.3.3-7.4 0-11-3.9-11-11.6v-22.6H269v-2.8l5.5-2.4 2.4-8.1h3.3v8.8h11v4.5h-11v22.4c0 2.3.5 4.1 1.6 5.3 1.1 1.2 2.6 1.8 4.5 1.8m-35.6-29.9c-3.1 0-5.5 1-7.3 3-1.8 2-2.9 4.7-3.2 8.3h19.9c0-3.6-.8-6.4-2.4-8.4-1.6-1.9-3.9-2.9-7-2.9zm1.6 34.7c-5.6 0-10.1-1.7-13.3-5.1-3.3-3.4-4.9-8.2-4.9-14.3 0-6.1 1.5-11 4.5-14.6 3-3.6 7.1-5.4 12.2-5.4 4.8 0 8.5 1.6 11.3 4.7 2.8 3.1 4.2 7.3 4.2 12.4v3.6h-26.2c.1 4.5 1.2 7.9 3.4 10.2 2.1 2.3 5.2 3.5 9 3.5 4.1 0 8.1-.9 12.2-2.6v5.1c-2 .9-4 1.5-5.8 1.9-1.8.4-4 .6-6.6.6zm-21.6-11.1c0 3.5-1.3 6.3-4 8.2-2.6 1.9-6.3 2.9-11.1 2.9-5 0-9-.8-11.8-2.4v-5.3c1.8.9 3.8 1.7 5.9 2.2 2.1.5 4.1.8 6.1.8 3 0 5.3-.5 6.9-1.4 1.6-1 2.4-2.4 2.4-4.4 0-1.5-.6-2.8-1.9-3.8-1.3-1.1-3.8-2.3-7.5-3.7-3.5-1.3-6.1-2.5-7.6-3.5s-2.6-2.1-3.3-3.4c-.7-1.3-1.1-2.7-1.1-4.5 0-3.1 1.3-5.5 3.8-7.3 2.5-1.8 6-2.7 10.4-2.7 4.1 0 8.1.8 12 2.5l-2 4.7c-3.8-1.6-7.3-2.4-10.4-2.4-2.7 0-4.8.4-6.2 1.3-1.4.9-2.1 2-2.1 3.5 0 1 .3 1.9.8 2.6.5.7 1.4 1.4 2.5 2 1.2.6 3.4 1.6 6.7 2.8 4.5 1.6 7.6 3.3 9.2 5 1.5 1.7 2.3 3.8 2.3 6.3zm-33 10.4H192v-54h5.8v54zm-39.3-19.1c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-1.9 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-68.1 0c0 4.9 1 8.6 2.9 11.1s4.8 3.8 8.6 3.8 6.6-1.3 8.6-3.8 2.9-6.2 2.9-11.1c0-4.8-1-8.5-2.9-11-2-2.5-4.8-3.8-8.7-3.8-3.8 0-6.6 1.2-8.5 3.7-2 2.5-2.9 6.2-2.9 11.1zm29 0c0 6.2-1.6 11.1-4.7 14.5-3.1 3.5-7.4 5.2-13 5.2-3.4 0-6.4-.8-9.1-2.4-2.6-1.6-4.7-3.9-6.1-6.9-1.4-3-2.2-6.5-2.2-10.5 0-6.2 1.6-11 4.7-14.5s7.4-5.2 12.9-5.2c5.3 0 9.6 1.8 12.7 5.3 3.2 3.7 4.8 8.5 4.8 14.5zm-50.2 19.1h-5.9v-45.5H84V145h30.2v5.2H98.1v45.6zm-14.7-.5H28.5v-50.6h9.1v-9.1h15.9v9.1h7.4v-9.1h15.9V150h-5.1v-9.3H66v9.1H48.4v-9.1h-5.7v9.1h-9.1v40.4h49.8v5.1z"/>
|
21 |
+
<g>
|
22 |
+
<g fill="#FFD059">
|
23 |
+
<path d="M286 30.3v-12h-12v12h-12v-12h-12v12h-12v60h60v-60h-12zm-39.3 30.2s19.4-26.3 43.2 0c-.1 0-19.4 27-43.2 0z"/>
|
24 |
+
<path d="M268.2 52.5c-4.5 0-8.1 3.6-8.1 8.1s3.6 8.1 8.1 8.1 8.1-3.6 8.1-8.1c.1-4.5-3.6-8.1-8.1-8.1zm0 13.5c-3 0-5.4-2.4-5.4-5.4 0-3 2.4-5.4 5.4-5.4 3 0 5.4 2.4 5.4 5.4 0 3-2.4 5.4-5.4 5.4z"/>
|
25 |
+
</g>
|
26 |
+
</g>
|
27 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/acfml/icon-128.x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/acfml/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/acfml/icon.svg
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.1" y2="161.1" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".29" stop-color="#3389a1" stop-opacity=".82"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".69"/>
|
18 |
+
<stop offset=".72" stop-color="#2f96bb" stop-opacity=".57"/>
|
19 |
+
<stop offset=".91" stop-color="#2ba1d2" stop-opacity=".45"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g>
|
24 |
+
<g id="earth" class="st2">
|
25 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
26 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zM163.8 318.1l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zM91.3 78.1L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zM125.7 172.4c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zM66.3 181.3l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zM113.7 176.2l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zM51.5 227.9c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8a56.8 56.8 0 0 1-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zM142 300.2l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zM135.7 320.1l9.9-15.2-37.4 15.2zM212.4 250.1l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zM18.9 100.2c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zM163.5 320.1l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1M124.8 179.1c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zM191.6 185.3l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zM140.3 121.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4a6.69 6.69 0 0 1-3.2-5.1zM84.7 120.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zM225.2 320.1l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
27 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5a6.33 6.33 0 0 0 4.6-8.9c-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9a6.2 6.2 0 0 0-7.6-1.8c-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47a6.5 6.5 0 0 0 4.6 7.8c.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7a6.55 6.55 0 0 0-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1a7.3 7.3 0 0 0-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
28 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zM53.8 167.6c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zM59 252.5c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
29 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
</g>
|
33 |
+
</g>
|
34 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1a1 1 0 0 0-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7a1 1 0 0 0-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3a1 1 0 0 1-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5a3 3 0 0 0 1.4-1.1c.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8l4.2 15c.3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4a1 1 0 0 1-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5a3 3 0 0 0 1.4-1.1c.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236a1 1 0 0 1 0-2c.5 0 1-.1 1.7-.2 1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
35 |
+
</g>
|
36 |
+
<g class="st0">
|
37 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
38 |
+
</g>
|
39 |
+
<g id="ACF">
|
40 |
+
<path d="M227.9 65.5c.7-1.9 1.3-3.7 1.9-5.5 3.1-8.8 6.3-17.6 9.4-26.4.1-.6.6-1 1.2-.9h6.4c.4-.1.9.2 1 .7 3.5 9.7 6.9 19.4 10.4 29.1.3.9.6 1.9.9 2.9h-6.8c-.3 0-.7-.4-.8-.7l-1.2-3.3c-.1-.4-.5-.8-.9-.7h-11.7c-.5-.1-1 .3-1.1.8-.4 1.2-.8 2.4-1.2 3.5-.1.2-.3.4-.6.5h-6.9zm19.8-11.6l-4.1-11.3h-.2l-4 11.3h8.3zM279.1 36.2c-3.3-2.7-7.6-3.9-11.9-3.4-5.3.6-9.3 3.3-12.2 7.8a3.9 3.9 0 0 0-.3 3.9c2.2 6 4.4 12 6.5 18.1.2.6.6 1.1 1.2 1.4 2.8 1.3 6 1.7 9.1 1.2 4.8-.7 9-3.5 11.4-7.6-1.4-1.4-2.8-2.7-4.2-4.1-.3-.3-.5-.7-.7-1.1-2.8 5.9-8.2 6.9-11.6 5.9a9.6 9.6 0 0 1-6.7-11.8 9.6 9.6 0 0 1 18.2-1l4.9-5.1c.1 0-2.5-3.4-3.7-4.2z" class="st4"/>
|
41 |
+
<path d="M283 54.1c-.3-.3-.5-.8-.5-1.2 0-2.2-.1-4.4 0-6.6 0-.5.3-1 .6-1.4l3-3c.5-.4.7-1.1.3-1.6 0 0 0-.1-.1-.1l-3.8-5c-.1-.8-.1-1.7 0-2.5h21.8v6.6h-15.1v7.4h14.5v6.7h-14.6v11.8h-6.7c-.2 0 0-1.6 0-1.7.2-.7 4.3-5.6 4.2-5.7l-3.6-3.7z" class="st4"/>
|
42 |
+
</g>
|
43 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/bpml/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/bpml/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/bpml/icon.svg
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M280.7 21.3c4.6.8 8.7 4.4 10.3 9.1.4 1.3.5 1.8.6 3.8.1 1.9 0 2.5-.3 3.7-1 4.2-3.9 7.7-7.9 9.4-1.1.5-2.3.8-2.3.7l.6-1.2c4.1-8.1.9-18-7.2-22.1-.8-.4-1.5-.7-2.4-1-.5-.2-1.1-.3-1.2-.4-.4-.1 1.3-.9 3-1.5 2.2-.8 4.5-.9 6.8-.5z" class="st4"/>
|
38 |
+
<path d="M270.3 26.1c5.2 1.3 9.1 5.6 10.1 10.8.3 2.1.2 4.2-.3 6.2-1.1 3.8-3.9 6.9-7.5 8.5-1.8.8-3.7 1.3-5.7 1.2-6 0-11-3.7-13-9.5-.5-1.4-.5-1.8-.5-3.9 0-2 .1-2.6.4-3.7 1.5-5.1 5.7-9 11-9.9 1.8-.1 3.7 0 5.5.3zm21.2 23.3c5.1 1.6 8.2 5.5 9.6 12 .4 1.7.8 6.6.6 7-.1.2-.5.3-3.1.3-1 0-2 0-3-.1-.2-1.8-.5-3.6-1-5.3-1.7-5.7-5.3-9.9-9.6-11.2-.4-.1-.7-.3-.7-.4.4-.5.8-1.1 1.2-1.5l1.2-1.4 1.8.1c1 .1 2 .2 3 .5z" class="st4"/>
|
39 |
+
<path d="M262.7 58l4.4 4.3 1.6-1.5c.9-.8 3.1-3 5-4.8l3.4-3.3 1.3.2c3.5.4 6.7 1.9 9.3 4.3 2.9 2.7 4.5 6.1 5.2 10.7.3 1.7.4 6.7.2 7.7l-.1.5h-26c-18.2 0-25.7-.1-25.8-.2-.2-.4-.3-5-.1-6.9 1-9.5 6.2-15.2 14.7-16.1 1.6-.3.9-.8 6.9 5.1z" class="st4"/>
|
40 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/gfml/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/gfml/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/gfml/icon.svg
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M300.1 51.6v10.5c0 4-1.7 7.3-5.1 9.3-6.3 3.8-12.8 7.5-19.3 11.1-3.5 1.9-7.2 1.9-10.6-.1-6.4-3.6-12.7-7.2-18.9-10.9-3.4-2-5.2-5.2-5.2-9.3-.1-7.2 0-14.3 0-21.5 0-4.1 1.8-7.3 5.3-9.4 6.3-3.7 12.6-7.4 18.9-10.9 3.5-2 7.2-2 10.6-.1 6.5 3.6 12.9 7.3 19.3 11.1 3.3 2 5 5.2 5.1 9.1 0 3.8-.1 7.5-.1 11.1zm-56.1-.2v10.7c-.1 2.9 1.5 5.6 4.1 7 6.1 3.5 12.1 7.1 18.2 10.5 2.5 1.5 5.6 1.5 8.1 0 6.2-3.5 12.3-7 18.4-10.6 2.5-1.4 4.1-4 4-6.9.1-7.1.1-14.2 0-21.3.1-2.9-1.5-5.6-4.1-7-6-3.5-12-6.9-18.1-10.4-2.8-1.6-5.7-1.7-8.5-.1-6 3.4-12.1 6.9-18.1 10.4-2.8 1.6-4.2 4-4.2 7.2.2 3.6.2 7 .2 10.5z" class="st4"/>
|
38 |
+
<path d="M289.8 39.1V46h-26.7c-4.3 0-4.9 1.2-6.2 3.8-.9 1.9-.7 3.8-.8 6h26.7v-3.4h6.9v10.2h-40c-.5-7.1-.6-14 4.4-19.9 2.3-2.7 5.4-3.7 8.7-3.7 8.8-.1 17.6 0 26.4 0 .1-.1.4 0 .6.1z" class="st4"/>
|
39 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wcml/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wcml/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wcml/icon.svg
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M257.3 61.2H291c3.8 0 6.9-3.1 7-7V38.9s0-.1-.1-.1l-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1c-.1-.1-.1 0-.1-.1h-.1s-.1 0-.1-.1l-.2-.1h-.6L253.4 32v-6.7s0-.1-.1-.1v-.1s0-.1-.1-.1v-.2s0-.1-.1-.1l-.1-.1-.1-.1h-.1s-.1 0-.1-.1c0 0-.1 0-.1-.1-.1 0-.1-.1-.2-.1l-9.3-3.9c-.9-.4-1.9 0-2.2.9-.4.9 0 1.9.9 2.2l8.2 3.5v37.3c0 3.5 2.6 6.4 6.1 6.9-2 3.3-.9 7.5 2.4 9.4 3.3 2 7.5.9 9.4-2.4.6-1.1 1-2.3 1-3.5 0-1.2-.3-2.4-.9-3.5h15.3c-.6 1-.9 2.2-.9 3.5 0 3.8 3.1 6.9 6.9 6.9 3.8 0 6.9-3.1 6.9-6.9s-3.1-6.9-6.9-6.9h-32.1c-2 0-3.6-1.6-3.6-3.6v-4.6c1.2 1.4 2.4 1.7 3.7 1.7zm8.4 14.1c0 1.9-1.6 3.5-3.5 3.5s-3.5-1.6-3.5-3.5 1.6-3.5 3.5-3.5c2 0 3.5 1.6 3.5 3.5zm27.2 0c0 1.9-1.6 3.5-3.5 3.5s-3.5-1.6-3.5-3.5 1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5zM291 57.8h-33.8c-2 0-3.6-1.6-3.6-3.6V35.9l40.9 5.6v12.7c.1 2-1.5 3.6-3.5 3.6z" class="st5"/>
|
38 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-128.x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon.svg
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}.st7{fill:#fff;stroke:#fff;stroke-miterlimit:10}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M296.4 46.8c-.9 0-1.6.7-1.6 1.6v14.9c0 4-3.3 7.3-7.3 7.3h-35.8c-4 0-7.3-3.3-7.3-7.3V48.2c0-.9-.7-1.6-1.6-1.6-.9 0-1.6.7-1.6 1.6v15.1c0 5.8 4.7 10.6 10.6 10.6h35.8c5.8 0 10.6-4.7 10.6-10.6V48.5c-.2-.9-.9-1.7-1.8-1.7z" class="st7"/>
|
38 |
+
<path d="M268.3 60.9c.3.3.7.5 1.1.5.4 0 .8-.2 1.1-.5L281 50.6c.6-.6.6-1.7 0-2.3-.6-.6-1.7-.6-2.3 0l-7.6 7.6V22.7c0-.9-.7-1.6-1.6-1.6-.9 0-1.6.7-1.6 1.6v33.1l-7.6-7.6c-.6-.6-1.7-.7-2.3 0-.6.6-.7 1.7 0 2.3l10.3 10.4z" class="st7"/>
|
39 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon.svg
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}.st7{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-miterlimit:10}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M275.4 27.4L299 51l-23.6 23.6m-16.8-47.2L235 51l23.6 23.6" class="st7"/>
|
38 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon.svg
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M78.9 202.2c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1V169c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.2-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H188c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.3c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H163c.6 0 1 .5 1 1l.2.9zM294 179.1l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zM255.8 192H238c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L213 153.7h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon.svg
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#29a8e0}.st7{fill:#fff;stroke:#fff;stroke-miterlimit:10}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M246.1 70.2c0 3 2.4 5.4 5.4 5.4h40.2c3 0 5.4-2.4 5.4-5.4V29.9c0-3-2.4-5.4-5.4-5.4h-40.2c-3 0-5.4 2.4-5.4 5.4v40.3zm45.6 2.8h-40.2c-1.6 0-2.8-1.3-2.8-2.8v-6.7l9.7-9.7 8.3 8.3c.5.5 1.3.5 1.8 0l14.9-14.9 11.2 11.2v11.8c0 1.5-1.3 2.8-2.9 2.8zm-40.2-45.9h40.2c1.6 0 2.8 1.3 2.8 2.8v24.8l-10.3-10.3c-.5-.5-1.3-.5-1.8 0l-14.9 14.9-8.3-8.3c-.5-.5-1.3-.5-1.8 0l-8.8 8.8V29.9c.1-1.5 1.4-2.8 2.9-2.8z" class="st7"/>
|
38 |
+
<path d="M261.9 45c3.6 0 6.5-2.9 6.5-6.5s-2.9-6.5-6.5-6.5-6.5 2.9-6.5 6.5c.1 3.6 3 6.5 6.5 6.5zm0-10.4c2.2 0 3.9 1.8 3.9 3.9 0 2.2-1.8 3.9-3.9 3.9-2.2 0-3.9-1.8-3.9-3.9 0-2.2 1.8-3.9 3.9-3.9z" class="st7"/>
|
39 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon.svg
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}.st7{fill:#fff;stroke:#fff;stroke-width:.5;stroke-miterlimit:10}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M298.3 22c-5.8-5.8-15.2-5.8-21.1 0l-10.5 10.5c-.9.9-.9 2.3 0 3.2.9.9 2.3.9 3.2 0l10.5-10.5c4-4 10.6-4 14.6 0s4 10.6 0 14.6l-13.8 13.8c-4 4-10.6 4-14.6 0-.9-.9-2.3-.9-3.2 0-.9.9-.9 2.3 0 3.2 5.8 5.8 15.2 5.8 21.1 0L298.3 43c5.8-5.8 5.8-15.2 0-21z" class="st7"/>
|
38 |
+
<path d="M270.8 64.1l-8.9 8.9c-4 4-10.6 4-14.6 0s-4-10.6 0-14.6l13-13c4-4 10.5-4 14.6 0 .9.9 2.3.9 3.2 0 .9-.9.9-2.3 0-3.2-5.8-5.8-15.2-5.8-21.1 0l-13 13c-5.8 5.8-5.8 15.2 0 21.1s15.2 5.8 21.1 0l8.9-8.9c.9-.9.9-2.3 0-3.2-.9-1-2.3-1-3.2-.1z" class="st7"/>
|
39 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon.svg
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M259.5 63.9c1.1.5 2.4-.1 2.8-1.2l2.9-6.9H276l2.9 6.9c.4 1.1 1.7 1.7 2.8 1.2 1.1-.4 1.7-1.7 1.2-2.8 0 0 0-.1-.1-.1l-3.5-8.2-6.9-16.2c-.3-.8-1.1-1.3-2-1.3-.9 0-1.6.5-2 1.3l-6.7 16.2-3.4 8.2c-.4 1.1.1 2.4 1.2 2.9zm11-20.9l3.6 8.5H267l3.5-8.5z" class="st5"/>
|
38 |
+
<path d="M270.6 17.9c-1.2 0-2.2 1-2.1 2.2s1 2.2 2.2 2.1c7.3-.1 14.3 2.8 19.4 8 5 5 7.7 11.9 7.5 18.9-.2 8.9-4.3 16.9-11.3 21.9l-.2.2-.3.2c-.1.1-.2.1-.3.2l-20.3 13.9v-8.2c0-1-.7-1.8-1.6-2.1-14.4-3.8-22.9-18.6-19.1-32.9 1.8-6.7 6.1-12.5 12.1-16.1 1-.6 1.3-1.9.7-3s-1.9-1.3-3-.7c-14.7 8.9-19.4 28.1-10.5 42.9 3.9 6.4 9.9 11.2 17 13.5v10.7c0 1.2 1 2.2 2.2 2.2.4 0 .9-.1 1.2-.4l23.6-16.2c.1-.1.2-.1.3-.2l.6-.4.3-.3c7.9-5.8 12.6-15 12.8-25.1.2-8.2-3-16.2-8.7-22-5.9-6.1-14-9.4-22.5-9.3z" class="st5"/>
|
39 |
+
</svg>
|
vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-128x128.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-256x256.png
ADDED
Binary file
|
vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon.svg
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="icon" viewBox="0 0 320 320">
|
2 |
+
<style>
|
3 |
+
.st0{clip-path:url(#SVGID_2_)}.st1{fill:url(#bg_2_)}.st2{opacity:.15}.st3{fill:none}.st4,.st5{fill:#fff}.st5{stroke:#fff;stroke-width:.75;stroke-miterlimit:10}.st6{fill:#f2bd2e}.st7{fill:#fff;stroke:#fff;stroke-miterlimit:10}
|
4 |
+
</style>
|
5 |
+
<defs>
|
6 |
+
<path id="SVGID_1_" d="M312.5 317.5H7.5c-2.8 0-5-2.2-5-5V7.5c0-2.8 2.2-5 5-5h305c2.8 0 5 2.2 5 5v305c0 2.8-2.2 5-5 5z"/>
|
7 |
+
</defs>
|
8 |
+
<clipPath id="SVGID_2_">
|
9 |
+
<use overflow="visible" xlink:href="#SVGID_1_"/>
|
10 |
+
</clipPath>
|
11 |
+
<g class="st0">
|
12 |
+
<g id="bg_1_">
|
13 |
+
<g id="mask">
|
14 |
+
<linearGradient id="bg_2_" x1="321" x2="-1" y1="161.097" y2="161.097" gradientTransform="matrix(1 0 0 -1 0 321)" gradientUnits="userSpaceOnUse">
|
15 |
+
<stop offset="0" stop-color="#33879e"/>
|
16 |
+
<stop offset=".295" stop-color="#3389a1" stop-opacity=".823"/>
|
17 |
+
<stop offset=".52" stop-color="#318dab" stop-opacity=".688"/>
|
18 |
+
<stop offset=".722" stop-color="#2f96bb" stop-opacity=".567"/>
|
19 |
+
<stop offset=".909" stop-color="#2ba1d2" stop-opacity=".455"/>
|
20 |
+
<stop offset="1" stop-color="#29a8e0" stop-opacity=".4"/>
|
21 |
+
</linearGradient>
|
22 |
+
<path id="bg" d="M-1-.3h322v320.5H-1V-.3z" class="st1"/>
|
23 |
+
<g id="earth" class="st2">
|
24 |
+
<path d="M18 299.1c-9.1 10.7-9.1 10.7 3.7 20.9v.1h84.5l39.6-16.1-73.4-52.6c0 .6-.3 1.5-1 2.7.3.9 1 1.7 1.1 2.7 0 .2-.1.5-.2.6-.7 1.2-1.7 2.2-2.4 3.4-.3.5-.2 1.1-.5 1.7-.1.1-.1.2-.2.2-1.1 1.1-2.2 1-3.7.8-.7-.1-1.9-.2-2.8.1.3 0 .7 0 1.1.3.4.3.6.8.9 1.5.5 1.4.4 3.1-.8 3.3-1.3.2-4.3-3.5-4.6-4.6v-.1c-.5-1.6.3-2.9 1-4.1.6-1.1.8-1.8.3-3.6-.4-1.5-1.2-3.1-1.6-3.9-.5-1-.9-1.6-.9-2 0-.1.1-.2.1-.4.4-.2.9-.2 3.7 1.1 2.7 1.1 9 3.8 9.6 2.9-.2-.7-.7-2.8.2-3.3L57 240.4c.7.7 1.4 1.3 2 2 1.1 1.2.9 1.8.9 2-.2.8-.8.4-1.9-.2-.7-.4-.9-.3-1.1 0-.3.7.3 1.4 0 2-1.6-1.2-5.4-7.3-8.2-11.9l-3.3-2.4-.2-.1-2.4 1.7c.7 1.6 1.4 3.2 1.6 4.7.4 1.9 1.9 10.9-.8 21.9-.2 1.1-.6 2.3-1 3.4-1.5 4.7-7.8 2.2-9.6 6.4-.7 1.6-1 3.3-1.1 5.1-.2 2-.3 4.2-.9 6.1l5.5 10.7c2.5 2 4.9 4.2 5.5 7.8.2 1.3.3 2.3.1 3-.6 1.9-2.8 2.8-8 5-2.8-4.2-1.6-10.2-5.9-13.7-.7.1-1.5.2-2.2.4-.1 0-.2 0-.2.1-3-2-1.5-7.3-5.9-8.3-1.5-.3-1.5-.3-8.5 5.1l-1.1-.6c-.5-2.4-.3-4.9-.6-7.3l-.3 13.1c2.9-.4 7.1-.7 8.6 2.7zm31.1 7.8c1.4-2.4 1.9-3.3 3.8-5.9 2-2.7 5.6-1.6 8-3.3 3.4-2.4-.7-6.1 1.5-8.6 3.3 1.6 3.3 1.6 4.2-.2 0-.1 2.1-4.7-.5-11.4-1-2.4-1.5-3.9-1.8-5.1-.3-1.4-.2-2.2.2-3.3 2.2-1.1 4.1.6 5.6 2.8 2.2 3.3 3.5 7.9 3.5 8 1.9 10.4 2.6 14.5 2.8 16.2.1 1.1 0 1.2-.2 1.4-.1 0-.2 0-.2-.1-.5-.2-.9-.4-1.6-1.2-.6 1.1-.4 2.7-1.7 3.4-1.6 1-4 .5-5 2.5-.7 1.5-.7 3.3-2 4.5-.1.1-1.2.7-2.3-.3-1.2-1.1-1.1-5.2-3.1-3.9-.2 1.7 1.1 2.9 1.4 4.6-1.3 1.4-3.2 2.1-4 3.9-5.2-1.1-.8-4.9.6-6.1-6.1 2-6.7 2.8-6.9 3.3 1 2.5 3 4.5 4 7.1.3 1 .3 2.5-.2 3.4-1.5 2.5-3.1 1.9-4.3.6-.8-.9-1.3-2-1.6-3.1l-1.1-2v.2c-.4-.4-.8-1-.9-2 0-1.3.3-2.8 1.8-5.4zm16.5-21.7c.2 0 .5.2.5.5s-.2.5-.3.6c-.5-.4-.6-.7-.2-1.1zM52.2 184.4c-1-2.1-1.9-4.2-2.7-6.4-1.1-2.9-2.3-5.8-3.4-8.6-3.2-7.9-6.7-15.7-12.3-22.1-.4.1-.9.2-1.2.2 1.9 3.2 3.7 4.2 4.4 4.7 1.3 5.6 1.3 5.6.5 7.2-2-.8-2.4-3.7-4.7-4.2-.9-.2-2.8 1.1-3.5 3.7-.8 2.9.1 7.2 6.2 12.5 0 .1-.7 2.4-3.2 5-6.4-2.9-6.4-2.9-7-2.8-.4.7-.6 1.8-.5 2.6-.2.2-.5.2-.7.4-10 5.3-10.1 5.4-10.3 6-1.3 3.7-1.2 7.3-.9 11l39.3-9.2z" class="st3"/>
|
25 |
+
<path d="M62.8 263.8c-.1 0-.2.1-.2.1 0-.1.1-.1.2-.1zM18.1 103.7c.1 0 .2 0 .2.1l-.2-.2v.1zm145.7 214.4l-9.3-24.8c-1.2.3-2.4.3-3.6 0l-1.2 3.4-2.5 7.1 9.5 8.1 7.1 6.2zm-72.5-240L37 52.1l103.4 64.7zM84 121.3L43.8 67 33.6 53.2c-.3.3-.6.6-1.1.8l33.3 126.2L84 121.3zm41.7 51.1c.5 1 .7 2 .6 3.1l2.3.3 62.5 8.6-41-57.8c-.2.2-.5.2-.7.4-1.7.7-3.5.7-5.1.1L123 169.6c1.2.6 2.2 1.5 2.7 2.8zm-59.4 8.9l47.3-5.9c-.1-2.1.8-4.2 2.5-5.5l-31.5-47.7-18.3 59.1zm47.4-5.1l-47.2 5.9L149 282c.3-.2.7-.5 1.1-.7.2-.1.3-.2.5-.2l-29.3-100c-2.8.7-5.9-.7-7.2-3.5-.2-.4-.3-.9-.4-1.4zm-62.2 51.7c.2.2.4.5.6.7.1.4.2.6 0 1.2l95.3 54c.2-.4.6-.8 1-1.1L129.8 260l-61-74.1c.5.9 1 1.9 1.3 2.9-.2.3-.4.7-.6 1-.1.1-.1.2-.2.2 4.4 14.4 5.5 18.4 5.7 19.7.1.5 0 .7-.1.9-6.1-3-10.6-7.1-14.3-11.8-2.7-3.4-4.9-7.2-6.7-11L17.5 205c.7 1.6.6 3.3-.1 4.9.9.4 1.9.8 2.7 1.4.2-.3.6-.7.8-1l1.3 2.1c2.2-.6 2.9-3.8 5.9-3 1.9.6 3.2 1.8 4.3 3.1l.7-1.8c-.4-1.3-.8-2.6-1.3-3.8.7.3 1.2.7 2.3 1.6 2.2 1.9 6.6 6.5 17.4 19.4zM77 239.2c.2-.1.6 0 .7.5.1.5-.4 2.5-.8 2.3-.5-.2-.7-2.4.1-2.8zm65 61l4.6 3.3 3.7-10.3c-1.4-.6-2.5-1.7-3.3-3.2-.8-1.8-.7-3.8.1-5.4l-3-1.7L75.6 244v.1c.1.3-.1 1-.3 1.8-.4 1.1-1 2.3-1.4 3.4 0-.2-.1-.2-.1-.4-.3-1.6-.5-2.5-.3-3.4.2-1.3.9-1.6 1.2-1.7.2 0 .2-.1.4-.1l-23.2-13.1c-.6 3-.2 4.2 1.3 6l88.8 63.6zm-6.3 19.9l9.9-15.2-37.4 15.2zm76.7-70l-54.2 34.1c.1.1.2.2.2.4 1.5 3.2.1 6.9-3.1 8.4l9.6 25.6 48.7-67.3c-.5-.3-.9-.7-1.2-1.2zM9.1 296.9l.3-14.4c-.2 0-.6.1-.7.2-2.4 1.3-5.3 4.9-6.6 8.3l1.6 6.9c1 .5 2.4.7 4.2.7-.1-.3-.2-.8-.2-1.2.2-.1.7-.3 1.4-.5zm9.8-196.7c6.3 2.8 14.3 11.2 14.4 11.3.1.2-.1.5 0 .7-.3.1-.8.2-1.2.3l-.7.8c-.8-.1-2-.6-2.7-1-.1.8-.6 1.8-1.1 2.4-.8-.4-1.9-.8-2.7-1.1 3.3 4 8.8 6.1 10 11.8 12.8 5.1 13.7 6.9 15 9.5-4.1 3.1-2.1 6.7.2 10.4 1.8 2.8 3.8 5.5 3.7 8.4-1.4.1-2.8-.2-4.2-.1-.4 1.4 0 2.9-.6 4.2-.3-.1-.8-.1-1.1-.2l-.1.6c.7 5.5 3.5 9.5 7 13.1 3.3 3.3 7.2 6.3 10.2 9.8L31.7 54.5c-.7.3-1.5.5-2.2.5l-3.4 14.5-7.2 30.7zm34.9 67.4c-2-1-2.4-4.3-1.5-4.5.1 0 .3 0 .6.7.6 1.2 1.1 3.7 1.1 4 0-.1-.1-.2-.2-.2zm109.7 152.5l.7-.6-17.4-14.8-10.1 15.4zM17.3 103.5l.2-.7c-.8-.8-1.6-1.6-2.2-2.4.3-.2.7-.7 1.1-.9.6.1 1.2.2 1.8.5L22 83.3 28.7 55c-3.5-.3-6.1-3.4-5.8-6.9 0-.3.1-.6.2-1m101.7 132c-.6.7-1.3 1.3-2.2 1.7-.2.1-.3.2-.5.2l29.3 100c2.4-.6 5 .4 6.5 2.4l54.2-34.1c-.1-.1-.2-.2-.2-.4-.9-2-.7-4.3.4-6l-87.5-63.8zm66.8 6.2l-65.5-9.1c-.2.7-.4 1.5-.8 2.1l73.5 53.7 14 10.2c.6-.7 1.2-1.2 2-1.6l-23.2-55.3zM17 204.2l36.3-17.1c-.3-.7-.6-1.2-.9-1.9l-39.5 9.1c.2 2.4.6 4.7.6 7 1.6.5 2.8 1.5 3.5 2.9zm123.3-82.6H85.2l31.6 47.8.5-.2c1.7-.7 3.5-.7 5.1-.1l21.1-42.4c-1.1-.7-2-1.6-2.6-2.9-.3-.6-.5-1.4-.6-2.2zm-55.6-.8h55.7c.1-.9.3-1.8.7-2.6L34.8 51.7c-.2.3-.4.7-.6 1l18.3 24.6 32.2 43.5zm140.5 199.3l-7.4-67.4c-1.3.1-2.6-.3-3.7-1l-17.6 24.4-31.2 43.2 2 .8h57.9z" class="st3"/>
|
26 |
+
<path d="M18.3 299c-1.5-3.4-5.7-3.1-8.4-2.4l.3-13.1c.2 2.4.1 4.9.6 7.3l1.1.6c7-5.5 7-5.5 8.5-5.1 4.5 1 2.9 6.3 5.9 8.3.1 0 .2 0 .2-.1.6-.2 1.5-.3 2.2-.4 4.3 3.5 3.2 9.5 5.9 13.7 5.2-2.2 7.4-3.1 8-5 .2-.8.2-1.7-.1-3-.7-3.5-3-5.7-5.5-7.8l-5.5-10.7c.5-2 .6-4.1.9-6.1.2-1.8.5-3.5 1.1-5.1 1.8-4.2 8.1-1.7 9.6-6.4.4-1.1.6-2.3 1-3.4 2.7-11 1.1-20.1.8-21.9-.3-1.6-.9-3.1-1.6-4.7l2.4-1.7.2.1 3.3 2.4c2.8 4.6 6.6 10.7 8.2 11.9.2-.7-.4-1.4 0-2 .2-.3.3-.4 1.1 0 1.1.6 1.7 1 1.9.2.1-.2.2-.8-.9-2-.6-.7-1.3-1.4-2-2L72.1 251c-.8.5-.4 2.5-.2 3.3.6-1.2.9-2.1 1-2.7l73.4 52.6-39.8 16.2h1.9l37.4-15.2-9.9 15.2h1l10.1-15.5 17.4 14.9-.6.6h3.9l-2-.8 31.2-43.2 17.6-24.4c1.1.7 2.4 1.1 3.7 1l7.4 67.4h.9l-7.4-67.5c3.4-.6 5.7-3.9 5.1-7.3-.1-.5-.3-1.1-.5-1.6-1.4-3-4.7-4.4-7.8-3.3l-23.2-55.6v-.1l-41.6-58.6c2.7-2.2 3.2-6.1 1.1-8.9-1.8-2.3-5-3.1-7.6-1.8-.8.4-1.5.9-2.1 1.6L91.7 77.5l-56.3-27c.4-1.5.3-3-.3-4.5 1.3-3.3-.3-7-3.5-8.3-3.2-1.3-6.9.3-8.2 3.5-.7 1.6-.6 3.5.1 5.1l-24-6.5v.7L23.1 47c-.8 3.4 1.2 6.9 4.6 7.8.3.1.6.1 1 .2L22 83.3l-3.9 16.6c-.7-.2-1.2-.4-1.8-.5-.3.2-.7.7-1.1.9.7.9 1.5 1.6 2.2 2.4l-.2.7c-10.8-2.3-13.6-2.8-17.8-1.7v-.1c.2 72.8.6 145.6.8 218.4m8.9-23.1c-.7.2-1.2.4-1.4.5.1.3.2.8.2 1.2-1.9.1-3.3-.2-4.2-.7L2.1 291c1.3-3.4 4.2-7 6.5-8.3.2-.1.5-.2.7-.2l-.2 14.4zm4.5-114.4c.4-.7.5-.8 10.3-6 .2-.2.5-.2.7-.4-.1-.8.1-2 .5-2.6.7-.1.7-.1 7 2.8 2.4-2.5 3.2-4.9 3.2-5-6.1-5.2-7-9.6-6.2-12.5.7-2.5 2.7-3.8 3.5-3.7 2.4.6 2.6 3.3 4.7 4.2.8-1.6.8-1.6-.5-7.2-.7-.4-2.5-1.5-4.4-4.7.4-.1.9-.2 1.2-.2 5.6 6.4 9.1 14.1 12.3 22.1 1.1 2.9 2.3 5.8 3.4 8.6.9 2.2 1.8 4.3 2.7 6.4l-39.3 9.1c-.3-3.6-.4-7.3.9-10.9zm.1 18.8c-.2-2.4-.4-4.7-.7-7l39.6-9.1c.3.7.6 1.3.9 1.9l-36.4 17.1c-.8-1.4-2-2.4-3.4-2.9zm32.5 30.2l.6-.5c.3.5.7 1.1 1 1.7l-1.6-1.2zM34 208.3c-1.1-.9-1.6-1.2-2.3-1.6.5 1.2.9 2.5 1.3 3.8l-.7 1.8c-1.1-1.4-2.4-2.6-4.3-3.1-2.9-.8-3.7 2.4-5.9 3l-1.3-2.1c-.2.3-.6.7-.8 1-.8-.6-1.7-1-2.7-1.4.6-1.5.7-3.3.1-4.9l36.3-17.1c2 3.9 4.1 7.7 6.7 11 3.7 4.8 8.3 8.9 14.4 11.9.1-.2.2-.4.1-.9-.2-1.4-1.4-5.3-5.7-19.7.1-.1.1-.2.2-.2.2-.3.4-.7.6-1-.3-1-.8-2-1.3-2.9l61 74.1 18.6 22.6c-.4.3-.6.7-1 1.1l-95.3-54c.2-.7.1-.8 0-1.2-.2-.2-.4-.5-.7-.7-10.7-13-15.1-17.6-17.3-19.5zM211.8 249c.1.2.2.2.2.4l-54.2 34.1c-1.5-2-4.1-3-6.5-2.4l-29.3-100c.2-.1.3-.1.5-.2.9-.4 1.6-1 2.2-1.7l87.4 63.9c-1 1.7-1.2 4-.3 5.9zm-61.2 32.2c-.2.1-.3.1-.5.2-.4.2-.7.4-1.1.7L66.5 182l47.2-5.9c.1.5.2 1 .5 1.5 1.3 2.8 4.3 4.2 7.2 3.6l29.2 100zm-37-105.8l-47.3 5.9 18.3-59.1 31.5 47.7c-1.7 1.3-2.6 3.4-2.5 5.5zm32.8 127.9l-4.6-3.3-88.7-63.5c-1.5-1.8-2-3-1.3-6L75 243.7c-.1 0-.2.1-.4.1-.3.1-1.1.4-1.3 1.6-.1.9 0 1.9.4 3.4 0 .2.1.2.1.4.4-1.1 1-2.3 1.4-3.4.2-.8.4-1.5.3-1.8v-.1l68.5 38.8 3 1.7c-.8 1.6-.9 3.6-.1 5.4.6 1.5 1.9 2.6 3.3 3.2l-3.8 10.3zm10.2 8.8l-9.5-8.1 2.6-7.2 1.2-3.4c1.1.3 2.4.3 3.6 0l9.3 24.8-7.2-6.1zm8.3 6.5l-9.6-25.5c3.2-1.5 4.6-5.2 3.1-8.4-.1-.2-.2-.2-.2-.4l54.2-34.1c.3.4.6.8 1.1 1.1l-48.6 67.3zm49.9-77.9c-.8.4-1.5 1-2 1.6l-14-10.2-73.5-53.7c.4-.7.7-1.4.8-2.1l65.5 9.1 23.2 55.3zm-70.6-113.6c1.5.7 3.4.7 5.1-.1.2-.1.5-.2.7-.4l41 57.8-62.5-8.6-2.3-.3c.1-1.1-.1-2.1-.6-3.1-.6-1.2-1.5-2.2-2.6-2.9l21.2-42.4zm-.7-.3l-21.1 42.4c-1.6-.7-3.5-.7-5.1.1l-.5.2-31.5-47.8h55.2c.1.7.2 1.6.6 2.2.4 1.2 1.3 2.2 2.4 2.9zM91.3 78.1l49.2 38.8L37 52.1l54.3 26zM34.8 51.7l106.4 66.6c-.4.8-.7 1.7-.7 2.6H84.7L52.4 77.4 34.2 52.7c.2-.4.4-.7.6-1zm-1.2 1.5L43.8 67 84 121.3l-18.3 58.9L32.4 54.1c.5-.3.9-.5 1.2-.9zm-4.1 1.7c.7 0 1.5-.2 2.2-.5L65.1 181c-3.1-3.4-7-6.4-10.2-9.8-3.4-3.5-6.3-7.5-7-13.1l.1-.6c.4.1.8.1 1.1.2.6-1.4.2-2.9.6-4.2 1.4-.2 2.8.2 4.2.1.1-2.8-2-5.6-3.7-8.4-2.4-3.7-4.4-7.3-.2-10.4-1.3-2.5-2.3-4.3-15-9.5-1.1-5.8-6.7-7.9-10-11.8.8.3 1.9.7 2.7 1.1.5-.6 1-1.6 1.1-2.4.7.4 1.8.8 2.7 1l.7-.8c.3-.1.8-.2 1.2-.3 0-.2.1-.5 0-.7-.1-.1-8-8.6-14.4-11.3l7-30.5 3.5-14.7z" class="st4"/>
|
27 |
+
<path d="M18.1 103.7v-.2l.2.2h-.2zM48.3 314v-.2l1.1 2c.2.9.8 2.2 1.6 3.1 1.2 1.4 2.8 2 4.3-.6.5-.9.5-2.4.2-3.4-.9-2.6-2.9-4.6-4-7.1.3-.5.8-1.3 6.9-3.3-1.5 1.1-5.9 5-.7 6.1.8-1.8 2.7-2.5 4-3.9-.2-1.6-1.6-2.8-1.4-4.6 2-1.3 1.9 2.8 3.1 3.9 1.1 1 2.1.5 2.3.3 1.2-1.2 1.2-3 2-4.5 1.1-2 3.4-1.6 5-2.5 1.3-.7 1.1-2.3 1.7-3.4.7.8 1.1 1.1 1.6 1.2.1 0 .2.1.2.1.2-.2.3-.3.2-1.4-.2-1.7-.9-5.8-2.8-16.2 0-.1-1.3-4.7-3.5-8-1.5-2.2-3.4-3.8-5.6-2.8-.4 1.1-.5 2.2-.2 3.3.2 1.1.8 2.7 1.8 5.1 2.6 6.7.5 11.3.5 11.4-.9 1.7-.9 1.7-4.2.2-2.2 2.6 1.9 6.4-1.5 8.6-2.4 1.7-6 .6-8 3.3-2 2.5-2.4 3.5-3.8 5.9-1.5 2.5-1.8 4.2-1.7 5.2.1 1.3.6 1.8.9 2.2zm5.5-146.4c.1 0 .1.1.2.1 0-.3-.5-2.8-1.1-4-.2-.6-.5-.6-.6-.6-.8.3-.5 3.6 1.5 4.5zm5.2 84.9c.4.7 1.2 2.4 1.6 3.9.5 1.8.2 2.6-.3 3.6-.6 1.1-1.4 2.4-1 4.1v.1c.3 1.1 3.3 4.8 4.6 4.6 1.2-.2 1.3-2 .8-3.3-.2-.6-.5-1.1-.9-1.5s-.7-.3-1.1-.3c1-.3 2.2-.2 2.8-.1 1.5.2 2.5.3 3.7-.8.1-.1.1-.2.2-.2.3-.5.2-1.1.5-1.7.7-1.2 1.8-2.2 2.4-3.4.1-.1.2-.3.2-.6-.1-1-.7-1.8-1.1-2.7-.7.8-6.9-1.7-9.6-2.9-2.8-1.2-3.3-1.2-3.7-1.1-.1.1-.2.2-.1.4.1.3.5.9 1 1.9z" class="st4"/>
|
28 |
+
<path d="M62.6 263.9c.1 0 .2-.1.2-.1-.1 0-.2 0-.2.1z" class="st4"/>
|
29 |
+
</g>
|
30 |
+
</g>
|
31 |
+
</g>
|
32 |
+
<path id="logo" d="M76.9 207.1c.9 1.8.8 4.6 1.7 6.4.6.3 1.3.6 1.8.9 7.6-1.1 7.8-10.2 3.9-14.6-1.8-1.7-4.5-2.5-7.8-1-16.8 7.2-32.9 2.6-42.6-7.5-5.3-5.3-8.8-12.1-9.8-19.5-2.6-23.5 16.6-38.4 29.8-40.1 11.8-1.4 23 2.8 30.5 10.4 8.1 8.1 12.5 20.3 9.9 34.4-1.1 6.4-4.9 14.5-13.5 14.5-3.4 0-6.8-1.5-9.2-4.1-2.3-2.2-3.7-5.2-3.9-8.4-.8-12.7 15.5-16.3 14.5-29-.1-2.3-1.1-4.2-2.8-6-4.9-4.7-14.9-6.5-23.9-4.7-11.2 2.3-21.9 12.5-23.9 24.8-1.6 10 2 21.2 9.3 28.9 6.5 6.5 16 10.1 27.5 7.3 3.8-.8 6.7-4.4 12.7-3.4 2.2.3 4 1.4 5.3 2.8 4.9 4.6 4.1 14.2-2.3 16.5-3.3 1.1-9.3.2-11.9-2.6l-.1-.1c-.3-.1-.6-.5-.9-.8-1-.8-1.7-2.5-1.6-4.4.1-2.6 1.8-4.7 3.8-4.5.8.1 1.5.5 2 1 .7.9 1.3 1.7 1.5 2.8m112.9-35.5c.7-.9 1-2 1.4-3.1.5-2.1.5-4.4-.1-6.4-.2-1.1-.7-2.3-1.4-3.1-.7-1-1.7-1.7-2.9-2.2-1.1-.6-2.5-.8-4.2-.8h-3.1c-.6 0-1 .5-1 1v16.9c0 .6.5 1 1 1h2c2.2 0 4-.3 5.3-1 1.1-.2 2.3-1.1 3-2.3m9.2-7.3c0 2.3-.5 4.2-1.4 6-.8 1.7-2.1 3.1-3.7 4.2-1.6 1-3.1 2-5.1 2.5-2 .6-3.9.8-5.9.8h-3.7c-.6 0-1 .5-1 1v11.9c0 .7.1 1.4.5 1.8.2.6.7.9 1.5 1.3.5.1 1 .2 2 .5.6.1 1 .1 1.6.2.6 0 1 .5 1 1s-.5 1-1 1h-16.3c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-31c0-.7-.1-1.4-.3-2-.2-.6-.7-1-1.4-1.3-.8-.2-1.6-.5-2.3-.6-.3 0-.7-.1-.9-.1-.6-.1-.9-.6-.9-1v-.1c0-.6.5-1 1-1H186c3.9 0 7.1.9 9.6 2.9l.1.1c2 2 3.3 4.6 3.3 7.7zm-36.8-8.4c-.6 0-1 .1-1.7.5-.7.2-1.1.5-1.7.8l-.1.1c-.7.5-1.1.9-1.7 1.5-.5.6-.7 1.4-1.1 2.4v.1c-1.4 4.7-3.1 10.1-4.9 16.4-1.7 6.1-3.8 12.4-5.9 19.3-.1.5-.6.8-1 .8h-1.3c-.5 0-.9-.3-1-.8l-9.5-29.4c-.1-.6-.8-.9-1.4-.7-.3.1-.6.3-.7.7l-10 29.4c-.1.5-.6.7-1 .7h-1c-.5 0-.9-.3-1-.8-2-6.9-3.9-13.9-6-21.3-2.2-7.7-3.6-12.7-4.2-15.4-.1-.6-.5-1-.7-1.6 0-.1-.1-.2-.1-.2-.8-1-2-1.7-3.2-2-.3-.1-.7-.1-.9-.2-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h15.4c.6 0 1 .5 1 1v.1c0 .6-.5 1-1 1-1.1.1-2.1.2-2.9.5-1 .2-1.6.6-1.6 1 0 .1 0 .5.1.8.1.2.1.6.1.8.5 1.8 1.4 4.7 2.5 8.8 1 3.6 2.4 8.6 4.2 15 .3 1 1.7 1 2.1 0l9.3-27.9c.1-.5.6-.7 1-.7h1.4c.5 0 .9.3 1 .8l9.4 28.6c.3 1 1.8 1 2.1 0l2.8-9.9c1-3.8 2-6.9 2.5-9.6.5-1.8.8-3.2.9-3.9.1-.7.1-1.3.1-1.8 0-.7-.5-1.3-1.4-1.7-.8-.5-2-.7-3.6-.8-.6-.1-1-.6-1-1 0-.6.5-1 1-1H161c.6 0 1 .5 1 1l.2.8zM292 184l-.8 11.8c0 .6-.5 1-1 1h-31.4c-.6 0-1-.5-1-1v-.1c0-.6.5-1 .9-1 .3 0 .7-.1 1.1-.1.9-.1 1.6-.2 2-.5.6-.2 1-.6 1.4-1.1.2-.6.5-1.1.5-2v-30.8c0-.7-.1-1.3-.5-1.8-.3-.6-.7-.9-1.4-1.3-.5-.2-1-.5-2-.7l-1.3-.3c-.5-.1-.9-.6-.9-1v-.2c0-.6.5-1 1-1h16c.6 0 1 .5 1 1v.1c0 .6-.3 1-.9 1-.3.1-.8.1-1.3.2-.9.1-1.6.5-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.3-.5 1.8v28.9c0 1.4.1 2.3.1 3.1.1.7.5 1.4.9 1.7.5.5 1.1.6 2.1.7s2.2.1 3.8.1c.8 0 1.6 0 2.3-.1.7 0 1.5-.1 2.3-.2h.1c.7-.1 1.3-.3 1.8-.5.6-.2.9-.5 1.3-.7.1 0 .1-.1.2-.2.8-.9 1.7-2.3 2.9-4.1.9-1.5 1.5-2.9 2-3.9.1-.5.6-.7 1-.7h1.6l.1.1zm-38.2 12.9H236c-.6 0-1-.5-1-1 0-.6.5-1 1-1s1-.1 1.7-.2c1-.1 1.8-.3 2.2-.6.6-.5 1-.8 1.4-1.4.3-.5.5-1 .5-1.8v-31.3h-.5l-14.6 35.9c-.1.5-.6.7-1 .7-.5 0-.9-.2-1-.7L211 158.6h-.5v25.7c0 2.5.1 4.4.5 5.6.3 1.3.8 2.2 1.5 2.9.5.5 1.4.8 2.8 1.3.8.2 1.4.3 1.8.5.5.1.9.6.9 1v.1c0 .6-.5 1-1 1h-14.8c-.7 0-1.3-.7-1-1.4v-.1c.1-.3.5-.7.8-.7.5-.1.8-.2 1.5-.5 1-.2 1.8-.6 2.3-1 .7-.6 1.1-1.4 1.5-2.6.2-1.1.5-3.1.5-5.9v-22.2c0-1.3-.1-2.3-.5-3.1-.3-.8-.7-1.5-1.4-2-.6-.6-1.4-.9-2.2-1.3h-.1l-1.7-.3c-.6-.1-.9-.6-.9-1.1v-.1c0-.6.5-1 1-1h12.7c.5 0 .8.2 1 .7l11 28.9c.3.9 1.7.9 2.1 0l9.4-24.3c.5-1 .7-2 1-3.1v-.1l.3-1.3c.1-.5.6-.8 1-.8h12.1c.6 0 1 .5 1 1v.1c0 .6-.5 1-.9 1-.3 0-.8.1-1.1.2-.8.1-1.5.3-2 .5-.7.2-1.1.6-1.4 1.3-.2.6-.5 1.1-.5 1.8v31.1c0 .7.1 1.4.5 1.8.2.5.7.9 1.4 1.3.5.2 1 .5 2 .6.5.1.9.1 1.3.2.6.1.9.6.9 1v1.6z" class="st5"/>
|
33 |
+
</g>
|
34 |
+
<g class="st0">
|
35 |
+
<path d="M146.2 2.5h-.1l171.4 171.4.5-.5V2.5z" class="st6"/>
|
36 |
+
</g>
|
37 |
+
<path d="M303.6 34.3c0-.4-.2-.9-.6-1.1-.2-.1-.4-.2-.6-.2L281 25.1c-.7-.3-1.5.1-1.7.8l-.1.2c-.3.7.1 1.5.8 1.7l14.5 5.3c.7.3 1.1 1 .8 1.7-.1.4-.4.7-.8.8l-23.6 8.6c-.3.1-.6.1-.9 0l-23.7-8.7c-.7-.3-1.1-1-.8-1.7.1-.4.4-.7.8-.8l14.6-5.2c.7-.2 1.1-1 .8-1.7-.2-.7-1-1.1-1.7-.8l-21.5 7.6c-.2 0-.5.1-.6.2-.1.1-.2.2-.2.3-.2.2-.3.5-.3.9v35.1c0 .6.4 1.1 1 1.3L269.6 82c.2.1.4.2.6.2h.6c.2-.1.4-.1.6-.2l31.3-11.4c.6-.2 1-.7 1-1.3V34.4c-.1 0-.1-.1-.1-.1zm-61.7 2.6l26.2 9.6c.5.2.9.7.9 1.3V77c0 .7-.6 1.3-1.3 1.3-.2 0-.3 0-.5-.1L241 68.7c-.5-.2-.9-.7-.9-1.3V38.2c0-.7.6-1.3 1.3-1.3.2-.1.4-.1.5 0zm58 31.8l-26.2 9.6c-.7.3-1.5-.1-1.7-.8-.1-.1-.1-.3-.1-.5V47.8c0-.6.4-1.1.9-1.3l26.2-9.6c.7-.3 1.5.1 1.7.8.1.1.1.3.1.5v29.3c0 .5-.4 1-.9 1.2z" class="st7"/>
|
38 |
+
<path d="M259.9 32c-.3.7 0 1.5.7 1.8l9.3 4.4c.2.1.4.2.6.1.1 0 .4-.1.6-.1l9.3-4.4c.7-.3 1-1.1.7-1.8-.3-.7-1.1-1-1.8-.7l-5.3 2.5c-.7.3-1.5 0-1.8-.7-.1-.2-.1-.4-.1-.6V18.9c0-.8-.6-1.4-1.4-1.4-.8 0-1.4.6-1.4 1.4v13.7c0 .8-.6 1.4-1.4 1.4-.2 0-.4 0-.6-.1l-5.3-2.5c-1-.4-1.8-.1-2.1.6z" class="st7"/>
|
39 |
+
</svg>
|
vendor/otgs/installer/README.md
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# OTGS WP Installer
|
2 |
+
|
3 |
+
OTGS WP Installer is a library that allows you to install and upgrade plugins and themes developed by OnTheGoSystems.
|
4 |
+
|
5 |
+
## Installation
|
6 |
+
|
7 |
+
First, add OTGS WP Installer as a dependency with [Composer](http://getcomposer.org):
|
8 |
+
|
9 |
+
```bash
|
10 |
+
composer require --dev otgs/installer:dev-master
|
11 |
+
```
|
12 |
+
|
13 |
+
Make sure that your bootstrap file is loading the composer autoloader:
|
14 |
+
|
15 |
+
```php
|
16 |
+
require_once 'vendor/autoload.php';
|
17 |
+
```
|
18 |
+
|
19 |
+
Then, load the OTGS WP Installer bootstrap. Before the `plugins_loaded` action add:
|
20 |
+
|
21 |
+
```php
|
22 |
+
include 'vendor/otgs/installer/loader.php';
|
23 |
+
```
|
24 |
+
|
25 |
+
If you're not using composer to install this library, just unpack the archive anywhere inside the plugin or theme folder and then include the bootstrap file and mentioned in the paragraph above.
|
26 |
+
|
27 |
+
Optionally, you can specify parameters to configure showing a dedicated UI under `Plugins -> Install New` or to load specific repositories.
|
28 |
+
By default, all repositories configrede in `repositories.xml` will be loaded:
|
29 |
+
* wpml - [WPML.org](http://wpml.org)
|
30 |
+
* toolset - [WP-Types.com](http://wp-types.com)
|
31 |
+
|
32 |
+
```php
|
33 |
+
WP_Installer_Setup( $wp_installer_instance,
|
34 |
+
array(
|
35 |
+
'plugins_install_tab' => '1', // optional, default value: 0
|
36 |
+
'repositories_include' => array( 'wpml' ) // optional, default to empty (show all)
|
37 |
+
)
|
38 |
+
);
|
39 |
+
```
|
40 |
+
|
41 |
+
After `init`, configure display the OTGS WP Installer UI like in the example below:
|
42 |
+
|
43 |
+
```php
|
44 |
+
WP_Installer_Show_Products(
|
45 |
+
array(
|
46 |
+
'template' => 'compact', //required
|
47 |
+
'product_name' => 'WPML',
|
48 |
+
'box_title' => 'Multilingual Avada',
|
49 |
+
'name' => 'Avada', //name of theme/plugin
|
50 |
+
'box_description' => 'Avada theme is fully compatible with WPML - the WordPress Multilingual plugin. WPML lets
|
51 |
+
you add languages to your existing sites and includes advanced translation management.',
|
52 |
+
'repository' => 'wpml', // required
|
53 |
+
'package' => 'multilingual-cms', // required
|
54 |
+
'product' => 'multilingual-cms' // required
|
55 |
+
)
|
56 |
+
);
|
57 |
+
```
|
58 |
+
|
59 |
+
* `template` two options available: default and compact. Default will be the same GUI as on the Plugins -> Install new page while compact is a smaller version that can be fit in a different already existing screen
|
60 |
+
* `repository` only one product of a specific product package from a specific repository can be shown
|
61 |
+
* `package` only one product of a specific product package from a specific repository can be shown
|
62 |
+
* `product` only one product of a specific product package from a specific repository can be shown
|
63 |
+
|
vendor/otgs/installer/changelog.txt
ADDED
@@ -0,0 +1,225 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
= 1.8.18 =
|
2 |
+
* Fixed a scenario where the `get_plugins` function might not be defined yet
|
3 |
+
|
4 |
+
= 1.8.17 =
|
5 |
+
* Implemented a notice for non-subscription users if an update is available on our site, without blocking updates from wordpress.org
|
6 |
+
|
7 |
+
= 1.8.16 =
|
8 |
+
* Improved sending of components data to be sent separately than the product registration
|
9 |
+
|
10 |
+
= 1.8.15 =
|
11 |
+
* Fixed message displayed even after sitekey gets validated
|
12 |
+
* Resolved PHP Notice Undefined index: version in specific client's dump
|
13 |
+
* Fixed incorrect comparison in the verification of subscriptions
|
14 |
+
* Improved incorrect message when trying to download a plugin but the connection times out
|
15 |
+
|
16 |
+
= 1.8.14.1 =
|
17 |
+
* Fixed Warning when components storage cache is empty
|
18 |
+
|
19 |
+
= 1.8.14 =
|
20 |
+
|
21 |
+
* Optionally collect some site information and send to our Toolset and WPML servers, such as PHP version, theme and plugins
|
22 |
+
* Resolved PHP fatal error when Types release/3.0 was active with WPML 3.9.4
|
23 |
+
* Skipped sending reports when site key is missing
|
24 |
+
* Changed the UI allowing users to send site's data
|
25 |
+
* Send Installer reports when user clicks in "How to translate" link
|
26 |
+
* Fixed Uncaught exception cURL error 35
|
27 |
+
* Fixed a PHP notice when two instances of Installer exist
|
28 |
+
* Refactored HTML to be more reusable and improved JS
|
29 |
+
* Replaced Installer setting from plugins list with an action
|
30 |
+
* Added Custom autoloader for Twig
|
31 |
+
* Started using only one version number for Installer
|
32 |
+
* Sanitized return of phpversion() in order to avoid registration issues when the option to send plugin/theme info is enabled
|
33 |
+
* Include Installer reports settings class in the beginning
|
34 |
+
* Removed autoloaded classes: replaced with custom autoloader only in `bootstrap.php`
|
35 |
+
* Included a check for equivalent subscription type for each plugin/product
|
36 |
+
* Added icons into upgrade response for WPML/Toolset plugins
|
37 |
+
|
38 |
+
= 1.8.10 =
|
39 |
+
* Removed wrongly added dependencies and repositories
|
40 |
+
|
41 |
+
= 1.8.8 =
|
42 |
+
* Fixed some conflicts
|
43 |
+
|
44 |
+
= 1.8.7 =
|
45 |
+
* Updated version numbers to all files
|
46 |
+
|
47 |
+
= 1.8.6 =
|
48 |
+
* Bug fix: When Windows file paths were longer than 256 chars updating of plugins wasn't possible
|
49 |
+
* Bug fix: PHP 7.2 warnings
|
50 |
+
|
51 |
+
= 1.8.2 =
|
52 |
+
* Bug fix: registration warning was shown for free plugins
|
53 |
+
|
54 |
+
= 1.8.1 =
|
55 |
+
* Fixed a bug potentially making the downloads list under the Commercial not display correctly
|
56 |
+
|
57 |
+
= 1.8 =
|
58 |
+
* Added support for update channels (beta, developement and production)
|
59 |
+
|
60 |
+
= 1.7.17 =
|
61 |
+
* Fixed some warnings and notices
|
62 |
+
|
63 |
+
= 1.7.16 =
|
64 |
+
* Fixed a bug with plugins list showing twice for the Toolset repository
|
65 |
+
* Replaced get_locale() with get_user_locale()
|
66 |
+
* Added WP_Installer_API::get_registering_user_id()
|
67 |
+
|
68 |
+
= 1.7.15 =
|
69 |
+
* Bug fix: New search, results not visible with WordPress 4.6 when searching from installer page
|
70 |
+
* Bug fix: A js error was showing on the admin pages: `pagenow` is undefined
|
71 |
+
* Added support for equivalent subscriptions
|
72 |
+
|
73 |
+
= 1.7.14 =
|
74 |
+
* Refactoring for compliance with Envato market
|
75 |
+
|
76 |
+
= 1.7.13 =
|
77 |
+
* Added sanitization for some inputs
|
78 |
+
* Fixed PHP notice being logged when installing a plugin from the WP plugins directory
|
79 |
+
|
80 |
+
= 1.7.12 =
|
81 |
+
* Allow to set the site keys in PHP (as constants)
|
82 |
+
* Fixed an issue with unregistered sites gets wrong info (or error) when clicking "View version x.y.x details" link
|
83 |
+
|
84 |
+
= 1.7.11 =
|
85 |
+
* Fixed styling for 'must-register' warnings on the plugins page
|
86 |
+
|
87 |
+
= 1.7.10 =
|
88 |
+
* Fixed a notice that was appearing when the site key registration failed
|
89 |
+
|
90 |
+
= 1.7.9 =
|
91 |
+
* Save the client_id value from the site_key_validation API call response and make it available via WP_Installer_API::get_ts_client_id API call
|
92 |
+
|
93 |
+
= 1.7.8 =
|
94 |
+
* Small fix for hiding the WPML registration notice
|
95 |
+
|
96 |
+
= 1.7.7 =
|
97 |
+
* Fixed js error showing up during registration
|
98 |
+
* Styles update for unified WPML messages
|
99 |
+
|
100 |
+
= 1.7.6 =
|
101 |
+
* Updated error messages when validating site keys and stopped removing site keys in case of communication errors
|
102 |
+
* Added a note for users who renewed or purchased new subscriptions and who need to revalidate their subscription from their websites
|
103 |
+
* Fixed a problem with the registrations for multi-site setups when WordPress was installed in a separate folder
|
104 |
+
|
105 |
+
= 1.7.5 =
|
106 |
+
* Fixed a bug causing registration to not be recognized for the entire network in the multi-site mode
|
107 |
+
|
108 |
+
= 1.7.4 =
|
109 |
+
* Use https for wp-types API
|
110 |
+
|
111 |
+
= 1.7.3 =
|
112 |
+
* Added a dependencies class and check for the windows paths length exception
|
113 |
+
* Bug fix: all downloads showed up twice on the plugins list whe upgrading from WPML 3.3
|
114 |
+
|
115 |
+
= 1.7.2 =
|
116 |
+
* Added an exception to handle the case when Types embedded is installer from Toolset Installer and its included Installer version overrides the one running the Toolset setup wizard
|
117 |
+
|
118 |
+
= 1.7.1 =
|
119 |
+
* Added an exception for the case of Types 1.8.9 (Installer 1.7.0) together with older WPML (older Installer)
|
120 |
+
|
121 |
+
= 1.7.0 =
|
122 |
+
* New format for the products data file.
|
123 |
+
* Other fixes
|
124 |
+
|
125 |
+
= 1.6.8 =
|
126 |
+
* Sanitized an input that was a potential security issue
|
127 |
+
|
128 |
+
= 1.6.7 =
|
129 |
+
* Fixed a bug causing repeated calls to the Toolset api to validate the user subscription
|
130 |
+
* Use https for API urls
|
131 |
+
|
132 |
+
= 1.6.6 =
|
133 |
+
* Fixed the 'Call to undefined function get_plugins()' issue
|
134 |
+
|
135 |
+
= 1.6.5 =
|
136 |
+
* Added configuration file for composer
|
137 |
+
* Updated how free plugins are shown on the plugins list (commercial tab)
|
138 |
+
* API calls for manipulating translation service preferences
|
139 |
+
* Support for hosting custom Installer packages on wpml.org
|
140 |
+
* Fixed a warning that was showing when using the OTGS_DISABLE_AUTO_UPDATES constant before any product data was downloaded
|
141 |
+
* Changed the frequency with which product updates are checked automatically (24 hours)
|
142 |
+
* Improved reporting for version numbers
|
143 |
+
|
144 |
+
= 1.6.4 =
|
145 |
+
* Enabled the OTGS_DISABLE_AUTO_UPDATES constant for theme update checks
|
146 |
+
* Fixed a bug that was causing Register links to show for all installed plugins
|
147 |
+
|
148 |
+
= 1.6.3 =
|
149 |
+
* Fixed performance issue related to themes upgrade logic
|
150 |
+
|
151 |
+
= 1.6 =
|
152 |
+
* Improved the way plugins are matched: not just by the folder name (slug) but also by name
|
153 |
+
* Added support for installing and upgrading themes from repositories (currently: Toolset themes)
|
154 |
+
* Added support for 'alias' plugins on the toolset and wpml repositories (currently: Types)
|
155 |
+
* Enhanced the progress animation during plugins downloading
|
156 |
+
|
157 |
+
= 1.5.6 =
|
158 |
+
* Updated the translations
|
159 |
+
* Fix for WPML 3.2 conditional upgrade logic
|
160 |
+
|
161 |
+
= 1.5.5 =
|
162 |
+
* Fixed the logic for the high_priority parameter
|
163 |
+
* Fixed js bug causing a conflict with NextGen
|
164 |
+
* Fixed bug preventing users to install and upgrade Types when they didn't have a Toolset subscription
|
165 |
+
* Fixed bug preventing users to upgrade from the embedded Types to the full version
|
166 |
+
|
167 |
+
= 1.5.4 =
|
168 |
+
* Option to disable auto-updates
|
169 |
+
* Escaped urls generated with add_query_arg
|
170 |
+
|
171 |
+
= 1.5.3 =
|
172 |
+
* Fixed bug in WP_Installer::custom_plugins_api_call (filter for plugins_api) causing conflicts with other filters for plugins_api
|
173 |
+
|
174 |
+
= 1.5.2 =
|
175 |
+
* More meaningful errors when plugin downloads fail
|
176 |
+
* WordPress 4.2 compatibility
|
177 |
+
* Performance improvements (will not load in places where it's not needed and not make unnecessary requests to the CDN)
|
178 |
+
* Support putting deps.xml config file in the theme folder (root)
|
179 |
+
* Included code for importing data for toolset plugins
|
180 |
+
* Use CloudFront urls for products list files
|
181 |
+
|
182 |
+
= 1.5.1 =
|
183 |
+
* Fix for allowing embedded plugins to be updated
|
184 |
+
* Logic for the migration from embedded plugins to full plugins
|
185 |
+
|
186 |
+
= 1.5 =
|
187 |
+
* Support for embedded plugins
|
188 |
+
* Bug fix: When user registers site key with trailing slash, downloads might not work
|
189 |
+
* Tweak: Set a higher timeout limit for the http requests to CDN and API
|
190 |
+
* API function: link to specific repository
|
191 |
+
* API function: get product price
|
192 |
+
* New method for defining affiliate info (with backwards compatibility)
|
193 |
+
|
194 |
+
= 1.4 =
|
195 |
+
* Show explicit error in case of connectivity issues while validating a key.
|
196 |
+
* Bug fix: Downloading plugins in bulk was broken by plugin that had a redirect after activation
|
197 |
+
* Display friendly error message when WordPress does not have permissions to write to the plugins folder
|
198 |
+
* Added support for configuration files to auto-download required plugins and theme keys
|
199 |
+
* Changed the "Update this info" button to "Check for updates" (it refreshes the subscription info and checks for updates)
|
200 |
+
* Support for high_priority parameter that allows setting priority for an Installer instance when more with the same version number exist.
|
201 |
+
* Config files from different instances are combined (define repositories in different instances)
|
202 |
+
* Updated support for conditional updates display for ICL users
|
203 |
+
* More friendly error reporting and handling when using an invalid site key or the plugins archives are not valid.
|
204 |
+
|
205 |
+
|
206 |
+
= 1.3.1 =
|
207 |
+
* Support for conditional release notification (ICanLocalize)
|
208 |
+
|
209 |
+
= 1.3 =
|
210 |
+
* Added a new repository: Toolset
|
211 |
+
* The product packages can be displayed hierarchically and ordered
|
212 |
+
* The link to automatically create site keys will follow through login on the account site (e.g. wpml.org, wp-types.com)
|
213 |
+
* Fixed animation issues (not showing in most browsers) when downloading plugins.
|
214 |
+
* Created an admin screen on the repository end (icl-mpp) to sho registration stats (site keys, site keys usage, components usage etc..).
|
215 |
+
* Bug fix: Renew and Upgrade buttons were not entirely clickable
|
216 |
+
* Bug fix: Action buttons (buy, renew, upgrade) were not displayed correctly when WPML was not active (Installer embedded in theme)
|
217 |
+
* Support for site-wide registration. Products can be registered on the network instead of on each site separately.
|
218 |
+
* Users are able to add either http or https version for any site urls. There will be one site key that will work with both http and https versions.
|
219 |
+
|
220 |
+
= 1.2 =
|
221 |
+
* Added pagination for site keys list of Account -> My Sites
|
222 |
+
* Reversed the order in which the site keys are displayed.
|
223 |
+
* Fixed problem with WPML registration information (site key) not being saved when the option_value field in the wp_options table used a different charset than the default WordPress charset defined in wp-config.php
|
224 |
+
* Allow registering new sites by clicking a link in the WordPress admin instead of copying and pasting the site url in the Account -> My Sites section
|
225 |
+
* Display more detailed debug information related to connectivity issues with the WPML repository
|
vendor/otgs/installer/dist/css/ui/styles.css
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.otgs-installer-component-setting {
|
2 |
+
margin: 1em 0; }
|
3 |
+
.otgs-installer-component-setting h4 {
|
4 |
+
margin: 0; }
|
5 |
+
.otgs-settings-container .otgs-installer-component-setting .spinner {
|
6 |
+
position: absolute;
|
7 |
+
margin: 5px 0 0; }
|
8 |
+
|
9 |
+
.otgs-on-off-switch + .otgs-switch__onoff,
|
10 |
+
.otgs-switch__onoff + .otgs-on-off-switch {
|
11 |
+
-webkit-margin-start: 7px;
|
12 |
+
-moz-margin-start: 7px;
|
13 |
+
margin-inline-start: 7px; }
|
14 |
+
|
15 |
+
/* ON/OFF Switch */
|
16 |
+
.otgs-switch__onoff {
|
17 |
+
position: relative;
|
18 |
+
width: 55px;
|
19 |
+
display: inline-block;
|
20 |
+
vertical-align: middle;
|
21 |
+
-webkit-box-flex: 0;
|
22 |
+
-ms-flex: 0 0 55px;
|
23 |
+
flex: 0 0 55px; }
|
24 |
+
.otgs-switch__onoff.otgs-pull-right {
|
25 |
+
right: 0; }
|
26 |
+
.otgs-switch__onoff .otgs-switch__onoff-label {
|
27 |
+
display: block;
|
28 |
+
overflow: hidden;
|
29 |
+
cursor: pointer;
|
30 |
+
border: 1px solid #e6e6e6;
|
31 |
+
border-radius: 16px;
|
32 |
+
margin: 0; }
|
33 |
+
.otgs-switch__onoff .otgs-switch__onoff-inner {
|
34 |
+
width: 200%;
|
35 |
+
margin-left: -100%;
|
36 |
+
-webkit-transition: margin 0.15s ease-in-out;
|
37 |
+
transition: margin 0.15s ease-in-out; }
|
38 |
+
.otgs-switch__onoff .otgs-switch__onoff-inner:before, .otgs-switch__onoff .otgs-switch__onoff-inner:after {
|
39 |
+
float: left;
|
40 |
+
width: 50%;
|
41 |
+
height: 22px;
|
42 |
+
padding: 0;
|
43 |
+
line-height: 22px;
|
44 |
+
font-size: 11px;
|
45 |
+
-webkit-box-sizing: border-box;
|
46 |
+
box-sizing: border-box; }
|
47 |
+
.otgs-switch__onoff .otgs-switch__onoff-inner:before {
|
48 |
+
content: "ON";
|
49 |
+
padding-left: 10px;
|
50 |
+
background-color: #21759b;
|
51 |
+
color: #fff; }
|
52 |
+
.otgs-switch__onoff .otgs-switch__onoff-inner:after {
|
53 |
+
content: "OFF";
|
54 |
+
padding-right: 8px;
|
55 |
+
background-color: #fafafa;
|
56 |
+
color: #3D3D3D;
|
57 |
+
text-align: right; }
|
58 |
+
.otgs-switch__onoff .otgs-switch__onoff-switch {
|
59 |
+
width: 18px;
|
60 |
+
height: 18px;
|
61 |
+
margin: 0;
|
62 |
+
background: #fff;
|
63 |
+
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
|
64 |
+
box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
|
65 |
+
border-radius: 50%;
|
66 |
+
position: absolute;
|
67 |
+
top: 3px;
|
68 |
+
bottom: 0;
|
69 |
+
right: 34px;
|
70 |
+
-webkit-transition: right 0.15s ease-in-out;
|
71 |
+
transition: right 0.15s ease-in-out; }
|
72 |
+
|
73 |
+
.otgs-toggle-group {
|
74 |
+
position: relative;
|
75 |
+
display: -webkit-box;
|
76 |
+
display: -ms-flexbox;
|
77 |
+
display: flex;
|
78 |
+
-webkit-box-align: center;
|
79 |
+
-ms-flex-align: center;
|
80 |
+
align-items: center; }
|
81 |
+
.otgs-toggle-group .otgs-switch__onoff-inner {
|
82 |
+
display: block; }
|
83 |
+
.otgs-toggle-group input[type=checkbox] {
|
84 |
+
display: none; }
|
85 |
+
.otgs-toggle-group input[type=checkbox]:checked ~ .otgs-switch__onoff .otgs-switch__onoff-label .otgs-switch__onoff-inner {
|
86 |
+
margin-left: 0; }
|
87 |
+
.otgs-toggle-group input[type=checkbox]:checked ~ .otgs-switch__onoff .otgs-switch__onoff-label .otgs-switch__onoff-switch {
|
88 |
+
right: 3px;
|
89 |
+
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
|
90 |
+
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5); }
|
91 |
+
.otgs-toggle-group input[type=checkbox]:focus ~ .otgs-switch__onoff {
|
92 |
+
outline: thin dotted #333; }
|
93 |
+
.otgs-toggle-group .otgs-on-off-switch {
|
94 |
+
cursor: pointer;
|
95 |
+
display: inline-block; }
|
96 |
+
|
97 |
+
.otgs-external-link:after {
|
98 |
+
font-family: dashicons !important;
|
99 |
+
content: "\A0\F504";
|
100 |
+
vertical-align: baseline;
|
101 |
+
line-height: 1;
|
102 |
+
display: inline-block; }
|
103 |
+
|
104 |
+
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3NzL3VpL3Njc3MvdWkvc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBO0VBQ0MsY0FBYSxFQVViO0VBWEQ7SUFHRSxVQUFTLEVBQ1Q7RUFDRDtJQUVFLG1CQUFrQjtJQUNsQixnQkFBaUIsRUFDakI7O0FBSUg7O0VBRUMsMEJBQXlCO0VBQ3RCLHVCQUFzQjtFQUNqQix5QkFBd0IsRUFDaEM7O0FBRUQsbUJBQW1CO0FBQ25CO0VBQ0MsbUJBQXdCO0VBQ3hCLFlBM0JrQjtFQTRCbEIsc0JBQTRCO0VBQzVCLHVCQUFzQjtFQUN0QixvQkFBNkI7RUFDekIsbUJBL0JjO0VBZ0NWLGVBaENVLEVBZ0dsQjtFQXZFRDtJQVVFLFNBQVEsRUFDUjtFQVhGO0lBY0UsZUFBb0I7SUFDcEIsaUJBQXFCO0lBQ3JCLGdCQUFzQjtJQUN0QiwwQkFBNEM7SUFDNUMsb0JBQWlDO0lBQ2pDLFVBQWdCLEVBQ2hCO0VBcEJGO0lBdUJFLFlBQWlCO0lBQ2pCLG1CQUFrQjtJQUNsQiw2Q0FBd0Q7SUFDeEQscUNBQWdELEVBNEJoRDtJQXRERjtNQThCRyxZQUFpQjtNQUNqQixXQUFnQjtNQUNoQixhQXhEcUM7TUF5RHJDLFdBQWM7TUFDZCxrQkExRHFDO01BMkRyQyxnQkFBaUI7TUFDakIsK0JBQStCO01BQ3ZCLHVCQUF1QixFQUMvQjtJQXRDSDtNQXlDRyxjQUFzQjtNQUN0QixtQkFBc0I7TUFDdEIsMEJBM0VnQjtNQTRFaEIsWUFoRlMsRUFpRlQ7SUE3Q0g7TUFnREcsZUFBdUI7TUFDdkIsbUJBQXFCO01BQ3JCLDBCQUFvQztNQUNwQyxlQXRGZTtNQXVGZixrQkFBdUIsRUFDdkI7RUFyREg7SUF5REUsWUFuRmtCO0lBb0ZsQixhQXBGa0I7SUFxRmxCLFVBQWdCO0lBQ2hCLGlCQWhHVTtJQWlHViwrQ0FBZ0Q7SUFDeEMsdUNBQXdDO0lBQ2hELG1CQUFrQjtJQUNsQixtQkFBdUI7SUFDdkIsU0FBa0I7SUFDbEIsVUFBZ0I7SUFDaEIsWUFBa0M7SUFDbEMsNENBQXlEO0lBQ3pELG9DQUFpRCxFQUNqRDs7QUFHRjtFQUNDLG1CQUFxQjtFQUNyQixxQkFBd0I7RUFDeEIscUJBQXdCO0VBQ3hCLGNBQWlCO0VBQ2pCLDBCQUF5QjtFQUNyQix1QkFBc0I7RUFDbEIsb0JBQW1CLEVBNEIzQjtFQW5DRDtJQVVFLGVBQWMsRUFDZDtFQVhGO0lBY0UsY0FBYSxFQWViO0lBN0JGO01BaUJHLGVBQWMsRUFDZDtJQWxCSDtNQXFCRyxXQUFlO01BQ2YsK0NBQTZDO01BQ3JDLHVDQUFxQyxFQUM3QztJQXhCSDtNQTJCRywwQkFBeUIsRUFDekI7RUE1Qkg7SUFnQ0UsZ0JBQWdCO0lBQ2hCLHNCQUFxQixFQUNyQjs7QUFHRjtFQUNDLGtDQUFvQztFQUNwQyxvQkFBNEI7RUFDNUIseUJBQXdCO0VBQ3hCLGVBQWlCO0VBQ2pCLHNCQUE0QixFQUM1QiIsImZpbGUiOiJjc3MvdWkvc3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENPTE9SU1xuJHdoaXRlOiAjZmZmO1xuJGRhcmtncmF5OiAjM0QzRDNEO1xuJGJhc2UtZ3JheTogIzQ1NTU1RjtcbiRncmF5LXNhdHVyYXRlLTg1OiBzYXR1cmF0ZSgkYmFzZS1ncmF5LCA4NSUpO1xuJG90Z3MtYmx1ZTogIzIxNzU5YjtcblxuLy8gVFJBTlNJVElPTiBTUEVFRFNcbiR0cmFuc2l0aW9uLWZhc3Q6IDAuMTVzO1xuXG4vLyBPTiBPRkYgU1dJVENIXG4kc3dpdGNoLWhlaWdodDogMThweDtcbiRzd2l0Y2gtd2lkdGg6IDU1cHg7XG4kc3dpdGNoLWdyb3VwLWhlaWdodDogJHN3aXRjaC1oZWlnaHQgKyA0O1xuJHRvZ2dsZS1ncm91cC1oZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0ICsgNTtcblxuLm90Z3MtaW5zdGFsbGVyLWNvbXBvbmVudC1zZXR0aW5nIHtcblx0bWFyZ2luOiAxZW0gMDtcblx0aDQge1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXHQub3Rncy1zZXR0aW5ncy1jb250YWluZXIgJiB7XG5cdFx0LnNwaW5uZXIge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0bWFyZ2luOiAgIDVweCAwIDA7XG5cdFx0fVxuXHR9XG59XG5cbi5vdGdzLW9uLW9mZi1zd2l0Y2ggKyAub3Rncy1zd2l0Y2hfX29ub2ZmLFxuLm90Z3Mtc3dpdGNoX19vbm9mZiArIC5vdGdzLW9uLW9mZi1zd2l0Y2gge1xuXHQtd2Via2l0LW1hcmdpbi1zdGFydDogN3B4O1xuXHQgICAtbW96LW1hcmdpbi1zdGFydDogN3B4O1xuXHQgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDdweDtcbn1cblxuLyogT04vT0ZGIFN3aXRjaCAqL1xuLm90Z3Mtc3dpdGNoX19vbm9mZiB7XG5cdHBvc2l0aW9uOiAgICAgICByZWxhdGl2ZTtcblx0d2lkdGg6ICAgICAgICAgICRzd2l0Y2gtd2lkdGg7XG5cdGRpc3BsYXk6ICAgICAgICBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdC13ZWJraXQtYm94LWZsZXg6ICAgICAgICAgICAwO1xuXHQgICAgLW1zLWZsZXg6ICAgICAgICAgICAwIDAgJHN3aXRjaC13aWR0aDtcblx0ICAgICAgICBmbGV4OiAgICAgICAgICAgMCAwICRzd2l0Y2gtd2lkdGg7XG5cblx0Ji5vdGdzLXB1bGwtcmlnaHQge1xuXHRcdHJpZ2h0OiAwO1xuXHR9XG5cblx0Lm90Z3Mtc3dpdGNoX19vbm9mZi1sYWJlbCB7XG5cdFx0ZGlzcGxheTogICAgICAgYmxvY2s7XG5cdFx0b3ZlcmZsb3c6ICAgICAgaGlkZGVuO1xuXHRcdGN1cnNvcjogICAgICAgIHBvaW50ZXI7XG5cdFx0Ym9yZGVyOiAgICAgICAgMXB4IHNvbGlkIGRhcmtlbigkd2hpdGUsIDEwJSk7XG5cdFx0Ym9yZGVyLXJhZGl1czogJHN3aXRjaC1oZWlnaHQgLSAyO1xuXHRcdG1hcmdpbjogICAgICAgIDA7XG5cdH1cblxuXHQub3Rncy1zd2l0Y2hfX29ub2ZmLWlubmVyIHtcblx0XHR3aWR0aDogICAgICAgMjAwJTtcblx0XHRtYXJnaW4tbGVmdDogLTEwMCU7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiAgbWFyZ2luICR0cmFuc2l0aW9uLWZhc3QgZWFzZS1pbi1vdXQ7XG5cdFx0dHJhbnNpdGlvbjogIG1hcmdpbiAkdHJhbnNpdGlvbi1mYXN0IGVhc2UtaW4tb3V0O1xuXG5cdFx0JjpiZWZvcmUsXG5cdFx0JjphZnRlciB7XG5cdFx0XHRmbG9hdDogICAgICAgbGVmdDtcblx0XHRcdHdpZHRoOiAgICAgICA1MCU7XG5cdFx0XHRoZWlnaHQ6ICAgICAgJHN3aXRjaC1ncm91cC1oZWlnaHQ7XG5cdFx0XHRwYWRkaW5nOiAgICAgMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAkc3dpdGNoLWdyb3VwLWhlaWdodDtcblx0XHRcdGZvbnQtc2l6ZTogICAxMXB4O1xuXHRcdFx0LXdlYmtpdC1ib3gtc2l6aW5nOiAgYm9yZGVyLWJveDtcblx0XHRcdCAgICAgICAgYm94LXNpemluZzogIGJvcmRlci1ib3g7XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogICAgICAgICAgXCJPTlwiO1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAgICAgMTBweDtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRvdGdzLWJsdWU7XG5cdFx0XHRjb2xvcjogICAgICAgICAgICAkd2hpdGU7XG5cdFx0fVxuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiAgICAgICAgICBcIk9GRlwiO1xuXHRcdFx0cGFkZGluZy1yaWdodDogICAgOHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR3aGl0ZSwgMiUpO1xuXHRcdFx0Y29sb3I6ICAgICAgICAgICAgJGRhcmtncmF5O1xuXHRcdFx0dGV4dC1hbGlnbjogICAgICAgcmlnaHQ7XG5cdFx0fVxuXHR9XG5cblx0Lm90Z3Mtc3dpdGNoX19vbm9mZi1zd2l0Y2gge1xuXHRcdHdpZHRoOiAgICAgICAgICRzd2l0Y2gtaGVpZ2h0O1xuXHRcdGhlaWdodDogICAgICAgICRzd2l0Y2gtaGVpZ2h0O1xuXHRcdG1hcmdpbjogICAgICAgIDA7XG5cdFx0YmFja2dyb3VuZDogICAgJHdoaXRlO1xuXHRcdC13ZWJraXQtYm94LXNoYWRvdzogICAgMCAwIDNweCByZ2JhKDAsIDAsIDAsIC4zKTtcblx0XHQgICAgICAgIGJveC1zaGFkb3c6ICAgIDAgMCAzcHggcmdiYSgwLCAwLCAwLCAuMyk7XG5cdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdHBvc2l0aW9uOiAgICAgIGFic29sdXRlO1xuXHRcdHRvcDogICAgICAgICAgIDNweDtcblx0XHRib3R0b206ICAgICAgICAwO1xuXHRcdHJpZ2h0OiAgICAgICAgICRzd2l0Y2gtaGVpZ2h0ICsgMTY7XG5cdFx0LXdlYmtpdC10cmFuc2l0aW9uOiAgICByaWdodCAkdHJhbnNpdGlvbi1mYXN0IGVhc2UtaW4tb3V0O1xuXHRcdHRyYW5zaXRpb246ICAgIHJpZ2h0ICR0cmFuc2l0aW9uLWZhc3QgZWFzZS1pbi1vdXQ7XG5cdH1cbn1cblxuLm90Z3MtdG9nZ2xlLWdyb3VwIHtcblx0cG9zaXRpb246ICAgIHJlbGF0aXZlO1xuXHRkaXNwbGF5OiAgICAgLXdlYmtpdC1ib3g7XG5cdGRpc3BsYXk6ICAgICAtbXMtZmxleGJveDtcblx0ZGlzcGxheTogICAgIGZsZXg7XG5cdC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XG5cdCAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuXHQgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0Lm90Z3Mtc3dpdGNoX19vbm9mZi1pbm5lciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdCY6Y2hlY2tlZCB+IC5vdGdzLXN3aXRjaF9fb25vZmYgLm90Z3Mtc3dpdGNoX19vbm9mZi1sYWJlbCAub3Rncy1zd2l0Y2hfX29ub2ZmLWlubmVyIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdH1cblxuXHRcdCY6Y2hlY2tlZCB+IC5vdGdzLXN3aXRjaF9fb25vZmYgLm90Z3Mtc3dpdGNoX19vbm9mZi1sYWJlbCAub3Rncy1zd2l0Y2hfX29ub2ZmLXN3aXRjaCB7XG5cdFx0XHRyaWdodDogICAgICAzcHg7XG5cdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAuNSk7XG5cdFx0XHQgICAgICAgIGJveC1zaGFkb3c6IDAgMCAzcHggcmdiYSgwLCAwLCAwLCAuNSk7XG5cdFx0fVxuXG5cdFx0Jjpmb2N1cyB+IC5vdGdzLXN3aXRjaF9fb25vZmYge1xuXHRcdFx0b3V0bGluZTogdGhpbiBkb3R0ZWQgIzMzMztcblx0XHR9XG5cdH1cblxuXHQub3Rncy1vbi1vZmYtc3dpdGNoIHtcblx0XHRjdXJzb3I6ICBwb2ludGVyO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxufVxuXG4ub3Rncy1leHRlcm5hbC1saW5rOmFmdGVyIHtcblx0Zm9udC1mYW1pbHk6ICAgIGRhc2hpY29ucyAhaW1wb3J0YW50O1xuXHRjb250ZW50OiAgICAgICAgXCJcXDAwYTBcXGY1MDRcIjtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuXHRsaW5lLWhlaWdodDogICAgMTtcblx0ZGlzcGxheTogICAgICAgIGlubGluZS1ibG9jaztcbn0iXSwic291cmNlUm9vdCI6IiJ9*/
|
vendor/otgs/installer/dist/js/ui/app.js
ADDED
@@ -0,0 +1,701 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/******/ (function(modules) { // webpackBootstrap
|
2 |
+
/******/ // The module cache
|
3 |
+
/******/ var installedModules = {};
|
4 |
+
/******/
|
5 |
+
/******/ // The require function
|
6 |
+
/******/ function __webpack_require__(moduleId) {
|
7 |
+
/******/
|
8 |
+
/******/ // Check if module is in cache
|
9 |
+
/******/ if(installedModules[moduleId]) {
|
10 |
+
/******/ return installedModules[moduleId].exports;
|
11 |
+
/******/ }
|
12 |
+
/******/ // Create a new module (and put it into the cache)
|
13 |
+
/******/ var module = installedModules[moduleId] = {
|
14 |
+
/******/ i: moduleId,
|
15 |
+
/******/ l: false,
|
16 |
+
/******/ exports: {}
|
17 |
+
/******/ };
|
18 |
+
/******/
|
19 |
+
/******/ // Execute the module function
|
20 |
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
21 |
+
/******/
|
22 |
+
/******/ // Flag the module as loaded
|
23 |
+
/******/ module.l = true;
|
24 |
+
/******/
|
25 |
+
/******/ // Return the exports of the module
|
26 |
+
/******/ return module.exports;
|
27 |
+
/******/ }
|
28 |
+
/******/
|
29 |
+
/******/
|
30 |
+
/******/ // expose the modules object (__webpack_modules__)
|
31 |
+
/******/ __webpack_require__.m = modules;
|
32 |
+
/******/
|
33 |
+
/******/ // expose the module cache
|
34 |
+
/******/ __webpack_require__.c = installedModules;
|
35 |
+
/******/
|
36 |
+
/******/ // define getter function for harmony exports
|
37 |
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
38 |
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
39 |
+
/******/ Object.defineProperty(exports, name, {
|
40 |
+
/******/ configurable: false,
|
41 |
+
/******/ enumerable: true,
|
42 |
+
/******/ get: getter
|
43 |
+
/******/ });
|
44 |
+
/******/ }
|
45 |
+
/******/ };
|
46 |
+
/******/
|
47 |
+
/******/ // define __esModule on exports
|
48 |
+
/******/ __webpack_require__.r = function(exports) {
|
49 |
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
50 |
+
/******/ };
|
51 |
+
/******/
|
52 |
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
53 |
+
/******/ __webpack_require__.n = function(module) {
|
54 |
+
/******/ var getter = module && module.__esModule ?
|
55 |
+
/******/ function getDefault() { return module['default']; } :
|
56 |
+
/******/ function getModuleExports() { return module; };
|
57 |
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
58 |
+
/******/ return getter;
|
59 |
+
/******/ };
|
60 |
+
/******/
|
61 |
+
/******/ // Object.prototype.hasOwnProperty.call
|
62 |
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
63 |
+
/******/
|
64 |
+
/******/ // __webpack_public_path__
|
65 |
+
/******/ __webpack_require__.p = "";
|
66 |
+
/******/
|
67 |
+
/******/
|
68 |
+
/******/ // Load entry module and return exports
|
69 |
+
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
70 |
+
/******/ })
|
71 |
+
/************************************************************************/
|
72 |
+
/******/ ({
|
73 |
+
|
74 |
+
/***/ "./js/ui/Switcher.js":
|
75 |
+
/*!***************************!*\
|
76 |
+
!*** ./js/ui/Switcher.js ***!
|
77 |
+
\***************************/
|
78 |
+
/*! no static exports found */
|
79 |
+
/***/ (function(module, exports, __webpack_require__) {
|
80 |
+
|
81 |
+
"use strict";
|
82 |
+
|
83 |
+
|
84 |
+
Object.defineProperty(exports, "__esModule", {
|
85 |
+
value: true
|
86 |
+
});
|
87 |
+
|
88 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
89 |
+
|
90 |
+
var Switcher = function Switcher(element) {
|
91 |
+
_classCallCheck(this, Switcher);
|
92 |
+
|
93 |
+
var checkBoxContainer = element.parentElement;
|
94 |
+
var heading = checkBoxContainer.getElementsByClassName('heading');
|
95 |
+
var label = checkBoxContainer.getElementsByTagName('label').item(0);
|
96 |
+
|
97 |
+
if (label) {
|
98 |
+
label.classList.add('otgs-on-off-switch');
|
99 |
+
}
|
100 |
+
|
101 |
+
var toggleGroup = document.createElement('label');
|
102 |
+
toggleGroup.classList.add('otgs-toggle-group');
|
103 |
+
toggleGroup.appendChild(element);
|
104 |
+
toggleGroup.appendChild(label);
|
105 |
+
|
106 |
+
var switcherContainer = document.createElement('span');
|
107 |
+
switcherContainer.classList.add('otgs-switch__onoff');
|
108 |
+
var switcherBorder = document.createElement('span');
|
109 |
+
switcherBorder.classList.add('otgs-switch__onoff-label');
|
110 |
+
var switcherInner = document.createElement('span');
|
111 |
+
switcherInner.classList.add('otgs-switch__onoff-inner');
|
112 |
+
var switcherSwitch = document.createElement('span');
|
113 |
+
switcherSwitch.classList.add('otgs-switch__onoff-switch');
|
114 |
+
|
115 |
+
switcherBorder.appendChild(switcherInner);
|
116 |
+
switcherBorder.appendChild(switcherSwitch);
|
117 |
+
|
118 |
+
switcherContainer.appendChild(switcherBorder);
|
119 |
+
|
120 |
+
toggleGroup.appendChild(switcherContainer);
|
121 |
+
|
122 |
+
checkBoxContainer.appendChild(toggleGroup);
|
123 |
+
|
124 |
+
if (heading.length) {
|
125 |
+
heading.item(heading.length - 1).parentNode.insertBefore(toggleGroup, heading.item(heading.length - 1).nextSibling);
|
126 |
+
} else {
|
127 |
+
checkBoxContainer.insertBefore(toggleGroup, checkBoxContainer.firstChild);
|
128 |
+
}
|
129 |
+
};
|
130 |
+
|
131 |
+
exports.default = Switcher;
|
132 |
+
|
133 |
+
/***/ }),
|
134 |
+
|
135 |
+
/***/ "./js/ui/UI.js":
|
136 |
+
/*!*********************!*\
|
137 |
+
!*** ./js/ui/UI.js ***!
|
138 |
+
\*********************/
|
139 |
+
/*! no static exports found */
|
140 |
+
/***/ (function(module, exports, __webpack_require__) {
|
141 |
+
|
142 |
+
"use strict";
|
143 |
+
|
144 |
+
|
145 |
+
Object.defineProperty(exports, "__esModule", {
|
146 |
+
value: true
|
147 |
+
});
|
148 |
+
|
149 |
+
__webpack_require__(/*! ../../scss/ui/styles.scss */ "./scss/ui/styles.scss");
|
150 |
+
|
151 |
+
var _Switcher = __webpack_require__(/*! ./Switcher */ "./js/ui/Switcher.js");
|
152 |
+
|
153 |
+
var _Switcher2 = _interopRequireDefault(_Switcher);
|
154 |
+
|
155 |
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
156 |
+
|
157 |
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
158 |
+
|
159 |
+
var UI = function UI(element) {
|
160 |
+
_classCallCheck(this, UI);
|
161 |
+
|
162 |
+
var checkBoxes = element.querySelectorAll('input[type="checkbox"]');
|
163 |
+
|
164 |
+
if (checkBoxes) {
|
165 |
+
Array.from(checkBoxes).map(function (checkBox) {
|
166 |
+
return new _Switcher2.default(checkBox);
|
167 |
+
});
|
168 |
+
}
|
169 |
+
};
|
170 |
+
|
171 |
+
exports.default = UI;
|
172 |
+
|
173 |
+
/***/ }),
|
174 |
+
|
175 |
+
/***/ "./js/ui/app.js":
|
176 |
+
/*!**********************!*\
|
177 |
+
!*** ./js/ui/app.js ***!
|
178 |
+
\**********************/
|
179 |
+
/*! no static exports found */
|
180 |
+
/***/ (function(module, exports, __webpack_require__) {
|
181 |
+
|
182 |
+
"use strict";
|
183 |
+
|
184 |
+
|
185 |
+
var _UI = __webpack_require__(/*! ./UI */ "./js/ui/UI.js");
|
186 |
+
|
187 |
+
var _UI2 = _interopRequireDefault(_UI);
|
188 |
+
|
189 |
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
190 |
+
|
191 |
+
window.addEventListener('DOMContentLoaded', function () {
|
192 |
+
|
193 |
+
var otgsUIElements = document.querySelectorAll('.otgs-ui');
|
194 |
+
|
195 |
+
if (otgsUIElements) {
|
196 |
+
Array.from(otgsUIElements).map(function (otgsUI) {
|
197 |
+
return new _UI2.default(otgsUI);
|
198 |
+
});
|
199 |
+
}
|
200 |
+
});
|
201 |
+
|
202 |
+
/***/ }),
|
203 |
+
|
204 |
+
/***/ "./node_modules/whatwg-fetch/fetch.js":
|
205 |
+
/*!********************************************!*\
|
206 |
+
!*** ./node_modules/whatwg-fetch/fetch.js ***!
|
207 |
+
\********************************************/
|
208 |
+
/*! no static exports found */
|
209 |
+
/***/ (function(module, exports) {
|
210 |
+
|
211 |
+
(function(self) {
|
212 |
+
'use strict';
|
213 |
+
|
214 |
+
if (self.fetch) {
|
215 |
+
return
|
216 |
+
}
|
217 |
+
|
218 |
+
var support = {
|
219 |
+
searchParams: 'URLSearchParams' in self,
|
220 |
+
iterable: 'Symbol' in self && 'iterator' in Symbol,
|
221 |
+
blob: 'FileReader' in self && 'Blob' in self && (function() {
|
222 |
+
try {
|
223 |
+
new Blob()
|
224 |
+
return true
|
225 |
+
} catch(e) {
|
226 |
+
return false
|
227 |
+
}
|
228 |
+
})(),
|
229 |
+
formData: 'FormData' in self,
|
230 |
+
arrayBuffer: 'ArrayBuffer' in self
|
231 |
+
}
|
232 |
+
|
233 |
+
if (support.arrayBuffer) {
|
234 |
+
var viewClasses = [
|
235 |
+
'[object Int8Array]',
|
236 |
+
'[object Uint8Array]',
|
237 |
+
'[object Uint8ClampedArray]',
|
238 |
+
'[object Int16Array]',
|
239 |
+
'[object Uint16Array]',
|
240 |
+
'[object Int32Array]',
|
241 |
+
'[object Uint32Array]',
|
242 |
+
'[object Float32Array]',
|
243 |
+
'[object Float64Array]'
|
244 |
+
]
|
245 |
+
|
246 |
+
var isDataView = function(obj) {
|
247 |
+
return obj && DataView.prototype.isPrototypeOf(obj)
|
248 |
+
}
|
249 |
+
|
250 |
+
var isArrayBufferView = ArrayBuffer.isView || function(obj) {
|
251 |
+
return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1
|
252 |
+
}
|
253 |
+
}
|
254 |
+
|
255 |
+
function normalizeName(name) {
|
256 |
+
if (typeof name !== 'string') {
|
257 |
+
name = String(name)
|
258 |
+
}
|
259 |
+
if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
|
260 |
+
throw new TypeError('Invalid character in header field name')
|
261 |
+
}
|
262 |
+
return name.toLowerCase()
|
263 |
+
}
|
264 |
+
|
265 |
+
function normalizeValue(value) {
|
266 |
+
if (typeof value !== 'string') {
|
267 |
+
value = String(value)
|
268 |
+
}
|
269 |
+
return value
|
270 |
+
}
|
271 |
+
|
272 |
+
// Build a destructive iterator for the value list
|
273 |
+
function iteratorFor(items) {
|
274 |
+
var iterator = {
|
275 |
+
next: function() {
|
276 |
+
var value = items.shift()
|
277 |
+
return {done: value === undefined, value: value}
|
278 |
+
}
|
279 |
+
}
|
280 |
+
|
281 |
+
if (support.iterable) {
|
282 |
+
iterator[Symbol.iterator] = function() {
|
283 |
+
return iterator
|
284 |
+
}
|
285 |
+
}
|
286 |
+
|
287 |
+
return iterator
|
288 |
+
}
|
289 |
+
|
290 |
+
function Headers(headers) {
|
291 |
+
this.map = {}
|
292 |
+
|
293 |
+
if (headers instanceof Headers) {
|
294 |
+
headers.forEach(function(value, name) {
|
295 |
+
this.append(name, value)
|
296 |
+
}, this)
|
297 |
+
} else if (Array.isArray(headers)) {
|
298 |
+
headers.forEach(function(header) {
|
299 |
+
this.append(header[0], header[1])
|
300 |
+
}, this)
|
301 |
+
} else if (headers) {
|
302 |
+
Object.getOwnPropertyNames(headers).forEach(function(name) {
|
303 |
+
this.append(name, headers[name])
|
304 |
+
}, this)
|
305 |
+
}
|
306 |
+
}
|
307 |
+
|
308 |
+
Headers.prototype.append = function(name, value) {
|
309 |
+
name = normalizeName(name)
|
310 |
+
value = normalizeValue(value)
|
311 |
+
var oldValue = this.map[name]
|
312 |
+
this.map[name] = oldValue ? oldValue+','+value : value
|
313 |
+
}
|
314 |
+
|
315 |
+
Headers.prototype['delete'] = function(name) {
|
316 |
+
delete this.map[normalizeName(name)]
|
317 |
+
}
|
318 |
+
|
319 |
+
Headers.prototype.get = function(name) {
|
320 |
+
name = normalizeName(name)
|
321 |
+
return this.has(name) ? this.map[name] : null
|
322 |
+
}
|
323 |
+
|
324 |
+
Headers.prototype.has = function(name) {
|
325 |
+
return this.map.hasOwnProperty(normalizeName(name))
|
326 |
+
}
|
327 |
+
|
328 |
+
Headers.prototype.set = function(name, value) {
|
329 |
+
this.map[normalizeName(name)] = normalizeValue(value)
|
330 |
+
}
|
331 |
+
|
332 |
+
Headers.prototype.forEach = function(callback, thisArg) {
|
333 |
+
for (var name in this.map) {
|
334 |
+
if (this.map.hasOwnProperty(name)) {
|
335 |
+
callback.call(thisArg, this.map[name], name, this)
|
336 |
+
}
|
337 |
+
}
|
338 |
+
}
|
339 |
+
|
340 |
+
Headers.prototype.keys = function() {
|
341 |
+
var items = []
|
342 |
+
this.forEach(function(value, name) { items.push(name) })
|
343 |
+
return iteratorFor(items)
|
344 |
+
}
|
345 |
+
|
346 |
+
Headers.prototype.values = function() {
|
347 |
+
var items = []
|
348 |
+
this.forEach(function(value) { items.push(value) })
|
349 |
+
return iteratorFor(items)
|
350 |
+
}
|
351 |
+
|
352 |
+
Headers.prototype.entries = function() {
|
353 |
+
var items = []
|
354 |
+
this.forEach(function(value, name) { items.push([name, value]) })
|
355 |
+
return iteratorFor(items)
|
356 |
+
}
|
357 |
+
|
358 |
+
if (support.iterable) {
|
359 |
+
Headers.prototype[Symbol.iterator] = Headers.prototype.entries
|
360 |
+
}
|
361 |
+
|
362 |
+
function consumed(body) {
|
363 |
+
if (body.bodyUsed) {
|
364 |
+
return Promise.reject(new TypeError('Already read'))
|
365 |
+
}
|
366 |
+
body.bodyUsed = true
|
367 |
+
}
|
368 |
+
|
369 |
+
function fileReaderReady(reader) {
|
370 |
+
return new Promise(function(resolve, reject) {
|
371 |
+
reader.onload = function() {
|
372 |
+
resolve(reader.result)
|
373 |
+
}
|
374 |
+
reader.onerror = function() {
|
375 |
+
reject(reader.error)
|
376 |
+
}
|
377 |
+
})
|
378 |
+
}
|
379 |
+
|
380 |
+
function readBlobAsArrayBuffer(blob) {
|
381 |
+
var reader = new FileReader()
|
382 |
+
var promise = fileReaderReady(reader)
|
383 |
+
reader.readAsArrayBuffer(blob)
|
384 |
+
return promise
|
385 |
+
}
|
386 |
+
|
387 |
+
function readBlobAsText(blob) {
|
388 |
+
var reader = new FileReader()
|
389 |
+
var promise = fileReaderReady(reader)
|
390 |
+
reader.readAsText(blob)
|
391 |
+
return promise
|
392 |
+
}
|
393 |
+
|
394 |
+
function readArrayBufferAsText(buf) {
|
395 |
+
var view = new Uint8Array(buf)
|
396 |
+
var chars = new Array(view.length)
|
397 |
+
|
398 |
+
for (var i = 0; i < view.length; i++) {
|
399 |
+
chars[i] = String.fromCharCode(view[i])
|
400 |
+
}
|
401 |
+
return chars.join('')
|
402 |
+
}
|
403 |
+
|
404 |
+
function bufferClone(buf) {
|
405 |
+
if (buf.slice) {
|
406 |
+
return buf.slice(0)
|
407 |
+
} else {
|
408 |
+
var view = new Uint8Array(buf.byteLength)
|
409 |
+
view.set(new Uint8Array(buf))
|
410 |
+
return view.buffer
|
411 |
+
}
|
412 |
+
}
|
413 |
+
|
414 |
+
function Body() {
|
415 |
+
this.bodyUsed = false
|
416 |
+
|
417 |
+
this._initBody = function(body) {
|
418 |
+
this._bodyInit = body
|
419 |
+
if (!body) {
|
420 |
+
this._bodyText = ''
|
421 |
+
} else if (typeof body === 'string') {
|
422 |
+
this._bodyText = body
|
423 |
+
} else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
|
424 |
+
this._bodyBlob = body
|
425 |
+
} else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
|
426 |
+
this._bodyFormData = body
|
427 |
+
} else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
|
428 |
+
this._bodyText = body.toString()
|
429 |
+
} else if (support.arrayBuffer && support.blob && isDataView(body)) {
|
430 |
+
this._bodyArrayBuffer = bufferClone(body.buffer)
|
431 |
+
// IE 10-11 can't handle a DataView body.
|
432 |
+
this._bodyInit = new Blob([this._bodyArrayBuffer])
|
433 |
+
} else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {
|
434 |
+
this._bodyArrayBuffer = bufferClone(body)
|
435 |
+
} else {
|
436 |
+
throw new Error('unsupported BodyInit type')
|
437 |
+
}
|
438 |
+
|
439 |
+
if (!this.headers.get('content-type')) {
|
440 |
+
if (typeof body === 'string') {
|
441 |
+
this.headers.set('content-type', 'text/plain;charset=UTF-8')
|
442 |
+
} else if (this._bodyBlob && this._bodyBlob.type) {
|
443 |
+
this.headers.set('content-type', this._bodyBlob.type)
|
444 |
+
} else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {
|
445 |
+
this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')
|
446 |
+
}
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
+
if (support.blob) {
|
451 |
+
this.blob = function() {
|
452 |
+
var rejected = consumed(this)
|
453 |
+
if (rejected) {
|
454 |
+
return rejected
|
455 |
+
}
|
456 |
+
|
457 |
+
if (this._bodyBlob) {
|
458 |
+
return Promise.resolve(this._bodyBlob)
|
459 |
+
} else if (this._bodyArrayBuffer) {
|
460 |
+
return Promise.resolve(new Blob([this._bodyArrayBuffer]))
|
461 |
+
} else if (this._bodyFormData) {
|
462 |
+
throw new Error('could not read FormData body as blob')
|
463 |
+
} else {
|
464 |
+
return Promise.resolve(new Blob([this._bodyText]))
|
465 |
+
}
|
466 |
+
}
|
467 |
+
|
468 |
+
this.arrayBuffer = function() {
|
469 |
+
if (this._bodyArrayBuffer) {
|
470 |
+
return consumed(this) || Promise.resolve(this._bodyArrayBuffer)
|
471 |
+
} else {
|
472 |
+
return this.blob().then(readBlobAsArrayBuffer)
|
473 |
+
}
|
474 |
+
}
|
475 |
+
}
|
476 |
+
|
477 |
+
this.text = function() {
|
478 |
+
var rejected = consumed(this)
|
479 |
+
if (rejected) {
|
480 |
+
return rejected
|
481 |
+
}
|
482 |
+
|
483 |
+
if (this._bodyBlob) {
|
484 |
+
return readBlobAsText(this._bodyBlob)
|
485 |
+
} else if (this._bodyArrayBuffer) {
|
486 |
+
return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))
|
487 |
+
} else if (this._bodyFormData) {
|
488 |
+
throw new Error('could not read FormData body as text')
|
489 |
+
} else {
|
490 |
+
return Promise.resolve(this._bodyText)
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
if (support.formData) {
|
495 |
+
this.formData = function() {
|
496 |
+
return this.text().then(decode)
|
497 |
+
}
|
498 |
+
}
|
499 |
+
|
500 |
+
this.json = function() {
|
501 |
+
return this.text().then(JSON.parse)
|
502 |
+
}
|
503 |
+
|
504 |
+
return this
|
505 |
+
}
|
506 |
+
|
507 |
+
// HTTP methods whose capitalization should be normalized
|
508 |
+
var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']
|
509 |
+
|
510 |
+
function normalizeMethod(method) {
|
511 |
+
var upcased = method.toUpperCase()
|
512 |
+
return (methods.indexOf(upcased) > -1) ? upcased : method
|
513 |
+
}
|
514 |
+
|
515 |
+
function Request(input, options) {
|
516 |
+
options = options || {}
|
517 |
+
var body = options.body
|
518 |
+
|
519 |
+
if (input instanceof Request) {
|
520 |
+
if (input.bodyUsed) {
|
521 |
+
throw new TypeError('Already read')
|
522 |
+
}
|
523 |
+
this.url = input.url
|
524 |
+
this.credentials = input.credentials
|
525 |
+
if (!options.headers) {
|
526 |
+
this.headers = new Headers(input.headers)
|
527 |
+
}
|
528 |
+
this.method = input.method
|
529 |
+
this.mode = input.mode
|
530 |
+
if (!body && input._bodyInit != null) {
|
531 |
+
body = input._bodyInit
|
532 |
+
input.bodyUsed = true
|
533 |
+
}
|
534 |
+
} else {
|
535 |
+
this.url = String(input)
|
536 |
+
}
|
537 |
+
|
538 |
+
this.credentials = options.credentials || this.credentials || 'omit'
|
539 |
+
if (options.headers || !this.headers) {
|
540 |
+
this.headers = new Headers(options.headers)
|
541 |
+
}
|
542 |
+
this.method = normalizeMethod(options.method || this.method || 'GET')
|
543 |
+
this.mode = options.mode || this.mode || null
|
544 |
+
this.referrer = null
|
545 |
+
|
546 |
+
if ((this.method === 'GET' || this.method === 'HEAD') && body) {
|
547 |
+
throw new TypeError('Body not allowed for GET or HEAD requests')
|
548 |
+
}
|
549 |
+
this._initBody(body)
|
550 |
+
}
|
551 |
+
|
552 |
+
Request.prototype.clone = function() {
|
553 |
+
return new Request(this, { body: this._bodyInit })
|
554 |
+
}
|
555 |
+
|
556 |
+
function decode(body) {
|
557 |
+
var form = new FormData()
|
558 |
+
body.trim().split('&').forEach(function(bytes) {
|
559 |
+
if (bytes) {
|
560 |
+
var split = bytes.split('=')
|
561 |
+
var name = split.shift().replace(/\+/g, ' ')
|
562 |
+
var value = split.join('=').replace(/\+/g, ' ')
|
563 |
+
form.append(decodeURIComponent(name), decodeURIComponent(value))
|
564 |
+
}
|
565 |
+
})
|
566 |
+
return form
|
567 |
+
}
|
568 |
+
|
569 |
+
function parseHeaders(rawHeaders) {
|
570 |
+
var headers = new Headers()
|
571 |
+
rawHeaders.split(/\r?\n/).forEach(function(line) {
|
572 |
+
var parts = line.split(':')
|
573 |
+
var key = parts.shift().trim()
|
574 |
+
if (key) {
|
575 |
+
var value = parts.join(':').trim()
|
576 |
+
headers.append(key, value)
|
577 |
+
}
|
578 |
+
})
|
579 |
+
return headers
|
580 |
+
}
|
581 |
+
|
582 |
+
Body.call(Request.prototype)
|
583 |
+
|
584 |
+
function Response(bodyInit, options) {
|
585 |
+
if (!options) {
|
586 |
+
options = {}
|
587 |
+
}
|
588 |
+
|
589 |
+
this.type = 'default'
|
590 |
+
this.status = 'status' in options ? options.status : 200
|
591 |
+
this.ok = this.status >= 200 && this.status < 300
|
592 |
+
this.statusText = 'statusText' in options ? options.statusText : 'OK'
|
593 |
+
this.headers = new Headers(options.headers)
|
594 |
+
this.url = options.url || ''
|
595 |
+
this._initBody(bodyInit)
|
596 |
+
}
|
597 |
+
|
598 |
+
Body.call(Response.prototype)
|
599 |
+
|
600 |
+
Response.prototype.clone = function() {
|
601 |
+
return new Response(this._bodyInit, {
|
602 |
+
status: this.status,
|
603 |
+
statusText: this.statusText,
|
604 |
+
headers: new Headers(this.headers),
|
605 |
+
url: this.url
|
606 |
+
})
|
607 |
+
}
|
608 |
+
|
609 |
+
Response.error = function() {
|
610 |
+
var response = new Response(null, {status: 0, statusText: ''})
|
611 |
+
response.type = 'error'
|
612 |
+
return response
|
613 |
+
}
|
614 |
+
|
615 |
+
var redirectStatuses = [301, 302, 303, 307, 308]
|
616 |
+
|
617 |
+
Response.redirect = function(url, status) {
|
618 |
+
if (redirectStatuses.indexOf(status) === -1) {
|
619 |
+
throw new RangeError('Invalid status code')
|
620 |
+
}
|
621 |
+
|
622 |
+
return new Response(null, {status: status, headers: {location: url}})
|
623 |
+
}
|
624 |
+
|
625 |
+
self.Headers = Headers
|
626 |
+
self.Request = Request
|
627 |
+
self.Response = Response
|
628 |
+
|
629 |
+
self.fetch = function(input, init) {
|
630 |
+
return new Promise(function(resolve, reject) {
|
631 |
+
var request = new Request(input, init)
|
632 |
+
var xhr = new XMLHttpRequest()
|
633 |
+
|
634 |
+
xhr.onload = function() {
|
635 |
+
var options = {
|
636 |
+
status: xhr.status,
|
637 |
+
statusText: xhr.statusText,
|
638 |
+
headers: parseHeaders(xhr.getAllResponseHeaders() || '')
|
639 |
+
}
|
640 |
+
options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')
|
641 |
+
var body = 'response' in xhr ? xhr.response : xhr.responseText
|
642 |
+
resolve(new Response(body, options))
|
643 |
+
}
|
644 |
+
|
645 |
+
xhr.onerror = function() {
|
646 |
+
reject(new TypeError('Network request failed'))
|
647 |
+
}
|
648 |
+
|
649 |
+
xhr.ontimeout = function() {
|
650 |
+
reject(new TypeError('Network request failed'))
|
651 |
+
}
|
652 |
+
|
653 |
+
xhr.open(request.method, request.url, true)
|
654 |
+
|
655 |
+
if (request.credentials === 'include') {
|
656 |
+
xhr.withCredentials = true
|
657 |
+
}
|
658 |
+
|
659 |
+
if ('responseType' in xhr && support.blob) {
|
660 |
+
xhr.responseType = 'blob'
|
661 |
+
}
|
662 |
+
|
663 |
+
request.headers.forEach(function(value, name) {
|
664 |
+
xhr.setRequestHeader(name, value)
|
665 |
+
})
|
666 |
+
|
667 |
+
xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
|
668 |
+
})
|
669 |
+
}
|
670 |
+
self.fetch.polyfill = true
|
671 |
+
})(typeof self !== 'undefined' ? self : this);
|
672 |
+
|
673 |
+
|
674 |
+
/***/ }),
|
675 |
+
|
676 |
+
/***/ "./scss/ui/styles.scss":
|
677 |
+
/*!*****************************!*\
|
678 |
+
!*** ./scss/ui/styles.scss ***!
|
679 |
+
\*****************************/
|
680 |
+
/*! no static exports found */
|
681 |
+
/***/ (function(module, exports) {
|
682 |
+
|
683 |
+
// removed by extract-text-webpack-plugin
|
684 |
+
|
685 |
+
/***/ }),
|
686 |
+
|
687 |
+
/***/ 0:
|
688 |
+
/*!*****************************************!*\
|
689 |
+
!*** multi whatwg-fetch ./js/ui/app.js ***!
|
690 |
+
\*****************************************/
|
691 |
+
/*! no static exports found */
|
692 |
+
/***/ (function(module, exports, __webpack_require__) {
|
693 |
+
|
694 |
+
__webpack_require__(/*! whatwg-fetch */"./node_modules/whatwg-fetch/fetch.js");
|
695 |
+
module.exports = __webpack_require__(/*! ./js/ui/app.js */"./js/ui/app.js");
|
696 |
+
|
697 |
+
|
698 |
+
/***/ })
|
699 |
+
|
700 |
+
/******/ });
|
701 |
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vanMvdWkvU3dpdGNoZXIuanMiLCJ3ZWJwYWNrOi8vLy4vanMvdWkvVUkuanMiLCJ3ZWJwYWNrOi8vLy4vanMvdWkvYXBwLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy93aGF0d2ctZmV0Y2gvZmV0Y2guanMiLCJ3ZWJwYWNrOi8vLy4vc2Nzcy91aS9zdHlsZXMuc2NzcyJdLCJuYW1lcyI6WyJTd2l0Y2hlciIsImVsZW1lbnQiLCJjaGVja0JveENvbnRhaW5lciIsInBhcmVudEVsZW1lbnQiLCJoZWFkaW5nIiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsImxhYmVsIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpdGVtIiwiY2xhc3NMaXN0IiwiYWRkIiwidG9nZ2xlR3JvdXAiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJhcHBlbmRDaGlsZCIsInN3aXRjaGVyQ29udGFpbmVyIiwic3dpdGNoZXJCb3JkZXIiLCJzd2l0Y2hlcklubmVyIiwic3dpdGNoZXJTd2l0Y2giLCJsZW5ndGgiLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJmaXJzdENoaWxkIiwiVUkiLCJjaGVja0JveGVzIiwicXVlcnlTZWxlY3RvckFsbCIsIkFycmF5IiwiZnJvbSIsIm1hcCIsImNoZWNrQm94Iiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsIm90Z3NVSUVsZW1lbnRzIiwib3Rnc1VJIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQSx5REFBaUQsY0FBYztBQUMvRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7O0FBR0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDbkVNQSxRLEdBQ0wsa0JBQWFDLE9BQWIsRUFBc0I7QUFBQTs7QUFDckIsS0FBTUMsb0JBQW9CRCxRQUFRRSxhQUFsQztBQUNBLEtBQU1DLFVBQVVGLGtCQUFrQkcsc0JBQWxCLENBQXlDLFNBQXpDLENBQWhCO0FBQ0EsS0FBTUMsUUFBUUosa0JBQWtCSyxvQkFBbEIsQ0FBdUMsT0FBdkMsRUFBZ0RDLElBQWhELENBQXFELENBQXJELENBQWQ7O0FBRUEsS0FBSUYsS0FBSixFQUFXO0FBQ1ZBLFFBQU1HLFNBQU4sQ0FBZ0JDLEdBQWhCLENBQW9CLG9CQUFwQjtBQUNBOztBQUVELEtBQU1DLGNBQWNDLFNBQVNDLGFBQVQsQ0FBdUIsT0FBdkIsQ0FBcEI7QUFDQUYsYUFBWUYsU0FBWixDQUFzQkMsR0FBdEIsQ0FBMEIsbUJBQTFCO0FBQ0FDLGFBQVlHLFdBQVosQ0FBd0JiLE9BQXhCO0FBQ0FVLGFBQVlHLFdBQVosQ0FBd0JSLEtBQXhCOztBQUVBLEtBQU1TLG9CQUFvQkgsU0FBU0MsYUFBVCxDQUF1QixNQUF2QixDQUExQjtBQUNBRSxtQkFBa0JOLFNBQWxCLENBQTRCQyxHQUE1QixDQUFnQyxvQkFBaEM7QUFDQSxLQUFNTSxpQkFBaUJKLFNBQVNDLGFBQVQsQ0FBdUIsTUFBdkIsQ0FBdkI7QUFDQUcsZ0JBQWVQLFNBQWYsQ0FBeUJDLEdBQXpCLENBQTZCLDBCQUE3QjtBQUNBLEtBQU1PLGdCQUFnQkwsU0FBU0MsYUFBVCxDQUF1QixNQUF2QixDQUF0QjtBQUNBSSxlQUFjUixTQUFkLENBQXdCQyxHQUF4QixDQUE0QiwwQkFBNUI7QUFDQSxLQUFNUSxpQkFBaUJOLFNBQVNDLGFBQVQsQ0FBdUIsTUFBdkIsQ0FBdkI7QUFDQUssZ0JBQWVULFNBQWYsQ0FBeUJDLEdBQXpCLENBQTZCLDJCQUE3Qjs7QUFFQU0sZ0JBQWVGLFdBQWYsQ0FBMkJHLGFBQTNCO0FBQ0FELGdCQUFlRixXQUFmLENBQTJCSSxjQUEzQjs7QUFFQUgsbUJBQWtCRCxXQUFsQixDQUE4QkUsY0FBOUI7O0FBRUFMLGFBQVlHLFdBQVosQ0FBd0JDLGlCQUF4Qjs7QUFFQWIsbUJBQWtCWSxXQUFsQixDQUE4QkgsV0FBOUI7O0FBRUEsS0FBSVAsUUFBUWUsTUFBWixFQUFvQjtBQUNuQmYsVUFBUUksSUFBUixDQUFhSixRQUFRZSxNQUFSLEdBQWlCLENBQTlCLEVBQWlDQyxVQUFqQyxDQUNFQyxZQURGLENBQ2VWLFdBRGYsRUFDNEJQLFFBQVFJLElBQVIsQ0FBYUosUUFBUWUsTUFBUixHQUFpQixDQUE5QixFQUFpQ0csV0FEN0Q7QUFFQSxFQUhELE1BR087QUFDTnBCLG9CQUFrQm1CLFlBQWxCLENBQStCVixXQUEvQixFQUE0Q1Qsa0JBQWtCcUIsVUFBOUQ7QUFDQTtBQUNELEM7O2tCQUlhdkIsUTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDM0NmOztBQUNBOzs7Ozs7OztJQUVNd0IsRSxHQUNMLFlBQWF2QixPQUFiLEVBQXNCO0FBQUE7O0FBQ3JCLEtBQU13QixhQUFheEIsUUFBUXlCLGdCQUFSLENBQXlCLHdCQUF6QixDQUFuQjs7QUFFQSxLQUFHRCxVQUFILEVBQWU7QUFDZEUsUUFBTUMsSUFBTixDQUFXSCxVQUFYLEVBQXVCSSxHQUF2QixDQUEyQjtBQUFBLFVBQVksSUFBSTdCLGtCQUFKLENBQWE4QixRQUFiLENBQVo7QUFBQSxHQUEzQjtBQUNBO0FBQ0QsQzs7a0JBR2FOLEU7Ozs7Ozs7Ozs7Ozs7O0FDYmY7Ozs7OztBQUVBTyxPQUFPQyxnQkFBUCxDQUF3QixrQkFBeEIsRUFBNEMsWUFBTTs7QUFFakQsS0FBTUMsaUJBQWlCckIsU0FBU2MsZ0JBQVQsQ0FBMEIsVUFBMUIsQ0FBdkI7O0FBRUEsS0FBSU8sY0FBSixFQUFvQjtBQUNuQk4sUUFBTUMsSUFBTixDQUFXSyxjQUFYLEVBQTJCSixHQUEzQixDQUErQjtBQUFBLFVBQVUsSUFBSUwsWUFBSixDQUFPVSxNQUFQLENBQVY7QUFBQSxHQUEvQjtBQUNBO0FBQ0QsQ0FQRCxFOzs7Ozs7Ozs7OztBQ0ZBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx3Q0FBd0MsbUJBQW1CO0FBQzNEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGtDQUFrQyxvQkFBb0I7QUFDdEQ7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esd0NBQXdDLDRCQUE0QjtBQUNwRTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUIsaUJBQWlCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RCxTQUFTO0FBQ1Q7QUFDQSxTQUFTO0FBQ1QsOEVBQThFO0FBQzlFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVDtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOEJBQThCLHVCQUF1QjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBLHVDQUF1QywwQkFBMEI7QUFDakU7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLCtCQUErQiwwQkFBMEIsZUFBZTtBQUN4RTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPOztBQUVQO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxDQUFDOzs7Ozs7Ozs7Ozs7QUM1Y0QseUMiLCJmaWxlIjoianMvdWkvYXBwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSAwKTtcbiIsImNsYXNzIFN3aXRjaGVyIHtcblx0Y29uc3RydWN0b3IgKGVsZW1lbnQpIHtcblx0XHRjb25zdCBjaGVja0JveENvbnRhaW5lciA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcblx0XHRjb25zdCBoZWFkaW5nID0gY2hlY2tCb3hDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZycpO1xuXHRcdGNvbnN0IGxhYmVsID0gY2hlY2tCb3hDb250YWluZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2xhYmVsJykuaXRlbSgwKTtcblxuXHRcdGlmIChsYWJlbCkge1xuXHRcdFx0bGFiZWwuY2xhc3NMaXN0LmFkZCgnb3Rncy1vbi1vZmYtc3dpdGNoJyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgdG9nZ2xlR3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuXHRcdHRvZ2dsZUdyb3VwLmNsYXNzTGlzdC5hZGQoJ290Z3MtdG9nZ2xlLWdyb3VwJyk7XG5cdFx0dG9nZ2xlR3JvdXAuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG5cdFx0dG9nZ2xlR3JvdXAuYXBwZW5kQ2hpbGQobGFiZWwpO1xuXG5cdFx0Y29uc3Qgc3dpdGNoZXJDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cdFx0c3dpdGNoZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnb3Rncy1zd2l0Y2hfX29ub2ZmJyk7XG5cdFx0Y29uc3Qgc3dpdGNoZXJCb3JkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cdFx0c3dpdGNoZXJCb3JkZXIuY2xhc3NMaXN0LmFkZCgnb3Rncy1zd2l0Y2hfX29ub2ZmLWxhYmVsJyk7XG5cdFx0Y29uc3Qgc3dpdGNoZXJJbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcblx0XHRzd2l0Y2hlcklubmVyLmNsYXNzTGlzdC5hZGQoJ290Z3Mtc3dpdGNoX19vbm9mZi1pbm5lcicpO1xuXHRcdGNvbnN0IHN3aXRjaGVyU3dpdGNoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXHRcdHN3aXRjaGVyU3dpdGNoLmNsYXNzTGlzdC5hZGQoJ290Z3Mtc3dpdGNoX19vbm9mZi1zd2l0Y2gnKTtcblxuXHRcdHN3aXRjaGVyQm9yZGVyLmFwcGVuZENoaWxkKHN3aXRjaGVySW5uZXIpO1xuXHRcdHN3aXRjaGVyQm9yZGVyLmFwcGVuZENoaWxkKHN3aXRjaGVyU3dpdGNoKTtcblxuXHRcdHN3aXRjaGVyQ29udGFpbmVyLmFwcGVuZENoaWxkKHN3aXRjaGVyQm9yZGVyKTtcblxuXHRcdHRvZ2dsZUdyb3VwLmFwcGVuZENoaWxkKHN3aXRjaGVyQ29udGFpbmVyKTtcblxuXHRcdGNoZWNrQm94Q29udGFpbmVyLmFwcGVuZENoaWxkKHRvZ2dsZUdyb3VwKTtcblxuXHRcdGlmIChoZWFkaW5nLmxlbmd0aCkge1xuXHRcdFx0aGVhZGluZy5pdGVtKGhlYWRpbmcubGVuZ3RoIC0gMSkucGFyZW50Tm9kZVxuXHRcdFx0XHQuaW5zZXJ0QmVmb3JlKHRvZ2dsZUdyb3VwLCBoZWFkaW5nLml0ZW0oaGVhZGluZy5sZW5ndGggLSAxKS5uZXh0U2libGluZyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNoZWNrQm94Q29udGFpbmVyLmluc2VydEJlZm9yZSh0b2dnbGVHcm91cCwgY2hlY2tCb3hDb250YWluZXIuZmlyc3RDaGlsZCk7XG5cdFx0fVxuXHR9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3dpdGNoZXI7IiwiaW1wb3J0ICcuLi8uLi9zY3NzL3VpL3N0eWxlcy5zY3NzJztcbmltcG9ydCBTd2l0Y2hlciBmcm9tICcuL1N3aXRjaGVyJztcblxuY2xhc3MgVUkge1xuXHRjb25zdHJ1Y3RvciAoZWxlbWVudCkge1xuXHRcdGNvbnN0IGNoZWNrQm94ZXMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpO1xuXG5cdFx0aWYoY2hlY2tCb3hlcykge1xuXHRcdFx0QXJyYXkuZnJvbShjaGVja0JveGVzKS5tYXAoY2hlY2tCb3ggPT4gbmV3IFN3aXRjaGVyKGNoZWNrQm94KSk7XG5cdFx0fVxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFVJOyIsImltcG9ydCBVSSBmcm9tICcuL1VJJztcblxud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG5cblx0Y29uc3Qgb3Rnc1VJRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcub3Rncy11aScpO1xuXG5cdGlmIChvdGdzVUlFbGVtZW50cykge1xuXHRcdEFycmF5LmZyb20ob3Rnc1VJRWxlbWVudHMpLm1hcChvdGdzVUkgPT4gbmV3IFVJKG90Z3NVSSkpO1xuXHR9XG59KTsiLCIoZnVuY3Rpb24oc2VsZikge1xuICAndXNlIHN0cmljdCc7XG5cbiAgaWYgKHNlbGYuZmV0Y2gpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBzdXBwb3J0ID0ge1xuICAgIHNlYXJjaFBhcmFtczogJ1VSTFNlYXJjaFBhcmFtcycgaW4gc2VsZixcbiAgICBpdGVyYWJsZTogJ1N5bWJvbCcgaW4gc2VsZiAmJiAnaXRlcmF0b3InIGluIFN5bWJvbCxcbiAgICBibG9iOiAnRmlsZVJlYWRlcicgaW4gc2VsZiAmJiAnQmxvYicgaW4gc2VsZiAmJiAoZnVuY3Rpb24oKSB7XG4gICAgICB0cnkge1xuICAgICAgICBuZXcgQmxvYigpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSkoKSxcbiAgICBmb3JtRGF0YTogJ0Zvcm1EYXRhJyBpbiBzZWxmLFxuICAgIGFycmF5QnVmZmVyOiAnQXJyYXlCdWZmZXInIGluIHNlbGZcbiAgfVxuXG4gIGlmIChzdXBwb3J0LmFycmF5QnVmZmVyKSB7XG4gICAgdmFyIHZpZXdDbGFzc2VzID0gW1xuICAgICAgJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgICAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgICAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgICAgJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICAgICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICAgICdbb2JqZWN0IFVpbnQzMkFycmF5XScsXG4gICAgICAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICAgICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nXG4gICAgXVxuXG4gICAgdmFyIGlzRGF0YVZpZXcgPSBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgRGF0YVZpZXcucHJvdG90eXBlLmlzUHJvdG90eXBlT2Yob2JqKVxuICAgIH1cblxuICAgIHZhciBpc0FycmF5QnVmZmVyVmlldyA9IEFycmF5QnVmZmVyLmlzVmlldyB8fCBmdW5jdGlvbihvYmopIHtcbiAgICAgIHJldHVybiBvYmogJiYgdmlld0NsYXNzZXMuaW5kZXhPZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSkgPiAtMVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG5vcm1hbGl6ZU5hbWUobmFtZSkge1xuICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIG5hbWUgPSBTdHJpbmcobmFtZSlcbiAgICB9XG4gICAgaWYgKC9bXmEtejAtOVxcLSMkJSYnKisuXFxeX2B8fl0vaS50ZXN0KG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGNoYXJhY3RlciBpbiBoZWFkZXIgZmllbGQgbmFtZScpXG4gICAgfVxuICAgIHJldHVybiBuYW1lLnRvTG93ZXJDYXNlKClcbiAgfVxuXG4gIGZ1bmN0aW9uIG5vcm1hbGl6ZVZhbHVlKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHZhbHVlID0gU3RyaW5nKHZhbHVlKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIC8vIEJ1aWxkIGEgZGVzdHJ1Y3RpdmUgaXRlcmF0b3IgZm9yIHRoZSB2YWx1ZSBsaXN0XG4gIGZ1bmN0aW9uIGl0ZXJhdG9yRm9yKGl0ZW1zKSB7XG4gICAgdmFyIGl0ZXJhdG9yID0ge1xuICAgICAgbmV4dDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGl0ZW1zLnNoaWZ0KClcbiAgICAgICAgcmV0dXJuIHtkb25lOiB2YWx1ZSA9PT0gdW5kZWZpbmVkLCB2YWx1ZTogdmFsdWV9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnQuaXRlcmFibGUpIHtcbiAgICAgIGl0ZXJhdG9yW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGl0ZXJhdG9yXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZXJhdG9yXG4gIH1cblxuICBmdW5jdGlvbiBIZWFkZXJzKGhlYWRlcnMpIHtcbiAgICB0aGlzLm1hcCA9IHt9XG5cbiAgICBpZiAoaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpIHtcbiAgICAgIGhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkge1xuICAgICAgICB0aGlzLmFwcGVuZChuYW1lLCB2YWx1ZSlcbiAgICAgIH0sIHRoaXMpXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGhlYWRlcnMpKSB7XG4gICAgICBoZWFkZXJzLmZvckVhY2goZnVuY3Rpb24oaGVhZGVyKSB7XG4gICAgICAgIHRoaXMuYXBwZW5kKGhlYWRlclswXSwgaGVhZGVyWzFdKVxuICAgICAgfSwgdGhpcylcbiAgICB9IGVsc2UgaWYgKGhlYWRlcnMpIHtcbiAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkge1xuICAgICAgICB0aGlzLmFwcGVuZChuYW1lLCBoZWFkZXJzW25hbWVdKVxuICAgICAgfSwgdGhpcylcbiAgICB9XG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIG5hbWUgPSBub3JtYWxpemVOYW1lKG5hbWUpXG4gICAgdmFsdWUgPSBub3JtYWxpemVWYWx1ZSh2YWx1ZSlcbiAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLm1hcFtuYW1lXVxuICAgIHRoaXMubWFwW25hbWVdID0gb2xkVmFsdWUgPyBvbGRWYWx1ZSsnLCcrdmFsdWUgOiB2YWx1ZVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGVbJ2RlbGV0ZSddID0gZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLm1hcFtub3JtYWxpemVOYW1lKG5hbWUpXVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24obmFtZSkge1xuICAgIG5hbWUgPSBub3JtYWxpemVOYW1lKG5hbWUpXG4gICAgcmV0dXJuIHRoaXMuaGFzKG5hbWUpID8gdGhpcy5tYXBbbmFtZV0gOiBudWxsXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbihuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwLmhhc093blByb3BlcnR5KG5vcm1hbGl6ZU5hbWUobmFtZSkpXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkge1xuICAgIHRoaXMubWFwW25vcm1hbGl6ZU5hbWUobmFtZSldID0gbm9ybWFsaXplVmFsdWUodmFsdWUpXG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHtcbiAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMubWFwKSB7XG4gICAgICBpZiAodGhpcy5tYXAuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzQXJnLCB0aGlzLm1hcFtuYW1lXSwgbmFtZSwgdGhpcylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBIZWFkZXJzLnByb3RvdHlwZS5rZXlzID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGl0ZW1zID0gW11cbiAgICB0aGlzLmZvckVhY2goZnVuY3Rpb24odmFsdWUsIG5hbWUpIHsgaXRlbXMucHVzaChuYW1lKSB9KVxuICAgIHJldHVybiBpdGVyYXRvckZvcihpdGVtcylcbiAgfVxuXG4gIEhlYWRlcnMucHJvdG90eXBlLnZhbHVlcyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpdGVtcyA9IFtdXG4gICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7IGl0ZW1zLnB1c2godmFsdWUpIH0pXG4gICAgcmV0dXJuIGl0ZXJhdG9yRm9yKGl0ZW1zKVxuICB9XG5cbiAgSGVhZGVycy5wcm90b3R5cGUuZW50cmllcyA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBpdGVtcyA9IFtdXG4gICAgdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlLCBuYW1lKSB7IGl0ZW1zLnB1c2goW25hbWUsIHZhbHVlXSkgfSlcbiAgICByZXR1cm4gaXRlcmF0b3JGb3IoaXRlbXMpXG4gIH1cblxuICBpZiAoc3VwcG9ydC5pdGVyYWJsZSkge1xuICAgIEhlYWRlcnMucHJvdG90eXBlW1N5bWJvbC5pdGVyYXRvcl0gPSBIZWFkZXJzLnByb3RvdHlwZS5lbnRyaWVzXG4gIH1cblxuICBmdW5jdGlvbiBjb25zdW1lZChib2R5KSB7XG4gICAgaWYgKGJvZHkuYm9keVVzZWQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgVHlwZUVycm9yKCdBbHJlYWR5IHJlYWQnKSlcbiAgICB9XG4gICAgYm9keS5ib2R5VXNlZCA9IHRydWVcbiAgfVxuXG4gIGZ1bmN0aW9uIGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlc29sdmUocmVhZGVyLnJlc3VsdClcbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJlamVjdChyZWFkZXIuZXJyb3IpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWRCbG9iQXNBcnJheUJ1ZmZlcihibG9iKSB7XG4gICAgdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcbiAgICB2YXIgcHJvbWlzZSA9IGZpbGVSZWFkZXJSZWFkeShyZWFkZXIpXG4gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpXG4gICAgcmV0dXJuIHByb21pc2VcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWRCbG9iQXNUZXh0KGJsb2IpIHtcbiAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxuICAgIHZhciBwcm9taXNlID0gZmlsZVJlYWRlclJlYWR5KHJlYWRlcilcbiAgICByZWFkZXIucmVhZEFzVGV4dChibG9iKVxuICAgIHJldHVybiBwcm9taXNlXG4gIH1cblxuICBmdW5jdGlvbiByZWFkQXJyYXlCdWZmZXJBc1RleHQoYnVmKSB7XG4gICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShidWYpXG4gICAgdmFyIGNoYXJzID0gbmV3IEFycmF5KHZpZXcubGVuZ3RoKVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aWV3Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjaGFyc1tpXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodmlld1tpXSlcbiAgICB9XG4gICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpXG4gIH1cblxuICBmdW5jdGlvbiBidWZmZXJDbG9uZShidWYpIHtcbiAgICBpZiAoYnVmLnNsaWNlKSB7XG4gICAgICByZXR1cm4gYnVmLnNsaWNlKDApXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmLmJ5dGVMZW5ndGgpXG4gICAgICB2aWV3LnNldChuZXcgVWludDhBcnJheShidWYpKVxuICAgICAgcmV0dXJuIHZpZXcuYnVmZmVyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gQm9keSgpIHtcbiAgICB0aGlzLmJvZHlVc2VkID0gZmFsc2VcblxuICAgIHRoaXMuX2luaXRCb2R5ID0gZnVuY3Rpb24oYm9keSkge1xuICAgICAgdGhpcy5fYm9keUluaXQgPSBib2R5XG4gICAgICBpZiAoIWJvZHkpIHtcbiAgICAgICAgdGhpcy5fYm9keVRleHQgPSAnJ1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgYm9keSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5fYm9keVRleHQgPSBib2R5XG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYmxvYiAmJiBCbG9iLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlCbG9iID0gYm9keVxuICAgICAgfSBlbHNlIGlmIChzdXBwb3J0LmZvcm1EYXRhICYmIEZvcm1EYXRhLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlGb3JtRGF0YSA9IGJvZHlcbiAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgIHRoaXMuX2JvZHlUZXh0ID0gYm9keS50b1N0cmluZygpXG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgc3VwcG9ydC5ibG9iICYmIGlzRGF0YVZpZXcoYm9keSkpIHtcbiAgICAgICAgdGhpcy5fYm9keUFycmF5QnVmZmVyID0gYnVmZmVyQ2xvbmUoYm9keS5idWZmZXIpXG4gICAgICAgIC8vIElFIDEwLTExIGNhbid0IGhhbmRsZSBhIERhdGFWaWV3IGJvZHkuXG4gICAgICAgIHRoaXMuX2JvZHlJbml0ID0gbmV3IEJsb2IoW3RoaXMuX2JvZHlBcnJheUJ1ZmZlcl0pXG4gICAgICB9IGVsc2UgaWYgKHN1cHBvcnQuYXJyYXlCdWZmZXIgJiYgKEFycmF5QnVmZmVyLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpIHx8IGlzQXJyYXlCdWZmZXJWaWV3KGJvZHkpKSkge1xuICAgICAgICB0aGlzLl9ib2R5QXJyYXlCdWZmZXIgPSBidWZmZXJDbG9uZShib2R5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCBCb2R5SW5pdCB0eXBlJylcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKSkge1xuICAgICAgICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW47Y2hhcnNldD1VVEYtOCcpXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUJsb2IgJiYgdGhpcy5fYm9keUJsb2IudHlwZSkge1xuICAgICAgICAgIHRoaXMuaGVhZGVycy5zZXQoJ2NvbnRlbnQtdHlwZScsIHRoaXMuX2JvZHlCbG9iLnR5cGUpXG4gICAgICAgIH0gZWxzZSBpZiAoc3VwcG9ydC5zZWFyY2hQYXJhbXMgJiYgVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGJvZHkpKSB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJzLnNldCgnY29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04JylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdXBwb3J0LmJsb2IpIHtcbiAgICAgIHRoaXMuYmxvYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgICAgICBpZiAocmVqZWN0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0ZWRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9ib2R5QmxvYikge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSkpXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUZvcm1EYXRhKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhZCBGb3JtRGF0YSBib2R5IGFzIGJsb2InKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmV3IEJsb2IoW3RoaXMuX2JvZHlUZXh0XSkpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5hcnJheUJ1ZmZlciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5fYm9keUFycmF5QnVmZmVyKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbnN1bWVkKHRoaXMpIHx8IFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxvYigpLnRoZW4ocmVhZEJsb2JBc0FycmF5QnVmZmVyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0ID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgcmVqZWN0ZWQgPSBjb25zdW1lZCh0aGlzKVxuICAgICAgaWYgKHJlamVjdGVkKSB7XG4gICAgICAgIHJldHVybiByZWplY3RlZFxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5fYm9keUJsb2IpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRCbG9iQXNUZXh0KHRoaXMuX2JvZHlCbG9iKVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZWFkQXJyYXlCdWZmZXJBc1RleHQodGhpcy5fYm9keUFycmF5QnVmZmVyKSlcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYm9keUZvcm1EYXRhKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0JylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keVRleHQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnQuZm9ybURhdGEpIHtcbiAgICAgIHRoaXMuZm9ybURhdGEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oZGVjb2RlKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuanNvbiA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oSlNPTi5wYXJzZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gSFRUUCBtZXRob2RzIHdob3NlIGNhcGl0YWxpemF0aW9uIHNob3VsZCBiZSBub3JtYWxpemVkXG4gIHZhciBtZXRob2RzID0gWydERUxFVEUnLCAnR0VUJywgJ0hFQUQnLCAnT1BUSU9OUycsICdQT1NUJywgJ1BVVCddXG5cbiAgZnVuY3Rpb24gbm9ybWFsaXplTWV0aG9kKG1ldGhvZCkge1xuICAgIHZhciB1cGNhc2VkID0gbWV0aG9kLnRvVXBwZXJDYXNlKClcbiAgICByZXR1cm4gKG1ldGhvZHMuaW5kZXhPZih1cGNhc2VkKSA+IC0xKSA/IHVwY2FzZWQgOiBtZXRob2RcbiAgfVxuXG4gIGZ1bmN0aW9uIFJlcXVlc3QoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fVxuICAgIHZhciBib2R5ID0gb3B0aW9ucy5ib2R5XG5cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBSZXF1ZXN0KSB7XG4gICAgICBpZiAoaW5wdXQuYm9keVVzZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQWxyZWFkeSByZWFkJylcbiAgICAgIH1cbiAgICAgIHRoaXMudXJsID0gaW5wdXQudXJsXG4gICAgICB0aGlzLmNyZWRlbnRpYWxzID0gaW5wdXQuY3JlZGVudGlhbHNcbiAgICAgIGlmICghb3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IG5ldyBIZWFkZXJzKGlucHV0LmhlYWRlcnMpXG4gICAgICB9XG4gICAgICB0aGlzLm1ldGhvZCA9IGlucHV0Lm1ldGhvZFxuICAgICAgdGhpcy5tb2RlID0gaW5wdXQubW9kZVxuICAgICAgaWYgKCFib2R5ICYmIGlucHV0Ll9ib2R5SW5pdCAhPSBudWxsKSB7XG4gICAgICAgIGJvZHkgPSBpbnB1dC5fYm9keUluaXRcbiAgICAgICAgaW5wdXQuYm9keVVzZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXJsID0gU3RyaW5nKGlucHV0KVxuICAgIH1cblxuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzIHx8IHRoaXMuY3JlZGVudGlhbHMgfHwgJ29taXQnXG4gICAgaWYgKG9wdGlvbnMuaGVhZGVycyB8fCAhdGhpcy5oZWFkZXJzKSB7XG4gICAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSGVhZGVycyhvcHRpb25zLmhlYWRlcnMpXG4gICAgfVxuICAgIHRoaXMubWV0aG9kID0gbm9ybWFsaXplTWV0aG9kKG9wdGlvbnMubWV0aG9kIHx8IHRoaXMubWV0aG9kIHx8ICdHRVQnKVxuICAgIHRoaXMubW9kZSA9IG9wdGlvbnMubW9kZSB8fCB0aGlzLm1vZGUgfHwgbnVsbFxuICAgIHRoaXMucmVmZXJyZXIgPSBudWxsXG5cbiAgICBpZiAoKHRoaXMubWV0aG9kID09PSAnR0VUJyB8fCB0aGlzLm1ldGhvZCA9PT0gJ0hFQUQnKSAmJiBib2R5KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdCb2R5IG5vdCBhbGxvd2VkIGZvciBHRVQgb3IgSEVBRCByZXF1ZXN0cycpXG4gICAgfVxuICAgIHRoaXMuX2luaXRCb2R5KGJvZHkpXG4gIH1cblxuICBSZXF1ZXN0LnByb3RvdHlwZS5jbG9uZSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCh0aGlzLCB7IGJvZHk6IHRoaXMuX2JvZHlJbml0IH0pXG4gIH1cblxuICBmdW5jdGlvbiBkZWNvZGUoYm9keSkge1xuICAgIHZhciBmb3JtID0gbmV3IEZvcm1EYXRhKClcbiAgICBib2R5LnRyaW0oKS5zcGxpdCgnJicpLmZvckVhY2goZnVuY3Rpb24oYnl0ZXMpIHtcbiAgICAgIGlmIChieXRlcykge1xuICAgICAgICB2YXIgc3BsaXQgPSBieXRlcy5zcGxpdCgnPScpXG4gICAgICAgIHZhciBuYW1lID0gc3BsaXQuc2hpZnQoKS5yZXBsYWNlKC9cXCsvZywgJyAnKVxuICAgICAgICB2YXIgdmFsdWUgPSBzcGxpdC5qb2luKCc9JykucmVwbGFjZSgvXFwrL2csICcgJylcbiAgICAgICAgZm9ybS5hcHBlbmQoZGVjb2RlVVJJQ29tcG9uZW50KG5hbWUpLCBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpKVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGZvcm1cbiAgfVxuXG4gIGZ1bmN0aW9uIHBhcnNlSGVhZGVycyhyYXdIZWFkZXJzKSB7XG4gICAgdmFyIGhlYWRlcnMgPSBuZXcgSGVhZGVycygpXG4gICAgcmF3SGVhZGVycy5zcGxpdCgvXFxyP1xcbi8pLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgICAgdmFyIHBhcnRzID0gbGluZS5zcGxpdCgnOicpXG4gICAgICB2YXIga2V5ID0gcGFydHMuc2hpZnQoKS50cmltKClcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gcGFydHMuam9pbignOicpLnRyaW0oKVxuICAgICAgICBoZWFkZXJzLmFwcGVuZChrZXksIHZhbHVlKVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIGhlYWRlcnNcbiAgfVxuXG4gIEJvZHkuY2FsbChSZXF1ZXN0LnByb3RvdHlwZSlcblxuICBmdW5jdGlvbiBSZXNwb25zZShib2R5SW5pdCwgb3B0aW9ucykge1xuICAgIGlmICghb3B0aW9ucykge1xuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgfVxuXG4gICAgdGhpcy50eXBlID0gJ2RlZmF1bHQnXG4gICAgdGhpcy5zdGF0dXMgPSAnc3RhdHVzJyBpbiBvcHRpb25zID8gb3B0aW9ucy5zdGF0dXMgOiAyMDBcbiAgICB0aGlzLm9rID0gdGhpcy5zdGF0dXMgPj0gMjAwICYmIHRoaXMuc3RhdHVzIDwgMzAwXG4gICAgdGhpcy5zdGF0dXNUZXh0ID0gJ3N0YXR1c1RleHQnIGluIG9wdGlvbnMgPyBvcHRpb25zLnN0YXR1c1RleHQgOiAnT0snXG4gICAgdGhpcy5oZWFkZXJzID0gbmV3IEhlYWRlcnMob3B0aW9ucy5oZWFkZXJzKVxuICAgIHRoaXMudXJsID0gb3B0aW9ucy51cmwgfHwgJydcbiAgICB0aGlzLl9pbml0Qm9keShib2R5SW5pdClcbiAgfVxuXG4gIEJvZHkuY2FsbChSZXNwb25zZS5wcm90b3R5cGUpXG5cbiAgUmVzcG9uc2UucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZSh0aGlzLl9ib2R5SW5pdCwge1xuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIHN0YXR1c1RleHQ6IHRoaXMuc3RhdHVzVGV4dCxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICB1cmw6IHRoaXMudXJsXG4gICAgfSlcbiAgfVxuXG4gIFJlc3BvbnNlLmVycm9yID0gZnVuY3Rpb24oKSB7XG4gICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDAsIHN0YXR1c1RleHQ6ICcnfSlcbiAgICByZXNwb25zZS50eXBlID0gJ2Vycm9yJ1xuICAgIHJldHVybiByZXNwb25zZVxuICB9XG5cbiAgdmFyIHJlZGlyZWN0U3RhdHVzZXMgPSBbMzAxLCAzMDIsIDMwMywgMzA3LCAzMDhdXG5cbiAgUmVzcG9uc2UucmVkaXJlY3QgPSBmdW5jdGlvbih1cmwsIHN0YXR1cykge1xuICAgIGlmIChyZWRpcmVjdFN0YXR1c2VzLmluZGV4T2Yoc3RhdHVzKSA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbnZhbGlkIHN0YXR1cyBjb2RlJylcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IHN0YXR1cywgaGVhZGVyczoge2xvY2F0aW9uOiB1cmx9fSlcbiAgfVxuXG4gIHNlbGYuSGVhZGVycyA9IEhlYWRlcnNcbiAgc2VsZi5SZXF1ZXN0ID0gUmVxdWVzdFxuICBzZWxmLlJlc3BvbnNlID0gUmVzcG9uc2VcblxuICBzZWxmLmZldGNoID0gZnVuY3Rpb24oaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGlucHV0LCBpbml0KVxuICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpXG5cbiAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgICAgc3RhdHVzOiB4aHIuc3RhdHVzLFxuICAgICAgICAgIHN0YXR1c1RleHQ6IHhoci5zdGF0dXNUZXh0LFxuICAgICAgICAgIGhlYWRlcnM6IHBhcnNlSGVhZGVycyh4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgfHwgJycpXG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy51cmwgPSAncmVzcG9uc2VVUkwnIGluIHhociA/IHhoci5yZXNwb25zZVVSTCA6IG9wdGlvbnMuaGVhZGVycy5nZXQoJ1gtUmVxdWVzdC1VUkwnKVxuICAgICAgICB2YXIgYm9keSA9ICdyZXNwb25zZScgaW4geGhyID8geGhyLnJlc3BvbnNlIDogeGhyLnJlc3BvbnNlVGV4dFxuICAgICAgICByZXNvbHZlKG5ldyBSZXNwb25zZShib2R5LCBvcHRpb25zKSlcbiAgICAgIH1cblxuICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ05ldHdvcmsgcmVxdWVzdCBmYWlsZWQnKSlcbiAgICAgIH1cblxuICAgICAgeGhyLm9udGltZW91dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZWplY3QobmV3IFR5cGVFcnJvcignTmV0d29yayByZXF1ZXN0IGZhaWxlZCcpKVxuICAgICAgfVxuXG4gICAgICB4aHIub3BlbihyZXF1ZXN0Lm1ldGhvZCwgcmVxdWVzdC51cmwsIHRydWUpXG5cbiAgICAgIGlmIChyZXF1ZXN0LmNyZWRlbnRpYWxzID09PSAnaW5jbHVkZScpIHtcbiAgICAgICAgeGhyLndpdGhDcmVkZW50aWFscyA9IHRydWVcbiAgICAgIH1cblxuICAgICAgaWYgKCdyZXNwb25zZVR5cGUnIGluIHhociAmJiBzdXBwb3J0LmJsb2IpIHtcbiAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJ1xuICAgICAgfVxuXG4gICAgICByZXF1ZXN0LmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSwgbmFtZSkge1xuICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcihuYW1lLCB2YWx1ZSlcbiAgICAgIH0pXG5cbiAgICAgIHhoci5zZW5kKHR5cGVvZiByZXF1ZXN0Ll9ib2R5SW5pdCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogcmVxdWVzdC5fYm9keUluaXQpXG4gICAgfSlcbiAgfVxuICBzZWxmLmZldGNoLnBvbHlmaWxsID0gdHJ1ZVxufSkodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnID8gc2VsZiA6IHRoaXMpO1xuIiwiLy8gcmVtb3ZlZCBieSBleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9
|
vendor/otgs/installer/includes/class-installer-dependencies.php
ADDED
@@ -0,0 +1,291 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Installer_Dependencies {
|
4 |
+
|
5 |
+
private $uploading_allowed = null;
|
6 |
+
private $is_win_paths_exception = array();
|
7 |
+
|
8 |
+
|
9 |
+
function __construct() {
|
10 |
+
|
11 |
+
add_action( 'admin_init', array( $this, 'prevent_plugins_update_on_plugins_page' ), 100 );
|
12 |
+
|
13 |
+
|
14 |
+
global $pagenow;
|
15 |
+
if ( $pagenow == 'update.php' ) {
|
16 |
+
if ( isset( $_GET['action'] ) && $_GET['action'] == 'update-selected' ) {
|
17 |
+
add_action( 'admin_head', array(
|
18 |
+
$this,
|
19 |
+
'prevent_plugins_update_on_updates_screen'
|
20 |
+
) ); //iframe/bulk
|
21 |
+
} else {
|
22 |
+
add_action( 'all_admin_notices', array(
|
23 |
+
$this,
|
24 |
+
'prevent_plugins_update_on_updates_screen'
|
25 |
+
) ); //regular/singular
|
26 |
+
}
|
27 |
+
}
|
28 |
+
add_action( 'wp_ajax_update-plugin', array(
|
29 |
+
$this,
|
30 |
+
'prevent_plugins_update_on_updates_screen'
|
31 |
+
), 0 ); // high priority, before WP
|
32 |
+
|
33 |
+
}
|
34 |
+
|
35 |
+
public function is_win_paths_exception( $repository_id ) {
|
36 |
+
|
37 |
+
if ( ! isset( $this->is_win_paths_exception[ $repository_id ] ) ) {
|
38 |
+
|
39 |
+
$this->is_win_paths_exception[ $repository_id ] = false;
|
40 |
+
|
41 |
+
if ( strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN' ) {
|
42 |
+
|
43 |
+
$windows_max_path_length = 256;
|
44 |
+
$longest_path['wpml'] = 109;
|
45 |
+
$longest_path['toolset'] = 99;
|
46 |
+
|
47 |
+
$margin = 15;
|
48 |
+
|
49 |
+
$upgrade_path_length = strlen( WP_CONTENT_DIR . '/upgrade' );
|
50 |
+
|
51 |
+
$installer_settings = WP_Installer()->settings;
|
52 |
+
|
53 |
+
if ( isset($installer_settings['repositories'][$repository_id]['data']) && is_array( $installer_settings['repositories'][$repository_id]['data']['downloads']['plugins'] ) ) {
|
54 |
+
$a_plugin = current( $installer_settings['repositories'][$repository_id]['data']['downloads']['plugins'] );
|
55 |
+
$url = WP_Installer()->append_site_key_to_download_url( $a_plugin['url'], 'xxxxxx', $repository_id );
|
56 |
+
$tmpfname = wp_tempnam( $url );
|
57 |
+
|
58 |
+
$tmpname_length = strlen( basename( $tmpfname ) ) - 4; // -.tmp
|
59 |
+
|
60 |
+
if ( $upgrade_path_length + $tmpname_length + $longest_path[ $repository_id ] + $margin > $windows_max_path_length ) {
|
61 |
+
|
62 |
+
$this->is_win_paths_exception[ $repository_id ] = true;
|
63 |
+
|
64 |
+
}
|
65 |
+
|
66 |
+
}
|
67 |
+
|
68 |
+
|
69 |
+
}
|
70 |
+
|
71 |
+
}
|
72 |
+
|
73 |
+
return $this->is_win_paths_exception[ $repository_id ];
|
74 |
+
|
75 |
+
}
|
76 |
+
|
77 |
+
public function is_uploading_allowed() {
|
78 |
+
|
79 |
+
if ( ! isset( $this->uploading_allowed ) ) {
|
80 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
81 |
+
require_once WP_Installer()->plugin_path() . '/includes/class-installer-upgrader-skins.php';
|
82 |
+
|
83 |
+
$upgrader_skins = new Installer_Upgrader_Skins(); //use our custom (mute) Skin
|
84 |
+
$upgrader = new Plugin_Upgrader( $upgrader_skins );
|
85 |
+
|
86 |
+
ob_start();
|
87 |
+
$res = $upgrader->fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) );
|
88 |
+
ob_end_clean();
|
89 |
+
|
90 |
+
if ( ! $res || is_wp_error( $res ) ) {
|
91 |
+
$this->uploading_allowed = false;
|
92 |
+
} else {
|
93 |
+
$this->uploading_allowed = true;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
return $this->uploading_allowed;
|
98 |
+
|
99 |
+
}
|
100 |
+
|
101 |
+
public function cant_download( $repository_id ) {
|
102 |
+
|
103 |
+
return ! $this->is_uploading_allowed() || $this->is_win_paths_exception( $repository_id );
|
104 |
+
|
105 |
+
}
|
106 |
+
|
107 |
+
public function win_paths_exception_message() {
|
108 |
+
return __( 'Downloading is not possible. WordPress cannot create required folders because of the
|
109 |
+
256 characters limitation of the current Windows environment.', 'installer' );
|
110 |
+
}
|
111 |
+
|
112 |
+
public function prevent_plugins_update_on_plugins_page() {
|
113 |
+
|
114 |
+
$plugins = get_site_transient( 'update_plugins' );
|
115 |
+
if ( isset( $plugins->response ) && is_array( $plugins->response ) ) {
|
116 |
+
$plugins_with_updates = array_keys( $plugins->response );
|
117 |
+
}
|
118 |
+
|
119 |
+
if ( ! empty( $plugins_with_updates ) ) {
|
120 |
+
|
121 |
+
$plugins = get_plugins();
|
122 |
+
|
123 |
+
$installer_settings = WP_Installer()->settings;
|
124 |
+
if ( isset( $installer_settings['repositories'] ) ) {
|
125 |
+
foreach ( $installer_settings['repositories'] as $repository_id => $repository ) {
|
126 |
+
|
127 |
+
if ( $this->is_win_paths_exception( $repository_id ) ) {
|
128 |
+
|
129 |
+
$repositories_plugins = array();
|
130 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
131 |
+
foreach ( $package['products'] as $product ) {
|
132 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
133 |
+
$download = $installer_settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
134 |
+
if ( empty( $download['free-on-wporg'] ) ) {
|
135 |
+
$repositories_plugins[ $download['slug'] ] = $download['name'];
|
136 |
+
}
|
137 |
+
}
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
142 |
+
|
143 |
+
if ( in_array( $plugin_id, $plugins_with_updates ) ) {
|
144 |
+
|
145 |
+
$wp_plugin_slug = dirname( $plugin_id );
|
146 |
+
if ( empty( $wp_plugin_slug ) ) {
|
147 |
+
$wp_plugin_slug = basename( $plugin_id, '.php' );
|
148 |
+
}
|
149 |
+
|
150 |
+
foreach ( $repositories_plugins as $slug => $name ) {
|
151 |
+
if ( $wp_plugin_slug == $slug || $name == $plugin['Name'] || $name == $plugin['Title'] ) { //match order: slug, name, title
|
152 |
+
|
153 |
+
remove_action( "after_plugin_row_$plugin_id", 'wp_plugin_update_row', 10, 2 );
|
154 |
+
add_action( "after_plugin_row_$plugin_id", array(
|
155 |
+
$this,
|
156 |
+
'wp_plugin_update_row_win_exception',
|
157 |
+
), 10, 2 );
|
158 |
+
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
}
|
163 |
+
|
164 |
+
}
|
165 |
+
|
166 |
+
}
|
167 |
+
|
168 |
+
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
}
|
173 |
+
|
174 |
+
}
|
175 |
+
|
176 |
+
public function wp_plugin_update_row_win_exception() {
|
177 |
+
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
178 |
+
echo '<tr class="plugin-update-tr">';
|
179 |
+
echo '<td class="plugin-update colspanchange" colspan="' . esc_attr( $wp_list_table->get_column_count() ) .
|
180 |
+
'"><div class="update-message">' . $this->win_paths_exception_message() . '</div></td>';
|
181 |
+
echo '</tr>';
|
182 |
+
}
|
183 |
+
|
184 |
+
public function prevent_plugins_update_on_updates_screen() {
|
185 |
+
|
186 |
+
if ( isset( $_REQUEST['action'] ) ) {
|
187 |
+
|
188 |
+
$action = isset( $_REQUEST['action'] ) ? sanitize_text_field( $_REQUEST['action'] ) : '';
|
189 |
+
|
190 |
+
$installer_settings = WP_Installer()->settings;
|
191 |
+
|
192 |
+
//bulk mode
|
193 |
+
if ( 'update-selected' == $action ) {
|
194 |
+
|
195 |
+
global $plugins;
|
196 |
+
|
197 |
+
if ( isset( $plugins ) && is_array( $plugins ) ) {
|
198 |
+
|
199 |
+
foreach ( $plugins as $k => $plugin ) {
|
200 |
+
|
201 |
+
$wp_plugin_slug = dirname( $plugin );
|
202 |
+
|
203 |
+
foreach ( $installer_settings['repositories'] as $repository_id => $repository ) {
|
204 |
+
|
205 |
+
if ( $this->is_win_paths_exception( $repository_id ) ) {
|
206 |
+
|
207 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
208 |
+
|
209 |
+
foreach ( $package['products'] as $product ) {
|
210 |
+
|
211 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
212 |
+
|
213 |
+
$download = $installer_settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
214 |
+
|
215 |
+
if ( $download['slug'] == $wp_plugin_slug && empty( $download['free-on-wporg'] ) ) {
|
216 |
+
|
217 |
+
echo '<div class="updated error"><p>' . $this->win_paths_exception_message() .
|
218 |
+
' <strong>(' . $download['name'] . ')</strong>' . '</p></div>';
|
219 |
+
unset( $plugins[ $k ] );
|
220 |
+
|
221 |
+
break( 3 );
|
222 |
+
|
223 |
+
}
|
224 |
+
|
225 |
+
}
|
226 |
+
|
227 |
+
}
|
228 |
+
|
229 |
+
}
|
230 |
+
|
231 |
+
|
232 |
+
}
|
233 |
+
|
234 |
+
}
|
235 |
+
|
236 |
+
}
|
237 |
+
|
238 |
+
}
|
239 |
+
|
240 |
+
}
|
241 |
+
|
242 |
+
|
243 |
+
if ( 'upgrade-plugin' == $action || 'update-plugin' == $action ) {
|
244 |
+
|
245 |
+
$plugin = isset( $_REQUEST['plugin'] ) ? trim( sanitize_text_field( $_REQUEST['plugin'] ) ) : '';
|
246 |
+
|
247 |
+
$wp_plugin_slug = dirname( $plugin );
|
248 |
+
|
249 |
+
foreach ( $installer_settings['repositories'] as $repository_id => $repository ) {
|
250 |
+
|
251 |
+
if ( $this->is_win_paths_exception( $repository_id ) ) {
|
252 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
253 |
+
|
254 |
+
foreach ( $package['products'] as $product ) {
|
255 |
+
|
256 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
257 |
+
$download = $installer_settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
258 |
+
|
259 |
+
//match by folder, will change to match by name and folder
|
260 |
+
if ( $download['slug'] == $wp_plugin_slug && empty ( $download['free-on-wporg'] ) ) {
|
261 |
+
|
262 |
+
echo '<div class="updated error"><p>' . $this->win_paths_exception_message() . '</p></div>';
|
263 |
+
|
264 |
+
echo '<div class="wrap">';
|
265 |
+
echo '<h2>' . __( 'Update Plugin' ) . '</h2>';
|
266 |
+
echo '<a href="' . admin_url( 'update-core.php' ) . '">' . __( 'Return to the updates page', 'installer' ) . '</a>';
|
267 |
+
echo '</div>';
|
268 |
+
require_once( ABSPATH . 'wp-admin/admin-footer.php' );
|
269 |
+
exit;
|
270 |
+
|
271 |
+
}
|
272 |
+
|
273 |
+
}
|
274 |
+
|
275 |
+
}
|
276 |
+
|
277 |
+
}
|
278 |
+
}
|
279 |
+
|
280 |
+
}
|
281 |
+
|
282 |
+
}
|
283 |
+
}
|
284 |
+
|
285 |
+
}
|
286 |
+
|
287 |
+
|
288 |
+
}
|
289 |
+
|
290 |
+
|
291 |
+
|
vendor/otgs/installer/includes/class-installer-theme.php
ADDED
@@ -0,0 +1,979 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Installer Class for Theme Support
|
4 |
+
*
|
5 |
+
* Supports automatic updates and installation of Toolset/WPML Themes
|
6 |
+
*
|
7 |
+
* @class Installer_Theme_Class
|
8 |
+
* @version 1.6
|
9 |
+
* @category Class
|
10 |
+
* @author OnTheGoSystems
|
11 |
+
*/
|
12 |
+
|
13 |
+
if ( !defined( 'ABSPATH' ) ) {
|
14 |
+
exit;
|
15 |
+
}
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Installer_Theme_Class
|
19 |
+
*/
|
20 |
+
class Installer_Theme_Class {
|
21 |
+
|
22 |
+
/** Theme Repository */
|
23 |
+
private $theme_repo;
|
24 |
+
|
25 |
+
/** Repository API */
|
26 |
+
private $repository_api;
|
27 |
+
|
28 |
+
/** Repository Theme Products */
|
29 |
+
private $repository_theme_products;
|
30 |
+
|
31 |
+
/** Site URL */
|
32 |
+
private $installer_site_url;
|
33 |
+
|
34 |
+
/** Site Key */
|
35 |
+
private $installer_site_key;
|
36 |
+
|
37 |
+
/** The Themes Option */
|
38 |
+
protected $installer_themes_option;
|
39 |
+
|
40 |
+
/** Update settings */
|
41 |
+
protected $installer_themes_available_updates;
|
42 |
+
|
43 |
+
/** The Themes */
|
44 |
+
protected $installer_themes = array();
|
45 |
+
|
46 |
+
/** Repository with themes */
|
47 |
+
protected $installer_repo_with_themes;
|
48 |
+
|
49 |
+
/** Active tab */
|
50 |
+
protected $installer_theme_active_tab;
|
51 |
+
|
52 |
+
/** Theme user registration */
|
53 |
+
protected $theme_user_registration;
|
54 |
+
|
55 |
+
/** Client active subscription */
|
56 |
+
protected $installer_theme_subscription_type;
|
57 |
+
|
58 |
+
public function __construct() {
|
59 |
+
|
60 |
+
/** Properties */
|
61 |
+
|
62 |
+
//Get installer repositories
|
63 |
+
$installer_repositories = WP_Installer()->get_repositories();
|
64 |
+
|
65 |
+
//Get repos with themes
|
66 |
+
$repos_with_themes = $this->installer_theme_reposities_that_has_themes( $installer_repositories );
|
67 |
+
|
68 |
+
if ( is_array( $repos_with_themes ) ) {
|
69 |
+
//Assign to property
|
70 |
+
$this->installer_repo_with_themes = $repos_with_themes;
|
71 |
+
|
72 |
+
//Let's looped through repos with themes
|
73 |
+
foreach ( $repos_with_themes as $k => $repo ) {
|
74 |
+
|
75 |
+
//$repo could be 'toolset' or 'wpml'
|
76 |
+
//Assign each repo with theme to property
|
77 |
+
$this->theme_repo[] = $repo;
|
78 |
+
|
79 |
+
if ( (isset($installer_repositories[$repo]['api-url'])) && (isset($installer_repositories[$repo]['products'])) ) {
|
80 |
+
|
81 |
+
//Define the rest of the properties based on the given repo
|
82 |
+
$this->repository_api[$repo] = $installer_repositories[$repo]['api-url'];
|
83 |
+
$this->repository_theme_products[$repo] = $installer_repositories[$repo]['products'];
|
84 |
+
$this->installer_site_url[$repo] = WP_Installer()->get_installer_site_url( $repo );
|
85 |
+
$this->installer_site_key[$repo] = WP_Installer()->get_site_key( $repo );
|
86 |
+
$this->theme_user_registration[$repo] = false;
|
87 |
+
|
88 |
+
if ( WP_Installer()->repository_has_valid_subscription( $repo ) ) {
|
89 |
+
|
90 |
+
$this->installer_theme_subscription_type = WP_Installer()->get_subscription_type_for_repository( $repo );
|
91 |
+
$this->installer_themes_option[$repo] = 'wp_installer_' . $repo . '_themes';
|
92 |
+
$this->installer_themes_available_updates[$repo] = 'wp_installer_' . $repo . '_updated_themes';
|
93 |
+
$this->installer_theme_active_tab = '';
|
94 |
+
|
95 |
+
//We only set themes available to this validated subscription
|
96 |
+
$this->installer_theme_available( $repo, $this->installer_theme_subscription_type );
|
97 |
+
|
98 |
+
add_action( 'installer_themes_support_set_up', array($this, 'installer_theme_sets_active_tab_on_init'), 10 );
|
99 |
+
$this->theme_user_registration[$repo] = true;
|
100 |
+
}
|
101 |
+
|
102 |
+
/** We are ready.. let's initialize .... */
|
103 |
+
$this->init();
|
104 |
+
}
|
105 |
+
}
|
106 |
+
add_action( 'installer_themes_support_set_up', array($this, 'installer_theme_loaded_hooks') );
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
/** Init */
|
111 |
+
public function init() {
|
112 |
+
add_action( 'admin_enqueue_scripts', array($this, 'installer_theme_enqueue_scripts') );
|
113 |
+
add_filter( 'themes_api', array($this, 'installer_theme_api_override'), 10, 3 );
|
114 |
+
add_filter( 'themes_api_result', array($this, 'installer_theme_api_override_response'), 10, 3 );
|
115 |
+
add_filter( 'site_transient_update_themes', array($this, 'installer_theme_upgrade_check'), 10, 1 );
|
116 |
+
add_action( 'http_api_debug', array($this, 'installer_theme_sync_native_wp_api'), 10, 5 );
|
117 |
+
add_filter( 'installer_theme_hook_response_theme', array($this, 'installer_theme_add_num_ratings'), 10, 1 );
|
118 |
+
add_filter( 'themes_update_check_locales', array($this, 'installer_theme_sync_call_wp_theme_api'), 10, 1 );
|
119 |
+
add_filter( 'admin_url', array($this, 'installer_theme_add_query_arg_tab'), 10, 3 );
|
120 |
+
add_filter( 'network_admin_url', array($this, 'installer_theme_add_query_arg_tab'), 10, 2 );
|
121 |
+
add_action( 'wp_ajax_installer_theme_frontend_selected_tab', array($this, 'installer_theme_frontend_selected_tab'), 0 );
|
122 |
+
add_action( 'wp_loaded', array($this, 'installer_themes_support_set_up_func') );
|
123 |
+
}
|
124 |
+
|
125 |
+
/** Enqueue scripts */
|
126 |
+
public function installer_theme_enqueue_scripts() {
|
127 |
+
$current_screen = $this->installer_theme_current_screen();
|
128 |
+
$commercial_plugin_screen = $this->installer_theme_is_commercial_plugin_screen( $current_screen );
|
129 |
+
if ( ('theme-install' == $current_screen) || ($commercial_plugin_screen) || ('theme-install-network' == $current_screen) ) {
|
130 |
+
$repo_with_themes = $this->installer_repo_with_themes;
|
131 |
+
$js_array = array();
|
132 |
+
if ( is_array( $repo_with_themes ) ) {
|
133 |
+
foreach ( $repo_with_themes as $k => $v ) {
|
134 |
+
|
135 |
+
//Hyperlink text
|
136 |
+
$theme_repo_name = $this->installer_theme_get_repo_product_name( $v );
|
137 |
+
$the_hyperlink_text = esc_js( $theme_repo_name );
|
138 |
+
|
139 |
+
if ( is_multisite() ) {
|
140 |
+
$admin_url_passed = network_admin_url();
|
141 |
+
} else {
|
142 |
+
$admin_url_passed = admin_url();
|
143 |
+
}
|
144 |
+
|
145 |
+
//Define
|
146 |
+
$js_array[$v] = array(
|
147 |
+
'the_hyperlink_text' => $the_hyperlink_text,
|
148 |
+
'registration_status' => $this->theme_user_registration[$v],
|
149 |
+
'is_commercial_plugin_tab' => $commercial_plugin_screen,
|
150 |
+
'registration_url' => $admin_url_passed . 'plugin-install.php?tab=commercial#installer_repo_' . $v
|
151 |
+
);
|
152 |
+
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
if ( !(empty($js_array)) ) {
|
157 |
+
wp_enqueue_script( 'installer-theme-install', WP_Installer()->res_url() . '/res/js/installer_theme_install.js', array('jquery', 'installer-admin'), WP_Installer()->version() );
|
158 |
+
$installer_ajax_url = admin_url( 'admin-ajax.php' );
|
159 |
+
|
160 |
+
if ( is_ssl() ) {
|
161 |
+
$installer_ajax_url = str_replace( 'http://', 'https://', $installer_ajax_url );
|
162 |
+
} else {
|
163 |
+
$installer_ajax_url = str_replace( 'https://', 'http://', $installer_ajax_url );
|
164 |
+
}
|
165 |
+
|
166 |
+
//Case where user is subscribed to a subscription that does not have themes
|
167 |
+
$subscription_js_check = $this->installer_theme_subscription_does_not_have_theme( $js_array );
|
168 |
+
|
169 |
+
wp_localize_script( 'installer-theme-install', 'installer_theme_install_localize',
|
170 |
+
array(
|
171 |
+
'js_array_installer' => $js_array,
|
172 |
+
'ajaxurl' => $installer_ajax_url,
|
173 |
+
'no_associated_themes' => $subscription_js_check,
|
174 |
+
'installer_theme_frontend_selected_tab_nonce' => wp_create_nonce( 'installer_theme_frontend_selected_tab' )
|
175 |
+
)
|
176 |
+
);
|
177 |
+
}
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
/** Case where user is subscribed to a subscription that does not have themes */
|
182 |
+
protected function installer_theme_subscription_does_not_have_theme( $js_array ) {
|
183 |
+
|
184 |
+
$any_subscription_has_theme = array();
|
185 |
+
$number_of_registrations = array();
|
186 |
+
|
187 |
+
//Step1, we looped through JS array
|
188 |
+
foreach ( $js_array as $repo_slug => $js_details ) {
|
189 |
+
|
190 |
+
//Step2, checked if user is registered
|
191 |
+
if ( isset($this->theme_user_registration[$repo_slug]) ) {
|
192 |
+
$registration_status = $this->theme_user_registration[$repo_slug];
|
193 |
+
if ( $registration_status ) {
|
194 |
+
|
195 |
+
//Registered
|
196 |
+
$number_of_registrations[] = $repo_slug;
|
197 |
+
|
198 |
+
//Step3, we checked if the $repo_slug has available theme
|
199 |
+
$themes_available = false;
|
200 |
+
if ( isset($this->installer_themes[$repo_slug]) ) {
|
201 |
+
$themes_available = $this->installer_themes[$repo_slug];
|
202 |
+
if ( !(empty($themes_available)) ) {
|
203 |
+
//This subscription has theme
|
204 |
+
$themes_available = true;
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
if ( $themes_available ) {
|
209 |
+
$any_subscription_has_theme[] = $repo_slug;
|
210 |
+
}
|
211 |
+
}
|
212 |
+
}
|
213 |
+
|
214 |
+
}
|
215 |
+
|
216 |
+
//Step4, we are done looping, check if there are any repos that have themes
|
217 |
+
if ( empty($registration_status) ) {
|
218 |
+
|
219 |
+
//No registration on any repos
|
220 |
+
return FALSE;
|
221 |
+
|
222 |
+
} elseif ( !(empty($registration_status)) ) {
|
223 |
+
|
224 |
+
//Has some registration on some repos
|
225 |
+
//We then checked if this user has any active subscriptions
|
226 |
+
if ( empty($any_subscription_has_theme) ) {
|
227 |
+
//No subscription
|
228 |
+
return TRUE;
|
229 |
+
} else {
|
230 |
+
//Has subscription found
|
231 |
+
return FALSE;
|
232 |
+
}
|
233 |
+
}
|
234 |
+
}
|
235 |
+
|
236 |
+
/** Check if its the commercial plugin screen */
|
237 |
+
private function installer_theme_is_commercial_plugin_screen( $current_screen ) {
|
238 |
+
$commercial = false;
|
239 |
+
if ( ('plugin-install' == $current_screen) || ('plugin-install-network' == $current_screen) ) {
|
240 |
+
if ( isset($_GET['tab']) ) {
|
241 |
+
$tab = sanitize_text_field( $_GET['tab'] );
|
242 |
+
if ( 'commercial' == $tab ) {
|
243 |
+
$commercial = true;
|
244 |
+
}
|
245 |
+
}
|
246 |
+
}
|
247 |
+
return $commercial;
|
248 |
+
}
|
249 |
+
|
250 |
+
/** Current screen */
|
251 |
+
private function installer_theme_current_screen() {
|
252 |
+
|
253 |
+
$current_screen_loaded = false;
|
254 |
+
|
255 |
+
if ( function_exists( 'get_current_screen' ) ) {
|
256 |
+
|
257 |
+
$screen_output = get_current_screen();
|
258 |
+
$current_screen_loaded = $screen_output->id;
|
259 |
+
|
260 |
+
}
|
261 |
+
|
262 |
+
return $current_screen_loaded;
|
263 |
+
|
264 |
+
}
|
265 |
+
|
266 |
+
/** Override WordPress Themes API */
|
267 |
+
public function installer_theme_api_override( $api_boolean, $action, $args ) {
|
268 |
+
|
269 |
+
//Let's checked if user is browsing our themes
|
270 |
+
if ( isset($args->browse) ) {
|
271 |
+
$browse = $args->browse;
|
272 |
+
if ( in_array( $browse, $this->theme_repo ) ) {
|
273 |
+
//Uniquely validated for our Themes
|
274 |
+
if ( 'query_themes' == $action ) {
|
275 |
+
//User is querying or asking information about our themes, let's override
|
276 |
+
$api_boolean = true;
|
277 |
+
}
|
278 |
+
}
|
279 |
+
} elseif ( isset($args->slug) ) {
|
280 |
+
//We are installing our themes
|
281 |
+
$theme_to_install = $args->slug;
|
282 |
+
|
283 |
+
//Lets uniquely validate if this belongs to us
|
284 |
+
//Check if this is OTGS theme
|
285 |
+
$validate_check = $this->installer_themes_belong_to_us( $theme_to_install );
|
286 |
+
if ( $validate_check ) {
|
287 |
+
//Belongs to us
|
288 |
+
if ( !(empty($theme_to_install)) ) {
|
289 |
+
$api_boolean = true;
|
290 |
+
}
|
291 |
+
}
|
292 |
+
}
|
293 |
+
|
294 |
+
return $api_boolean;
|
295 |
+
}
|
296 |
+
|
297 |
+
/** Override WordPress Themes API response with our own themes API*/
|
298 |
+
public function installer_theme_api_override_response( $res, $action, $args ) {
|
299 |
+
|
300 |
+
if ( true === $res ) {
|
301 |
+
if ( isset($args->browse) ) {
|
302 |
+
$browse = $args->browse;
|
303 |
+
if ( in_array( $browse, $this->theme_repo ) ) {
|
304 |
+
//Uniquely validated for our themes
|
305 |
+
if ( 'query_themes' == $action ) {
|
306 |
+
//Client querying OTGS themes
|
307 |
+
//Check for registration status
|
308 |
+
if ( isset($this->theme_user_registration[$browse]) ) {
|
309 |
+
//Set
|
310 |
+
if ( !($this->theme_user_registration[$browse]) ) {
|
311 |
+
//Not registered yet
|
312 |
+
$res = new stdClass();
|
313 |
+
$res->info = array();
|
314 |
+
$res->themes = array();
|
315 |
+
return $res;
|
316 |
+
} else {
|
317 |
+
//Registered
|
318 |
+
$themes = $this->installer_theme_get_themes( '', $browse );
|
319 |
+
$res = $this->installer_theme_format_response( $themes, $action );
|
320 |
+
}
|
321 |
+
}
|
322 |
+
}
|
323 |
+
}
|
324 |
+
} elseif ( isset($args->slug) ) {
|
325 |
+
//We are installing theme
|
326 |
+
//Lets uniquely validate if this belongs to our theme
|
327 |
+
$theme_to_install = $args->slug;
|
328 |
+
|
329 |
+
//Lets uniquely validate if this belongs to us
|
330 |
+
//Check if this is OTGS theme
|
331 |
+
$validate_check = $this->installer_themes_belong_to_us( $theme_to_install );
|
332 |
+
if ( $validate_check ) {
|
333 |
+
//Belongs to us
|
334 |
+
if ( ($res) && ('theme_information' == $action) ) {
|
335 |
+
$themes = $this->installer_theme_get_themes( '', $this->installer_theme_active_tab );
|
336 |
+
$res = $this->installer_theme_format_response( $themes, $action, $args->slug );
|
337 |
+
}
|
338 |
+
}
|
339 |
+
}
|
340 |
+
return $res;
|
341 |
+
} else {
|
342 |
+
//Default WP Themes here
|
343 |
+
$client_side_active_tab = get_option( 'wp_installer_clientside_active_tab' );
|
344 |
+
if ( $client_side_active_tab ) {
|
345 |
+
if ( !(in_array( $client_side_active_tab, $this->theme_repo )) ) {
|
346 |
+
//Not OTGS tab
|
347 |
+
return $res;
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
+
/** Get Themes */
|
355 |
+
private function installer_theme_get_themes( $product_url = '', $repo_source = '' ) {
|
356 |
+
|
357 |
+
//Query API
|
358 |
+
if ( empty($product_url) ) {
|
359 |
+
//Not set
|
360 |
+
if ( isset($this->repository_theme_products[$this->installer_theme_active_tab]) ) {
|
361 |
+
$query_remote_url = $this->repository_theme_products[$this->installer_theme_active_tab];
|
362 |
+
}
|
363 |
+
|
364 |
+
} else {
|
365 |
+
$query_remote_url = $product_url;
|
366 |
+
}
|
367 |
+
|
368 |
+
//Let's retrieved current installer settings so we won't be querying all the time
|
369 |
+
$current_installer_settings = WP_Installer()->get_settings();
|
370 |
+
|
371 |
+
//Set $themes to FALSE by default
|
372 |
+
$themes = false;
|
373 |
+
|
374 |
+
if ( (is_array( $current_installer_settings )) && (!(empty($current_installer_settings))) ) {
|
375 |
+
|
376 |
+
//Set and already defined, retrieved $products
|
377 |
+
if ( isset($current_installer_settings['repositories'][$repo_source]['data']) ) {
|
378 |
+
$products = $current_installer_settings['repositories'][$repo_source]['data'];
|
379 |
+
if ( isset($products['downloads']['themes']) ) {
|
380 |
+
$themes = $products['downloads']['themes'];
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
} else {
|
385 |
+
|
386 |
+
//Call API
|
387 |
+
$response = wp_remote_get( $query_remote_url );
|
388 |
+
|
389 |
+
if ( is_wp_error( $response ) ) {
|
390 |
+
//Error detected: http fallback
|
391 |
+
$query_remote_url = preg_replace( "@^https://@", 'http://', $query_remote_url );
|
392 |
+
$response = wp_remote_get( $query_remote_url );
|
393 |
+
}
|
394 |
+
|
395 |
+
if ( !(is_wp_error( $response )) ) {
|
396 |
+
//Not WP error
|
397 |
+
//Evaluate response
|
398 |
+
if ( $response && isset($response['response']['code']) && $response['response']['code'] == 200 ) {
|
399 |
+
//In this case, response is set and defined, proceed...
|
400 |
+
$body = wp_remote_retrieve_body( $response );
|
401 |
+
if ( $body ) {
|
402 |
+
$products = json_decode( $body, true );
|
403 |
+
if ( isset($products['downloads']['themes']) ) {
|
404 |
+
$themes = $products['downloads']['themes'];
|
405 |
+
}
|
406 |
+
}
|
407 |
+
|
408 |
+
}
|
409 |
+
}
|
410 |
+
}
|
411 |
+
|
412 |
+
//Return themes, can be filtered by user subscription type
|
413 |
+
return apply_filters( 'installer_theme_get_themes', $themes, $this->installer_theme_active_tab );
|
414 |
+
}
|
415 |
+
|
416 |
+
/** Format response in compatibility with WordPress Theme API response */
|
417 |
+
private function installer_theme_format_response( $themes, $action, $slug = '' ) {
|
418 |
+
|
419 |
+
//Let's append download link only when retrieving theme information for installation
|
420 |
+
if ( ('theme_information' == $action) && (!(empty($slug))) ) {
|
421 |
+
|
422 |
+
//Only return one result -> the theme to be installed
|
423 |
+
foreach ( $themes as $k => $theme ) {
|
424 |
+
if ( $slug == $theme['basename'] ) {
|
425 |
+
$theme['download_link'] = WP_Installer()->append_site_key_to_download_url( $theme['url'], $this->installer_site_key[$this->installer_theme_active_tab], $this->installer_theme_active_tab );
|
426 |
+
$theme = json_decode( json_encode( $theme ), FALSE );
|
427 |
+
return $theme;
|
428 |
+
}
|
429 |
+
}
|
430 |
+
|
431 |
+
} else {
|
432 |
+
|
433 |
+
$res = new stdClass();
|
434 |
+
$res->info = array();
|
435 |
+
$res->themes = array();
|
436 |
+
|
437 |
+
//Define info
|
438 |
+
$res->info['page'] = 1;
|
439 |
+
$res->info['pages'] = 10;
|
440 |
+
|
441 |
+
//Let's count available themes ;
|
442 |
+
$res->info['results'] = count( $themes );
|
443 |
+
|
444 |
+
//Let's saved themes for easy access later on
|
445 |
+
$this->installer_theme_savethemes_by_slug( $themes );
|
446 |
+
|
447 |
+
//Let's defined available themes
|
448 |
+
if ( isset($this->installer_theme_subscription_type) ) {
|
449 |
+
//Has subscription type defined, let's saved what is associated with this subscription
|
450 |
+
$this->installer_theme_available( $this->installer_theme_active_tab, $this->installer_theme_subscription_type );
|
451 |
+
} else {
|
452 |
+
$this->installer_theme_available( $this->installer_theme_active_tab );
|
453 |
+
}
|
454 |
+
|
455 |
+
//Let's add themes to the overriden WordPress API Theme response
|
456 |
+
/** Installer 1.7.6: Update to compatible data format response from WP Theme API */
|
457 |
+
$theme_compatible_array=array();
|
458 |
+
if ((is_array($themes))) {
|
459 |
+
foreach ($themes as $k=>$v) {
|
460 |
+
$theme_compatible_array[]=(object)($v);
|
461 |
+
}
|
462 |
+
}
|
463 |
+
$res->themes = $theme_compatible_array;
|
464 |
+
$res->themes = apply_filters( 'installer_theme_hook_response_theme', $res->themes );
|
465 |
+
return $res;
|
466 |
+
}
|
467 |
+
}
|
468 |
+
|
469 |
+
/** Let's save all available themes by its slug after any latest API query */
|
470 |
+
private function installer_theme_savethemes_by_slug( $themes, $doing_query = false ) {
|
471 |
+
|
472 |
+
if ( !($doing_query) ) {
|
473 |
+
$this->installer_themes[$this->installer_theme_active_tab] = array();
|
474 |
+
}
|
475 |
+
|
476 |
+
if ( !(empty($themes)) ) {
|
477 |
+
$themes_for_saving = array();
|
478 |
+
foreach ( $themes as $k => $theme ) {
|
479 |
+
if ( !($doing_query) ) {
|
480 |
+
if ( isset($theme['slug']) ) {
|
481 |
+
$theme_slug = $theme['slug'];
|
482 |
+
if ( !(empty($theme_slug)) ) {
|
483 |
+
$themes_for_saving[] = $theme_slug;
|
484 |
+
}
|
485 |
+
}
|
486 |
+
} else {
|
487 |
+
|
488 |
+
if ( ((isset($theme['slug'])) && (isset($theme['version'])) &&
|
489 |
+
(isset($theme['theme_page_url']))) && (isset($theme['url']))
|
490 |
+
) {
|
491 |
+
$theme_slug = $theme['slug'];
|
492 |
+
$theme_version = $theme['version'];
|
493 |
+
$theme_page_url = $theme['theme_page_url'];
|
494 |
+
$theme_url = $theme['url'];
|
495 |
+
if ( (!(empty($theme_slug))) && (!(empty($theme_version))) &&
|
496 |
+
(!(empty($theme_page_url))) && (!(empty($theme_url)))
|
497 |
+
) {
|
498 |
+
//$theme_slug is unique for every theme
|
499 |
+
$themes_for_saving[$theme_slug] = array(
|
500 |
+
'version' => $theme_version,
|
501 |
+
'theme_page_url' => $theme_page_url,
|
502 |
+
'url' => $theme_url
|
503 |
+
);
|
504 |
+
|
505 |
+
}
|
506 |
+
}
|
507 |
+
}
|
508 |
+
|
509 |
+
}
|
510 |
+
|
511 |
+
if ( !(empty($themes_for_saving)) ) {
|
512 |
+
//Has themes for saving
|
513 |
+
if ( !($doing_query) ) {
|
514 |
+
//Not doing query
|
515 |
+
$existing_themes = get_option( $this->installer_themes_option[$this->installer_theme_active_tab] );
|
516 |
+
if ( !($existing_themes) ) {
|
517 |
+
//Does not yet exists
|
518 |
+
delete_option( $this->installer_themes_option[$this->installer_theme_active_tab] );
|
519 |
+
update_option( $this->installer_themes_option[$this->installer_theme_active_tab], $themes_for_saving );
|
520 |
+
} else {
|
521 |
+
//exists, check if we need to update
|
522 |
+
if ( $existing_themes == $themes_for_saving ) {
|
523 |
+
//Equal, no need to update here
|
524 |
+
} else {
|
525 |
+
//Update
|
526 |
+
delete_option( $this->installer_themes_option[$this->installer_theme_active_tab] );
|
527 |
+
update_option( $this->installer_themes_option[$this->installer_theme_active_tab], $themes_for_saving );
|
528 |
+
}
|
529 |
+
}
|
530 |
+
} else {
|
531 |
+
//Used for query purposes only, don't save anything
|
532 |
+
return $themes_for_saving;
|
533 |
+
}
|
534 |
+
}
|
535 |
+
}
|
536 |
+
}
|
537 |
+
|
538 |
+
/** Available themes */
|
539 |
+
private function installer_theme_available( $repo, $subscription_type = '' ) {
|
540 |
+
|
541 |
+
$subscription_type = intval( $subscription_type );
|
542 |
+
if ( $subscription_type > 0 ) {
|
543 |
+
|
544 |
+
//Here we have a case of validated subscription
|
545 |
+
//We need to set themes that is available to this subscription
|
546 |
+
$themes_associated_with_subscription = $this->installer_themes[$repo] = $this->installer_theme_get_themes_by_subscription( $subscription_type, $repo );
|
547 |
+
if ( !(empty($themes_associated_with_subscription)) ) {
|
548 |
+
//Has themes
|
549 |
+
$this->installer_themes[$repo] = $themes_associated_with_subscription;
|
550 |
+
}
|
551 |
+
} else {
|
552 |
+
|
553 |
+
//Get themes
|
554 |
+
$this->installer_themes[$repo] = get_option( $this->installer_themes_option[$repo] );
|
555 |
+
}
|
556 |
+
}
|
557 |
+
|
558 |
+
/** Theme upgrade check */
|
559 |
+
public function installer_theme_upgrade_check( $the_value ) {
|
560 |
+
|
561 |
+
//Step1: Let's looped through repos with themes and check if we have updates available for them.
|
562 |
+
if ( (is_array( $this->installer_repo_with_themes )) && (!(empty($this->installer_repo_with_themes))) ) {
|
563 |
+
foreach ( $this->installer_repo_with_themes as $k => $repo_slug ) {
|
564 |
+
//Step2: Let's checked if we have update for this theme
|
565 |
+
$update_available = get_option( $this->installer_themes_available_updates[$repo_slug] );
|
566 |
+
if ( $update_available ) {
|
567 |
+
if ( (is_array( $update_available )) && (!(empty($update_available))) ) {
|
568 |
+
//Has updates available coming from this specific theme repo
|
569 |
+
//Let's loop through the themes that needs update
|
570 |
+
foreach ( $update_available as $theme_slug => $v ) {
|
571 |
+
//Add to response API
|
572 |
+
$the_value->response [$theme_slug] = array(
|
573 |
+
'theme' => $theme_slug,
|
574 |
+
'new_version' => $v['new_version'],
|
575 |
+
'url' => $v['url'],
|
576 |
+
'package' => $v['package']
|
577 |
+
);
|
578 |
+
}
|
579 |
+
}
|
580 |
+
}
|
581 |
+
}
|
582 |
+
}
|
583 |
+
//Return
|
584 |
+
return $the_value;
|
585 |
+
}
|
586 |
+
|
587 |
+
/** Return repositories that has themes */
|
588 |
+
private function installer_theme_reposities_that_has_themes( $repositories, $ret_value = true, $doing_api_query = false ) {
|
589 |
+
|
590 |
+
$repositories_with_themes = array();
|
591 |
+
|
592 |
+
if ( (is_array( $repositories )) && (!(empty($repositories))) ) {
|
593 |
+
|
594 |
+
//Let's checked if we have something before
|
595 |
+
$themes = get_option( 'installer_repositories_with_theme' );
|
596 |
+
|
597 |
+
if ( (!($themes)) || ($doing_api_query) ) {
|
598 |
+
//Not yet defined
|
599 |
+
//Loop through each repositories and check whether they have themes
|
600 |
+
foreach ( $repositories as $k => $v ) {
|
601 |
+
if ( isset($v['products']) ) {
|
602 |
+
$products_url = $v['products'];
|
603 |
+
$themes = $this->installer_theme_get_themes( $products_url, $k );
|
604 |
+
if ( (is_array( $themes )) && (!(empty($themes))) ) {
|
605 |
+
//Repo has themes
|
606 |
+
$repositories_with_themes[] = $k;
|
607 |
+
}
|
608 |
+
}
|
609 |
+
}
|
610 |
+
} else {
|
611 |
+
//Already set
|
612 |
+
$repositories_with_themes = $themes;
|
613 |
+
}
|
614 |
+
|
615 |
+
if ( (((is_array( $repositories_with_themes )) && (!(empty($repositories_with_themes)))) && (!($themes))) || ($doing_api_query) ) {
|
616 |
+
//Save to db
|
617 |
+
update_option( 'installer_repositories_with_theme', $repositories_with_themes );
|
618 |
+
}
|
619 |
+
}
|
620 |
+
|
621 |
+
if ( $ret_value ) {
|
622 |
+
return $repositories_with_themes;
|
623 |
+
}
|
624 |
+
|
625 |
+
}
|
626 |
+
|
627 |
+
/** When WordPress queries its own Themes API, we sync with our own */
|
628 |
+
public function installer_theme_sync_native_wp_api( $response, $responsetext, $class, $args, $url ) {
|
629 |
+
|
630 |
+
$api_native_string = 'api.wordpress.org/themes/';
|
631 |
+
if ( (strpos( $url, $api_native_string ) !== false) ) {
|
632 |
+
//WordPress is querying its own themes API
|
633 |
+
$installer_repositories = WP_Installer()->get_repositories();
|
634 |
+
|
635 |
+
//Query our own API and update repository values too
|
636 |
+
$this->installer_theme_reposities_that_has_themes( $installer_repositories, false, true );
|
637 |
+
}
|
638 |
+
}
|
639 |
+
|
640 |
+
/** Returns product name by theme repo slug */
|
641 |
+
private function installer_theme_get_repo_product_name( $theme_repo ) {
|
642 |
+
|
643 |
+
$theme_repo_name = false;
|
644 |
+
|
645 |
+
if ( isset(WP_Installer()->settings['repositories'][$theme_repo]['data']['product-name']) ) {
|
646 |
+
//Set
|
647 |
+
$prod_name = WP_Installer()->settings['repositories'][$theme_repo]['data']['product-name'];
|
648 |
+
if ( !(empty($prod_name)) ) {
|
649 |
+
$theme_repo_name = $prod_name;
|
650 |
+
}
|
651 |
+
} else {
|
652 |
+
//Not yet
|
653 |
+
if ( $theme_repo == $this->theme_repo ) {
|
654 |
+
$result = $this->installer_theme_general_api_query();
|
655 |
+
if ( isset($result['product-name']) ) {
|
656 |
+
$product_name = $result['product-name'];
|
657 |
+
if ( !(empty($product_name)) ) {
|
658 |
+
$theme_repo_name = $product_name;
|
659 |
+
}
|
660 |
+
}
|
661 |
+
}
|
662 |
+
}
|
663 |
+
|
664 |
+
return $theme_repo_name;
|
665 |
+
}
|
666 |
+
|
667 |
+
/** General query API method, returns $products */
|
668 |
+
private function installer_theme_general_api_query() {
|
669 |
+
$products = false;
|
670 |
+
$response = wp_remote_get( $this->repository_theme_products );
|
671 |
+
if ( !(is_wp_error( $response )) ) {
|
672 |
+
//Not WP error
|
673 |
+
//Evaluate response
|
674 |
+
if ( $response && isset($response['response']['code']) && $response['response']['code'] == 200 ) {
|
675 |
+
//In this case, response is set and defined, proceed...
|
676 |
+
$body = wp_remote_retrieve_body( $response );
|
677 |
+
if ( $body ) {
|
678 |
+
$result = json_decode( $body, true );
|
679 |
+
if ( (is_array( $result )) && (!(empty($result))) ) {
|
680 |
+
$products = $result;
|
681 |
+
}
|
682 |
+
}
|
683 |
+
|
684 |
+
}
|
685 |
+
}
|
686 |
+
|
687 |
+
return $products;
|
688 |
+
}
|
689 |
+
|
690 |
+
/** General method to check if themes are OTGS themes based on its slug*/
|
691 |
+
private function installer_themes_belong_to_us( $theme_slug ) {
|
692 |
+
|
693 |
+
$found = false;
|
694 |
+
$theme_slug = trim( $theme_slug );
|
695 |
+
|
696 |
+
foreach ( $this->installer_themes as $repo_with_theme => $themes ) {
|
697 |
+
foreach ( $themes as $k => $otgs_theme_slug ) {
|
698 |
+
if ( $theme_slug == $otgs_theme_slug ) {
|
699 |
+
//match found! Theme belongs to otgs
|
700 |
+
return true;
|
701 |
+
}
|
702 |
+
}
|
703 |
+
}
|
704 |
+
return $found;
|
705 |
+
|
706 |
+
}
|
707 |
+
|
708 |
+
/** Sets active tab on init */
|
709 |
+
public function installer_theme_sets_active_tab_on_init() {
|
710 |
+
|
711 |
+
if ( isset ($_SERVER ['REQUEST_URI']) ) {
|
712 |
+
$request_uri = $_SERVER ['REQUEST_URI'];
|
713 |
+
if ( isset ($_GET ['browse']) ) {
|
714 |
+
$active_tab = sanitize_text_field( $_GET['browse'] );
|
715 |
+
$this->installer_theme_active_tab = $active_tab;
|
716 |
+
} elseif ( isset ($_POST ['request'] ['browse']) ) {
|
717 |
+
$active_tab = sanitize_text_field ( $_POST['request']['browse'] );
|
718 |
+
$this->installer_theme_active_tab = $active_tab;
|
719 |
+
} elseif ( (isset ($_GET ['theme_repo'])) && (isset ($_GET ['action'])) ) {
|
720 |
+
$theme_repo = sanitize_text_field( $_GET['theme_repo'] );
|
721 |
+
$the_action = sanitize_text_field( $_GET['action'] );
|
722 |
+
if ( ('install-theme' == $the_action) && (!(empty($theme_repo))) ) {
|
723 |
+
$this->installer_theme_active_tab = $theme_repo;
|
724 |
+
}
|
725 |
+
} elseif ( wp_get_referer() ) {
|
726 |
+
$referer = wp_get_referer();
|
727 |
+
$parts = parse_url( $referer );
|
728 |
+
if ( isset($parts['query']) ) {
|
729 |
+
parse_str( $parts['query'], $query );
|
730 |
+
if ( isset($query['browse']) ) {
|
731 |
+
$this->installer_theme_active_tab = $query['browse'];
|
732 |
+
}
|
733 |
+
}
|
734 |
+
}
|
735 |
+
}
|
736 |
+
}
|
737 |
+
|
738 |
+
/** WP Theme API compatibility- added num ratings */
|
739 |
+
/** Installer 1.7.6+ Added updated 'rating' field */
|
740 |
+
public function installer_theme_add_num_ratings( $themes ) {
|
741 |
+
|
742 |
+
if ( (is_array( $themes )) && (!(empty($themes))) ) {
|
743 |
+
foreach ( $themes as $k => $v ) {
|
744 |
+
if ( !(isset($v->num_ratings)) ) {
|
745 |
+
$themes[$k]->num_ratings = 100;
|
746 |
+
}
|
747 |
+
if ( !(isset($v->rating)) ) {
|
748 |
+
$themes[$k]->rating = 100;
|
749 |
+
}
|
750 |
+
}
|
751 |
+
}
|
752 |
+
|
753 |
+
return $themes;
|
754 |
+
}
|
755 |
+
|
756 |
+
/** When WordPress.org makes a call to its repository, let's run our own upgrade checks too */
|
757 |
+
public function installer_theme_sync_call_wp_theme_api( $locales ) {
|
758 |
+
|
759 |
+
$this->installer_theme_upgrade_theme_check();
|
760 |
+
|
761 |
+
return $locales;
|
762 |
+
}
|
763 |
+
|
764 |
+
/** Upgrade theme check */
|
765 |
+
private function installer_theme_upgrade_theme_check() {
|
766 |
+
|
767 |
+
// Step1-> we get all installed themes in clients local themes directory
|
768 |
+
$installed_themes = wp_get_themes();
|
769 |
+
|
770 |
+
// Step2: We need to loop through each repository with themes
|
771 |
+
foreach ( $this->installer_repo_with_themes as $k => $repo_slug ) {
|
772 |
+
|
773 |
+
// We then need to retrieved the products URL for each of this repo
|
774 |
+
$products_url = $this->repository_theme_products [$repo_slug];
|
775 |
+
|
776 |
+
// Step3-> we get all available themes in our repository via API based on this URL
|
777 |
+
$available_themes = $this->installer_theme_get_themes( $products_url, $repo_slug );
|
778 |
+
|
779 |
+
if ( !($available_themes) ) {
|
780 |
+
|
781 |
+
// API is not available as of the moment, return..
|
782 |
+
return;
|
783 |
+
} else {
|
784 |
+
|
785 |
+
// We have available themes here...
|
786 |
+
// Step4->let's simplify available themes data by slugs
|
787 |
+
$simplified_available_themes = $this->installer_theme_savethemes_by_slug( $available_themes, true );
|
788 |
+
|
789 |
+
// Step5->Let's loop through installed themes
|
790 |
+
if ( (is_array( $installed_themes )) && (!(empty ($installed_themes))) ) {
|
791 |
+
$otgs_theme_updates_available = array();
|
792 |
+
foreach ( $installed_themes as $theme_slug => $theme_object ) {
|
793 |
+
if ( array_key_exists( $theme_slug, $simplified_available_themes ) ) {
|
794 |
+
|
795 |
+
// This is our theme
|
796 |
+
// Step6->Let's get version of the local theme installed
|
797 |
+
$local_version = $theme_object->get( 'Version' );
|
798 |
+
|
799 |
+
// Step7->Let's get the latest version of this theme, page URL and download URL from our repository
|
800 |
+
$repository_version = $simplified_available_themes [$theme_slug] ['version'];
|
801 |
+
$theme_page_url = $simplified_available_themes [$theme_slug] ['theme_page_url'];
|
802 |
+
$theme_download_url = $simplified_available_themes [$theme_slug] ['url'];
|
803 |
+
|
804 |
+
// Step8->Let's compare the version
|
805 |
+
if ( version_compare( $repository_version, $local_version, '>' ) ) {
|
806 |
+
|
807 |
+
// Update available for this theme
|
808 |
+
// Step9-> Define download URL with site key
|
809 |
+
$package_url = WP_Installer()->append_site_key_to_download_url( $theme_download_url, $this->installer_site_key [$repo_slug], $repo_slug );
|
810 |
+
|
811 |
+
//Step10-> Assign to updates array for later accessing.
|
812 |
+
$otgs_theme_updates_available[$theme_slug] = array(
|
813 |
+
'theme' => $theme_slug,
|
814 |
+
'new_version' => $repository_version,
|
815 |
+
'url' => $theme_page_url,
|
816 |
+
'package' => $package_url
|
817 |
+
);
|
818 |
+
}
|
819 |
+
}
|
820 |
+
}
|
821 |
+
//Exited the upgrade loop for this specific theme repository
|
822 |
+
if ( !(empty($otgs_theme_updates_available)) ) {
|
823 |
+
//Has updates
|
824 |
+
update_option( $this->installer_themes_available_updates[$repo_slug], $otgs_theme_updates_available );
|
825 |
+
} else {
|
826 |
+
//No updates
|
827 |
+
delete_option( $this->installer_themes_available_updates[$repo_slug] );
|
828 |
+
}
|
829 |
+
|
830 |
+
}
|
831 |
+
}
|
832 |
+
}
|
833 |
+
}
|
834 |
+
|
835 |
+
/** When the user is on Themes install page OTG themes repository, let's the currently selected tab */
|
836 |
+
public function installer_theme_add_query_arg_tab( $url, $path, $blog_id = null ) {
|
837 |
+
|
838 |
+
$wp_install_string = 'update.php?action=install-theme';
|
839 |
+
if ( $path == $wp_install_string ) {
|
840 |
+
if ( isset($this->installer_theme_active_tab) ) {
|
841 |
+
if ( !(empty($this->installer_theme_active_tab)) ) {
|
842 |
+
$url = add_query_arg( array(
|
843 |
+
'theme_repo' => $this->installer_theme_active_tab
|
844 |
+
), $url );
|
845 |
+
}
|
846 |
+
}
|
847 |
+
}
|
848 |
+
return $url;
|
849 |
+
}
|
850 |
+
|
851 |
+
/** Save frontend theme tab selected */
|
852 |
+
public function installer_theme_frontend_selected_tab() {
|
853 |
+
if ( isset($_POST["frontend_tab_selected"]) ) {
|
854 |
+
check_ajax_referer( 'installer_theme_frontend_selected_tab', 'installer_theme_frontend_selected_tab_nonce' );
|
855 |
+
|
856 |
+
//Client_side_active_tab
|
857 |
+
$frontend_tab_selected = sanitize_text_field( $_POST['frontend_tab_selected'] );
|
858 |
+
if ( !(empty($frontend_tab_selected)) ) {
|
859 |
+
//Front end tab selected
|
860 |
+
update_option( 'wp_installer_clientside_active_tab', $frontend_tab_selected, false );
|
861 |
+
|
862 |
+
//Check for registration status
|
863 |
+
if ( isset($this->theme_user_registration[$frontend_tab_selected]) ) {
|
864 |
+
//Set
|
865 |
+
if ( !($this->theme_user_registration[$frontend_tab_selected]) ) {
|
866 |
+
//Not registered yet
|
867 |
+
|
868 |
+
if ( is_multisite() ) {
|
869 |
+
$admin_url_passed = network_admin_url();
|
870 |
+
} else {
|
871 |
+
$admin_url_passed = admin_url();
|
872 |
+
}
|
873 |
+
|
874 |
+
$registration_url = $admin_url_passed . 'plugin-install.php?tab=commercial#installer_repo_' . $frontend_tab_selected;
|
875 |
+
|
876 |
+
//Message and link
|
877 |
+
$theme_repo_name = $this->installer_theme_get_repo_product_name( $frontend_tab_selected );;
|
878 |
+
$response['unregistered_messages'] = sprintf( __( 'To install and update %s, please %sregister%s %s for this site.', 'installer' ),
|
879 |
+
$theme_repo_name, '<a href="' . $registration_url . '">', '</a>', $theme_repo_name );
|
880 |
+
|
881 |
+
}
|
882 |
+
}
|
883 |
+
|
884 |
+
$response['output'] = $frontend_tab_selected;
|
885 |
+
echo json_encode( $response );
|
886 |
+
}
|
887 |
+
die();
|
888 |
+
}
|
889 |
+
die();
|
890 |
+
}
|
891 |
+
|
892 |
+
/** Installer loaded aux hooks */
|
893 |
+
public function installer_theme_loaded_hooks() {
|
894 |
+
|
895 |
+
if ( isset($this->installer_theme_subscription_type) ) {
|
896 |
+
$subscription_type = intval( $this->installer_theme_subscription_type );
|
897 |
+
if ( $subscription_type > 0 ) {
|
898 |
+
//Client is subscribed
|
899 |
+
add_filter( 'installer_theme_get_themes', array($this, 'installer_theme_filter_themes_by_subscription'), 10, 2 );
|
900 |
+
}
|
901 |
+
}
|
902 |
+
|
903 |
+
}
|
904 |
+
|
905 |
+
/** Get themes by subscription type */
|
906 |
+
protected function installer_theme_get_themes_by_subscription( $subscription_type, $repo ) {
|
907 |
+
|
908 |
+
$themes_associated_with_subscription = array();
|
909 |
+
if ( isset(WP_Installer()->settings['repositories'][$repo]['data']['packages']) ) {
|
910 |
+
//Set
|
911 |
+
$packages = WP_Installer()->settings['repositories'][$repo]['data']['packages'];
|
912 |
+
$available_themes_subscription = array();
|
913 |
+
foreach ( $packages as $package_id => $package_details ) {
|
914 |
+
if ( isset($package_details['products']) ) {
|
915 |
+
$the_products = $package_details['products'];
|
916 |
+
foreach ( $the_products as $product_slug => $product_details ) {
|
917 |
+
if ( isset($product_details['subscription_type']) ) {
|
918 |
+
$subscription_type_from_settings = intval( $product_details['subscription_type'] );
|
919 |
+
if ( $subscription_type_from_settings == $subscription_type ) {
|
920 |
+
//We found the subscription
|
921 |
+
if ( isset($product_details['themes']) ) {
|
922 |
+
$themes_associated_with_subscription = $product_details['themes'];
|
923 |
+
return $themes_associated_with_subscription;
|
924 |
+
}
|
925 |
+
}
|
926 |
+
}
|
927 |
+
|
928 |
+
}
|
929 |
+
}
|
930 |
+
}
|
931 |
+
}
|
932 |
+
return $themes_associated_with_subscription;
|
933 |
+
}
|
934 |
+
|
935 |
+
/** Filter API theme response according to user subscription */
|
936 |
+
public function installer_theme_filter_themes_by_subscription( $themes, $active_tab ) {
|
937 |
+
|
938 |
+
//Step1, we only filter OTGS themes
|
939 |
+
$orig = is_array( $themes ) ? count( $themes ) : 0;
|
940 |
+
if ( in_array( $active_tab, $this->theme_repo ) ) {
|
941 |
+
//OTGS Theme
|
942 |
+
//Step2, we retrieved the available themes based on client subscription
|
943 |
+
if ( isset($this->installer_themes[$active_tab]) ) {
|
944 |
+
$available_themes = $this->installer_themes[$active_tab];
|
945 |
+
//Step3, we filter $themes based on this info
|
946 |
+
if ( (is_array( $themes )) && (!(empty($themes))) ) {
|
947 |
+
foreach ( $themes as $k => $theme ) {
|
948 |
+
//Step4, get theme slug
|
949 |
+
if ( isset($theme['slug']) ) {
|
950 |
+
$theme_slug = $theme['slug'];
|
951 |
+
if ( !(empty($theme_slug)) ) {
|
952 |
+
if ( !(in_array( $theme_slug, $available_themes )) ) {
|
953 |
+
//This theme is not in available themes
|
954 |
+
unset($themes[$k]);
|
955 |
+
}
|
956 |
+
}
|
957 |
+
}
|
958 |
+
}
|
959 |
+
}
|
960 |
+
}
|
961 |
+
}
|
962 |
+
$new = is_array( $themes ) ? count( $themes ) : 0;
|
963 |
+
if ( $orig != $new ) {
|
964 |
+
//It is filtered
|
965 |
+
$themes = array_values( $themes );
|
966 |
+
}
|
967 |
+
|
968 |
+
return $themes;
|
969 |
+
}
|
970 |
+
|
971 |
+
/** Hook to wp_loaded, fires when all Installer theme class is ready */
|
972 |
+
public function installer_themes_support_set_up_func() {
|
973 |
+
do_action( 'installer_themes_support_set_up' );
|
974 |
+
}
|
975 |
+
|
976 |
+
}
|
977 |
+
|
978 |
+
/** Instantiate Installer Theme Class */
|
979 |
+
new Installer_Theme_Class;
|
vendor/otgs/installer/includes/class-installer-upgrader-skins.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Installer_Upgrader_Skins extends WP_Upgrader_Skin {
|
4 |
+
|
5 |
+
function __construct( $args = array() ) {
|
6 |
+
$defaults = array( 'url' => '', 'nonce' => '', 'title' => '', 'context' => false );
|
7 |
+
$this->options = wp_parse_args( $args, $defaults );
|
8 |
+
}
|
9 |
+
|
10 |
+
function header() {
|
11 |
+
|
12 |
+
}
|
13 |
+
|
14 |
+
function footer() {
|
15 |
+
|
16 |
+
}
|
17 |
+
|
18 |
+
function error( $error ) {
|
19 |
+
$this->installer_error = $error;
|
20 |
+
}
|
21 |
+
|
22 |
+
function add_strings() {
|
23 |
+
|
24 |
+
}
|
25 |
+
|
26 |
+
function feedback( $string ) {
|
27 |
+
|
28 |
+
}
|
29 |
+
|
30 |
+
function before() {
|
31 |
+
|
32 |
+
}
|
33 |
+
|
34 |
+
function after() {
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-factory.php
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author OnTheGo Systems
|
5 |
+
*/
|
6 |
+
class OTGS_Installer_Factory {
|
7 |
+
|
8 |
+
private $installer;
|
9 |
+
private $filename_hooks;
|
10 |
+
private $icons;
|
11 |
+
private $installer_php_functions;
|
12 |
+
private $local_components_ajax_setting;
|
13 |
+
private $settings;
|
14 |
+
private $template_service_loader;
|
15 |
+
private $wp_components_hooks;
|
16 |
+
private $wp_components_sender;
|
17 |
+
private $wp_components_storage;
|
18 |
+
|
19 |
+
public function __construct( WP_Installer $installer ) {
|
20 |
+
$this->installer = $installer;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @return OTGS_Installer_Filename_Hooks
|
25 |
+
*/
|
26 |
+
public function create_filename_hooks() {
|
27 |
+
if ( ! $this->filename_hooks ) {
|
28 |
+
$this->filename_hooks = new OTGS_Installer_Filename_Hooks( $this->create_installer_php_functions() );
|
29 |
+
}
|
30 |
+
|
31 |
+
return $this->filename_hooks;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @return OTGS_Installer_Icons
|
36 |
+
*/
|
37 |
+
public function create_icons() {
|
38 |
+
if ( ! $this->icons ) {
|
39 |
+
$this->icons = new OTGS_Installer_Icons( $this->get_installer() );
|
40 |
+
}
|
41 |
+
|
42 |
+
return $this->icons;
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* @return OTGS_Installer_WP_Components_Setting_Ajax
|
47 |
+
*/
|
48 |
+
public function create_local_components_ajax_setting() {
|
49 |
+
if ( ! $this->local_components_ajax_setting ) {
|
50 |
+
$this->local_components_ajax_setting = new OTGS_Installer_WP_Components_Setting_Ajax( $this->create_settings(),
|
51 |
+
$this->get_installer() );
|
52 |
+
}
|
53 |
+
|
54 |
+
return $this->local_components_ajax_setting;
|
55 |
+
}
|
56 |
+
|
57 |
+
public function create_resources() {
|
58 |
+
return new OTGS_Installer_WP_Components_Setting_Resources( $this->get_installer() );
|
59 |
+
}
|
60 |
+
|
61 |
+
public function create_settings_hooks() {
|
62 |
+
return new OTGS_Installer_WP_Share_Local_Components_Setting_Hooks( $this->create_template_service_loader()
|
63 |
+
->get_service(),
|
64 |
+
$this->create_settings() );
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @return OTGS_Installer_Twig_Template_Service_Loader
|
69 |
+
*/
|
70 |
+
private function create_template_service_loader() {
|
71 |
+
if ( ! $this->template_service_loader ) {
|
72 |
+
$this->template_service_loader = new OTGS_Installer_Twig_Template_Service_Loader( array(
|
73 |
+
$this->get_installer()
|
74 |
+
->plugin_path()
|
75 |
+
. '/templates/components-setting/'
|
76 |
+
) );
|
77 |
+
}
|
78 |
+
|
79 |
+
return $this->template_service_loader;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* @return OTGS_Installer_WP_Share_Local_Components_Setting
|
84 |
+
*/
|
85 |
+
public function create_settings() {
|
86 |
+
if ( ! $this->settings ) {
|
87 |
+
$this->settings = new OTGS_Installer_WP_Share_Local_Components_Setting();
|
88 |
+
}
|
89 |
+
|
90 |
+
return $this->settings;
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @return OTGS_Installer_WP_Components_Hooks
|
95 |
+
*/
|
96 |
+
public function create_wp_components_hooks() {
|
97 |
+
if ( ! $this->wp_components_hooks ) {
|
98 |
+
$this->wp_components_hooks = new OTGS_Installer_WP_Components_Hooks( $this->create_wp_components_storage(),
|
99 |
+
$this->create_wp_components_sender(),
|
100 |
+
$this->create_settings(),
|
101 |
+
$this->create_installer_php_functions() );
|
102 |
+
}
|
103 |
+
|
104 |
+
return $this->wp_components_hooks;
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* @return OTGS_Installer_WP_Components_Storage
|
109 |
+
*/
|
110 |
+
public function create_wp_components_storage() {
|
111 |
+
if ( ! $this->wp_components_storage ) {
|
112 |
+
$this->wp_components_storage = new OTGS_Installer_WP_Components_Storage();
|
113 |
+
}
|
114 |
+
|
115 |
+
return $this->wp_components_storage;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* @return OTGS_Installer_WP_Components_Sender
|
120 |
+
*/
|
121 |
+
public function create_wp_components_sender() {
|
122 |
+
if ( ! $this->wp_components_sender ) {
|
123 |
+
$this->wp_components_sender = new OTGS_Installer_WP_Components_Sender( $this->get_installer(),
|
124 |
+
$this->create_settings() );
|
125 |
+
}
|
126 |
+
|
127 |
+
return $this->wp_components_sender;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* @return OTGS_Installer_PHP_Functions
|
132 |
+
*/
|
133 |
+
public function create_installer_php_functions() {
|
134 |
+
if ( ! $this->installer_php_functions ) {
|
135 |
+
$this->installer_php_functions = new OTGS_Installer_PHP_Functions();
|
136 |
+
}
|
137 |
+
|
138 |
+
return $this->installer_php_functions;
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* @return WP_Installer
|
143 |
+
*/
|
144 |
+
private function get_installer() {
|
145 |
+
return $this->installer;
|
146 |
+
}
|
147 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-filename-hooks.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_Filename_Hooks {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var OTGS_Installer_PHP_Functions
|
7 |
+
*/
|
8 |
+
private $built_in_functions;
|
9 |
+
|
10 |
+
public function __construct( OTGS_Installer_PHP_Functions $built_in_functions ) {
|
11 |
+
$this->built_in_functions = $built_in_functions;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function add_hooks() {
|
15 |
+
if ( in_array( $this->built_in_functions->constant( 'PHP_OS' ), array( 'WIN32', 'WINNT', 'Windows' ), true ) ) {
|
16 |
+
add_filter( 'wp_unique_filename', array( $this, 'fix_filename_for_win' ), 10, 3 );
|
17 |
+
}
|
18 |
+
}
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @param string $filename
|
22 |
+
* @param string $ext
|
23 |
+
* @param string $dir
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function fix_filename_for_win( $filename, $ext, $dir ) {
|
28 |
+
if ( $dir === get_temp_dir() ) {
|
29 |
+
return md5( $filename . $this->built_in_functions->time() ) . 'tmp';
|
30 |
+
}
|
31 |
+
return $filename;
|
32 |
+
}
|
33 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-icons.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_Icons {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var WP_Installer
|
7 |
+
*/
|
8 |
+
private $installer;
|
9 |
+
|
10 |
+
public function __construct( WP_Installer $installer ) {
|
11 |
+
$this->installer = $installer;
|
12 |
+
}
|
13 |
+
|
14 |
+
public function add_hooks() {
|
15 |
+
add_filter( 'otgs_installer_upgrade_check_response', array( $this, 'add_icons_on_response' ), 10, 3 );
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @param stdClass $response
|
20 |
+
* @param string $name
|
21 |
+
*
|
22 |
+
* @return stdClass
|
23 |
+
*/
|
24 |
+
public function add_icons_on_response( $response, $name, $repository ) {
|
25 |
+
$product = isset( $this->installer->settings['repositories'][ $repository ]['data']['products-map'][ $name ] )
|
26 |
+
? $this->installer->settings['repositories'][ $repository ]['data']['products-map'][ $name ]
|
27 |
+
: '';
|
28 |
+
|
29 |
+
if ( $product ) {
|
30 |
+
$base = $this->installer->plugin_url() . '/../icons/plugin-icons/' . $repository . '/' . $product . '/icon';
|
31 |
+
$response->icons = array(
|
32 |
+
'svg' => $base . '.svg',
|
33 |
+
'1x' => $base . '-128x128.png',
|
34 |
+
'2x' => $base . '-256x256.png',
|
35 |
+
);
|
36 |
+
}
|
37 |
+
|
38 |
+
return $response;
|
39 |
+
}
|
40 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-php-functions.php
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_PHP_Functions {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @param string $constant_name
|
7 |
+
*
|
8 |
+
* @return bool
|
9 |
+
*/
|
10 |
+
public function defined( $constant_name ) {
|
11 |
+
return defined( $constant_name );
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @param string $constant_name
|
16 |
+
*
|
17 |
+
* @return string|int|null
|
18 |
+
*/
|
19 |
+
public function constant( $constant_name ) {
|
20 |
+
return $this->defined( $constant_name ) ? constant( $constant_name ) : null;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @return int
|
25 |
+
*/
|
26 |
+
public function time() {
|
27 |
+
return time();
|
28 |
+
}
|
29 |
+
|
30 |
+
public function phpversion() {
|
31 |
+
return phpversion();
|
32 |
+
}
|
33 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-plugins-page-notice.php
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_Plugins_Page_Notice {
|
4 |
+
|
5 |
+
const TEMPLATE = 'plugins-page';
|
6 |
+
const DISPLAY_SUBSCRIPTION_NOTICE_KEY = 'display_subscription_notice';
|
7 |
+
const DISPLAY_SETTING_NOTICE_KEY = 'display_setting_notice';
|
8 |
+
|
9 |
+
private $plugins = array();
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @var OTGS_Installer_Twig_Template_Service
|
13 |
+
*/
|
14 |
+
private $template_service;
|
15 |
+
|
16 |
+
public function __construct( OTGS_Installer_Twig_Template_Service $template_service ) {
|
17 |
+
$this->template_service = $template_service;
|
18 |
+
}
|
19 |
+
|
20 |
+
public function add_hooks() {
|
21 |
+
foreach ( $this->get_plugins() as $plugin_id => $plugin_data ) {
|
22 |
+
add_action( 'after_plugin_row_' . $plugin_id, array(
|
23 |
+
$this,
|
24 |
+
'show_purchase_notice_under_plugin'
|
25 |
+
), 10, 3 );
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @return array
|
31 |
+
*/
|
32 |
+
public function get_plugins() {
|
33 |
+
return $this->plugins;
|
34 |
+
}
|
35 |
+
|
36 |
+
public function add_plugin( $plugin_id, $plugin_data ) {
|
37 |
+
$this->plugins[ $plugin_id ] = $plugin_data;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* @param string $plugin_file
|
42 |
+
*/
|
43 |
+
public function show_purchase_notice_under_plugin( $plugin_file ) {
|
44 |
+
$should_display_subscription_notice = isset( $this->plugins[ $plugin_file ][ self::DISPLAY_SUBSCRIPTION_NOTICE_KEY ] )
|
45 |
+
? $this->plugins[ $plugin_file ][ self::DISPLAY_SUBSCRIPTION_NOTICE_KEY ]
|
46 |
+
: false;
|
47 |
+
|
48 |
+
if ( $should_display_subscription_notice ) {
|
49 |
+
echo $this->template_service->show( $this->get_model(), self::TEMPLATE );
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @return array
|
55 |
+
*/
|
56 |
+
private function get_model() {
|
57 |
+
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
58 |
+
|
59 |
+
$tr_classes = 'plugin-update-tr';
|
60 |
+
$notice_classes = 'update-message installer-q-icon';
|
61 |
+
|
62 |
+
if ( version_compare( get_bloginfo( 'version' ), '4.6', '>=' ) ) {
|
63 |
+
$tr_classes = 'plugin-update-tr installer-plugin-update-tr';
|
64 |
+
$notice_classes = 'notice inline notice-warning notice-alt';
|
65 |
+
}
|
66 |
+
|
67 |
+
if ( is_multisite() ) {
|
68 |
+
if ( is_network_admin() ) {
|
69 |
+
$menu_url = network_admin_url( 'plugin-install.php?tab=commercial' );
|
70 |
+
} else {
|
71 |
+
$menu_url = admin_url( 'options-general.php?page=installer' );
|
72 |
+
}
|
73 |
+
} else {
|
74 |
+
$menu_url = admin_url( 'plugin-install.php?tab=commercial' );
|
75 |
+
}
|
76 |
+
|
77 |
+
return array(
|
78 |
+
'strings' => array(
|
79 |
+
'valid_subscription' => sprintf( __( 'You must have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s.', 'installer' ),
|
80 |
+
'<a href="' . $menu_url . '">', '</a>' ),
|
81 |
+
),
|
82 |
+
'css' => array(
|
83 |
+
'tr_classes' => $tr_classes,
|
84 |
+
'notice_classes' => $notice_classes,
|
85 |
+
),
|
86 |
+
'col_count' => $wp_list_table->get_column_count(),
|
87 |
+
);
|
88 |
+
}
|
89 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-subscription.php
ADDED
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author OnTheGo Systems
|
5 |
+
*/
|
6 |
+
class OTGS_Installer_Subscription {
|
7 |
+
const SUBSCRIPTION_STATUS_INACTIVE = 0;
|
8 |
+
const SUBSCRIPTION_STATUS_ACTIVE = 1;
|
9 |
+
const SUBSCRIPTION_STATUS_EXPIRED = 2;
|
10 |
+
const SUBSCRIPTION_STATUS_INACTIVE_UPGRADED = 3;
|
11 |
+
const SUBSCRIPTION_STATUS_ACTIVE_NO_EXPIRATION = 4;
|
12 |
+
|
13 |
+
const SUBSCRIPTION_STATUS_TEXT_EXPIRED = 'expired';
|
14 |
+
const SUBSCRIPTION_STATUS_TEXT_VALID = 'valid';
|
15 |
+
const SUBSCRIPTION_STATUS_TEXT_MISSING = 'missing';
|
16 |
+
|
17 |
+
private $status;
|
18 |
+
private $expires;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* WPML_Installer_Subscription constructor.
|
22 |
+
*
|
23 |
+
* @param stdClass|null $data
|
24 |
+
*/
|
25 |
+
public function __construct( stdClass $data = null ) {
|
26 |
+
if ( $data ) {
|
27 |
+
if ( isset( $data->status ) ) {
|
28 |
+
$this->status = (int) $data->status;
|
29 |
+
}
|
30 |
+
if ( isset( $data->expires ) ) {
|
31 |
+
$this->expires = $data->expires;
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
public function get_subscription_status_text() {
|
37 |
+
if ( $this->is_expired() ) {
|
38 |
+
return self::SUBSCRIPTION_STATUS_TEXT_EXPIRED;
|
39 |
+
}
|
40 |
+
|
41 |
+
if ( $this->is_valid() ) {
|
42 |
+
return self::SUBSCRIPTION_STATUS_TEXT_VALID;
|
43 |
+
}
|
44 |
+
|
45 |
+
return self::SUBSCRIPTION_STATUS_TEXT_MISSING;
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* @return bool
|
50 |
+
*/
|
51 |
+
private function is_expired() {
|
52 |
+
return ! $this->is_lifetime()
|
53 |
+
&& (
|
54 |
+
self::SUBSCRIPTION_STATUS_EXPIRED === $this->get_status()
|
55 |
+
|| ( $this->get_expiration() && strtotime( $this->get_expiration() ) <= time() )
|
56 |
+
);
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* @return bool
|
61 |
+
*/
|
62 |
+
private function is_lifetime() {
|
63 |
+
return $this->get_status() === self::SUBSCRIPTION_STATUS_ACTIVE_NO_EXPIRATION;
|
64 |
+
}
|
65 |
+
|
66 |
+
private function get_status() {
|
67 |
+
return $this->status;
|
68 |
+
}
|
69 |
+
|
70 |
+
private function get_expiration() {
|
71 |
+
return $this->expires;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @return bool
|
76 |
+
*/
|
77 |
+
public function is_valid() {
|
78 |
+
return ( $this->is_lifetime()
|
79 |
+
|| ( $this->get_status() === self::SUBSCRIPTION_STATUS_ACTIVE && ! $this->is_expired() ) );
|
80 |
+
}
|
81 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-hooks.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Components_Hooks {
|
4 |
+
|
5 |
+
const EVENT_SEND_COMPONENTS_MONTHLY = 'otgs_send_components_data';
|
6 |
+
const EVENT_SEND_COMPONENTS_AFTER_REGISTRATION = 'otgs_send_components_data_on_product_registration';
|
7 |
+
const REPORT_SCHEDULING_PERIOD = '+1 month';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* @var OTGS_Installer_WP_Components_Storage
|
11 |
+
*/
|
12 |
+
private $storage;
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @var OTGS_Installer_WP_Components_Sender
|
16 |
+
*/
|
17 |
+
private $sender;
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
21 |
+
*/
|
22 |
+
private $setting;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @var OTGS_Installer_PHP_Functions
|
26 |
+
*/
|
27 |
+
private $php_functions;
|
28 |
+
|
29 |
+
public function __construct(
|
30 |
+
OTGS_Installer_WP_Components_Storage $storage,
|
31 |
+
OTGS_Installer_WP_Components_Sender $sender,
|
32 |
+
OTGS_Installer_WP_Share_Local_Components_Setting $setting,
|
33 |
+
OTGS_Installer_PHP_Functions $php_functions
|
34 |
+
) {
|
35 |
+
$this->storage = $storage;
|
36 |
+
$this->sender = $sender;
|
37 |
+
$this->setting = $setting;
|
38 |
+
$this->php_functions = $php_functions;
|
39 |
+
}
|
40 |
+
|
41 |
+
public function add_hooks() {
|
42 |
+
add_action( 'wp_ajax_end_user_get_info', array( $this, 'process_report_instantly' ) );
|
43 |
+
add_action( 'wp_ajax_' . OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION, array( $this, 'force_send_components_data' ), OTGS_Installer_WP_Components_Setting_Ajax::SAVE_SETTING_PRIORITY + 1 );
|
44 |
+
add_action( self::EVENT_SEND_COMPONENTS_MONTHLY, array( $this, 'send_components_data' ) );
|
45 |
+
add_action( self::EVENT_SEND_COMPONENTS_AFTER_REGISTRATION, array( $this, 'send_components_data' ) );
|
46 |
+
add_action( 'init', array( $this, 'schedule_components_report' ) );
|
47 |
+
add_action( 'wp_ajax_save_site_key', array( $this, 'schedule_components_report_when_product_is_registered' ) );
|
48 |
+
}
|
49 |
+
|
50 |
+
public function schedule_components_report() {
|
51 |
+
if ( ! wp_next_scheduled( self::EVENT_SEND_COMPONENTS_MONTHLY ) ) {
|
52 |
+
wp_schedule_single_event( strtotime( self::REPORT_SCHEDULING_PERIOD ), self::EVENT_SEND_COMPONENTS_MONTHLY );
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
public function schedule_components_report_when_product_is_registered() {
|
57 |
+
if ( ! wp_next_scheduled( self::EVENT_SEND_COMPONENTS_AFTER_REGISTRATION ) ) {
|
58 |
+
wp_schedule_single_event( time() + 60, self::EVENT_SEND_COMPONENTS_AFTER_REGISTRATION );
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
public function process_report_instantly() {
|
63 |
+
$this->storage->refresh_cache();
|
64 |
+
$this->sender->send( $this->storage->get(), true );
|
65 |
+
}
|
66 |
+
|
67 |
+
public function force_send_components_data() {
|
68 |
+
$this->storage->refresh_cache();
|
69 |
+
$this->sender->send( $this->storage->get() );
|
70 |
+
}
|
71 |
+
|
72 |
+
public function send_components_data() {
|
73 |
+
if ( $this->storage->is_outdated() ) {
|
74 |
+
$this->storage->refresh_cache();
|
75 |
+
$this->sender->send( $this->storage->get() );
|
76 |
+
}
|
77 |
+
}
|
78 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-sender.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Components_Sender {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var WP_Installer
|
7 |
+
*/
|
8 |
+
private $installer;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
12 |
+
*/
|
13 |
+
private $settings;
|
14 |
+
|
15 |
+
public function __construct( WP_Installer $installer, OTGS_Installer_WP_Share_Local_Components_Setting $settings ) {
|
16 |
+
$this->installer = $installer;
|
17 |
+
$this->settings = $settings;
|
18 |
+
}
|
19 |
+
|
20 |
+
public function send( array $components, $force = false ) {
|
21 |
+
|
22 |
+
if ( ! $this->installer->get_repositories() ) {
|
23 |
+
$this->installer->load_repositories_list();
|
24 |
+
}
|
25 |
+
|
26 |
+
if ( ! $this->installer->get_settings() ) {
|
27 |
+
$this->installer->save_settings();
|
28 |
+
}
|
29 |
+
|
30 |
+
foreach ( $this->installer->get_repositories() as $key => $repository ) {
|
31 |
+
$site_key = $this->installer->get_site_key( $key );
|
32 |
+
if ( $site_key && $this->settings->is_repo_allowed( $key ) ) {
|
33 |
+
wp_remote_post(
|
34 |
+
$repository['api-url'] . '?action=update_site_components',
|
35 |
+
apply_filters( 'installer_fetch_components_data_request', array(
|
36 |
+
'body' => array(
|
37 |
+
'action' => 'update_site_components',
|
38 |
+
'site_key' => $site_key,
|
39 |
+
'site_url' => get_site_url(),
|
40 |
+
'components' => $components,
|
41 |
+
'phpversion' => phpversion(),
|
42 |
+
'force' => $force,
|
43 |
+
),
|
44 |
+
) )
|
45 |
+
);
|
46 |
+
}
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-ajax.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Components_Setting_Ajax {
|
4 |
+
|
5 |
+
const AJAX_ACTION = 'otgs_save_setting_share_local_components';
|
6 |
+
const SAVE_SETTING_PRIORITY = 1;
|
7 |
+
|
8 |
+
/**
|
9 |
+
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
10 |
+
*/
|
11 |
+
private $setting;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @var WP_Installer
|
15 |
+
*/
|
16 |
+
private $installer;
|
17 |
+
|
18 |
+
public function __construct( OTGS_Installer_WP_Share_Local_Components_Setting $setting, WP_Installer $installer ) {
|
19 |
+
$this->setting = $setting;
|
20 |
+
$this->installer = $installer;
|
21 |
+
}
|
22 |
+
|
23 |
+
public function add_hooks() {
|
24 |
+
add_action( 'wp_ajax_' . self::AJAX_ACTION, array( $this, 'save' ), self::SAVE_SETTING_PRIORITY );
|
25 |
+
}
|
26 |
+
|
27 |
+
public function save() {
|
28 |
+
if ( $this->is_valid_request() ) {
|
29 |
+
$user_agree = (int) filter_var( $_POST['agree'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
30 |
+
$repo_request = filter_var( $_POST['repo'], FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
31 |
+
if ( $repo_request ) {
|
32 |
+
$repos = array();
|
33 |
+
foreach ( $this->installer->get_repositories() as $repo_id => $repository ) {
|
34 |
+
if ( $repo_id === $repo_request ) {
|
35 |
+
$repos[ $repo_id ] = $user_agree;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
$this->setting->save( $repos );
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @return bool
|
45 |
+
*/
|
46 |
+
private function is_valid_request() {
|
47 |
+
return isset( $_POST['nonce'] ) && wp_verify_nonce( $_POST['nonce'], self::AJAX_ACTION );
|
48 |
+
}
|
49 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Components_Setting_Resources {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var WP_Installer
|
7 |
+
*/
|
8 |
+
private $installer;
|
9 |
+
|
10 |
+
const HANDLES_OTGS_INSTALLER_UI = 'otgs-installer-ui';
|
11 |
+
|
12 |
+
public function __construct( WP_Installer $installer ) {
|
13 |
+
$this->installer = $installer;
|
14 |
+
}
|
15 |
+
|
16 |
+
public function add_hooks() {
|
17 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_resources' ) );
|
18 |
+
}
|
19 |
+
|
20 |
+
public function enqueue_resources() {
|
21 |
+
wp_register_style( self::HANDLES_OTGS_INSTALLER_UI,
|
22 |
+
$this->installer->res_url() . '/dist/css/ui/styles.css',
|
23 |
+
array(),
|
24 |
+
WP_INSTALLER_VERSION );
|
25 |
+
wp_register_script( self::HANDLES_OTGS_INSTALLER_UI,
|
26 |
+
$this->installer->res_url() . '/dist/js/ui/app.js',
|
27 |
+
array(),
|
28 |
+
WP_INSTALLER_VERSION,
|
29 |
+
true );
|
30 |
+
|
31 |
+
wp_enqueue_style( 'otgs-installer-tooltip', $this->installer->res_url() . '/res/css/tooltip/tooltip.css', array( 'wp-pointer' ), WP_INSTALLER_VERSION );
|
32 |
+
wp_enqueue_script( 'otgs-installer-tooltip', $this->installer->res_url() . '/res/js/tooltip/tooltip.js', array(
|
33 |
+
'wp-pointer',
|
34 |
+
'jquery'
|
35 |
+
), WP_INSTALLER_VERSION );
|
36 |
+
wp_enqueue_script(
|
37 |
+
'otgs-installer-components-save-setting',
|
38 |
+
$this->installer->res_url() . '/res/js/save-components-setting.js',
|
39 |
+
array(),
|
40 |
+
WP_INSTALLER_VERSION
|
41 |
+
);
|
42 |
+
}
|
43 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-components-storage.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Components_Storage {
|
4 |
+
|
5 |
+
const COMPONENTS_CACHE_OPTION_KEY = 'otgs_active_components';
|
6 |
+
|
7 |
+
public function refresh_cache() {
|
8 |
+
$active_theme = wp_get_theme();
|
9 |
+
$installed_plugins = $this->get_plugins();
|
10 |
+
$components = array();
|
11 |
+
|
12 |
+
foreach ( $installed_plugins as $file => $plugin ) {
|
13 |
+
if ( is_plugin_active( $file ) ) {
|
14 |
+
$components['plugin'][] = array(
|
15 |
+
'File' => $file,
|
16 |
+
'Name' => $plugin['Name'],
|
17 |
+
'Version' => $plugin['Version'],
|
18 |
+
);
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
$components['theme'][] = array(
|
23 |
+
'Template' => $active_theme->get_template(),
|
24 |
+
'Name' => $active_theme->get( 'Name' ),
|
25 |
+
'Version' => $active_theme->get( 'Version' ),
|
26 |
+
);
|
27 |
+
|
28 |
+
update_option( self::COMPONENTS_CACHE_OPTION_KEY, $components );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function is_outdated() {
|
32 |
+
$components = $this->get();
|
33 |
+
|
34 |
+
if ( ! $components ) {
|
35 |
+
return true;
|
36 |
+
}
|
37 |
+
|
38 |
+
$current_theme = wp_get_theme();
|
39 |
+
$active_plugins = get_option( 'active_plugins' );
|
40 |
+
|
41 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
42 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
43 |
+
}
|
44 |
+
|
45 |
+
$installed_plugins = $this->get_plugins();
|
46 |
+
|
47 |
+
if ( isset( $components['theme'] ) ) {
|
48 |
+
if ( $components['theme'][0]['Template'] !== $current_theme->get_template() ||
|
49 |
+
$components['theme'][0]['Version'] !== $current_theme->get( 'Version' )
|
50 |
+
) {
|
51 |
+
return true;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
if ( array_key_exists( 'plugin', $components ) ) {
|
56 |
+
$cached_activated_plugins = wp_list_pluck( $components['plugin'], 'File' );
|
57 |
+
sort( $cached_activated_plugins );
|
58 |
+
sort( $active_plugins );
|
59 |
+
|
60 |
+
if ( $cached_activated_plugins !== $active_plugins ) {
|
61 |
+
return true;
|
62 |
+
}
|
63 |
+
|
64 |
+
foreach ( $components['plugin'] as $plugin ) {
|
65 |
+
if ( $plugin['Version'] !== $installed_plugins[ $plugin['File'] ]['Version'] ||
|
66 |
+
! is_plugin_active( $plugin['File'] )
|
67 |
+
) {
|
68 |
+
return true;
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
|
73 |
+
return false;
|
74 |
+
}
|
75 |
+
|
76 |
+
public function get() {
|
77 |
+
return get_option( self::COMPONENTS_CACHE_OPTION_KEY );
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @return array
|
82 |
+
*/
|
83 |
+
public function get_plugins() {
|
84 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
85 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
86 |
+
}
|
87 |
+
|
88 |
+
return get_plugins();
|
89 |
+
}
|
90 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting-hooks.php
ADDED
@@ -0,0 +1,177 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Share_Local_Components_Setting_Hooks {
|
4 |
+
|
5 |
+
const TEMPLATE_CHECKBOX = 'share-local-data-setting';
|
6 |
+
const TEMPLATE_RADIO = 'share-local-data-setting-radio';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* @var OTGS_Installer_Twig_Template_Service
|
10 |
+
*/
|
11 |
+
private $template_service;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @var OTGS_Installer_WP_Share_Local_Components_Setting
|
15 |
+
*/
|
16 |
+
private $setting;
|
17 |
+
|
18 |
+
public function __construct(
|
19 |
+
OTGS_Installer_Twig_Template_Service $template_service,
|
20 |
+
OTGS_Installer_WP_Share_Local_Components_Setting $setting
|
21 |
+
) {
|
22 |
+
$this->template_service = $template_service;
|
23 |
+
$this->setting = $setting;
|
24 |
+
}
|
25 |
+
|
26 |
+
public function add_hooks() {
|
27 |
+
add_action( 'otgs_installer_render_local_components_setting',
|
28 |
+
array(
|
29 |
+
$this,
|
30 |
+
'render_local_components_setting',
|
31 |
+
),
|
32 |
+
10,
|
33 |
+
5 );
|
34 |
+
add_filter( 'otgs_installer_has_local_components_setting',
|
35 |
+
array( $this, 'has_local_components_setting_filter' ),
|
36 |
+
10,
|
37 |
+
2 );
|
38 |
+
add_filter( 'otgs_installer_repository_subscription_status',
|
39 |
+
array( $this, 'get_installer_repository_subscription_status' ),
|
40 |
+
10,
|
41 |
+
2 );
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @param array $args
|
46 |
+
*
|
47 |
+
* @throws \InvalidArgumentException
|
48 |
+
*/
|
49 |
+
public function render_local_components_setting( array $args ) {
|
50 |
+
$params = $this->validate_arguments( $args );
|
51 |
+
|
52 |
+
if ( (bool) $params['use_styles'] ) {
|
53 |
+
wp_enqueue_style( OTGS_Installer_WP_Components_Setting_Resources::HANDLES_OTGS_INSTALLER_UI );
|
54 |
+
wp_enqueue_script( OTGS_Installer_WP_Components_Setting_Resources::HANDLES_OTGS_INSTALLER_UI );
|
55 |
+
}
|
56 |
+
|
57 |
+
$template = self::TEMPLATE_CHECKBOX;
|
58 |
+
if ( (bool) $params['use_radio'] ) {
|
59 |
+
$template = self::TEMPLATE_RADIO;
|
60 |
+
}
|
61 |
+
|
62 |
+
echo $this->template_service->show( $this->get_model( $params ), $template );
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* @param $ignore
|
67 |
+
* @param string $repo (wpml|toolset)
|
68 |
+
*
|
69 |
+
* @return bool
|
70 |
+
*/
|
71 |
+
public function has_local_components_setting_filter( $ignore, $repo ) {
|
72 |
+
return $this->setting->has_setting( $repo );
|
73 |
+
}
|
74 |
+
|
75 |
+
public function get_installer_repository_subscription_status( $ignore, $repo ) {
|
76 |
+
$subscription = WP_Installer()->get_subscription( $repo );
|
77 |
+
|
78 |
+
return $subscription->get_subscription_status_text();
|
79 |
+
}
|
80 |
+
|
81 |
+
private function get_model( $params ) {
|
82 |
+
$plugin_name = $params['plugin_name'];
|
83 |
+
$plugin_uri = $params['plugin_uri'];
|
84 |
+
$plugin_site = $params['plugin_site'];
|
85 |
+
$custom_heading = $params['custom_heading'];
|
86 |
+
$custom_label = $params['custom_label'];
|
87 |
+
$privacy_policy_url = $params['privacy_policy_url'];
|
88 |
+
$privacy_policy_text = $params['privacy_policy_text'];
|
89 |
+
$custom_privacy_policy_text = $params['custom_privacy_policy_text'];
|
90 |
+
$repo = isset( $params['plugin_repository'] ) ? $params['plugin_repository'] : strtolower( $plugin_name );
|
91 |
+
|
92 |
+
return array(
|
93 |
+
'strings' => array(
|
94 |
+
'heading' => __( 'Reporting to', 'installer' ),
|
95 |
+
'report_to' => __( 'Report to', 'installer' ),
|
96 |
+
'radio_report_yes' => __( 'Send theme and plugins info, in order to get faster support and compatibility alerts',
|
97 |
+
'installer' ),
|
98 |
+
'radio_report_no' => __( "Don't send this information and skip compatibility notes",
|
99 |
+
'installer' ),
|
100 |
+
'which_theme_and_plugins' => __( 'which theme and plugins you are using.', 'installer' ),
|
101 |
+
),
|
102 |
+
'custom_raw_heading' => $custom_heading,
|
103 |
+
'custom_raw_label' => $custom_label,
|
104 |
+
'custom_privacy_policy_text' => $custom_privacy_policy_text,
|
105 |
+
'privacy_policy_url' => $privacy_policy_url,
|
106 |
+
'privacy_policy_text' => $privacy_policy_text,
|
107 |
+
'component_name' => $plugin_name,
|
108 |
+
'company_url' => $plugin_uri,
|
109 |
+
'company_site' => $plugin_site,
|
110 |
+
'nonce' => array(
|
111 |
+
'action' => OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION,
|
112 |
+
'value' => wp_create_nonce( OTGS_Installer_WP_Components_Setting_Ajax::AJAX_ACTION ),
|
113 |
+
),
|
114 |
+
'repo' => $repo,
|
115 |
+
'is_repo_allowed' => $this->setting->is_repo_allowed( $repo ),
|
116 |
+
'has_setting' => (int) $this->setting->has_setting( $repo ),
|
117 |
+
);
|
118 |
+
}
|
119 |
+
|
120 |
+
/**
|
121 |
+
* @param array $args
|
122 |
+
*
|
123 |
+
* @return array
|
124 |
+
* @throws \InvalidArgumentException
|
125 |
+
*/
|
126 |
+
private function validate_arguments( array $args ) {
|
127 |
+
if ( ! $args ) {
|
128 |
+
throw new InvalidArgumentException( 'Arguments are missing' );
|
129 |
+
}
|
130 |
+
|
131 |
+
$defaults = array(
|
132 |
+
'custom_heading' => null,
|
133 |
+
'custom_label' => null,
|
134 |
+
'custom_radio_label_yes' => null,
|
135 |
+
'custom_radio_label_no' => null,
|
136 |
+
'custom_privacy_policy_text' => null,
|
137 |
+
'use_styles' => false,
|
138 |
+
'use_radio' => false,
|
139 |
+
'privacy_policy_text' => __( 'Privacy and data usage policy', 'installer' ),
|
140 |
+
'plugin_site' => null,
|
141 |
+
'plugin_uri' => null,
|
142 |
+
);
|
143 |
+
|
144 |
+
$required_arguments = array( 'plugin_name', 'privacy_policy_url' );
|
145 |
+
|
146 |
+
if ( ! $this->must_use_radios( $args ) ) {
|
147 |
+
$required_arguments = array( 'plugin_uri', 'plugin_site' );
|
148 |
+
}
|
149 |
+
|
150 |
+
foreach ( $required_arguments as $required_argument ) {
|
151 |
+
if ( ! $this->has_required_argument( $args, $required_argument ) ) {
|
152 |
+
throw new InvalidArgumentException( $required_argument . ' is missing' );
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
return array_merge( $defaults, $args );
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* @param array $args
|
161 |
+
*
|
162 |
+
* @return bool
|
163 |
+
*/
|
164 |
+
private function must_use_radios( array $args ) {
|
165 |
+
return array_key_exists( 'use_radio', $args ) && $args['use_radio'];
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* @param array $args
|
170 |
+
* @param string $required_argument
|
171 |
+
*
|
172 |
+
* @return bool
|
173 |
+
*/
|
174 |
+
private function has_required_argument( array $args, $required_argument ) {
|
175 |
+
return array_key_exists( $required_argument, $args ) && $args[ $required_argument ];
|
176 |
+
}
|
177 |
+
}
|
vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_WP_Share_Local_Components_Setting {
|
4 |
+
|
5 |
+
const OPTION_KEY = 'otgs_share_local_components';
|
6 |
+
|
7 |
+
public function save( array $repos ) {
|
8 |
+
$settings = array_merge( $this->get(), $repos );
|
9 |
+
update_option( self::OPTION_KEY, $settings );
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* @param string $repo
|
14 |
+
*
|
15 |
+
* @return bool
|
16 |
+
*/
|
17 |
+
public function is_repo_allowed( $repo ) {
|
18 |
+
$allowed_repos = $this->get();
|
19 |
+
|
20 |
+
return isset( $allowed_repos[ $repo ] ) && $allowed_repos[ $repo ];
|
21 |
+
}
|
22 |
+
|
23 |
+
public function has_setting( $repo ) {
|
24 |
+
$current_value = $this->get();
|
25 |
+
|
26 |
+
return $current_value
|
27 |
+
&& array_key_exists( $repo, $current_value );
|
28 |
+
}
|
29 |
+
|
30 |
+
private function get() {
|
31 |
+
$setting = get_option( self::OPTION_KEY );
|
32 |
+
return $setting ? $setting : array();
|
33 |
+
}
|
34 |
+
}
|
vendor/otgs/installer/includes/class-otgs-twig-autoloader.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* This file is part of Twig.
|
5 |
+
*
|
6 |
+
* (c) Fabien Potencier
|
7 |
+
*
|
8 |
+
* For the full copyright and license information, please view the LICENSE
|
9 |
+
* file that was distributed with this source code.
|
10 |
+
*/
|
11 |
+
|
12 |
+
class OTGS_Twig_Autoloader {
|
13 |
+
|
14 |
+
/**
|
15 |
+
* @param bool $prepend
|
16 |
+
*/
|
17 |
+
public static function register( $prepend = false ) {
|
18 |
+
if ( PHP_VERSION_ID < 50300 ) {
|
19 |
+
spl_autoload_register( array( __CLASS__, 'autoload' ) );
|
20 |
+
} else {
|
21 |
+
spl_autoload_register( array( __CLASS__, 'autoload' ), true, $prepend );
|
22 |
+
}
|
23 |
+
|
24 |
+
}
|
25 |
+
|
26 |
+
/**
|
27 |
+
* @param string $class
|
28 |
+
*/
|
29 |
+
public static function autoload( $class ) {
|
30 |
+
if ( 0 !== strpos( $class, 'Twig' ) ) {
|
31 |
+
return;
|
32 |
+
}
|
33 |
+
|
34 |
+
$file = WP_Installer()->plugin_path() . '/../../twig/twig/lib/' . str_replace( array( '_', "\0" ), array( '/', '' ), $class . '.php' );
|
35 |
+
|
36 |
+
if ( is_file( $file ) ) {
|
37 |
+
require $file;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
vendor/otgs/installer/includes/class-translation-service-info.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Translation_Service_Info {
|
4 |
+
|
5 |
+
function __construct() {
|
6 |
+
|
7 |
+
add_action( 'installer_fetched_subscription_data', array( $this, 'save_info' ), 10, 2 );
|
8 |
+
|
9 |
+
}
|
10 |
+
|
11 |
+
function save_info( $data, $repository_id ) {
|
12 |
+
|
13 |
+
$ts_info = isset( WP_Installer()->settings['repositories'][ $repository_id ]['ts_info'] ) ?
|
14 |
+
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info'] : false;
|
15 |
+
|
16 |
+
$save_settings = false;
|
17 |
+
if ( isset( $data->ts_info['preferred'] ) && empty( $ts_info['preferred'] ) ) {
|
18 |
+
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info']['preferred'] = $data->ts_info['preferred'];
|
19 |
+
$save_settings = true;
|
20 |
+
}
|
21 |
+
|
22 |
+
if ( isset( $data->ts_info['referal'] ) && empty( $ts_info['referal'] ) ) {
|
23 |
+
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info']['referal'] = $data->ts_info['referal'];
|
24 |
+
$save_settings = true;
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( ! empty( $data->ts_info['client_id'] ) ) { // can be updated
|
28 |
+
WP_Installer()->settings['repositories'][ $repository_id ]['ts_info']['client_id'] = $data->ts_info['client_id'];
|
29 |
+
$save_settings = true;
|
30 |
+
}
|
31 |
+
|
32 |
+
if ( $save_settings ) {
|
33 |
+
WP_Installer()->save_settings();
|
34 |
+
}
|
35 |
+
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
39 |
+
|
40 |
+
new Translation_Service_Info();
|
vendor/otgs/installer/includes/class-wp-installer-api.php
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class WP_Installer_API{
|
4 |
+
|
5 |
+
public static function get_product_installer_link($repository_id, $package_id = false){
|
6 |
+
|
7 |
+
$menu_url = WP_Installer()->menu_url();
|
8 |
+
|
9 |
+
$url = $menu_url . '#' . $repository_id;
|
10 |
+
if($package_id){
|
11 |
+
$url .= '/' . $package_id;
|
12 |
+
}
|
13 |
+
|
14 |
+
return $url;
|
15 |
+
|
16 |
+
}
|
17 |
+
|
18 |
+
public static function get_product_price($repository_id, $package_id, $product_id, $incl_discount = false){
|
19 |
+
|
20 |
+
$price = WP_Installer()->get_product_price($repository_id, $package_id, $product_id, $incl_discount);
|
21 |
+
|
22 |
+
return $price;
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Retrieve the preferred translation service.
|
27 |
+
*
|
28 |
+
* @since 1.6.5
|
29 |
+
*
|
30 |
+
* @param string The repository id (e.g. wpml)
|
31 |
+
* @return string The translation service id
|
32 |
+
*/
|
33 |
+
public static function get_preferred_ts($repository_id = 'wpml'){
|
34 |
+
|
35 |
+
if(isset(WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'])){
|
36 |
+
return WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'];
|
37 |
+
}
|
38 |
+
|
39 |
+
return false;
|
40 |
+
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Set the preferred translation service.
|
45 |
+
*
|
46 |
+
* @since 1.6.5
|
47 |
+
*
|
48 |
+
* @param string The translation service id
|
49 |
+
* @param string The repository id (e.g. wpml)
|
50 |
+
*/
|
51 |
+
public static function set_preferred_ts( $value, $repository_id = 'wpml' ){
|
52 |
+
|
53 |
+
if( isset( WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'] ) ){
|
54 |
+
|
55 |
+
WP_Installer()->settings['repositories'][$repository_id]['ts_info']['preferred'] = $value;
|
56 |
+
|
57 |
+
WP_Installer()->save_settings();
|
58 |
+
|
59 |
+
}
|
60 |
+
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Retrieve the referring translation service (if any)
|
65 |
+
*
|
66 |
+
* @since 1.6.5
|
67 |
+
*
|
68 |
+
* @param string The repository id (e.g. wpml)
|
69 |
+
* @return string The translation service id or false
|
70 |
+
*/
|
71 |
+
public static function get_ts_referal($repository_id = 'wpml'){
|
72 |
+
|
73 |
+
if(isset(WP_Installer()->settings['repositories'][$repository_id]['ts_info']['referal'])){
|
74 |
+
return WP_Installer()->settings['repositories'][$repository_id]['ts_info']['referal'];
|
75 |
+
}
|
76 |
+
|
77 |
+
return false;
|
78 |
+
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Retrieve the translation services client id for a specific repository (if any)
|
83 |
+
*
|
84 |
+
* @since 1.7.9
|
85 |
+
*
|
86 |
+
* @param string The repository id (e.g. wpml)
|
87 |
+
* @return string The client id or false
|
88 |
+
*/
|
89 |
+
public static function get_ts_client_id( $repository_id = 'wpml' ){
|
90 |
+
|
91 |
+
if(isset(WP_Installer()->settings['repositories'][$repository_id]['ts_info']['client_id'])){
|
92 |
+
return WP_Installer()->settings['repositories'][$repository_id]['ts_info']['client_id'];
|
93 |
+
}
|
94 |
+
|
95 |
+
return false;
|
96 |
+
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Retrieve the site key corresponding to a repository.
|
101 |
+
* This is a wrapper of WP_Installer::get_site_key()
|
102 |
+
* @see WP_Installer::get_site_key()
|
103 |
+
*
|
104 |
+
* @since 1.7.9
|
105 |
+
*
|
106 |
+
* @param string The repository id (e.g. wpml)
|
107 |
+
* @return string The site key (or false)
|
108 |
+
*/
|
109 |
+
public static function get_site_key( $repository_id = 'wpml' ){
|
110 |
+
|
111 |
+
return WP_Installer()->get_site_key( $repository_id );
|
112 |
+
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Retrieve the ID of the last user who registered a repository.
|
117 |
+
*
|
118 |
+
* @since 1.7.16
|
119 |
+
*
|
120 |
+
* @param string The repository id (e.g. wpml)
|
121 |
+
* @return int The user id (or zero)
|
122 |
+
*/
|
123 |
+
public static function get_registering_user_id( $repository_id = 'wpml' ){
|
124 |
+
|
125 |
+
$user_id = 0;
|
126 |
+
if( isset( WP_Installer()->settings['repositories'][$repository_id]['subscription']['registered_by'] ) ){
|
127 |
+
$user_id = WP_Installer()->settings['repositories'][$repository_id]['subscription']['registered_by'];
|
128 |
+
}
|
129 |
+
|
130 |
+
return $user_id;
|
131 |
+
}
|
132 |
+
}
|
vendor/otgs/installer/includes/class-wp-installer-channels.php
ADDED
@@ -0,0 +1,282 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class WP_Installer_Channels
|
5 |
+
* @since 1.8
|
6 |
+
*/
|
7 |
+
class WP_Installer_Channels{
|
8 |
+
|
9 |
+
const CHANNEL_PRODUCTION = 'production';
|
10 |
+
const CHANNEL_BETA = 'beta';
|
11 |
+
const CHANNEL_DEVELOPMENT = 'development';
|
12 |
+
|
13 |
+
protected static $_instance = null;
|
14 |
+
|
15 |
+
function __construct() {
|
16 |
+
add_action( 'init', array( $this, 'init' ), 20 ); // after Installer
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @return null|WP_Installer_Channels
|
21 |
+
*/
|
22 |
+
public static function instance() {
|
23 |
+
|
24 |
+
if ( is_null( self::$_instance ) ) {
|
25 |
+
self::$_instance = new self();
|
26 |
+
}
|
27 |
+
|
28 |
+
return self::$_instance;
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Get the channel literal id based on the numeric id
|
33 |
+
*
|
34 |
+
* @param mixed $id
|
35 |
+
*
|
36 |
+
* @return string
|
37 |
+
*/
|
38 |
+
public static function channel_name_by_id( $id ) {
|
39 |
+
if ( self::CHANNEL_DEVELOPMENT === $id ) {
|
40 |
+
$channel = __( 'Development', 'installer' );
|
41 |
+
} elseif ( self::CHANNEL_BETA === $id ) {
|
42 |
+
$channel = __( 'Beta', 'installer' );
|
43 |
+
} else {
|
44 |
+
$channel = __( 'Production', 'installer' );
|
45 |
+
}
|
46 |
+
|
47 |
+
return $channel;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Initialization
|
52 |
+
*/
|
53 |
+
public function init(){
|
54 |
+
global $pagenow;
|
55 |
+
|
56 |
+
if ( defined( 'DOING_AJAX' ) ) {
|
57 |
+
add_action( 'wp_ajax_installer_set_channel', array( $this, 'set_channel' ) );
|
58 |
+
}
|
59 |
+
|
60 |
+
if ( $pagenow === 'plugin-install.php' && isset( $_GET['tab'] ) && $_GET['tab'] === 'commercial' ) {
|
61 |
+
wp_enqueue_script( 'installer-channels', WP_Installer()->res_url() . '/res/js/channels.js', array( 'jquery' ), WP_Installer()->version() );
|
62 |
+
}
|
63 |
+
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Ajax handler for channel switching
|
68 |
+
*/
|
69 |
+
public function set_channel(){
|
70 |
+
$repository_id = sanitize_text_field( $_POST['repository_id'] );
|
71 |
+
$channel = sanitize_text_field( $_POST['channel'] );
|
72 |
+
|
73 |
+
$response = array();
|
74 |
+
|
75 |
+
if( $_POST['nonce'] === wp_create_nonce( 'installer_set_channel:' . $repository_id ) ){
|
76 |
+
|
77 |
+
if( isset( WP_Installer()->settings['repositories'][$repository_id] ) ){
|
78 |
+
WP_Installer()->settings['repositories'][$repository_id]['channel'] = $channel;
|
79 |
+
WP_Installer()->settings['repositories'][$repository_id]['no-prompt'] = $_POST['noprompt'] === 'true';
|
80 |
+
WP_Installer()->save_settings();
|
81 |
+
}
|
82 |
+
|
83 |
+
WP_Installer()->refresh_repositories_data();
|
84 |
+
|
85 |
+
$response['status'] = 'OK';
|
86 |
+
}
|
87 |
+
|
88 |
+
echo json_encode( $response );
|
89 |
+
exit;
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* @param string $repository_id
|
94 |
+
*
|
95 |
+
* @return int
|
96 |
+
*/
|
97 |
+
public function get_channel( $repository_id ){
|
98 |
+
$channel = self::CHANNEL_PRODUCTION;
|
99 |
+
if( isset( WP_Installer()->settings['repositories'][$repository_id]['channel'] ) ){
|
100 |
+
$channel = WP_Installer()->settings['repositories'][$repository_id]['channel'];
|
101 |
+
}
|
102 |
+
return $channel;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @param $repository_id
|
107 |
+
*
|
108 |
+
* @return bool
|
109 |
+
*/
|
110 |
+
private function get_no_prompt( $repository_id ) {
|
111 |
+
$settings = WP_Installer()->settings;
|
112 |
+
|
113 |
+
return ! empty( $settings['repositories'][ $repository_id ]['no-prompt'] );
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* @param string $repository_id
|
118 |
+
* @param array $downloads
|
119 |
+
*/
|
120 |
+
public function load_channel_selector( $repository_id, $downloads ) {
|
121 |
+
|
122 |
+
$available_channels = $this->get_available_channels( $repository_id );
|
123 |
+
|
124 |
+
if ( $available_channels ) {
|
125 |
+
$args = array(
|
126 |
+
'can_switch' => $this->can_use_unstable_channels( $downloads ) || $this->get_channel( $repository_id ) > 1,
|
127 |
+
'channels' => $available_channels,
|
128 |
+
'repository_id' => $repository_id,
|
129 |
+
'current_channel' => $this->get_channel( $repository_id ),
|
130 |
+
'no_prompt' => $this->get_no_prompt( $repository_id ),
|
131 |
+
'nonce' => wp_create_nonce( 'installer_set_channel:' . $repository_id )
|
132 |
+
);
|
133 |
+
extract( $args );
|
134 |
+
include WP_Installer()->plugin_path() . '/templates/channel-selector.php';
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* The beta and development channels can be used only when already using the most up to date versions
|
140 |
+
* @param array $downloads
|
141 |
+
*
|
142 |
+
* @return bool
|
143 |
+
*/
|
144 |
+
public function can_use_unstable_channels( $downloads ){
|
145 |
+
|
146 |
+
$can = true;
|
147 |
+
foreach( $downloads as $download ){
|
148 |
+
$available_version = $download['version'];
|
149 |
+
$installed_version = WP_Installer()->plugin_is_installed( $download['name'], $download['slug'] );
|
150 |
+
if( $installed_version !== false && version_compare( $available_version, $installed_version, '>' ) ){
|
151 |
+
$can = false;
|
152 |
+
break;
|
153 |
+
}
|
154 |
+
}
|
155 |
+
|
156 |
+
return $can;
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Get available updates channels. Only include channels with actual downloads available.
|
161 |
+
*
|
162 |
+
* @param string $repository_id
|
163 |
+
*
|
164 |
+
* @return array
|
165 |
+
*/
|
166 |
+
public function get_available_channels( $repository_id ) {
|
167 |
+
|
168 |
+
$beta = false;
|
169 |
+
$dev = false;
|
170 |
+
|
171 |
+
$downloads = WP_Installer()->settings['repositories'][ $repository_id ]['data']['downloads'];
|
172 |
+
foreach ( $downloads as $type => $download_types ) {
|
173 |
+
foreach ( $download_types as $download ) {
|
174 |
+
$extra_channels = isset( $download['extra_channels'] ) ? array_keys( $download['extra_channels'] ) : array();
|
175 |
+
if ( ! $beta && in_array( self::CHANNEL_BETA, $extra_channels ) ) {
|
176 |
+
$beta = true;
|
177 |
+
}
|
178 |
+
if ( ! $dev && in_array( self::CHANNEL_DEVELOPMENT, $extra_channels ) ) {
|
179 |
+
$dev = true;
|
180 |
+
}
|
181 |
+
if ( $beta && $dev ) {
|
182 |
+
break;
|
183 |
+
}
|
184 |
+
}
|
185 |
+
}
|
186 |
+
|
187 |
+
$channels = array();
|
188 |
+
if ( $beta || $dev ) {
|
189 |
+
$channels[ self::CHANNEL_PRODUCTION ] = self::channel_name_by_id( self::CHANNEL_PRODUCTION );
|
190 |
+
if ( $beta ) {
|
191 |
+
$channels[ self::CHANNEL_BETA ] = self::channel_name_by_id( self::CHANNEL_BETA );
|
192 |
+
}
|
193 |
+
if ( $dev ) {
|
194 |
+
$channels[ self::CHANNEL_DEVELOPMENT ] = self::channel_name_by_id( self::CHANNEL_DEVELOPMENT );
|
195 |
+
}
|
196 |
+
}
|
197 |
+
|
198 |
+
return $channels;
|
199 |
+
}
|
200 |
+
|
201 |
+
/**
|
202 |
+
* @param string $repository_id
|
203 |
+
* @param array $downloads
|
204 |
+
*
|
205 |
+
* @return array
|
206 |
+
*/
|
207 |
+
public function filter_downloads_by_channel( $repository_id, $downloads ) {
|
208 |
+
|
209 |
+
$current_channel = $this->get_channel( $repository_id );
|
210 |
+
|
211 |
+
foreach ( $downloads as $type => $type_downloads ) {
|
212 |
+
foreach ( $type_downloads as $slug => $download ) {
|
213 |
+
|
214 |
+
$override_download = array();
|
215 |
+
if ( $current_channel === self::CHANNEL_DEVELOPMENT ) {
|
216 |
+
if( ! empty( $download['channels']['development'] ) ){
|
217 |
+
$override_download = $download['channels']['development'];
|
218 |
+
$override_download['channel'] = self::CHANNEL_DEVELOPMENT;
|
219 |
+
}elseif( ! empty( $download['channels']['beta'] ) ){
|
220 |
+
$override_download = $download['channels']['beta'];
|
221 |
+
$override_download['channel'] = self::CHANNEL_BETA;
|
222 |
+
}
|
223 |
+
}elseif ( $current_channel === self::CHANNEL_BETA && ! empty( $download['channels']['beta'] ) ) {
|
224 |
+
$override_download = $download['channels']['beta'];
|
225 |
+
$override_download['channel'] = self::CHANNEL_BETA;
|
226 |
+
}
|
227 |
+
|
228 |
+
if ( $override_download ) {
|
229 |
+
foreach ( $override_download as $key => $value ) {
|
230 |
+
$downloads[ $type ][ $slug ][ $key ] = $value;
|
231 |
+
}
|
232 |
+
} else {
|
233 |
+
$downloads[ $type ][ $slug ]['channel'] = self::CHANNEL_PRODUCTION;
|
234 |
+
}
|
235 |
+
unset ( $downloads[ $type ][ $slug ]['channels'] );
|
236 |
+
|
237 |
+
$downloads[ $type ][ $slug ]['extra_channels'] = array();
|
238 |
+
if( isset( $download['channels'] ) ) {
|
239 |
+
foreach( $download['channels'] as $channel_id => $channel ){
|
240 |
+
$downloads[ $type ][ $slug ]['extra_channels'][$channel_id] = array(
|
241 |
+
'version' => $channel['version']
|
242 |
+
);
|
243 |
+
}
|
244 |
+
}
|
245 |
+
|
246 |
+
}
|
247 |
+
}
|
248 |
+
|
249 |
+
return $downloads;
|
250 |
+
}
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Get the source channel for the installed version when on the Beta or Development channel
|
254 |
+
* @param string $version
|
255 |
+
* @param string $repository_id
|
256 |
+
* @param string $download_id
|
257 |
+
* @param string $download_kind
|
258 |
+
*
|
259 |
+
* @return string
|
260 |
+
*/
|
261 |
+
public function get_download_source_channel( $version, $repository_id, $download_id, $download_kind ) {
|
262 |
+
|
263 |
+
$version_channel = '';
|
264 |
+
$installer_settings = WP_Installer()->get_settings();
|
265 |
+
if ( isset( $installer_settings['repositories'][ $repository_id ] ) ) {
|
266 |
+
$repository_data = $installer_settings['repositories'][ $repository_id ]['data'];
|
267 |
+
if ( isset( $repository_data['downloads'][ $download_kind ][ $download_id ]['extra_channels'] ) ) {
|
268 |
+
|
269 |
+
foreach ( $repository_data['downloads'][ $download_kind ][ $download_id ]['extra_channels'] as $channel_id => $channel_data ) {
|
270 |
+
if ( $version === $channel_data['version'] ) {
|
271 |
+
$version_channel = self::channel_name_by_id( $channel_id );
|
272 |
+
break;
|
273 |
+
}
|
274 |
+
|
275 |
+
}
|
276 |
+
}
|
277 |
+
|
278 |
+
}
|
279 |
+
|
280 |
+
return $version_channel;
|
281 |
+
}
|
282 |
+
}
|
vendor/otgs/installer/includes/class-wp-installer.php
ADDED
@@ -0,0 +1,2829 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
final class WP_Installer {
|
4 |
+
protected static $_instance = null;
|
5 |
+
|
6 |
+
public $settings = array();
|
7 |
+
|
8 |
+
private $repositories = array();
|
9 |
+
|
10 |
+
protected $api_debug = '';
|
11 |
+
|
12 |
+
private $config = array();
|
13 |
+
|
14 |
+
protected $_plugins_renew_warnings = array();
|
15 |
+
|
16 |
+
private $admin_messages = array();
|
17 |
+
|
18 |
+
private $_using_icl = false;
|
19 |
+
private $_wpml_version = false;
|
20 |
+
|
21 |
+
private $package_source = array();
|
22 |
+
|
23 |
+
const SITE_KEY_VALIDATION_SOURCE_OTHER = 0;
|
24 |
+
const SITE_KEY_VALIDATION_SOURCE_DOWNLOAD_SPECIFIC = 1;
|
25 |
+
const SITE_KEY_VALIDATION_SOURCE_DOWNLOAD_REPORT = 2;
|
26 |
+
const SITE_KEY_VALIDATION_SOURCE_REGISTRATION = 3;
|
27 |
+
const SITE_KEY_VALIDATION_SOURCE_REVALIDATION = 4;
|
28 |
+
const SITE_KEY_VALIDATION_SOURCE_UPDATES_CHECK = 5;
|
29 |
+
|
30 |
+
public $dependencies;
|
31 |
+
|
32 |
+
private $components_setting;
|
33 |
+
|
34 |
+
public static function instance() {
|
35 |
+
|
36 |
+
if ( is_null( self::$_instance ) ) {
|
37 |
+
self::$_instance = new self();
|
38 |
+
}
|
39 |
+
|
40 |
+
return self::$_instance;
|
41 |
+
}
|
42 |
+
|
43 |
+
public function __construct() {
|
44 |
+
|
45 |
+
if ( ! is_admin() || ! is_user_logged_in() ) {
|
46 |
+
return;
|
47 |
+
} //Only for admin
|
48 |
+
|
49 |
+
$this->settings = $this->get_settings();
|
50 |
+
|
51 |
+
add_action( 'admin_notices', array( $this, 'show_site_key_nags' ) );
|
52 |
+
|
53 |
+
add_action( 'admin_notices', array( $this, 'show_admin_messages' ) );
|
54 |
+
|
55 |
+
add_action( 'admin_init', array( $this, 'load_embedded_plugins' ), 0 );
|
56 |
+
|
57 |
+
add_action( 'admin_menu', array( $this, 'menu_setup' ) );
|
58 |
+
add_action( 'network_admin_menu', array( $this, 'menu_setup' ) );
|
59 |
+
|
60 |
+
if ( defined( 'DOING_AJAX' ) && isset( $_POST['action'] ) && $_POST['action'] == 'installer_download_plugin' ) {
|
61 |
+
add_filter( 'site_transient_update_plugins', array( $this, 'plugins_upgrade_check' ) );
|
62 |
+
}
|
63 |
+
add_filter( 'plugins_api', array( $this, 'custom_plugins_api_call' ), 10, 3 );
|
64 |
+
add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'plugins_upgrade_check' ) );
|
65 |
+
|
66 |
+
// register repositories
|
67 |
+
$this->load_repositories_list();
|
68 |
+
|
69 |
+
// default config
|
70 |
+
$this->config['plugins_install_tab'] = false;
|
71 |
+
|
72 |
+
add_action( 'init', array( $this, 'init' ) );
|
73 |
+
|
74 |
+
//add_filter('wp_installer_buy_url', array($this, 'append_parameters_to_buy_url'));
|
75 |
+
|
76 |
+
add_action( 'init', array( $this, 'load_locale' ) );
|
77 |
+
|
78 |
+
}
|
79 |
+
|
80 |
+
public function get_repositories() {
|
81 |
+
|
82 |
+
return $this->repositories;
|
83 |
+
|
84 |
+
}
|
85 |
+
|
86 |
+
public function set_config( $key, $value ) {
|
87 |
+
|
88 |
+
$this->config[ $key ] = $value;
|
89 |
+
|
90 |
+
}
|
91 |
+
|
92 |
+
public function init() {
|
93 |
+
global $pagenow;
|
94 |
+
|
95 |
+
if ( empty( $this->settings['last_repositories_update'] ) || time() - $this->settings['last_repositories_update'] > 86400
|
96 |
+
|| ( isset( $_GET['force-check'] ) && $_GET['force-check'] == 1 )
|
97 |
+
) {
|
98 |
+
$this->refresh_repositories_data();
|
99 |
+
}
|
100 |
+
|
101 |
+
$this->dependencies = new Installer_Dependencies;
|
102 |
+
|
103 |
+
if ( empty( $this->settings['_pre_1_0_clean_up'] ) ) {
|
104 |
+
$this->_pre_1_0_clean_up();
|
105 |
+
}
|
106 |
+
|
107 |
+
$this->settings = $this->_old_products_format_backwards_compatibility( $this->settings );
|
108 |
+
|
109 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
110 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
111 |
+
}
|
112 |
+
|
113 |
+
$this->_using_icl = function_exists( 'wpml_site_uses_icl' ) && wpml_site_uses_icl();
|
114 |
+
$this->_wpml_version = defined( 'ICL_SITEPRESS_VERSION' ) ? ICL_SITEPRESS_VERSION : '';
|
115 |
+
|
116 |
+
wp_enqueue_script( 'installer-admin', $this->res_url() . '/res/js/admin.js', array( 'jquery' ), $this->version() );
|
117 |
+
wp_enqueue_style( 'installer-admin', $this->res_url() . '/res/css/admin.css', array(), $this->version() );
|
118 |
+
|
119 |
+
$translation_array = array(
|
120 |
+
'installing' => __( 'Installing %s', 'installer' ),
|
121 |
+
'updating' => __( 'Updating %s', 'installer' ),
|
122 |
+
'activating' => __( 'Activating %s', 'installer' )
|
123 |
+
);
|
124 |
+
|
125 |
+
wp_localize_script( 'installer-admin', 'installer_strings', $translation_array );
|
126 |
+
|
127 |
+
if ( $pagenow == 'plugins.php' ) {
|
128 |
+
add_action( 'admin_notices', array( $this, 'setup_plugins_page_notices' ) );
|
129 |
+
add_action( 'admin_notices', array( $this, 'setup_plugins_renew_warnings' ), 10 );
|
130 |
+
add_action( 'admin_notices', array( $this, 'queue_plugins_renew_warnings' ), 20 );
|
131 |
+
|
132 |
+
add_action( 'admin_init', array( $this, 'setup_plugins_action_links' ) );
|
133 |
+
|
134 |
+
}
|
135 |
+
|
136 |
+
if ( $this->is_repositories_page() ) {
|
137 |
+
add_action( 'admin_init', array( $this, 'validate_repository_subscription' ) );
|
138 |
+
}
|
139 |
+
|
140 |
+
if ( defined( 'DOING_AJAX' ) ) {
|
141 |
+
add_action( 'wp_ajax_save_site_key', array( $this, 'save_site_key' ) );
|
142 |
+
add_action( 'wp_ajax_remove_site_key', array( $this, 'remove_site_key_ajax' ) );
|
143 |
+
add_action( 'wp_ajax_update_site_key', array( $this, 'update_site_key' ) );
|
144 |
+
|
145 |
+
add_action( 'wp_ajax_installer_download_plugin', array( $this, 'download_plugin_ajax_handler' ) );
|
146 |
+
add_action( 'wp_ajax_installer_activate_plugin', array( $this, 'activate_plugin' ) );
|
147 |
+
|
148 |
+
add_action( 'wp_ajax_installer_dismiss_nag', array( $this, 'dismiss_nag' ) );
|
149 |
+
}
|
150 |
+
|
151 |
+
if ( $pagenow === 'update.php' ) {
|
152 |
+
if ( isset( $_GET['action'] ) && $_GET['action'] === 'update-selected' ) {
|
153 |
+
add_action( 'admin_head', array( $this, 'plugin_upgrade_custom_errors' ) ); //iframe/bulk
|
154 |
+
} else {
|
155 |
+
add_action( 'all_admin_notices', array( $this, 'plugin_upgrade_custom_errors' ) ); //regular/singular
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
// WP 4.2
|
160 |
+
if ( defined( 'DOING_AJAX' ) ) {
|
161 |
+
add_action( 'wp_ajax_update-plugin', array(
|
162 |
+
$this,
|
163 |
+
'plugin_upgrade_custom_errors'
|
164 |
+
), 0 ); // high priority, before WP
|
165 |
+
}
|
166 |
+
|
167 |
+
//Include theme support
|
168 |
+
include_once $this->plugin_path() . '/includes/class-installer-theme.php';
|
169 |
+
|
170 |
+
// Extra information about the source of Installer
|
171 |
+
$package_source_file = $this->plugin_path() . '/installer-source.json';
|
172 |
+
if ( file_exists( $package_source_file ) ) {
|
173 |
+
WP_Filesystem();
|
174 |
+
global $wp_filesystem;
|
175 |
+
$this->package_source = json_decode( $wp_filesystem->get_contents( $package_source_file ) );
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
protected function log( $message ) {
|
180 |
+
require_once ABSPATH . 'wp-admin/includes/file.php';
|
181 |
+
WP_Filesystem();
|
182 |
+
global $wp_filesystem;
|
183 |
+
if ( defined( 'WPML_INSTALLER_LOGGING' ) && WPML_INSTALLER_LOGGING ) {
|
184 |
+
$wp_filesystem->put_contents( $this->plugin_path() . '/installer.log', current_time( 'mysql' ) . "\t" . $message . "\n" );
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
public function register_admin_message( $text, $type = 'updated' ) {
|
189 |
+
$this->admin_messages[] = array( 'text' => $text, 'type' => $type );
|
190 |
+
}
|
191 |
+
|
192 |
+
public function show_admin_messages() {
|
193 |
+
if ( ! empty( $this->admin_messages ) ) {
|
194 |
+
$types = array( 'error', 'updated', 'notice' );
|
195 |
+
foreach ( $this->admin_messages as $message ) {
|
196 |
+
$class = in_array( $message['type'], $types, true ) ? $message['type'] : 'updated';
|
197 |
+
?>
|
198 |
+
<div class="<?php echo $class ?>">
|
199 |
+
<p>
|
200 |
+
<?php echo $message['text'] ?>
|
201 |
+
</p>
|
202 |
+
</div>
|
203 |
+
<?php
|
204 |
+
}
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
208 |
+
public function load_locale() {
|
209 |
+
if ( function_exists( 'get_user_locale' ) ) {
|
210 |
+
$locale = get_user_locale();
|
211 |
+
} else {
|
212 |
+
$locale = get_locale();
|
213 |
+
}
|
214 |
+
$locale = apply_filters( 'plugin_locale', $locale, 'installer' );
|
215 |
+
$mo_file = $this->plugin_path() . '/locale/installer-' . $locale . '.mo';
|
216 |
+
if ( file_exists( $mo_file ) ) {
|
217 |
+
load_textdomain( 'installer', $mo_file );
|
218 |
+
}
|
219 |
+
}
|
220 |
+
|
221 |
+
public function load_embedded_plugins() {
|
222 |
+
if ( file_exists( $this->plugin_path() . '/embedded-plugins' ) ) {
|
223 |
+
include_once $this->plugin_path() . '/embedded-plugins/embedded-plugins.class.php';
|
224 |
+
$this->installer_embedded_plugins = new Installer_Embedded_Plugins();
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
+
public function menu_setup() {
|
229 |
+
global $pagenow;
|
230 |
+
|
231 |
+
if ( is_multisite() && ! is_network_admin() ) {
|
232 |
+
$this->menu_multisite_redirect();
|
233 |
+
add_options_page( __( 'Installer', 'installer' ), __( 'Installer', 'installer' ), 'manage_options', 'installer', array(
|
234 |
+
$this,
|
235 |
+
'show_products'
|
236 |
+
) );
|
237 |
+
} else {
|
238 |
+
if ( $this->config['plugins_install_tab'] && is_admin() && $pagenow === 'plugin-install.php' ) {
|
239 |
+
// Default GUI, under Plugins -> Install
|
240 |
+
add_filter( 'install_plugins_tabs', array( $this, 'add_install_plugins_tab' ) );
|
241 |
+
add_action( 'install_plugins_commercial', array( $this, 'show_products' ) );
|
242 |
+
}
|
243 |
+
}
|
244 |
+
|
245 |
+
}
|
246 |
+
|
247 |
+
public function menu_url() {
|
248 |
+
if ( is_multisite() ) {
|
249 |
+
if ( is_network_admin() ) {
|
250 |
+
$url = network_admin_url( 'plugin-install.php?tab=commercial' );
|
251 |
+
} else {
|
252 |
+
$url = admin_url( 'options-general.php?page=installer' );
|
253 |
+
}
|
254 |
+
} else {
|
255 |
+
$url = admin_url( 'plugin-install.php?tab=commercial' );
|
256 |
+
}
|
257 |
+
|
258 |
+
return $url;
|
259 |
+
}
|
260 |
+
|
261 |
+
private function menu_multisite_redirect() {
|
262 |
+
global $pagenow;
|
263 |
+
|
264 |
+
if ( $pagenow === 'plugin-install.php' && isset( $_GET['tab'] ) && $_GET['tab'] === 'commercial' ) {
|
265 |
+
wp_redirect( $this->menu_url() );
|
266 |
+
exit;
|
267 |
+
}
|
268 |
+
|
269 |
+
}
|
270 |
+
|
271 |
+
private function _pre_1_0_clean_up() {
|
272 |
+
global $wpdb;
|
273 |
+
|
274 |
+
if ( ! defined( 'WPRC_VERSION' ) ) {
|
275 |
+
$old_tables = array(
|
276 |
+
$wpdb->prefix . 'wprc_cached_requests',
|
277 |
+
$wpdb->prefix . 'wprc_extension_types',
|
278 |
+
$wpdb->prefix . 'wprc_extensions',
|
279 |
+
$wpdb->prefix . 'wprc_repositories',
|
280 |
+
$wpdb->prefix . 'wprc_repositories_relationships',
|
281 |
+
);
|
282 |
+
|
283 |
+
foreach ( $old_tables as $table ) {
|
284 |
+
$wpdb->query( sprintf( "DROP TABLE IF EXISTS %s", $table ) );
|
285 |
+
}
|
286 |
+
|
287 |
+
}
|
288 |
+
|
289 |
+
$this->settings['_pre_1_0_clean_up'] = true;
|
290 |
+
$this->save_settings();
|
291 |
+
}
|
292 |
+
|
293 |
+
public function setup_plugins_action_links() {
|
294 |
+
|
295 |
+
$plugins = get_plugins();
|
296 |
+
|
297 |
+
$repositories_plugins = array();
|
298 |
+
|
299 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
300 |
+
|
301 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
302 |
+
|
303 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
304 |
+
|
305 |
+
if ( array_key_exists( 'products', $package ) ) {
|
306 |
+
foreach ( $package['products'] as $product ) {
|
307 |
+
|
308 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
309 |
+
|
310 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
311 |
+
|
312 |
+
if ( ! isset( $repositories_plugins[ $repository_id ][ $download['slug'] ] ) ) {
|
313 |
+
$repositories_plugins[ $repository_id ][ $download['slug'] ] = array(
|
314 |
+
'name' => $download['name'],
|
315 |
+
'registered' => $this->plugin_is_registered( $repository_id, $download['slug'] ) ? 1 : 0
|
316 |
+
);
|
317 |
+
}
|
318 |
+
|
319 |
+
}
|
320 |
+
}
|
321 |
+
} else {
|
322 |
+
$this->refresh_repositories_data();
|
323 |
+
}
|
324 |
+
|
325 |
+
}
|
326 |
+
|
327 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
328 |
+
|
329 |
+
$wp_plugin_slug = dirname( $plugin_id );
|
330 |
+
if ( empty( $wp_plugin_slug ) ) {
|
331 |
+
$wp_plugin_slug = basename( $plugin_id, '.php' );
|
332 |
+
}
|
333 |
+
|
334 |
+
foreach ( $repositories_plugins as $repository_id => $r_plugins ) {
|
335 |
+
|
336 |
+
foreach ( $r_plugins as $slug => $r_plugin ) {
|
337 |
+
|
338 |
+
if ( $wp_plugin_slug === $slug || $r_plugin['name'] === $plugin['Name'] || $r_plugin['name'] === $plugin['Title'] ) { //match order: slug, name, title
|
339 |
+
|
340 |
+
if ( $r_plugin['registered'] ) {
|
341 |
+
add_filter( 'plugin_action_links_' . $plugin_id, array(
|
342 |
+
$this,
|
343 |
+
'plugins_action_links_registered'
|
344 |
+
) );
|
345 |
+
} else {
|
346 |
+
add_filter( 'plugin_action_links_' . $plugin_id, array(
|
347 |
+
$this,
|
348 |
+
'plugins_action_links_not_registered'
|
349 |
+
) );
|
350 |
+
}
|
351 |
+
|
352 |
+
}
|
353 |
+
|
354 |
+
}
|
355 |
+
|
356 |
+
}
|
357 |
+
|
358 |
+
|
359 |
+
}
|
360 |
+
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
}
|
365 |
+
|
366 |
+
public function plugins_action_links_registered( $links ) {
|
367 |
+
$links[] = '<a href="' . $this->menu_url() . '">' . __( 'Registered', 'installer' ) . '</a>';
|
368 |
+
|
369 |
+
return $links;
|
370 |
+
}
|
371 |
+
|
372 |
+
public function plugins_action_links_not_registered( $links ) {
|
373 |
+
$links[] = '<a href="' . $this->menu_url() . '">' . __( 'Register', 'installer' ) . '</a>';
|
374 |
+
|
375 |
+
return $links;
|
376 |
+
}
|
377 |
+
|
378 |
+
public function plugin_is_registered( $repository_id, $slug ) {
|
379 |
+
|
380 |
+
$registered = false;
|
381 |
+
|
382 |
+
if ( $this->repository_has_valid_subscription( $repository_id ) ) {
|
383 |
+
|
384 |
+
$subscription_type = $this->get_subscription_type_for_repository( $repository_id );
|
385 |
+
$r_plugins = array();
|
386 |
+
|
387 |
+
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
388 |
+
|
389 |
+
foreach ( $package['products'] as $product ) {
|
390 |
+
|
391 |
+
//consider equivalent subscriptions
|
392 |
+
if( !array_key_exists('subscription_type_equivalent', $product) ) {
|
393 |
+
$product['subscription_type_equivalent'] = '';
|
394 |
+
}
|
395 |
+
|
396 |
+
if (
|
397 |
+
$product['subscription_type'] === (int) $subscription_type ||
|
398 |
+
(int) $product['subscription_type_equivalent'] === (int) $subscription_type ||
|
399 |
+
$this->have_superior_subscription( $subscription_type, $product )
|
400 |
+
) {
|
401 |
+
|
402 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
403 |
+
|
404 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
405 |
+
|
406 |
+
if ( ! isset( $rep_plugins[ $download['slug'] ] ) ) {
|
407 |
+
$r_plugins[ $download['slug'] ] = $download['slug'];
|
408 |
+
}
|
409 |
+
|
410 |
+
}
|
411 |
+
|
412 |
+
}
|
413 |
+
|
414 |
+
}
|
415 |
+
|
416 |
+
}
|
417 |
+
|
418 |
+
$registered = isset( $r_plugins[ $slug ] );
|
419 |
+
|
420 |
+
}
|
421 |
+
|
422 |
+
|
423 |
+
return $registered;
|
424 |
+
|
425 |
+
}
|
426 |
+
|
427 |
+
public function version() {
|
428 |
+
return WP_INSTALLER_VERSION;
|
429 |
+
}
|
430 |
+
|
431 |
+
public function plugin_path() {
|
432 |
+
return untrailingslashit( plugin_dir_path( dirname( __FILE__ ) ) );
|
433 |
+
}
|
434 |
+
|
435 |
+
public function plugin_url() {
|
436 |
+
if ( isset( $this->config['in_theme_folder'] ) && ! empty( $this->config['in_theme_folder'] ) ) {
|
437 |
+
$url = untrailingslashit( get_template_directory_uri() . '/' . $this->config['in_theme_folder'] );
|
438 |
+
} else {
|
439 |
+
$url = untrailingslashit( plugins_url( '/', dirname( __FILE__ ) ) );
|
440 |
+
}
|
441 |
+
|
442 |
+
return $url;
|
443 |
+
}
|
444 |
+
|
445 |
+
public function is_repositories_page() {
|
446 |
+
global $pagenow;
|
447 |
+
|
448 |
+
return $pagenow == 'plugin-install.php' && isset( $_GET['tab'] ) && $_GET['tab'] == 'commercial';
|
449 |
+
}
|
450 |
+
|
451 |
+
public function res_url() {
|
452 |
+
if ( isset( $this->config['in_theme_folder'] ) && ! empty( $this->config['in_theme_folder'] ) ) {
|
453 |
+
$url = untrailingslashit( get_template_directory_uri() . '/' . $this->config['in_theme_folder'] );
|
454 |
+
} else {
|
455 |
+
$url = $this->plugin_url();
|
456 |
+
}
|
457 |
+
|
458 |
+
return $url;
|
459 |
+
}
|
460 |
+
|
461 |
+
public function save_settings() {
|
462 |
+
|
463 |
+
$_settings = serialize( $this->settings );
|
464 |
+
if ( $this->is_gz_on() ) {
|
465 |
+
$_settings = gzcompress( $_settings );
|
466 |
+
}
|
467 |
+
$_settings = base64_encode( $_settings );
|
468 |
+
|
469 |
+
update_option( 'wp_installer_settings', $_settings );
|
470 |
+
|
471 |
+
if ( is_multisite() && is_main_site() && isset( $this->settings['repositories'] ) ) {
|
472 |
+
$network_settings = array();
|
473 |
+
|
474 |
+
foreach ( $this->settings['repositories'] as $rep_id => $repository ) {
|
475 |
+
if ( isset( $repository['subscription'] ) ) {
|
476 |
+
$network_settings[ $rep_id ] = $repository['subscription'];
|
477 |
+
}
|
478 |
+
}
|
479 |
+
|
480 |
+
update_site_option( 'wp_installer_network', $network_settings );
|
481 |
+
|
482 |
+
|
483 |
+
}
|
484 |
+
|
485 |
+
}
|
486 |
+
|
487 |
+
public function get_settings( $refresh = false ) {
|
488 |
+
|
489 |
+
if ( $refresh || empty( $this->settings ) ) {
|
490 |
+
|
491 |
+
$_settings = get_option( 'wp_installer_settings' );
|
492 |
+
|
493 |
+
|
494 |
+
if ( is_array( $_settings ) || empty( $_settings ) ) { //backward compatibility 1.1
|
495 |
+
$this->settings = $_settings;
|
496 |
+
|
497 |
+
} else {
|
498 |
+
$_settings = base64_decode( $_settings );
|
499 |
+
if ( $this->is_gz_on() ) {
|
500 |
+
$_settings = gzuncompress( $_settings );
|
501 |
+
}
|
502 |
+
$this->settings = unserialize( $_settings );
|
503 |
+
}
|
504 |
+
|
505 |
+
// Initialize
|
506 |
+
if ( empty( $this->settings ) ) {
|
507 |
+
$this->settings = array(
|
508 |
+
'repositories' => array()
|
509 |
+
);
|
510 |
+
}
|
511 |
+
|
512 |
+
if ( is_multisite() ) {
|
513 |
+
$network_settings = maybe_unserialize( get_site_option( 'wp_installer_network' ) );
|
514 |
+
if ( $network_settings ) {
|
515 |
+
foreach ( $this->settings['repositories'] as $rep_id => $repository ) {
|
516 |
+
if ( isset( $network_settings[ $rep_id ] ) ) {
|
517 |
+
$this->settings['repositories'][ $rep_id ]['subscription'] = $network_settings[ $rep_id ];
|
518 |
+
}
|
519 |
+
}
|
520 |
+
}
|
521 |
+
}
|
522 |
+
|
523 |
+
$this->load_hardcoded_site_keys();
|
524 |
+
|
525 |
+
$this->_pre_1_8_backwards_compatibility( $this->settings );
|
526 |
+
|
527 |
+
$this->settings = $this->_old_products_format_backwards_compatibility( $this->settings );
|
528 |
+
|
529 |
+
}
|
530 |
+
|
531 |
+
return $this->settings;
|
532 |
+
}
|
533 |
+
|
534 |
+
private function is_gz_on() {
|
535 |
+
return function_exists( 'gzuncompress' ) && function_exists( 'gzcompress' );
|
536 |
+
}
|
537 |
+
|
538 |
+
private function load_hardcoded_site_keys() {
|
539 |
+
|
540 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
541 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
542 |
+
|
543 |
+
if ( $site_key = self::get_repository_hardcoded_site_key( $repository_id ) ) {
|
544 |
+
|
545 |
+
$site_key_missing = empty( $this->settings['repositories'][ $repository_id ]['subscription']['data'] );
|
546 |
+
$site_key_changed = ! $site_key_missing &&
|
547 |
+
$this->settings['repositories'][ $repository_id ]['subscription']['key'] != $site_key;
|
548 |
+
|
549 |
+
if ( $site_key_missing || $site_key_changed ) {
|
550 |
+
|
551 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
552 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
553 |
+
}
|
554 |
+
$this->load_repositories_list();
|
555 |
+
$response = $this->save_site_key(
|
556 |
+
array(
|
557 |
+
'repository_id' => $repository_id,
|
558 |
+
'site_key' => $site_key,
|
559 |
+
'return' => true,
|
560 |
+
'nonce' => wp_create_nonce( 'save_site_key_' . $repository_id )
|
561 |
+
)
|
562 |
+
);
|
563 |
+
|
564 |
+
if ( ! empty( $response['error'] ) ) {
|
565 |
+
$this->remove_site_key( $repository_id, false );
|
566 |
+
|
567 |
+
$this->admin_messages[] = array(
|
568 |
+
'type' => 'error',
|
569 |
+
'text' => sprintf( __( 'You are using an invalid site key defined as the constant %s (most likely in wp-config.php).
|
570 |
+
Please remove it or use the correct value in order to be able to register correctly.', 'installer' ), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper( $repository_id ) )
|
571 |
+
);
|
572 |
+
|
573 |
+
}
|
574 |
+
|
575 |
+
}
|
576 |
+
|
577 |
+
}
|
578 |
+
|
579 |
+
}
|
580 |
+
}
|
581 |
+
|
582 |
+
}
|
583 |
+
|
584 |
+
public static function get_repository_hardcoded_site_key( $repository_id ) {
|
585 |
+
|
586 |
+
$site_key = false;
|
587 |
+
|
588 |
+
$site_key_constant = 'OTGS_INSTALLER_SITE_KEY_' . strtoupper( $repository_id );
|
589 |
+
if ( defined( $site_key_constant ) ) {
|
590 |
+
$site_key = constant( $site_key_constant );
|
591 |
+
}
|
592 |
+
|
593 |
+
return $site_key;
|
594 |
+
}
|
595 |
+
|
596 |
+
//backward compatibility, add channel
|
597 |
+
private function _pre_1_8_backwards_compatibility( &$settings ) {
|
598 |
+
if ( empty( $settings['_pre_1_8_clean_up'] ) ) {
|
599 |
+
foreach ( $settings['repositories'] as $repository_id => $repository ) {
|
600 |
+
foreach ( $repository['data']['downloads']['plugins'] as $slug => $download ) {
|
601 |
+
if( !isset( $download['channel'] ) ){
|
602 |
+
$settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $slug ]['channel'] = '';
|
603 |
+
}
|
604 |
+
}
|
605 |
+
}
|
606 |
+
$this->save_settings();
|
607 |
+
}
|
608 |
+
}
|
609 |
+
|
610 |
+
//backward compatibility - support old products list format (downloads under products instead of global downloads list)
|
611 |
+
private function _old_products_format_backwards_compatibility( $settings ) {
|
612 |
+
|
613 |
+
if ( version_compare( $this->version(), '1.8', '<' ) && ! empty( $settings['repositories'] ) && empty( $this->_old_products_format_backwards_compatibility ) ) {
|
614 |
+
|
615 |
+
foreach ( $settings['repositories'] as $repository_id => $repository ) {
|
616 |
+
$populate_downloads = false;
|
617 |
+
if ( isset( $repository['data'] ) ) {
|
618 |
+
|
619 |
+
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
620 |
+
foreach ( $package['products'] as $product_id => $product ) {
|
621 |
+
if ( ! isset( $product['plugins'] ) ) {
|
622 |
+
$populate_downloads = true;
|
623 |
+
foreach ( $product['downloads'] as $download_id => $download ) {
|
624 |
+
$settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['plugins'][] = $download['slug'];
|
625 |
+
}
|
626 |
+
}
|
627 |
+
}
|
628 |
+
}
|
629 |
+
|
630 |
+
if ( $populate_downloads ) {
|
631 |
+
// Add downloads branch
|
632 |
+
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
633 |
+
foreach ( $package['products'] as $product_id => $product ) {
|
634 |
+
foreach ( $product['downloads'] as $download_id => $download ) {
|
635 |
+
if ( ! isset( $settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $download['slug'] ] ) ) {
|
636 |
+
$settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $download['slug'] ] = $download;
|
637 |
+
}
|
638 |
+
$settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['plugins'][] = $download['slug'];
|
639 |
+
}
|
640 |
+
unset( $settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['downloads'] );
|
641 |
+
}
|
642 |
+
}
|
643 |
+
}
|
644 |
+
}
|
645 |
+
}
|
646 |
+
|
647 |
+
$this->_old_products_format_backwards_compatibility = true;
|
648 |
+
}
|
649 |
+
|
650 |
+
return $settings;
|
651 |
+
}
|
652 |
+
|
653 |
+
public function get_installer_site_url( $repository_id = false ) {
|
654 |
+
global $current_site;
|
655 |
+
|
656 |
+
$site_url = get_site_url();
|
657 |
+
|
658 |
+
if ( $repository_id && is_multisite() && isset( $this->settings['repositories'] ) ) {
|
659 |
+
$network_settings = maybe_unserialize( get_site_option( 'wp_installer_network' ) );
|
660 |
+
|
661 |
+
if ( isset( $network_settings[ $repository_id ] ) ) {
|
662 |
+
$site_url = get_site_url( $current_site->blog_id );
|
663 |
+
}
|
664 |
+
|
665 |
+
}
|
666 |
+
|
667 |
+
return $site_url;
|
668 |
+
}
|
669 |
+
|
670 |
+
/**
|
671 |
+
* @param string $repository_id
|
672 |
+
*
|
673 |
+
* @return string|null
|
674 |
+
*/
|
675 |
+
public function get_registered_site_url( $repository_id ) {
|
676 |
+
if ( isset( $this->settings['repositories'][ $repository_id ]['subscription']['site_url'] ) ) {
|
677 |
+
return $this->settings['repositories'][ $repository_id ]['subscription']['site_url'];
|
678 |
+
}
|
679 |
+
|
680 |
+
return null;
|
681 |
+
}
|
682 |
+
|
683 |
+
public function show_site_key_nags() {
|
684 |
+
$screen = get_current_screen();
|
685 |
+
|
686 |
+
if ( $screen->base == 'settings_page_installer' || ( $screen->base == 'plugin-install' && isset( $_GET['tab'] ) && $_GET['tab'] == 'commercial' ) ) {
|
687 |
+
return;
|
688 |
+
}
|
689 |
+
|
690 |
+
if ( ! empty( $this->config['site_key_nags'] ) ) {
|
691 |
+
|
692 |
+
foreach ( $this->config['site_key_nags'] as $nag ) {
|
693 |
+
|
694 |
+
if ( ! $this->repository_has_subscription( $nag['repository_id'] ) ) {
|
695 |
+
$show = true;
|
696 |
+
if ( ! empty( $nag['condition_cb'] ) ) {
|
697 |
+
$show = call_user_func( $nag['condition_cb'] );
|
698 |
+
}
|
699 |
+
|
700 |
+
if ( empty( $this->settings['dismissed_nags'][ $nag['repository_id'] ] ) && $show ) {
|
701 |
+
echo '<div class="updated error otgs-is-dismissible"><p>';
|
702 |
+
printf( __( "To get automatic updates, you need to register %s for this site. %sRegister %s%s", 'sitepress' ),
|
703 |
+
$nag['product_name'], '<a class="button-primary" href="' . $this->menu_url() . '">', $nag['product_name'], '</a>' );
|
704 |
+
|
705 |
+
echo '</p>';
|
706 |
+
echo '<span class="installer-dismiss-nag notice-dismiss" data-repository="' . $nag['repository_id'] . '"><span class="screen-reader-text">' . __( 'Dismiss', 'sitepress' ) . '</span></span>';
|
707 |
+
echo '</div>';
|
708 |
+
}
|
709 |
+
}
|
710 |
+
|
711 |
+
}
|
712 |
+
|
713 |
+
}
|
714 |
+
|
715 |
+
}
|
716 |
+
|
717 |
+
public function dismiss_nag() {
|
718 |
+
$this->settings['dismissed_nags'][ $_POST['repository'] ] = 1;
|
719 |
+
|
720 |
+
$this->save_settings();
|
721 |
+
|
722 |
+
echo json_encode( array() );
|
723 |
+
exit;
|
724 |
+
}
|
725 |
+
|
726 |
+
public function add_install_plugins_tab( $tabs ) {
|
727 |
+
|
728 |
+
$tabs['commercial'] = __( 'Commercial', 'installer' );
|
729 |
+
|
730 |
+
return $tabs;
|
731 |
+
}
|
732 |
+
|
733 |
+
public function load_repositories_list() {
|
734 |
+
global $wp_installer_instances;
|
735 |
+
|
736 |
+
foreach ( $wp_installer_instances as $instance ) {
|
737 |
+
|
738 |
+
if ( file_exists( dirname( $instance['bootfile'] ) . '/repositories.xml' ) ) {
|
739 |
+
$config_file = dirname( $instance['bootfile'] ) . '/repositories.xml';
|
740 |
+
|
741 |
+
if ( file_exists( dirname( $instance['bootfile'] ) . '/repositories.sandbox.xml' ) ) {
|
742 |
+
$config_file = dirname( $instance['bootfile'] ) . '/repositories.sandbox.xml';
|
743 |
+
add_filter( 'https_ssl_verify', '__return_false' );
|
744 |
+
}
|
745 |
+
|
746 |
+
$repos = simplexml_load_file( $config_file );
|
747 |
+
|
748 |
+
if ( $repos ) {
|
749 |
+
foreach ( $repos as $repo ) {
|
750 |
+
$id = strval( $repo->id );
|
751 |
+
|
752 |
+
$data['api-url'] = strval( $repo->apiurl );
|
753 |
+
$data['products'] = strval( $repo->products );
|
754 |
+
|
755 |
+
// excludes rule;
|
756 |
+
if ( isset( $this->config['repositories_exclude'] ) && in_array( $id, $this->config['repositories_exclude'] ) ) {
|
757 |
+
continue;
|
758 |
+
}
|
759 |
+
|
760 |
+
// includes rule;
|
761 |
+
if ( isset( $this->config['repositories_include'] ) && ! in_array( $id, $this->config['repositories_include'] ) ) {
|
762 |
+
continue;
|
763 |
+
}
|
764 |
+
|
765 |
+
$this->repositories[ $id ] = $data;
|
766 |
+
|
767 |
+
}
|
768 |
+
}
|
769 |
+
|
770 |
+
}
|
771 |
+
}
|
772 |
+
|
773 |
+
}
|
774 |
+
|
775 |
+
public function filter_repositories_list() {
|
776 |
+
|
777 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
778 |
+
foreach ( $this->settings['repositories'] as $id => $repo_data ) {
|
779 |
+
|
780 |
+
// excludes rule;
|
781 |
+
if ( isset( $this->config['repositories_exclude'] ) && in_array( $id, $this->config['repositories_exclude'] ) ) {
|
782 |
+
unset( $this->settings['repositories'][ $id ] );
|
783 |
+
}
|
784 |
+
|
785 |
+
// includes rule;
|
786 |
+
if ( isset( $this->config['repositories_include'] ) && ! in_array( $id, $this->config['repositories_include'] ) ) {
|
787 |
+
unset( $this->settings['repositories'][ $id ] );
|
788 |
+
}
|
789 |
+
|
790 |
+
|
791 |
+
}
|
792 |
+
}
|
793 |
+
|
794 |
+
|
795 |
+
}
|
796 |
+
|
797 |
+
public function refresh_repositories_data() {
|
798 |
+
static $checked = false;
|
799 |
+
|
800 |
+
if ( defined( 'OTGS_DISABLE_AUTO_UPDATES' ) && OTGS_DISABLE_AUTO_UPDATES && empty( $_GET['force-check'] ) || $checked ) {
|
801 |
+
|
802 |
+
if ( empty( $this->settings['repositories'] ) && $this->is_repositories_page() ) {
|
803 |
+
|
804 |
+
foreach ( $this->repositories as $id => $data ) {
|
805 |
+
$repository_names[] = $id;
|
806 |
+
|
807 |
+
}
|
808 |
+
|
809 |
+
$error = sprintf( __( "Installer cannot display the products information because the automatic updating for %s was explicitly disabled with the configuration below (usually in wp-config.php):", 'installer' ), strtoupper( join( ', ', $repository_names ) ) );
|
810 |
+
$error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code><br /><br />';
|
811 |
+
$error .= sprintf( __( "In order to see the products information, please run the %smanual updates check%s to initialize the products list or (temporarily) remove the above code.", 'installer' ), '<a href="' . admin_url( 'update-core.php' ) . '">', '</a>' );
|
812 |
+
|
813 |
+
$this->register_admin_message( $error, 'error' );
|
814 |
+
|
815 |
+
|
816 |
+
}
|
817 |
+
|
818 |
+
return;
|
819 |
+
}
|
820 |
+
|
821 |
+
$checked = true;
|
822 |
+
|
823 |
+
foreach ( $this->repositories as $id => $data ) {
|
824 |
+
|
825 |
+
$response = wp_remote_get( $data['products'] );
|
826 |
+
|
827 |
+
if ( is_wp_error( $response ) ) {
|
828 |
+
// http fallback
|
829 |
+
$data['products'] = preg_replace( "@^https://@", 'http://', $data['products'] );
|
830 |
+
$response = wp_remote_get( $data['products'] );
|
831 |
+
}
|
832 |
+
|
833 |
+
if ( is_wp_error( $response ) ) {
|
834 |
+
|
835 |
+
$error = sprintf( __( "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:", 'installer' ), strtoupper( $id ) );
|
836 |
+
$error .= '<br /><br /><code>define("OTGS_DISABLE_AUTO_UPDATES", true);</code>';
|
837 |
+
|
838 |
+
$this->register_admin_message( $error, 'error' );
|
839 |
+
|
840 |
+
continue;
|
841 |
+
}
|
842 |
+
|
843 |
+
if ( $response && isset( $response['response']['code'] ) && $response['response']['code'] == 200 ) {
|
844 |
+
$body = wp_remote_retrieve_body( $response );
|
845 |
+
if ( $body ) {
|
846 |
+
$products = json_decode( $body, true );
|
847 |
+
|
848 |
+
if ( is_array( $products ) ) {
|
849 |
+
$products['downloads'] = WP_Installer_Channels()->filter_downloads_by_channel( $id, $products['downloads'] );
|
850 |
+
$this->set_release_notes( $products['downloads'] );
|
851 |
+
|
852 |
+
$this->settings['repositories'][ $id ]['data'] = $products;
|
853 |
+
$this->_pre_1_8_backwards_compatibility( $this->settings );
|
854 |
+
}
|
855 |
+
}
|
856 |
+
|
857 |
+
}
|
858 |
+
|
859 |
+
$this->log( sprintf( "Checked for %s updates: %s", $id, $data['products'] ) );
|
860 |
+
|
861 |
+
|
862 |
+
}
|
863 |
+
|
864 |
+
// cleanup
|
865 |
+
if ( empty( $this->settings['repositories'] ) ) {
|
866 |
+
$this->settings['repositories'] = array();
|
867 |
+
}
|
868 |
+
foreach ( $this->settings['repositories'] as $id => $data ) {
|
869 |
+
if ( ! in_array( $id, array_keys( $this->repositories ) ) ) {
|
870 |
+
unset( $this->settings['repositories'][ $id ] );
|
871 |
+
}
|
872 |
+
}
|
873 |
+
|
874 |
+
$this->settings['last_repositories_update'] = time();
|
875 |
+
|
876 |
+
$this->save_settings();
|
877 |
+
|
878 |
+
}
|
879 |
+
|
880 |
+
/**
|
881 |
+
* Gets the release notes for the available version from the changelog
|
882 |
+
*
|
883 |
+
* @param array $all_downloads
|
884 |
+
*/
|
885 |
+
private function set_release_notes( &$all_downloads ) {
|
886 |
+
foreach ( $all_downloads as $kind => $downloads ) {
|
887 |
+
foreach ( $downloads as $slug => $download ) {
|
888 |
+
$start = strpos( $download['changelog'], '<h4>' . $download['version'] . '</h4>' );
|
889 |
+
if ( $start !== false ) {
|
890 |
+
$start += strlen( $download['version'] ) + 9;
|
891 |
+
$end = strpos( $download['changelog'], '<h4>', 4 );
|
892 |
+
if ( $end ) {
|
893 |
+
$release_notes = substr( $download['changelog'], $start, $end - $start );
|
894 |
+
} else {
|
895 |
+
$release_notes = substr( $download['changelog'], $start );
|
896 |
+
}
|
897 |
+
}
|
898 |
+
$all_downloads[ $kind ][ $slug ]['release-notes'] = ! empty( $release_notes ) ? $release_notes : '';
|
899 |
+
}
|
900 |
+
}
|
901 |
+
}
|
902 |
+
|
903 |
+
public function show_products( $args = array() ) {
|
904 |
+
|
905 |
+
$screen = get_current_screen();
|
906 |
+
|
907 |
+
if ( $screen->base == 'settings_page_installer' ) { // settings page
|
908 |
+
echo '<div class="wrap">';
|
909 |
+
echo '<h2>' . __( 'Installer', 'installer' ) . '</h2>';
|
910 |
+
echo '<br />';
|
911 |
+
}
|
912 |
+
|
913 |
+
if ( ! is_array( $args ) ) {
|
914 |
+
$args = array();
|
915 |
+
}
|
916 |
+
if ( empty( $args['template'] ) ) {
|
917 |
+
$args['template'] = 'default';
|
918 |
+
}
|
919 |
+
|
920 |
+
$this->filter_repositories_list();
|
921 |
+
|
922 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
923 |
+
|
924 |
+
$this->localize_strings();
|
925 |
+
$this->set_filtered_prices( $args );
|
926 |
+
$this->set_hierarchy_and_order();
|
927 |
+
|
928 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
929 |
+
|
930 |
+
if ( $args['template'] == 'compact' ) {
|
931 |
+
|
932 |
+
if ( isset( $args['repository'] ) && $args['repository'] == $repository_id ) {
|
933 |
+
include $this->plugin_path() . '/templates/products-compact.php';
|
934 |
+
}
|
935 |
+
|
936 |
+
} else {
|
937 |
+
|
938 |
+
include $this->plugin_path() . '/templates/repository-listing.php';
|
939 |
+
|
940 |
+
}
|
941 |
+
|
942 |
+
unset( $site_key, $subscription_type, $expired, $upgrade_options, $products_avaliable );
|
943 |
+
|
944 |
+
}
|
945 |
+
|
946 |
+
} else {
|
947 |
+
|
948 |
+
echo '<center>' . __( 'No repositories defined.', 'installer' ) . '</center>';
|
949 |
+
|
950 |
+
}
|
951 |
+
|
952 |
+
if ( $screen->base == 'settings_page_installer' ) { // settings page
|
953 |
+
echo '</div>';
|
954 |
+
}
|
955 |
+
|
956 |
+
|
957 |
+
}
|
958 |
+
|
959 |
+
public function get_product_price( $repository_id, $package_id, $product_id, $incl_discount = false ) {
|
960 |
+
|
961 |
+
$price = false;
|
962 |
+
|
963 |
+
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
964 |
+
|
965 |
+
if ( $package['id'] == $package_id ) {
|
966 |
+
if ( isset( $package['products'][ $product_id ] ) ) {
|
967 |
+
if ( $incl_discount && isset( $package['products'][ $product_id ]['price_disc'] ) ) {
|
968 |
+
$price = $package['products'][ $product_id ]['price_disc'];
|
969 |
+
} elseif ( isset( $package['products'][ $product_id ]['price'] ) ) {
|
970 |
+
$price = $package['products'][ $product_id ]['price'];
|
971 |
+
}
|
972 |
+
}
|
973 |
+
break;
|
974 |
+
}
|
975 |
+
}
|
976 |
+
|
977 |
+
return $price;
|
978 |
+
}
|
979 |
+
|
980 |
+
private function _render_product_packages( $packages, $subscription_type, $expired, $upgrade_options, $repository_id ) {
|
981 |
+
|
982 |
+
$data = array();
|
983 |
+
|
984 |
+
foreach ( $packages as $package_id => $package ) {
|
985 |
+
|
986 |
+
$row = array( 'products' => array(), 'downloads' => array() );
|
987 |
+
foreach ( $package['products'] as $product ) {
|
988 |
+
|
989 |
+
// filter out free subscriptions from being displayed as buying options
|
990 |
+
if ( empty( $product['price'] ) && ( empty( $subscription_type ) || $expired ) ) {
|
991 |
+
continue;
|
992 |
+
}
|
993 |
+
|
994 |
+
//consider equivalent subscriptions
|
995 |
+
if ( empty( $product['subscription_type_equivalent'] ) ) {
|
996 |
+
$product['subscription_type_equivalent'] = '';
|
997 |
+
}
|
998 |
+
|
999 |
+
// buy base
|
1000 |
+
if ( empty( $subscription_type ) || $expired ) {
|
1001 |
+
|
1002 |
+
$p['url'] = $this->append_parameters_to_buy_url( $product['url'], $repository_id );
|
1003 |
+
if ( ! empty( $product['price_disc'] ) ) {
|
1004 |
+
$p['label'] = $product['call2action'] . ' - ' . sprintf( '$%s %s$%d%s (USD)', $product['price_disc'], ' <del>', $product['price'], '</del>' );
|
1005 |
+
} else {
|
1006 |
+
$p['label'] = $product['call2action'] . ' - ' . sprintf( '$%d (USD)', $product['price'] );
|
1007 |
+
}
|
1008 |
+
$row['products'][] = $p;
|
1009 |
+
|
1010 |
+
// renew
|
1011 |
+
} elseif ( isset( $subscription_type ) && ( $product['subscription_type'] == $subscription_type || $product['subscription_type_equivalent'] == $subscription_type ) ) {
|
1012 |
+
|
1013 |
+
if ( $product['renewals'] ) {
|
1014 |
+
foreach ( $product['renewals'] as $renewal ) {
|
1015 |
+
$p['url'] = $this->append_parameters_to_buy_url( $renewal['url'], $repository_id );
|
1016 |
+
$p['label'] = $renewal['call2action'] . ' - ' . sprintf( '$%d (USD)', $renewal['price'] );
|
1017 |
+
}
|
1018 |
+
|
1019 |
+
$row['products'][] = $p;
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
}
|
1023 |
+
|
1024 |
+
// upgrades
|
1025 |
+
if ( ! empty( $upgrade_options[ $product['subscription_type'] ] ) ) {
|
1026 |
+
|
1027 |
+
foreach ( $upgrade_options[ $product['subscription_type'] ] as $stype => $upgrade ) {
|
1028 |
+
if ( $stype != $subscription_type ) {
|
1029 |
+
continue;
|
1030 |
+
}
|
1031 |
+
|
1032 |
+
$p['url'] = $this->append_parameters_to_buy_url( $upgrade['url'], $repository_id );
|
1033 |
+
if ( ! empty( $upgrade['price_disc'] ) ) {
|
1034 |
+
$p['label'] = $upgrade['call2action'] . ' - ' . sprintf( '$%s %s$%d%s (USD)', $upgrade['price_disc'], ' <del>', $upgrade['price'], '</del>' );
|
1035 |
+
} else {
|
1036 |
+
$p['label'] = $upgrade['call2action'] . ' - ' . sprintf( '$%d (USD)', $upgrade['price'] );
|
1037 |
+
}
|
1038 |
+
$row['products'][] = $p;
|
1039 |
+
|
1040 |
+
}
|
1041 |
+
|
1042 |
+
}
|
1043 |
+
|
1044 |
+
// downloads
|
1045 |
+
if ( isset( $subscription_type ) && ! $expired && ( $product['subscription_type'] == $subscription_type || $product['subscription_type_equivalent'] == $subscription_type ) ) {
|
1046 |
+
|
1047 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
1048 |
+
$row['downloads'][ $plugin_slug ] = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
}
|
1052 |
+
|
1053 |
+
//subpackages
|
1054 |
+
if ( ! empty( $package['sub-packages'] ) ) {
|
1055 |
+
$row['sub-packages'] = $package['sub-packages'];
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
}
|
1059 |
+
|
1060 |
+
$row['id'] = $package['id'];
|
1061 |
+
$row['image_url'] = $package['image_url'];
|
1062 |
+
$row['name'] = $package['name'];
|
1063 |
+
$row['description'] = $package['description'];
|
1064 |
+
|
1065 |
+
if ( ! empty( $row['products'] ) || ! empty( $row['downloads'] ) || ! empty( $row['sub-packages'] ) ) {
|
1066 |
+
$data[] = $row;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
|
1070 |
+
}
|
1071 |
+
|
1072 |
+
return $data;
|
1073 |
+
|
1074 |
+
}
|
1075 |
+
|
1076 |
+
public function get_extra_url_parameters() {
|
1077 |
+
|
1078 |
+
$parameters = array();
|
1079 |
+
|
1080 |
+
if ( ! empty( $this->package_source ) ) {
|
1081 |
+
foreach ( $this->package_source as $key => $val ) {
|
1082 |
+
$parameters[ $key ] = $val;
|
1083 |
+
}
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
$parameters['installer_version'] = WP_INSTALLER_VERSION;
|
1087 |
+
$parameters['theme'] = wp_get_theme()->get( 'Name' );
|
1088 |
+
$parameters['site_name'] = get_bloginfo( 'name' );
|
1089 |
+
|
1090 |
+
return $parameters;
|
1091 |
+
}
|
1092 |
+
|
1093 |
+
public function append_parameters_to_buy_url( $url, $repository_id, $args = array() ) {
|
1094 |
+
|
1095 |
+
$url = add_query_arg( array( 'icl_site_url' => $this->get_installer_site_url( $repository_id ) ), $url );
|
1096 |
+
|
1097 |
+
$affiliate_id = false;
|
1098 |
+
$affiliate_key = false;
|
1099 |
+
|
1100 |
+
// Add extra parameters for custom Installer packages
|
1101 |
+
if ( ! empty( $this->package_source ) ) {
|
1102 |
+
$extra = $this->get_extra_url_parameters();
|
1103 |
+
|
1104 |
+
if ( ! empty( $extra['repository'] ) && $extra['repository'] == $repository_id ) {
|
1105 |
+
|
1106 |
+
if ( ! empty( $extra['affiliate_key'] ) && ! empty( $extra['user_id'] ) ) {
|
1107 |
+
$this->config[ 'affiliate_id:' . $repository_id ] = $extra['user_id'];
|
1108 |
+
$this->config[ 'affiliate_key:' . $repository_id ] = $extra['affiliate_key'];
|
1109 |
+
unset( $extra['affiliate_key'], $extra['user_id'], $extra['repository'] ); // no need to include these ones
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
$url = add_query_arg( $extra, $url );
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
if ( isset( $this->config[ 'affiliate_id:' . $repository_id ] ) && isset( $this->config[ 'affiliate_key:' . $repository_id ] ) ) {
|
1118 |
+
|
1119 |
+
$affiliate_id = $this->config[ 'affiliate_id:' . $repository_id ];
|
1120 |
+
$affiliate_key = $this->config[ 'affiliate_key:' . $repository_id ];
|
1121 |
+
|
1122 |
+
} elseif ( isset( $args[ 'affiliate_id:' . $repository_id ] ) && isset( $args[ 'affiliate_key:' . $repository_id ] ) ) {
|
1123 |
+
|
1124 |
+
$affiliate_id = $args[ 'affiliate_id:' . $repository_id ];
|
1125 |
+
$affiliate_key = $args[ 'affiliate_key:' . $repository_id ];
|
1126 |
+
|
1127 |
+
} elseif ( defined( 'ICL_AFFILIATE_ID' ) && defined( 'ICL_AFFILIATE_KEY' ) ) { //support for 1 repo
|
1128 |
+
|
1129 |
+
$affiliate_id = ICL_AFFILIATE_ID;
|
1130 |
+
$affiliate_key = ICL_AFFILIATE_KEY;
|
1131 |
+
|
1132 |
+
} elseif ( isset( $this->config['affiliate_id'] ) && isset( $this->config['affiliate_key'] ) ) {
|
1133 |
+
// BACKWARDS COMPATIBILITY
|
1134 |
+
$affiliate_id = $this->config['affiliate_id'];
|
1135 |
+
$affiliate_key = $this->config['affiliate_key'];
|
1136 |
+
}
|
1137 |
+
|
1138 |
+
if ( $affiliate_id && $affiliate_key ) {
|
1139 |
+
$url = add_query_arg( array( 'aid' => $affiliate_id, 'affiliate_key' => $affiliate_key ), $url );
|
1140 |
+
}
|
1141 |
+
|
1142 |
+
if ( $repository_id == 'wpml' ) {
|
1143 |
+
$url = add_query_arg( array(
|
1144 |
+
'using_icl' => $this->_using_icl,
|
1145 |
+
'wpml_version' => $this->_wpml_version
|
1146 |
+
), $url );
|
1147 |
+
}
|
1148 |
+
|
1149 |
+
$url = apply_filters( 'wp_installer_buy_url', $url );
|
1150 |
+
|
1151 |
+
$url = esc_url( $url );
|
1152 |
+
|
1153 |
+
return $url;
|
1154 |
+
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
/**
|
1158 |
+
* @return OTGS_Installer_WP_Share_Local_Components_Setting
|
1159 |
+
*/
|
1160 |
+
private function get_component_setting() {
|
1161 |
+
if ( ! $this->components_setting ) {
|
1162 |
+
$this->components_setting = new OTGS_Installer_WP_Share_Local_Components_Setting();
|
1163 |
+
}
|
1164 |
+
|
1165 |
+
return $this->components_setting;
|
1166 |
+
}
|
1167 |
+
|
1168 |
+
public function save_site_key( $args = array() ) {
|
1169 |
+
|
1170 |
+
$error = '';
|
1171 |
+
|
1172 |
+
if ( isset( $args['repository_id'] ) ) {
|
1173 |
+
$repository_id = $args['repository_id'];
|
1174 |
+
} elseif ( isset( $_POST['repository_id'] ) ) {
|
1175 |
+
$repository_id = sanitize_text_field( $_POST['repository_id'] );
|
1176 |
+
} else {
|
1177 |
+
$repository_id = false;
|
1178 |
+
}
|
1179 |
+
|
1180 |
+
if ( isset( $args['nonce'] ) ) {
|
1181 |
+
$nonce = $args['nonce'];
|
1182 |
+
} elseif ( isset( $_POST['nonce'] ) ) {
|
1183 |
+
$nonce = sanitize_text_field( $_POST['nonce'] );
|
1184 |
+
} else {
|
1185 |
+
$nonce = '';
|
1186 |
+
}
|
1187 |
+
|
1188 |
+
if ( isset( $args['site_key'] ) ) {
|
1189 |
+
$site_key = $args['site_key'];
|
1190 |
+
} else {
|
1191 |
+
$site_key = sanitize_text_field( $_POST[ 'site_key_' . $repository_id ] );
|
1192 |
+
}
|
1193 |
+
$site_key = preg_replace( "/[^A-Za-z0-9]/", '', $site_key );
|
1194 |
+
|
1195 |
+
if ( $repository_id && $nonce && wp_create_nonce( 'save_site_key_' . $repository_id ) === $nonce ) {
|
1196 |
+
|
1197 |
+
try {
|
1198 |
+
$subscription_data = $this->fetch_subscription_data( $repository_id, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REGISTRATION );
|
1199 |
+
|
1200 |
+
if ( $subscription_data ) {
|
1201 |
+
$this->settings['repositories'][ $repository_id ]['subscription'] = array(
|
1202 |
+
'key' => $site_key,
|
1203 |
+
'data' => $subscription_data,
|
1204 |
+
'registered_by' => get_current_user_id(),
|
1205 |
+
'site_url' => get_site_url(),
|
1206 |
+
);
|
1207 |
+
$this->save_settings();
|
1208 |
+
} else {
|
1209 |
+
$error = __( 'Invalid site key for the current site.', 'installer' )
|
1210 |
+
. '<br /><div class="installer-footnote">' . __( 'Please note that the site key is case sensitive.', 'installer' ) . '</div>';
|
1211 |
+
}
|
1212 |
+
|
1213 |
+
} catch ( Exception $e ) {
|
1214 |
+
$error = $e->getMessage();
|
1215 |
+
if ( preg_match( '#Could not resolve host: (.*)#', $error, $matches ) || preg_match( '#Couldn\'t resolve host \'(.*)\'#', $error, $matches ) ) {
|
1216 |
+
$error = sprintf( __( "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates.", 'installer' ),
|
1217 |
+
'<strong><i>' . $this->get_generic_product_name( $repository_id ) . '</i></strong>',
|
1218 |
+
'<strong><i>' . $matches[1] . '</i></strong>'
|
1219 |
+
);
|
1220 |
+
}
|
1221 |
+
}
|
1222 |
+
|
1223 |
+
}
|
1224 |
+
|
1225 |
+
$return = array( 'error' => $error );
|
1226 |
+
|
1227 |
+
if ( $this->api_debug ) {
|
1228 |
+
$return['debug'] = $this->api_debug;
|
1229 |
+
}
|
1230 |
+
|
1231 |
+
if ( ! empty( $args['return'] ) ) {
|
1232 |
+
return $return;
|
1233 |
+
} else {
|
1234 |
+
echo json_encode( $return );
|
1235 |
+
exit;
|
1236 |
+
}
|
1237 |
+
|
1238 |
+
}
|
1239 |
+
|
1240 |
+
/**
|
1241 |
+
* Alias for WP_Installer::get_repository_site_key
|
1242 |
+
* @see WP_Installer::get_repository_site_key()
|
1243 |
+
*
|
1244 |
+
* @param string $repository_id
|
1245 |
+
*
|
1246 |
+
* @return string (site key) or bool
|
1247 |
+
*/
|
1248 |
+
public function get_site_key( $repository_id ) {
|
1249 |
+
return WP_Installer::get_repository_site_key( $repository_id );
|
1250 |
+
}
|
1251 |
+
|
1252 |
+
public function remove_site_key( $repository_id, $refresh_repositories_data = true ) {
|
1253 |
+
if ( isset( $this->settings['repositories'][ $repository_id ] ) ) {
|
1254 |
+
unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
1255 |
+
$this->save_settings();
|
1256 |
+
if( $refresh_repositories_data ){
|
1257 |
+
$this->refresh_repositories_data();
|
1258 |
+
}
|
1259 |
+
}
|
1260 |
+
}
|
1261 |
+
|
1262 |
+
public function remove_site_key_ajax() {
|
1263 |
+
if ( $_POST['nonce'] == wp_create_nonce( 'remove_site_key_' . $_POST['repository_id'] ) ) {
|
1264 |
+
$this->remove_site_key( $_POST['repository_id'] );
|
1265 |
+
}
|
1266 |
+
exit;
|
1267 |
+
}
|
1268 |
+
|
1269 |
+
public function validate_repository_subscription() {
|
1270 |
+
$repository_id = isset( $_GET['validate_repository'] ) ? sanitize_text_field( $_GET['validate_repository'] ) : false;
|
1271 |
+
if ( $repository_id ) {
|
1272 |
+
|
1273 |
+
$site_key = $this->get_site_key( $repository_id );
|
1274 |
+
if ( $site_key ) {
|
1275 |
+
try {
|
1276 |
+
$subscription_data = $this->fetch_subscription_data( $repository_id, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REVALIDATION );
|
1277 |
+
} catch ( Exception $e ) {
|
1278 |
+
$subscription_data = false;
|
1279 |
+
}
|
1280 |
+
|
1281 |
+
if ( empty( $subscription_data ) ) {
|
1282 |
+
unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
1283 |
+
delete_site_transient( 'update_plugins' );
|
1284 |
+
$this->save_settings();
|
1285 |
+
}
|
1286 |
+
}
|
1287 |
+
|
1288 |
+
wp_redirect( $this->menu_url() . '#repository-' . $repository_id );
|
1289 |
+
exit;
|
1290 |
+
|
1291 |
+
}
|
1292 |
+
|
1293 |
+
}
|
1294 |
+
|
1295 |
+
public function update_site_key() {
|
1296 |
+
|
1297 |
+
$error = '';
|
1298 |
+
|
1299 |
+
$repository_id = sanitize_text_field( $_POST['repository_id'] );
|
1300 |
+
if ( $_POST['nonce'] == wp_create_nonce( 'update_site_key_' . $repository_id ) ) {
|
1301 |
+
|
1302 |
+
$site_key = $this->get_site_key( $_POST['repository_id'] );
|
1303 |
+
|
1304 |
+
if ( $site_key ) {
|
1305 |
+
try {
|
1306 |
+
$subscription_data = $this->fetch_subscription_data( $repository_id, $site_key, self::SITE_KEY_VALIDATION_SOURCE_UPDATES_CHECK );
|
1307 |
+
|
1308 |
+
if ( $subscription_data ) {
|
1309 |
+
$this->settings['repositories'][ $repository_id ]['subscription'] = array(
|
1310 |
+
'key' => $site_key,
|
1311 |
+
'data' => $subscription_data,
|
1312 |
+
'registered_by' => get_current_user_id()
|
1313 |
+
);
|
1314 |
+
|
1315 |
+
//also refresh products information
|
1316 |
+
$this->refresh_repositories_data();
|
1317 |
+
|
1318 |
+
$this->save_settings();
|
1319 |
+
|
1320 |
+
} else {
|
1321 |
+
unset( $this->settings['repositories'][ $repository_id ]['subscription'] );
|
1322 |
+
$error = __( 'Invalid site key for the current site. If the error persists, try to unregister first and then register again with the same site key.', 'installer' );
|
1323 |
+
}
|
1324 |
+
|
1325 |
+
|
1326 |
+
} catch ( Exception $e ) {
|
1327 |
+
$error = $e->getMessage();
|
1328 |
+
if ( preg_match( '#Could not resolve host: (.*)#', $error, $matches ) || preg_match( '#Couldn\'t resolve host \'(.*)\'#', $error, $matches ) ) {
|
1329 |
+
$error = sprintf( __( "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates.", 'installer' ),
|
1330 |
+
'<strong><i>' . $this->get_generic_product_name( $repository_id ) . '</i></strong>',
|
1331 |
+
'<strong><i>' . $matches[1] . '</i></strong>'
|
1332 |
+
);
|
1333 |
+
}
|
1334 |
+
}
|
1335 |
+
|
1336 |
+
}
|
1337 |
+
|
1338 |
+
}
|
1339 |
+
|
1340 |
+
echo json_encode( array( 'error' => $error ) );
|
1341 |
+
|
1342 |
+
exit;
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
public function api_debug_log( $text ) {
|
1346 |
+
|
1347 |
+
if ( defined( 'WPML_DEBUG_INSTALLER' ) && WPML_DEBUG_INSTALLER ) {
|
1348 |
+
|
1349 |
+
if ( ! is_scalar( $text ) ) {
|
1350 |
+
$text = print_r( $text, 1 );
|
1351 |
+
}
|
1352 |
+
|
1353 |
+
$this->api_debug .= $text . "\n";
|
1354 |
+
|
1355 |
+
}
|
1356 |
+
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
public function fetch_subscription_data( $repository_id, $site_key, $source = self::SITE_KEY_VALIDATION_SOURCE_OTHER ) {
|
1360 |
+
|
1361 |
+
$subscription_data = false;
|
1362 |
+
|
1363 |
+
$args['body'] = array(
|
1364 |
+
'action' => 'site_key_validation',
|
1365 |
+
'site_key' => $site_key,
|
1366 |
+
'site_url' => $this->get_installer_site_url( $repository_id ),
|
1367 |
+
'source' => $source
|
1368 |
+
);
|
1369 |
+
|
1370 |
+
if ( $repository_id == 'wpml' ) {
|
1371 |
+
$args['body']['using_icl'] = $this->_using_icl;
|
1372 |
+
$args['body']['wpml_version'] = $this->_wpml_version;
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
$args['body']['installer_version'] = WP_INSTALLER_VERSION;
|
1376 |
+
$args['body']['theme'] = wp_get_theme()->get( 'Name' );
|
1377 |
+
$args['body']['site_name'] = get_bloginfo( 'name' );
|
1378 |
+
$args['body']['repository_id'] = $repository_id;
|
1379 |
+
|
1380 |
+
$args['body']['versions'] = $this->get_local_product_versions( $repository_id );
|
1381 |
+
|
1382 |
+
$args['timeout'] = 45;
|
1383 |
+
|
1384 |
+
// Add extra parameters for custom Installer packages
|
1385 |
+
if ( ! empty( $this->package_source ) ) {
|
1386 |
+
$extra = $this->get_extra_url_parameters();
|
1387 |
+
if ( ! empty( $extra['repository'] ) && $extra['repository'] == $repository_id ) {
|
1388 |
+
unset( $extra['repository'] );
|
1389 |
+
foreach ( $extra as $key => $val ) {
|
1390 |
+
$args['body'][ $key ] = $val;
|
1391 |
+
}
|
1392 |
+
}
|
1393 |
+
}
|
1394 |
+
|
1395 |
+
$response = wp_remote_post(
|
1396 |
+
$this->repositories[ $repository_id ]['api-url'],
|
1397 |
+
apply_filters( 'installer_fetch_subscription_data_request', $args )
|
1398 |
+
);
|
1399 |
+
|
1400 |
+
$this->api_debug_log( "POST {$this->repositories[$repository_id]['api-url']}" );
|
1401 |
+
$this->api_debug_log( $args );
|
1402 |
+
|
1403 |
+
$this->log( "POST {$this->repositories[$repository_id]['api-url']} - fetch subscription data" );
|
1404 |
+
|
1405 |
+
if ( ! is_wp_error( $response ) ) {
|
1406 |
+
$datas = trim ( wp_remote_retrieve_body( $response ) );
|
1407 |
+
|
1408 |
+
if ( is_serialized( $datas ) ) {
|
1409 |
+
$data = unserialize( $datas );
|
1410 |
+
$this->api_debug_log( $data );
|
1411 |
+
|
1412 |
+
if ( ! empty( $data->subscription_data ) ) {
|
1413 |
+
$subscription_data = $data->subscription_data;
|
1414 |
+
}
|
1415 |
+
|
1416 |
+
do_action( 'installer_fetched_subscription_data', $data, $repository_id );
|
1417 |
+
|
1418 |
+
} else {
|
1419 |
+
$this->api_debug_log( $datas );
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
} else {
|
1423 |
+
|
1424 |
+
$this->api_debug_log( $response );
|
1425 |
+
throw new Exception( $response->get_error_message() );
|
1426 |
+
}
|
1427 |
+
|
1428 |
+
return $subscription_data;
|
1429 |
+
|
1430 |
+
}
|
1431 |
+
|
1432 |
+
function get_local_product_versions( $repository_id ) {
|
1433 |
+
|
1434 |
+
$versions = array();
|
1435 |
+
|
1436 |
+
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package_id => $package ) {
|
1437 |
+
|
1438 |
+
foreach ( $package['products'] as $product_id => $product ) {
|
1439 |
+
|
1440 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
1441 |
+
|
1442 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1443 |
+
|
1444 |
+
if ( empty( $versions[ $download['slug'] ] ) ) {
|
1445 |
+
$v = $this->get_plugin_installed_version( $download['name'], $download['slug'] );
|
1446 |
+
if ( $v ) {
|
1447 |
+
$versions[ $download['slug'] ] = $v;
|
1448 |
+
}
|
1449 |
+
}
|
1450 |
+
|
1451 |
+
}
|
1452 |
+
|
1453 |
+
}
|
1454 |
+
|
1455 |
+
}
|
1456 |
+
|
1457 |
+
return $versions;
|
1458 |
+
}
|
1459 |
+
|
1460 |
+
public function get_repository_site_key( $repository_id ) {
|
1461 |
+
$site_key = false;
|
1462 |
+
|
1463 |
+
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription']['key'] ) ) {
|
1464 |
+
$site_key = $this->settings['repositories'][ $repository_id ]['subscription']['key'];
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
return $site_key;
|
1468 |
+
}
|
1469 |
+
|
1470 |
+
/**
|
1471 |
+
* @param $repository_id
|
1472 |
+
*
|
1473 |
+
* @return OTGS_Installer_Subscription
|
1474 |
+
*/
|
1475 |
+
public function get_subscription( $repository_id ) {
|
1476 |
+
$data = null;
|
1477 |
+
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription'] ) ) {
|
1478 |
+
$data = $this->settings['repositories'][ $repository_id ]['subscription']['data'];
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
return new OTGS_Installer_Subscription( $data );
|
1482 |
+
}
|
1483 |
+
|
1484 |
+
public function repository_has_valid_subscription( $repository_id ) {
|
1485 |
+
$subscription = $this->get_subscription( $repository_id );
|
1486 |
+
|
1487 |
+
return $subscription->is_valid();
|
1488 |
+
}
|
1489 |
+
|
1490 |
+
public function repository_has_subscription( $repository_id ) {
|
1491 |
+
$key = false;
|
1492 |
+
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription']['key'] ) ) {
|
1493 |
+
$key = $this->settings['repositories'][ $repository_id ]['subscription']['key'];
|
1494 |
+
}
|
1495 |
+
|
1496 |
+
return $key;
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
public function repository_has_expired_subscription( $repository_id ) {
|
1500 |
+
|
1501 |
+
return $this->repository_has_subscription( $repository_id ) && ! $this->repository_has_valid_subscription( $repository_id );
|
1502 |
+
|
1503 |
+
}
|
1504 |
+
|
1505 |
+
public function get_generic_product_name( $repository_id ) {
|
1506 |
+
|
1507 |
+
return $this->settings['repositories'][ $repository_id ]['data']['product-name'];
|
1508 |
+
|
1509 |
+
}
|
1510 |
+
|
1511 |
+
public function show_subscription_renew_warning( $repository_id, $subscription_id ) {
|
1512 |
+
|
1513 |
+
$show = false;
|
1514 |
+
|
1515 |
+
$data = $this->settings['repositories'][ $repository_id ]['data'];
|
1516 |
+
if ( ! empty( $data['subscriptions_meta'] ) ) {
|
1517 |
+
if ( isset( $data['subscriptions_meta']['expiration'] ) ) {
|
1518 |
+
|
1519 |
+
if ( ! empty( $data['subscriptions_meta']['expiration'][ $subscription_id ] ) ) {
|
1520 |
+
|
1521 |
+
$days = $data['subscriptions_meta']['expiration'][ $subscription_id ]['days_warning'];
|
1522 |
+
$message = $data['subscriptions_meta']['expiration'][ $subscription_id ]['warning_message'];
|
1523 |
+
|
1524 |
+
} else {
|
1525 |
+
|
1526 |
+
//defaults
|
1527 |
+
$days = 30;
|
1528 |
+
$message = __( 'You will have to renew your subscription in order to continue getting the updates and support.', 'installer' );
|
1529 |
+
|
1530 |
+
}
|
1531 |
+
|
1532 |
+
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription'] ) ) {
|
1533 |
+
$subscription = $this->settings['repositories'][ $repository_id ]['subscription'];
|
1534 |
+
|
1535 |
+
if ( $subscription['data']->subscription_type == $subscription_id && ! empty( $subscription['data']->expires ) ) {
|
1536 |
+
|
1537 |
+
if ( strtotime( $subscription['data']->expires ) < strtotime( sprintf( "+%d day", $days ) ) ) {
|
1538 |
+
|
1539 |
+
$days_to_expiration = ceil( ( strtotime( $subscription['data']->expires ) - time() ) / 86400 );
|
1540 |
+
|
1541 |
+
echo '<div><p class="installer-warn-box">' .
|
1542 |
+
sprintf( _n( 'Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer' ), $days_to_expiration ) .
|
1543 |
+
'<br />' . $message .
|
1544 |
+
'</p></div>';
|
1545 |
+
|
1546 |
+
$show = true;
|
1547 |
+
|
1548 |
+
}
|
1549 |
+
|
1550 |
+
}
|
1551 |
+
|
1552 |
+
}
|
1553 |
+
|
1554 |
+
|
1555 |
+
}
|
1556 |
+
}
|
1557 |
+
|
1558 |
+
|
1559 |
+
return $show;
|
1560 |
+
|
1561 |
+
}
|
1562 |
+
|
1563 |
+
public function setup_plugins_renew_warnings() {
|
1564 |
+
|
1565 |
+
$plugins = get_plugins();
|
1566 |
+
|
1567 |
+
$subscriptions_with_warnings = array();
|
1568 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
1569 |
+
|
1570 |
+
if ( $this->repository_has_valid_subscription( $repository_id ) ) {
|
1571 |
+
$subscription_type = $this->settings['repositories'][ $repository_id ]['subscription']['data']->subscription_type;
|
1572 |
+
$expires = $this->settings['repositories'][ $repository_id ]['subscription']['data']->expires;
|
1573 |
+
|
1574 |
+
$never_expires = isset( $this->settings['repositories'][ $repository_id ]['subscription'] )
|
1575 |
+
&& empty( $this->settings['repositories'][ $repository_id ]['subscription']['data']->expires )
|
1576 |
+
&& (
|
1577 |
+
(int) $this->settings['repositories'][ $repository_id ]['subscription']['data']->status === OTGS_Installer_Subscription::SUBSCRIPTION_STATUS_ACTIVE_NO_EXPIRATION ||
|
1578 |
+
(int) $this->settings['repositories'][ $repository_id ]['subscription']['data']->status === OTGS_Installer_Subscription::SUBSCRIPTION_STATUS_ACTIVE
|
1579 |
+
);
|
1580 |
+
|
1581 |
+
if ( ! $never_expires ) {
|
1582 |
+
if ( isset( $this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_type ] ) ) {
|
1583 |
+
|
1584 |
+
$days_warning = $this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_type ]['days_warning'];
|
1585 |
+
$custom_message = $this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_type ]['warning_message'];
|
1586 |
+
|
1587 |
+
} else {
|
1588 |
+
//defaults
|
1589 |
+
$days_warning = 30;
|
1590 |
+
$custom_message = __( 'You will have to renew your subscription in order to continue getting the updates and support.', 'installer' );
|
1591 |
+
}
|
1592 |
+
|
1593 |
+
if ( strtotime( $expires ) < strtotime( sprintf( '+%d day', $days_warning ) ) ) {
|
1594 |
+
|
1595 |
+
$days_to_expiration = ceil( ( strtotime( $expires ) - time() ) / 86400 );
|
1596 |
+
|
1597 |
+
$message = sprintf( _n( 'Your subscription expires in %d day.', 'Your subscription expires in %d days.', $days_to_expiration, 'installer' ), $days_to_expiration );
|
1598 |
+
$subscriptions_with_warnings[ $subscription_type ] = $message . ' ' . $custom_message;
|
1599 |
+
|
1600 |
+
}
|
1601 |
+
}
|
1602 |
+
|
1603 |
+
}
|
1604 |
+
|
1605 |
+
}
|
1606 |
+
|
1607 |
+
|
1608 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
1609 |
+
|
1610 |
+
$slug = dirname( $plugin_id );
|
1611 |
+
if ( empty( $slug ) ) {
|
1612 |
+
continue;
|
1613 |
+
}
|
1614 |
+
|
1615 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
1616 |
+
|
1617 |
+
if ( $this->repository_has_valid_subscription( $repository_id ) ) {
|
1618 |
+
|
1619 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
1620 |
+
|
1621 |
+
foreach ( $package['products'] as $product ) {
|
1622 |
+
|
1623 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
1624 |
+
|
1625 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1626 |
+
|
1627 |
+
if ( $download['slug'] == $slug || $download['name'] == $plugin['Name'] || $download['name'] == $plugin['Title'] ) { //match order: slug, name, title
|
1628 |
+
|
1629 |
+
if ( isset( $subscriptions_with_warnings[ $product['subscription_type'] ] ) ) {
|
1630 |
+
|
1631 |
+
$this->_plugins_renew_warnings[ $plugin_id ] = $subscriptions_with_warnings[ $product['subscription_type'] ];
|
1632 |
+
|
1633 |
+
}
|
1634 |
+
|
1635 |
+
}
|
1636 |
+
|
1637 |
+
}
|
1638 |
+
|
1639 |
+
}
|
1640 |
+
|
1641 |
+
}
|
1642 |
+
|
1643 |
+
}
|
1644 |
+
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
}
|
1648 |
+
|
1649 |
+
}
|
1650 |
+
|
1651 |
+
public function queue_plugins_renew_warnings() {
|
1652 |
+
|
1653 |
+
if ( ! empty( $this->_plugins_renew_warnings ) ) {
|
1654 |
+
|
1655 |
+
foreach ( $this->_plugins_renew_warnings as $plugin_id => $message ) {
|
1656 |
+
|
1657 |
+
add_action( "after_plugin_row_" . $plugin_id, array( $this, 'plugins_renew_warning' ), 10, 3 );
|
1658 |
+
}
|
1659 |
+
|
1660 |
+
}
|
1661 |
+
|
1662 |
+
}
|
1663 |
+
|
1664 |
+
public function plugins_renew_warning( $plugin_file, $plugin_data, $status ) {
|
1665 |
+
|
1666 |
+
if ( empty( $this->_plugins_renew_warnings[ $plugin_file ] ) ) {
|
1667 |
+
return;
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
1671 |
+
?>
|
1672 |
+
|
1673 |
+
<tr class="plugin-update-tr">
|
1674 |
+
<td colspan="<?php echo $wp_list_table->get_column_count(); ?>" class="plugin-update colspanchange">
|
1675 |
+
<div class="update-message">
|
1676 |
+
<?php
|
1677 |
+
echo $this->_plugins_renew_warnings[ $plugin_file ] . ' ';
|
1678 |
+
printf( __( '%sRenew here%s.', 'installer' ),
|
1679 |
+
'<a href="' . $this->menu_url() . '">', '</a>' );
|
1680 |
+
?>
|
1681 |
+
</div>
|
1682 |
+
</tr>
|
1683 |
+
|
1684 |
+
<?php
|
1685 |
+
|
1686 |
+
}
|
1687 |
+
|
1688 |
+
public function get_subscription_type_for_repository( $repository_id ) {
|
1689 |
+
|
1690 |
+
$subscription_type = false;
|
1691 |
+
|
1692 |
+
if ( ! empty( $this->settings['repositories'][ $repository_id ]['subscription'] ) ) {
|
1693 |
+
$subscription_type = $this->settings['repositories'][ $repository_id ]['subscription']['data']->subscription_type;
|
1694 |
+
}
|
1695 |
+
|
1696 |
+
return $subscription_type;
|
1697 |
+
|
1698 |
+
}
|
1699 |
+
|
1700 |
+
public function have_superior_subscription( $subscription_type, $product ) {
|
1701 |
+
|
1702 |
+
$have = false;
|
1703 |
+
|
1704 |
+
if ( is_array( $product['upgrades'] ) ) {
|
1705 |
+
foreach ( $product['upgrades'] as $u ) {
|
1706 |
+
if ( $u['subscription_type'] == $subscription_type ) {
|
1707 |
+
$have = true;
|
1708 |
+
break;
|
1709 |
+
}
|
1710 |
+
}
|
1711 |
+
}
|
1712 |
+
|
1713 |
+
return $have;
|
1714 |
+
}
|
1715 |
+
|
1716 |
+
public function is_product_available_for_download( $product_name, $repository_id ) {
|
1717 |
+
|
1718 |
+
$available = false;
|
1719 |
+
|
1720 |
+
$subscription_type = $this->get_subscription_type_for_repository( $repository_id );
|
1721 |
+
$expired = $this->repository_has_expired_subscription( $repository_id );
|
1722 |
+
|
1723 |
+
if ( ! $expired && $this->repository_has_subscription( $repository_id ) ) {
|
1724 |
+
|
1725 |
+
$this->set_hierarchy_and_order();
|
1726 |
+
|
1727 |
+
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package_id => $package ) {
|
1728 |
+
|
1729 |
+
$has_top_package = false;
|
1730 |
+
|
1731 |
+
foreach ( $package['products'] as $product ) {
|
1732 |
+
|
1733 |
+
if ( $subscription_type == $product['subscription_type'] ) {
|
1734 |
+
$has_top_package = true;
|
1735 |
+
if ( $product['name'] == $product_name ) {
|
1736 |
+
return $available = true;
|
1737 |
+
}
|
1738 |
+
}
|
1739 |
+
|
1740 |
+
}
|
1741 |
+
|
1742 |
+
if ( ! empty( $package['sub-packages'] ) ) {
|
1743 |
+
foreach ( $package['sub-packages'] as $sub_package ) {
|
1744 |
+
foreach ( $sub_package['products'] as $product ) {
|
1745 |
+
if ( $product['name'] == $product_name && ( $subscription_type == $product['subscription_type'] || $has_top_package ) ) {
|
1746 |
+
return $available = true;
|
1747 |
+
}
|
1748 |
+
}
|
1749 |
+
}
|
1750 |
+
}
|
1751 |
+
|
1752 |
+
}
|
1753 |
+
}
|
1754 |
+
|
1755 |
+
return $available;
|
1756 |
+
|
1757 |
+
}
|
1758 |
+
|
1759 |
+
public function get_upgrade_options( $repository_id ) {
|
1760 |
+
$all_upgrades = array();
|
1761 |
+
|
1762 |
+
|
1763 |
+
//get all products: packages and subpackages
|
1764 |
+
$all_products = array();
|
1765 |
+
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
1766 |
+
foreach ( $package['products'] as $product ) {
|
1767 |
+
$all_products[] = $product;
|
1768 |
+
}
|
1769 |
+
if ( ! empty( $package['sub-packages'] ) ) {
|
1770 |
+
foreach ( $package['sub-packages'] as $subpackage ) {
|
1771 |
+
foreach ( $subpackage['products'] as $product ) {
|
1772 |
+
$all_products[] = $product;
|
1773 |
+
}
|
1774 |
+
|
1775 |
+
}
|
1776 |
+
|
1777 |
+
}
|
1778 |
+
|
1779 |
+
}
|
1780 |
+
|
1781 |
+
foreach ( $all_products as $product ) {
|
1782 |
+
if ( $product['upgrades'] ) {
|
1783 |
+
foreach ( $product['upgrades'] as $upgrade ) {
|
1784 |
+
if ( $this->repository_has_valid_subscription( $repository_id ) || ( $this->repository_has_subscription( $repository_id ) && $upgrade['including_expired'] ) ) {
|
1785 |
+
$all_upgrades[ $upgrade['subscription_type'] ][ $product['subscription_type'] ] = $upgrade;
|
1786 |
+
}
|
1787 |
+
}
|
1788 |
+
}
|
1789 |
+
}
|
1790 |
+
|
1791 |
+
return $all_upgrades;
|
1792 |
+
|
1793 |
+
}
|
1794 |
+
|
1795 |
+
public function append_site_key_to_download_url( $url, $key, $repository_id ) {
|
1796 |
+
|
1797 |
+
$url_params['site_key'] = $key;
|
1798 |
+
$url_params['site_url'] = $this->get_installer_site_url( $repository_id );
|
1799 |
+
|
1800 |
+
|
1801 |
+
// Add extra parameters for custom Installer packages
|
1802 |
+
if ( ! empty( $this->package_source ) ) {
|
1803 |
+
$extra = $this->get_extra_url_parameters();
|
1804 |
+
if ( ! empty( $extra['repository'] ) && $extra['repository'] == $repository_id ) {
|
1805 |
+
unset( $extra['repository'] );
|
1806 |
+
foreach ( $extra as $key => $val ) {
|
1807 |
+
$url_params[ $key ] = $val;
|
1808 |
+
}
|
1809 |
+
}
|
1810 |
+
}
|
1811 |
+
|
1812 |
+
$url = add_query_arg( $url_params, $url );
|
1813 |
+
|
1814 |
+
if ( $repository_id == 'wpml' ) {
|
1815 |
+
$url = add_query_arg( array(
|
1816 |
+
'using_icl' => $this->_using_icl,
|
1817 |
+
'wpml_version' => $this->_wpml_version
|
1818 |
+
), $url );
|
1819 |
+
}
|
1820 |
+
|
1821 |
+
return $url;
|
1822 |
+
|
1823 |
+
}
|
1824 |
+
|
1825 |
+
public function plugin_is_installed( $name, $slug, $version = null ) {
|
1826 |
+
|
1827 |
+
$is = false;
|
1828 |
+
|
1829 |
+
$plugins = get_plugins();
|
1830 |
+
|
1831 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
1832 |
+
|
1833 |
+
$wp_plugin_slug = dirname( $plugin_id );
|
1834 |
+
|
1835 |
+
// Exception: embedded plugins
|
1836 |
+
if ( $wp_plugin_slug == $slug || $plugin['Name'] == $name || $plugin['Title'] == $name || ( $wp_plugin_slug == $slug . '-embedded' || $plugin['Name'] == $name . ' Embedded' ) ) {
|
1837 |
+
if ( $version ) {
|
1838 |
+
if ( version_compare( $plugin['Version'], $version, '>=' ) ) {
|
1839 |
+
$is = $plugin['Version'];
|
1840 |
+
}
|
1841 |
+
} else {
|
1842 |
+
$is = $plugin['Version'];
|
1843 |
+
}
|
1844 |
+
|
1845 |
+
break;
|
1846 |
+
}
|
1847 |
+
|
1848 |
+
}
|
1849 |
+
|
1850 |
+
//exception: Types name difference
|
1851 |
+
if ( ! $is && $name == 'Types' ) {
|
1852 |
+
return $this->plugin_is_installed( 'Types - Complete Solution for Custom Fields and Types', $slug, $version );
|
1853 |
+
}
|
1854 |
+
|
1855 |
+
return $is;
|
1856 |
+
}
|
1857 |
+
|
1858 |
+
public function plugin_is_embedded_version( $name, $slug ) {
|
1859 |
+
$is = false;
|
1860 |
+
|
1861 |
+
$plugins = get_plugins();
|
1862 |
+
|
1863 |
+
//false if teh full version is also installed
|
1864 |
+
$is_full_installed = false;
|
1865 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
1866 |
+
|
1867 |
+
if ( ( $plugin['Name'] == $name && ! preg_match( "#-embedded$#", $slug ) ) ) {
|
1868 |
+
$is_full_installed = true;
|
1869 |
+
break;
|
1870 |
+
}
|
1871 |
+
|
1872 |
+
}
|
1873 |
+
|
1874 |
+
if ( $is_full_installed ) {
|
1875 |
+
return false;
|
1876 |
+
}
|
1877 |
+
|
1878 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
1879 |
+
|
1880 |
+
// TBD
|
1881 |
+
$wp_plugin_slug = dirname( $plugin_id );
|
1882 |
+
if ( $wp_plugin_slug == $slug . '-embedded' && $plugin['Name'] == $name . ' Embedded' ) {
|
1883 |
+
$is = true;
|
1884 |
+
break;
|
1885 |
+
}
|
1886 |
+
|
1887 |
+
}
|
1888 |
+
|
1889 |
+
return $is;
|
1890 |
+
|
1891 |
+
}
|
1892 |
+
|
1893 |
+
//Alias for plugin_is_installed
|
1894 |
+
public function get_plugin_installed_version( $name, $slug ) {
|
1895 |
+
|
1896 |
+
return $this->plugin_is_installed( $name, $slug );
|
1897 |
+
|
1898 |
+
}
|
1899 |
+
|
1900 |
+
public function get_plugin_repository_version( $repository_id, $slug ) {
|
1901 |
+
$version = false;
|
1902 |
+
|
1903 |
+
if ( ! empty( $this->settings['repositories'][ $repository_id ]['data']['packages'] ) ) {
|
1904 |
+
foreach ( $this->settings['repositories'][ $repository_id ]['data']['packages'] as $package ) {
|
1905 |
+
foreach ( $package['products'] as $product ) {
|
1906 |
+
|
1907 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
1908 |
+
|
1909 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
1910 |
+
|
1911 |
+
if ( $download['slug'] == $slug ) {
|
1912 |
+
$version = $download['version'];
|
1913 |
+
break ( 3 );
|
1914 |
+
}
|
1915 |
+
|
1916 |
+
}
|
1917 |
+
|
1918 |
+
}
|
1919 |
+
}
|
1920 |
+
}
|
1921 |
+
|
1922 |
+
return $version;
|
1923 |
+
}
|
1924 |
+
|
1925 |
+
public function is_uploading_allowed() {
|
1926 |
+
|
1927 |
+
//_deprecated_function ( __FUNCTION__, '1.7.3', 'Installer_Dependencies::' . __FUNCTION__ );
|
1928 |
+
return $this->dependencies->is_uploading_allowed();
|
1929 |
+
|
1930 |
+
}
|
1931 |
+
|
1932 |
+
public function download_plugin_ajax_handler() {
|
1933 |
+
|
1934 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
1935 |
+
require_once $this->plugin_path() . '/includes/class-installer-upgrader-skins.php';
|
1936 |
+
|
1937 |
+
$data = json_decode( base64_decode( sanitize_text_field( $_POST['data'] ) ), true );
|
1938 |
+
|
1939 |
+
$ret = false;
|
1940 |
+
$plugin_id = false;
|
1941 |
+
$message = '';
|
1942 |
+
$connection_error = false;
|
1943 |
+
|
1944 |
+
//validate subscription
|
1945 |
+
$site_key = $this->get_repository_site_key($data['repository_id']);
|
1946 |
+
try {
|
1947 |
+
$subscription_data = $this->fetch_subscription_data( $data['repository_id'], $site_key, self::SITE_KEY_VALIDATION_SOURCE_DOWNLOAD_REPORT );
|
1948 |
+
} catch ( Exception $e ) {
|
1949 |
+
$connection_error = $e->getMessage();
|
1950 |
+
$subscription_data = false;
|
1951 |
+
}
|
1952 |
+
|
1953 |
+
if ( $subscription_data && ! is_wp_error( $subscription_data ) && $this->repository_has_valid_subscription( $data['repository_id'] ) ) {
|
1954 |
+
|
1955 |
+
if ( $data['nonce'] == wp_create_nonce( 'install_plugin_' . $data['url'] ) ) {
|
1956 |
+
|
1957 |
+
$upgrader_skins = new Installer_Upgrader_Skins(); //use our custom (mute) Skin
|
1958 |
+
$upgrader = new Plugin_Upgrader( $upgrader_skins );
|
1959 |
+
|
1960 |
+
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
|
1961 |
+
|
1962 |
+
$plugins = get_plugins();
|
1963 |
+
|
1964 |
+
//upgrade or install?
|
1965 |
+
foreach ( $plugins as $id => $plugin ) {
|
1966 |
+
$wp_plugin_slug = dirname( $id );
|
1967 |
+
$is_embedded = $this->plugin_is_embedded_version( preg_replace( '/ Embedded$/', '', $plugin['Name'] ), preg_replace( '/-embedded$/', '', $wp_plugin_slug ) );
|
1968 |
+
|
1969 |
+
if ( $wp_plugin_slug == $data['slug'] || $is_embedded && preg_replace( '/-embedded$/', '', $wp_plugin_slug ) == $data['slug'] ) {
|
1970 |
+
$plugin_id = $id;
|
1971 |
+
break;
|
1972 |
+
}
|
1973 |
+
}
|
1974 |
+
|
1975 |
+
if ( $plugin_id && empty( $is_embedded ) ) { //upgrade
|
1976 |
+
$response['upgrade'] = 1;
|
1977 |
+
|
1978 |
+
$plugin_is_active = is_plugin_active( $plugin_id );
|
1979 |
+
|
1980 |
+
$ret = $upgrader->upgrade( $plugin_id );
|
1981 |
+
|
1982 |
+
if ( ! $ret && ! empty( $upgrader->skin->installer_error ) ) {
|
1983 |
+
if ( is_wp_error( $upgrader->skin->installer_error ) ) {
|
1984 |
+
$message = $upgrader->skin->installer_error->get_error_message() .
|
1985 |
+
' (' . $upgrader->skin->installer_error->get_error_data() . ')';
|
1986 |
+
}
|
1987 |
+
$plugin_version = 0;
|
1988 |
+
}else{
|
1989 |
+
if ( $plugin_is_active ) {
|
1990 |
+
//prevent redirects
|
1991 |
+
add_filter( 'wp_redirect', '__return_false' );
|
1992 |
+
activate_plugin( $plugin_id );
|
1993 |
+
}
|
1994 |
+
$plugin_version = $this->get_plugin_repository_version( $data['repository_id'], $data['slug'] );
|
1995 |
+
}
|
1996 |
+
|
1997 |
+
} else { //install
|
1998 |
+
|
1999 |
+
if ( $is_embedded ) {
|
2000 |
+
delete_plugins( array( $plugin_id ) );
|
2001 |
+
}
|
2002 |
+
|
2003 |
+
$response['install'] = 1;
|
2004 |
+
$ret = $upgrader->install( $data['url'] );
|
2005 |
+
if ( ! $ret && ! empty( $upgrader->skin->installer_error ) ) {
|
2006 |
+
if ( is_wp_error( $upgrader->skin->installer_error ) ) {
|
2007 |
+
$message = $upgrader->skin->installer_error->get_error_message() .
|
2008 |
+
' (' . $upgrader->skin->installer_error->get_error_data() . ')';
|
2009 |
+
}
|
2010 |
+
}
|
2011 |
+
}
|
2012 |
+
|
2013 |
+
$plugins = get_plugins(); //read again
|
2014 |
+
|
2015 |
+
if ( $ret ) {
|
2016 |
+
foreach ( $plugins as $id => $plugin ) {
|
2017 |
+
$wp_plugin_slug = dirname( $id );
|
2018 |
+
if ( $wp_plugin_slug == $data['slug'] ) {
|
2019 |
+
$plugin_version = $plugin['Version'];
|
2020 |
+
$plugin_id = $id;
|
2021 |
+
break;
|
2022 |
+
}
|
2023 |
+
}
|
2024 |
+
|
2025 |
+
}
|
2026 |
+
|
2027 |
+
if( WP_Installer_Channels()->get_channel( $data['repository_id'] ) !== WP_Installer_Channels::CHANNEL_PRODUCTION ){
|
2028 |
+
$download = $this->settings['repositories'][$data['repository_id']]['data']['downloads']['plugins'][$data['slug']];
|
2029 |
+
$non_stable = WP_Installer_Channels()->get_download_source_channel( $plugin_version, $data['repository_id'], $download['slug'], 'plugins' );
|
2030 |
+
}
|
2031 |
+
|
2032 |
+
}
|
2033 |
+
|
2034 |
+
} elseif ( $connection_error ) {
|
2035 |
+
$ret = false;
|
2036 |
+
$message = sprintf( __( 'Connection failed! Please refresh the page and try again. (%s)', 'installer' ), '<i>' . $connection_error . '</i>' );
|
2037 |
+
} else { //subscription not valid
|
2038 |
+
$ret = false;
|
2039 |
+
$message = __( 'Your subscription appears to no longer be valid. Please try to register again using a valid site key.', 'installer' );
|
2040 |
+
}
|
2041 |
+
|
2042 |
+
$response['version'] = isset( $plugin_version ) ? $plugin_version : 0;
|
2043 |
+
$response['non_stable']= isset( $non_stable ) ? $non_stable : '';
|
2044 |
+
$response['plugin_id'] = $plugin_id;
|
2045 |
+
$response['nonce'] = wp_create_nonce( 'activate_' . $plugin_id );
|
2046 |
+
$response['success'] = $ret;
|
2047 |
+
$response['message'] = $message;
|
2048 |
+
|
2049 |
+
echo json_encode( $response );
|
2050 |
+
exit;
|
2051 |
+
|
2052 |
+
}
|
2053 |
+
|
2054 |
+
public function download_plugin( $slug, $url ) {
|
2055 |
+
|
2056 |
+
require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
2057 |
+
require_once $this->plugin_path() . '/includes/class-installer-upgrader-skins.php';
|
2058 |
+
|
2059 |
+
$upgrader_skins = new Installer_Upgrader_Skins(); //use our custom (mute) Skin
|
2060 |
+
$upgrader = new Plugin_Upgrader( $upgrader_skins );
|
2061 |
+
|
2062 |
+
remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 );
|
2063 |
+
|
2064 |
+
$plugins = get_plugins();
|
2065 |
+
|
2066 |
+
$plugin_id = false;
|
2067 |
+
|
2068 |
+
//upgrade or install?
|
2069 |
+
foreach ( $plugins as $id => $plugin ) {
|
2070 |
+
$wp_plugin_slug = dirname( $id );
|
2071 |
+
if ( $wp_plugin_slug == $slug ) {
|
2072 |
+
$plugin_id = $id;
|
2073 |
+
break;
|
2074 |
+
}
|
2075 |
+
}
|
2076 |
+
|
2077 |
+
if ( $plugin_id ) { //upgrade
|
2078 |
+
|
2079 |
+
$plugin_is_active = is_plugin_active( $plugin_id );
|
2080 |
+
|
2081 |
+
$ret = $upgrader->upgrade( $plugin_id );
|
2082 |
+
|
2083 |
+
if ( $plugin_is_active ) {
|
2084 |
+
activate_plugin( $plugin_id );
|
2085 |
+
}
|
2086 |
+
|
2087 |
+
} else { //install
|
2088 |
+
$ret = $upgrader->install( $url );
|
2089 |
+
}
|
2090 |
+
|
2091 |
+
return $ret;
|
2092 |
+
|
2093 |
+
}
|
2094 |
+
|
2095 |
+
public function activate_plugin() {
|
2096 |
+
|
2097 |
+
$error = '';
|
2098 |
+
|
2099 |
+
$plugin_id = sanitize_text_field( $_POST['plugin_id'] );
|
2100 |
+
if ( isset( $_POST['nonce'] ) && $plugin_id && $_POST['nonce'] == wp_create_nonce( 'activate_' . $plugin_id ) ) {
|
2101 |
+
|
2102 |
+
// Deactivate any embedded version
|
2103 |
+
$plugin_slug = dirname( $plugin_id );
|
2104 |
+
$active_plugins = get_option( 'active_plugins' );
|
2105 |
+
foreach ( $active_plugins as $plugin ) {
|
2106 |
+
$wp_plugin_slug = dirname( $plugin );
|
2107 |
+
if ( $wp_plugin_slug == $plugin_slug . '-embedded' ) {
|
2108 |
+
deactivate_plugins( array( $plugin ) );
|
2109 |
+
break;
|
2110 |
+
}
|
2111 |
+
}
|
2112 |
+
|
2113 |
+
//prevent redirects
|
2114 |
+
add_filter( 'wp_redirect', '__return_false', 10000 );
|
2115 |
+
|
2116 |
+
$return = activate_plugin( $plugin_id );
|
2117 |
+
|
2118 |
+
if ( is_wp_error( $return ) ) {
|
2119 |
+
$error = $return->get_error_message();
|
2120 |
+
}
|
2121 |
+
|
2122 |
+
} else {
|
2123 |
+
$error = 'error';
|
2124 |
+
}
|
2125 |
+
|
2126 |
+
$ret = array( 'error' => $error );
|
2127 |
+
|
2128 |
+
echo json_encode( $ret );
|
2129 |
+
exit;
|
2130 |
+
|
2131 |
+
}
|
2132 |
+
|
2133 |
+
public function custom_plugins_api_call( $false, $action, $args ) {
|
2134 |
+
|
2135 |
+
if ( $action == 'plugin_information' ) {
|
2136 |
+
|
2137 |
+
$plugins = get_plugins();
|
2138 |
+
$plugin_names = array();
|
2139 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
2140 |
+
// plugins by WP slug which (plugin folder) which can be different
|
2141 |
+
// will use this to compare by title
|
2142 |
+
$plugin_names[ dirname( $plugin_id ) ] = array(
|
2143 |
+
'name' => $plugin['Name'],
|
2144 |
+
'title' => $plugin['Title'],
|
2145 |
+
);
|
2146 |
+
}
|
2147 |
+
|
2148 |
+
$slug = $args->slug;
|
2149 |
+
|
2150 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2151 |
+
|
2152 |
+
if ( ! $this->repository_has_valid_subscription( $repository_id ) ) {
|
2153 |
+
$site_key = false;
|
2154 |
+
} else {
|
2155 |
+
$site_key = $repository['subscription']['key'];
|
2156 |
+
}
|
2157 |
+
|
2158 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
2159 |
+
|
2160 |
+
foreach ( $package['products'] as $product ) {
|
2161 |
+
|
2162 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
2163 |
+
|
2164 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2165 |
+
|
2166 |
+
if ( $download['slug'] == $slug ||
|
2167 |
+
isset( $plugin_names[ $slug ] ) && (
|
2168 |
+
$plugin_names[ $slug ]['name'] == $download['name'] ||
|
2169 |
+
$plugin_names[ $slug ]['title'] == $download['name']
|
2170 |
+
)
|
2171 |
+
) {
|
2172 |
+
|
2173 |
+
if ( ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION ) {
|
2174 |
+
return false; // use data from wordpress.org
|
2175 |
+
}
|
2176 |
+
|
2177 |
+
$res = new stdClass();
|
2178 |
+
$res->external = true;
|
2179 |
+
|
2180 |
+
$res->name = $download['name'];
|
2181 |
+
$res->slug = $slug;
|
2182 |
+
$res->version = $download['version'];
|
2183 |
+
$res->author = '';
|
2184 |
+
$res->author_profile = '';
|
2185 |
+
$res->last_updated = $download['date'];
|
2186 |
+
|
2187 |
+
if ( $site_key ) {
|
2188 |
+
$res->download_link = $this->append_site_key_to_download_url( $download['url'], $site_key, $repository_id );
|
2189 |
+
}
|
2190 |
+
|
2191 |
+
$res->homepage = $repository['data']['url'];
|
2192 |
+
$res->sections = array(
|
2193 |
+
'Description' => $download['description'],
|
2194 |
+
'Changelog' => $download['changelog']
|
2195 |
+
);
|
2196 |
+
|
2197 |
+
return $res;
|
2198 |
+
|
2199 |
+
}
|
2200 |
+
|
2201 |
+
}
|
2202 |
+
|
2203 |
+
}
|
2204 |
+
|
2205 |
+
}
|
2206 |
+
|
2207 |
+
}
|
2208 |
+
|
2209 |
+
}
|
2210 |
+
|
2211 |
+
return $false;
|
2212 |
+
|
2213 |
+
}
|
2214 |
+
|
2215 |
+
public function plugins_upgrade_check( $update_plugins ) {
|
2216 |
+
|
2217 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
2218 |
+
|
2219 |
+
$plugins = get_plugins();
|
2220 |
+
|
2221 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
2222 |
+
|
2223 |
+
$slug = dirname( $plugin_id );
|
2224 |
+
if ( empty( $slug ) ) {
|
2225 |
+
continue;
|
2226 |
+
}
|
2227 |
+
|
2228 |
+
$version = $plugin['Version'];
|
2229 |
+
$name = $plugin['Name'];
|
2230 |
+
|
2231 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2232 |
+
|
2233 |
+
|
2234 |
+
if ( ! $this->repository_has_valid_subscription( $repository_id ) ) {
|
2235 |
+
$site_key = false;
|
2236 |
+
} else {
|
2237 |
+
$site_key = $repository['subscription']['key'];
|
2238 |
+
//$subscription_type = $this->get_subscription_type_for_repository($repository_id);
|
2239 |
+
}
|
2240 |
+
|
2241 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
2242 |
+
|
2243 |
+
foreach ( $package['products'] as $product ) {
|
2244 |
+
|
2245 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
2246 |
+
|
2247 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2248 |
+
|
2249 |
+
$has_wporg_update = ! empty( $update_plugins->response[ $plugin_id ] );
|
2250 |
+
if ( $this->should_fallback_under_wp_org_repo( $download, $site_key ) && $has_wporg_update ) {
|
2251 |
+
continue;
|
2252 |
+
}
|
2253 |
+
|
2254 |
+
$needs_version_update = version_compare( $download['version'], $version, '>' ) ||
|
2255 |
+
! empty( $_POST['reset_to_channel'] );
|
2256 |
+
|
2257 |
+
if (
|
2258 |
+
( empty( $update_plugins->response[ $plugin_id ] ) || ! $this->should_fallback_under_wp_org_repo( $download, $site_key ) ) &&
|
2259 |
+
( $download['slug'] == $slug || $download['name'] == $name ) &&
|
2260 |
+
$needs_version_update
|
2261 |
+
) {
|
2262 |
+
$response = new stdClass();
|
2263 |
+
$response->id = 0;
|
2264 |
+
$response->slug = $slug;
|
2265 |
+
$response->plugin = $plugin_id;
|
2266 |
+
$response->new_version = $download['version'];
|
2267 |
+
$response->upgrade_notice = '';
|
2268 |
+
$response->url = $download['url'];
|
2269 |
+
if ( $site_key ) {
|
2270 |
+
$response->package = $this->append_site_key_to_download_url( $download['url'], $site_key, $repository_id );
|
2271 |
+
}
|
2272 |
+
|
2273 |
+
$response = apply_filters( 'otgs_installer_upgrade_check_response', $response, $name, $repository_id );
|
2274 |
+
|
2275 |
+
$update_plugins->checked[ $plugin_id ] = $version;
|
2276 |
+
$update_plugins->response[ $plugin_id ] = $response;
|
2277 |
+
|
2278 |
+
}
|
2279 |
+
|
2280 |
+
}
|
2281 |
+
|
2282 |
+
}
|
2283 |
+
|
2284 |
+
}
|
2285 |
+
|
2286 |
+
}
|
2287 |
+
|
2288 |
+
}
|
2289 |
+
|
2290 |
+
}
|
2291 |
+
|
2292 |
+
return $update_plugins;
|
2293 |
+
|
2294 |
+
}
|
2295 |
+
|
2296 |
+
private function should_fallback_under_wp_org_repo( $download, $site_key ) {
|
2297 |
+
return ( ! empty( $download['free-on-wporg'] ) || isset( $download['fallback-free-on-wporg'] ) && $download['fallback-free-on-wporg'] && ! $site_key ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION;
|
2298 |
+
}
|
2299 |
+
|
2300 |
+
private function has_non_wporg_upgrade_available( $plugin_id ){
|
2301 |
+
$plugins_update_data = get_site_transient( 'update_plugins' );
|
2302 |
+
|
2303 |
+
return ! empty( $plugins_update_data->response[ $plugin_id ] ) &&
|
2304 |
+
! preg_match('/w\.org/', $plugins_update_data->response[ $plugin_id ]->id );
|
2305 |
+
}
|
2306 |
+
|
2307 |
+
public function setup_plugins_page_notices() {
|
2308 |
+
$plugins = get_plugins();
|
2309 |
+
$template_service = new OTGS_Installer_Twig_Template_Service_Loader(
|
2310 |
+
array( $this->plugin_path() . '/templates/components-setting/' )
|
2311 |
+
);
|
2312 |
+
$local_components_setting = new OTGS_Installer_WP_Share_Local_Components_Setting();
|
2313 |
+
$plugin_page_notice = new OTGS_Installer_Plugins_Page_Notice( $template_service->get_service(), $local_components_setting );
|
2314 |
+
|
2315 |
+
foreach ( $plugins as $plugin_id => $plugin ) {
|
2316 |
+
|
2317 |
+
$slug = dirname( $plugin_id );
|
2318 |
+
if ( empty( $slug ) ) {
|
2319 |
+
continue;
|
2320 |
+
}
|
2321 |
+
|
2322 |
+
$name = $plugin['Name'];
|
2323 |
+
|
2324 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2325 |
+
|
2326 |
+
if ( ! $this->repository_has_valid_subscription( $repository_id ) ) {
|
2327 |
+
$site_key = false;
|
2328 |
+
} else {
|
2329 |
+
$site_key = $repository['subscription']['key'];
|
2330 |
+
}
|
2331 |
+
|
2332 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
2333 |
+
|
2334 |
+
foreach ( $package['products'] as $product ) {
|
2335 |
+
|
2336 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
2337 |
+
|
2338 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2339 |
+
$display_subscription_notice = false;
|
2340 |
+
$display_setting_notice = false;
|
2341 |
+
|
2342 |
+
if ( $download['slug'] == $slug || $download['name'] == $name ) {
|
2343 |
+
if ( in_array( $name, array( 'Toolset Types', 'WPML Multilingual CMS' ), true ) ) {
|
2344 |
+
$display_setting_notice = true;
|
2345 |
+
}
|
2346 |
+
|
2347 |
+
if ( ! $site_key || ! $this->plugin_is_registered( $repository_id, $download['slug'] ) ) {
|
2348 |
+
$display_setting_notice = false;
|
2349 |
+
|
2350 |
+
if ( ! $this->should_fallback_under_wp_org_repo( $download, $site_key ) || $this->has_non_wporg_upgrade_available( $plugin_id ) ) {
|
2351 |
+
$display_subscription_notice = true;
|
2352 |
+
}
|
2353 |
+
}
|
2354 |
+
}
|
2355 |
+
|
2356 |
+
if ( $display_setting_notice || $display_subscription_notice ) {
|
2357 |
+
$plugin_page_notice->add_plugin(
|
2358 |
+
$plugin_id,
|
2359 |
+
array(
|
2360 |
+
OTGS_Installer_Plugins_Page_Notice::DISPLAY_SUBSCRIPTION_NOTICE_KEY => $display_subscription_notice,
|
2361 |
+
OTGS_Installer_Plugins_Page_Notice::DISPLAY_SETTING_NOTICE_KEY => $display_setting_notice,
|
2362 |
+
)
|
2363 |
+
);
|
2364 |
+
}
|
2365 |
+
}
|
2366 |
+
}
|
2367 |
+
}
|
2368 |
+
}
|
2369 |
+
}
|
2370 |
+
|
2371 |
+
$plugin_page_notice->add_hooks();
|
2372 |
+
}
|
2373 |
+
|
2374 |
+
public function localize_strings() {
|
2375 |
+
|
2376 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
2377 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2378 |
+
//set name as call2action when don't have any
|
2379 |
+
//products
|
2380 |
+
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2381 |
+
foreach ( $package['products'] as $product_id => $product ) {
|
2382 |
+
if ( empty( $product['call2action'] ) ) {
|
2383 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['call2action'] = $product['name'];
|
2384 |
+
}
|
2385 |
+
|
2386 |
+
foreach ( $product['upgrades'] as $idx => $upg ) {
|
2387 |
+
if ( empty( $upg['call2action'] ) ) {
|
2388 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['upgrades'][ $idx ]['call2action'] = $upg['name'];
|
2389 |
+
}
|
2390 |
+
}
|
2391 |
+
|
2392 |
+
foreach ( $product['renewals'] as $idx => $rnw ) {
|
2393 |
+
if ( empty( $rnw['call2action'] ) ) {
|
2394 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['renewals'][ $idx ]['call2action'] = $rnw['name'];
|
2395 |
+
}
|
2396 |
+
|
2397 |
+
}
|
2398 |
+
|
2399 |
+
}
|
2400 |
+
}
|
2401 |
+
}
|
2402 |
+
}
|
2403 |
+
|
2404 |
+
global $sitepress;
|
2405 |
+
if ( is_null( $sitepress ) ) {
|
2406 |
+
return;
|
2407 |
+
}
|
2408 |
+
|
2409 |
+
// default strings are always in English
|
2410 |
+
$user_admin_language = $sitepress->get_admin_language();
|
2411 |
+
|
2412 |
+
if ( $user_admin_language != 'en' ) {
|
2413 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2414 |
+
|
2415 |
+
$localization = $repository['data']['localization'];
|
2416 |
+
|
2417 |
+
//packages
|
2418 |
+
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2419 |
+
|
2420 |
+
if ( isset( $localization['packages'][ $package_id ]['name'][ $user_admin_language ] ) ) {
|
2421 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['name'] = $localization['packages'][ $package_id ]['name'][ $user_admin_language ];
|
2422 |
+
}
|
2423 |
+
if ( isset( $localization['packages'][ $package_id ]['description'][ $user_admin_language ] ) ) {
|
2424 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['description'] = $localization['packages'][ $package_id ]['description'][ $user_admin_language ];
|
2425 |
+
}
|
2426 |
+
|
2427 |
+
}
|
2428 |
+
|
2429 |
+
//products
|
2430 |
+
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2431 |
+
foreach ( $package['products'] as $product_id => $product ) {
|
2432 |
+
|
2433 |
+
if ( isset( $localization['products'][ $product_id ]['name'][ $user_admin_language ] ) ) {
|
2434 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['name']
|
2435 |
+
= $localization['products'][ $product_id ]['name'][ $user_admin_language ];
|
2436 |
+
}
|
2437 |
+
if ( isset( $localization['products'][ $product_id ]['description'][ $user_admin_language ] ) ) {
|
2438 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['description']
|
2439 |
+
= $localization['products'][ $product_id ]['description'][ $user_admin_language ];
|
2440 |
+
}
|
2441 |
+
if ( isset( $localization['products'][ $product_id ]['call2action'][ $user_admin_language ] ) ) {
|
2442 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['name']
|
2443 |
+
= $localization['products'][ $product_id ]['call2action'][ $user_admin_language ];
|
2444 |
+
}
|
2445 |
+
|
2446 |
+
|
2447 |
+
}
|
2448 |
+
}
|
2449 |
+
|
2450 |
+
//subscription info
|
2451 |
+
if ( isset( $repository['data']['subscriptions_meta']['expiration'] ) ) {
|
2452 |
+
foreach ( $repository['data']['subscriptions_meta']['expiration'] as $subscription_id => $note ) {
|
2453 |
+
if ( isset( $localization['subscriptions-notes'][ $subscription_id ]['expiration-warning'][ $user_admin_language ] ) ) {
|
2454 |
+
$this->settings['repositories'][ $repository_id ]['data']['subscriptions_meta']['expiration'][ $subscription_id ]['warning_message']
|
2455 |
+
= $localization['subscriptions-notes'][ $subscription_id ]['expiration-warning'][ $user_admin_language ];
|
2456 |
+
}
|
2457 |
+
}
|
2458 |
+
}
|
2459 |
+
|
2460 |
+
}
|
2461 |
+
}
|
2462 |
+
|
2463 |
+
}
|
2464 |
+
|
2465 |
+
public function get_matching_cp( $repository, $args = array() ) {
|
2466 |
+
$match = false;
|
2467 |
+
|
2468 |
+
|
2469 |
+
$cp_name = $cp_author = false;
|
2470 |
+
|
2471 |
+
if ( isset( $this->config['src_name'] ) && isset( $this->config['src_author'] ) ) {
|
2472 |
+
|
2473 |
+
$cp_name = $this->config['src_name'];
|
2474 |
+
$cp_author = $this->config['src_author'];
|
2475 |
+
|
2476 |
+
} elseif ( isset( $args['src_name'] ) && isset( $args['src_author'] ) ) {
|
2477 |
+
|
2478 |
+
$cp_name = $args['src_name'];
|
2479 |
+
$cp_author = $args['src_author'];
|
2480 |
+
|
2481 |
+
}
|
2482 |
+
|
2483 |
+
if ( isset( $repository['data']['marketing_cp'] ) ) {
|
2484 |
+
|
2485 |
+
foreach ( $repository['data']['marketing_cp'] as $cp ) {
|
2486 |
+
|
2487 |
+
if ( ! empty( $cp['exp'] ) && time() > $cp['exp'] ) {
|
2488 |
+
continue;
|
2489 |
+
}
|
2490 |
+
|
2491 |
+
//Use theme_name for plugins too
|
2492 |
+
if ( ! empty( $cp['theme_name'] ) ) {
|
2493 |
+
if ( $cp['author_name'] == $cp_author && $cp['theme_name'] == $cp_name ) {
|
2494 |
+
$match = $cp;
|
2495 |
+
continue;
|
2496 |
+
}
|
2497 |
+
} else {
|
2498 |
+
if ( $cp['author_name'] == $cp_author ) {
|
2499 |
+
$match = $cp;
|
2500 |
+
continue;
|
2501 |
+
}
|
2502 |
+
}
|
2503 |
+
|
2504 |
+
}
|
2505 |
+
|
2506 |
+
}
|
2507 |
+
|
2508 |
+
return $match;
|
2509 |
+
}
|
2510 |
+
|
2511 |
+
public function set_filtered_prices( $args = array() ) {
|
2512 |
+
|
2513 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2514 |
+
|
2515 |
+
$match = $this->get_matching_cp( $repository, $args );
|
2516 |
+
|
2517 |
+
if ( empty( $match ) ) {
|
2518 |
+
continue;
|
2519 |
+
}
|
2520 |
+
|
2521 |
+
foreach ( $repository['data']['packages'] as $package_id => $package ) {
|
2522 |
+
|
2523 |
+
foreach ( $package['products'] as $product_id => $product ) {
|
2524 |
+
|
2525 |
+
if ( $match['dtp'] == '%' ) {
|
2526 |
+
$fprice = round( $product['price'] * ( 1 - $match['amt'] / 100 ), 2 );
|
2527 |
+
$fprice = $fprice != round( $fprice ) ? sprintf( '%.2f', $fprice ) : round( $fprice, 0 );
|
2528 |
+
} elseif ( $match['dtp'] == '-' ) {
|
2529 |
+
$fprice = $product['price'] - $match['amt'];
|
2530 |
+
} else {
|
2531 |
+
$fprice = $product['price'];
|
2532 |
+
}
|
2533 |
+
|
2534 |
+
if ( $fprice ) {
|
2535 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['price_disc'] = $fprice;
|
2536 |
+
|
2537 |
+
$url_glue = false !== strpos( $this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['url'], '?' ) ? '&' : '?';
|
2538 |
+
$cpndata = base64_encode( json_encode( array(
|
2539 |
+
'theme_author' => $match['author_name'],
|
2540 |
+
'theme_name' => $match['theme_name'],
|
2541 |
+
'vlc' => $match['vlc']
|
2542 |
+
) ) );
|
2543 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['url'] .= $url_glue . 'cpn=' . $cpndata;
|
2544 |
+
|
2545 |
+
foreach ( $product['upgrades'] as $upgrade_id => $upgrade ) {
|
2546 |
+
|
2547 |
+
$fprice = false;
|
2548 |
+
if ( $match['dtp'] == '%' ) {
|
2549 |
+
$fprice = round( $upgrade['price'] * ( 1 - $match['amt'] / 100 ), 2 );
|
2550 |
+
$fprice = $fprice != round( $fprice ) ? sprintf( '%.2f', $fprice ) : round( $fprice, 0 );
|
2551 |
+
} elseif ( $match['dtp'] == '-' ) {
|
2552 |
+
$fprice = $upgrade['price'] - $match['amt'];
|
2553 |
+
}
|
2554 |
+
if ( $fprice ) {
|
2555 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['upgrades'][ $upgrade_id ]['price_disc'] = $fprice;
|
2556 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'][ $package_id ]['products'][ $product_id ]['upgrades'][ $upgrade_id ]['url'] .= $url_glue . 'cpn=' . $cpndata;
|
2557 |
+
}
|
2558 |
+
|
2559 |
+
|
2560 |
+
}
|
2561 |
+
|
2562 |
+
}
|
2563 |
+
|
2564 |
+
}
|
2565 |
+
|
2566 |
+
}
|
2567 |
+
|
2568 |
+
}
|
2569 |
+
|
2570 |
+
}
|
2571 |
+
|
2572 |
+
public function set_hierarchy_and_order() {
|
2573 |
+
|
2574 |
+
//2 levels
|
2575 |
+
if ( ! empty( $this->settings['repositories'] ) ) {
|
2576 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2577 |
+
|
2578 |
+
if ( empty( $repository['data']['packages'] ) ) {
|
2579 |
+
continue;
|
2580 |
+
}
|
2581 |
+
|
2582 |
+
$all_packages = $repository['data']['packages'];
|
2583 |
+
$ordered_packages = array();
|
2584 |
+
|
2585 |
+
//backward compatibility - 'order'
|
2586 |
+
foreach ( $all_packages as $k => $v ) {
|
2587 |
+
if ( ! isset( $v['order'] ) ) {
|
2588 |
+
$all_packages[ $k ]['order'] = 0;
|
2589 |
+
}
|
2590 |
+
}
|
2591 |
+
|
2592 |
+
//select parents
|
2593 |
+
foreach ( $all_packages as $package_id => $package ) {
|
2594 |
+
if ( empty( $package['parent'] ) ) {
|
2595 |
+
$ordered_packages[ $package_id ] = $package;
|
2596 |
+
}
|
2597 |
+
}
|
2598 |
+
|
2599 |
+
//add sub-packages
|
2600 |
+
foreach ( $all_packages as $package_id => $package ) {
|
2601 |
+
if ( ! empty( $package['parent'] ) ) {
|
2602 |
+
if ( isset( $ordered_packages[ $package['parent'] ] ) ) {
|
2603 |
+
$ordered_packages[ $package['parent'] ]['sub-packages'][ $package_id ] = $package;
|
2604 |
+
}
|
2605 |
+
}
|
2606 |
+
}
|
2607 |
+
|
2608 |
+
// order parents
|
2609 |
+
usort( $ordered_packages, array( $this, 'compare_package_order' ) );
|
2610 |
+
//order sub-packages
|
2611 |
+
foreach ( $ordered_packages as $package_id => $package ) {
|
2612 |
+
if ( ! empty( $package['sub-packages'] ) ) {
|
2613 |
+
usort( $ordered_packages[ $package_id ]['sub-packages'], array( $this, 'compare_package_order' ) );
|
2614 |
+
}
|
2615 |
+
}
|
2616 |
+
|
2617 |
+
$this->settings['repositories'][ $repository_id ]['data']['packages'] = $ordered_packages;
|
2618 |
+
|
2619 |
+
|
2620 |
+
}
|
2621 |
+
}
|
2622 |
+
|
2623 |
+
|
2624 |
+
}
|
2625 |
+
|
2626 |
+
public function compare_package_order($a, $b) {
|
2627 |
+
return $a['order'] > $b['order'];
|
2628 |
+
}
|
2629 |
+
|
2630 |
+
public function get_support_tag_by_name( $name, $repository ) {
|
2631 |
+
|
2632 |
+
if ( is_array( $this->settings['repositories'][ $repository ]['data']['support_tags'] ) ) {
|
2633 |
+
foreach ( $this->settings['repositories'][ $repository ]['data']['support_tags'] as $support_tag ) {
|
2634 |
+
if ( $support_tag['name'] == $name ) {
|
2635 |
+
return $support_tag['url'];
|
2636 |
+
}
|
2637 |
+
}
|
2638 |
+
}
|
2639 |
+
|
2640 |
+
return false;
|
2641 |
+
}
|
2642 |
+
|
2643 |
+
public function plugin_upgrade_custom_errors() {
|
2644 |
+
|
2645 |
+
if ( isset( $_REQUEST['action'] ) ) {
|
2646 |
+
|
2647 |
+
$action = isset( $_REQUEST['action'] ) ? sanitize_text_field( $_REQUEST['action'] ) : '';
|
2648 |
+
|
2649 |
+
//bulk mode
|
2650 |
+
if ( 'update-selected' == $action ) {
|
2651 |
+
|
2652 |
+
global $plugins;
|
2653 |
+
|
2654 |
+
if ( isset( $plugins ) && is_array( $plugins ) ) {
|
2655 |
+
|
2656 |
+
foreach ( $plugins as $k => $plugin ) {
|
2657 |
+
$plugin_repository = false;
|
2658 |
+
|
2659 |
+
$wp_plugin_slug = dirname( $plugin );
|
2660 |
+
|
2661 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2662 |
+
|
2663 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
2664 |
+
|
2665 |
+
foreach ( $package['products'] as $product ) {
|
2666 |
+
|
2667 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
2668 |
+
|
2669 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2670 |
+
|
2671 |
+
if ( $download['slug'] == $wp_plugin_slug ) {
|
2672 |
+
$plugin_repository = $repository_id;
|
2673 |
+
$product_name = $repository['data']['product-name'];
|
2674 |
+
$plugin_name = $download['name'];
|
2675 |
+
$free_on_wporg = ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION;
|
2676 |
+
break;
|
2677 |
+
}
|
2678 |
+
|
2679 |
+
}
|
2680 |
+
|
2681 |
+
}
|
2682 |
+
|
2683 |
+
}
|
2684 |
+
|
2685 |
+
}
|
2686 |
+
|
2687 |
+
if ( $plugin_repository ) {
|
2688 |
+
|
2689 |
+
//validate subscription
|
2690 |
+
static $sub_cache = array();
|
2691 |
+
|
2692 |
+
if ( empty( $sub_cache[ $plugin_repository ] ) ) {
|
2693 |
+
$subscription_data = false;
|
2694 |
+
$site_key = $this->get_repository_site_key( $plugin_repository );
|
2695 |
+
if ( $site_key ) {
|
2696 |
+
try {
|
2697 |
+
$subscription_data = $this->fetch_subscription_data( $plugin_repository, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REVALIDATION );
|
2698 |
+
} catch ( Exception $e ) {
|
2699 |
+
}
|
2700 |
+
}
|
2701 |
+
|
2702 |
+
$sub_cache[ $plugin_repository ]['site_key'] = $site_key;
|
2703 |
+
$sub_cache[ $plugin_repository ]['subscription_data'] = $subscription_data;
|
2704 |
+
} else {
|
2705 |
+
$site_key = $sub_cache[ $plugin_repository ]['site_key'];
|
2706 |
+
$subscription_data = $sub_cache[ $plugin_repository ]['subscription_data'];
|
2707 |
+
}
|
2708 |
+
|
2709 |
+
if ( ! $site_key && ! empty( $free_on_wporg ) ) { // allow the download from wp.org
|
2710 |
+
continue;
|
2711 |
+
}
|
2712 |
+
|
2713 |
+
if ( empty( $site_key ) || empty( $subscription_data ) ) {
|
2714 |
+
|
2715 |
+
|
2716 |
+
$error_message = sprintf( __( "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first.", 'installer' ),
|
2717 |
+
'<strong>' . $plugin_name . '</strong>', '<a target="_top" href="' . $this->menu_url() . '&validate_repository=' . $plugin_repository .
|
2718 |
+
'#repository-' . $plugin_repository . '">', $product_name, '</a>' );
|
2719 |
+
|
2720 |
+
echo '<div class="updated error"><p>' . $error_message . '</p></div>';
|
2721 |
+
|
2722 |
+
unset( $plugins[ $k ] );
|
2723 |
+
|
2724 |
+
|
2725 |
+
}
|
2726 |
+
|
2727 |
+
}
|
2728 |
+
|
2729 |
+
}
|
2730 |
+
|
2731 |
+
}
|
2732 |
+
|
2733 |
+
}
|
2734 |
+
|
2735 |
+
|
2736 |
+
if ( 'upgrade-plugin' == $action || 'update-plugin' == $action ) {
|
2737 |
+
|
2738 |
+
$plugin = isset( $_REQUEST['plugin'] ) ? trim( sanitize_text_field( $_REQUEST['plugin'] ) ) : '';
|
2739 |
+
|
2740 |
+
$wp_plugin_slug = dirname( $plugin );
|
2741 |
+
|
2742 |
+
$plugin_repository = false;
|
2743 |
+
|
2744 |
+
foreach ( $this->settings['repositories'] as $repository_id => $repository ) {
|
2745 |
+
|
2746 |
+
foreach ( $repository['data']['packages'] as $package ) {
|
2747 |
+
|
2748 |
+
foreach ( $package['products'] as $product ) {
|
2749 |
+
|
2750 |
+
foreach ( $product['plugins'] as $plugin_slug ) {
|
2751 |
+
$download = $this->settings['repositories'][ $repository_id ]['data']['downloads']['plugins'][ $plugin_slug ];
|
2752 |
+
|
2753 |
+
//match by folder, will change to match by name and folder
|
2754 |
+
if ( $download['slug'] == $wp_plugin_slug ) {
|
2755 |
+
$plugin_repository = $repository_id;
|
2756 |
+
$product_name = $repository['data']['product-name'];
|
2757 |
+
$plugin_name = $download['name'];
|
2758 |
+
$free_on_wporg = ! empty( $download['free-on-wporg'] ) && $download['channel'] == WP_Installer_Channels::CHANNEL_PRODUCTION;
|
2759 |
+
break;
|
2760 |
+
}
|
2761 |
+
|
2762 |
+
}
|
2763 |
+
|
2764 |
+
}
|
2765 |
+
|
2766 |
+
}
|
2767 |
+
|
2768 |
+
}
|
2769 |
+
|
2770 |
+
if ( $plugin_repository ) {
|
2771 |
+
|
2772 |
+
//validate subscription
|
2773 |
+
$site_key = $this->get_repository_site_key( $plugin_repository );
|
2774 |
+
if ( $site_key ) {
|
2775 |
+
try {
|
2776 |
+
$subscription_data = $this->fetch_subscription_data( $plugin_repository, $site_key, self::SITE_KEY_VALIDATION_SOURCE_REVALIDATION );
|
2777 |
+
} catch ( Exception $e ) {
|
2778 |
+
$subscription_data = false;
|
2779 |
+
}
|
2780 |
+
}
|
2781 |
+
|
2782 |
+
$no_subscription = empty( $site_key ) || empty( $subscription_data );
|
2783 |
+
$not_on_wporg = empty( $free_on_wporg ) && ! $this->should_fallback_under_wp_org_repo( $download, $site_key );
|
2784 |
+
|
2785 |
+
if ( $no_subscription && $not_on_wporg ) {
|
2786 |
+
|
2787 |
+
$error_message = sprintf( __( "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first.", 'installer' ),
|
2788 |
+
'<strong>' . $plugin_name . '</strong>', '<a href="' . $this->menu_url() . '&validate_repository=' . $plugin_repository .
|
2789 |
+
'#repository-' . $plugin_repository . '">', $product_name, '</a>' );
|
2790 |
+
|
2791 |
+
if ( defined( 'DOING_AJAX' ) ) { //WP 4.2
|
2792 |
+
|
2793 |
+
$status = array(
|
2794 |
+
'update' => 'plugin',
|
2795 |
+
'plugin' => $plugin,
|
2796 |
+
'slug' => sanitize_key( $_POST['slug'] ),
|
2797 |
+
'oldVersion' => '',
|
2798 |
+
'newVersion' => '',
|
2799 |
+
);
|
2800 |
+
|
2801 |
+
$status['errorCode'] = 'wp_installer_invalid_subscription';
|
2802 |
+
$status['error'] = $error_message;
|
2803 |
+
|
2804 |
+
wp_send_json_error( $status );
|
2805 |
+
|
2806 |
+
} else { // WP 4.1.1
|
2807 |
+
echo '<div class="updated error"><p>' . $error_message . '</p></div>';
|
2808 |
+
|
2809 |
+
|
2810 |
+
echo '<div class="wrap">';
|
2811 |
+
echo '<h2>' . __( 'Update Plugin', 'installer' ) . '</h2>';
|
2812 |
+
echo '<a href="' . admin_url( 'plugins.php' ) . '">' . __( 'Return to the plugins page', 'installer' ) . '</a>';
|
2813 |
+
echo '</div>';
|
2814 |
+
require_once( ABSPATH . 'wp-admin/admin-footer.php' );
|
2815 |
+
exit;
|
2816 |
+
|
2817 |
+
}
|
2818 |
+
|
2819 |
+
}
|
2820 |
+
|
2821 |
+
|
2822 |
+
}
|
2823 |
+
|
2824 |
+
}
|
2825 |
+
}
|
2826 |
+
|
2827 |
+
}
|
2828 |
+
|
2829 |
+
}
|
vendor/otgs/installer/includes/functions-core.php
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
function WP_Installer(){
|
3 |
+
return WP_Installer::instance();
|
4 |
+
}
|
5 |
+
|
6 |
+
function WP_Installer_Channels(){
|
7 |
+
return WP_Installer_Channels::instance();
|
8 |
+
}
|
9 |
+
|
10 |
+
function get_OTGS_Installer_Factory() {
|
11 |
+
static $installer_factory;
|
12 |
+
|
13 |
+
if ( ! $installer_factory ) {
|
14 |
+
$installer_factory = new OTGS_Installer_Factory( WP_Installer() );
|
15 |
+
}
|
16 |
+
|
17 |
+
return $installer_factory;
|
18 |
+
}
|
vendor/otgs/installer/includes/functions-templates.php
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Ext function
|
4 |
+
function WP_Installer_Show_Products($args = array()){
|
5 |
+
WP_Installer()->show_products($args);
|
6 |
+
}
|
7 |
+
|
8 |
+
function WP_Installer_get_local_components_setting_ui( $args ) {
|
9 |
+
$installer_factory = get_OTGS_Installer_Factory();
|
10 |
+
|
11 |
+
ob_start();
|
12 |
+
$installer_factory->create_settings_hooks()
|
13 |
+
->render_local_components_setting( $args );
|
14 |
+
|
15 |
+
return ob_get_clean();
|
16 |
+
}
|
vendor/otgs/installer/installer.php
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// included from \wpml_installer_instance_delegator
|
3 |
+
|
4 |
+
include_once untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/includes/class-otgs-installer-wp-share-local-components-setting.php';
|
5 |
+
|
6 |
+
if ( version_compare( $delegate['version'], '1.8.12', '>=' ) ) {
|
7 |
+
define( 'WP_INSTALLER_VERSION', $delegate['version'] );
|
8 |
+
}
|
9 |
+
|
10 |
+
$plugin_path = dirname( __FILE__ );
|
11 |
+
|
12 |
+
include_once $plugin_path . '/includes/functions-core.php';
|
13 |
+
include_once $plugin_path . '/includes/class-otgs-installer-subscription.php';
|
14 |
+
include_once $plugin_path . '/includes/class-wp-installer.php';
|
15 |
+
|
16 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-wp-installer-api.php';
|
17 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-translation-service-info.php';
|
18 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-installer-dependencies.php';
|
19 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-wp-installer-channels.php';
|
20 |
+
|
21 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-php-functions.php';
|
22 |
+
|
23 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-sender.php';
|
24 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-storage.php';
|
25 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-hooks.php';
|
26 |
+
|
27 |
+
include_once WP_Installer()->plugin_path() . '/templates/template-service/interface-iotgs-installer-template-service.php';
|
28 |
+
include_once WP_Installer()->plugin_path() . '/templates/template-service/class-otgs-installer-twig-template-service.php';
|
29 |
+
include_once WP_Installer()->plugin_path() . '/templates/template-service/class-otgs-installer-twig-template-service-loader.php';
|
30 |
+
|
31 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-setting-resources.php';
|
32 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-plugins-page-notice.php';
|
33 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-components-setting-ajax.php';
|
34 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-filename-hooks.php';
|
35 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-icons.php';
|
36 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-wp-share-local-components-setting-hooks.php';
|
37 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-installer-factory.php';
|
38 |
+
|
39 |
+
include_once WP_Installer()->plugin_path() . '/includes/functions-templates.php';
|
40 |
+
include_once WP_Installer()->plugin_path() . '/includes/class-otgs-twig-autoloader.php';
|
41 |
+
|
42 |
+
// Initialization
|
43 |
+
WP_Installer();
|
44 |
+
WP_Installer_Channels();
|
45 |
+
|
46 |
+
$installer_factory = get_OTGS_Installer_Factory();
|
47 |
+
|
48 |
+
$installer_factory->create_resources()
|
49 |
+
->add_hooks();
|
50 |
+
$installer_factory->create_settings_hooks()
|
51 |
+
->add_hooks();
|
52 |
+
$installer_factory->create_wp_components_hooks()
|
53 |
+
->add_hooks();
|
54 |
+
$installer_factory->create_local_components_ajax_setting()
|
55 |
+
->add_hooks();
|
56 |
+
$installer_factory->create_filename_hooks()
|
57 |
+
->add_hooks();
|
58 |
+
$installer_factory->create_icons()
|
59 |
+
->add_hooks();
|
60 |
+
|
vendor/otgs/installer/loader.php
ADDED
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit; // Exit if accessed directly
|
5 |
+
}
|
6 |
+
|
7 |
+
//It should only be loaded on the admin side
|
8 |
+
if ( ! ( defined( 'DOING_CRON' ) && DOING_CRON ) && ! is_admin() ) {
|
9 |
+
if ( ! function_exists( 'WP_Installer_Setup' ) ) {
|
10 |
+
function WP_Installer_Setup() {
|
11 |
+
}
|
12 |
+
}
|
13 |
+
$wp_installer_instance = null;
|
14 |
+
|
15 |
+
return;
|
16 |
+
}
|
17 |
+
|
18 |
+
$wp_installer_instance = dirname( __FILE__ ) . '/installer.php';
|
19 |
+
|
20 |
+
|
21 |
+
// Global stack of instances
|
22 |
+
global $wp_installer_instances;
|
23 |
+
$wp_installer_instances[ $wp_installer_instance ] = array(
|
24 |
+
'bootfile' => $wp_installer_instance,
|
25 |
+
'version' => '1.8.18'
|
26 |
+
);
|
27 |
+
|
28 |
+
|
29 |
+
/* EXCEPTIONS ********************************************************************************************/
|
30 |
+
// Exception: When WPML prior 3.2 is used, that instance must be used regardless of another newer instance
|
31 |
+
// Case 1: WPML loaded before Types - eliminate other instances
|
32 |
+
if ( defined( 'ICL_SITEPRESS_VERSION' ) && version_compare( ICL_SITEPRESS_VERSION, '3.2', '<' ) ) {
|
33 |
+
foreach ( $wp_installer_instances as $key => $instance ) {
|
34 |
+
if ( isset( $instance['args']['site_key_nags'] ) ) {
|
35 |
+
$wp_installer_instances[ $key ]['version'] = '9.9';
|
36 |
+
} else {
|
37 |
+
$wp_installer_instances[ $key ]['version'] = '0';
|
38 |
+
}
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
// Exception: Types 1.8.9 (Installer 1.7.0) with WPML before 3.3 (Installer before 1.7.0)
|
43 |
+
// New products file http://d2salfytceyqoe.cloudfront.net/wpml-products33.json overrides the old one
|
44 |
+
// while the WPML's instance is being used
|
45 |
+
// => Force using the new Installer Instance
|
46 |
+
if ( defined( 'ICL_SITEPRESS_VERSION' ) && version_compare( ICL_SITEPRESS_VERSION, '3.3.1', '<' ) ) {
|
47 |
+
|
48 |
+
// if Installer 1.7.0+ is present, unregister Installer from old WPML
|
49 |
+
// Force Installer 1.7.0+ being used over older Installer versions
|
50 |
+
$installer_171_plus_on = false;
|
51 |
+
foreach ( $wp_installer_instances as $key => $instance ) {
|
52 |
+
if ( version_compare( $instance['version'], '1.7.1', '>=' ) ) {
|
53 |
+
$installer_171_plus_on = true;
|
54 |
+
break;
|
55 |
+
}
|
56 |
+
}
|
57 |
+
|
58 |
+
if ( $installer_171_plus_on ) {
|
59 |
+
foreach ( $wp_installer_instances as $key => $instance ) {
|
60 |
+
|
61 |
+
if ( version_compare( $instance['version'], '1.7.0', '<' ) ) {
|
62 |
+
unset( $wp_installer_instances[ $key ] );
|
63 |
+
}
|
64 |
+
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
}
|
69 |
+
|
70 |
+
// Exception: When using the embedded plugins module allow the set up to run completely with the
|
71 |
+
// Installer instance that triggers it
|
72 |
+
if ( isset( $_POST['installer_instance'] ) && isset( $wp_installer_instances[ $_POST['installer_instance'] ] ) ) {
|
73 |
+
$wp_installer_instances[ $_POST['installer_instance'] ]['version'] = '999';
|
74 |
+
}
|
75 |
+
/* EXCEPTIONS ********************************************************************************************/
|
76 |
+
|
77 |
+
|
78 |
+
// Only one of these in the end
|
79 |
+
remove_action( 'after_setup_theme', 'wpml_installer_instance_delegator', 1 );
|
80 |
+
add_action( 'after_setup_theme', 'wpml_installer_instance_delegator', 1 );
|
81 |
+
|
82 |
+
// When all plugins load pick the newest version
|
83 |
+
if ( ! function_exists( 'wpml_installer_instance_delegator' ) ) {
|
84 |
+
function wpml_installer_instance_delegator() {
|
85 |
+
global $wp_installer_instances;
|
86 |
+
|
87 |
+
// version based election
|
88 |
+
foreach ( $wp_installer_instances as $instance ) {
|
89 |
+
|
90 |
+
if ( ! isset( $delegate ) ) {
|
91 |
+
$delegate = $instance;
|
92 |
+
continue;
|
93 |
+
}
|
94 |
+
|
95 |
+
if ( version_compare( $instance['version'], $delegate['version'], '>' ) ) {
|
96 |
+
$delegate = $instance;
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
// priority based election
|
101 |
+
$highest_priority = null;
|
102 |
+
foreach ( $wp_installer_instances as $instance ) {
|
103 |
+
if ( isset( $instance['args']['high_priority'] ) ) {
|
104 |
+
if ( is_null( $highest_priority ) || $instance['args']['high_priority'] <= $highest_priority ) {
|
105 |
+
$highest_priority = $instance['args']['high_priority'];
|
106 |
+
$delegate = $instance;
|
107 |
+
}
|
108 |
+
}
|
109 |
+
}
|
110 |
+
|
111 |
+
// Exception: When WPML prior 3.2 is used, that instance must be used regardless of another newer instance
|
112 |
+
// Case 2: WPML loaded after Types
|
113 |
+
if ( defined( 'ICL_SITEPRESS_VERSION' ) && version_compare( ICL_SITEPRESS_VERSION, '3.2', '<' ) ) {
|
114 |
+
foreach ( $wp_installer_instances as $key => $instance ) {
|
115 |
+
if ( isset( $instance['args']['site_key_nags'] ) ) {
|
116 |
+
$delegate = $instance;
|
117 |
+
$wp_installer_instances = array( $key => $delegate ); //Eliminate other instances
|
118 |
+
break;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
include_once $delegate['bootfile'];
|
124 |
+
|
125 |
+
// set configuration
|
126 |
+
if ( strpos( realpath( $delegate['bootfile'] ), realpath( TEMPLATEPATH ) ) === 0 ) {
|
127 |
+
$delegate['args']['in_theme_folder'] = dirname( ltrim( str_replace( realpath( TEMPLATEPATH ), '', realpath( $delegate['bootfile'] ) ), '\\/' ) );
|
128 |
+
}
|
129 |
+
if ( isset( $delegate['args'] ) && is_array( $delegate['args'] ) ) {
|
130 |
+
foreach ( $delegate['args'] as $key => $value ) {
|
131 |
+
WP_Installer()->set_config( $key, $value );
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
if ( ! function_exists( 'WP_Installer_Setup' ) ) {
|
139 |
+
|
140 |
+
// $args:
|
141 |
+
// plugins_install_tab = true|false (default: true)
|
142 |
+
// repositories_include = array() (default: all)
|
143 |
+
// repositories_exclude = array() (default: none)
|
144 |
+
// template = name (default: default)
|
145 |
+
//
|
146 |
+
// Ext function
|
147 |
+
function WP_Installer_Setup( $wp_installer_instance, $args = array() ) {
|
148 |
+
global $wp_installer_instances;
|
149 |
+
|
150 |
+
if ( $wp_installer_instance ) {
|
151 |
+
$wp_installer_instances[ $wp_installer_instance ]['args'] = $args;
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
}
|
vendor/otgs/installer/locale/installer-ar.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-de_DE.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-el.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-es_ES.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-fr_FR.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-he_IL.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-it_IT.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-ja.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-ko_KR.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-nl_NL.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-pl_PL.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-pt_BR.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-pt_PT.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-ru_RU.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-sv_SE.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-uk_UA.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-vi.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-zh_CN.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/installer-zh_TW.mo
ADDED
Binary file
|
vendor/otgs/installer/locale/orig/installer.po
ADDED
@@ -0,0 +1,230 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# This file was generated by WPML
|
2 |
+
# WPML is a WordPress plugin that can turn any WordPress site into a full featured multilingual content management system.
|
3 |
+
# https://wpml.org
|
4 |
+
msgid ""
|
5 |
+
msgstr ""
|
6 |
+
"Content-Type: text/plain; charset=utf-8\n"
|
7 |
+
"Content-Transfer-Encoding: 8bit\n"
|
8 |
+
"Project-Id-Version:WPML_EXPORT\n"
|
9 |
+
"POT-Creation-Date: \n"
|
10 |
+
"PO-Revision-Date: \n"
|
11 |
+
"Last-Translator: \n"
|
12 |
+
"Language-Team: \n"
|
13 |
+
"Language:en\n"
|
14 |
+
"MIME-Version: 1.0\n"
|
15 |
+
|
16 |
+
msgid "Installer"
|
17 |
+
msgstr ""
|
18 |
+
|
19 |
+
msgid "Registered"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
msgid "Register"
|
23 |
+
msgstr ""
|
24 |
+
|
25 |
+
msgid "To get automatic updates, you need to register %s for this site. %sRegister %s%s"
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
msgid "Dismiss"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
msgid "Commercial"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
msgid "Installer cannot contact our updates server to get information about the available products and check for new versions. If you are seeing this message for the first time, you can ignore it, as it may be a temporary communication problem. If the problem persists and your WordPress admin is slowing down, you can disable automated version checks. Add the following line to your wp-config.php file:"
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
msgid "No repositories defined."
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
msgid "%s cannot access %s to register. Try again to see if it's a temporary problem. If the problem continues, make sure that this site has access to the Internet. You can still use the plugin without registration, but you will not receive automated updates."
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
msgid "Invalid site key for the current site."
|
44 |
+
msgstr ""
|
45 |
+
|
46 |
+
msgid "You will have to renew your subscription in order to continue getting the updates and support."
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
msgid "%sRenew here%s."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
msgid "Your subscription appears to no longer be valid. Please try to register again using a valid site key."
|
53 |
+
msgstr ""
|
54 |
+
|
55 |
+
msgid "You need to have a valid subscription in order to get upgrades or support for this plugin. %sPurchase a subscription or enter an existing site key%s."
|
56 |
+
msgstr ""
|
57 |
+
|
58 |
+
msgid "%s cannot update because your site's registration is not valid. Please %sregister %s%s again for this site first."
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
msgid "Update Plugin"
|
62 |
+
msgstr ""
|
63 |
+
|
64 |
+
msgid "Return to the plugins page"
|
65 |
+
msgstr ""
|
66 |
+
|
67 |
+
msgid "Your subscription expires in %d day."
|
68 |
+
msgstr ""
|
69 |
+
|
70 |
+
msgid "Your subscription expires in %d days."
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
msgid "Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s."
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
msgid "Plugin"
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
msgid "downloading..."
|
80 |
+
msgstr ""
|
81 |
+
|
82 |
+
msgid "failed!"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
msgid "downloaded"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
msgid "activating"
|
89 |
+
msgstr ""
|
90 |
+
|
91 |
+
msgid "activated"
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
msgid "Activate after download"
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
msgid "Operation complete!"
|
98 |
+
msgstr ""
|
99 |
+
|
100 |
+
msgid "Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again."
|
101 |
+
msgstr ""
|
102 |
+
|
103 |
+
msgid "Available"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
msgid "Installed"
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
msgid "Downloading"
|
110 |
+
msgstr ""
|
111 |
+
|
112 |
+
msgid "Activate"
|
113 |
+
msgstr ""
|
114 |
+
|
115 |
+
msgid "Download"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
msgid "Downloads:"
|
119 |
+
msgstr ""
|
120 |
+
|
121 |
+
msgid "Current version"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
msgid "Released"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
msgid "Installed version"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
msgid "(embedded)"
|
131 |
+
msgstr ""
|
132 |
+
|
133 |
+
msgid "installing..."
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
msgid "updating..."
|
137 |
+
msgstr ""
|
138 |
+
|
139 |
+
msgid "installed"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
msgid "updated"
|
143 |
+
msgstr ""
|
144 |
+
|
145 |
+
msgid "Download failed!\n\nPlease refresh the page and try again."
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
msgid "Incorrect setup"
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
msgid "Invalid product"
|
152 |
+
msgstr ""
|
153 |
+
|
154 |
+
msgid "Unknown repository"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
msgid " Your current site key (%s) does not match the selected product (%s)."
|
158 |
+
msgstr ""
|
159 |
+
|
160 |
+
msgid "Buy %s"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
msgid "Already bought %s?"
|
164 |
+
msgstr ""
|
165 |
+
|
166 |
+
msgid "Renew %s"
|
167 |
+
msgstr ""
|
168 |
+
|
169 |
+
msgid "Remove current site key (%s)"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
msgid "%s support on wpml.org"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
msgid "Enter site key"
|
176 |
+
msgstr ""
|
177 |
+
|
178 |
+
msgid "Subscription is expired."
|
179 |
+
msgstr ""
|
180 |
+
|
181 |
+
msgid "Add"
|
182 |
+
msgstr ""
|
183 |
+
|
184 |
+
msgid "Are you sure you want to remove this site key?"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
msgid "Register %s"
|
188 |
+
msgstr ""
|
189 |
+
|
190 |
+
msgid "1. Go to your %s%s account%s and add this site URL: %s"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
msgid "Unregister %s from this site"
|
194 |
+
msgstr ""
|
195 |
+
|
196 |
+
msgid "%s is registered on this site. You will receive automatic updates until %s"
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
msgid "%s is registered on this site. Your Lifetime account gives you updates for life."
|
200 |
+
msgstr ""
|
201 |
+
|
202 |
+
msgid "This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this."
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
msgid "Already bought?"
|
206 |
+
msgstr ""
|
207 |
+
|
208 |
+
msgid "2. Enter your site key"
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
msgid "Subscription is expired. You need to either purchase a new subscription or upgrade if available."
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
msgid "Check for updates"
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
+
msgid "Individual components"
|
218 |
+
msgstr ""
|
219 |
+
|
220 |
+
msgid "OK"
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
msgid "Cancel"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
msgid "Are you sure you want to unregister?"
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
msgid "Click to see individual components options."
|
230 |
+
msgstr ""
|
vendor/otgs/installer/phpcs.compatibility.xml
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset name="WPML">
|
3 |
+
<description>WPML Coding Standards</description>
|
4 |
+
|
5 |
+
<config name="testVersion" value="5.2"/>
|
6 |
+
|
7 |
+
<rule ref="PHPCompatibility" />
|
8 |
+
|
9 |
+
<exclude-pattern>*/vendor/*</exclude-pattern>
|
10 |
+
<exclude-pattern>*/tests/*</exclude-pattern>
|
11 |
+
<exclude-pattern>*.js</exclude-pattern>
|
12 |
+
<exclude-pattern>*.mo</exclude-pattern>
|
13 |
+
<exclude-pattern>*.po</exclude-pattern>
|
14 |
+
<exclude-pattern>*.twig</exclude-pattern>
|
15 |
+
<exclude-pattern>*.css</exclude-pattern>
|
16 |
+
<exclude-pattern>*.scss</exclude-pattern>
|
17 |
+
|
18 |
+
|
19 |
+
</ruleset>
|
vendor/otgs/installer/phpcs.xml
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset name="WPML">
|
3 |
+
<description>WPML Coding Standards</description>
|
4 |
+
|
5 |
+
<rule ref="WordPress-Core"/>
|
6 |
+
<rule ref="WordPress-Docs"/>
|
7 |
+
<rule ref="WordPress-Extra"/>
|
8 |
+
|
9 |
+
<exclude-pattern>*/vendor/*</exclude-pattern>
|
10 |
+
<exclude-pattern>*/tests/*</exclude-pattern>
|
11 |
+
<exclude-pattern>*.js</exclude-pattern>
|
12 |
+
<exclude-pattern>*.mo</exclude-pattern>
|
13 |
+
<exclude-pattern>*.po</exclude-pattern>
|
14 |
+
<exclude-pattern>*.twig</exclude-pattern>
|
15 |
+
<exclude-pattern>*.css</exclude-pattern>
|
16 |
+
<exclude-pattern>*.scss</exclude-pattern>
|
17 |
+
</ruleset>
|
vendor/otgs/installer/phpunit.xml
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<phpunit
|
2 |
+
bootstrap="./tests/phpunit/bootstrap.php"
|
3 |
+
backupGlobals="false"
|
4 |
+
colors="true"
|
5 |
+
convertErrorsToExceptions="true"
|
6 |
+
convertNoticesToExceptions="true"
|
7 |
+
convertWarningsToExceptions="true"
|
8 |
+
>
|
9 |
+
<testsuites>
|
10 |
+
<testsuite name="installer-tests">
|
11 |
+
<directory suffix=".php">./tests/phpunit/tests/</directory>
|
12 |
+
</testsuite>
|
13 |
+
</testsuites>
|
14 |
+
<filter>
|
15 |
+
<whitelist>
|
16 |
+
<directory suffix=".php">./</directory>
|
17 |
+
<exclude>
|
18 |
+
<directory>./locale</directory>
|
19 |
+
<directory>./tests</directory>
|
20 |
+
<directory>./vendor</directory>
|
21 |
+
</exclude>
|
22 |
+
</whitelist>
|
23 |
+
</filter>
|
24 |
+
</phpunit>
|
vendor/otgs/installer/repositories.xml
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<repositories>
|
3 |
+
<repository>
|
4 |
+
<id>wpml</id>
|
5 |
+
<apiurl>https://api.wpml.org/</apiurl>
|
6 |
+
<products>http://d2salfytceyqoe.cloudfront.net/wpml33-products.json</products>
|
7 |
+
</repository>
|
8 |
+
<repository>
|
9 |
+
<id>toolset</id>
|
10 |
+
<apiurl>https://api.toolset.com/</apiurl>
|
11 |
+
<products>http://d7j863fr5jhrr.cloudfront.net/toolset33-products.json</products>
|
12 |
+
</repository>
|
13 |
+
</repositories>
|
vendor/otgs/installer/res/css/admin.css
ADDED
@@ -0,0 +1,346 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.otgsi_site_key_form{
|
2 |
+
display:none;
|
3 |
+
/*display:inline;*/
|
4 |
+
}
|
5 |
+
.otgs-installer-register-inputs {
|
6 |
+
display: block;
|
7 |
+
}
|
8 |
+
@media (min-width: 1100px) {
|
9 |
+
.otgs-installer-register-inputs {
|
10 |
+
display: inline;
|
11 |
+
white-space: nowrap;
|
12 |
+
}
|
13 |
+
}
|
14 |
+
.otgsi_site_key_form .otgs-installer-register-inputs input {
|
15 |
+
vertical-align: middle;
|
16 |
+
margin: 3px 1px;
|
17 |
+
height: 28px;
|
18 |
+
line-height: 26px;
|
19 |
+
}
|
20 |
+
|
21 |
+
|
22 |
+
.installer-status-installing, .installer-status-installed, .installer-status-updating, .installer-status-updated, .installer-status-activating, .installer-status-activated, .installer-status-success{
|
23 |
+
display: none;
|
24 |
+
}
|
25 |
+
.installer-status-installing{color: #FF9900; }
|
26 |
+
.installer-status-installed{color: #003300; font-weight: bold; }
|
27 |
+
.installer-status-updating{color: #FF9900; }
|
28 |
+
.installer-status-updated{color: #003300; font-weight: bold; }
|
29 |
+
|
30 |
+
.installer-status-installed .error-details:before,
|
31 |
+
.installer-status-updated .error-details:before{
|
32 |
+
content: "\f534";
|
33 |
+
font: 200 16px/1 dashicons;
|
34 |
+
vertical-align: text-bottom;
|
35 |
+
margin-left: 5px;
|
36 |
+
color: red;
|
37 |
+
cursor: help;
|
38 |
+
}
|
39 |
+
|
40 |
+
.installer-status-activating{color: #996666 }
|
41 |
+
.installer-status-activated{color: #333366; font-weight: bold; }
|
42 |
+
|
43 |
+
.js-status-success p{
|
44 |
+
color: #FF9900;
|
45 |
+
padding: 4px;
|
46 |
+
}
|
47 |
+
|
48 |
+
.installer-green-text{
|
49 |
+
color:#006600;
|
50 |
+
font-weight:bold;
|
51 |
+
}
|
52 |
+
|
53 |
+
.installer-red-text{
|
54 |
+
color:#b22121;
|
55 |
+
font-weight:bold;
|
56 |
+
}
|
57 |
+
|
58 |
+
.installer-footnote{
|
59 |
+
color:#3d5e69;
|
60 |
+
display:block;
|
61 |
+
float: left;
|
62 |
+
font-style: italic;
|
63 |
+
font-size: 90%;
|
64 |
+
}
|
65 |
+
|
66 |
+
.installer-products-list li{
|
67 |
+
display: inline;
|
68 |
+
margin-right: 20px;
|
69 |
+
}
|
70 |
+
|
71 |
+
.otgs_wp_installer_table a.disabled{
|
72 |
+
color:#888;
|
73 |
+
}
|
74 |
+
|
75 |
+
.otgs_wp_installer_subtable{
|
76 |
+
clear: both;
|
77 |
+
margin-left:-20px;
|
78 |
+
}
|
79 |
+
.otgs_wp_installer_subtable td p{
|
80 |
+
font-size: 92%;
|
81 |
+
}
|
82 |
+
|
83 |
+
.installer-status-error{
|
84 |
+
color: #f00;
|
85 |
+
}
|
86 |
+
|
87 |
+
.installer-status-note{
|
88 |
+
color: #6F6E6D;
|
89 |
+
font-style: italic;
|
90 |
+
}
|
91 |
+
|
92 |
+
.installer-warn-text{
|
93 |
+
color: #FF6400;
|
94 |
+
}
|
95 |
+
|
96 |
+
.installer-warn-box{
|
97 |
+
-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;border:1px solid #FF6400;background-color:#df8a48;
|
98 |
+
color: #333;
|
99 |
+
padding: 5px;
|
100 |
+
}
|
101 |
+
.installer-warn-box span.details{
|
102 |
+
font-style: italic;
|
103 |
+
color:#777;
|
104 |
+
}
|
105 |
+
|
106 |
+
.installer-error-box{
|
107 |
+
color:#962722;
|
108 |
+
margin-top: 10px;
|
109 |
+
}
|
110 |
+
.installer-error-box p{
|
111 |
+
margin: 10px 0 10px 0;
|
112 |
+
-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;border:1px solid #962722;background-color:#F5C8C6;
|
113 |
+
color: #333;
|
114 |
+
padding: 5px;
|
115 |
+
text-align: center;
|
116 |
+
}
|
117 |
+
|
118 |
+
.spinner-inline{
|
119 |
+
float: none;
|
120 |
+
display: inline-block;
|
121 |
+
visibility: visible;
|
122 |
+
}
|
123 |
+
|
124 |
+
.installer-q-icon:before{
|
125 |
+
content: '\f223' !important;
|
126 |
+
font-family: dashicons !important;
|
127 |
+
font-size: 20px;
|
128 |
+
line-height: 1;
|
129 |
+
color: #f56e28;
|
130 |
+
}
|
131 |
+
|
132 |
+
.installer-plugin-update-tr td{
|
133 |
+
padding-left:3px !important;
|
134 |
+
}
|
135 |
+
|
136 |
+
.otgsi_yellow_bg{
|
137 |
+
background-color: #f2f46b;
|
138 |
+
}
|
139 |
+
|
140 |
+
.otgs_wp_installer_table_compact{
|
141 |
+
width:480px;
|
142 |
+
border: solid 1px #999;
|
143 |
+
padding:10px;
|
144 |
+
border-radius: 5px;
|
145 |
+
}
|
146 |
+
|
147 |
+
.installer-plugins-list-compact{
|
148 |
+
background-color: #fff;
|
149 |
+
border-collapse: collapse;
|
150 |
+
border:solid 1px #C1DAD7;
|
151 |
+
width:100%;
|
152 |
+
}
|
153 |
+
|
154 |
+
.installer-plugins-list-compact tr th{
|
155 |
+
padding-top:3px;
|
156 |
+
background-color: #ccc;
|
157 |
+
}
|
158 |
+
|
159 |
+
.installer-plugins-list-compact tr{
|
160 |
+
background-color: #ddd;
|
161 |
+
}
|
162 |
+
|
163 |
+
.installer-plugins-list-compact tr.even{
|
164 |
+
background-color: #eee;
|
165 |
+
}
|
166 |
+
|
167 |
+
.installer-plugins-list-compact td{
|
168 |
+
padding:2px 5px 2px 5px;
|
169 |
+
border-right: 1px solid #C1DAD7;
|
170 |
+
border-bottom: 1px solid #C1DAD7;
|
171 |
+
}
|
172 |
+
|
173 |
+
.installer-plugins-list-compact td.twelve{
|
174 |
+
width:16px;
|
175 |
+
}
|
176 |
+
|
177 |
+
.otgs_wp_installer_table_compact .installer-status-downloading,
|
178 |
+
.otgs_wp_installer_table_compact .installer-status-downloaded,
|
179 |
+
.otgs_wp_installer_table_compact .installer-status-activating,
|
180 |
+
.otgs_wp_installer_table_compact .installer-status-activated{
|
181 |
+
display: none;
|
182 |
+
color:transparent; width: 12px; padding:2px;
|
183 |
+
}
|
184 |
+
|
185 |
+
.otgs_wp_installer_table_compact .installer-status-success,
|
186 |
+
.otgs_wp_installer_table_compact .installer-status-fail{
|
187 |
+
display: none;
|
188 |
+
}
|
189 |
+
|
190 |
+
.installer-status-success{
|
191 |
+
float: right;
|
192 |
+
color: #006600;
|
193 |
+
}
|
194 |
+
|
195 |
+
.otgs_wp_installer_table_compact .installer-status-downloading{background: url(../img/dn.gif) no-repeat center; }
|
196 |
+
.otgs_wp_installer_table_compact .installer-status-downloaded{background: url(../img/complete.png) no-repeat center;}
|
197 |
+
.otgs_wp_installer_table_compact .installer-status-activating{background: url(../img/dn.gif) no-repeat center; }
|
198 |
+
.otgs_wp_installer_table_compact .installer-status-activated{background: url(../img/complete.png) no-repeat center; }
|
199 |
+
.otgs_wp_installer_table_compact .installer-status-error{background: url(../img/icon_error.gif) no-repeat center; }
|
200 |
+
|
201 |
+
.installer_highlight{
|
202 |
+
color:#c5510b;
|
203 |
+
}
|
204 |
+
|
205 |
+
.installer_highlight_package{
|
206 |
+
background-color: #fff9c0;
|
207 |
+
}
|
208 |
+
|
209 |
+
.plugin_progress{
|
210 |
+
font-style: italic;
|
211 |
+
color: #777
|
212 |
+
}
|
213 |
+
|
214 |
+
.installer-download-progress-status{
|
215 |
+
display: none;
|
216 |
+
float:right;
|
217 |
+
color: #006600;
|
218 |
+
font-style: italic;
|
219 |
+
background: url('../img/spinner.gif') no-repeat;
|
220 |
+
padding-left:24px;
|
221 |
+
}
|
222 |
+
|
223 |
+
.installer-release-notes{
|
224 |
+
display: none;
|
225 |
+
}
|
226 |
+
|
227 |
+
.handle.extended:after{
|
228 |
+
content: "▾";
|
229 |
+
font-size: 24px;
|
230 |
+
vertical-align:bottom;
|
231 |
+
}
|
232 |
+
.installer-table-wrap a.handle:active,
|
233 |
+
.installer-table-wrap a.handle:focus{
|
234 |
+
outline:0;
|
235 |
+
border:none;
|
236 |
+
box-shadow: none;
|
237 |
+
}
|
238 |
+
|
239 |
+
.installer-release-notes .arrow_box {
|
240 |
+
position: relative;
|
241 |
+
background: #eee;
|
242 |
+
border: 1px solid #ccc;
|
243 |
+
}
|
244 |
+
.installer-release-notes .arrow_box:after, .installer-release-notes .arrow_box:before {
|
245 |
+
bottom: 100%;
|
246 |
+
left: 50%;
|
247 |
+
border: solid transparent;
|
248 |
+
content: " ";
|
249 |
+
height: 0;
|
250 |
+
width: 0;
|
251 |
+
position: absolute;
|
252 |
+
pointer-events: none;
|
253 |
+
}
|
254 |
+
|
255 |
+
.installer-release-notes .arrow_box:after {
|
256 |
+
border-color: rgba(238, 238, 238, 0);
|
257 |
+
border-bottom-color: #eee;
|
258 |
+
border-width: 16px;
|
259 |
+
margin-left: -16px;
|
260 |
+
}
|
261 |
+
.installer-release-notes .arrow_box:before {
|
262 |
+
border-color: rgba(204, 204, 204, 0);
|
263 |
+
border-bottom-color: #ccc;
|
264 |
+
border-width: 17px;
|
265 |
+
margin-left: -17px;
|
266 |
+
}
|
267 |
+
|
268 |
+
.installer-release-notes .arrow_box div{
|
269 |
+
margin-top:5px;
|
270 |
+
padding: 10px;
|
271 |
+
overflow-y: auto;
|
272 |
+
max-height: 400px;
|
273 |
+
}
|
274 |
+
|
275 |
+
.otgs-is-dismissible {
|
276 |
+
position: relative;
|
277 |
+
padding-right: 38px;
|
278 |
+
}
|
279 |
+
.otgs-is-dismissible .notice-dismiss {
|
280 |
+
text-decoration: none;
|
281 |
+
}
|
282 |
+
.otgs-is-dismissible p [class*="button-"] {
|
283 |
+
margin: -5px 5px;
|
284 |
+
}
|
285 |
+
|
286 |
+
.otgsi_downloads_form{
|
287 |
+
margin-top: 15px;
|
288 |
+
}
|
289 |
+
|
290 |
+
.spinner-with-text{
|
291 |
+
padding-left: 25px;
|
292 |
+
float:none;
|
293 |
+
width: auto;
|
294 |
+
}
|
295 |
+
.installer-channel-update-ok{
|
296 |
+
padding-left: 10px;
|
297 |
+
display: none;
|
298 |
+
color: #006600;
|
299 |
+
}
|
300 |
+
.installer-channel-update-fail{
|
301 |
+
padding-left: 10px;
|
302 |
+
display: none;
|
303 |
+
color: #962722;
|
304 |
+
}
|
305 |
+
|
306 |
+
.otgs_wp_installer_table .installer-repository-image {
|
307 |
+
padding: 8px 20px;
|
308 |
+
}
|
309 |
+
|
310 |
+
.remove_site_key_js:disabled,
|
311 |
+
.enter_site_key_js:disabled {
|
312 |
+
cursor: help;
|
313 |
+
}
|
314 |
+
|
315 |
+
.otgs-installer-registered span {
|
316 |
+
display: inline-block;
|
317 |
+
vertical-align: middle;
|
318 |
+
margin-bottom: .5em;
|
319 |
+
}
|
320 |
+
|
321 |
+
@media (min-width: 1400px) {
|
322 |
+
.otgs-installer-registered-buttons {
|
323 |
+
float: right;
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
.otgs-installer-keepuptodate small {
|
328 |
+
display: block;
|
329 |
+
margin-top: 3px;
|
330 |
+
line-height: 1.3;
|
331 |
+
}
|
332 |
+
|
333 |
+
@media (min-width: 783px) {
|
334 |
+
.otgs-installer-keepuptodate small {
|
335 |
+
-webkit-margin-start: 25px;
|
336 |
+
-moz-margin-start: 25px;
|
337 |
+
margin-start: 25px;
|
338 |
+
}
|
339 |
+
}
|
340 |
+
|
341 |
+
.otgs-installer-component-setting .spinner.otgs-components-report-setting-spinner {
|
342 |
+
float: right;
|
343 |
+
}
|
344 |
+
.otgs-installer-component-privacy-policy {
|
345 |
+
margin-top: 30px;
|
346 |
+
}
|
vendor/otgs/installer/res/css/tooltip/tooltip.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.otgs-installer-tooltip-open{text-decoration:none}.js-otgs-installer-tooltip{z-index:110000 !important}.js-otgs-installer-tooltip .wp-pointer-content{padding:10px 25px 10px 10px}.js-otgs-installer-tooltip .wp-pointer-buttons{padding:0;position:absolute;overflow:hidden;top:4px;right:5px}.js-otgs-installer-tooltip a.close{width:18px;height:18px;padding:0}.js-otgs-installer-tooltip a.close:before{left:1px;top:0}
|
vendor/otgs/installer/res/img/complete.png
ADDED
Binary file
|
vendor/otgs/installer/res/img/computer.png
ADDED
Binary file
|
vendor/otgs/installer/res/img/dn.gif
ADDED
Binary file
|
vendor/otgs/installer/res/img/dn2.gif
ADDED
Binary file
|
vendor/otgs/installer/res/img/globe.png
ADDED
Binary file
|
vendor/otgs/installer/res/img/icon_error.gif
ADDED
Binary file
|
vendor/otgs/installer/res/img/on.png
ADDED
Binary file
|
vendor/otgs/installer/res/img/spinner.gif
ADDED
Binary file
|
vendor/otgs/installer/res/js/admin.js
ADDED
@@ -0,0 +1,463 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
|
3 |
+
var otgs_wp_installer = {
|
4 |
+
|
5 |
+
plugins_update_XHR :{},
|
6 |
+
|
7 |
+
init: function(){
|
8 |
+
|
9 |
+
jQuery('.otgs_wp_installer_table').on('click', '.enter_site_key_js', otgs_wp_installer.show_site_key_form);
|
10 |
+
jQuery('.otgs_wp_installer_table').on('click', '.cancel_site_key_js', otgs_wp_installer.hide_site_key_form);
|
11 |
+
|
12 |
+
jQuery('.otgs_wp_installer_table').on('click', '.remove_site_key_js', otgs_wp_installer.remove_site_key);
|
13 |
+
jQuery('.otgs_wp_installer_table').on('click', '.update_site_key_js', otgs_wp_installer.update_site_key);
|
14 |
+
|
15 |
+
jQuery('.otgs_wp_installer_table').on('submit', '.otgsi_site_key_form', otgs_wp_installer.save_site_key);
|
16 |
+
jQuery('.otgs_wp_installer_table').on('submit', '.otgsi_downloads_form', otgs_wp_installer.download_downloads);
|
17 |
+
jQuery('.otgs_wp_installer_table').on('change', '.otgsi_downloads_form :checkbox[name="downloads[]"]', otgs_wp_installer.update_downloads_form);
|
18 |
+
|
19 |
+
jQuery('.installer-dismiss-nag').click(otgs_wp_installer.dismiss_nag);
|
20 |
+
|
21 |
+
jQuery('.otgs_wp_installer_table').on('click', '.installer_expand_button', otgs_wp_installer.toggle_subpackages);
|
22 |
+
|
23 |
+
otgs_wp_installer.scroll_to_repository();
|
24 |
+
|
25 |
+
if( typeof pagenow != 'undefined' && pagenow == 'plugins'){
|
26 |
+
|
27 |
+
jQuery(document).ajaxSuccess(function(event, xhr, settings) {
|
28 |
+
var data = otgs_wp_installer.getQueryParameters(settings.data);
|
29 |
+
if(typeof data.action != 'undefined' && data.action == 'update-plugin'){
|
30 |
+
response = xhr.responseJSON.data;
|
31 |
+
if(typeof response.error != 'undefined'){
|
32 |
+
var default_error = jQuery('#' + response.slug + '-update .update-message').html();
|
33 |
+
jQuery('#' + response.slug + '-update .update-message').html(default_error + ' »<span class="installer-red-text"> ' + response.error + '</span>');
|
34 |
+
}
|
35 |
+
}
|
36 |
+
return false;
|
37 |
+
});
|
38 |
+
|
39 |
+
}
|
40 |
+
|
41 |
+
if( typeof pagenow != 'undefined' && pagenow == 'plugin-install' ){
|
42 |
+
jQuery( '.plugin-install-tab-commercial .search-plugins' ).remove();
|
43 |
+
}
|
44 |
+
|
45 |
+
jQuery('.installer-table-wrap').on('click', '.js-release-notes', otgs_wp_installer.toggle_release_notes);
|
46 |
+
},
|
47 |
+
|
48 |
+
getQueryParameters : function(str) {
|
49 |
+
return (str || document.location.search).replace(/(^\?)/,'').split("&").map(function(n){return n = n.split("="),this[n[0]] = n[1],this}.bind({}))[0];
|
50 |
+
},
|
51 |
+
|
52 |
+
reset_errors: function(){
|
53 |
+
jQuery('.installer-error-box').html('').hide();
|
54 |
+
},
|
55 |
+
|
56 |
+
show_error: function(repo, text){
|
57 |
+
jQuery('#installer_repo_' + repo).find('.installer-error-box').html(text).show();
|
58 |
+
},
|
59 |
+
|
60 |
+
show_site_key_form: function () {
|
61 |
+
|
62 |
+
var button = jQuery(this);
|
63 |
+
|
64 |
+
if (button.attr('disabled')) {
|
65 |
+
alert(button.attr('title'));
|
66 |
+
return false;
|
67 |
+
}
|
68 |
+
|
69 |
+
otgs_wp_installer.reset_errors();
|
70 |
+
|
71 |
+
var form = button.closest('td').find('form.otgsi_site_key_form');
|
72 |
+
button.parent('p').hide();
|
73 |
+
|
74 |
+
form.show();
|
75 |
+
form.find('input[name^=site_key_]').focus().val('');
|
76 |
+
form.find('input').removeAttr('disabled');
|
77 |
+
|
78 |
+
form.closest('.otgsi_register_product_wrap').addClass('otgsi_yellow_bg');
|
79 |
+
|
80 |
+
return false;
|
81 |
+
|
82 |
+
},
|
83 |
+
|
84 |
+
hide_site_key_form: function () {
|
85 |
+
var button = jQuery(this);
|
86 |
+
var form = button.closest('td').find('form');
|
87 |
+
form.hide();
|
88 |
+
|
89 |
+
form.closest('.otgsi_register_product_wrap').removeClass('otgsi_yellow_bg').find('.enter_site_key_wrap_js').show();
|
90 |
+
otgs_wp_installer.reset_errors();
|
91 |
+
return false;
|
92 |
+
},
|
93 |
+
|
94 |
+
save_site_key: function(){
|
95 |
+
|
96 |
+
var thisf = jQuery(this);
|
97 |
+
var data = jQuery(this).serialize();
|
98 |
+
jQuery(this).find('input').attr('disabled', 'disabled');
|
99 |
+
|
100 |
+
var spinner = jQuery('<span class="spinner"></span>');
|
101 |
+
spinner.css({display: 'inline-block', float: 'right', visibility: 'visible'}).prependTo(jQuery(this));
|
102 |
+
|
103 |
+
otgs_wp_installer.reset_errors();
|
104 |
+
|
105 |
+
jQuery.ajax({url: ajaxurl, type: 'POST', dataType:'json', data: data, success:
|
106 |
+
function(ret){
|
107 |
+
if(!ret.error){
|
108 |
+
otgs_wp_installer.saved_site_key();
|
109 |
+
}else{
|
110 |
+
otgs_wp_installer.show_error(thisf.find('[name=repository_id]').val(), ret.error);
|
111 |
+
thisf.find('input').removeAttr('disabled');
|
112 |
+
}
|
113 |
+
|
114 |
+
if(typeof ret.debug != 'undefined'){
|
115 |
+
thisf.append('<textarea style="width:100%" rows="20">' + ret.debug + '</textarea>');
|
116 |
+
}
|
117 |
+
|
118 |
+
spinner.remove();
|
119 |
+
}
|
120 |
+
});
|
121 |
+
|
122 |
+
return false;
|
123 |
+
|
124 |
+
},
|
125 |
+
|
126 |
+
saved_site_key: function(){
|
127 |
+
location.reload();
|
128 |
+
},
|
129 |
+
|
130 |
+
remove_site_key: function(){
|
131 |
+
|
132 |
+
if( jQuery(this).attr('disabled') == 'disabled' ){
|
133 |
+
|
134 |
+
alert( jQuery(this).attr('title') );
|
135 |
+
return false;
|
136 |
+
|
137 |
+
} else {
|
138 |
+
|
139 |
+
if(confirm(jQuery(this).data('confirmation'))){
|
140 |
+
|
141 |
+
jQuery('<span class="spinner"></span>').css({visibility: 'visible', float: 'none'}).prependTo(jQuery(this).parent());
|
142 |
+
data = {action: 'remove_site_key', repository_id: jQuery(this).data('repository'), nonce: jQuery(this).data('nonce')}
|
143 |
+
jQuery.ajax({url: ajaxurl, type: 'POST', data: data, success: otgs_wp_installer.removed_site_key});
|
144 |
+
}
|
145 |
+
|
146 |
+
}
|
147 |
+
|
148 |
+
return false;
|
149 |
+
},
|
150 |
+
|
151 |
+
removed_site_key: function(){
|
152 |
+
location.reload();
|
153 |
+
},
|
154 |
+
|
155 |
+
update_site_key: function(){
|
156 |
+
var error_wrap = jQuery(this).closest('.otgsi_register_product_wrap').find('.installer-error-box');
|
157 |
+
error_wrap.html('');
|
158 |
+
|
159 |
+
var spinner = jQuery('<span class="spinner"></span>');
|
160 |
+
|
161 |
+
spinner.css({visibility: 'visible', float: 'none'}).prependTo(jQuery(this).parent());
|
162 |
+
data = {action: 'update_site_key', repository_id: jQuery(this).data('repository'), nonce: jQuery(this).data('nonce')}
|
163 |
+
jQuery.ajax({
|
164 |
+
url: ajaxurl,
|
165 |
+
type: 'POST',
|
166 |
+
data: data,
|
167 |
+
dataType: 'json',
|
168 |
+
complete: function( event, xhr, settings ){
|
169 |
+
var error = '';
|
170 |
+
if(xhr == 'success') {
|
171 |
+
var ret = event.responseJSON;
|
172 |
+
if(ret.error){
|
173 |
+
error = ret.error;
|
174 |
+
}else{
|
175 |
+
otgs_wp_installer.updated_site_key(ret);
|
176 |
+
}
|
177 |
+
}else{
|
178 |
+
error = 'Error processing request (' + xhr + '). Please try again!';
|
179 |
+
}
|
180 |
+
|
181 |
+
if( error ){
|
182 |
+
error_wrap.html('<p>' + error + '</p>').show();
|
183 |
+
spinner.remove();
|
184 |
+
}
|
185 |
+
|
186 |
+
}
|
187 |
+
});
|
188 |
+
|
189 |
+
return false;
|
190 |
+
|
191 |
+
},
|
192 |
+
|
193 |
+
updated_site_key: function(ret){
|
194 |
+
location.reload();
|
195 |
+
},
|
196 |
+
|
197 |
+
update_downloads_form: function(){
|
198 |
+
|
199 |
+
var checked = jQuery('.otgsi_downloads_form :checkbox:checked[name="downloads[]"]').length;
|
200 |
+
|
201 |
+
if(checked){
|
202 |
+
jQuery(this).closest('form').find(':submit, :checkbox[name=activate]').removeAttr('disabled');
|
203 |
+
}else{
|
204 |
+
jQuery(this).closest('form').find(':submit, :checkbox[name=activate]').attr('disabled', 'disabled');
|
205 |
+
}
|
206 |
+
|
207 |
+
|
208 |
+
},
|
209 |
+
|
210 |
+
download_downloads: function(){
|
211 |
+
|
212 |
+
var activate = jQuery(this).find(":checkbox:checked[name=activate]").val(),
|
213 |
+
action_button = jQuery(this).find('input[type="submit"]');
|
214 |
+
downloads_form = jQuery(this),
|
215 |
+
idx = 0,
|
216 |
+
checkboxes = [];
|
217 |
+
|
218 |
+
jQuery(this).find(':checkbox:checked[name="downloads[]"]').each(function(){
|
219 |
+
if(jQuery(this).attr('disabled')) return;
|
220 |
+
checkboxes[idx] = jQuery(this);
|
221 |
+
idx++;
|
222 |
+
jQuery(this).attr('disabled', 'disabled');
|
223 |
+
});
|
224 |
+
|
225 |
+
idx = 0;
|
226 |
+
|
227 |
+
if( typeof checkboxes[idx] != 'undefined' ){
|
228 |
+
download_and_activate( checkboxes[idx] );
|
229 |
+
action_button.attr('disabled', 'disabled');
|
230 |
+
}
|
231 |
+
|
232 |
+
function download_and_activate( elem ){
|
233 |
+
|
234 |
+
var this_tr = elem.closest('tr');
|
235 |
+
var is_update = this_tr.find('.installer-red-text').length;
|
236 |
+
if(is_update){
|
237 |
+
var installing = this_tr.find('.installer-status-updating');
|
238 |
+
var installed = this_tr.find('.installer-status-updated');
|
239 |
+
}else{
|
240 |
+
var installing = this_tr.find('.installer-status-installing');
|
241 |
+
var installed = this_tr.find('.installer-status-installed');
|
242 |
+
|
243 |
+
}
|
244 |
+
if(activate){
|
245 |
+
var activating = this_tr.find('.installer-status-activating');
|
246 |
+
var activated = this_tr.find('.installer-status-activated');
|
247 |
+
}
|
248 |
+
|
249 |
+
if( this_tr.find('.for_spinner_js .spinner').length > 0 ){
|
250 |
+
var spinner = this_tr.find('.for_spinner_js .spinner');
|
251 |
+
}else{
|
252 |
+
var spinner = this_tr.find('.installer-status-downloading');
|
253 |
+
}
|
254 |
+
|
255 |
+
otgs_wp_installer.reset_errors();
|
256 |
+
downloads_form.find('div.installer-status-success').hide();
|
257 |
+
spinner.css('visibility', 'visible');
|
258 |
+
installing.show();
|
259 |
+
|
260 |
+
var plugin_name = this_tr.find('.installer_plugin_name').html();
|
261 |
+
if(is_update){
|
262 |
+
otgs_wp_installer.show_download_progress_status(downloads_form, installer_strings.updating.replace('%s', plugin_name));
|
263 |
+
}else{
|
264 |
+
otgs_wp_installer.show_download_progress_status(downloads_form, installer_strings.installing.replace('%s', plugin_name));
|
265 |
+
}
|
266 |
+
|
267 |
+
|
268 |
+
data = {
|
269 |
+
action: 'installer_download_plugin',
|
270 |
+
data: elem.val(),
|
271 |
+
activate: activate,
|
272 |
+
reset_to_channel: downloads_form.find('input[name="reset-to-channel"]').val()
|
273 |
+
}
|
274 |
+
|
275 |
+
otgs_wp_installer.plugins_update_XHR = jQuery.ajax({
|
276 |
+
url: ajaxurl,
|
277 |
+
type: 'POST',
|
278 |
+
dataType: 'json',
|
279 |
+
data: data,
|
280 |
+
success: function(ret){
|
281 |
+
installing.hide();
|
282 |
+
|
283 |
+
if(!ret.success){
|
284 |
+
installed.addClass('installer-status-error');
|
285 |
+
installed.html(
|
286 |
+
installed.data('fail') +
|
287 |
+
'<a class="error-details" href="#" title="' + ret.message + '"></a>'
|
288 |
+
);
|
289 |
+
|
290 |
+
if(ret.message){
|
291 |
+
installed.closest('.otgs_wp_installer_table')
|
292 |
+
.find('.installer-error-box')
|
293 |
+
.html('<p>' + ret.message + '</p>')
|
294 |
+
.show();
|
295 |
+
}else{
|
296 |
+
installed.closest('.otgs_wp_installer_table')
|
297 |
+
.find('.installer-error-box')
|
298 |
+
.html('<p>' + downloads_form.find('.installer-revalidate-message').html() + '</p>')
|
299 |
+
.show();
|
300 |
+
}
|
301 |
+
|
302 |
+
downloads_form.trigger('installer-update-fail');
|
303 |
+
}
|
304 |
+
|
305 |
+
installed.show();
|
306 |
+
spinner.fadeOut();
|
307 |
+
|
308 |
+
if(ret.version){
|
309 |
+
var updated_version = '<span class="installer-green-text">' + ret.version + '</span>';
|
310 |
+
if( ret.non_stable ){
|
311 |
+
updated_version += ' (' + ret.non_stable + ')';
|
312 |
+
}
|
313 |
+
this_tr.find('.installer_version_installed').html(updated_version);
|
314 |
+
}
|
315 |
+
|
316 |
+
if(ret.success && activate){
|
317 |
+
|
318 |
+
otgs_wp_installer.show_download_progress_status(downloads_form, installer_strings.activating.replace('%s', plugin_name));
|
319 |
+
activating.show();
|
320 |
+
spinner.show();
|
321 |
+
this_tr.find('.installer-red-text').removeClass('installer-red-text').addClass('installer-green-text').html(ret.version);
|
322 |
+
|
323 |
+
jQuery.ajax({
|
324 |
+
url: ajaxurl,
|
325 |
+
type: 'POST',
|
326 |
+
dataType: 'json',
|
327 |
+
data: {action: 'installer_activate_plugin', plugin_id: ret.plugin_id, nonce: ret.nonce},
|
328 |
+
success: function(ret){
|
329 |
+
activating.hide();
|
330 |
+
if(!ret.error ){
|
331 |
+
activated.show();
|
332 |
+
}
|
333 |
+
|
334 |
+
spinner.fadeOut();
|
335 |
+
|
336 |
+
idx++;
|
337 |
+
if( typeof checkboxes[idx] != 'undefined' ){
|
338 |
+
download_and_activate( checkboxes[idx] );
|
339 |
+
}else{
|
340 |
+
otgs_wp_installer.hide_download_progress_status(downloads_form);
|
341 |
+
downloads_form.find('div.installer-status-success').show();
|
342 |
+
action_button.removeAttr('disabled');
|
343 |
+
|
344 |
+
downloads_form.trigger('installer-update-complete');
|
345 |
+
}
|
346 |
+
}
|
347 |
+
});
|
348 |
+
}else{
|
349 |
+
idx++;
|
350 |
+
if( typeof checkboxes[idx] != 'undefined' ){
|
351 |
+
download_and_activate( checkboxes[idx] );
|
352 |
+
}else{
|
353 |
+
otgs_wp_installer.hide_download_progress_status(downloads_form);
|
354 |
+
downloads_form.find('div.installer-status-success').show();
|
355 |
+
action_button.removeAttr('disabled');
|
356 |
+
|
357 |
+
downloads_form.trigger('installer-update-complete');
|
358 |
+
|
359 |
+
}
|
360 |
+
}
|
361 |
+
}
|
362 |
+
|
363 |
+
});
|
364 |
+
|
365 |
+
};
|
366 |
+
|
367 |
+
return false;
|
368 |
+
},
|
369 |
+
|
370 |
+
show_download_progress_status: function(downloads_form, text){
|
371 |
+
|
372 |
+
downloads_form.find('.installer-download-progress-status').html(text).fadeIn();
|
373 |
+
|
374 |
+
},
|
375 |
+
|
376 |
+
hide_download_progress_status: function(downloads_form){
|
377 |
+
|
378 |
+
downloads_form.find('.installer-download-progress-status').html('').fadeOut();
|
379 |
+
|
380 |
+
},
|
381 |
+
|
382 |
+
dismiss_nag: function(){
|
383 |
+
|
384 |
+
var thisa = jQuery(this);
|
385 |
+
|
386 |
+
data = {action: 'installer_dismiss_nag', repository: jQuery(this).data('repository')}
|
387 |
+
|
388 |
+
jQuery.ajax({url: ajaxurl, type: 'POST', dataType:'json', data: data, success:
|
389 |
+
function(ret){
|
390 |
+
thisa.closest('.otgs-is-dismissible').remove();
|
391 |
+
}
|
392 |
+
});
|
393 |
+
|
394 |
+
return false;
|
395 |
+
},
|
396 |
+
|
397 |
+
toggle_subpackages: function(){
|
398 |
+
var list = jQuery(this).closest('td').find('.otgs_wp_installer_subtable');
|
399 |
+
|
400 |
+
if(list.is(':visible')){
|
401 |
+
list.slideUp('fast');
|
402 |
+
}else{
|
403 |
+
list.slideDown('fast');
|
404 |
+
}
|
405 |
+
|
406 |
+
|
407 |
+
return false;
|
408 |
+
|
409 |
+
},
|
410 |
+
|
411 |
+
scroll_to_repository: function(){
|
412 |
+
|
413 |
+
var ref = window.location.hash.replace('#', '');
|
414 |
+
|
415 |
+
if(ref) {
|
416 |
+
var split = ref.split('/');
|
417 |
+
var repo = split[0];
|
418 |
+
|
419 |
+
if(typeof split[1] != 'undefined'){
|
420 |
+
var package = split[1];
|
421 |
+
var repo_element = jQuery('#repository-' + repo);
|
422 |
+
|
423 |
+
|
424 |
+
|
425 |
+
if(repo_element.length){
|
426 |
+
|
427 |
+
jQuery('html, body').animate({
|
428 |
+
scrollTop: repo_element.offset().top
|
429 |
+
}, 1000);
|
430 |
+
|
431 |
+
var package_element = jQuery('#repository-' + repo +'_' + package);
|
432 |
+
|
433 |
+
if(package_element.length && !package_element.is(':visible')){
|
434 |
+
package_element.parents('.otgs_wp_installer_subtable').slideDown();
|
435 |
+
package_element.addClass('installer_highlight_package');
|
436 |
+
}
|
437 |
+
|
438 |
+
package_element.find('.button-secondary').removeClass('button-secondary').addClass('button-primary');
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
}
|
443 |
+
|
444 |
+
},
|
445 |
+
|
446 |
+
toggle_release_notes: function(){
|
447 |
+
var handle = jQuery(this);
|
448 |
+
var tr = handle.closest('tr');
|
449 |
+
if( tr.next('.installer-release-notes').is(':visible') ){
|
450 |
+
handle.removeClass('extended');
|
451 |
+
}else{
|
452 |
+
handle.addClass('extended');
|
453 |
+
}
|
454 |
+
tr.next('.installer-release-notes').fadeToggle();
|
455 |
+
|
456 |
+
return false;
|
457 |
+
}
|
458 |
+
|
459 |
+
|
460 |
+
}
|
461 |
+
|
462 |
+
|
463 |
+
jQuery(document).ready(otgs_wp_installer.init);
|
vendor/otgs/installer/res/js/channels.js
ADDED
@@ -0,0 +1,261 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function($){
|
2 |
+
|
3 |
+
var updateErrors = [];
|
4 |
+
var channelUpdateInProgress = false;
|
5 |
+
|
6 |
+
function channelSelectorInit(){
|
7 |
+
|
8 |
+
$('.otgs_wp_installer_table')
|
9 |
+
.on('focus', '.installer-channel-selector', saveCurrentValue)
|
10 |
+
.on('change', '.installer-channel-selector', maybeShowPrompt);
|
11 |
+
|
12 |
+
$('.otgs_wp_installer_table')
|
13 |
+
.on('click', '.installer-channel-retry', retryChannelSwitch)
|
14 |
+
|
15 |
+
$('.installer-switch-confirmation')
|
16 |
+
.on('click', '.js-cancel', cancelSwitch)
|
17 |
+
.on('click', '.js-proceed', changeChannel);
|
18 |
+
|
19 |
+
$('.otgsi_downloads_form').on('installer-update-complete', maybeShowWarn);
|
20 |
+
$('.otgsi_downloads_form').on('installer-update-complete', hideUpdateProgress);
|
21 |
+
|
22 |
+
$('.otgsi_downloads_form').on('installer-update-complete', showConfirmationMessage);
|
23 |
+
|
24 |
+
$('.otgsi_downloads_form').on('installer-update-fail', logUpdateError);
|
25 |
+
|
26 |
+
}
|
27 |
+
|
28 |
+
function saveCurrentValue(){
|
29 |
+
$(this).data('previous-value', $(this).val());
|
30 |
+
}
|
31 |
+
|
32 |
+
function maybeShowPrompt(){
|
33 |
+
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
34 |
+
var prompt = selectorContainer.find('.installer-switch-confirmation:hidden');
|
35 |
+
|
36 |
+
if(prompt.length){
|
37 |
+
prompt.show();
|
38 |
+
selectorContainer.find('select').prop('disabled', true);
|
39 |
+
var warnText = selectorContainer.find('.installer-warn-text');
|
40 |
+
warnText.hide();
|
41 |
+
}else{
|
42 |
+
changeChannel(selectorContainer);
|
43 |
+
}
|
44 |
+
|
45 |
+
}
|
46 |
+
|
47 |
+
function changeChannel(selectorContainer){
|
48 |
+
|
49 |
+
if(selectorContainer.type == 'click'){
|
50 |
+
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
51 |
+
}
|
52 |
+
|
53 |
+
var select = selectorContainer.find('select');
|
54 |
+
select.prop('disabled', true);
|
55 |
+
|
56 |
+
hideConfirmationMessage(select);
|
57 |
+
showUpdateProgress(select);
|
58 |
+
|
59 |
+
selectorContainer.find('.installer-switch-confirmation').hide();
|
60 |
+
|
61 |
+
var data = {
|
62 |
+
action: 'installer_set_channel',
|
63 |
+
repository_id: select.data('repository-id'),
|
64 |
+
channel: select.val(),
|
65 |
+
nonce: select.parent().find('.nonce').val(),
|
66 |
+
noprompt: selectorContainer.find('.js-remember').length ?
|
67 |
+
selectorContainer.find('.js-remember').attr('checked') == 'checked' : 0
|
68 |
+
}
|
69 |
+
|
70 |
+
resetUpdateErrors();
|
71 |
+
otgs_wp_installer.reset_errors();
|
72 |
+
channelUpdateInProgress = true;
|
73 |
+
|
74 |
+
// save selection
|
75 |
+
jQuery.ajax({
|
76 |
+
url: ajaxurl,
|
77 |
+
type: 'POST',
|
78 |
+
dataType: 'json',
|
79 |
+
data: data,
|
80 |
+
success: function (ret) {
|
81 |
+
if( ret.status == 'OK'){
|
82 |
+
var tableSelector = '#installer_repo_' + select.data('repository-id') + ' .installer-table-wrap';
|
83 |
+
$(tableSelector).load( location.href + ' ' + tableSelector + ' table.widefat', function(){
|
84 |
+
|
85 |
+
var upgradesCount = $(tableSelector).find('tr .installer-red-text').length
|
86 |
+
|| select.val() == 1 && $(tableSelector).find('td.installer_version_installed .unstable').length;
|
87 |
+
if( upgradesCount > 0){
|
88 |
+
automaticUpgrade(tableSelector);
|
89 |
+
}else{
|
90 |
+
$('#installer_repo_' + select.data('repository-id') + ' .otgsi_downloads_form')
|
91 |
+
.trigger('installer-update-complete');
|
92 |
+
}
|
93 |
+
|
94 |
+
select.prop('disabled', false);
|
95 |
+
} );
|
96 |
+
}
|
97 |
+
|
98 |
+
}
|
99 |
+
|
100 |
+
});
|
101 |
+
|
102 |
+
}
|
103 |
+
|
104 |
+
function retryChannelSwitch(){
|
105 |
+
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
106 |
+
changeChannel(selectorContainer);
|
107 |
+
return false;
|
108 |
+
}
|
109 |
+
|
110 |
+
function cancelSwitch(){
|
111 |
+
$(this).closest('.installer-switch-confirmation').hide();
|
112 |
+
var select = $(this).closest('.installer-switch-confirmation').prev().find('.installer-channel-selector');
|
113 |
+
var previousValue = select.data('previous-value');
|
114 |
+
|
115 |
+
select.val(previousValue).prop('disabled', false);
|
116 |
+
|
117 |
+
if( select.val() > 1){
|
118 |
+
var selectorContainer = $(this).closest('.installer-channel-selector-wrap');
|
119 |
+
var warnText = selectorContainer.find('.installer-warn-text');
|
120 |
+
warnText.show();
|
121 |
+
}
|
122 |
+
|
123 |
+
}
|
124 |
+
|
125 |
+
function automaticUpgrade(downloadsTable){
|
126 |
+
$(downloadsTable + ' tr').each(
|
127 |
+
function () {
|
128 |
+
var needsUpgrade = $(this).find(
|
129 |
+
'td.installer_version_installed .installer-red-text, ' +
|
130 |
+
'td.installer_version_installed .unstable'
|
131 |
+
).length > 0;
|
132 |
+
if (needsUpgrade) {
|
133 |
+
$(this).find('td :checkbox').prop('disabled', false).prop('checked', true);
|
134 |
+
}
|
135 |
+
}
|
136 |
+
);
|
137 |
+
|
138 |
+
$(downloadsTable)
|
139 |
+
.closest('form')
|
140 |
+
.append('<input type="hidden" name="reset-to-channel" value="1">')
|
141 |
+
.submit();
|
142 |
+
|
143 |
+
}
|
144 |
+
|
145 |
+
function maybeShowWarn(){
|
146 |
+
|
147 |
+
var select = $(this)
|
148 |
+
.closest('.otgs_wp_installer_table')
|
149 |
+
.find('.installer-channel-selector')
|
150 |
+
|
151 |
+
if(select.val() > 1 && !hasUpdateErrors()){
|
152 |
+
|
153 |
+
var warnText = select
|
154 |
+
.closest('.installer-channel-selector-wrap')
|
155 |
+
.find('.installer-warn-text');
|
156 |
+
warnText.show();
|
157 |
+
|
158 |
+
}
|
159 |
+
|
160 |
+
|
161 |
+
}
|
162 |
+
|
163 |
+
function showUpdateProgress(select){
|
164 |
+
|
165 |
+
var spinner = select
|
166 |
+
.closest('.installer-channel-selector-wrap')
|
167 |
+
.find('.spinner-with-text');
|
168 |
+
|
169 |
+
spinner.addClass('is-active').show();
|
170 |
+
|
171 |
+
}
|
172 |
+
|
173 |
+
function hideUpdateProgress(){
|
174 |
+
|
175 |
+
var spinner = $(this)
|
176 |
+
.closest('.otgs_wp_installer_table')
|
177 |
+
.find('.installer-channel-selector-wrap')
|
178 |
+
.find('.spinner-with-text');
|
179 |
+
|
180 |
+
spinner.removeClass('is-active').hide();
|
181 |
+
|
182 |
+
}
|
183 |
+
|
184 |
+
function showConfirmationMessage(){
|
185 |
+
|
186 |
+
if( ! channelUpdateInProgress ) return false;
|
187 |
+
|
188 |
+
var selectWrap = $(this)
|
189 |
+
.closest('.otgs_wp_installer_table')
|
190 |
+
.find('.installer-channel-selector-wrap');
|
191 |
+
|
192 |
+
var select = $(this)
|
193 |
+
.closest('.otgs_wp_installer_table')
|
194 |
+
.find('.installer-channel-selector');
|
195 |
+
|
196 |
+
var channelName = select.find('option:selected').text();
|
197 |
+
|
198 |
+
if( hasUpdateErrors() ) {
|
199 |
+
|
200 |
+
var message = selectWrap.find('.installer-channel-update-fail');
|
201 |
+
// suppress default errors
|
202 |
+
$(this).closest('.otgs_wp_installer_table').find('.installer-error-box').hide();
|
203 |
+
|
204 |
+
var channelType = select.val() == 1 ? 'stable' : 'unstable';
|
205 |
+
message.html(message.data('text-' + channelType).replace(/%CHANNEL%/, channelName));
|
206 |
+
|
207 |
+
}else{
|
208 |
+
|
209 |
+
var message = selectWrap.find('.installer-channel-update-ok');
|
210 |
+
message.html(message.data('text').replace(/%CHANNEL%/, channelName));
|
211 |
+
}
|
212 |
+
|
213 |
+
message.show();
|
214 |
+
|
215 |
+
channelUpdateInProgress = false;
|
216 |
+
}
|
217 |
+
|
218 |
+
function hideConfirmationMessage(select){
|
219 |
+
|
220 |
+
var selectWrap = select.closest('.installer-channel-selector-wrap');
|
221 |
+
if( hasUpdateErrors() ){
|
222 |
+
var message = selectWrap.find('.installer-channel-update-fail');
|
223 |
+
}else{
|
224 |
+
var message = selectWrap.find('.installer-channel-update-ok');
|
225 |
+
}
|
226 |
+
|
227 |
+
message.hide();
|
228 |
+
}
|
229 |
+
|
230 |
+
/*
|
231 |
+
function showFailureMessage(download_form){
|
232 |
+
var message = download_form
|
233 |
+
.closest('.otgs_wp_installer_table')
|
234 |
+
.find('.installer-channel-selector-wrap')
|
235 |
+
.find('.installer-channel-update-fail');
|
236 |
+
|
237 |
+
var channelName = $(this)
|
238 |
+
.closest('.otgs_wp_installer_table')
|
239 |
+
.find('.installer-channel-selector option:selected')
|
240 |
+
.text();
|
241 |
+
|
242 |
+
message.html( message.data('text').replace(/%CHANNEL%/, channelName) );
|
243 |
+
message.show();
|
244 |
+
}
|
245 |
+
*/
|
246 |
+
|
247 |
+
function logUpdateError(){
|
248 |
+
updateErrors.push(1);
|
249 |
+
}
|
250 |
+
|
251 |
+
function resetUpdateErrors(){
|
252 |
+
updateErrors = [];
|
253 |
+
}
|
254 |
+
|
255 |
+
function hasUpdateErrors() {
|
256 |
+
return updateErrors.length;
|
257 |
+
}
|
258 |
+
|
259 |
+
$(document).ready( channelSelectorInit );
|
260 |
+
|
261 |
+
})(jQuery)
|
vendor/otgs/installer/res/js/iframeResizer.min.js
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*! iFrame Resizer (iframeSizer.min.js ) - v2.6.1 - 2014-09-03
|
2 |
+
* Desc: Force cross domain iframes to size to content.
|
3 |
+
* Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame.
|
4 |
+
* Copyright: (c) 2014 David J. Bradshaw - dave@bradshaw.net
|
5 |
+
* License: MIT
|
6 |
+
*/
|
7 |
+
|
8 |
+
!function(){"use strict";function a(a,b,c){"addEventListener"in window?a.addEventListener(b,c,!1):"attachEvent"in window&&a.attachEvent("on"+b,c)}function b(){var a,b=["moz","webkit","o","ms"];for(a=0;a<b.length&&!w;a+=1)w=window[b[a]+"RequestAnimationFrame"];w||c(" RequestAnimationFrame not supported")}function c(a){y.log&&"object"==typeof console&&console.log(s+"[Host page"+u+"]"+a)}function d(a){function b(){function a(){h(z),f(),y.resizedCallback(z)}i(a,z,"resetPage")}function d(a){var b=a.id;c(" Removing iFrame: "+b),a.parentNode.removeChild(a),y.closedCallback(b),c(" --")}function e(){var a=x.substr(t).split(":");return{iframe:document.getElementById(a[0]),id:a[0],height:a[1],width:a[2],type:a[3]}}function j(a){var b=Number(y["max"+a]),d=Number(y["min"+a]),e=a.toLowerCase(),f=Number(z[e]);if(d>b)throw new Error("Value for min"+a+" can not be greater than max"+a);c(" Checking "+e+" is in range "+d+"-"+b),d>f&&(f=d,c(" Set "+e+" to min value")),f>b&&(f=b,c(" Set "+e+" to max value")),z[e]=""+f}function k(){var b=a.origin,d=z.iframe.src.split("/").slice(0,3).join("/");if(y.checkOrigin&&(c(" Checking connection is from: "+d),""+b!="null"&&b!==d))throw new Error("Unexpected message received from: "+b+" for "+z.iframe.id+". Message was: "+a.data+". This error can be disabled by adding the checkOrigin: false option.");return!0}function l(){return s===(""+x).substr(0,t)}function m(){var a=z.type in{"true":1,"false":1};return a&&c(" Ignoring init message from meta parent page"),a}function n(){var a=x.substr(x.indexOf(":")+r+6);c(" MessageCallback passed: {iframe: "+z.iframe.id+", message: "+a+"}"),y.messageCallback({iframe:z.iframe,message:a}),c(" --")}function o(){if(null===z.iframe)throw new Error("iFrame ("+z.id+") does not exist on "+u);return!0}function q(){c(" Reposition requested from iFrame"),v={x:z.width,y:z.height},f()}function w(){switch(z.type){case"close":d(z.iframe),y.resizedCallback(z);break;case"message":n();break;case"scrollTo":q();break;case"reset":g(z);break;case"init":b(),y.initCallback(z.iframe);break;default:b()}}var x=a.data,z={};l()&&(c(" Received: "+x),z=e(),j("Height"),j("Width"),!m()&&o()&&k()&&(w(),p=!1))}function e(){null===v&&(v={x:void 0!==window.pageXOffset?window.pageXOffset:document.documentElement.scrollLeft,y:void 0!==window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop},c(" Get position: "+v.x+","+v.y))}function f(){null!==v&&(window.scrollTo(v.x,v.y),c(" Set position: "+v.x+","+v.y),v=null)}function g(a){function b(){h(a),j("reset","reset",a.iframe)}c(" Size reset requested by "+("init"===a.type?"host page":"iFrame")),e(),i(b,a,"init")}function h(a){function b(b){a.iframe.style[b]=a[b]+"px",c(" IFrame ("+a.iframe.id+") "+b+" set to "+a[b]+"px")}y.sizeHeight&&b("height"),y.sizeWidth&&b("width")}function i(a,b,d){d!==b.type&&w?(c(" Requesting animation frame"),w(a)):a()}function j(a,b,d){c("["+a+"] Sending msg to iframe ("+b+")"),d.contentWindow.postMessage(s+b,"*")}function k(){function b(){function a(a){1/0!==y[a]&&0!==y[a]&&(k.style[a]=y[a]+"px",c(" Set "+a+" = "+y[a]+"px"))}a("maxHeight"),a("minHeight"),a("maxWidth"),a("minWidth")}function d(a){return""===a&&(k.id=a="iFrameResizer"+o++,c(" Added missing iframe ID: "+a+" ("+k.src+")")),a}function e(){c(" IFrame scrolling "+(y.scrolling?"enabled":"disabled")+" for "+l),k.style.overflow=!1===y.scrolling?"hidden":"auto",k.scrolling=!1===y.scrolling?"no":"yes"}function f(){("number"==typeof y.bodyMargin||"0"===y.bodyMargin)&&(y.bodyMarginV1=y.bodyMargin,y.bodyMargin=""+y.bodyMargin+"px")}function h(){return l+":"+y.bodyMarginV1+":"+y.sizeWidth+":"+y.log+":"+y.interval+":"+y.enablePublicMethods+":"+y.autoResize+":"+y.bodyMargin+":"+y.heightCalculationMethod+":"+y.bodyBackground+":"+y.bodyPadding+":"+y.tolerance}function i(b){a(k,"load",function(){var a=p;j("iFrame.onload",b,k),!a&&y.heightCalculationMethod in x&&g({iframe:k,height:0,width:0,type:"init"})}),j("init",b,k)}var k=this,l=d(k.id);e(),b(),f(),i(h())}function l(a){if("object"!=typeof a)throw new TypeError("Options is not an object.")}function m(){function a(a){if("IFRAME"!==a.tagName.toUpperCase())throw new TypeError("Expected <IFRAME> tag, found <"+a.tagName+">.");k.call(a)}function b(a){a=a||{},l(a);for(var b in z)z.hasOwnProperty(b)&&(y[b]=a.hasOwnProperty(b)?a[b]:z[b])}return function(c,d){b(c),Array.prototype.forEach.call(document.querySelectorAll(d||"iframe"),a)}}function n(a){a.fn.iFrameResize=function(b){return b=b||{},l(b),y=a.extend({},z,b),this.filter("iframe").each(k).end()}}var o=0,p=!0,q="message",r=q.length,s="[iFrameSizer]",t=s.length,u="",v=null,w=window.requestAnimationFrame,x={max:1,scroll:1,bodyScroll:1,documentElementScroll:1},y={},z={autoResize:!0,bodyBackground:null,bodyMargin:null,bodyMarginV1:8,bodyPadding:null,checkOrigin:!0,enablePublicMethods:!1,heightCalculationMethod:"offset",interval:32,log:!1,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,scrolling:!1,sizeHeight:!0,sizeWidth:!1,tolerance:0,closedCallback:function(){},initCallback:function(){},messageCallback:function(){},resizedCallback:function(){}};b(),a(window,"message",d),"jQuery"in window&&n(jQuery),"function"==typeof define&&define.amd?define(function(){return m()}):window.iFrameResize=m()}();
|
9 |
+
//# sourceMappingURL=../src/iframeResizer.map
|
10 |
+
|
vendor/otgs/installer/res/js/installer_theme_install.js
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery( document ).ready( function( $ ) {
|
2 |
+
|
3 |
+
/** Append OTGS Theme tab */
|
4 |
+
var js_array= installer_theme_install_localize.js_array_installer;
|
5 |
+
|
6 |
+
if (!($.isEmptyObject(js_array))) {
|
7 |
+
//Unempty
|
8 |
+
for(var key in js_array) {
|
9 |
+
//Dont append if we are on commercial plugins tab page and if there are no themes
|
10 |
+
if ((!(js_array[key]['is_commercial_plugin_tab'])) && (!(installer_theme_install_localize.no_associated_themes))) {
|
11 |
+
$('div.wp-filter ul.filter-links').append('<li><a data-sort="'+key+'" href="#">'+ js_array[key]['the_hyperlink_text'] +'</a></li>');
|
12 |
+
}
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
/** Page load event tab selected identifier */
|
17 |
+
var loaded_browsing_tab=installer_theme_extended_object.getParameterByName('browse');
|
18 |
+
if (loaded_browsing_tab.length > 0) {
|
19 |
+
|
20 |
+
var frontend_tab_selected_tab = loaded_browsing_tab;
|
21 |
+
|
22 |
+
} else if (0 == loaded_browsing_tab.length){
|
23 |
+
|
24 |
+
//WordPress defaults to 'Featured' when theme install is loaded without the browse parameter
|
25 |
+
var frontend_tab_selected_tab = 'featured';
|
26 |
+
}
|
27 |
+
|
28 |
+
/** Prepare data on page load event for AJAX */
|
29 |
+
var data = {
|
30 |
+
action: 'installer_theme_frontend_selected_tab',
|
31 |
+
installer_theme_frontend_selected_tab_nonce: installer_theme_install_localize.installer_theme_frontend_selected_tab_nonce,
|
32 |
+
frontend_tab_selected :frontend_tab_selected_tab
|
33 |
+
};
|
34 |
+
|
35 |
+
//Call AJAX
|
36 |
+
installer_theme_extended_object.doAJAX(data,frontend_tab_selected_tab,js_array);
|
37 |
+
|
38 |
+
/** When user clicks on any tab */
|
39 |
+
$(document).on('click','.filter-links li > a',function () {
|
40 |
+
|
41 |
+
//Get data_sort
|
42 |
+
var data_sort =$(this).attr('data-sort');
|
43 |
+
|
44 |
+
if (data_sort) {
|
45 |
+
//data_sort is set, prepare data
|
46 |
+
var data = {
|
47 |
+
action: 'installer_theme_frontend_selected_tab',
|
48 |
+
installer_theme_frontend_selected_tab_nonce: installer_theme_install_localize.installer_theme_frontend_selected_tab_nonce,
|
49 |
+
frontend_tab_selected : data_sort
|
50 |
+
};
|
51 |
+
|
52 |
+
//Call AJAX
|
53 |
+
installer_theme_extended_object.doAJAX(data,data_sort,js_array);
|
54 |
+
|
55 |
+
}
|
56 |
+
});
|
57 |
+
|
58 |
+
var fullhash = window.location.hash;
|
59 |
+
if (fullhash.length > 0) {
|
60 |
+
var product_selector=fullhash+' '+'.enter_site_key_js';
|
61 |
+
if ($(product_selector).length ) {
|
62 |
+
$(product_selector).click();
|
63 |
+
}
|
64 |
+
}
|
65 |
+
});
|
66 |
+
|
67 |
+
//Installer theme extended JS object for methods
|
68 |
+
var installer_theme_extended_object = {
|
69 |
+
|
70 |
+
getParameterByName: function(name) {
|
71 |
+
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
|
72 |
+
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
|
73 |
+
results = regex.exec(location.search);
|
74 |
+
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
75 |
+
},
|
76 |
+
|
77 |
+
doAJAX: function(data,data_sort,js_array) {
|
78 |
+
|
79 |
+
//We only want to post to AJAX if its an OTGS tab
|
80 |
+
jQuery.post(installer_theme_install_localize.ajaxurl, data, function(response) {
|
81 |
+
//AJAX response
|
82 |
+
var myObject = jQuery.parseJSON(response);
|
83 |
+
if (typeof myObject != "undefined") {
|
84 |
+
if(myObject.hasOwnProperty("output")){
|
85 |
+
var tab_selected= myObject.output;
|
86 |
+
if (data_sort in js_array) {
|
87 |
+
if (!(installer_theme_install_localize.js_array_installer[tab_selected]['registration_status'])) {
|
88 |
+
//Not registered, no theme response
|
89 |
+
var unregistered_message= myObject.unregistered_messages;
|
90 |
+
jQuery('.no-themes').html(unregistered_message);
|
91 |
+
}
|
92 |
+
}
|
93 |
+
}
|
94 |
+
}
|
95 |
+
});
|
96 |
+
}
|
97 |
+
};
|
vendor/otgs/installer/res/js/save-components-setting.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function () {
|
2 |
+
var container = jQuery('.otgs-installer-component-setting');
|
3 |
+
container.find('.js-otgs-components-report-user-choice').click(function () {
|
4 |
+
var spinner = container.find('.spinner');
|
5 |
+
|
6 |
+
spinner.addClass('is-active');
|
7 |
+
|
8 |
+
var element = jQuery(this);
|
9 |
+
|
10 |
+
var agree = element.is(':checked') ? 1 : 0;
|
11 |
+
if (element.is(':radio')) {
|
12 |
+
agree = element.val();
|
13 |
+
}
|
14 |
+
|
15 |
+
jQuery.ajax({
|
16 |
+
url: ajaxurl,
|
17 |
+
type: 'POST',
|
18 |
+
data: {
|
19 |
+
action: element.data('nonce-action'),
|
20 |
+
nonce: element.data('nonce-value'),
|
21 |
+
agree: agree,
|
22 |
+
repo: element.data('repo'),
|
23 |
+
},
|
24 |
+
success: function () {
|
25 |
+
spinner.removeClass('is-active');
|
26 |
+
},
|
27 |
+
});
|
28 |
+
});
|
29 |
+
});
|
vendor/otgs/installer/res/js/tooltip/tooltip.js
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function () {
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
var OTGS_Installer_Tooltip = function( element ) {
|
5 |
+
this.trigger = element;
|
6 |
+
this.content = this.trigger.html(this.trigger.html()).text();
|
7 |
+
this.edge = 'bottom';
|
8 |
+
this.align = 'left';
|
9 |
+
this.margin_left = '-54px';
|
10 |
+
|
11 |
+
if ( !this.content ) {
|
12 |
+
this.content = this.decodeEntities(this.trigger.data('content'));
|
13 |
+
}
|
14 |
+
|
15 |
+
if ( this.trigger.data( 'edge' ) ) {
|
16 |
+
this.edge = this.trigger.data( 'edge' );
|
17 |
+
}
|
18 |
+
|
19 |
+
if ( this.trigger.data( 'align' ) ) {
|
20 |
+
this.align = this.trigger.data( 'align' );
|
21 |
+
}
|
22 |
+
|
23 |
+
if ( this.trigger.data( 'margin_left' ) ) {
|
24 |
+
this.margin_left = this.trigger.data( 'margin_left' );
|
25 |
+
}
|
26 |
+
|
27 |
+
this.trigger.empty();
|
28 |
+
this.trigger.click( jQuery.proxy( this.onTriggerClick,this ) );
|
29 |
+
};
|
30 |
+
|
31 |
+
OTGS_Installer_Tooltip.prototype = {
|
32 |
+
open: function () {
|
33 |
+
if (this.trigger.length && this.content) {
|
34 |
+
this.trigger.addClass('js-otgs-installer-active-tooltip');
|
35 |
+
this.trigger.pointer({
|
36 |
+
pointerClass: 'js-otgs-installer-tooltip',
|
37 |
+
content: this.content,
|
38 |
+
position: {
|
39 |
+
edge: this.edge,
|
40 |
+
align: this.align
|
41 |
+
},
|
42 |
+
show: jQuery.proxy( this.onShow, this ),
|
43 |
+
close: this.onClose,
|
44 |
+
buttons: this.buttons
|
45 |
+
|
46 |
+
}).pointer('open');
|
47 |
+
}
|
48 |
+
},
|
49 |
+
onShow: function(event, t) {
|
50 |
+
t.pointer.css('marginLeft', this.margin_left);
|
51 |
+
},
|
52 |
+
onClose: function (event, t) {
|
53 |
+
t.pointer.css('marginLeft', '0');
|
54 |
+
},
|
55 |
+
onTriggerClick: function(e) {
|
56 |
+
e.preventDefault();
|
57 |
+
this.open();
|
58 |
+
},
|
59 |
+
buttons: function (event, t) {
|
60 |
+
var button = jQuery('<a class="close" href="#"> </a>');
|
61 |
+
|
62 |
+
return button.bind('click.pointer', function (e) {
|
63 |
+
e.preventDefault();
|
64 |
+
t.element.pointer('close');
|
65 |
+
});
|
66 |
+
},
|
67 |
+
decodeEntities: function(encodedString) {
|
68 |
+
var textArea = document.createElement('textarea');
|
69 |
+
textArea.innerHTML = encodedString;
|
70 |
+
return textArea.value;
|
71 |
+
}
|
72 |
+
};
|
73 |
+
|
74 |
+
jQuery(document).ready(function () {
|
75 |
+
var tooltips = jQuery('.js-otgs-installer-tooltip-open'),
|
76 |
+
tooltip = {};
|
77 |
+
|
78 |
+
tooltips.each(function (index, element) {
|
79 |
+
tooltip = new OTGS_Installer_Tooltip(jQuery(element));
|
80 |
+
});
|
81 |
+
});
|
82 |
+
}());
|
vendor/otgs/installer/src/js/ui/Switcher.js
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
class Switcher {
|
2 |
+
constructor (element) {
|
3 |
+
const checkBoxContainer = element.parentElement;
|
4 |
+
const heading = checkBoxContainer.getElementsByClassName('heading');
|
5 |
+
const label = checkBoxContainer.getElementsByTagName('label').item(0);
|
6 |
+
|
7 |
+
if (label) {
|
8 |
+
label.classList.add('otgs-on-off-switch');
|
9 |
+
}
|
10 |
+
|
11 |
+
const toggleGroup = document.createElement('label');
|
12 |
+
toggleGroup.classList.add('otgs-toggle-group');
|
13 |
+
toggleGroup.appendChild(element);
|
14 |
+
toggleGroup.appendChild(label);
|
15 |
+
|
16 |
+
const switcherContainer = document.createElement('span');
|
17 |
+
switcherContainer.classList.add('otgs-switch__onoff');
|
18 |
+
const switcherBorder = document.createElement('span');
|
19 |
+
switcherBorder.classList.add('otgs-switch__onoff-label');
|
20 |
+
const switcherInner = document.createElement('span');
|
21 |
+
switcherInner.classList.add('otgs-switch__onoff-inner');
|
22 |
+
const switcherSwitch = document.createElement('span');
|
23 |
+
switcherSwitch.classList.add('otgs-switch__onoff-switch');
|
24 |
+
|
25 |
+
switcherBorder.appendChild(switcherInner);
|
26 |
+
switcherBorder.appendChild(switcherSwitch);
|
27 |
+
|
28 |
+
switcherContainer.appendChild(switcherBorder);
|
29 |
+
|
30 |
+
toggleGroup.appendChild(switcherContainer);
|
31 |
+
|
32 |
+
checkBoxContainer.appendChild(toggleGroup);
|
33 |
+
|
34 |
+
if (heading.length) {
|
35 |
+
heading.item(heading.length - 1).parentNode
|
36 |
+
.insertBefore(toggleGroup, heading.item(heading.length - 1).nextSibling);
|
37 |
+
} else {
|
38 |
+
checkBoxContainer.insertBefore(toggleGroup, checkBoxContainer.firstChild);
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
}
|
43 |
+
|
44 |
+
export default Switcher;
|
vendor/otgs/installer/src/js/ui/UI.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import '../../scss/ui/styles.scss';
|
2 |
+
import Switcher from './Switcher';
|
3 |
+
|
4 |
+
class UI {
|
5 |
+
constructor (element) {
|
6 |
+
const checkBoxes = element.querySelectorAll('input[type="checkbox"]');
|
7 |
+
|
8 |
+
if(checkBoxes) {
|
9 |
+
Array.from(checkBoxes).map(checkBox => new Switcher(checkBox));
|
10 |
+
}
|
11 |
+
}
|
12 |
+
}
|
13 |
+
|
14 |
+
export default UI;
|
vendor/otgs/installer/src/js/ui/app.js
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import UI from './UI';
|
2 |
+
|
3 |
+
window.addEventListener('DOMContentLoaded', () => {
|
4 |
+
|
5 |
+
const otgsUIElements = document.querySelectorAll('.otgs-ui');
|
6 |
+
|
7 |
+
if (otgsUIElements) {
|
8 |
+
Array.from(otgsUIElements).map(otgsUI => new UI(otgsUI));
|
9 |
+
}
|
10 |
+
});
|
vendor/otgs/installer/src/package.json
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "wpml-core",
|
3 |
+
"license": "MIT",
|
4 |
+
"scripts": {
|
5 |
+
"build:dev": "webpack --mode development",
|
6 |
+
"build:prod": "webpack -p --env production --mode production",
|
7 |
+
"test": "jest"
|
8 |
+
},
|
9 |
+
"jest": {
|
10 |
+
"automock": false,
|
11 |
+
"setupFiles": [
|
12 |
+
"raf/polyfill",
|
13 |
+
"<rootDir>/tests/setupTests.js"
|
14 |
+
]
|
15 |
+
},
|
16 |
+
"dependencies": {
|
17 |
+
"classnames": "~2.2.0",
|
18 |
+
"cross-fetch": "~1.1.0",
|
19 |
+
"moment": "~2.20.0",
|
20 |
+
"numeral": "~2.0.0",
|
21 |
+
"query-string": "~5.1.0",
|
22 |
+
"sprintf-js": "~1.1.0",
|
23 |
+
"tippy.js": "~2.2.0"
|
24 |
+
},
|
25 |
+
"devDependencies": {
|
26 |
+
"autoprefixer": "~8.3.0",
|
27 |
+
"babel-cli": "~6.26.0",
|
28 |
+
"babel-core": "~6.26.0",
|
29 |
+
"babel-jest": "~22.4.0",
|
30 |
+
"babel-loader": "~7.1.0",
|
31 |
+
"babel-plugin-transform-class-properties": "~6.24.0",
|
32 |
+
"babel-plugin-transform-object-rest-spread": "~6.26.0",
|
33 |
+
"babel-preset-env": "~1.6.0",
|
34 |
+
"css-loader": "~0.28.0",
|
35 |
+
"enzyme": "~3.3.0",
|
36 |
+
"enzyme-to-json": "~3.3.0",
|
37 |
+
"eslint": "~4.19.0",
|
38 |
+
"eslint-config-standard": "~11.0.0",
|
39 |
+
"eslint-plugin-import": "~2.11.0",
|
40 |
+
"eslint-plugin-node": "~6.0.0",
|
41 |
+
"eslint-plugin-promise": "~3.7.0",
|
42 |
+
"eslint-plugin-standard": "~3.0.0",
|
43 |
+
"extract-text-webpack-plugin": "~4.0.0-beta.0",
|
44 |
+
"jest": "~22.4.0",
|
45 |
+
"jest-fetch-mock": "~1.5.0",
|
46 |
+
"node-sass": "~4.8.0",
|
47 |
+
"postcss": "~6.0.0",
|
48 |
+
"postcss-loader": "~2.1.0",
|
49 |
+
"raf": "~3.4.0",
|
50 |
+
"sass-loader": "~7.0.0",
|
51 |
+
"style-loader": "~0.20.0",
|
52 |
+
"webpack": "~4.5.0",
|
53 |
+
"webpack-cli": "~2.0.0"
|
54 |
+
}
|
55 |
+
}
|
vendor/otgs/installer/src/postcss.config.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
module.exports = {
|
2 |
+
plugins: [
|
3 |
+
require('autoprefixer'),
|
4 |
+
]
|
5 |
+
}
|
vendor/otgs/installer/src/scss/ui/styles.scss
ADDED
@@ -0,0 +1,141 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// COLORS
|
2 |
+
$white: #fff;
|
3 |
+
$darkgray: #3D3D3D;
|
4 |
+
$base-gray: #45555F;
|
5 |
+
$gray-saturate-85: saturate($base-gray, 85%);
|
6 |
+
$otgs-blue: #21759b;
|
7 |
+
|
8 |
+
// TRANSITION SPEEDS
|
9 |
+
$transition-fast: 0.15s;
|
10 |
+
|
11 |
+
// ON OFF SWITCH
|
12 |
+
$switch-height: 18px;
|
13 |
+
$switch-width: 55px;
|
14 |
+
$switch-group-height: $switch-height + 4;
|
15 |
+
$toggle-group-height: $switch-height + 5;
|
16 |
+
|
17 |
+
.otgs-installer-component-setting {
|
18 |
+
margin: 1em 0;
|
19 |
+
h4 {
|
20 |
+
margin: 0;
|
21 |
+
}
|
22 |
+
.otgs-settings-container & {
|
23 |
+
.spinner {
|
24 |
+
position: absolute;
|
25 |
+
margin: 5px 0 0;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
.otgs-on-off-switch + .otgs-switch__onoff,
|
31 |
+
.otgs-switch__onoff + .otgs-on-off-switch {
|
32 |
+
margin-inline-start: 7px;
|
33 |
+
}
|
34 |
+
|
35 |
+
/* ON/OFF Switch */
|
36 |
+
.otgs-switch__onoff {
|
37 |
+
position: relative;
|
38 |
+
width: $switch-width;
|
39 |
+
display: inline-block;
|
40 |
+
vertical-align: middle;
|
41 |
+
flex: 0 0 $switch-width;
|
42 |
+
|
43 |
+
&.otgs-pull-right {
|
44 |
+
right: 0;
|
45 |
+
}
|
46 |
+
|
47 |
+
.otgs-switch__onoff-label {
|
48 |
+
display: block;
|
49 |
+
overflow: hidden;
|
50 |
+
cursor: pointer;
|
51 |
+
border: 1px solid darken($white, 10%);
|
52 |
+
border-radius: $switch-height - 2;
|
53 |
+
margin: 0;
|
54 |
+
}
|
55 |
+
|
56 |
+
.otgs-switch__onoff-inner {
|
57 |
+
width: 200%;
|
58 |
+
margin-left: -100%;
|
59 |
+
transition: margin $transition-fast ease-in-out;
|
60 |
+
|
61 |
+
&:before,
|
62 |
+
&:after {
|
63 |
+
float: left;
|
64 |
+
width: 50%;
|
65 |
+
height: $switch-group-height;
|
66 |
+
padding: 0;
|
67 |
+
line-height: $switch-group-height;
|
68 |
+
font-size: 11px;
|
69 |
+
box-sizing: border-box;
|
70 |
+
}
|
71 |
+
|
72 |
+
&:before {
|
73 |
+
content: "ON";
|
74 |
+
padding-left: 10px;
|
75 |
+
background-color: $otgs-blue;
|
76 |
+
color: $white;
|
77 |
+
}
|
78 |
+
|
79 |
+
&:after {
|
80 |
+
content: "OFF";
|
81 |
+
padding-right: 8px;
|
82 |
+
background-color: darken($white, 2%);
|
83 |
+
color: $darkgray;
|
84 |
+
text-align: right;
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
.otgs-switch__onoff-switch {
|
89 |
+
width: $switch-height;
|
90 |
+
height: $switch-height;
|
91 |
+
margin: 0;
|
92 |
+
background: $white;
|
93 |
+
box-shadow: 0 0 3px rgba(0, 0, 0, .3);
|
94 |
+
border-radius: 50%;
|
95 |
+
position: absolute;
|
96 |
+
top: 3px;
|
97 |
+
bottom: 0;
|
98 |
+
right: $switch-height + 16;
|
99 |
+
transition: right $transition-fast ease-in-out;
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
.otgs-toggle-group {
|
104 |
+
position: relative;
|
105 |
+
display: flex;
|
106 |
+
align-items: center;
|
107 |
+
|
108 |
+
.otgs-switch__onoff-inner {
|
109 |
+
display: block;
|
110 |
+
}
|
111 |
+
|
112 |
+
input[type=checkbox] {
|
113 |
+
display: none;
|
114 |
+
|
115 |
+
&:checked ~ .otgs-switch__onoff .otgs-switch__onoff-label .otgs-switch__onoff-inner {
|
116 |
+
margin-left: 0;
|
117 |
+
}
|
118 |
+
|
119 |
+
&:checked ~ .otgs-switch__onoff .otgs-switch__onoff-label .otgs-switch__onoff-switch {
|
120 |
+
right: 3px;
|
121 |
+
box-shadow: 0 0 3px rgba(0, 0, 0, .5);
|
122 |
+
}
|
123 |
+
|
124 |
+
&:focus ~ .otgs-switch__onoff {
|
125 |
+
outline: thin dotted #333;
|
126 |
+
}
|
127 |
+
}
|
128 |
+
|
129 |
+
.otgs-on-off-switch {
|
130 |
+
cursor: pointer;
|
131 |
+
display: inline-block;
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
.otgs-external-link:after {
|
136 |
+
font-family: dashicons !important;
|
137 |
+
content: "\00a0\f504";
|
138 |
+
vertical-align: baseline;
|
139 |
+
line-height: 1;
|
140 |
+
display: inline-block;
|
141 |
+
}
|
vendor/otgs/installer/src/webpack.config.js
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const path = require('path');
|
2 |
+
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
3 |
+
|
4 |
+
const webPackModule = {
|
5 |
+
rules: [
|
6 |
+
{
|
7 |
+
loader: 'babel-loader',
|
8 |
+
test: /\.js$/,
|
9 |
+
exclude: /node_modules/,
|
10 |
+
query: {
|
11 |
+
presets: ['es2015'],
|
12 |
+
},
|
13 |
+
}, {
|
14 |
+
test: /\.s?css$/,
|
15 |
+
use: ExtractTextPlugin.extract({
|
16 |
+
fallback: 'style-loader',
|
17 |
+
use: [
|
18 |
+
{
|
19 |
+
loader: 'css-loader',
|
20 |
+
options: {
|
21 |
+
sourceMap: true,
|
22 |
+
},
|
23 |
+
}, {
|
24 |
+
loader: 'sass-loader',
|
25 |
+
options: {
|
26 |
+
sourceMap: true,
|
27 |
+
},
|
28 |
+
}, {
|
29 |
+
loader: 'postcss-loader',
|
30 |
+
},
|
31 |
+
],
|
32 |
+
}),
|
33 |
+
},
|
34 |
+
],
|
35 |
+
};
|
36 |
+
|
37 |
+
const ui = (env) => {
|
38 |
+
const isProduction = env === 'production';
|
39 |
+
|
40 |
+
return {
|
41 |
+
entry: ['whatwg-fetch', './js/ui/app.js'],
|
42 |
+
output: {
|
43 |
+
path: path.join(__dirname, '..', 'dist'),
|
44 |
+
filename: path.join('js', 'ui', 'app.js'),
|
45 |
+
},
|
46 |
+
module: webPackModule,
|
47 |
+
plugins: [
|
48 |
+
new ExtractTextPlugin(path.join('css', 'ui', 'styles.css')),
|
49 |
+
],
|
50 |
+
devtool: isProduction ? 'source-map' : 'inline-source-map',
|
51 |
+
};
|
52 |
+
};
|
53 |
+
|
54 |
+
module.exports = [
|
55 |
+
ui,
|
56 |
+
];
|
vendor/otgs/installer/templates/channel-selector.php
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="installer-channel-selector-wrap">
|
2 |
+
<label>
|
3 |
+
<?php esc_html_e('Updates channel:', 'installer'); ?>
|
4 |
+
<select class="installer-channel-selector" data-repository-id="<?php echo $repository_id ?>"<?php if( !$can_switch ): ?> disabled<?php endif ?>>
|
5 |
+
<?php foreach( $channels as $channel_id => $channel_name ): ?>
|
6 |
+
<option value="<?php echo $channel_id ?>" <?php
|
7 |
+
if( $channel_id == $current_channel ): ?>selected="selected"<?php
|
8 |
+
endif; ?>><?php echo $channel_name ?></option>
|
9 |
+
<?php endforeach ?>
|
10 |
+
</select>
|
11 |
+
<span class="installer-status-note" <?php if( $can_switch ): ?>style="display:none" <?php endif; ?>>
|
12 |
+
<?php _e("To select different update channels (beta, development) you must update your existing products to their most recent stable versions.", 'installer') ?>
|
13 |
+
</span>
|
14 |
+
<span class="spinner spinner-with-text">
|
15 |
+
<?php _e( "Updating the plugins on your site. Please don't close this page or navigate away.", 'installer' ); ?>
|
16 |
+
</span>
|
17 |
+
<span class="installer-channel-update-ok" data-text="<?php
|
18 |
+
esc_attr_e( sprintf("Update completed. You are now using the %s channel of %s.",
|
19 |
+
'%CHANNEL%', WP_Installer()->get_generic_product_name( $repository_id ) ) ) ?>">
|
20 |
+
</span>
|
21 |
+
<span class="installer-channel-update-fail" data-text-unstable="<?php
|
22 |
+
$support_url = $repository_id ==='toolset' ? 'https://wp-types.com/forums/forum/support-2/' : 'https://wpml.org/forums/forum/english-support/';
|
23 |
+
$download_url = $repository_id ==='toolset' ? 'https://wp-types.com/account/downloads/' : 'https://wpml.org/account/downloads/';
|
24 |
+
echo esc_attr( sprintf(
|
25 |
+
__( "Something went wrong and we could not install all updates from the %s channel. Click here to %stry again%s. If the errors persist, please switch back to the Production channel and contact the %s%s support%s.", 'installer' ),
|
26 |
+
'%CHANNEL%',
|
27 |
+
'<a href="#" class="installer-channel-retry"><strong>',
|
28 |
+
'</strong></a>',
|
29 |
+
'<a href="' . $support_url . '">', WP_Installer()->get_generic_product_name( $repository_id ), '</a>'
|
30 |
+
) );
|
31 |
+
?>" data-text-stable="<?php
|
32 |
+
echo esc_attr( sprintf(
|
33 |
+
esc_attr__( "There was a problem switching to the %s channel. You can %sretry%s. If the problem continues, please %sdownload %s%s and install again manually", 'installer' ),
|
34 |
+
'%CHANNEL%',
|
35 |
+
'<a href="#" class="installer-channel-retry"><strong>',
|
36 |
+
'</strong></a>',
|
37 |
+
'<a href="' . $download_url . '">', WP_Installer()->get_generic_product_name( $repository_id ), '</a>'
|
38 |
+
) );
|
39 |
+
?>">
|
40 |
+
</span>
|
41 |
+
<input type="hidden" class="nonce" value="<?php echo $nonce ?>" />
|
42 |
+
</label>
|
43 |
+
|
44 |
+
<?php if( !$no_prompt ): ?>
|
45 |
+
<div class="installer-warn-box installer-switch-confirmation" style="margin-top: 10px; display: none">
|
46 |
+
<p class="alignright">
|
47 |
+
<button class="button-secondary js-cancel"><?php _e("Cancel", 'installer') ?></button>
|
48 |
+
<button class="button-primary js-proceed"><?php _e("Switch", 'installer') ?></button>
|
49 |
+
</p>
|
50 |
+
<p>
|
51 |
+
<?php _e("Plugins will be updated to their most advanced version in the channel that you selected.", 'installer') ?>
|
52 |
+
</p>
|
53 |
+
<label>
|
54 |
+
<input type="checkbox" value="1" class="js-remember"/>
|
55 |
+
<?php _e("Remember my preference.", 'installer') ?><br />
|
56 |
+
</label>
|
57 |
+
</div>
|
58 |
+
<?php endif; ?>
|
59 |
+
|
60 |
+
<div class="installer-warn-text" <?php if( WP_Installer_Channels()->get_channel( $repository_id ) <= 1 ): ?>style="display:none" <?php endif; ?>>
|
61 |
+
<?php printf(
|
62 |
+
__("You are using a potentially less stable channel for %s. If you didn't enable this on purpose, you should switch to the 'Production' channel.", 'installer'),
|
63 |
+
WP_Installer()->get_generic_product_name( $repository_id )
|
64 |
+
);
|
65 |
+
?>
|
66 |
+
</div>
|
67 |
+
|
68 |
+
</div>
|
vendor/otgs/installer/templates/components-setting/commercial-tab.twig
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<p class="otgs-installer-keepuptodate">
|
2 |
+
<input checked name="repo_allowed_to_send_data" value="{{ repo_id }}" type="checkbox"> {{ strings.message }}
|
3 |
+
<a class="js-otgs-installer-tooltip-open otgs-ico-help">
|
4 |
+
{{ strings.tooltip }}
|
5 |
+
</a>
|
6 |
+
<small>{{ strings.stop_sending|raw }}</small>
|
7 |
+
</p>
|
vendor/otgs/installer/templates/components-setting/plugins-page.twig
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<tr class="{{ css.tr_classes }}">
|
2 |
+
<td colspan="{{ col_count }}" class="plugin-update colspanchange">
|
3 |
+
<div class="{{ css.notice_classes }}">
|
4 |
+
<p class="installer-q-icon">
|
5 |
+
{{ strings.valid_subscription|raw }}
|
6 |
+
</p>
|
7 |
+
</div>
|
8 |
+
</td>
|
9 |
+
</tr>
|
vendor/otgs/installer/templates/components-setting/share-local-data-setting-radio.twig
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="otgs-installer-component-setting otgs-ui" data-has-setting="{{ has_setting }}">
|
2 |
+
<span class="spinner otgs-components-report-setting-spinner"></span>
|
3 |
+
<ul>
|
4 |
+
<li>
|
5 |
+
<label for="{{ nonce.action }}{{ nonce.value }}-yes">
|
6 |
+
<input
|
7 |
+
type="radio"
|
8 |
+
{% if has_setting and is_repo_allowed %}
|
9 |
+
checked="checked"
|
10 |
+
{% endif %}
|
11 |
+
id="{{ nonce.action }}{{ nonce.value }}-yes"
|
12 |
+
class="js-otgs-components-report-user-choice"
|
13 |
+
value="1"
|
14 |
+
name="otgs-components-report-user-choice"
|
15 |
+
data-nonce-action="{{ nonce.action }}"
|
16 |
+
data-nonce-value="{{ nonce.value }}"
|
17 |
+
data-repo="{{ repo }}"
|
18 |
+
/>
|
19 |
+
|
20 |
+
{% if custom_radio_label_yes is defined and custom_radio_label_yes is not null %}
|
21 |
+
{{ custom_radio_label_yes|raw }}
|
22 |
+
{% else %}
|
23 |
+
{{ strings.radio_report_yes }}
|
24 |
+
{% endif %}
|
25 |
+
</label>
|
26 |
+
</li>
|
27 |
+
<li>
|
28 |
+
<label for="{{ nonce.action }}{{ nonce.value }}-no">
|
29 |
+
<input
|
30 |
+
type="radio"
|
31 |
+
{% if has_setting and not is_repo_allowed %}
|
32 |
+
checked="checked"
|
33 |
+
{% endif %}
|
34 |
+
id="{{ nonce.action }}{{ nonce.value }}-no"
|
35 |
+
class="js-otgs-components-report-user-choice"
|
36 |
+
value="0"
|
37 |
+
name="otgs-components-report-user-choice"
|
38 |
+
data-nonce-action="{{ nonce.action }}"
|
39 |
+
data-nonce-value="{{ nonce.value }}"
|
40 |
+
data-repo="{{ repo }}"
|
41 |
+
/>
|
42 |
+
|
43 |
+
{% if custom_radio_label_no is defined and custom_radio_label_no is not null %}
|
44 |
+
{{ custom_radio_label_no|raw }}
|
45 |
+
{% else %}
|
46 |
+
{{ strings.radio_report_no }}
|
47 |
+
{% endif %}
|
48 |
+
</label>
|
49 |
+
</li>
|
50 |
+
</ul>
|
51 |
+
|
52 |
+
<p class="otgs-installer-component-privacy-policy">
|
53 |
+
<a
|
54 |
+
href="{{ privacy_policy_url }}"
|
55 |
+
target="_blank"
|
56 |
+
rel="noopener"
|
57 |
+
class="otgs-external-link"
|
58 |
+
>
|
59 |
+
{%- if custom_privacy_policy_text is defined and custom_privacy_policy_text is not null -%}
|
60 |
+
{{- custom_privacy_policy_text|raw -}}
|
61 |
+
{%- else -%}
|
62 |
+
{{- privacy_policy_text -}}
|
63 |
+
{%- endif -%}
|
64 |
+
</a>
|
65 |
+
</p>
|
66 |
+
</div>
|
vendor/otgs/installer/templates/components-setting/share-local-data-setting.twig
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="otgs-installer-component-setting otgs-ui" data-has-setting="{{ has_setting }}">
|
2 |
+
{% if custom_raw_heading is defined and custom_raw_heading is not null %}
|
3 |
+
{{ custom_raw_heading|raw }}
|
4 |
+
{% else %}
|
5 |
+
<h4 class="heading">{{ strings.heading }}
|
6 |
+
<a
|
7 |
+
href="{{ company_url }}"
|
8 |
+
target="_blank"
|
9 |
+
rel="noopener"
|
10 |
+
class="otgs-external-link"
|
11 |
+
>
|
12 |
+
{{- company_site -}}
|
13 |
+
</a>
|
14 |
+
</h4>
|
15 |
+
{% endif %}
|
16 |
+
<p>
|
17 |
+
<a
|
18 |
+
href="{{ privacy_policy_url }}"
|
19 |
+
target="_blank"
|
20 |
+
rel="noopener"
|
21 |
+
class="otgs-external-link"
|
22 |
+
>
|
23 |
+
{%- if custom_privacy_policy_text is defined and custom_privacy_policy_text is not null -%}
|
24 |
+
{{- custom_privacy_policy_text|raw -}}
|
25 |
+
{%- else -%}
|
26 |
+
{{- privacy_policy_text -}}
|
27 |
+
{%- endif -%}
|
28 |
+
</a>
|
29 |
+
</p>
|
30 |
+
<input
|
31 |
+
type="checkbox"
|
32 |
+
{% if is_repo_allowed %}
|
33 |
+
checked="checked"
|
34 |
+
{% endif %}
|
35 |
+
id="{{ nonce.action }}{{ nonce.value }}"
|
36 |
+
class="js-otgs-components-report-user-choice"
|
37 |
+
value="1"
|
38 |
+
data-nonce-action="{{ nonce.action }}"
|
39 |
+
data-nonce-value="{{ nonce.value }}"
|
40 |
+
data-repo="{{ repo }}"
|
41 |
+
/>
|
42 |
+
<label for="{{ nonce.action }}{{ nonce.value }}">
|
43 |
+
{% if custom_raw_label is defined and custom_raw_label is not null %}
|
44 |
+
{{ custom_raw_label|raw }}
|
45 |
+
{% else %}
|
46 |
+
{{ strings.report_to }} {{ company_site }} {{ strings.which_theme_and_plugins }}
|
47 |
+
{% endif %}
|
48 |
+
</label>
|
49 |
+
<div class="spinner otgs-components-report-setting-spinner"></div>
|
50 |
+
</div>
|
vendor/otgs/installer/templates/downloads-list-compact.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
<form method="post" class="otgsi_downloads_form">
|
3 |
+
|
4 |
+
<table class="installer-plugins-list-compact">
|
5 |
+
<thead>
|
6 |
+
<tr>
|
7 |
+
<th> </th>
|
8 |
+
<th><?php _e('Plugin', 'installer') ?></th>
|
9 |
+
<th><img src="<?php echo $this->plugin_url() ?>/res/img/globe.png" alt="<?php esc_attr_e('Available', 'installer') ?>" width="16" height="16"></th>
|
10 |
+
<th><img src="<?php echo $this->plugin_url() ?>/res/img/computer.png" alt="<?php esc_attr_e('Installed', 'installer') ?>" width="16" height="16"></th>
|
11 |
+
<th><img src="<?php echo $this->plugin_url() ?>/res/img/dn2.gif" alt="<?php esc_attr_e('Downloading', 'installer') ?>" width="16" height="16"></th>
|
12 |
+
<th><img src="<?php echo $this->plugin_url() ?>/res/img/on.png" alt="<?php esc_attr_e('Activate', 'installer') ?>" width="16" height="16"></th>
|
13 |
+
</tr>
|
14 |
+
</thead>
|
15 |
+
<tbody>
|
16 |
+
<?php foreach($product['downloads'] as $download): ?>
|
17 |
+
<?php if(empty($tr_oddeven) || $tr_oddeven == 'even') $tr_oddeven = 'odd'; else $tr_oddeven = 'even'; ?>
|
18 |
+
<tr class="<?php echo $tr_oddeven ?>">
|
19 |
+
<td>
|
20 |
+
<label>
|
21 |
+
<?php
|
22 |
+
$url = $this->append_site_key_to_download_url($download['url'], $site_key, $repository_id );
|
23 |
+
|
24 |
+
$download_data = array(
|
25 |
+
'url' => $url,
|
26 |
+
'slug' => $download['slug'],
|
27 |
+
'nonce' => wp_create_nonce('install_plugin_' . $url),
|
28 |
+
'repository_id' => $repository_id
|
29 |
+
);
|
30 |
+
|
31 |
+
$disabled = $expired ||
|
32 |
+
(
|
33 |
+
$this->plugin_is_installed($download['name'], $download['slug'], $download['version']) &&
|
34 |
+
!$this->plugin_is_embedded_version($download['name'], $download['slug'])
|
35 |
+
) || WP_Installer()->dependencies->cant_download( $repository_id );
|
36 |
+
|
37 |
+
?>
|
38 |
+
<input type="checkbox" name="downloads[]" value="<?php echo base64_encode(json_encode($download_data)); ?>" <?php
|
39 |
+
if($disabled): ?>disabled="disabled"<?php endif; ?> />
|
40 |
+
|
41 |
+
</label>
|
42 |
+
</td>
|
43 |
+
<td class="installer_plugin_name"><?php echo $download['name'] ?></td>
|
44 |
+
<td><?php echo $download['version'] ?></td>
|
45 |
+
<td class="installer_version_installed">
|
46 |
+
<?php if($v = $this->plugin_is_installed($download['name'], $download['slug'])):
|
47 |
+
$class = version_compare($v, $download['version'], '>=') ? 'installer-green-text' : 'installer-red-text'; ?>
|
48 |
+
<span class="<?php echo $class ?>"><?php echo $v; ?></span>
|
49 |
+
<?php endif; ?>
|
50 |
+
</td>
|
51 |
+
<td class="twelve">
|
52 |
+
<div class="installer-status-downloading"><?php _e('downloading...', 'installer') ?></div>
|
53 |
+
<div class="installer-status-downloaded" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('downloaded', 'installer') ?></div>
|
54 |
+
</td>
|
55 |
+
<td class="twelve">
|
56 |
+
<div class="installer-status-activating"><?php _e('activating', 'installer') ?></div>
|
57 |
+
<div class="installer-status-activated"><?php _e('activated', 'installer') ?></div>
|
58 |
+
</td>
|
59 |
+
</tr>
|
60 |
+
<?php endforeach; ?>
|
61 |
+
</tbody>
|
62 |
+
</table>
|
63 |
+
|
64 |
+
<?php if( !WP_Installer()->dependencies->is_uploading_allowed() ): ?>
|
65 |
+
<p class="installer-error-box"><?php printf(__('Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s.', 'installer'),
|
66 |
+
'<a href="http://codex.wordpress.org/Changing_File_Permissions">', '</a>') ?></p>
|
67 |
+
<?php elseif( WP_Installer()->dependencies->is_win_paths_exception($repository_id) ): ?>
|
68 |
+
<p><?php echo WP_Installer()->dependencies->win_paths_exception_message() ?></p>
|
69 |
+
<?php endif;?>
|
70 |
+
|
71 |
+
<br />
|
72 |
+
<input type="submit" class="button-secondary" value="<?php esc_attr_e('Download', 'installer') ?>" disabled="disabled" />
|
73 |
+
|
74 |
+
<label><input name="activate" type="checkbox" value="1" disabled="disabled" /> <?php _e('Activate after download', 'installer') ?></label>
|
75 |
+
|
76 |
+
<div class="installer-download-progress-status"></div>
|
77 |
+
<div class="installer-status-success"><?php _e('Operation complete!', 'installer') ?></div>
|
78 |
+
|
79 |
+
<span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nClick OK to revalidate your subscription or CANCEL to try again.", 'installer') ?></span>
|
80 |
+
</form>
|
vendor/otgs/installer/templates/downloads-list.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
<form method="post" class="otgsi_downloads_form">
|
3 |
+
|
4 |
+
<div class="installer-table-wrap">
|
5 |
+
<table class="widefat">
|
6 |
+
<thead>
|
7 |
+
<tr>
|
8 |
+
<th> </th>
|
9 |
+
<th><?php _e('Plugin', 'installer') ?></th>
|
10 |
+
<th><?php _e('Installed', 'installer') ?></th>
|
11 |
+
<th><?php _e('Current', 'installer') ?></th>
|
12 |
+
<th><?php _e('Released', 'installer') ?></th>
|
13 |
+
<th> </th>
|
14 |
+
<th> </th>
|
15 |
+
<th> </th>
|
16 |
+
<th> </th>
|
17 |
+
</tr>
|
18 |
+
</thead>
|
19 |
+
<tbody>
|
20 |
+
<?php
|
21 |
+
foreach($package['downloads'] as $download_id => $download): ?>
|
22 |
+
<tr>
|
23 |
+
<td>
|
24 |
+
<label>
|
25 |
+
<?php
|
26 |
+
$url = $this->append_site_key_to_download_url($download['url'], $site_key, $repository_id);
|
27 |
+
|
28 |
+
$download_data = array(
|
29 |
+
'url' => $url,
|
30 |
+
'slug' => $download['slug'],
|
31 |
+
'nonce' => wp_create_nonce('install_plugin_' . $url),
|
32 |
+
'repository_id' => $repository_id
|
33 |
+
);
|
34 |
+
?>
|
35 |
+
<input type="checkbox" name="downloads[]" value="<?php echo base64_encode(json_encode($download_data)); ?>" <?php
|
36 |
+
if( $this->plugin_is_installed($download['name'], $download['slug'], $download['version'] )
|
37 |
+
&& ! $this->plugin_is_embedded_version( $download['name'], $download['slug'] )
|
38 |
+
|| WP_Installer()->dependencies->cant_download( $repository_id ) ): ?>disabled="disabled"<?php endif; ?> />
|
39 |
+
</label>
|
40 |
+
</td>
|
41 |
+
<td class="installer_plugin_name"><?php echo $download['name'] ?></td>
|
42 |
+
<td class="installer_version_installed">
|
43 |
+
<?php if ( $v = $this->plugin_is_installed( $download['name'], $download['slug'] ) ): ?>
|
44 |
+
<?php
|
45 |
+
$class = version_compare( $v, $download['version'], '>=' ) ? 'installer-green-text' : 'installer-red-text';
|
46 |
+
$class .= version_compare( $v, $download['version'], '>' ) ? ' unstable' : '';
|
47 |
+
?>
|
48 |
+
<span class="<?php echo $class ?>"><?php echo $v; ?></span>
|
49 |
+
<?php if ( $this->plugin_is_embedded_version( $download['name'], $download['slug'] ) ): ?> <?php _e( '(embedded)', 'installer' ); ?><?php endif; ?>
|
50 |
+
<?php if(
|
51 |
+
WP_Installer_Channels()->get_channel( $repository_id ) !== WP_Installer_Channels::CHANNEL_PRODUCTION &&
|
52 |
+
$non_stable = WP_Installer_Channels()->get_download_source_channel( $v, $repository_id, $download_id, 'plugins')
|
53 |
+
) : ?>
|
54 |
+
(<?php echo $non_stable ?>)
|
55 |
+
<?php endif; ?>
|
56 |
+
<?php endif; ?>
|
57 |
+
</td>
|
58 |
+
<td><?php echo $download['version'] ?></td>
|
59 |
+
<td><?php echo date_i18n('F j, Y', strtotime($download['date'])) ?></td>
|
60 |
+
<td>
|
61 |
+
<?php if ( !empty( $download['release-notes'] ) ): ?>
|
62 |
+
<a class="js-release-notes handle" href="#"><?php esc_html_e( 'Release notes', 'installer' ) ?></a></td>
|
63 |
+
<?php endif; ?>
|
64 |
+
<td>
|
65 |
+
<span class="installer-status-installing"><?php _e('installing...', 'installer') ?></span>
|
66 |
+
<span class="installer-status-updating"><?php _e('updating...', 'installer') ?></span>
|
67 |
+
<span class="installer-status-installed" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('installed', 'installer') ?></span>
|
68 |
+
<span class="installer-status-updated" data-fail="<?php _e('failed!', 'installer') ?>"><?php _e('updated', 'installer') ?></span>
|
69 |
+
</td>
|
70 |
+
<td>
|
71 |
+
<span class="installer-status-activating"><?php _e('activating', 'installer') ?></span>
|
72 |
+
<span class="installer-status-activated"><?php _e('activated', 'installer') ?></span>
|
73 |
+
</td>
|
74 |
+
<td class="for_spinner_js"><span class="spinner"></span></td>
|
75 |
+
</tr>
|
76 |
+
<?php if ( !empty( $download['release-notes'] ) ): ?>
|
77 |
+
<tr class="installer-release-notes">
|
78 |
+
<td colspan="9">
|
79 |
+
<div class="arrow_box">
|
80 |
+
<div><?php echo force_balance_tags( $download['release-notes'] ) ?></div>
|
81 |
+
</div>
|
82 |
+
</td>
|
83 |
+
</tr>
|
84 |
+
<?php endif; ?>
|
85 |
+
<?php endforeach; ?>
|
86 |
+
</tbody>
|
87 |
+
</table>
|
88 |
+
</div>
|
89 |
+
<br />
|
90 |
+
|
91 |
+
<div class="installer-error-box">
|
92 |
+
<?php if( !WP_Installer()->dependencies->is_uploading_allowed() ): ?>
|
93 |
+
<p><?php printf(__('Downloading is not possible because WordPress cannot write into the plugins folder. %sHow to fix%s.', 'installer'),
|
94 |
+
'<a href="http://codex.wordpress.org/Changing_File_Permissions">', '</a>') ?></p>
|
95 |
+
<?php elseif( WP_Installer()->dependencies->is_win_paths_exception($repository_id) ): ?>
|
96 |
+
<p><?php echo WP_Installer()->dependencies->win_paths_exception_message() ?></p>
|
97 |
+
<?php endif; ?>
|
98 |
+
</div>
|
99 |
+
|
100 |
+
<input type="submit" class="button-secondary" value="<?php esc_attr_e('Download', 'installer') ?>" disabled="disabled" />
|
101 |
+
|
102 |
+
<label><input name="activate" type="checkbox" value="1" disabled="disabled" /> <?php _e('Activate after download', 'installer') ?></label>
|
103 |
+
|
104 |
+
<div class="installer-download-progress-status"></div>
|
105 |
+
|
106 |
+
<div class="installer-status-success"><?php _e('Operation complete!', 'installer') ?></div>
|
107 |
+
|
108 |
+
<span class="installer-revalidate-message hidden"><?php _e("Download failed!\n\nPlease refresh the page and try again.", 'installer') ?></span>
|
109 |
+
</form>
|
vendor/otgs/installer/templates/products-compact.php
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<h3><?php echo $args['box_title'] ?></h3>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
if(empty($args['repository']) || empty($args['package']) || empty($args['product'])){
|
5 |
+
echo __('Incorrect setup', 'installer');
|
6 |
+
return;
|
7 |
+
}
|
8 |
+
|
9 |
+
$product = false;
|
10 |
+
foreach($this->settings['repositories'][$repository_id]['data']['packages'] as $package_idx => $package){
|
11 |
+
|
12 |
+
//pre 1.3 backwardds compatibility
|
13 |
+
if(!isset($package['id'])){
|
14 |
+
$package['id'] = sanitize_title_with_dashes($package['name']);
|
15 |
+
}
|
16 |
+
|
17 |
+
if($package['id'] == $args['package']){
|
18 |
+
$product = $this->settings['repositories'][$repository_id]['data']['packages'][$package_idx]['products'][$args['product']];
|
19 |
+
break;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
|
24 |
+
if(!$product){
|
25 |
+
echo __('Invalid product', 'installer');
|
26 |
+
return;
|
27 |
+
}
|
28 |
+
|
29 |
+
if(isset($this->settings['repositories'][$repository_id])){
|
30 |
+
if(isset($this->settings['repositories'][$repository_id]['subscription']['key'])){
|
31 |
+
$site_key = $this->settings['repositories'][$repository_id]['subscription']['key'];
|
32 |
+
}else{
|
33 |
+
$site_key = false;
|
34 |
+
}
|
35 |
+
}else{
|
36 |
+
echo __('Unknown repository', 'installer');
|
37 |
+
return;
|
38 |
+
}
|
39 |
+
|
40 |
+
$subscription_type = $this->get_subscription_type_for_repository($repository_id);
|
41 |
+
$expired = false;
|
42 |
+
|
43 |
+
if($subscription_type != $product['subscription_type'] && !$this->have_superior_subscription($subscription_type, $product) && $site_key){
|
44 |
+
$subscription_no_match = sprintf(__(' Your current site key (%s) does not match the selected product (%s).', 'installer'), $site_key, $product['name']);
|
45 |
+
}
|
46 |
+
|
47 |
+
if(!isset($args['product_name'])) $args['product_name'] = $product['name'];
|
48 |
+
|
49 |
+
?>
|
50 |
+
|
51 |
+
<div class="otgs_wp_installer_table otgs_wp_installer_table_compact">
|
52 |
+
|
53 |
+
<p><?php echo $args['box_description'] ?></p>
|
54 |
+
|
55 |
+
|
56 |
+
<?php if(!$this->repository_has_subscription($repository_id) || !empty($subscription_no_match)): ?>
|
57 |
+
|
58 |
+
<?php if(!empty($subscription_no_match)): ?>
|
59 |
+
<div class="installer-warn-box">
|
60 |
+
<?php echo $subscription_no_match; ?>
|
61 |
+
</div>
|
62 |
+
<br />
|
63 |
+
<?php endif; ?>
|
64 |
+
|
65 |
+
<a class="button-primary" href="<?php echo $this->append_parameters_to_buy_url($product['url'], $repository_id, $args) ?>"><?php printf(__('Buy %s', 'installer'), $args['product_name']) ?></a>
|
66 |
+
|
67 |
+
<div>
|
68 |
+
<br />
|
69 |
+
<?php printf(__('Already bought %s?', 'installer'), $args['product_name']) ?>
|
70 |
+
<a class="enter_site_key_js<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?> disabled<?php endif ?>" href="#"
|
71 |
+
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
72 |
+
style="cursor: help"
|
73 |
+
disabled="disabled"
|
74 |
+
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
75 |
+
<?php endif; ?>
|
76 |
+
>
|
77 |
+
<?php _e('Enter site key', 'installer') ?>
|
78 |
+
</a>
|
79 |
+
|
80 |
+
<form class="otgsi_site_key_form" method="post">
|
81 |
+
<input type="hidden" name="action" value="save_site_key" />
|
82 |
+
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('save_site_key_' . $repository_id) ?>" />
|
83 |
+
<input type="hidden" name="repository_id" value="<?php echo $repository_id ?>">
|
84 |
+
<input type="text" size="10" name="site_key_<?php echo $repository_id ?>" />
|
85 |
+
<input class="button-secondary" type="submit" value="<?php esc_attr_e('Add', 'installer') ?>" />
|
86 |
+
</form>
|
87 |
+
<div class="installer-error-box hidden" style="margin-top:10px;"></div>
|
88 |
+
</div>
|
89 |
+
|
90 |
+
<?php else: ?>
|
91 |
+
|
92 |
+
<?php if($this->repository_has_expired_subscription($repository_id)): $expired = true; ?>
|
93 |
+
|
94 |
+
<div><p class="installer-warn-box"><?php _e('Subscription is expired.', 'installer') ?></p></div>
|
95 |
+
|
96 |
+
<?php else: ?>
|
97 |
+
|
98 |
+
<?php if($this->show_subscription_renew_warning($repository_id, $subscription_type)): ?>
|
99 |
+
|
100 |
+
<ul class="installer-products-list">
|
101 |
+
<?php foreach($product['renewals'] as $renewal): ?>
|
102 |
+
<li>
|
103 |
+
<a href="<?php echo $this->append_parameters_to_buy_url($renewal['url'], $repository_id, $args) ?>"><?php printf(__('Renew %s', 'installer'), $args['product_name']) ?></a>
|
104 |
+
</li>
|
105 |
+
<?php endforeach; ?>
|
106 |
+
</ul>
|
107 |
+
|
108 |
+
<?php endif; ?>
|
109 |
+
|
110 |
+
<?php endif; ?>
|
111 |
+
|
112 |
+
<center>
|
113 |
+
<a class="remove_site_key_js" href="#" data-repository=<?php echo $repository_id ?>
|
114 |
+
data-confirmation="<?php esc_attr_e('Are you sure you want to remove this site key?', 'installer') ?>"
|
115 |
+
data-nonce="<?php echo wp_create_nonce('remove_site_key_' . $repository_id) ?>"
|
116 |
+
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
117 |
+
style="cursor: help;color:#999999"
|
118 |
+
disabled="disabled"
|
119 |
+
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
120 |
+
<?php endif; ?>
|
121 |
+
>
|
122 |
+
<?php printf(__("Remove current site key (%s)", 'installer'), $site_key) ?>
|
123 |
+
</a>
|
124 |
+
</center>
|
125 |
+
<br />
|
126 |
+
|
127 |
+
<?php include $this->plugin_path() . '/templates/downloads-list-compact.php'; ?>
|
128 |
+
|
129 |
+
|
130 |
+
|
131 |
+
<?php endif; ?>
|
132 |
+
|
133 |
+
<?php
|
134 |
+
if( isset( $args[ 'name' ] ) ):
|
135 |
+
$support_link = $this->get_support_tag_by_name($args['name'], $args['repository']); ?>
|
136 |
+
|
137 |
+
<?php if($support_link): ?>
|
138 |
+
<p><a href="<?php echo $support_link ?>" target="_blank"><?php printf(__('%s support on wpml.org', 'installer'), $args['name'] ) ?></a></p>
|
139 |
+
|
140 |
+
<?php endif; ?>
|
141 |
+
<?php
|
142 |
+
// compatibility for installer 1.1
|
143 |
+
elseif( isset( $args[ 'support_link' ] ) ): ?>
|
144 |
+
<p><?php echo $args[ 'support_link' ]; ?></p>
|
145 |
+
<?php endif; ?>
|
146 |
+
|
147 |
+
</div>
|
vendor/otgs/installer/templates/repository-listing.php
ADDED
@@ -0,0 +1,271 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if((!$this->repository_has_subscription($repository_id) && $match = $this->get_matching_cp($repository)) && $match['exp']): ?>
|
2 |
+
<p class="alignright installer_highlight"><strong><?php printf('Price offers available until %s', date_i18n(get_option( 'date_format' ), $match['exp'])) ?></strong></p>
|
3 |
+
<?php endif; ?>
|
4 |
+
|
5 |
+
<h3 id="repository-<?php echo $repository_id ?>"><?php echo $repository['data']['name'] ?></h3>
|
6 |
+
<?php
|
7 |
+
$generic_product_name = $this->settings['repositories'][$repository_id]['data']['product-name'];
|
8 |
+
?>
|
9 |
+
<table class="widefat otgs_wp_installer_table" id="installer_repo_<?php echo $repository_id ?>">
|
10 |
+
|
11 |
+
<tr>
|
12 |
+
<td> </td>
|
13 |
+
<td class="otgsi_register_product_wrap">
|
14 |
+
<?php // IF NO SUBSCRIPTION ?>
|
15 |
+
<?php if(!$this->repository_has_subscription($repository_id)): ?>
|
16 |
+
|
17 |
+
|
18 |
+
|
19 |
+
<p class="alignright enter_site_key_wrap_js">
|
20 |
+
<span><?php _e('Already bought?', 'installer'); ?></span>
|
21 |
+
<a class="enter_site_key_js button-primary"
|
22 |
+
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
23 |
+
disabled
|
24 |
+
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to register.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
25 |
+
<?php endif; ?>
|
26 |
+
>
|
27 |
+
<?php printf(__('Register %s', 'installer'), $generic_product_name); ?>
|
28 |
+
</a>
|
29 |
+
</p>
|
30 |
+
|
31 |
+
<form class="otgsi_site_key_form" method="post">
|
32 |
+
<input type="hidden" name="action" value="save_site_key" />
|
33 |
+
<input type="hidden" name="nonce" value="<?php echo wp_create_nonce('save_site_key_' . $repository_id) ?>" />
|
34 |
+
<input type="hidden" name="repository_id" value="<?php echo $repository_id ?>">
|
35 |
+
|
36 |
+
<?php
|
37 |
+
$repo_site = str_replace( array(
|
38 |
+
'https://',
|
39 |
+
'http://'
|
40 |
+
),
|
41 |
+
'',
|
42 |
+
$this->settings['repositories'][ $repository_id ]['data']['url'] );
|
43 |
+
|
44 |
+
$current_site_domain = str_replace( array(
|
45 |
+
'https://',
|
46 |
+
'http://'
|
47 |
+
),
|
48 |
+
'',
|
49 |
+
$this->get_installer_site_url( $repository_id ) );
|
50 |
+
|
51 |
+
$your_account_link = '<a target="_blank" rel="nofollow" href="'
|
52 |
+
. $this->settings['repositories'][ $repository_id ]['data']['site_keys_management_url']
|
53 |
+
. '?add='
|
54 |
+
. urlencode( $this->get_installer_site_url( $repository_id ) )
|
55 |
+
. '">'
|
56 |
+
. __( 'your account', 'installer' )
|
57 |
+
. '</a>';
|
58 |
+
|
59 |
+
$register_link = '<a target="_blank" rel="nofollow" href="'
|
60 |
+
. $this->settings['repositories'][ $repository_id ]['data']['url']
|
61 |
+
. '">'
|
62 |
+
. sprintf( esc_attr( 'register on %s.', 'installer' ), $repo_site )
|
63 |
+
. '</a>';
|
64 |
+
|
65 |
+
$steps = array(
|
66 |
+
1 => sprintf( __( 'Get your site-key for %1$s. If you already have a key, get it from %2$s. Otherwise, %3$s',
|
67 |
+
'installer' ),
|
68 |
+
$current_site_domain,
|
69 |
+
$your_account_link,
|
70 |
+
$register_link ),
|
71 |
+
2 => __( 'Insert your key and activate automatic updates:', 'installer' )
|
72 |
+
. '<span class="otgs-installer-register-inputs">'
|
73 |
+
. '<input type="text" size="20" name="site_key_'
|
74 |
+
. $repository_id
|
75 |
+
. '" placeholder="'
|
76 |
+
. esc_attr( 'site key' )
|
77 |
+
. '" />'
|
78 |
+
. '<input class="button-primary" type="submit" value="'
|
79 |
+
. esc_attr__( 'OK', 'installer' )
|
80 |
+
. '" />'
|
81 |
+
. '<input class="button-secondary cancel_site_key_js" type="button" value="'
|
82 |
+
. esc_attr__( 'Cancel registration', 'installer' )
|
83 |
+
. '" />'
|
84 |
+
. '</span>'
|
85 |
+
|
86 |
+
);
|
87 |
+
|
88 |
+
$required_items_count = count( $steps );
|
89 |
+
|
90 |
+
$filtered_items = apply_filters( 'otgs_installer_repository_registration_steps', $steps, $repository_id );
|
91 |
+
if ( ! $filtered_items || ! is_array( $filtered_items ) || $required_items_count < 2 ) {
|
92 |
+
$filtered_items = $steps;
|
93 |
+
}
|
94 |
+
|
95 |
+
$steps = $filtered_items;
|
96 |
+
ksort( $steps );
|
97 |
+
?>
|
98 |
+
<ol>
|
99 |
+
<?php
|
100 |
+
foreach ( $steps as $item ) {
|
101 |
+
?>
|
102 |
+
<li>
|
103 |
+
<?php echo $item; ?>
|
104 |
+
</li>
|
105 |
+
<?php
|
106 |
+
}
|
107 |
+
?>
|
108 |
+
</ol>
|
109 |
+
</form>
|
110 |
+
|
111 |
+
<?php
|
112 |
+
$site_key = false;
|
113 |
+
|
114 |
+
// IF SUBSCRIPTION
|
115 |
+
else:
|
116 |
+
|
117 |
+
$site_key = $this->settings['repositories'][$repository_id]['subscription']['key'];
|
118 |
+
$subscription_type = $this->get_subscription_type_for_repository($repository_id);
|
119 |
+
$upgrade_options = $this->get_upgrade_options($repository_id);
|
120 |
+
$expired = false;
|
121 |
+
|
122 |
+
?>
|
123 |
+
|
124 |
+
<?php if($this->repository_has_expired_subscription($repository_id)): $expired = true; ?>
|
125 |
+
<div>
|
126 |
+
<p class="installer-warn-box">
|
127 |
+
<?php _e('Subscription expired. You need to either purchase a new subscription or upgrade if available.', 'installer') ?>
|
128 |
+
<span class="alignright">
|
129 |
+
<a class="update_site_key_js button-secondary" href="#" data-repository=<?php echo $repository_id ?> data-nonce="<?php echo wp_create_nonce('update_site_key_' . $repository_id) ?>">
|
130 |
+
<?php _e('Revalidate subscription', 'installer'); ?>
|
131 |
+
</a>
|
132 |
+
</span>
|
133 |
+
<br />
|
134 |
+
<span class="details"><?php _e("If you have already purchased or renewed your subscription and you can still see this message, please revalidate your subscription", 'installer') ?></span>
|
135 |
+
</p>
|
136 |
+
</div>
|
137 |
+
<?php else: ?>
|
138 |
+
<?php $this->show_subscription_renew_warning($repository_id, $subscription_type); ?>
|
139 |
+
<?php endif; ?>
|
140 |
+
|
141 |
+
|
142 |
+
<?php if(empty($expired)): ?>
|
143 |
+
|
144 |
+
<div class="otgs-installer-registered clearfix">
|
145 |
+
<span>
|
146 |
+
<?php if($expires = $this->settings['repositories'][$repository_id]['subscription']['data']->expires): ?>
|
147 |
+
<?php printf(__('%s is registered on this site. You will receive automatic updates until %s', 'installer'), $generic_product_name, date_i18n('F j, Y', strtotime($expires))); ?>
|
148 |
+
<?php else: ?>
|
149 |
+
<?php printf(__('%s is registered on this site. Your Lifetime account gives you updates for life.', 'installer'), $generic_product_name); ?>
|
150 |
+
<?php endif; ?>
|
151 |
+
</span>
|
152 |
+
<?php endif; //if(empty($expired)) ?>
|
153 |
+
|
154 |
+
<span class="otgs-installer-registered-buttons">
|
155 |
+
|
156 |
+
<a class="remove_site_key_js button-secondary" data-repository=<?php echo $repository_id ?>
|
157 |
+
data-confirmation="<?php esc_attr_e('Are you sure you want to unregister?', 'installer') ?>"
|
158 |
+
data-nonce="<?php echo wp_create_nonce('remove_site_key_' . $repository_id) ?>"
|
159 |
+
<?php if( WP_Installer::get_repository_hardcoded_site_key( $repository_id ) ): ?>
|
160 |
+
disabled
|
161 |
+
title="<?php printf( esc_attr__("Site-key was set by %s, most likely in wp-config.php. Please remove the constant before attempting to unregister.", 'installer'), 'OTGS_INSTALLER_SITE_KEY_' . strtoupper($repository_id) ) ?>"
|
162 |
+
<?php endif; ?>
|
163 |
+
>
|
164 |
+
<?php printf(__("Unregister %s from this site", 'installer'), $generic_product_name) ?></a>
|
165 |
+
|
166 |
+
<a class="update_site_key_js button-secondary" data-repository=<?php echo $repository_id ?>
|
167 |
+
data-nonce="<?php echo wp_create_nonce('update_site_key_' . $repository_id) ?>">
|
168 |
+
<?php _e('Check for updates', 'installer'); ?>
|
169 |
+
</a>
|
170 |
+
</span>
|
171 |
+
</div>
|
172 |
+
|
173 |
+
|
174 |
+
<?php endif; // if(!repository_has_subscription) ?>
|
175 |
+
|
176 |
+
<div class="installer-error-box hidden"></div>
|
177 |
+
|
178 |
+
</td>
|
179 |
+
</tr>
|
180 |
+
|
181 |
+
<?php
|
182 |
+
|
183 |
+
$subscription_type = isset($subscription_type) ? $subscription_type : null;
|
184 |
+
$expired = isset($expired) ? $expired : null;
|
185 |
+
$upgrade_options = isset($upgrade_options) ? $upgrade_options : null;
|
186 |
+
$packages = $this->_render_product_packages($repository['data']['packages'], $subscription_type, $expired, $upgrade_options, $repository_id);
|
187 |
+
if(empty($subscription_type) || $expired){
|
188 |
+
$subpackages_expandable = true;
|
189 |
+
}else{
|
190 |
+
$subpackages_expandable = false;
|
191 |
+
}
|
192 |
+
|
193 |
+
?>
|
194 |
+
|
195 |
+
<?php foreach($packages as $package): ?>
|
196 |
+
<tr id="repository-<?php echo $repository_id ?>_<?php echo $package['id'] ?>">
|
197 |
+
<td class="installer-repository-image"><img width="140" src="<?php echo $package['image_url'] ?>" /></td>
|
198 |
+
<td>
|
199 |
+
<p><strong><?php echo $package['name'] ?></strong></p>
|
200 |
+
<p><?php echo $package['description'] ?></p>
|
201 |
+
|
202 |
+
<?php if($package['products']): ?>
|
203 |
+
<?php foreach($package['products'] as $product): ?>
|
204 |
+
<ul class="installer-products-list" style="display:inline">
|
205 |
+
<li>
|
206 |
+
<a class="button-secondary" href="<?php echo $product['url'] ?>"><?php echo $product['label'] ?></a>
|
207 |
+
</li>
|
208 |
+
</ul>
|
209 |
+
<?php endforeach; ?>
|
210 |
+
<?php endif; ?>
|
211 |
+
|
212 |
+
<?php
|
213 |
+
if ( $package['downloads'] ) {
|
214 |
+
WP_Installer_Channels()->load_channel_selector( $repository_id, $package['downloads'] );
|
215 |
+
include $this->plugin_path() . '/templates/downloads-list.php';
|
216 |
+
}
|
217 |
+
?>
|
218 |
+
|
219 |
+
<?php if(!empty($package['sub-packages'])): ?>
|
220 |
+
|
221 |
+
<?php $subpackages = $this->_render_product_packages($package['sub-packages'], $subscription_type, $expired, $upgrade_options, $repository_id); ?>
|
222 |
+
|
223 |
+
<?php if($subpackages): ?>
|
224 |
+
|
225 |
+
<?php if($subpackages_expandable): ?>
|
226 |
+
<h5><a class="installer_expand_button" href="#" title="<?php esc_attr_e('Click to see individual components options.', 'installer') ?>"><?php _e('Individual components', 'installer') ?></a></h5>
|
227 |
+
<?php endif; ?>
|
228 |
+
|
229 |
+
<table class="otgs_wp_installer_subtable" style="<?php if($subpackages_expandable) echo 'display:none' ?>">
|
230 |
+
<?php foreach($subpackages as $package): ?>
|
231 |
+
<tr id="repository-<?php echo $repository_id ?>_<?php echo $package['id'] ?>">
|
232 |
+
<td><img width="70" height="70" src="<?php echo $package['image_url'] ?>" /></td>
|
233 |
+
<td>
|
234 |
+
<p><strong><?php echo $package['name'] ?></strong></p>
|
235 |
+
<p><?php echo $package['description'] ?></p>
|
236 |
+
|
237 |
+
<?php if($package['products']): ?>
|
238 |
+
<?php foreach($package['products'] as $product): ?>
|
239 |
+
<ul class="installer-products-list" style="display:inline">
|
240 |
+
<li>
|
241 |
+
<a class="button-secondary" href="<?php echo $product['url'] ?>"><?php echo $product['label'] ?></a>
|
242 |
+
</li>
|
243 |
+
</ul>
|
244 |
+
<?php endforeach; ?>
|
245 |
+
<?php endif; ?>
|
246 |
+
|
247 |
+
<?php if($package['downloads']): ?>
|
248 |
+
<?php include $this->plugin_path() . '/templates/downloads-list.php'; ?>
|
249 |
+
<?php endif; ?>
|
250 |
+
</td>
|
251 |
+
</tr>
|
252 |
+
<?php endforeach; ?>
|
253 |
+
</table>
|
254 |
+
<?php endif; ?>
|
255 |
+
|
256 |
+
<?php endif; ?>
|
257 |
+
|
258 |
+
|
259 |
+
</td>
|
260 |
+
</tr>
|
261 |
+
|
262 |
+
<?php endforeach; ?>
|
263 |
+
|
264 |
+
</table>
|
265 |
+
|
266 |
+
|
267 |
+
<p><i><?php printf(__('This page lets you install plugins and update existing plugins. To remove any of these plugins, go to the %splugins%s page and if you have the permission to remove plugins you should be able to do this.', 'installer'), '<a href="' . admin_url('plugins.php') . '">' , '</a>'); ?></i></p>
|
268 |
+
|
269 |
+
|
270 |
+
|
271 |
+
<br />
|
vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service-loader.php
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_Twig_Template_Service_Loader {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* @var array
|
7 |
+
*/
|
8 |
+
private $paths;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* OTGS_Installer_Twig_Template_Service_Loader constructor.
|
12 |
+
*
|
13 |
+
* @param array $paths
|
14 |
+
*/
|
15 |
+
public function __construct( array $paths ) {
|
16 |
+
$this->paths = $paths;
|
17 |
+
}
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @return OTGS_Installer_Twig_Template_Service
|
21 |
+
*/
|
22 |
+
public function get_service() {
|
23 |
+
if ( ! class_exists( 'Twig_Loader_Filesystem' ) ) {
|
24 |
+
OTGS_Twig_Autoloader::register();
|
25 |
+
}
|
26 |
+
|
27 |
+
$twig_loader = new Twig_Loader_Filesystem( $this->paths );
|
28 |
+
$environment_args = array();
|
29 |
+
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
30 |
+
$environment_args['debug'] = true;
|
31 |
+
}
|
32 |
+
$twig = new Twig_Environment( $twig_loader, $environment_args );
|
33 |
+
|
34 |
+
return new OTGS_Installer_Twig_Template_Service( $twig );
|
35 |
+
}
|
36 |
+
}
|
vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class OTGS_Installer_Twig_Template_Service implements IOTGS_Installer_Template_Service {
|
4 |
+
|
5 |
+
const FILE_EXTENSION = '.twig';
|
6 |
+
|
7 |
+
private $twig;
|
8 |
+
|
9 |
+
/**
|
10 |
+
* OTGS_Installer_Twig_Template_Service constructor.
|
11 |
+
*
|
12 |
+
* @param Twig_Environment $twig
|
13 |
+
*/
|
14 |
+
public function __construct( Twig_Environment $twig ) {
|
15 |
+
$this->twig = $twig;
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @param array $model
|
20 |
+
* @param string $template
|
21 |
+
*
|
22 |
+
* @return string
|
23 |
+
*/
|
24 |
+
public function show( $model, $template ) {
|
25 |
+
return $this->twig->render( $template . self::FILE_EXTENSION, $model );
|
26 |
+
}
|
27 |
+
}
|
vendor/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
interface IOTGS_Installer_Template_Service {
|
4 |
+
public function show( $model, $template );
|
5 |
+
}
|
vendor/toolset/toolset-common/inc/toolset.assets.manager.class.php
CHANGED
@@ -292,22 +292,22 @@ class Toolset_Assets_Manager {
|
|
292 |
add_action( 'toolset_localize_script', array( $this, 'localize_script' ), 10, 3 );
|
293 |
}
|
294 |
|
|
|
295 |
|
296 |
/**
|
297 |
* @return Toolset_Assets_Manager
|
298 |
* @deprecated Use get_instance instead().
|
299 |
*/
|
300 |
final public static function getInstance() {
|
301 |
-
static $instances = array();
|
302 |
$called_class = get_called_class();
|
303 |
|
304 |
-
if ( isset(
|
305 |
-
return
|
306 |
} else {
|
307 |
if ( class_exists( $called_class ) ) {
|
308 |
-
|
309 |
|
310 |
-
return
|
311 |
} else {
|
312 |
// This can unfortunately happen when the get_called_class() workaround for PHP 5.2 misbehaves.
|
313 |
return false;
|
@@ -323,7 +323,16 @@ class Toolset_Assets_Manager {
|
|
323 |
*/
|
324 |
public static function get_instance() {
|
325 |
if( null === self::$instance ) {
|
326 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
}
|
328 |
|
329 |
return self::$instance;
|
292 |
add_action( 'toolset_localize_script', array( $this, 'localize_script' ), 10, 3 );
|
293 |
}
|
294 |
|
295 |
+
private static $instances = array();
|
296 |
|
297 |
/**
|
298 |
* @return Toolset_Assets_Manager
|
299 |
* @deprecated Use get_instance instead().
|
300 |
*/
|
301 |
final public static function getInstance() {
|
|
|
302 |
$called_class = get_called_class();
|
303 |
|
304 |
+
if ( isset( self::$instances[ $called_class ] ) ) {
|
305 |
+
return self::$instances[ $called_class ];
|
306 |
} else {
|
307 |
if ( class_exists( $called_class ) ) {
|
308 |
+
self::$instances[ $called_class ] = new $called_class();
|
309 |
|
310 |
+
return self::$instances[ $called_class ];
|
311 |
} else {
|
312 |
// This can unfortunately happen when the get_called_class() workaround for PHP 5.2 misbehaves.
|
313 |
return false;
|
323 |
*/
|
324 |
public static function get_instance() {
|
325 |
if( null === self::$instance ) {
|
326 |
+
$called_class = get_called_class();
|
327 |
+
if( $called_class === 'Toolset_Assets_Manager' && isset( self::$instances[ $called_class ] ) ) {
|
328 |
+
// Make sure that we don't re-instantiate the Toolset_Assets_Manager class even if it was instantiated
|
329 |
+
// before through the legacy getInstance() method.
|
330 |
+
//
|
331 |
+
// @refactoring Stop subclassing Toolset_Assets_Manager
|
332 |
+
self::$instance = self::$instances[ $called_class ];
|
333 |
+
} else {
|
334 |
+
self::$instance = new self();
|
335 |
+
}
|
336 |
}
|
337 |
|
338 |
return self::$instance;
|
vendor/toolset/toolset-common/loader.php
CHANGED
@@ -27,7 +27,12 @@
|
|
27 |
* Now that we have a unique version for all plugins
|
28 |
* we define the version here
|
29 |
*/
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
|
33 |
/* ---------------------------------------------------------------------- *\
|
27 |
* Now that we have a unique version for all plugins
|
28 |
* we define the version here
|
29 |
*/
|
30 |
+
|
31 |
+
// Note: Since the 2.8 branch is meant just for the support of the legacy Types 2.3.* branch,
|
32 |
+
// we're relaxing the rule and incrementing the loader number just by one.
|
33 |
+
//
|
34 |
+
// This may keep going on for some time and we don't want to run out of numbers for point releases.
|
35 |
+
$toolset_common_version = 280001;
|
36 |
|
37 |
|
38 |
/* ---------------------------------------------------------------------- *\
|
vendor/toolset/toolset-common/toolset-common-loader.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
|
3 |
if( !defined('TOOLSET_VERSION') ){
|
4 |
-
define('TOOLSET_VERSION', '2.8.
|
5 |
}
|
6 |
|
7 |
if ( ! defined('TOOLSET_COMMON_VERSION' ) ) {
|
8 |
-
define( 'TOOLSET_COMMON_VERSION', '2.8.
|
9 |
}
|
10 |
|
11 |
if ( ! defined('TOOLSET_COMMON_PATH' ) ) {
|
1 |
<?php
|
2 |
|
3 |
if( !defined('TOOLSET_VERSION') ){
|
4 |
+
define('TOOLSET_VERSION', '2.8.1');
|
5 |
}
|
6 |
|
7 |
if ( ! defined('TOOLSET_COMMON_VERSION' ) ) {
|
8 |
+
define( 'TOOLSET_COMMON_VERSION', '2.8.1' );
|
9 |
}
|
10 |
|
11 |
if ( ! defined('TOOLSET_COMMON_PATH' ) ) {
|
vendor/toolset/types/admin.php
CHANGED
@@ -355,6 +355,16 @@ function wpcf_admin_toolset_register_menu_pages( $pages ) {
|
|
355 |
}
|
356 |
|
357 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
358 |
/**
|
359 |
* This used to load the Toolset Access teaser - code has not been removed
|
360 |
*
|
355 |
}
|
356 |
|
357 |
|
358 |
+
if ( 'installer' == $current_page ) {
|
359 |
+
// @todo Having a page with a slug "installer" is a direct path to a third-party plugin conflict. Just saying. Not to mention the callback funciton "installer_content", for god's sake
|
360 |
+
$pages['installer'] = array(
|
361 |
+
'slug' => 'installer',
|
362 |
+
'menu_title' => __( 'Installer', 'wpcf' ),
|
363 |
+
'page_title' => __( 'Installer', 'wpcf' ),
|
364 |
+
'callback' => 'installer_content',
|
365 |
+
);
|
366 |
+
}
|
367 |
+
|
368 |
/**
|
369 |
* This used to load the Toolset Access teaser - code has not been removed
|
370 |
*
|
vendor/toolset/types/wpcf.php
CHANGED
@@ -109,6 +109,14 @@ function wpcf_init()
|
|
109 |
}
|
110 |
}
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
/**
|
114 |
* WP Main init hook.
|
109 |
}
|
110 |
}
|
111 |
|
112 |
+
//Render Installer packages
|
113 |
+
function installer_content()
|
114 |
+
{
|
115 |
+
echo '<div class="wrap">';
|
116 |
+
$config['repository'] = array(); // required
|
117 |
+
WP_Installer_Show_Products($config);
|
118 |
+
echo "</div>";
|
119 |
+
}
|
120 |
|
121 |
/**
|
122 |
* WP Main init hook.
|
wpcf.php
CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://wordpress.org/extend/plugins/types/
|
|
5 |
Description: Toolset Types defines custom content in WordPress. Easily create custom post types, fields and taxonomy and connect everything together.
|
6 |
Author: OnTheGoSystems
|
7 |
Author URI: http://www.onthegosystems.com
|
8 |
-
Version: 2.3
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
Types is free software: you can redistribute it and/or modify
|
@@ -29,7 +29,7 @@ if ( ! function_exists( 'add_action' ) ) {
|
|
29 |
|
30 |
// version
|
31 |
if ( ! defined( 'TYPES_VERSION' ) ) {
|
32 |
-
define( 'TYPES_VERSION', '2.3' );
|
33 |
}
|
34 |
|
35 |
// backward compatibility
|
5 |
Description: Toolset Types defines custom content in WordPress. Easily create custom post types, fields and taxonomy and connect everything together.
|
6 |
Author: OnTheGoSystems
|
7 |
Author URI: http://www.onthegosystems.com
|
8 |
+
Version: 2.3.1
|
9 |
License: GPLv2 or later
|
10 |
|
11 |
Types is free software: you can redistribute it and/or modify
|
29 |
|
30 |
// version
|
31 |
if ( ! defined( 'TYPES_VERSION' ) ) {
|
32 |
+
define( 'TYPES_VERSION', '2.3.1' );
|
33 |
}
|
34 |
|
35 |
// backward compatibility
|