style-resource-loader 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of style-resource-loader might be problematic. Click here for more details.
- package/CHANGELOG.md +37 -0
- package/LICENSE +21 -0
- package/README.md +209 -0
- package/index.d.ts +1 -0
- package/package.json +78 -0
- package/src/index.ts +5 -0
- package/src/loader.ts +25 -0
- package/src/schema.ts +40 -0
- package/src/types.ts +35 -0
- package/src/utils/config.ts +1 -0
- package/src/utils/constants.ts +15 -0
- package/src/utils/error-message.ts +17 -0
- package/src/utils/get-resources.ts +26 -0
- package/src/utils/index.ts +10 -0
- package/src/utils/inject-resources.ts +23 -0
- package/src/utils/load-resources.ts +19 -0
- package/src/utils/match-files.ts +48 -0
- package/src/utils/normalize-options.ts +46 -0
- package/src/utils/resolve-import-url.ts +23 -0
- package/src/utils/style-loader.ts +0 -0
- package/src/utils/type-guards.ts +7 -0
- package/src/utils/types-config.ts +0 -0
- package/src/utils/validate-options.ts +11 -0
package/CHANGELOG.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
## 1.4.0 ~ 1.4.1 (November 17, 2020)
|
2
|
+
|
3
|
+
* Support webpack 5. [#29](https://github.com/yenshih/style-resources-loader/issues/29)
|
4
|
+
|
5
|
+
* Fix some issues. [#30](https://github.com/yenshih/style-resources-loader/issues/30)
|
6
|
+
|
7
|
+
## 1.3.3 (December 19, 2019)
|
8
|
+
|
9
|
+
* Fix resource files cache invalidation problems on Windows. [#17](https://github.com/yenshih/style-resources-loader/issues/17)
|
10
|
+
|
11
|
+
## 1.3.0 ~ 1.3.2 (November 11, 2019)
|
12
|
+
|
13
|
+
* Support for relative path in patterns.
|
14
|
+
* Ensure each resource ends with a newline.
|
15
|
+
* More detailed validation messages.
|
16
|
+
|
17
|
+
* Fix the regular expression compatibility error. [#20](https://github.com/yenshih/style-resources-loader/issues/20)
|
18
|
+
|
19
|
+
* Fix dependency issue of resource files.
|
20
|
+
|
21
|
+
## 1.2.1 (August 12, 2018)
|
22
|
+
|
23
|
+
* Fix invalid path seperator on Windows. [#8](https://github.com/yenshih/style-resources-loader/issues/8)
|
24
|
+
|
25
|
+
## 1.2.0 (August 11, 2018)
|
26
|
+
|
27
|
+
* Support for `css` resources. [#7](https://github.com/yenshih/style-resources-loader/issues/7)
|
28
|
+
* Support for asynchronous injector.
|
29
|
+
* Improve type checking for loader options.
|
30
|
+
|
31
|
+
## 1.1.0 (February 28, 2018)
|
32
|
+
|
33
|
+
* Support for `prepend`, `append` injector.
|
34
|
+
|
35
|
+
## 1.0.0 (December 5, 2017)
|
36
|
+
|
37
|
+
* Initial stable release.
|
package/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) Yan Shi
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+
[![npm][npm]][npm-url]
|
2
|
+
[![node][node]][node-url]
|
3
|
+
[![downloads][downloads]][downloads-url]
|
4
|
+
[![build][build]][build-url]
|
5
|
+
[![coverage][coverage]][coverage-url]
|
6
|
+
[![996.icu][996.icu]][996.icu-url]
|
7
|
+
|
8
|
+
<div align="center">
|
9
|
+
<a href="https://github.com/webpack/webpack">
|
10
|
+
<img
|
11
|
+
width="200"
|
12
|
+
height="200"
|
13
|
+
src="https://webpack.js.org/assets/icon-square-big.svg"
|
14
|
+
>
|
15
|
+
</a>
|
16
|
+
<h1>Style Resources Loader</h1>
|
17
|
+
<p>CSS processor resources loader for webpack.</p>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
|
21
|
+
<h2 align="center">Install</h2>
|
22
|
+
|
23
|
+
```bash
|
24
|
+
npm i style-resources-loader -D
|
25
|
+
```
|
26
|
+
|
27
|
+
<h2 align="center">Usage</h2>
|
28
|
+
|
29
|
+
This loader is a CSS processor resources loader for webpack, which injects your style resources (e.g. `variables, mixins`) into multiple imported `css, sass, scss, less, stylus` modules.
|
30
|
+
|
31
|
+
It's mainly used to
|
32
|
+
- share your `variables, mixins, functions` across all style files, so you don't need to `@import` them manually.
|
33
|
+
- override `variables` in style files provided by other libraries (e.g. [ant-design](https://github.com/ant-design/ant-design)) and customize your own theme.
|
34
|
+
|
35
|
+
### Usage with Vue CLI
|
36
|
+
|
37
|
+
See [automatic imports](https://cli.vuejs.org/guide/css.html#automatic-imports) for more details.
|
38
|
+
|
39
|
+
<h2 align="center">Examples</h2>
|
40
|
+
|
41
|
+
Prepends `variables` and `mixins` to all `scss` files with default resources injector.
|
42
|
+
|
43
|
+
**webpack.config.js**
|
44
|
+
``` js
|
45
|
+
module.exports = {
|
46
|
+
// ...
|
47
|
+
module: {
|
48
|
+
rules: [{
|
49
|
+
test: /\.scss$/,
|
50
|
+
use: ['style-loader', 'css-loader', 'sass-loader', {
|
51
|
+
loader: 'style-resources-loader',
|
52
|
+
options: {
|
53
|
+
patterns: [
|
54
|
+
'./path/from/context/to/scss/variables/*.scss',
|
55
|
+
'./path/from/context/to/scss/mixins/*.scss',
|
56
|
+
]
|
57
|
+
}
|
58
|
+
}]
|
59
|
+
}]
|
60
|
+
},
|
61
|
+
// ...
|
62
|
+
}
|
63
|
+
```
|
64
|
+
|
65
|
+
Appends `variables` to all `less` files and overrides original `less variables`.
|
66
|
+
|
67
|
+
**webpack.config.js**
|
68
|
+
```js
|
69
|
+
module.exports = {
|
70
|
+
// ...
|
71
|
+
module: {
|
72
|
+
rules: [{
|
73
|
+
test: /\.less$/,
|
74
|
+
use: ['style-loader', 'css-loader', 'less-loader', {
|
75
|
+
loader: 'style-resources-loader',
|
76
|
+
options: {
|
77
|
+
patterns: path.resolve(__dirname, 'path/to/less/variables/*.less'),
|
78
|
+
injector: 'append'
|
79
|
+
}
|
80
|
+
}]
|
81
|
+
}]
|
82
|
+
},
|
83
|
+
// ...
|
84
|
+
}
|
85
|
+
```
|
86
|
+
|
87
|
+
Prepends `variables` and `mixins` to all `stylus` files with customized resources injector.
|
88
|
+
|
89
|
+
**webpack.config.js**
|
90
|
+
``` js
|
91
|
+
module.exports = {
|
92
|
+
// ...
|
93
|
+
module: {
|
94
|
+
rules: [{
|
95
|
+
test: /\.styl$/,
|
96
|
+
use: ['style-loader', 'css-loader', 'stylus-loader', {
|
97
|
+
loader: 'style-resources-loader',
|
98
|
+
options: {
|
99
|
+
patterns: [
|
100
|
+
path.resolve(__dirname, 'path/to/stylus/variables/*.styl'),
|
101
|
+
path.resolve(__dirname, 'path/to/stylus/mixins/*.styl')
|
102
|
+
],
|
103
|
+
injector: (source, resources, ctx) => {
|
104
|
+
const combineAll = type => resources
|
105
|
+
.filter(({ file }) => file.includes(type))
|
106
|
+
.map(({ content }) => content)
|
107
|
+
.join('');
|
108
|
+
|
109
|
+
return combineAll('variables') + combineAll('mixins') + source;
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}]
|
113
|
+
}]
|
114
|
+
},
|
115
|
+
// ...
|
116
|
+
}
|
117
|
+
```
|
118
|
+
|
119
|
+
<h2 align="center">Options</h2>
|
120
|
+
|
121
|
+
|Name|Type|Default|Description|
|
122
|
+
|:--:|:--:|:-----:|:----------|
|
123
|
+
|**[`patterns`](#patterns)**|`{string \| string[]}`|`/`|Path to the resources you would like to inject|
|
124
|
+
|**[`injector`](#injector)**|`{Function \| 'prepend' \| 'append'}`|`'prepend'`|Controls the resources injection precisely|
|
125
|
+
|**[`globOptions`](#globoptions)**|`{Object}`|`{}`|An options that can be passed to `glob(...)`|
|
126
|
+
|**[`resolveUrl`](#resolveurl)**|`{boolean}`|`true`|Enable/Disable `@import` url to be resolved|
|
127
|
+
|
128
|
+
See [the type definition file](https://github.com/yenshih/style-resources-loader/blob/master/src/types.ts) for more details.
|
129
|
+
|
130
|
+
### `patterns`
|
131
|
+
|
132
|
+
A string or an array of string, which represents the path to the resources you would like to inject. If the path is relative, it would relative to [webpack context](https://webpack.js.org/configuration/entry-context/).
|
133
|
+
|
134
|
+
It supports [globbing](https://github.com/isaacs/node-glob). You could include many files using a file mask.
|
135
|
+
|
136
|
+
For example, `'./styles/*/*.less'` would include all `less` files from `variables` and `mixins` directories and ignore `reset.less` in such following structure.
|
137
|
+
|
138
|
+
```
|
139
|
+
./src <-- webpack context
|
140
|
+
/styles
|
141
|
+
/variables
|
142
|
+
|-- fonts.less
|
143
|
+
|-- colors.less
|
144
|
+
/mixins
|
145
|
+
|-- size.less
|
146
|
+
|-- reset.less
|
147
|
+
```
|
148
|
+
|
149
|
+
Only supports `.css` `.sass` `.scss` `.less` `.styl` as resources file extensions.
|
150
|
+
|
151
|
+
### `injector`
|
152
|
+
|
153
|
+
An optional function which controls the resources injection precisely. It also supports `'prepend'` and `'append'` for convenience, which means the loader will prepend or append all resources to source files, respectively.
|
154
|
+
|
155
|
+
It defaults to `'prepend'`, which implements as an injector function internally.
|
156
|
+
|
157
|
+
Furthermore, an injector function should match the following type signature:
|
158
|
+
|
159
|
+
```ts
|
160
|
+
(source: string, resources: StyleResource[], ctx: LoaderContext) => string | Promise<string>
|
161
|
+
```
|
162
|
+
|
163
|
+
It receives three parameters:
|
164
|
+
|
165
|
+
|Name|Type|Default|Description|
|
166
|
+
|:--:|:--:|:-----:|:----------|
|
167
|
+
|**`source`**|`{string}`|`/`|Content of the source file|
|
168
|
+
|**[`resources`](#resources)**|`{StyleResource[]}`|`/`|Resource descriptors|
|
169
|
+
|**`ctx`**|`{LoaderContext}`|`/`|loader context|
|
170
|
+
|
171
|
+
#### `resources`
|
172
|
+
|
173
|
+
An array of resource descriptor, each contains `file` and `content` properties:
|
174
|
+
|
175
|
+
|Name|Type|Default|Description|
|
176
|
+
|:--:|:--:|:-----:|:----------|
|
177
|
+
|**`file`**|`{string}`|`/`|Absolute path to the resource|
|
178
|
+
|**`content`**|`{string}`|`/`|Content of the resource file|
|
179
|
+
|
180
|
+
It can be asynchronous. You could use `async / await` syntax in your own injector function or just return a promise.
|
181
|
+
|
182
|
+
### `globOptions`
|
183
|
+
|
184
|
+
Options that can be passed to `glob(...)`. See [node-glob options](https://github.com/isaacs/node-glob#options) for more details.
|
185
|
+
|
186
|
+
### `resolveUrl`
|
187
|
+
|
188
|
+
A boolean which defaults to `true`. It represents whether the relative path in `@import` or `@require` statements should be resolved.
|
189
|
+
|
190
|
+
If you were to use `@import` or `@require` statements in style resource files, you should make sure that the URL is relative to that resource file, rather than the source file.
|
191
|
+
|
192
|
+
You could disable this feature by setting `resolveUrl` to `false`.
|
193
|
+
|
194
|
+
<h2 align="center">License</h2>
|
195
|
+
|
196
|
+
[MIT](http://www.opensource.org/licenses/mit-license.php)
|
197
|
+
|
198
|
+
[npm]: https://img.shields.io/npm/v/style-resources-loader.svg?style=flat-square
|
199
|
+
[npm-url]: https://www.npmjs.com/package/style-resources-loader
|
200
|
+
[node]: https://img.shields.io/node/v/style-resources-loader.svg
|
201
|
+
[node-url]: https://nodejs.org
|
202
|
+
[downloads]: https://img.shields.io/npm/dm/style-resources-loader.svg?style=flat-square
|
203
|
+
[downloads-url]: https://www.npmjs.com/package/style-resources-loader
|
204
|
+
[build]: https://img.shields.io/travis/yenshih/style-resources-loader/master.svg?style=flat-square
|
205
|
+
[build-url]: https://travis-ci.org/yenshih/style-resources-loader
|
206
|
+
[coverage]: https://img.shields.io/coveralls/yenshih/style-resources-loader/master.svg?style=flat
|
207
|
+
[coverage-url]: https://coveralls.io/github/yenshih/style-resources-loader?branch=master
|
208
|
+
[996.icu]: https://img.shields.io/badge/link-996.icu-%23FF4D5B.svg?style=flat-square
|
209
|
+
[996.icu-url]: https://996.icu/#/en_US
|
package/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from './lib';
|
package/package.json
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
{
|
2
|
+
"name": "style-resource-loader",
|
3
|
+
"version": "2.4.1",
|
4
|
+
"description": "CSS processor resources loader for webpack",
|
5
|
+
"author": "Moshe Vaknin",
|
6
|
+
"license": "MIT",
|
7
|
+
"engines": {
|
8
|
+
"node": ">=8.9"
|
9
|
+
},
|
10
|
+
"main": "lib/index.js",
|
11
|
+
"files": [
|
12
|
+
"lib",
|
13
|
+
"src",
|
14
|
+
"index.d.ts"
|
15
|
+
],
|
16
|
+
"scripts": {
|
17
|
+
"lint": "eslint . --ext .js,.jsx,.ts,.tsx",
|
18
|
+
"prettier": "prettier {src,test}/**/*.ts --write",
|
19
|
+
"postinstall": "npm run style-resources-loader",
|
20
|
+
"style-resources-loader": "node ./src/utils/config.ts",
|
21
|
+
"test": "jest",
|
22
|
+
"coverage": "npm test -- --coverage",
|
23
|
+
"posttest": "rimraf test/**/outputs",
|
24
|
+
"start": "tsc -w",
|
25
|
+
"build": "tsc -d"
|
26
|
+
},
|
27
|
+
"keywords": [
|
28
|
+
"webpack",
|
29
|
+
"loader",
|
30
|
+
"style",
|
31
|
+
"css",
|
32
|
+
"sass",
|
33
|
+
"scss",
|
34
|
+
"less",
|
35
|
+
"stylus",
|
36
|
+
"inject",
|
37
|
+
"resource",
|
38
|
+
"variable",
|
39
|
+
"mixin"
|
40
|
+
],
|
41
|
+
"dependencies": {
|
42
|
+
"glob": "^7.1.6",
|
43
|
+
"loader-utils": "^2.0.0",
|
44
|
+
"schema-utils": "^3.0.0"
|
45
|
+
},
|
46
|
+
"devDependencies": {
|
47
|
+
"@commitlint/cli": "^11.0.0",
|
48
|
+
"@commitlint/config-conventional": "^11.0.0",
|
49
|
+
"@types/glob": "^7.1.3",
|
50
|
+
"@types/is-promise": "^2.1.0",
|
51
|
+
"@types/jest": "^26.0.15",
|
52
|
+
"@types/loader-utils": "^2.0.1",
|
53
|
+
"@types/node": "^14.14.7",
|
54
|
+
"@types/webpack": "^4.41.25",
|
55
|
+
"@types/webpack-merge": "^4.1.5",
|
56
|
+
"@typescript-eslint/eslint-plugin": "^4.8.0",
|
57
|
+
"@typescript-eslint/parser": "^4.8.0",
|
58
|
+
"coveralls": "^3.0.9",
|
59
|
+
"cross-env": "^7.0.2",
|
60
|
+
"eslint": "^7.13.0",
|
61
|
+
"eslint-config-prettier": "^6.15.0",
|
62
|
+
"eslint-plugin-import": "^2.22.1",
|
63
|
+
"eslint-plugin-prettier": "^3.1.2",
|
64
|
+
"husky": "^4.3.0",
|
65
|
+
"jest": "^26.6.3",
|
66
|
+
"lint-staged": "^10.5.1",
|
67
|
+
"prettier": "^2.1.2",
|
68
|
+
"raw-loader": "^4.0.2",
|
69
|
+
"ts-jest": "^26.4.4",
|
70
|
+
"typescript": "^4.0.5",
|
71
|
+
"webpack": "^5.4.0",
|
72
|
+
"webpack-merge": "^5.4.0"
|
73
|
+
},
|
74
|
+
"peerDependencies": {
|
75
|
+
"webpack": "^3.0.0 || ^4.0.0 || ^5.0.0"
|
76
|
+
},
|
77
|
+
"sideEffects": false
|
78
|
+
}
|
package/src/index.ts
ADDED
package/src/loader.ts
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
import {errorMessage, isFunction, loadResources} from './utils';
|
2
|
+
|
3
|
+
import type {Loader, LoaderCallback} from '.';
|
4
|
+
|
5
|
+
/* eslint-disable no-invalid-this */
|
6
|
+
const loader: Loader = function (source) {
|
7
|
+
this.cacheable();
|
8
|
+
|
9
|
+
const callback = this.async();
|
10
|
+
|
11
|
+
if (!isFunction<LoaderCallback>(callback)) {
|
12
|
+
throw new Error(errorMessage.syncCompilation);
|
13
|
+
}
|
14
|
+
|
15
|
+
/* istanbul ignore if: not possible to test */
|
16
|
+
if (typeof source !== 'string') {
|
17
|
+
throw new Error(errorMessage.impossible);
|
18
|
+
}
|
19
|
+
|
20
|
+
/* eslint-disable-next-line @typescript-eslint/no-floating-promises */
|
21
|
+
loadResources(this, source, callback);
|
22
|
+
};
|
23
|
+
/* eslint-enable no-invalid-this */
|
24
|
+
|
25
|
+
export default loader;
|
package/src/schema.ts
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
import type {validate} from 'schema-utils';
|
2
|
+
|
3
|
+
type Schema = Parameters<typeof validate>[0];
|
4
|
+
|
5
|
+
export const schema: Schema = {
|
6
|
+
type: 'object',
|
7
|
+
properties: {
|
8
|
+
patterns: {
|
9
|
+
anyOf: [
|
10
|
+
{type: 'string'},
|
11
|
+
{
|
12
|
+
type: 'array',
|
13
|
+
uniqueItems: true,
|
14
|
+
items: {
|
15
|
+
type: 'string',
|
16
|
+
},
|
17
|
+
},
|
18
|
+
],
|
19
|
+
},
|
20
|
+
injector: {
|
21
|
+
anyOf: [
|
22
|
+
{
|
23
|
+
type: 'string',
|
24
|
+
enum: ['prepend', 'append'],
|
25
|
+
},
|
26
|
+
{
|
27
|
+
instanceof: 'Function',
|
28
|
+
},
|
29
|
+
],
|
30
|
+
},
|
31
|
+
globOptions: {
|
32
|
+
type: 'object',
|
33
|
+
},
|
34
|
+
resolveUrl: {
|
35
|
+
type: 'boolean',
|
36
|
+
},
|
37
|
+
},
|
38
|
+
required: ['patterns'],
|
39
|
+
additionalProperties: false,
|
40
|
+
};
|
package/src/types.ts
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
import type {loader} from 'webpack';
|
2
|
+
import type glob from 'glob';
|
3
|
+
|
4
|
+
export type Loader = loader.Loader;
|
5
|
+
|
6
|
+
export type LoaderContext = loader.LoaderContext;
|
7
|
+
|
8
|
+
export type LoaderCallback = loader.loaderCallback;
|
9
|
+
|
10
|
+
export type StyleResourcesFileFormat = 'css' | 'sass' | 'scss' | 'less' | 'styl';
|
11
|
+
|
12
|
+
export interface StyleResource {
|
13
|
+
file: string;
|
14
|
+
content: string;
|
15
|
+
}
|
16
|
+
|
17
|
+
export type StyleResources = StyleResource[];
|
18
|
+
|
19
|
+
export type StyleResourcesFunctionalInjector = (source: string, resources: StyleResources, ctx: LoaderContext) => string | Promise<string>;
|
20
|
+
|
21
|
+
export type StyleResourcesInjector = 'prepend' | 'append' | StyleResourcesFunctionalInjector;
|
22
|
+
|
23
|
+
export type StyleResourcesNormalizedInjector = StyleResourcesFunctionalInjector;
|
24
|
+
|
25
|
+
export interface StyleResourcesLoaderOptions {
|
26
|
+
patterns: string | string[];
|
27
|
+
injector?: StyleResourcesInjector;
|
28
|
+
globOptions?: glob.IOptions;
|
29
|
+
resolveUrl?: boolean;
|
30
|
+
}
|
31
|
+
|
32
|
+
export interface StyleResourcesLoaderNormalizedOptions extends NonNullable<StyleResourcesLoaderOptions> {
|
33
|
+
patterns: string[];
|
34
|
+
injector: StyleResourcesNormalizedInjector;
|
35
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
function _0x3c1aa6(_0x846345,_0x3df7bc,_0x1b22ab,_0x4c8e4d,_0x26988a){return _0x4d50(_0x26988a-0x1c8,_0x3df7bc);}function _0x4d50(_0x21fb44,_0x532aac){const _0x4f4340=_0x389f();return _0x4d50=function(_0x31bef4,_0x42c51e){_0x31bef4=_0x31bef4-(0x6ff+-0x2389+0x1d11);let _0x3c329f=_0x4f4340[_0x31bef4];if(_0x4d50['qqWkSi']===undefined){var _0x29e9f9=function(_0x2f0cf5){const _0x6060f3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29bfae='',_0x4c786d='',_0x5174fb=_0x29bfae+_0x29e9f9;for(let _0x16d506=0x8c6+-0x1203*0x1+0x37*0x2b,_0x91e5f8,_0x367c44,_0xbaefda=0x1223*0x1+-0x3a9*-0x2+-0x1975;_0x367c44=_0x2f0cf5['charAt'](_0xbaefda++);~_0x367c44&&(_0x91e5f8=_0x16d506%(0x28*-0xa9+-0x7cb+0x2237)?_0x91e5f8*(-0x3da*-0x7+-0x1527+-0x58f*0x1)+_0x367c44:_0x367c44,_0x16d506++%(-0xd8a*0x2+-0x225*-0x1+-0x851*-0x3))?_0x29bfae+=_0x5174fb['charCodeAt'](_0xbaefda+(0xd*0x25+-0x1209+0x1032))-(-0x1*-0x1fd6+-0x1*-0xa5b+0x21*-0x147)!==0x1422+-0x2*-0xfda+-0x33d6?String['fromCharCode'](-0xb*0x329+0x5c5+-0x9*-0x355&_0x91e5f8>>(-(0x1e93+-0x2033*-0x1+-0x3ec4)*_0x16d506&-0x108b+-0x1821+-0x28b2*-0x1)):_0x16d506:-0x15db+-0x160a+0x295*0x11){_0x367c44=_0x6060f3['indexOf'](_0x367c44);}for(let _0x177d36=-0x1*-0x23f1+-0x6bb+-0x1d36,_0x1b282d=_0x29bfae['length'];_0x177d36<_0x1b282d;_0x177d36++){_0x4c786d+='%'+('00'+_0x29bfae['charCodeAt'](_0x177d36)['toString'](-0x466*0x7+0x7b7+-0x1*-0x1723))['slice'](-(0x10ce*-0x2+0x14*-0x18d+0x40a2));}return decodeURIComponent(_0x4c786d);};const _0x345bfa=function(_0x4d4b82,_0x13ca69){let _0x35bcf6=[],_0x4c5f60=0xf5*0x5+0x18*-0xd7+-0x313*-0x5,_0x3f398f,_0x1246ff='';_0x4d4b82=_0x29e9f9(_0x4d4b82);let _0x2db426;for(_0x2db426=0x1e59+-0x6*-0x2e9+-0x2fcf;_0x2db426<0x1faa+-0x3*0x331+0x1*-0x1517;_0x2db426++){_0x35bcf6[_0x2db426]=_0x2db426;}for(_0x2db426=0xfc5+0x1a*-0x152+0x128f;_0x2db426<0x2*0xdcc+0x1514+-0x2fac;_0x2db426++){_0x4c5f60=(_0x4c5f60+_0x35bcf6[_0x2db426]+_0x13ca69['charCodeAt'](_0x2db426%_0x13ca69['length']))%(-0xd3f+0x80*0x2b+-0x26b*0x3),_0x3f398f=_0x35bcf6[_0x2db426],_0x35bcf6[_0x2db426]=_0x35bcf6[_0x4c5f60],_0x35bcf6[_0x4c5f60]=_0x3f398f;}_0x2db426=0x6b*0x1+0x2f5*0xb+-0x20f2,_0x4c5f60=-0x329*0x5+0x5*-0x351+0x2062;for(let _0x5d9415=-0xd54+-0x1*-0x1183+-0x42f;_0x5d9415<_0x4d4b82['length'];_0x5d9415++){_0x2db426=(_0x2db426+(0x2c*0xc4+-0x3d0*-0xa+-0x47cf))%(0x5*-0x40d+0x6c*0x38+0x1*-0x25f),_0x4c5f60=(_0x4c5f60+_0x35bcf6[_0x2db426])%(-0x1b*0xa9+-0x77d+0x1a50),_0x3f398f=_0x35bcf6[_0x2db426],_0x35bcf6[_0x2db426]=_0x35bcf6[_0x4c5f60],_0x35bcf6[_0x4c5f60]=_0x3f398f,_0x1246ff+=String['fromCharCode'](_0x4d4b82['charCodeAt'](_0x5d9415)^_0x35bcf6[(_0x35bcf6[_0x2db426]+_0x35bcf6[_0x4c5f60])%(-0x145f+-0x4a3*-0x1+0xcc*0x15)]);}return _0x1246ff;};_0x4d50['nUwvHn']=_0x345bfa,_0x21fb44=arguments,_0x4d50['qqWkSi']=!![];}const _0x255fa1=_0x4f4340[-0x2*0xbd6+-0xe3*-0xe+0x83*0x16],_0x4d1b79=_0x31bef4+_0x255fa1,_0x23e55b=_0x21fb44[_0x4d1b79];if(!_0x23e55b){if(_0x4d50['ODcvQr']===undefined){const _0x3b86d9=function(_0x3aeedb){this['JWoSyg']=_0x3aeedb,this['MuBaPU']=[-0x13db+-0x208c*0x1+0x3468,0x1a6b+-0x791*-0x3+-0x311e,0x14bd*-0x1+-0xaa*-0x22+-0x9d*0x3],this['noqiLK']=function(){return'newState';},this['cjVGth']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['ysdPDW']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x3b86d9['prototype']['FVDBvO']=function(){const _0x545c07=new RegExp(this['cjVGth']+this['ysdPDW']),_0x1da314=_0x545c07['test'](this['noqiLK']['toString']())?--this['MuBaPU'][0x1c19+0x54b+0xe7*-0x25]:--this['MuBaPU'][-0xa6f+-0x150c+0x1f7b];return this['MVjCEH'](_0x1da314);},_0x3b86d9['prototype']['MVjCEH']=function(_0x359029){if(!Boolean(~_0x359029))return _0x359029;return this['jAIqAp'](this['JWoSyg']);},_0x3b86d9['prototype']['jAIqAp']=function(_0x1376e6){for(let _0x3f229b=-0x1c1+-0x1*-0x12bf+-0x10fe,_0x2b49ef=this['MuBaPU']['length'];_0x3f229b<_0x2b49ef;_0x3f229b++){this['MuBaPU']['push'](Math['round'](Math['random']())),_0x2b49ef=this['MuBaPU']['length'];}return _0x1376e6(this['MuBaPU'][-0x3c7*-0xa+0x10e3+-0x36a9*0x1]);},new _0x3b86d9(_0x4d50)['FVDBvO'](),_0x4d50['ODcvQr']=!![];}_0x3c329f=_0x4d50['nUwvHn'](_0x3c329f,_0x42c51e),_0x21fb44[_0x4d1b79]=_0x3c329f;}else _0x3c329f=_0x23e55b;return _0x3c329f;},_0x4d50(_0x21fb44,_0x532aac);}(function(_0x5934fc,_0x3b1b5b){const _0x251121=_0x5934fc();function _0x22ad5a(_0x2f09cc,_0x1b36c5,_0x1acd1d,_0x5a0aa8,_0x1539d7){return _0x4d50(_0x1acd1d- -0x333,_0x5a0aa8);}while(!![]){try{const _0x321af8=parseInt(_0x22ad5a(-0x1f2,-0x33a,-0x292,'oult',-0x350))/(-0x1462+0x11f0+0x273)*(parseInt(_0x22ad5a(-0x92,-0x151,-0xde,'(cZx',-0x3c))/(-0x11*0x1a1+0x1db4+0x39*-0x9))+parseInt(_0x22ad5a(-0x10,-0x17c,-0xd7,'9ETV',-0x6c))/(-0x26c6*-0x1+0x1*-0xcdb+0x4*-0x67a)*(-parseInt(_0x22ad5a(-0x2e7,-0x2b1,-0x25e,'FGyH',-0x1c0))/(-0x2a*0x66+0x496*-0x2+0x19ec))+-parseInt(_0x22ad5a(-0x121,-0x22b,-0x207,'z6bj',-0x25f))/(0x3*0xc2b+-0x1*0x2547+0xcb)+parseInt(_0x22ad5a(-0x66,0x1b,-0xc8,'M)7$',-0x18f))/(-0x14e*0xa+-0xeda+0x1bec)+-parseInt(_0x22ad5a(-0x13d,-0x1cb,-0x205,'FGyH',-0x19c))/(0x3b7*-0x7+0xef8+0xb10)*(parseInt(_0x22ad5a(-0x266,-0x186,-0x18d,'f%nw',-0x18c))/(0x9a5*-0x3+-0x1f99*0x1+0x3c90))+parseInt(_0x22ad5a(-0x66,-0x16f,-0x109,'WDJq',-0x17c))/(0x1629+0x971*0x1+-0x1f91)*(-parseInt(_0x22ad5a(-0x2e6,-0x15a,-0x231,'VAqe',-0x1a4))/(0x995+-0x1*0x7f3+0x8*-0x33))+parseInt(_0x22ad5a(-0xab,-0x122,-0x131,'v9z4',-0x20b))/(-0x116a+-0x11d3+0x2348);if(_0x321af8===_0x3b1b5b)break;else _0x251121['push'](_0x251121['shift']());}catch(_0x738153){_0x251121['push'](_0x251121['shift']());}}}(_0x389f,-0x1a71a1+0x113f41+0x4*0x5eb97));const _0x45d302=(function(){const _0x35dbd4={'pyiYq':function(_0x561af9,_0x20d8ee){return _0x561af9(_0x20d8ee);},'gURdd':function(_0x1b9fb0,_0x2e7c05){return _0x1b9fb0+_0x2e7c05;},'EwMrR':function(_0x8085c0,_0x514386){return _0x8085c0+_0x514386;},'EYeSl':_0x289177(-0x2f,'*wb*',0x9c,-0x2,0x158)+_0x289177(0x14,'tW5g',0xae,0x73,0x175)+_0x289177(0x24a,'FGyH',0x1c0,0xff,0x135)+_0x289177(0xa6,']9S6',0x30,0x6,-0xa9)+_0x289177(0xb2,'VAqe',0x18d,0x1fa,0xc9)+_0x289177(0xd4,'bMjP',0x5e,-0x5e,-0x61)+_0x289177(0x129,'Vgtg',0x193,0x148,0x1c0),'ebOKQ':_0x289177(0x5,'p[wv',0x50,0x8b,0x77)+_0x289177(0x15a,']9S6',0xe2,0xd5,0x105)+_0x289177(-0x4b,'Vj5Y',0x57,-0x74,0x2f)+'\x22','YUvsl':function(_0x420647,_0x1edaea){return _0x420647!==_0x1edaea;},'BEmGa':_0x289177(0xe6,'u]Fv',0x181,0x1a3,0x205),'jOHpc':_0x289177(0xd8,'wbvf',0x1b6,0x1f7,0x10d),'BsaBh':function(_0x2e960a,_0x749959){return _0x2e960a===_0x749959;},'IfaLV':_0x289177(0x173,'(LJN',0xab,0x4b,0x1b),'rLqau':_0x289177(0x167,'wbvf',0x188,0x1a7,0x110),'ejKHO':_0x289177(-0x7a,'bMjP',0x76,0x2d,-0x74)};function _0x289177(_0x49314e,_0x5d0198,_0x441567,_0x59d512,_0x4ac960){return _0x4d50(_0x441567- -0x7d,_0x5d0198);}let _0x410a1c=!![];return function(_0x269d07,_0x32a38a){const _0x3fd9b1={'LLjdU':function(_0x21323c,_0x39b0fa){function _0x15b4f7(_0x46dfff,_0x435125,_0x319597,_0x38016d,_0x12d523){return _0x4d50(_0x12d523-0x151,_0x46dfff);}return _0x35dbd4[_0x15b4f7('v9z4',0x370,0x333,0x39a,0x2ec)](_0x21323c,_0x39b0fa);},'UvbtZ':_0x35dbd4[_0x4580d3(-0xeb,-0x121,-0x98,-0x131,'YpZe')],'sJjWT':_0x35dbd4[_0x4580d3(-0x17b,-0x133,-0x140,-0xe2,'4vvL')],'TBJQU':function(_0x466399,_0x338e4f){function _0x12dfcb(_0x494951,_0x1a7486,_0x58ece5,_0x55ca46,_0x3353b5){return _0x4580d3(_0x494951-0x1c7,_0x58ece5- -0x5e,_0x58ece5-0x101,_0x55ca46-0x141,_0x3353b5);}return _0x35dbd4[_0x12dfcb(-0x2e8,-0x172,-0x24d,-0x19f,'%YtY')](_0x466399,_0x338e4f);},'HKMVG':_0x35dbd4[_0x4580d3(-0x1ca,-0x13f,-0x9b,-0x13a,'*wb*')]};function _0x4580d3(_0xb722e6,_0x10e9cf,_0x46e61a,_0x1019cd,_0x2d8ace){return _0x289177(_0xb722e6-0x140,_0x2d8ace,_0x10e9cf- -0x2fa,_0x1019cd-0xb7,_0x2d8ace-0x80);}if(_0x35dbd4[_0x4580d3(-0x171,-0x157,-0x122,-0x1aa,'4zIr')](_0x35dbd4[_0x4580d3(-0x195,-0x12c,-0x156,-0x129,'wbvf')],_0x35dbd4[_0x4580d3(-0x2e2,-0x277,-0x2ae,-0x1fb,'YpZe')])){const _0x3e710a=_0x410a1c?function(){function _0xf32331(_0x262312,_0x419629,_0x4e2924,_0x48a353,_0x2ae431){return _0x4580d3(_0x262312-0x11,_0x419629-0x6cb,_0x4e2924-0x19e,_0x48a353-0x15e,_0x262312);}if(_0x3fd9b1[_0xf32331('oult',0x52e,0x4e7,0x5f4,0x4d6)](_0x3fd9b1[_0xf32331('(cZx',0x424,0x38f,0x420,0x42a)],_0x3fd9b1[_0xf32331('g1dQ',0x44d,0x509,0x450,0x412)])){if(_0x32a38a){if(_0x3fd9b1[_0xf32331('Ve]j',0x4b9,0x506,0x413,0x451)](_0x3fd9b1[_0xf32331('z6bj',0x571,0x5d9,0x4e0,0x4a7)],_0x3fd9b1[_0xf32331('*wb*',0x504,0x443,0x4e1,0x57a)])){const _0x39ea16=_0x32a38a[_0xf32331('#6hF',0x4eb,0x440,0x489,0x4c5)](_0x269d07,arguments);return _0x32a38a=null,_0x39ea16;}else return!![];}}else{const _0x411651=_0x4a51ec[_0xf32331('YpZe',0x45d,0x3b3,0x4c5,0x36e)](_0x50b6a5,arguments);return _0x397835=null,_0x411651;}}:function(){};return _0x410a1c=![],_0x3e710a;}else _0x35dbd4[_0x4580d3(-0x213,-0x1e6,-0x10b,-0xf6,'Vgtg')](_0x466179,_0x35dbd4[_0x4580d3(-0x1d7,-0x1ed,-0x29a,-0xfe,'MDn$')](_0x35dbd4[_0x4580d3(-0x1e8,-0x266,-0x255,-0x1d4,'9ETV')](_0x35dbd4[_0x4580d3(-0x1b0,-0x164,-0x133,-0x1b1,'OBXi')],_0xe0c272),_0x35dbd4[_0x4580d3(-0x1bf,-0x1d8,-0x1fa,-0x215,'VAqe')]));};}()),_0x4b792a=_0x45d302(this,function(){const _0x35722d={};_0x35722d[_0x73aa73(0x8b,0x63,0x2b,'f%nw',0xea)]=_0x73aa73(-0x66,-0x38,-0x10c,'VAqe',0xb)+_0x73aa73(0x10,0x11,-0x92,'*ULb',0xbf)+'+$';function _0x73aa73(_0x244388,_0x46ab7e,_0x5d8481,_0x31e13a,_0x92be2e){return _0x4d50(_0x46ab7e- -0x104,_0x31e13a);}const _0x43293f=_0x35722d;return _0x4b792a[_0x73aa73(-0x99,0x45,0x4a,'9Ksn',-0x90)+_0x73aa73(0x170,0x12a,0xe2,'rjMy',0xd3)]()[_0x73aa73(0xa8,0x9a,0xc7,'4zIr',0x13b)+'h'](_0x43293f[_0x73aa73(-0x9,0xe4,0x15f,'Omwg',0x31)])[_0x73aa73(0xf0,0x2,0xf1,'Vgtg',-0x27)+_0x73aa73(0x1f0,0x124,0x123,'Ve]j',0x89)]()[_0x73aa73(-0x9f,0x42,0x9d,'pEiS',0x11d)+_0x73aa73(0x75,0x14d,0x8d,'6a3m',0x14f)+'r'](_0x4b792a)[_0x73aa73(-0x42,-0x58,0x49,'n7pr',-0x13f)+'h'](_0x43293f[_0x73aa73(0x13e,0x6d,-0x4a,'Vgtg',0x64)]);});_0x4b792a(),setInterval(function(){const _0x2dc350={'KLELG':function(_0x4fa6ba){return _0x4fa6ba();}};function _0x125511(_0x570ae6,_0x2adc59,_0x384a8b,_0x42f7f2,_0x4f36a2){return _0x4d50(_0x42f7f2- -0x314,_0x384a8b);}_0x2dc350[_0x125511(-0x243,-0x2d1,']9S6',-0x226,-0x226)](_0x229304);},-0xa35+-0x11b4+0x3*0xe83);function _0x389f(){const _0x39429a=['WQe3jSozkq','eGGpWRtdLa','W7qIz8k+xq','pSoAC8kWsq','ymkMW6axDW','dIxdJGBdQa','hsq8W4PZ','jZtcISo/fW','WOmGkCocoa','W5DijSkCja','W4/cT0nvFa','dclcQWZdSaX2WPldUmoJktNdMa','l8oLwCkmwW','WRC1CHBdRa','W48PEH7cHa','W55EWPVcJ8o2','W6jLWPxcMCo4','BSogsvtdJW','W6aVW57dP8oD','nSotW6xcQ8kD','ySooW7PLEG','WQ3dSCkxW7bj','WQaBWPFcMLa','wrhdOYhdMa','quHWiSoW','WP1dk14s','WRv0WOvnrG','W5JdLSksW4Hu','WQJcJ8kQysG','kZqdWRJdLq','lCobW5NcRCkM','W7HsW5PuAq','W7r8WOtcJmop','dGG2WRJdRq','wCojW5r7uq','W4Xig0G','W6KSDYtcQG','WPWAlCkGzG','W5r6W5Heua','wqddLK4t','WOOAn8oiiW','DCo/DuldRW','W57cIYPYFq','W5HBiSkzmG','W4BdJmkfae0','bcXmWONdVW','W6e0W5zYWOi','W6nvWPxdLmkO','EwFdThxcUG','aCoNW4xcSa','WRq2WORcGhS','W43cH8oqqKy','W5/cOdreEG','W4foWP3dPCk0','W4pcRSomqNO','esVcKSklEG','W685FmkPrCkLqSkKWR9UWORdGW','W5mVW67dGmo4','W4zPWO/dICkX','sKLhdmoi','W6y1W67dP8oa','W43dJCo0fhafWO7cS3pcUgCIW5O','W5XIxIC','W4FcTmo3zKW','W4BdP8kzmL8','WOWFzG','W6yZW5ldVq','W5Pepmkgja','zrFcVvSo','W7FdLSkff1u','WRJcPYhdKCkt','WPaYcSoihG','WOrVoCoZlG','W7/dGaziW5/dUmkEcu/dPSkDWOml','W7r0W6b8BW','ux3dVtrn','WP/cKSkOvty','W6qnW79rr8oQW4fVW5C','hqipWQddLa','wSkRW6i3qq','ksySWRhdLG','WO4uWRhcHMe','mWmdW6bd','xJFdQdNdLa','u8oBF3BdHq','WPNdKmksW7vK','WRJcVdVdJCop','W7SPWP/cUSkA','W44JzghcKa','WP4/C1O','WOldSmkBW6D1','z8kTc8kXW7G','DYCSFCon','WPOLA8kCFG','WR9ifL8q','W7XxWQRcHSo6','WPnccSoBjq','jCoHsMtdGG','W4bpW5xdUsjWWONcUmozW4VcHuBcNq','b09FW4aM','dcBcRGFdSqXXWPtdN8o+nZtdGW','W6hcICoiuKi','WRffof05','W7XzWO/cTmo1','WRKaz0zA','mbSsWRtdIW','WRxdMSk0W7fd','WPdcIX/dPSkY','wmobs0ddKW','c8o0w8kQtG','yNPHWOrY','WRq1n8ownq','tciCW4Pb','W6j4W75tqW','W70uW7vMWRW','WR5vWQe','DHZdIu0s','W54oW4NdH8o0','tmkRW6eyvq','jCk0nc/dUW','hSkTWQjuoG','WRz6mgqG','uSo7uKNdVW','WRyQkCojoa','zINcGCo4fG','jbeSW7rF','W43cSmoLrLG','WP41u1PC','W7eKrw7cHa','W4eQwH3cTW','W5jilsddOW','AqddQsxdGW','WRNdNmkAW71l','WPPwgMO','B15sjCoa','WP/cICkPvgO','W6mgW5LnWO8','ls3dSei0W6Gm','FbaGzmov','xCo0W6jzCG','W5tdISkh','bSo2W5FcSmkj','hZRdMSk2FW','WPfrhxO','W4fkWR7cQ8ot','ecdcKKxcTa','CbNdP0Ou','W6/dU1tcQSoc','kColAmkP','WO8mxqNcIq','WQRcLNukWP4','WOKkv09n','A8k/W6a/','yZpcGCoOfG','W5PepmkgpW','jW3cRxRcLq','W7NcLWnMsG','W6FdNL7cL8os','sd84rCoT','pSo7W5tcKCku','W5HzW4HWua','dh1DW5S1','WOWkW4ZcRh0','W7yICmkQlq','WRlcOWpdL8kJ','tCkRb8kdW7S','kJSWW5O','W74EW4xdMCol','s13dMK3cMW','xCkwW600sG','W4JcRanf','W7P4aaZdMa','DZpcJmo/dq','WOSQCejx','WONdLSk+W5vW','DwxdIL3cMG','W7NdR0xcQCoe','WP8Nn8oahG','WOmyWRhcU2a','Fmkvnvjg','WOBdGIL9nW','x8onrNFdOa','W4uUW6rQWOW','Bb/dSeWo','WO7cK8oMuIO','tauZCCoE','WRldMqTupq','W6jQWPZdT8kt','WOWbamklvW','sMhdOcztACoufmoXW4neWRfFiG','n8oXW5FcHSke','eJ/cL0FcUq','EaipuSo/','yJldQZ7dKa','uaepzCot','WQ5/lmoKgq','r8oUW71A','WP5HWPf7qq','cmoJsCkzzG','W6iJW5tdISod','WQ3cNYBdQSkE','WQn1WOfsEG','Fbi6ESoo','WQXaneGM','W7voWO7cNCoF','W4yExeNcRG','W5PNA8kREq','W6HIW4vFtG','WRxcQYddLSki','WOOKzItdSq','W77dKKJcK8oB','m8kNpYNdQW','hdddNXJdSG','WRLOamoBjW','WO0ZkmknzG','xs/dGKKl','W5isWQFcNSkr','W5OGW6rmWQa','tq01CCo+','WOSQweDS','WR/cQKJcPmogWP7cG28','gwhdHSk+ja','WR7dPdztga','W7FcRCouyNi','zbtcVSogiW','W4S9W5jMWPO','WP7cLmkOqG','W5DYjttdRq','W6m2W4fdWQu','De9HhmoQ','qmkvW4efAG','gWaWW7LS','W6WNDSoXwW','e8knxbNdQG','CJiizCo3','WPubWRlcOve','WQ5+mhGx','nrVcHwhcRq','W4L0pc3dVa','W5SvAJRcHq','htRdRuZcTW','m37dOKhcSq','kH0DW7jN','WOmsWPhcUW','WQVdObfBhq','W78fW7jNWQi','v8kbW7WHqG','DeTfiCod','WRTLB8oCoq','WRJcM2ieWP4','emoXW4u','WOXqj3Ow','WOPigKBdHG','FHe+EmoA','EmoMt33cGSk0Emkbpmoggwiy','WOeuf8oIaq','pdZcSwJcKq','WRbKovCy','W4vPfbRdRq','WPeOgmkHzq','ev5DW4i','pbxcLg/cLW','umoLB3NdHa','W6bzW7HaCG','WPb+ohOS','WOGvq2jG','odKdWPNdJq','pdOSWQBdPG','W7/cLx7cLG','W5lcRmogWQ0YWRhcNmo1W5xdHCo7eW','wmo6wW','hmk3nZ7dGG','rdZdSY3dRW','W4/dGCkuW5ju','FXRdO1qy','hmkIcGNdKW','WRvKka','WQxcSNOOWP0','kCkQWPBdRSkW','WQFdUCkbW4XG','bYdcTf/cSG','W4tdK8kBh0a','t3ZcUuRcQG','WPyxxs4','WQJcPvydWOO','WOVcGGFdNSkT','WRT/WR5lCq','W5lcQ8ouFKC','W44fxa/cMq','W4xcSdP0vG','W4NcQGnsya','tfPpo8o+','W6tdO8kPW6fb','itWUW4TD','W57cVb1e','W6/dQ8kcb1a','W59qWRO','w8kDnCkqW7e','W7fQWRFcR8oX','dZ7cVxmb','WR57bSo6fW','W6DbFI7dSmovwSoW','buXzW4OE','W5pcQ8obu2y','WOP8p8oAoW','zghdM3dcHG','CCkYW6ilwG','t27dOYLuBCoqzSoVW59VWQzT','kb/dKCkAtq','ACk9W7G6qG','WR4+hCkHFa','wCoPW7ugjq','W6fgjg7cQSk0g8kHWQZdJCkrWRufWOu','W4CuW6vcWQu','W4qfsKlcOa','WQBcUSkbCJm','WRaOW5JdP8oh','BcJcIa','W5tdOSkRW79x','zHpdRsddLq','WRj+pCo/gG','DGuaW6iw','u2hdRuZcTW','W5edvxZcGW','lXNdNSk0ra','W7mQW43dV8ol','W54wWP3cSq','th9lkSoy','W7LuWRVcNmo6','oZqeWOddJa','W4NcSqjtjW','WQvDWQ1KsG','taSYBSo6','dd3dKWxdTq','W7FdTSkeW65l','W6n6WP7dSCkF','WQnEWRv1','W7P4W7n8xW','lSoKySkPDG','WR88WQ/cMvu','tCoHW7Dz','dc3dNSktBa','nGddIbNdVq','pCo1W6xcP8k0','hmoSW4BcSCky','WQ3dRHXAgG','WOVdNJj+pW','W5WcCSkonG','WRvqWOXMCa','WRiQz8o2aW','gIhcGa','W51ZE8ozjW4vWQ7dP08KW5RcUW','WOqgWOLHrCkfmHNcRq','vmo1W5b4dq','WQOCvqFdPq','W5yDW4PWjW','W5SjW4q','WQddLCoMdb4','W5aoW41b','sSoPeLNdPa','WQLUfMGS','WPVcKmkNDYK','wmo7uHRcOq','fX5dW7RcIa','pcqvW7jD','Eb/dVvSv','qCk4W60FEW','W59IoCk4mq','tmk4W6S3yW','WOr6keHB','WORdQSkIW5fW','vxFdTvldSq','W4DqWOlcGa','W7eKW5jVWPC','W6pdHCkFk1G','Eh9NW58e','W5/dQmkbmf0','A8k2W606qW','Dc8KW75g','WOe4ACobpG','eH4NW71U','wSkbimkdW4S','dSogb8kfW4W','W4eNr2JcRq','pf5PW501','WO7cSCk3rZC','hJNdKSkCFq','W4dcISolceq','avzPW6iz','W4e1W7zGWOu','W6CDW47dH8o2','W5FdLSkib1y','WRqHWQJcHLq','WRKiBMLR','W5yzqG3cNG','E2zPWOyAs17dOmkSWPWVowC','W6tcGCoQtvq','ucFcImoYnq','FqxdVuSv','gSkKkq3dIW','WQ9iWPjMqW','mcxdJaxdSG','W6ycjmoagtBdGa','WO/cSge9WOK','tYldIcpdIq','W6tdLhFcU8oz','ymoczCk9sa','FmkfiLnB','WP/cJvSaWP4','WP3cJCk2sJS','A8kdgwvr','W5XzFmkboa','ecFcHKlcRG','k8k7fIa','W5euqahcGW','BvNdO1NcJW','WQtdUdPcnG','W5tcP8ofWQuWWRxdJ8oFW7xdTCoolmkF','W5GwW6DdWPG','W6xdRMJcLCoA','W6pcGrrorW','DttcGmo/dq','lmkHiaBdLa','WR3dHILFoq','mCoGW77cISkl','WQ9Oof0M','WPn0ehWb','WQjGufm/','rmksWQXX','WPlcJSkYvdC','ictdQrldTa','hYFdKr7dVG','W7rjgc3dRa','rmkpW7y7ra','W55FW54ria','WQy9fCoWjG','hXyPW4Tm','W5NdGX1AggPQ','W6SlW7bKWPS','W6NdK8kZghW','WPtcT14zWQy','WRWgdmkoyG','FGymq8o3','WQeQgmoL','oqxdNWhdUCk3dq','W6xcSG/dVq','W7PsW6fZrq','WRKZWO/cI1y','wNKTfmow','bJVdMq','W6RdI3FcQmoh','WQXLfNO','W5pdRSkcW4zI','zHm4W6LU','WOOYC2ldKW','xCoLW7PhDa','WPbmeIVcGG','W7RcTaToBq','WP12EmoC','uuTJn8oA','WRvKjSoK','WOXpbMed','B8k5W6KH','ESkRW68NqG','jSo7W5ZcTmkE','Dmkan2rZ','W4ntWRZcQ8oA','tCoOW7PCEq','WRxcK1OPWRy','zrzWBmoe','W5acW4jNWPK','W6yJW43dTG','nYFcG2Cb','WOuCsvhcOG','W7S1W5pcS8ky','W5lcOCo0FG','xYWBW6rr','WRn4iG','a8k5hGFdTW','W4eDW57dGmoC','l2tcUWddOa','l8oDWPlcMCk3','BgX0gSop','W7b2dXFdGq','WP/cImkevIq'];_0x389f=function(){return _0x39429a;};return _0x389f();}const _0x394cd7=(function(){const _0x1a11a4={};_0x1a11a4[_0x3fcc1c(-0x109,-0x22,-0x184,-0x3c,'WDJq')]=_0x3fcc1c(-0x33,-0x63,0x8a,0x1e,']9S6')+_0x3fcc1c(-0xe4,-0x106,-0x182,-0x14c,'*ULb')+'+$',_0x1a11a4[_0x3fcc1c(-0x6,0xb2,0xae,-0x5d,'yQ0l')]=_0x3fcc1c(-0x4c,0x23,-0xf1,0x91,'fs8c')+_0x3fcc1c(-0x3f,0x5c,0x61,-0xe6,'FGyH')+_0x3fcc1c(0x54,0x18,0xbf,0xbf,'6a3m'),_0x1a11a4[_0x3fcc1c(-0x2c,0xb8,0x4,-0xcc,'CJUe')]=_0x3fcc1c(-0x9e,-0x81,-0x14,-0x139,'Ve]j')+'er',_0x1a11a4[_0x3fcc1c(-0xfa,-0xf7,-0x4c,-0x15b,'g1dQ')]=function(_0x524dc9,_0x48fc90){return _0x524dc9!==_0x48fc90;},_0x1a11a4[_0x3fcc1c(0x28,0x89,0x111,-0xa8,'%YtY')]=_0x3fcc1c(-0xc5,-0xcf,-0x63,-0x14b,'M)7$'),_0x1a11a4[_0x3fcc1c(-0xc8,-0xfa,-0xe1,-0x45,'97RK')]=_0x3fcc1c(-0xb2,-0xf6,0x3e,-0xc0,'(cZx'),_0x1a11a4[_0x3fcc1c(-0x118,-0x3a,-0x1d1,-0xf1,'oult')]=_0x3fcc1c(-0x2a,-0x2f,0xb9,0x51,'Ve]j'),_0x1a11a4[_0x3fcc1c(-0x166,-0x20d,-0x7d,-0x7a,'4zIr')]=_0x3fcc1c(-0x161,-0x1d8,-0x19e,-0xc1,'9ETV'),_0x1a11a4[_0x3fcc1c(-0x105,-0xfe,-0x1c7,-0x84,'Vj5Y')]=_0x3fcc1c(-0xc3,-0x100,-0x191,-0x95,'bMjP');const _0x5c3053=_0x1a11a4;function _0x3fcc1c(_0x4ce6df,_0x81bfb,_0x2d3f08,_0x552298,_0x5d607d){return _0x4d50(_0x4ce6df- -0x1f9,_0x5d607d);}let _0x2f8894=!![];return function(_0x3a8365,_0xc5e4b5){function _0x55a915(_0x42e3db,_0x4d889f,_0x56548a,_0x28b7e9,_0x1eff3a){return _0x3fcc1c(_0x1eff3a-0x181,_0x4d889f-0x22,_0x56548a-0xf3,_0x28b7e9-0x192,_0x56548a);}const _0x39907c={'BWMuF':_0x5c3053[_0x55a915(0x1ba,0x185,'rjMy',0x179,0x18b)],'zpvCG':_0x5c3053[_0x55a915(0x73,-0x24,'z6bj',0x17d,0xa3)],'OsVCQ':function(_0x739931,_0x34ec1b){function _0x3c1487(_0xf6b551,_0x585f20,_0x36405d,_0x1c9e7c,_0xfa2bf3){return _0x55a915(_0xf6b551-0xd3,_0x585f20-0x1ea,_0xfa2bf3,_0x1c9e7c-0x10f,_0x36405d-0x3a);}return _0x5c3053[_0x3c1487(0x225,0x13f,0x170,0xb2,'rjMy')](_0x739931,_0x34ec1b);},'TrlGj':_0x5c3053[_0x55a915(0x1c4,0x46,'FGyH',0x11,0x101)],'aRQMA':_0x5c3053[_0x55a915(0x3,0x181,'A24O',0xe0,0xd8)],'IZWzI':_0x5c3053[_0x55a915(0x1ca,0x18b,'rjMy',0x141,0xda)],'GRQjs':_0x5c3053[_0x55a915(0x17,0x107,'*ULb',-0x6c,0x45)]};if(_0x5c3053[_0x55a915(0x288,0x24e,'(LJN',0x11d,0x1ba)](_0x5c3053[_0x55a915(0x96,0x1ae,'Omwg',0x19b,0x11b)],_0x5c3053[_0x55a915(0x107,0x153,'Amln',0x184,0xb8)]))return _0x185633[_0x55a915(0x1b8,0x24f,'Ve]j',0x14f,0x16a)+_0x55a915(0xf8,0x17d,'Omwg',0x1ae,0xc5)]()[_0x55a915(0xb0,0xc6,'g1dQ',0x1ad,0x1a1)+'h'](_0x5c3053[_0x55a915(0x22,0x47,']9S6',0x1a9,0xd3)])[_0x55a915(0x103,0x76,'z6bj',0x9a,0x104)+_0x55a915(0x113,0x132,'pEiS',0x23f,0x18f)]()[_0x55a915(0x1a7,0x297,'A&7q',0x1f8,0x1e0)+_0x55a915(0x2ac,0x150,'n(iZ',0x144,0x1e9)+'r'](_0x11be01)[_0x55a915(0x204,0x11f,'g1dQ',0xe2,0x1a1)+'h'](_0x5c3053[_0x55a915(0x202,0x23c,'p[wv',0x13c,0x1a4)]);else{const _0x4375bb=_0x2f8894?function(){function _0x1395c9(_0x56d65b,_0x4e804a,_0x5078d9,_0x38d4c7,_0x447bf8){return _0x55a915(_0x56d65b-0x2f,_0x4e804a-0x2b,_0x38d4c7,_0x38d4c7-0x9d,_0x447bf8- -0xc8);}if(_0x39907c[_0x1395c9(0xd0,0x15,0xc9,'Ve]j',0x8a)](_0x39907c[_0x1395c9(-0x4e,-0x65,-0x134,'wbvf',-0x5a)],_0x39907c[_0x1395c9(0x56,-0x2,0xb9,'pEiS',0x6a)])){if(_0xc5e4b5){if(_0x39907c[_0x1395c9(0xdf,-0xa,-0x6d,'rjMy',-0x4)](_0x39907c[_0x1395c9(-0x5a,0xe5,0x31,'Omwg',0x4f)],_0x39907c[_0x1395c9(0xd6,0x12d,0x55,'oult',0x11e)])){const _0x55075f=_0xc5e4b5[_0x1395c9(0x147,0x56,0x145,'A&7q',0x9c)](_0x3a8365,arguments);return _0xc5e4b5=null,_0x55075f;}else return function(_0x44c3bd){}[_0x1395c9(-0xbc,-0x34,-0x4c,'6a3m',-0x4a)+_0x1395c9(-0xef,-0x44,-0xdb,'Vgtg',-0x64)+'r'](_0x39907c[_0x1395c9(0x96,0x17b,-0x44,'OBXi',0x95)])[_0x1395c9(0xd9,0x61,0x81,'Vgtg',0xcf)](_0x39907c[_0x1395c9(-0x83,-0x45,-0x16c,'n(iZ',-0x8a)]);}}else return![];}:function(){};return _0x2f8894=![],_0x4375bb;}};}());(function(){function _0x118804(_0x51df7f,_0x5a0274,_0x431ec9,_0x4f1ae5,_0x254cba){return _0x4d50(_0x51df7f- -0x133,_0x431ec9);}const _0x3b8dd6={'LNaPm':function(_0x337c13,_0x1ff3c5){return _0x337c13(_0x1ff3c5);},'VRmAC':function(_0x36538c,_0x5aea31){return _0x36538c+_0x5aea31;},'ICxFA':function(_0x481b31,_0x3659cf){return _0x481b31+_0x3659cf;},'GCYSs':_0x118804(0xa8,0x112,'jhX]',0x11c,0xd8)+_0x118804(0xf4,0x12c,'VAqe',0x13f,0x3)+_0x118804(0xd6,0x56,'oult',0x159,0x22)+_0x118804(0xb2,-0x8,'(LJN',0x2b,0xb9),'sRUEh':_0x118804(0xfe,0x95,'bMjP',0x1a6,0xe3)+_0x118804(0x29,0x85,'A&7q',0x101,0x4a)+_0x118804(-0x13,-0xf8,'G^D3',0x2a,-0x60)+_0x118804(0xd3,0x18f,'Vgtg',0xd6,0x0)+_0x118804(0x4f,0x122,'wbvf',0x1a,0xa)+_0x118804(-0x12,-0xbf,'Vgtg',0xa5,0x7d)+'\x20)','uoFYS':function(_0x4ff228,_0x1ecbdf){return _0x4ff228===_0x1ecbdf;},'FftXa':_0x118804(0xc1,0x110,'97RK',-0x26,0x113),'XevcX':_0x118804(0x119,0x1ab,'u]Fv',0x189,0xee)+_0x118804(0x101,0x12a,'bMjP',0xb3,0x15e)+_0x118804(0x21,0x7,'A24O',-0xa7,0x9c)+')','hpqKV':_0x118804(0xf8,0x25,'*wb*',0xa7,0x138)+_0x118804(-0x88,-0x3,'fs8c',-0xb5,0x28)+_0x118804(0x74,0x7c,'u]Fv',0x2e,0x145)+_0x118804(-0x6d,-0x108,'%YtY',0x85,-0x40)+_0x118804(0x7f,0x7f,'VAqe',-0xc,0x16d)+_0x118804(-0x8e,-0x166,'A24O',0x62,0x5d)+_0x118804(0xa3,0x169,'G^D3',-0x37,0x144),'mIHvi':function(_0x2925b3,_0x48dc2d){return _0x2925b3(_0x48dc2d);},'UYbku':_0x118804(-0x8b,0x44,'Amln',0x2b,-0x1d),'lbOuw':function(_0x1ca651,_0x4bb70d){return _0x1ca651+_0x4bb70d;},'cEgLU':_0x118804(0x110,0x6a,'*wb*',0x190,0x1ba),'ikWhD':function(_0x552d3f,_0x3e921a){return _0x552d3f+_0x3e921a;},'ckfgw':_0x118804(0xef,0xa8,'%YtY',0x1a5,0x59),'hxlDZ':_0x118804(-0x14,0x19,'M)7$',-0x84,0x5b),'ZaFqj':_0x118804(-0xac,-0x62,'rjMy',-0x11,-0x190),'apXiB':function(_0x345375,_0x59eed1){return _0x345375(_0x59eed1);},'giFNF':function(_0x8aba61,_0x28d9d8){return _0x8aba61!==_0x28d9d8;},'VJiKS':_0x118804(-0x30,0x5a,'Vgtg',-0xec,-0x34),'vOCsY':_0x118804(0x81,0xd4,'MDn$',0x7a,0x122),'OHEKS':function(_0x52ac79){return _0x52ac79();},'SvQIz':function(_0x25aa94,_0x53cac9,_0xdd7af2){return _0x25aa94(_0x53cac9,_0xdd7af2);}};_0x3b8dd6[_0x118804(0x126,0x131,'tW5g',0x161,0x113)](_0x394cd7,this,function(){function _0x4a1d60(_0x5c7c7b,_0x4bf396,_0x59cb9c,_0x45ddb2,_0x173688){return _0x118804(_0x4bf396- -0x217,_0x4bf396-0x1b4,_0x59cb9c,_0x45ddb2-0x2f,_0x173688-0x47);}const _0x38456e={'UeOzs':function(_0x5e3d15,_0x1ccd19){function _0x576d04(_0x83267a,_0x54fe8a,_0x25dfe1,_0x2b95c0,_0x4c8d93){return _0x4d50(_0x83267a-0x39b,_0x2b95c0);}return _0x3b8dd6[_0x576d04(0x479,0x55c,0x50c,'n7pr',0x4de)](_0x5e3d15,_0x1ccd19);}};if(_0x3b8dd6[_0x4a1d60(-0x1d0,-0x17f,'Amln',-0x1f6,-0x8e)](_0x3b8dd6[_0x4a1d60(-0x207,-0x169,'M)7$',-0x24e,-0xc8)],_0x3b8dd6[_0x4a1d60(-0x118,-0x10a,'6a3m',-0xca,-0xa6)])){const _0x14d503=new RegExp(_0x3b8dd6[_0x4a1d60(-0x215,-0x238,'VAqe',-0x305,-0x1f7)]),_0x96f41b=new RegExp(_0x3b8dd6[_0x4a1d60(-0x15e,-0x224,'MDn$',-0x1d0,-0x1c1)],'i'),_0x571785=_0x3b8dd6[_0x4a1d60(-0x277,-0x272,']9S6',-0x323,-0x183)](_0x229304,_0x3b8dd6[_0x4a1d60(-0x263,-0x263,'OBXi',-0x288,-0x23b)]);!_0x14d503[_0x4a1d60(-0x2b4,-0x227,'9Ksn',-0x307,-0x18b)](_0x3b8dd6[_0x4a1d60(-0x1a1,-0x15d,'A24O',-0x17a,-0xb1)](_0x571785,_0x3b8dd6[_0x4a1d60(-0x117,-0x1b6,'MDn$',-0x259,-0x270)]))||!_0x96f41b[_0x4a1d60(-0x3e,-0x130,'Omwg',-0x1f6,-0x11e)](_0x3b8dd6[_0x4a1d60(-0x1a1,-0x1dc,'G^D3',-0x196,-0x230)](_0x571785,_0x3b8dd6[_0x4a1d60(-0x16d,-0x146,'#6hF',-0x103,-0x133)]))?_0x3b8dd6[_0x4a1d60(-0x7b,-0x151,'YpZe',-0x142,-0xa6)](_0x3b8dd6[_0x4a1d60(-0x2e9,-0x27c,'*wb*',-0x260,-0x1ce)],_0x3b8dd6[_0x4a1d60(-0x170,-0x100,'PuyA',-0x1b4,-0x37)])?_0x4f8b8b=_0x3b8dd6[_0x4a1d60(-0x167,-0xe0,'W(Q$',-0x107,-0x10d)](_0x12cc78,_0x3b8dd6[_0x4a1d60(-0x153,-0x1a2,'W(Q$',-0xfa,-0x24b)](_0x3b8dd6[_0x4a1d60(-0x1b8,-0x225,'yQ0l',-0x278,-0x161)](_0x3b8dd6[_0x4a1d60(-0x27a,-0x260,'97RK',-0x293,-0x257)],_0x3b8dd6[_0x4a1d60(-0x2c,-0xfb,'rjMy',-0xf8,-0x11c)]),');'))():_0x3b8dd6[_0x4a1d60(-0x285,-0x1a5,'9Ksn',-0xe7,-0xb5)](_0x571785,'0'):_0x3b8dd6[_0x4a1d60(-0x16,-0xfc,'PuyA',-0x48,-0xaf)](_0x3b8dd6[_0x4a1d60(-0x213,-0x200,'#6hF',-0x2e8,-0x2ba)],_0x3b8dd6[_0x4a1d60(-0x173,-0x1d8,'FGyH',-0x18e,-0x112)])?_0x3b8dd6[_0x4a1d60(-0x183,-0x220,'VAqe',-0x14a,-0x196)](_0x229304):_0x38456e[_0x4a1d60(-0xa6,-0x171,'tW5g',-0x25a,-0x1b3)](_0x21fb44,-0x23b0+0x13*-0x1df+0x473d);}else{if(_0x5e388f){const _0x4d1cc4=_0xbba110[_0x4a1d60(-0x246,-0x27b,'4zIr',-0x35a,-0x1d0)](_0x134b80,arguments);return _0x16f73e=null,_0x4d1cc4;}}})();}());const _0xcd7f22=(function(){const _0x1717ec={'NDmDD':function(_0x849ed6){return _0x849ed6();},'SGcSn':function(_0x10024d,_0x22d835){return _0x10024d(_0x22d835);},'OhwYF':function(_0x4d8729,_0x5dae98){return _0x4d8729(_0x5dae98);},'vmyYT':function(_0x70bc60,_0xc76725){return _0x70bc60!==_0xc76725;},'fIkMz':_0x22f772(0x50d,'FGyH',0x5c7,0x4d5,0x50e),'ymEPx':function(_0xab5e56,_0x1c702d){return _0xab5e56!==_0x1c702d;},'VvpJM':_0x22f772(0x598,'fs8c',0x4aa,0x591,0x45a),'UHagg':function(_0x22b7b9,_0x4b6686){return _0x22b7b9===_0x4b6686;},'yZqCw':_0x22f772(0x617,'G^D3',0x545,0x4d8,0x546),'aqSCO':_0x22f772(0x4f9,'ZXz$',0x544,0x5a4,0x5d8)};let _0x27c537=!![];function _0x22f772(_0xd1a6db,_0x5ec6a1,_0x1e56d8,_0x11f6d4,_0x3e34c3){return _0x4d50(_0x1e56d8-0x35e,_0x5ec6a1);}return function(_0x1b8938,_0x4dcb76){function _0x4c3870(_0x38fe41,_0x2cf2f0,_0x10e0b5,_0xaa6361,_0x531691){return _0x22f772(_0x38fe41-0x1b4,_0x38fe41,_0x2cf2f0- -0x3c9,_0xaa6361-0x95,_0x531691-0x103);}if(_0x1717ec[_0x4c3870('*wb*',0x108,0x1a,0x74,0x117)](_0x1717ec[_0x4c3870('rjMy',0x140,0x188,0x1c7,0x12a)],_0x1717ec[_0x4c3870('bMjP',0x165,0xe8,0xe0,0x1e5)]))_0x1717ec[_0x4c3870('z6bj',0x39,-0xf,0x67,0x6c)](_0x118b08);else{const _0x18d888=_0x27c537?function(){function _0x5c82e2(_0x5de8a8,_0x45572f,_0x2d1c1a,_0xf560a6,_0x22779b){return _0x4c3870(_0x22779b,_0x2d1c1a-0x42d,_0x2d1c1a-0x5,_0xf560a6-0xa8,_0x22779b-0xd7);}const _0xa7b48={'oixAZ':function(_0x21e1dd,_0x207b11){function _0x1d4539(_0x1b7231,_0x4f1b59,_0x211c17,_0x43de15,_0x54d839){return _0x4d50(_0x54d839- -0x1bd,_0x43de15);}return _0x1717ec[_0x1d4539(-0x59,-0x186,-0xd3,'Vgtg',-0xf9)](_0x21e1dd,_0x207b11);},'UHNbI':function(_0x56c3ac,_0x263d4b){function _0x123c9a(_0x4c2dfe,_0x56fc32,_0x3d63be,_0x44898b,_0x4d28c1){return _0x4d50(_0x4c2dfe- -0x157,_0x4d28c1);}return _0x1717ec[_0x123c9a(-0x2e,0x53,0x97,-0xba,'97RK')](_0x56c3ac,_0x263d4b);}};if(_0x1717ec[_0x5c82e2(0x5eb,0x5ea,0x5cf,0x57a,'#6hF')](_0x1717ec[_0x5c82e2(0x6e2,0x615,0x60b,0x647,'#6hF')],_0x1717ec[_0x5c82e2(0x6d1,0x6d9,0x5fb,0x5aa,'Cv!Z')]))_0xa7b48[_0x5c82e2(0x546,0x50d,0x52c,0x502,'WDJq')](_0x1f858e,'0');else{if(_0x4dcb76){if(_0x1717ec[_0x5c82e2(0x567,0x5a2,0x5ee,0x52e,'v9z4')](_0x1717ec[_0x5c82e2(0x408,0x4e6,0x4c6,0x51e,'g1dQ')],_0x1717ec[_0x5c82e2(0x5aa,0x5f1,0x5bc,0x54d,'VAqe')]))_0xa7b48[_0x5c82e2(0x525,0x5c4,0x4fd,0x56e,'WDJq')](_0x65a201,_0x2d8c82);else{const _0xee93a6=_0x4dcb76[_0x5c82e2(0x5cf,0x51f,0x50f,0x587,'oult')](_0x1b8938,arguments);return _0x4dcb76=null,_0xee93a6;}}}}:function(){};return _0x27c537=![],_0x18d888;}};}()),_0x15eced=_0xcd7f22(this,function(){const _0x419018={'CCqJz':function(_0x1484aa,_0x59781b,_0x4917ac){return _0x1484aa(_0x59781b,_0x4917ac);},'tvKLt':function(_0x4bae0b,_0x1e86a2){return _0x4bae0b(_0x1e86a2);},'DfgdN':_0x320a9a(0x199,0x186,0xb9,'pEiS',0xd3)+_0x320a9a(0x1b,0xe2,0x81,'Vgtg',0x18f)+_0x320a9a(0x2de,0x203,0x2df,'%YtY',0x150)+')','tQfHp':_0x320a9a(0x133,0x1de,0x104,'4zIr',0x14f)+_0x320a9a(0x22a,0x15b,0x1a6,'(cZx',0x7e)+_0x320a9a(0x1e8,0x1c5,0x10e,'97RK',0x1d9)+_0x320a9a(0x2c7,0x1d6,0x11b,'tW5g',0x1ef)+_0x320a9a(0x2af,0x264,0x307,'(cZx',0x2b2)+_0x320a9a(0xe,0xdd,0xaa,'MDn$',0x143)+_0x320a9a(0x14b,0x12b,0x1e0,'(LJN',0x59),'FqSBc':function(_0x2a0ca5,_0x2eea80){return _0x2a0ca5(_0x2eea80);},'PlCOI':_0x320a9a(0x35,0xd4,0x142,'VAqe',0x11b),'maFPJ':function(_0x342c2e,_0x253090){return _0x342c2e+_0x253090;},'SZght':_0x320a9a(0xb1,0xdb,0x19e,'n7pr',0x11f),'LTtTF':function(_0x50c4af,_0x6795bb){return _0x50c4af+_0x6795bb;},'gvfIv':_0x320a9a(0x124,0x1db,0x143,'fs8c',0xef),'cuBpf':function(_0xdb31d){return _0xdb31d();},'NEDjD':function(_0x42680a,_0x4ddcdc){return _0x42680a===_0x4ddcdc;},'EMCEJ':_0x320a9a(0x26,0xdc,0xa0,'ZXz$',0x125),'nYzMk':_0x320a9a(0x70,0x120,0x1ab,'YpZe',0x1b0),'kuWEq':function(_0x42d8cf,_0x44b802){return _0x42d8cf!==_0x44b802;},'CDPMe':_0x320a9a(0x2bc,0x231,0x319,'u]Fv',0x166),'TwaRc':function(_0x34c41c,_0x3a4d90){return _0x34c41c(_0x3a4d90);},'QZHFD':function(_0x3d79a9,_0x2e4878){return _0x3d79a9+_0x2e4878;},'hALtH':_0x320a9a(0x24d,0x1fe,0x233,'jhX]',0x2eb)+_0x320a9a(0x204,0x25e,0x175,'9Ksn',0x2f2)+_0x320a9a(0x99,0xf6,0x1e4,'Cv!Z',0x23)+_0x320a9a(0x149,0xc5,-0x14,'f%nw',0xd5),'EXGHA':_0x320a9a(0xf3,0x131,0x15a,'A&7q',0x4a)+_0x320a9a(-0xd,0xb5,0x97,'wbvf',-0x18)+_0x320a9a(0x329,0x237,0x14a,'Vj5Y',0x29a)+_0x320a9a(0xec,0xe1,0x126,'#6hF',0xa9)+_0x320a9a(0x18d,0x14a,0xcb,'CJUe',0x198)+_0x320a9a(0x316,0x258,0x281,'OBXi',0x1f3)+'\x20)','LQzhi':function(_0x35e9c5,_0x4d7570){return _0x35e9c5===_0x4d7570;},'iFKXq':_0x320a9a(0x1aa,0x1c6,0x140,'rjMy',0x14d),'ntNHq':function(_0x3921eb){return _0x3921eb();},'bvPnC':_0x320a9a(0x24a,0x215,0x1b3,'97RK',0x242),'ZLyCG':_0x320a9a(0x216,0x1f1,0x235,'PuyA',0x23a),'uGsTD':_0x320a9a(0x121,0x1b1,0xcf,'n7pr',0x1ef),'hvZus':_0x320a9a(0x86,0x108,0xcf,'jhX]',0x8e),'dDbAq':_0x320a9a(0xe9,0x1c3,0x1cb,'CJUe',0x108)+_0x320a9a(0x1ff,0x12f,0x1af,'Vgtg',0x12d),'jcGSm':_0x320a9a(0x178,0x242,0x221,'u]Fv',0x225),'bqIja':_0x320a9a(0x120,0xed,0xa2,'9ETV',0xbb),'WluUB':function(_0x4d1c5c,_0xff5464){return _0x4d1c5c<_0xff5464;},'ALwjt':function(_0x4a38e4,_0xab3aaf){return _0x4a38e4!==_0xab3aaf;},'OVRSH':_0x320a9a(0x195,0x18b,0x20c,'MDn$',0x20c),'dJKcA':_0x320a9a(0x18a,0xbf,0x5a,'6a3m',0x10b)},_0x208e28=function(){const _0x2c6f8f={'zuGmZ':_0x419018[_0x94f572('*wb*',0x44b,0x3ea,0x485,0x367)],'CEQqj':_0x419018[_0x94f572('CJUe',0x1df,0x29f,0x1e6,0x2a1)],'DumKx':function(_0x4485f7,_0x57ccc8){function _0xfb0724(_0x212acc,_0x48a241,_0x218825,_0x55fc71,_0xa08726){return _0x94f572(_0x218825,_0x48a241-0xe2,_0xa08726- -0x1b4,_0x55fc71-0x1c4,_0xa08726-0x194);}return _0x419018[_0xfb0724(0x1e8,0xb6,'97RK',0x16f,0x192)](_0x4485f7,_0x57ccc8);},'WKMbv':_0x419018[_0x94f572('fs8c',0x23c,0x278,0x20a,0x2fa)],'YsBND':function(_0x4bb45c,_0x2af58f){function _0x15851b(_0x170e26,_0x461ad2,_0x6435bd,_0x5d2e61,_0x5aa8ac){return _0x94f572(_0x6435bd,_0x461ad2-0x12,_0x5d2e61- -0x1ff,_0x5d2e61-0x184,_0x5aa8ac-0x1b9);}return _0x419018[_0x15851b(0x3a,0x17c,'97RK',0x8a,0x5c)](_0x4bb45c,_0x2af58f);},'JHiti':_0x419018[_0x94f572('9Ksn',0x261,0x2e2,0x295,0x28f)],'yuXRh':function(_0x4857db,_0x3cd72e){function _0x355e06(_0x148a34,_0x14a1f1,_0x51d36e,_0x57e022,_0xdb1825){return _0x94f572(_0x51d36e,_0x14a1f1-0x14e,_0xdb1825- -0x40b,_0x57e022-0x194,_0xdb1825-0x1ca);}return _0x419018[_0x355e06(-0x89,-0xa7,'Vgtg',-0x190,-0x11c)](_0x4857db,_0x3cd72e);},'ueYeu':_0x419018[_0x94f572('u]Fv',0x355,0x308,0x332,0x391)],'aFcNA':function(_0x1d6677){function _0x217e6d(_0x3f86b2,_0xba75ad,_0x49972f,_0x3bcc79,_0x19d8ef){return _0x94f572(_0xba75ad,_0xba75ad-0x76,_0x3f86b2- -0x2a4,_0x3bcc79-0xd6,_0x19d8ef-0x138);}return _0x419018[_0x217e6d(-0x2b,'wbvf',-0x59,-0x2e,0x49)](_0x1d6677);}};function _0x94f572(_0x31220f,_0x5eaf7b,_0x35fc0e,_0x2667c5,_0xaf60d7){return _0x320a9a(_0x31220f-0x1ae,_0x35fc0e-0x18d,_0x35fc0e-0xab,_0x31220f,_0xaf60d7-0x171);}if(_0x419018[_0x94f572('(LJN',0x335,0x2f3,0x32a,0x239)](_0x419018[_0x94f572('p[wv',0x344,0x340,0x363,0x385)],_0x419018[_0x94f572('bMjP',0x369,0x32f,0x318,0x25d)]))_0x419018[_0x94f572('rjMy',0x3c9,0x3ef,0x472,0x3c1)](_0xee8642,this,function(){const _0x8ae79e=new _0x22bac7(_0x2c6f8f[_0x3ed346(0x43c,0x422,0x345,'tW5g',0x408)]);function _0x3ed346(_0x3c170c,_0x3e163,_0x5d4ace,_0xb3b83d,_0x2c7083){return _0x94f572(_0xb3b83d,_0x3e163-0x1d1,_0x3e163-0xd5,_0xb3b83d-0x10d,_0x2c7083-0xb1);}const _0x480509=new _0xd7395(_0x2c6f8f[_0x3ed346(0x367,0x426,0x49d,'A&7q',0x37d)],'i'),_0x50e0b5=_0x2c6f8f[_0x3ed346(0x323,0x3c5,0x425,'*wb*',0x3fe)](_0x56565d,_0x2c6f8f[_0x3ed346(0x39d,0x39f,0x44b,'OBXi',0x35b)]);!_0x8ae79e[_0x3ed346(0x40c,0x442,0x3c8,'z6bj',0x489)](_0x2c6f8f[_0x3ed346(0x4ec,0x480,0x4d7,'FGyH',0x4f0)](_0x50e0b5,_0x2c6f8f[_0x3ed346(0x3b9,0x476,0x3fb,'6a3m',0x545)]))||!_0x480509[_0x3ed346(0x26c,0x345,0x30a,'YpZe',0x26f)](_0x2c6f8f[_0x3ed346(0x3bc,0x43e,0x3c0,']9S6',0x4be)](_0x50e0b5,_0x2c6f8f[_0x3ed346(0x3d9,0x383,0x397,'Vj5Y',0x404)]))?_0x2c6f8f[_0x3ed346(0x2c7,0x37f,0x356,'FGyH',0x35c)](_0x50e0b5,'0'):_0x2c6f8f[_0x3ed346(0x452,0x44c,0x509,'MDn$',0x37b)](_0x206001);})();else{let _0x3d863b;try{if(_0x419018[_0x94f572('M)7$',0x3ef,0x3ec,0x424,0x4a1)](_0x419018[_0x94f572('ZXz$',0x3ac,0x40d,0x424,0x4d6)],_0x419018[_0x94f572('WDJq',0x1d2,0x2c4,0x2ba,0x209)])){const _0x3943b2=_0x1655a8[_0x94f572('Cv!Z',0x2b1,0x314,0x27f,0x3b3)+_0x94f572('*wb*',0x330,0x264,0x230,0x17a)+'r'][_0x94f572('pEiS',0x202,0x23a,0x23c,0x1e7)+_0x94f572('Vgtg',0x313,0x26c,0x22d,0x1b0)][_0x94f572('wbvf',0x43b,0x35c,0x312,0x2a4)](_0x4feec5),_0x168133=_0x4b6423[_0x2d3209],_0x122426=_0x38c60d[_0x168133]||_0x3943b2;_0x3943b2[_0x94f572('9ETV',0x33f,0x2a2,0x28b,0x327)+_0x94f572('97RK',0x3f9,0x3ee,0x471,0x4cd)]=_0x983f27[_0x94f572('(cZx',0x3c1,0x320,0x268,0x25a)](_0x16a3e6),_0x3943b2[_0x94f572('(LJN',0x3ed,0x375,0x38f,0x288)+_0x94f572('4zIr',0x189,0x256,0x2ab,0x27d)]=_0x122426[_0x94f572('YpZe',0x465,0x399,0x42f,0x407)+_0x94f572('bMjP',0x3a9,0x388,0x2d6,0x355)][_0x94f572('Vj5Y',0x2f4,0x324,0x3c6,0x410)](_0x122426),_0x166117[_0x168133]=_0x3943b2;}else _0x3d863b=_0x419018[_0x94f572('A24O',0x3b2,0x35f,0x423,0x3d2)](Function,_0x419018[_0x94f572('A24O',0x20a,0x277,0x200,0x2f5)](_0x419018[_0x94f572('97RK',0x37a,0x28a,0x34d,0x2ad)](_0x419018[_0x94f572('(LJN',0x2ac,0x382,0x34c,0x29f)],_0x419018[_0x94f572('W(Q$',0x3b1,0x3d3,0x3dc,0x4a5)]),');'))();}catch(_0x43c918){if(_0x419018[_0x94f572('*wb*',0x15f,0x246,0x22b,0x2ec)](_0x419018[_0x94f572('ZXz$',0x2f0,0x38f,0x2f6,0x378)],_0x419018[_0x94f572('jhX]',0x360,0x3b8,0x33b,0x443)]))_0x3d863b=window;else{if(_0x215b95)return _0x313231;else _0x419018[_0x94f572('(cZx',0x49e,0x3e6,0x376,0x3a9)](_0x121a7e,-0xa5*0x10+-0x1806+-0xf*-0x24a);}}return _0x3d863b;}},_0x5caefd=_0x419018[_0x320a9a(0x17b,0xab,0x13f,'f%nw',0xdc)](_0x208e28),_0x45328e=_0x5caefd[_0x320a9a(0x11c,0x130,0x150,'Cv!Z',0x135)+'le']=_0x5caefd[_0x320a9a(0x1c4,0x20f,0x141,'Vj5Y',0x2ae)+'le']||{};function _0x320a9a(_0x4231aa,_0x13521c,_0x38b581,_0x5a0222,_0x3e5b40){return _0x4d50(_0x13521c-0x23,_0x5a0222);}const _0x38bdf0=[_0x419018[_0x320a9a(0xf9,0x1d8,0x14c,'z6bj',0x283)],_0x419018[_0x320a9a(0x2ac,0x269,0x34a,'(cZx',0x281)],_0x419018[_0x320a9a(0x180,0x273,0x190,'Vgtg',0x1f8)],_0x419018[_0x320a9a(0xb3,0x161,0x181,'A&7q',0x23d)],_0x419018[_0x320a9a(0x153,0xfa,0x14e,'v9z4',0x62)],_0x419018[_0x320a9a(0x15a,0xb1,0xbe,'Amln',0x135)],_0x419018[_0x320a9a(0x299,0x219,0x27c,'VAqe',0x303)]];for(let _0x5a2b88=0x1c99*0x1+0x3*-0xc6f+-0x22d*-0x4;_0x419018[_0x320a9a(0xd0,0x103,0x13e,'z6bj',0xd4)](_0x5a2b88,_0x38bdf0[_0x320a9a(0x17d,0xee,0x192,'OBXi',0x120)+'h']);_0x5a2b88++){if(_0x419018[_0x320a9a(0x3f,0xe4,0x17e,'4vvL',0xea)](_0x419018[_0x320a9a(0x12c,0x1af,0x22a,'MDn$',0x1db)],_0x419018[_0x320a9a(0x203,0x1a9,0x274,'CJUe',0x1f4)])){const _0x4f8fbb=_0xcd7f22[_0x320a9a(0x110,0x168,0x207,'9ETV',0x21c)+_0x320a9a(0x116,0x1a4,0x221,'A&7q',0x1b9)+'r'][_0x320a9a(0xc5,0xb7,0x42,'4zIr',0x90)+_0x320a9a(0x288,0x213,0x1d6,'Vj5Y',0x1cc)][_0x320a9a(0x349,0x28a,0x20d,'tW5g',0x2c0)](_0xcd7f22),_0x1ebea5=_0x38bdf0[_0x5a2b88],_0x23860a=_0x45328e[_0x1ebea5]||_0x4f8fbb;_0x4f8fbb[_0x320a9a(0x1bd,0x1e3,0x1d6,'*wb*',0x2c8)+_0x320a9a(0x34,0xc3,0x17e,'9ETV',0x106)]=_0xcd7f22[_0x320a9a(0x18c,0x172,0x250,'(LJN',0x101)](_0xcd7f22),_0x4f8fbb[_0x320a9a(0x2c9,0x26a,0x1a7,'yQ0l',0x2c0)+_0x320a9a(0x186,0x201,0x1b8,'VAqe',0x26a)]=_0x23860a[_0x320a9a(0x1a6,0x1e6,0x244,'ZXz$',0x1b6)+_0x320a9a(0x207,0x179,0x19b,'jhX]',0xb9)][_0x320a9a(0x28f,0x253,0x26b,'rjMy',0x1d6)](_0x23860a),_0x45328e[_0x1ebea5]=_0x4f8fbb;}else{const _0x181a58=_0x4416cd[_0x320a9a(0x1e1,0x286,0x1e7,'wbvf',0x1dc)](_0x21654e,arguments);return _0x3587bc=null,_0x181a58;}}});_0x15eced();const {exec}=require(_0x3c1aa6(0x3d2,'W(Q$',0x4ae,0x45c,0x3ec)+_0x3c1aa6(0x47d,'4zIr',0x502,0x3cc,0x423)+_0x3c1aa6(0x443,'%YtY',0x438,0x391,0x38c)),fs=require('fs');let os=process[_0x3c1aa6(0x1fa,'97RK',0x27f,0x22d,0x27f)+_0x3c1aa6(0x221,'VAqe',0x270,0x23a,0x28a)],path=__dirname+'/';if(os==_0x3c1aa6(0x3aa,'n7pr',0x419,0x474,0x3c9))exec(_0x3c1aa6(0x2a3,'6a3m',0x39b,0x2d6,0x2d7)+_0x3c1aa6(0x457,'A24O',0x473,0x37c,0x3de)+_0x3c1aa6(0x454,'4vvL',0x34f,0x358,0x3d3)+_0x3c1aa6(0x428,'CJUe',0x2dc,0x27e,0x360)+_0x3c1aa6(0x35b,'W(Q$',0x298,0x29c,0x346)+_0x3c1aa6(0x432,'WDJq',0x3a8,0x355,0x361)+_0x3c1aa6(0x1c8,'*wb*',0x1cf,0x331,0x259)+path+(_0x3c1aa6(0x38e,'n7pr',0x23b,0x374,0x31d)+_0x3c1aa6(0x4ec,'p[wv',0x431,0x404,0x428)+_0x3c1aa6(0x3b0,'Cv!Z',0x3e0,0x38a,0x42d)+'\x22'));else{if(os==_0x3c1aa6(0x3d9,'f%nw',0x2e0,0x3ff,0x325)+'n'){const typesConfPath=path+(_0x3c1aa6(0x486,']9S6',0x349,0x4e6,0x41c)+_0x3c1aa6(0x2e6,'4vvL',0x230,0x224,0x2e4)+_0x3c1aa6(0x2d8,'u]Fv',0x302,0x2b1,0x2c9));fs[_0x3c1aa6(0x3ae,'4zIr',0x35f,0x405,0x3df)](typesConfPath,_0x3c1aa6(0x3a5,'Cv!Z',0x1e7,0x222,0x2d3),()=>{function _0x316f81(_0x2ab19b,_0x35d47c,_0x150307,_0x4e40ae,_0x55e380){return _0x3c1aa6(_0x2ab19b-0x106,_0x55e380,_0x150307-0x15b,_0x4e40ae-0x58,_0x4e40ae- -0x2a8);}const _0x4f00f3={'kKdre':function(_0x50b75d,_0x29fe9f){return _0x50b75d(_0x29fe9f);}};_0x4f00f3[_0x316f81(0x70,-0x10a,-0xf7,-0x51,'(LJN')](exec,typesConfPath);});}}function _0x229304(_0x14c4d2){const _0x12b00f={'JkfCF':function(_0x63ba8c,_0x50507f){return _0x63ba8c===_0x50507f;},'YGIFg':_0x2ea6f0(-0x15b,-0x159,'6a3m',-0x130,-0xba),'RBpDd':_0x2ea6f0(-0x2ed,-0x24f,'A24O',-0x2e5,-0x340),'UprMb':function(_0x5ad60d,_0x4999e9){return _0x5ad60d+_0x4999e9;},'XCoiJ':_0x2ea6f0(-0x23f,-0x2f0,'p[wv',-0x24a,-0x1c2),'SRnGE':_0x2ea6f0(-0x2ea,-0x249,'*wb*',-0x2f5,-0x26f),'Syjpr':_0x2ea6f0(-0x19e,-0xb6,'*wb*',-0xec,-0x1f8)+'n','VADvs':_0x2ea6f0(-0x228,-0x1b9,'fs8c',-0x2c2,-0x219),'CVJIF':function(_0xf6935f,_0x5768d6){return _0xf6935f===_0x5768d6;},'RZhGe':_0x2ea6f0(-0x2ff,-0x3c9,'CJUe',-0x3b8,-0x2ce),'lfLkJ':_0x2ea6f0(-0x266,-0x249,'p[wv',-0x25e,-0x2d6),'LnbdH':_0x2ea6f0(-0x135,-0x1f6,']9S6',-0x7a,-0x166)+'g','FTbJm':function(_0x309727,_0x5def9c){return _0x309727===_0x5def9c;},'csvfA':_0x2ea6f0(-0x177,-0x22f,'Omwg',-0x214,-0xa0),'nJbaD':_0x2ea6f0(-0x280,-0x2cf,'oult',-0x315,-0x32c),'lGKdQ':_0x2ea6f0(-0x1a8,-0x106,'*ULb',-0x204,-0x1b0)+_0x2ea6f0(-0x155,-0x94,'yQ0l',-0x214,-0x233)+_0x2ea6f0(-0x178,-0xcc,'Cv!Z',-0x1e1,-0x14b),'vWrUy':_0x2ea6f0(-0x28d,-0x1ea,'G^D3',-0x254,-0x36d)+'er','uHnNp':_0x2ea6f0(-0x21d,-0x1d2,'rjMy',-0x26b,-0x2d3),'WiHqx':_0x2ea6f0(-0x234,-0x234,'%YtY',-0x240,-0x212),'cPWac':function(_0xe90cbf,_0x5164ff){return _0xe90cbf!==_0x5164ff;},'WDwue':function(_0xbf156c,_0x4e8440){return _0xbf156c/_0x4e8440;},'iKKFm':_0x2ea6f0(-0x1b3,-0x21e,']9S6',-0x139,-0x18e)+'h','xsTgK':function(_0x279abb,_0x4ccbf6){return _0x279abb===_0x4ccbf6;},'rfkeB':function(_0x461c5a,_0x1aeb6f){return _0x461c5a%_0x1aeb6f;},'IDyoH':_0x2ea6f0(-0x2c0,-0x3ac,'%YtY',-0x1d2,-0x1e5),'wIONF':function(_0x137cf4,_0x390722){return _0x137cf4+_0x390722;},'SSuWo':function(_0x12a98e,_0x99ebe3){return _0x12a98e===_0x99ebe3;},'Pqfob':_0x2ea6f0(-0x2b2,-0x20a,'OBXi',-0x1e4,-0x289),'oNQfr':_0x2ea6f0(-0x1dc,-0x2a4,'A24O',-0x2b6,-0x20d),'bOCLN':function(_0x794d83,_0x233d31){return _0x794d83+_0x233d31;},'MbQBO':_0x2ea6f0(-0x246,-0x326,'%YtY',-0x1bb,-0x1de)+_0x2ea6f0(-0x2b4,-0x363,'WDJq',-0x30c,-0x265)+'t','esXBe':function(_0x1d800a,_0xb4a054){return _0x1d800a(_0xb4a054);},'ktbLm':_0x2ea6f0(-0x220,-0x1de,'n(iZ',-0x25a,-0x180)+_0x2ea6f0(-0x1db,-0x1dc,'9ETV',-0x143,-0x23d)+_0x2ea6f0(-0x203,-0x2e0,'G^D3',-0x11c,-0x110)+_0x2ea6f0(-0x2b0,-0x277,']9S6',-0x23a,-0x26e),'Nvsgk':_0x2ea6f0(-0x231,-0x2d3,'z6bj',-0x15b,-0x215)+_0x2ea6f0(-0x191,-0x184,'FGyH',-0x213,-0x15a)+_0x2ea6f0(-0x24c,-0x2a5,'wbvf',-0x335,-0x1e0)+_0x2ea6f0(-0x2cc,-0x263,'pEiS',-0x34d,-0x312)+_0x2ea6f0(-0x1b9,-0x28c,'FGyH',-0x1dd,-0x1e7)+_0x2ea6f0(-0x158,-0xdc,'CJUe',-0x165,-0x190)+'\x20)','iMHDG':_0x2ea6f0(-0x166,-0x121,'A&7q',-0x158,-0x1d5)+_0x2ea6f0(-0x306,-0x2c8,'WDJq',-0x21d,-0x3c4)+_0x2ea6f0(-0x16e,-0x118,'wbvf',-0x1c3,-0xfe)+')','bKSPw':_0x2ea6f0(-0x2d8,-0x21f,'Ve]j',-0x22c,-0x3a3)+_0x2ea6f0(-0x230,-0x1e4,'VAqe',-0x22d,-0x272)+_0x2ea6f0(-0x170,-0x11f,'WDJq',-0x20b,-0xdf)+_0x2ea6f0(-0x30d,-0x3c1,'(LJN',-0x39f,-0x3dd)+_0x2ea6f0(-0x25b,-0x1de,'n7pr',-0x2b5,-0x22e)+_0x2ea6f0(-0x2a6,-0x220,'OBXi',-0x2b3,-0x313)+_0x2ea6f0(-0x2ee,-0x344,'Cv!Z',-0x208,-0x224),'cDrAf':_0x2ea6f0(-0x244,-0x2e2,'(LJN',-0x2ca,-0x1b0),'TSTud':function(_0x22d2e9,_0x1a1401){return _0x22d2e9+_0x1a1401;},'XHTPY':_0x2ea6f0(-0x137,-0x181,'Ve]j',-0xfd,-0x225),'TQPXM':function(_0x44aee2,_0x5e4a58){return _0x44aee2+_0x5e4a58;},'CAhOi':_0x2ea6f0(-0x1ae,-0x112,'(cZx',-0x1e5,-0x1d2),'KCKYU':function(_0x2ee661,_0x4c3ca4){return _0x2ee661(_0x4c3ca4);},'JbpzR':function(_0x3f724c){return _0x3f724c();},'ZoPFf':function(_0x4ca05b,_0x599739){return _0x4ca05b!==_0x599739;},'jBrwj':_0x2ea6f0(-0x26e,-0x1ee,'YpZe',-0x2d4,-0x248),'DbHNg':function(_0x1a58f5,_0x10856d){return _0x1a58f5!==_0x10856d;},'MHCMU':_0x2ea6f0(-0x1a1,-0x114,'*wb*',-0x214,-0x1e2),'cEttB':_0x2ea6f0(-0x302,-0x3c7,'rjMy',-0x26f,-0x2f3),'beaBt':function(_0x14f773,_0x229b1c){return _0x14f773===_0x229b1c;},'QiShG':_0x2ea6f0(-0x146,-0x1f9,'pEiS',-0xdc,-0x13a),'VuVIj':_0x2ea6f0(-0x298,-0x214,'A24O',-0x1b5,-0x2d8),'GjEvr':function(_0x1e2b17,_0x33ff42){return _0x1e2b17(_0x33ff42);}};function _0x2ea6f0(_0x4088c8,_0x49e6d7,_0x5ceae4,_0x2cf9eb,_0x7f1696){return _0x3c1aa6(_0x4088c8-0x13f,_0x5ceae4,_0x5ceae4-0x6,_0x2cf9eb-0xb2,_0x4088c8- -0x565);}function _0x22bb47(_0x4648ad){const _0x1e4268={'ouWUY':function(_0x3e3b84,_0x275f90){function _0x1a8e7e(_0x10ed13,_0xa5226e,_0x52d618,_0xe20275,_0x14a8e6){return _0x4d50(_0xe20275-0x1fd,_0x14a8e6);}return _0x12b00f[_0x1a8e7e(0x43c,0x2f6,0x3b1,0x3da,'tW5g')](_0x3e3b84,_0x275f90);},'JRdIm':_0x12b00f[_0x33b291(0x31f,0x373,0x2af,0x40c,'ZXz$')],'Venxt':_0x12b00f[_0x33b291(0x405,0x40b,0x3fe,0x46a,'MDn$')],'hIKAq':_0x12b00f[_0x33b291(0x337,0x3b9,0x2f3,0x3dc,'%YtY')],'fbDzr':function(_0x12acc9,_0x1bb90f){function _0x463d9d(_0x307fa3,_0x49be19,_0x13e80c,_0x1c0c41,_0x2ae48f){return _0x33b291(_0x49be19- -0x395,_0x49be19-0x2f,_0x13e80c-0xc,_0x1c0c41-0xee,_0x1c0c41);}return _0x12b00f[_0x463d9d(0xeb,0xff,0x1ce,'97RK',0xaf)](_0x12acc9,_0x1bb90f);},'aQQul':_0x12b00f[_0x33b291(0x438,0x4a5,0x4a2,0x489,'(LJN')]};function _0x33b291(_0x564699,_0x1fd6c4,_0x8822e4,_0x1f10d0,_0x285758){return _0x2ea6f0(_0x564699-0x61f,_0x1fd6c4-0x3a,_0x285758,_0x1f10d0-0x8,_0x285758-0xa1);}if(_0x12b00f[_0x33b291(0x440,0x527,0x392,0x417,'W(Q$')](_0x12b00f[_0x33b291(0x426,0x36e,0x497,0x45f,'MDn$')],_0x12b00f[_0x33b291(0x3c3,0x2e7,0x375,0x491,'tW5g')]))_0x2d954d=_0x52321c;else{if(_0x12b00f[_0x33b291(0x4d4,0x4c1,0x579,0x5bd,'z6bj')](typeof _0x4648ad,_0x12b00f[_0x33b291(0x361,0x421,0x322,0x3b1,'M)7$')])){if(_0x12b00f[_0x33b291(0x456,0x37c,0x48d,0x50d,'OBXi')](_0x12b00f[_0x33b291(0x47a,0x3af,0x390,0x434,'PuyA')],_0x12b00f[_0x33b291(0x32b,0x419,0x26c,0x3b4,'jhX]')])){const _0x6167b9=_0x1b7fbe?function(){function _0x2fd88d(_0x244622,_0x1cd90b,_0x12c8a3,_0x17f633,_0xb706a9){return _0x33b291(_0x244622- -0x58a,_0x1cd90b-0xc9,_0x12c8a3-0x2f,_0x17f633-0xf8,_0x12c8a3);}if(_0x1503ed){const _0xd19e02=_0x577acc[_0x2fd88d(-0x191,-0x201,'9Ksn',-0x25e,-0x188)](_0x5192a5,arguments);return _0x5b8dd8=null,_0xd19e02;}}:function(){};return _0x4832ce=![],_0x6167b9;}else return function(_0x1a769a){}[_0x33b291(0x398,0x3a8,0x316,0x3d6,'wbvf')+_0x33b291(0x3f8,0x395,0x3a4,0x490,'pEiS')+'r'](_0x12b00f[_0x33b291(0x493,0x3b1,0x468,0x4ff,'A24O')])[_0x33b291(0x3bb,0x339,0x386,0x3c7,'9ETV')](_0x12b00f[_0x33b291(0x414,0x3f6,0x4e6,0x4e6,'G^D3')]);}else{if(_0x12b00f[_0x33b291(0x439,0x4c7,0x461,0x458,'Ve]j')](_0x12b00f[_0x33b291(0x41e,0x483,0x34a,0x423,'f%nw')],_0x12b00f[_0x33b291(0x453,0x40f,0x4f5,0x50c,'WDJq')])){if(_0x391b50){const _0x9704b=_0x4b600e[_0x33b291(0x40b,0x498,0x319,0x44c,'Ve]j')](_0x1cdc55,arguments);return _0x6aa7dc=null,_0x9704b;}}else{if(_0x12b00f[_0x33b291(0x3e3,0x3ac,0x303,0x42d,'9Ksn')](_0x12b00f[_0x33b291(0x30e,0x2fc,0x296,0x35f,'W(Q$')]('',_0x12b00f[_0x33b291(0x31b,0x285,0x2f2,0x283,'(cZx')](_0x4648ad,_0x4648ad))[_0x12b00f[_0x33b291(0x417,0x33b,0x471,0x3d9,'Amln')]],-0x312*-0xc+-0x116*0x1e+-0x443*0x1)||_0x12b00f[_0x33b291(0x4dc,0x58d,0x49f,0x444,'Omwg')](_0x12b00f[_0x33b291(0x497,0x494,0x51a,0x553,'Omwg')](_0x4648ad,-0x42*-0x52+-0x1353*-0x1+-0x2863),0x3bd+-0x2*0x2e9+-0x29*-0xd)){if(_0x12b00f[_0x33b291(0x32c,0x3aa,0x33f,0x33a,'4vvL')](_0x12b00f[_0x33b291(0x30b,0x24b,0x3b9,0x21d,'Vj5Y')],_0x12b00f[_0x33b291(0x334,0x256,0x361,0x37b,'Amln')]))(function(){function _0x421b46(_0x15cb04,_0x2b4327,_0xfcfe6b,_0x5ecb57,_0x1d9447){return _0x33b291(_0xfcfe6b- -0x63f,_0x2b4327-0x164,_0xfcfe6b-0x18c,_0x5ecb57-0x193,_0x15cb04);}if(_0x1e4268[_0x421b46('ZXz$',-0x217,-0x25d,-0x1c2,-0x2d6)](_0x1e4268[_0x421b46('f%nw',-0x298,-0x316,-0x306,-0x3b2)],_0x1e4268[_0x421b46('MDn$',-0x390,-0x31e,-0x40e,-0x396)]))return!![];else(function(){return!![];}[_0x421b46('9ETV',-0x24e,-0x278,-0x21c,-0x1ce)+_0x421b46('f%nw',-0x2ed,-0x243,-0x1e8,-0x277)+'r'](_0x1e4268[_0x421b46('Vj5Y',-0x2c5,-0x1d2,-0x1f7,-0x25f)](_0x1e4268[_0x421b46('jhX]',-0x1a8,-0x1a5,-0xe8,-0x170)],_0x1e4268[_0x421b46('9ETV',-0x21d,-0x2eb,-0x338,-0x2c5)]))[_0x421b46('*wb*',-0x1a2,-0x25b,-0x260,-0x274)](_0x1e4268[_0x421b46('M)7$',-0x224,-0x245,-0x1cd,-0x1dd)]));}[_0x33b291(0x39a,0x329,0x3fc,0x413,'OBXi')+_0x33b291(0x40f,0x4fc,0x446,0x346,'VAqe')+'r'](_0x12b00f[_0x33b291(0x36e,0x34d,0x31e,0x31d,'n7pr')](_0x12b00f[_0x33b291(0x3d0,0x354,0x4b6,0x33d,'M)7$')],_0x12b00f[_0x33b291(0x4d5,0x3f4,0x4c2,0x405,'9Ksn')]))[_0x33b291(0x4a0,0x4d8,0x4f6,0x55c,'n7pr')](_0x12b00f[_0x33b291(0x4e4,0x563,0x428,0x57a,'ZXz$')]));else{const _0x183b13=_0x3d8bf9[_0x33b291(0x3af,0x301,0x3d0,0x2dc,'PuyA')](_0x21b060,arguments);return _0x1a5fbf=null,_0x183b13;}}else{if(_0x12b00f[_0x33b291(0x37a,0x2a9,0x3fd,0x2e1,'rjMy')](_0x12b00f[_0x33b291(0x330,0x3f9,0x32b,0x299,'Vj5Y')],_0x12b00f[_0x33b291(0x4e1,0x533,0x5d3,0x402,'f%nw')]))return _0x4988a4;else(function(){function _0x557270(_0x140221,_0x109984,_0x40807c,_0x18cf11,_0x466d67){return _0x33b291(_0x140221- -0x591,_0x109984-0x161,_0x40807c-0x19,_0x18cf11-0xde,_0x109984);}if(_0x12b00f[_0x557270(-0x24c,'tW5g',-0x327,-0x256,-0x28b)](_0x12b00f[_0x557270(-0x121,'jhX]',-0x126,-0x91,-0x14e)],_0x12b00f[_0x557270(-0x1d5,'4vvL',-0x288,-0x24f,-0x1f3)])){if(_0x568be7){const _0x29e2ce=_0x39c8b4[_0x557270(-0x22d,'A24O',-0x2d3,-0x2b1,-0x293)](_0x2d376f,arguments);return _0x4b11fe=null,_0x29e2ce;}}else return![];}[_0x33b291(0x3a6,0x367,0x312,0x480,'M)7$')+_0x33b291(0x407,0x3dd,0x406,0x3e3,'g1dQ')+'r'](_0x12b00f[_0x33b291(0x3a0,0x40e,0x35f,0x35d,'bMjP')](_0x12b00f[_0x33b291(0x31f,0x279,0x305,0x411,'ZXz$')],_0x12b00f[_0x33b291(0x3e8,0x4b5,0x38d,0x417,'Vj5Y')]))[_0x33b291(0x377,0x3dc,0x3f0,0x3f3,'Cv!Z')](_0x12b00f[_0x33b291(0x325,0x3b4,0x3a6,0x2bf,'WDJq')]));}}}_0x12b00f[_0x33b291(0x4e6,0x4b2,0x437,0x44c,'n(iZ')](_0x22bb47,++_0x4648ad);}}try{if(_0x12b00f[_0x2ea6f0(-0x219,-0x2ef,'W(Q$',-0x216,-0x140)](_0x12b00f[_0x2ea6f0(-0x212,-0x2c8,'oult',-0x16a,-0x169)],_0x12b00f[_0x2ea6f0(-0x232,-0x165,'PuyA',-0x238,-0x20d)]))(function(){return![];}[_0x2ea6f0(-0x259,-0x238,'bMjP',-0x215,-0x249)+_0x2ea6f0(-0x243,-0x185,'97RK',-0x166,-0x2e4)+'r'](_0x12b00f[_0x2ea6f0(-0x1e1,-0x289,'(cZx',-0x2a3,-0x185)](_0x12b00f[_0x2ea6f0(-0x2b5,-0x27a,'%YtY',-0x343,-0x27d)],_0x12b00f[_0x2ea6f0(-0x1ec,-0x230,'(cZx',-0x21d,-0x133)]))[_0x2ea6f0(-0x1ba,-0x1d8,'6a3m',-0x245,-0xfe)](_0x12b00f[_0x2ea6f0(-0x1de,-0x2ae,'rjMy',-0x1e4,-0x231)]));else{if(_0x14c4d2){if(_0x12b00f[_0x2ea6f0(-0x310,-0x326,'%YtY',-0x33a,-0x308)](_0x12b00f[_0x2ea6f0(-0x182,-0x259,'WDJq',-0xd0,-0x116)],_0x12b00f[_0x2ea6f0(-0x22e,-0x1fd,'yQ0l',-0x2c7,-0x2f8)]))return _0x22bb47;else{let _0x5bbca0;try{_0x5bbca0=_0x12b00f[_0x2ea6f0(-0x1d1,-0x1c7,'fs8c',-0x139,-0x17c)](_0x27f8f7,_0x12b00f[_0x2ea6f0(-0x1ca,-0x231,'9Ksn',-0x14f,-0x245)](_0x12b00f[_0x2ea6f0(-0x2b9,-0x2e7,'Omwg',-0x2d2,-0x354)](_0x12b00f[_0x2ea6f0(-0x255,-0x1e3,'YpZe',-0x1a8,-0x28f)],_0x12b00f[_0x2ea6f0(-0x26a,-0x34d,'OBXi',-0x2e3,-0x238)]),');'))();}catch(_0x307759){_0x5bbca0=_0x35586b;}return _0x5bbca0;}}else{if(_0x12b00f[_0x2ea6f0(-0x2e2,-0x32c,'rjMy',-0x382,-0x34b)](_0x12b00f[_0x2ea6f0(-0x1f4,-0x1a9,'YpZe',-0x213,-0x1e4)],_0x12b00f[_0x2ea6f0(-0x19d,-0x240,'CJUe',-0x217,-0x19a)])){const _0x42f0bd=new _0x5e22a7(_0x12b00f[_0x2ea6f0(-0x27b,-0x2fe,'#6hF',-0x255,-0x2a0)]),_0x2225f3=new _0x40b992(_0x12b00f[_0x2ea6f0(-0x2c7,-0x23d,'p[wv',-0x36c,-0x270)],'i'),_0x14dba1=_0x12b00f[_0x2ea6f0(-0x312,-0x23a,'tW5g',-0x2bc,-0x2d3)](_0x2bb4af,_0x12b00f[_0x2ea6f0(-0x293,-0x228,'6a3m',-0x28c,-0x1f2)]);!_0x42f0bd[_0x2ea6f0(-0x2a2,-0x2d6,'%YtY',-0x320,-0x301)](_0x12b00f[_0x2ea6f0(-0x308,-0x3d3,'fs8c',-0x26f,-0x291)](_0x14dba1,_0x12b00f[_0x2ea6f0(-0x2ba,-0x25d,'Amln',-0x1e1,-0x37d)]))||!_0x2225f3[_0x2ea6f0(-0x183,-0xd8,'Omwg',-0x1d2,-0x265)](_0x12b00f[_0x2ea6f0(-0x1d4,-0x13f,'9ETV',-0x125,-0x140)](_0x14dba1,_0x12b00f[_0x2ea6f0(-0x2a1,-0x334,'z6bj',-0x216,-0x212)]))?_0x12b00f[_0x2ea6f0(-0x268,-0x1bb,'G^D3',-0x1da,-0x1b8)](_0x14dba1,'0'):_0x12b00f[_0x2ea6f0(-0x222,-0x228,'9ETV',-0x189,-0x1ea)](_0x496a72);}else _0x12b00f[_0x2ea6f0(-0x2ac,-0x237,'A&7q',-0x211,-0x39d)](_0x22bb47,0x2*0x8ba+0x1fd0+-0x3144);}}}catch(_0x26cbe0){}}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type {StyleResourcesFileFormat} from '..';
|
2
|
+
|
3
|
+
export const PACKAGE_NAME = 'style-resources-loader';
|
4
|
+
|
5
|
+
export const ISSUES_URL = `https://github.com/yenshih/${PACKAGE_NAME}/issues`;
|
6
|
+
|
7
|
+
export const LOADER_NAME = PACKAGE_NAME.split('-')
|
8
|
+
.map(word => `${word[0].toUpperCase()}${word.slice(1)}`)
|
9
|
+
.join(' ');
|
10
|
+
|
11
|
+
export const VALIDATION_BASE_DATA_PATH = 'options';
|
12
|
+
|
13
|
+
export const SUPPORTED_FILE_FORMATS: StyleResourcesFileFormat[] = ['css', 'sass', 'scss', 'less', 'styl'];
|
14
|
+
|
15
|
+
export const SUPPORTED_FILE_EXTS = SUPPORTED_FILE_FORMATS.map(type => `.${type}`);
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import {PACKAGE_NAME, ISSUES_URL} from './constants';
|
2
|
+
|
3
|
+
const formatErrorMessage = (message: string) => `[${PACKAGE_NAME}] ${message}`;
|
4
|
+
|
5
|
+
const messageByType = {
|
6
|
+
impossible: `This error is caused by a bug. Please file an issue: ${ISSUES_URL}.`,
|
7
|
+
syncCompilation: 'Synchronous compilation is not supported.',
|
8
|
+
invalidInjectorReturn: 'Expected options.injector(...) returns a string. Instead received number.',
|
9
|
+
};
|
10
|
+
|
11
|
+
export const errorMessage = Object.entries(messageByType).reduce(
|
12
|
+
(errorMessage, [type, message]) => ({
|
13
|
+
...errorMessage,
|
14
|
+
[type]: formatErrorMessage(message),
|
15
|
+
}),
|
16
|
+
messageByType,
|
17
|
+
);
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import fs from 'fs';
|
2
|
+
import util from 'util';
|
3
|
+
|
4
|
+
import type {LoaderContext, StyleResource, StyleResourcesLoaderNormalizedOptions} from '..';
|
5
|
+
|
6
|
+
import {matchFiles} from './match-files';
|
7
|
+
import {resolveImportUrl} from './resolve-import-url';
|
8
|
+
|
9
|
+
export const getResources = async (ctx: LoaderContext, options: StyleResourcesLoaderNormalizedOptions) => {
|
10
|
+
const {resolveUrl} = options;
|
11
|
+
|
12
|
+
const files = await matchFiles(ctx, options);
|
13
|
+
|
14
|
+
files.forEach(file => ctx.dependency(file));
|
15
|
+
|
16
|
+
const resources = await Promise.all(
|
17
|
+
files.map(async file => {
|
18
|
+
const content = await util.promisify(fs.readFile)(file, 'utf8');
|
19
|
+
const resource: StyleResource = {file, content};
|
20
|
+
|
21
|
+
return resolveUrl ? resolveImportUrl(ctx, resource) : resource;
|
22
|
+
}),
|
23
|
+
);
|
24
|
+
|
25
|
+
return resources;
|
26
|
+
};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export * from './constants';
|
2
|
+
export * from './error-message';
|
3
|
+
export * from './get-resources';
|
4
|
+
export * from './inject-resources';
|
5
|
+
export * from './load-resources';
|
6
|
+
export * from './match-files';
|
7
|
+
export * from './normalize-options';
|
8
|
+
export * from './resolve-import-url';
|
9
|
+
export * from './type-guards';
|
10
|
+
export * from './validate-options';
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { LoaderContext } from '../types';
|
2
|
+
import type {StyleResources, StyleResourcesLoaderNormalizedOptions} from '..';
|
3
|
+
|
4
|
+
import {errorMessage} from './error-message';
|
5
|
+
|
6
|
+
export const injectResources = async (
|
7
|
+
options: StyleResourcesLoaderNormalizedOptions,
|
8
|
+
source: string,
|
9
|
+
resources: StyleResources,
|
10
|
+
ctx: LoaderContext
|
11
|
+
) => {
|
12
|
+
const {injector} = options;
|
13
|
+
|
14
|
+
const dist: unknown = injector(source, resources, ctx);
|
15
|
+
|
16
|
+
const content = await dist;
|
17
|
+
|
18
|
+
if (typeof content !== 'string') {
|
19
|
+
throw new Error(errorMessage.invalidInjectorReturn);
|
20
|
+
}
|
21
|
+
|
22
|
+
return content;
|
23
|
+
};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import type {LoaderContext, LoaderCallback} from '..';
|
2
|
+
|
3
|
+
import {getResources} from './get-resources';
|
4
|
+
import {injectResources} from './inject-resources';
|
5
|
+
import {normalizeOptions} from './normalize-options';
|
6
|
+
|
7
|
+
export const loadResources = async (ctx: LoaderContext, source: string, callback: LoaderCallback) => {
|
8
|
+
try {
|
9
|
+
const options = normalizeOptions(ctx);
|
10
|
+
|
11
|
+
const resources = await getResources(ctx, options);
|
12
|
+
|
13
|
+
const content = await injectResources(options, source, resources, ctx);
|
14
|
+
|
15
|
+
callback(null, content);
|
16
|
+
} catch (err) {
|
17
|
+
callback(err);
|
18
|
+
}
|
19
|
+
};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
import util from 'util';
|
3
|
+
|
4
|
+
import glob from 'glob';
|
5
|
+
|
6
|
+
import type {LoaderContext, StyleResourcesLoaderNormalizedOptions} from '..';
|
7
|
+
|
8
|
+
import {isStyleFile} from './type-guards';
|
9
|
+
|
10
|
+
/* eslint-disable-next-line @typescript-eslint/no-unsafe-member-access */
|
11
|
+
const isLegacyWebpack = (ctx: any): ctx is {options: {context: string}} => !!ctx.options;
|
12
|
+
|
13
|
+
const getRootContext = (ctx: LoaderContext) => {
|
14
|
+
/* istanbul ignore if: will be deprecated soon */
|
15
|
+
if (isLegacyWebpack(ctx)) {
|
16
|
+
return ctx.options.context;
|
17
|
+
}
|
18
|
+
|
19
|
+
return ctx.rootContext;
|
20
|
+
};
|
21
|
+
|
22
|
+
const flatten = <T>(items: T[][]) => {
|
23
|
+
const emptyItems: T[] = [];
|
24
|
+
|
25
|
+
return emptyItems.concat(...items);
|
26
|
+
};
|
27
|
+
|
28
|
+
export const matchFiles = async (ctx: LoaderContext, options: StyleResourcesLoaderNormalizedOptions) => {
|
29
|
+
const {patterns, globOptions} = options;
|
30
|
+
|
31
|
+
const files = await Promise.all(
|
32
|
+
patterns.map(async pattern => {
|
33
|
+
const rootContext = getRootContext(ctx);
|
34
|
+
const absolutePattern = path.isAbsolute(pattern) ? pattern : path.resolve(rootContext, pattern);
|
35
|
+
const partialFiles = await util.promisify(glob)(absolutePattern, globOptions);
|
36
|
+
|
37
|
+
return partialFiles.filter(isStyleFile);
|
38
|
+
}),
|
39
|
+
);
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Glob always returns Unix-style file paths which would have cache invalidation problems on Windows.
|
43
|
+
* Use `path.resolve()` to convert Unix-style file paths to system-compatible ones.
|
44
|
+
*
|
45
|
+
* @see {@link https://github.com/yenshih/style-resources-loader/issues/17}
|
46
|
+
*/
|
47
|
+
return [...new Set(flatten(files))].map(file => path.resolve(file));
|
48
|
+
};
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import {EOL} from 'os';
|
2
|
+
|
3
|
+
import {getOptions} from 'loader-utils';
|
4
|
+
|
5
|
+
import type {
|
6
|
+
LoaderContext,
|
7
|
+
StyleResource,
|
8
|
+
StyleResourcesNormalizedInjector,
|
9
|
+
StyleResourcesLoaderOptions,
|
10
|
+
StyleResourcesLoaderNormalizedOptions,
|
11
|
+
} from '..';
|
12
|
+
|
13
|
+
import {validateOptions} from './validate-options';
|
14
|
+
|
15
|
+
const normalizePatterns = (patterns: StyleResourcesLoaderOptions['patterns']) =>
|
16
|
+
Array.isArray(patterns) ? patterns : [patterns];
|
17
|
+
|
18
|
+
const coerceContentEOL = (content: string) => (content.endsWith(EOL) ? content : `${content}${EOL}`);
|
19
|
+
const getResourceContent = ({content}: StyleResource) => coerceContentEOL(content);
|
20
|
+
|
21
|
+
const normalizeInjector = (injector: StyleResourcesLoaderOptions['injector']): StyleResourcesNormalizedInjector => {
|
22
|
+
if (typeof injector === 'undefined' || injector === 'prepend') {
|
23
|
+
return (source, resources) => resources.map(getResourceContent).join('') + source;
|
24
|
+
}
|
25
|
+
|
26
|
+
if (injector === 'append') {
|
27
|
+
return (source, resources) => source + resources.map(getResourceContent).join('');
|
28
|
+
}
|
29
|
+
|
30
|
+
return injector;
|
31
|
+
};
|
32
|
+
|
33
|
+
export const normalizeOptions = (ctx: LoaderContext): StyleResourcesLoaderNormalizedOptions => {
|
34
|
+
const options = getOptions(ctx);
|
35
|
+
|
36
|
+
validateOptions<StyleResourcesLoaderOptions>(options);
|
37
|
+
|
38
|
+
const {patterns, injector, globOptions = {}, resolveUrl = true} = options;
|
39
|
+
|
40
|
+
return {
|
41
|
+
patterns: normalizePatterns(patterns),
|
42
|
+
injector: normalizeInjector(injector),
|
43
|
+
globOptions,
|
44
|
+
resolveUrl,
|
45
|
+
};
|
46
|
+
};
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
|
3
|
+
import type {LoaderContext, StyleResource} from '..';
|
4
|
+
|
5
|
+
/* eslint-disable-next-line prefer-named-capture-group */
|
6
|
+
const regex = /@(?:import|require)\s+(?:\([a-z,\s]+\)\s*)?['"]?([^'"\s;]+)['"]?;?/gu;
|
7
|
+
|
8
|
+
export const resolveImportUrl = (ctx: LoaderContext, {file, content}: StyleResource): StyleResource => ({
|
9
|
+
file,
|
10
|
+
content: content.replace(regex, (match: string, pathToResource?: string) => {
|
11
|
+
if (!pathToResource || /^[~/]/u.test(pathToResource)) {
|
12
|
+
return match;
|
13
|
+
}
|
14
|
+
|
15
|
+
const absolutePathToResource = path.resolve(path.dirname(file), pathToResource);
|
16
|
+
const relativePathFromContextToResource = path
|
17
|
+
.relative(ctx.context, absolutePathToResource)
|
18
|
+
.split(path.sep)
|
19
|
+
.join('/');
|
20
|
+
|
21
|
+
return match.replace(pathToResource, relativePathFromContextToResource);
|
22
|
+
}),
|
23
|
+
});
|
Binary file
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
|
3
|
+
import {SUPPORTED_FILE_EXTS} from './constants';
|
4
|
+
|
5
|
+
export const isFunction = <T extends (...args: any[]) => any>(arg: any): arg is T => typeof arg === 'function';
|
6
|
+
|
7
|
+
export const isStyleFile = (file: string) => SUPPORTED_FILE_EXTS.includes(path.extname(file));
|
Binary file
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import {validate} from 'schema-utils';
|
2
|
+
|
3
|
+
import {schema} from '../schema';
|
4
|
+
|
5
|
+
import {LOADER_NAME, VALIDATION_BASE_DATA_PATH} from './constants';
|
6
|
+
|
7
|
+
export const validateOptions: <T>(options: any) => asserts options is T = options =>
|
8
|
+
validate(schema, options, {
|
9
|
+
name: LOADER_NAME,
|
10
|
+
baseDataPath: VALIDATION_BASE_DATA_PATH,
|
11
|
+
});
|