Toolset Types – Custom Post Types, Custom Fields and Taxonomies - Version 2.3.1

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 Icon 128x128 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

Files changed (176) hide show
  1. application/bootstrap.php +16 -0
  2. package-lock.json +0 -2265
  3. readme.txt +5 -1
  4. vendor/autoload.php +1 -1
  5. vendor/composer/autoload_classmap.php +2 -0
  6. vendor/composer/autoload_namespaces.php +1 -0
  7. vendor/composer/autoload_real.php +7 -7
  8. vendor/composer/autoload_static.php +14 -5
  9. vendor/composer/installed.json +122 -4
  10. vendor/otgs/icons/css/otgs-icons.css +196 -0
  11. vendor/otgs/icons/fonts/otgs-icons.eot +0 -0
  12. vendor/otgs/icons/fonts/otgs-icons.svg +62 -0
  13. vendor/otgs/icons/fonts/otgs-icons.ttf +0 -0
  14. vendor/otgs/icons/fonts/otgs-icons.woff +0 -0
  15. vendor/otgs/icons/icons-overview.html +456 -0
  16. vendor/otgs/icons/otgs-icons.php +20 -0
  17. vendor/otgs/icons/plugin-icons/toolset/access/icon-128x128.png +0 -0
  18. vendor/otgs/icons/plugin-icons/toolset/access/icon-256x256.png +0 -0
  19. vendor/otgs/icons/plugin-icons/toolset/access/icon.svg +25 -0
  20. vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-128x128.png +0 -0
  21. vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon-256x256.png +0 -0
  22. vendor/otgs/icons/plugin-icons/toolset/bootstrap/icon.svg +25 -0
  23. vendor/otgs/icons/plugin-icons/toolset/cred/icon-128x128.png +0 -0
  24. vendor/otgs/icons/plugin-icons/toolset/cred/icon-256x256.png +0 -0
  25. vendor/otgs/icons/plugin-icons/toolset/cred/icon.svg +24 -0
  26. vendor/otgs/icons/plugin-icons/toolset/layouts/icon-128x128.png +0 -0
  27. vendor/otgs/icons/plugin-icons/toolset/layouts/icon-256x256.png +0 -0
  28. vendor/otgs/icons/plugin-icons/toolset/layouts/icon.svg +24 -0
  29. vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-128x128.png +0 -0
  30. vendor/otgs/icons/plugin-icons/toolset/module-manager/icon-256x256.png +0 -0
  31. vendor/otgs/icons/plugin-icons/toolset/module-manager/icon.svg +24 -0
  32. vendor/otgs/icons/plugin-icons/toolset/packager/icon-128x128.png +0 -0
  33. vendor/otgs/icons/plugin-icons/toolset/packager/icon-256x256.png +0 -0
  34. vendor/otgs/icons/plugin-icons/toolset/packager/icon.svg +26 -0
  35. vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-128x128.png +0 -0
  36. vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon-256x256.png +0 -0
  37. vendor/otgs/icons/plugin-icons/toolset/ref-sites/icon.svg +25 -0
  38. vendor/otgs/icons/plugin-icons/toolset/support/icon-128x128.png +0 -0
  39. vendor/otgs/icons/plugin-icons/toolset/support/icon-256x256.png +0 -0
  40. vendor/otgs/icons/plugin-icons/toolset/support/icon.svg +24 -0
  41. vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-128x128.png +0 -0
  42. vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon-256x256.png +0 -0
  43. vendor/otgs/icons/plugin-icons/toolset/toolset-core/icon.svg +62 -0
  44. vendor/otgs/icons/plugin-icons/toolset/types/icon-128x128.png +0 -0
  45. vendor/otgs/icons/plugin-icons/toolset/types/icon-256x256.png +0 -0
  46. vendor/otgs/icons/plugin-icons/toolset/types/icon.svg +24 -0
  47. vendor/otgs/icons/plugin-icons/toolset/views/icon-128x128.png +0 -0
  48. vendor/otgs/icons/plugin-icons/toolset/views/icon-256x256.png +0 -0
  49. vendor/otgs/icons/plugin-icons/toolset/views/icon.svg +27 -0
  50. vendor/otgs/icons/plugin-icons/wpml/acfml/icon-128.x128.png +0 -0
  51. vendor/otgs/icons/plugin-icons/wpml/acfml/icon-256x256.png +0 -0
  52. vendor/otgs/icons/plugin-icons/wpml/acfml/icon.svg +43 -0
  53. vendor/otgs/icons/plugin-icons/wpml/bpml/icon-128x128.png +0 -0
  54. vendor/otgs/icons/plugin-icons/wpml/bpml/icon-256x256.png +0 -0
  55. vendor/otgs/icons/plugin-icons/wpml/bpml/icon.svg +40 -0
  56. vendor/otgs/icons/plugin-icons/wpml/gfml/icon-128x128.png +0 -0
  57. vendor/otgs/icons/plugin-icons/wpml/gfml/icon-256x256.png +0 -0
  58. vendor/otgs/icons/plugin-icons/wpml/gfml/icon.svg +39 -0
  59. vendor/otgs/icons/plugin-icons/wpml/wcml/icon-128x128.png +0 -0
  60. vendor/otgs/icons/plugin-icons/wpml/wcml/icon-256x256.png +0 -0
  61. vendor/otgs/icons/plugin-icons/wpml/wcml/icon.svg +38 -0
  62. vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-128.x128.png +0 -0
  63. vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon-256x256.png +0 -0
  64. vendor/otgs/icons/plugin-icons/wpml/wpml-all-import/icon.svg +39 -0
  65. vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-128x128.png +0 -0
  66. vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon-256x256.png +0 -0
  67. vendor/otgs/icons/plugin-icons/wpml/wpml-cms-nav/icon.svg +38 -0
  68. vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-128x128.png +0 -0
  69. vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon-256x256.png +0 -0
  70. vendor/otgs/icons/plugin-icons/wpml/wpml-core/icon.svg +34 -0
  71. vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-128x128.png +0 -0
  72. vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon-256x256.png +0 -0
  73. vendor/otgs/icons/plugin-icons/wpml/wpml-media/icon.svg +39 -0
  74. vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-128x128.png +0 -0
  75. vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon-256x256.png +0 -0
  76. vendor/otgs/icons/plugin-icons/wpml/wpml-sl/icon.svg +39 -0
  77. vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-128x128.png +0 -0
  78. vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon-256x256.png +0 -0
  79. vendor/otgs/icons/plugin-icons/wpml/wpml-st/icon.svg +39 -0
  80. vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-128x128.png +0 -0
  81. vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon-256x256.png +0 -0
  82. vendor/otgs/icons/plugin-icons/wpml/wpml-tm/icon.svg +39 -0
  83. vendor/otgs/installer/README.md +63 -0
  84. vendor/otgs/installer/changelog.txt +225 -0
  85. vendor/otgs/installer/dist/css/ui/styles.css +104 -0
  86. vendor/otgs/installer/dist/js/ui/app.js +701 -0
  87. vendor/otgs/installer/includes/class-installer-dependencies.php +291 -0
  88. vendor/otgs/installer/includes/class-installer-theme.php +979 -0
  89. vendor/otgs/installer/includes/class-installer-upgrader-skins.php +38 -0
  90. vendor/otgs/installer/includes/class-otgs-installer-factory.php +147 -0
  91. vendor/otgs/installer/includes/class-otgs-installer-filename-hooks.php +33 -0
  92. vendor/otgs/installer/includes/class-otgs-installer-icons.php +40 -0
  93. vendor/otgs/installer/includes/class-otgs-installer-php-functions.php +33 -0
  94. vendor/otgs/installer/includes/class-otgs-installer-plugins-page-notice.php +89 -0
  95. vendor/otgs/installer/includes/class-otgs-installer-subscription.php +81 -0
  96. vendor/otgs/installer/includes/class-otgs-installer-wp-components-hooks.php +78 -0
  97. vendor/otgs/installer/includes/class-otgs-installer-wp-components-sender.php +49 -0
  98. vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-ajax.php +49 -0
  99. vendor/otgs/installer/includes/class-otgs-installer-wp-components-setting-resources.php +43 -0
  100. vendor/otgs/installer/includes/class-otgs-installer-wp-components-storage.php +90 -0
  101. vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting-hooks.php +177 -0
  102. vendor/otgs/installer/includes/class-otgs-installer-wp-share-local-components-setting.php +34 -0
  103. vendor/otgs/installer/includes/class-otgs-twig-autoloader.php +40 -0
  104. vendor/otgs/installer/includes/class-translation-service-info.php +40 -0
  105. vendor/otgs/installer/includes/class-wp-installer-api.php +132 -0
  106. vendor/otgs/installer/includes/class-wp-installer-channels.php +282 -0
  107. vendor/otgs/installer/includes/class-wp-installer.php +2829 -0
  108. vendor/otgs/installer/includes/functions-core.php +18 -0
  109. vendor/otgs/installer/includes/functions-templates.php +16 -0
  110. vendor/otgs/installer/installer.php +60 -0
  111. vendor/otgs/installer/loader.php +155 -0
  112. vendor/otgs/installer/locale/installer-ar.mo +0 -0
  113. vendor/otgs/installer/locale/installer-de_DE.mo +0 -0
  114. vendor/otgs/installer/locale/installer-el.mo +0 -0
  115. vendor/otgs/installer/locale/installer-es_ES.mo +0 -0
  116. vendor/otgs/installer/locale/installer-fr_FR.mo +0 -0
  117. vendor/otgs/installer/locale/installer-he_IL.mo +0 -0
  118. vendor/otgs/installer/locale/installer-it_IT.mo +0 -0
  119. vendor/otgs/installer/locale/installer-ja.mo +0 -0
  120. vendor/otgs/installer/locale/installer-ko_KR.mo +0 -0
  121. vendor/otgs/installer/locale/installer-nl_NL.mo +0 -0
  122. vendor/otgs/installer/locale/installer-pl_PL.mo +0 -0
  123. vendor/otgs/installer/locale/installer-pt_BR.mo +0 -0
  124. vendor/otgs/installer/locale/installer-pt_PT.mo +0 -0
  125. vendor/otgs/installer/locale/installer-ru_RU.mo +0 -0
  126. vendor/otgs/installer/locale/installer-sv_SE.mo +0 -0
  127. vendor/otgs/installer/locale/installer-uk_UA.mo +0 -0
  128. vendor/otgs/installer/locale/installer-vi.mo +0 -0
  129. vendor/otgs/installer/locale/installer-zh_CN.mo +0 -0
  130. vendor/otgs/installer/locale/installer-zh_TW.mo +0 -0
  131. vendor/otgs/installer/locale/orig/installer.po +230 -0
  132. vendor/otgs/installer/phpcs.compatibility.xml +19 -0
  133. vendor/otgs/installer/phpcs.xml +17 -0
  134. vendor/otgs/installer/phpunit.xml +24 -0
  135. vendor/otgs/installer/repositories.xml +13 -0
  136. vendor/otgs/installer/res/css/admin.css +346 -0
  137. vendor/otgs/installer/res/css/tooltip/tooltip.css +1 -0
  138. vendor/otgs/installer/res/img/complete.png +0 -0
  139. vendor/otgs/installer/res/img/computer.png +0 -0
  140. vendor/otgs/installer/res/img/dn.gif +0 -0
  141. vendor/otgs/installer/res/img/dn2.gif +0 -0
  142. vendor/otgs/installer/res/img/globe.png +0 -0
  143. vendor/otgs/installer/res/img/icon_error.gif +0 -0
  144. vendor/otgs/installer/res/img/on.png +0 -0
  145. vendor/otgs/installer/res/img/spinner.gif +0 -0
  146. vendor/otgs/installer/res/js/admin.js +463 -0
  147. vendor/otgs/installer/res/js/channels.js +261 -0
  148. vendor/otgs/installer/res/js/iframeResizer.min.js +10 -0
  149. vendor/otgs/installer/res/js/installer_theme_install.js +97 -0
  150. vendor/otgs/installer/res/js/save-components-setting.js +29 -0
  151. vendor/otgs/installer/res/js/tooltip/tooltip.js +82 -0
  152. vendor/otgs/installer/src/js/ui/Switcher.js +44 -0
  153. vendor/otgs/installer/src/js/ui/UI.js +14 -0
  154. vendor/otgs/installer/src/js/ui/app.js +10 -0
  155. vendor/otgs/installer/src/package.json +55 -0
  156. vendor/otgs/installer/src/postcss.config.js +5 -0
  157. vendor/otgs/installer/src/scss/ui/styles.scss +141 -0
  158. vendor/otgs/installer/src/webpack.config.js +56 -0
  159. vendor/otgs/installer/templates/channel-selector.php +68 -0
  160. vendor/otgs/installer/templates/components-setting/commercial-tab.twig +7 -0
  161. vendor/otgs/installer/templates/components-setting/plugins-page.twig +9 -0
  162. vendor/otgs/installer/templates/components-setting/share-local-data-setting-radio.twig +66 -0
  163. vendor/otgs/installer/templates/components-setting/share-local-data-setting.twig +50 -0
  164. vendor/otgs/installer/templates/downloads-list-compact.php +80 -0
  165. vendor/otgs/installer/templates/downloads-list.php +109 -0
  166. vendor/otgs/installer/templates/products-compact.php +147 -0
  167. vendor/otgs/installer/templates/repository-listing.php +271 -0
  168. vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service-loader.php +36 -0
  169. vendor/otgs/installer/templates/template-service/class-otgs-installer-twig-template-service.php +27 -0
  170. vendor/otgs/installer/templates/template-service/interface-iotgs-installer-template-service.php +5 -0
  171. vendor/toolset/toolset-common/inc/toolset.assets.manager.class.php +15 -6
  172. vendor/toolset/toolset-common/loader.php +6 -1
  173. vendor/toolset/toolset-common/toolset-common-loader.php +2 -2
  174. vendor/toolset/types/admin.php +10 -0
  175. vendor/toolset/types/wpcf.php +8 -0
  176. 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 ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071::getLoader();
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 ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitddd6f71ce3d43f91bd17c1a0b9e5f071', '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\ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::getInitializer($loader));
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\ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequireddd6f71ce3d43f91bd17c1a0b9e5f071($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequireddd6f71ce3d43f91bd17c1a0b9e5f071($fileIdentifier, $file)
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 ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071
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 = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$prefixLengthsPsr4;
914
- $loader->prefixDirsPsr4 = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$prefixDirsPsr4;
915
- $loader->prefixesPsr0 = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$prefixesPsr0;
916
- $loader->classMap = ComposerStaticInitddd6f71ce3d43f91bd17c1a0b9e5f071::$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.0.0",
313
  "source": {
314
  "type": "git",
315
  "url": "ssh://git@git.onthegosystems.com:10022/toolset/toolset-common.git",
316
- "reference": "289283b3a015b6ed5d16ad478ee3dde8604e5933"
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-05-29T08:04:45+00:00",
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="&#97;" 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="&#98;" 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="&#99;" 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="&#100;" 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="&#101;" 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="&#102;" 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="&#103;" 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="&#105;" 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="&#106;" 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="&#107;" 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="&#108;" 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="&#110;" 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="&#111;" 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="&#112;" 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="&#113;" 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="&#115;" 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="&#116;" 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="&#117;" 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="&#119;" 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="&#120;" 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="&#121;" 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="&#122;" 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="&#65;" 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="&#66;" 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="&#104;" 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="&#109;" 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="&#114;" 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="&#67;" 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="&#68;" 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="&#69;" 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="&#70;" 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="&#71;" 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="&#72;" 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="&#73;" 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="&#74;" d="M232 104l-152 152 152 152m48-304l152 152-152 152"/>
45
+ <glyph glyph-name="wpml-media" unicode="&#75;" 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="&#76;" 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="&#77;" 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="&#78;" 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="&#79;" 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="&#80;" 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="&#81;" 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="&#82;" 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="&#83;" 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="&#84;" 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="&#85;" 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="&#118;" 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="&#86;" 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="&#87;" 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="&#88;" 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="&#89;" 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="&#90;" 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'], '&nbsp;&nbsp;<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'], '&nbsp;&nbsp;<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 + ' &raquo;<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="#">&nbsp;</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
+ &nbsp;<?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>&nbsp;</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; ?> />&nbsp;
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
+ &nbsp;
74
+ <label><input name="activate" type="checkbox" value="1" disabled="disabled" />&nbsp;<?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>&nbsp;</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>&nbsp;</th>
14
+ <th>&nbsp;</th>
15
+ <th>&nbsp;</th>
16
+ <th>&nbsp;</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; ?> />&nbsp;
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'] ) ): ?>&nbsp;<?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
+ &nbsp;
102
+ <label><input name="activate" type="checkbox" value="1" disabled="disabled" />&nbsp;<?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>&nbsp;&nbsp;
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>&nbsp;</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>&nbsp;
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( $instances[ $called_class ] ) ) {
305
- return $instances[ $called_class ];
306
  } else {
307
  if ( class_exists( $called_class ) ) {
308
- $instances[ $called_class ] = new $called_class();
309
 
310
- return $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,7 +323,16 @@ class Toolset_Assets_Manager {
323
  */
324
  public static function get_instance() {
325
  if( null === self::$instance ) {
326
- self::$instance = new self();
 
 
 
 
 
 
 
 
 
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
- $toolset_common_version = 280000;
 
 
 
 
 
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.0');
5
  }
6
 
7
  if ( ! defined('TOOLSET_COMMON_VERSION' ) ) {
8
- define( 'TOOLSET_COMMON_VERSION', '2.8.0' );
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