From efe41f68868a8926dfc1a6851a492805b56786db Mon Sep 17 00:00:00 2001
From: gjj <Ganjj@probim.com.cn>
Date: Fri, 21 Feb 2025 16:35:52 +0800
Subject: [PATCH] 样式开发
---
src/assets/images/backgrounds/shigongdanwei.png | 0
src/assets/images/titles/shebei.png | 0
src/assets/images/backgrounds/people.png | 0
src/utils/http.js | 280
src/assets/images/backgrounds/daqiwendu.png | 0
src/assets/images/backgrounds/cover_bg.png | 0
src/assets/images/backgrounds/jianshedanwei.png | 0
src/assets/images/backgrounds/zhihui_active.png | 0
src/assets/images/backgrounds/shejidanwei.png | 0
src/assets/images/backgrounds/home.png | 0
src/assets/images/backgrounds/zoomout.png | 0
reg-js-sdjk.reg | 8
public/crypto-js.js | 5736 +++++++++++++++++++
src/assets/images/backgrounds/search.png | 0
src/components/SizeAdapter.vue | 45
.eslintrc.js | 52
src/Dashboard.vue | 188
index.html | 25
src/components/MenuList.vue | 264
src/assets/images/titles/xiangmu_bg.png | 0
src/assets/images/backgrounds/PM10.png | 0
src/components/V2Echarts.vue | 176
vite.config.js | 98
src/components/Collapse.vue | 154
src/components/Divide.vue | 46
src/assets/images/backgrounds/table_bg.png | 0
src/assets/css/self-global.scss | 40
src/components/Login.vue | 171
src/assets/images/backgrounds/jianlidanwei.png | 0
reg-js-sgfa.reg | 8
src/api/app.js | 9
src/store/index.js | 16
src/components/FullScreenButton.vue | 62
src/assets/css/element-ui-override.scss | 140
src/components/Warning.vue | 20
src/assets/css/sass.scss | 3
src/assets/images/backgrounds/fengxiang.png | 0
src/assets/images/backgrounds/shishirenshu.png | 0
src/router/index.js | 45
src/assets/css/tail-wind/index.css | 5
README.md | 14
src/components/TransitionSize.vue | 253
src/components/VideoPlayer.vue | 91
src/main.js | 29
yarn.lock | 1845 ++++++
src/assets/images/backgrounds/PM2.png | 0
src/components/Header.vue | 98
src/assets/images/backgrounds/home_active.png | 0
src/assets/images/backgrounds/logo.png | 0
src/views/Home.vue | 314 +
src/assets/images/backgrounds/time.png | 0
src/mixins/index.js | 22
src/assets/images/backgrounds/mubiaowancheng.png | 0
src/components/TimeLine/TimeLineItem.vue | 67
postcss.config.js | 11
src/components/DialogFixed.vue | 108
src/views/EquipmentView.vue | 618 ++
src/assets/images/titles/renyuan.png | 0
src/views/ProjectView.vue | 305 +
.gitignore | 26
tailwind.config.js | 23
icon.png | 0
src/assets/images/backgrounds/daqishidu.png | 0
jsconfig.json | 11
src/assets/images/backgrounds/zhihui.png | 0
src/utils/getToken.js | 9
public/base64.js | 316 +
src/assets/images/backgrounds/screen.png | 0
src/components/DropDown.vue | 108
public/config.js | 11
src/store/modules/common.js | 20
src/assets/images/titles/title_second.png | 0
src/assets/images/backgrounds/mubiaowanc.png | 0
src/assets/images/backgrounds/fengli.png | 0
src/components/SwitchMap.vue | 46
src/components/TimeLine/TimeLine.vue | 101
src/utils/getUserProfile.js | 9
src/assets/images/backgrounds/jianzhumianji.png | 0
src/assets/images/backgrounds/home_line.png | 0
src/api/home.js | 45
大屏.xmind | 0
src/assets/images/titles/xiangmu.png | 0
public/ref/style/darkblue.json | 2571 ++++++++
src/assets/images/backgrounds/zaigang.png | 0
src/assets/images/titles/shigong.png | 0
src/assets/css/DIN_font.css | 23
package.json | 47
src/assets/images/titles/wendu_bg.png | 0
.prettierrc.json | 19
src/assets/images/backgrounds/shigongjinduchart.png | 0
public/ref/style/satellite.json | 2631 +++++++++
src/sceneJSON.js | 2
src/App.vue | 17
src/assets/images/titles/huanjing.png | 0
src/utils/logout.js | 19
startscg.bat | 3
96 files changed, 17,423 insertions(+), 0 deletions(-)
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..5c8a138
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,52 @@
+const { defineConfig } = require("eslint-define-config");
+module.exports = defineConfig({
+ root: true,
+ env: {
+ browser: true,
+ node: true,
+ es6: true,
+ },
+ parser: "vue-eslint-parser",
+ parserOptions: {
+ ecmaVersion: "latest",
+ sourceType: "module",
+ },
+ extends: ["plugin:vue/recommended", "plugin:prettier/recommended"],
+ plugins: ["vue"],
+ rules: {
+ "vue/script-setup-uses-vars": "error",
+ "vue/custom-event-name-casing": "off",
+ "no-use-before-define": "off",
+ "no-unused-vars": [
+ "error",
+ {
+ argsIgnorePattern: "^_",
+ varsIgnorePattern: "^_",
+ },
+ ],
+ "space-before-function-paren": "off",
+ "vue/attributes-order": "off",
+ "vue/one-component-per-file": "off",
+ "vue/html-closing-bracket-newline": "off",
+ "vue/max-attributes-per-line": "off",
+ "vue/multiline-html-element-content-newline": "off",
+ "vue/singleline-html-element-content-newline": "off",
+ "vue/attribute-hyphenation": "off",
+ "vue/require-default-prop": "off",
+ "vue/html-self-closing": [
+ "error",
+ {
+ html: {
+ void: "always",
+ normal: "never",
+ component: "always",
+ },
+ svg: "always",
+ math: "always",
+ },
+ ],
+ "vue/multi-word-component-names": "off",
+ "vue/component-definition-name-casing": "off",
+ },
+ ignorePatterns: ["*.sh", "node_modules", "*.md", "*.woff", "*.ttf", ".vscode", ".idea", "dist", "/public", "/docs", ".husky", ".local", "/bin", "Dockerfile"],
+});
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1b51fec
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,26 @@
+.DS_Store
+node_modules
+/dist
+public/scenemanager
+
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+.eslintcache
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..d6d1d37
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,19 @@
+{
+ "printWidth": 160,
+ "tabWidth": 2,
+ "useTabs": false,
+ "semi": true,
+ "vueIndentScriptAndStyle": true,
+ "singleQuote": false,
+ "quoteProps": "as-needed",
+ "bracketSpacing": true,
+ "trailingComma": "all",
+ "jsxBracketSameLine": false,
+ "jsxSingleQuote": false,
+ "arrowParens": "always",
+ "insertPragma": false,
+ "requirePragma": false,
+ "proseWrap": "never",
+ "htmlWhitespaceSensitivity": "strict",
+ "endOfLine": "auto"
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 5df9ffc..ffaa8cf 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,17 @@
北京交通大学驾驶舱
+
+## Build Setup
+
+``` bash
+# install dependencies
+yarn install
+
+# serve with hot reload at localhost:3000
+yarn run dev
+
+# build for production with minification
+yarn run build
+
+```
\ No newline at end of file
diff --git a/icon.png b/icon.png
new file mode 100644
index 0000000..14a16bc
--- /dev/null
+++ b/icon.png
Binary files differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..c87bfdd
--- /dev/null
+++ b/index.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+<head>
+ <meta charset="UTF-8" />
+ <script src="/config.js"></script>
+ <link rel="shortcut icon" type="image/x-icon" href="icon.png" />
+ <link href="https://multiverse.vothing.com/css/multiverse.css" rel="stylesheet" />
+ <link href="https://multiverse.vothing.com/css/mapbox-gl.css" rel="stylesheet" />
+ <script src="https://multiverse.vothing.com/js/comlink.min.js"></script>
+ <script src="https://multiverse.vothing.com/multiverse.js"></script>
+ <script src="base64.js"></script>
+ <script src="crypto-js.js"></script>
+ <script src="iat/index.umd.js"></script>
+ <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
+ <meta http-equiv="X-UA-Compatible" content="ie=edge" />
+ <title>北京交通大学驾驶舱</title>
+</head>
+
+<body>
+ <div id="app"></div>
+ <script type="module" src="./src/main.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 0000000..0f5cb53
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,11 @@
+{
+ "vueCompilerOptions": {
+ "target": 2.7
+ },
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["src/*"]
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..51cad57
--- /dev/null
+++ b/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "shanghaiproject",
+ "version": "1.0.0",
+ "description": "Shanghai construction saftey monitor project",
+ "author": "shanghaiproject",
+ "private": true,
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview",
+ "lint-fix": "eslint --max-warnings 0 \"src/**/*.{vue,js}\" --fix",
+ "lint": "eslint --max-warnings 0 \"src/**/*.{vue,js}\""
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue2": "^2.2.0",
+ "autoprefixer": "^10.4.13",
+ "eslint": "^8.30.0",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-define-config": "^1.12.0",
+ "eslint-plugin-prettier": "^4.2.1",
+ "eslint-plugin-vue": "^9.8.0",
+ "postcss-pxtorem": "^6.0.0",
+ "prettier": "^2.8.1",
+ "sass": "^1.57.1",
+ "tailwindcss": "^3.2.7",
+ "vite": "^4.0.3"
+ },
+ "dependencies": {
+ "axios": "^1.2.1",
+ "crypto-js": "^4.1.1",
+ "dayjs": "^1.11.7",
+ "echarts": "^5.4.1",
+ "echarts-gl": "2.0.9",
+ "element-ui": "^2.15.12",
+ "jquery": "^3.7.1",
+ "lodash-es": "^4.17.21",
+ "nanoid": "^4.0.0",
+ "nprogress": "^0.2.0",
+ "video.js": "^7.20.3",
+ "vue": "^2.7.14",
+ "vue-router": "^3.6.5",
+ "vue-seamless-scroll": "^1.1.23",
+ "vue-template-compiler": "^2.7.14",
+ "vuex": "^3.6.2",
+ "worker-loader": "2.0.0"
+ }
+}
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 0000000..9cecbe0
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,11 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ "postcss-pxtorem": {
+ propList: ["*"],
+ unitPrecision: 6,
+ exclude: /node_modules/i,
+ },
+ },
+};
diff --git a/public/base64.js b/public/base64.js
new file mode 100644
index 0000000..c44a6c8
--- /dev/null
+++ b/public/base64.js
@@ -0,0 +1,316 @@
+//
+// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND!
+//
+;
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ ? module.exports = factory()
+ : typeof define === 'function' && define.amd
+ ? define(factory) :
+ // cf. https://github.com/dankogai/js-base64/issues/119
+ (function () {
+ // existing version for noConflict()
+ var _Base64 = global.Base64;
+ var gBase64 = factory();
+ gBase64.noConflict = function () {
+ global.Base64 = _Base64;
+ return gBase64;
+ };
+ if (global.Meteor) { // Meteor.js
+ Base64 = gBase64;
+ }
+ global.Base64 = gBase64;
+ })();
+}((typeof self !== 'undefined' ? self
+ : typeof window !== 'undefined' ? window
+ : typeof global !== 'undefined' ? global
+ : this), function () {
+ 'use strict';
+ /**
+ * base64.ts
+ *
+ * Licensed under the BSD 3-Clause License.
+ * http://opensource.org/licenses/BSD-3-Clause
+ *
+ * References:
+ * http://en.wikipedia.org/wiki/Base64
+ *
+ * @author Dan Kogai (https://github.com/dankogai)
+ */
+ var version = '3.7.5';
+ /**
+ * @deprecated use lowercase `version`.
+ */
+ var VERSION = version;
+ var _hasatob = typeof atob === 'function';
+ var _hasbtoa = typeof btoa === 'function';
+ var _hasBuffer = typeof Buffer === 'function';
+ var _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
+ var _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
+ var b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
+ var b64chs = Array.prototype.slice.call(b64ch);
+ var b64tab = (function (a) {
+ var tab = {};
+ a.forEach(function (c, i) { return tab[c] = i; });
+ return tab;
+ })(b64chs);
+ var b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
+ var _fromCC = String.fromCharCode.bind(String);
+ var _U8Afrom = typeof Uint8Array.from === 'function'
+ ? Uint8Array.from.bind(Uint8Array)
+ : function (it) { return new Uint8Array(Array.prototype.slice.call(it, 0)); };
+ var _mkUriSafe = function (src) { return src
+ .replace(/=/g, '').replace(/[+\/]/g, function (m0) { return m0 == '+' ? '-' : '_'; }); };
+ var _tidyB64 = function (s) { return s.replace(/[^A-Za-z0-9\+\/]/g, ''); };
+ /**
+ * polyfill version of `btoa`
+ */
+ var btoaPolyfill = function (bin) {
+ // console.log('polyfilled');
+ var u32, c0, c1, c2, asc = '';
+ var pad = bin.length % 3;
+ for (var i = 0; i < bin.length;) {
+ if ((c0 = bin.charCodeAt(i++)) > 255 ||
+ (c1 = bin.charCodeAt(i++)) > 255 ||
+ (c2 = bin.charCodeAt(i++)) > 255)
+ throw new TypeError('invalid character found');
+ u32 = (c0 << 16) | (c1 << 8) | c2;
+ asc += b64chs[u32 >> 18 & 63]
+ + b64chs[u32 >> 12 & 63]
+ + b64chs[u32 >> 6 & 63]
+ + b64chs[u32 & 63];
+ }
+ return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
+ };
+ /**
+ * does what `window.btoa` of web browsers do.
+ * @param {String} bin binary string
+ * @returns {string} Base64-encoded string
+ */
+ var _btoa = _hasbtoa ? function (bin) { return btoa(bin); }
+ : _hasBuffer ? function (bin) { return Buffer.from(bin, 'binary').toString('base64'); }
+ : btoaPolyfill;
+ var _fromUint8Array = _hasBuffer
+ ? function (u8a) { return Buffer.from(u8a).toString('base64'); }
+ : function (u8a) {
+ // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
+ var maxargs = 0x1000;
+ var strs = [];
+ for (var i = 0, l = u8a.length; i < l; i += maxargs) {
+ strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
+ }
+ return _btoa(strs.join(''));
+ };
+ /**
+ * converts a Uint8Array to a Base64 string.
+ * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
+ * @returns {string} Base64 string
+ */
+ var fromUint8Array = function (u8a, urlsafe) {
+ if (urlsafe === void 0) { urlsafe = false; }
+ return urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);
+ };
+ // This trick is found broken https://github.com/dankogai/js-base64/issues/130
+ // const utob = (src: string) => unescape(encodeURIComponent(src));
+ // reverting good old fationed regexp
+ var cb_utob = function (c) {
+ if (c.length < 2) {
+ var cc = c.charCodeAt(0);
+ return cc < 0x80 ? c
+ : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
+ + _fromCC(0x80 | (cc & 0x3f)))
+ : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
+ + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
+ + _fromCC(0x80 | (cc & 0x3f)));
+ }
+ else {
+ var cc = 0x10000
+ + (c.charCodeAt(0) - 0xD800) * 0x400
+ + (c.charCodeAt(1) - 0xDC00);
+ return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
+ + _fromCC(0x80 | ((cc >>> 12) & 0x3f))
+ + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
+ + _fromCC(0x80 | (cc & 0x3f)));
+ }
+ };
+ var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
+ /**
+ * @deprecated should have been internal use only.
+ * @param {string} src UTF-8 string
+ * @returns {string} UTF-16 string
+ */
+ var utob = function (u) { return u.replace(re_utob, cb_utob); };
+ //
+ var _encode = _hasBuffer
+ ? function (s) { return Buffer.from(s, 'utf8').toString('base64'); }
+ : _TE
+ ? function (s) { return _fromUint8Array(_TE.encode(s)); }
+ : function (s) { return _btoa(utob(s)); };
+ /**
+ * converts a UTF-8-encoded string to a Base64 string.
+ * @param {boolean} [urlsafe] if `true` make the result URL-safe
+ * @returns {string} Base64 string
+ */
+ var encode = function (src, urlsafe) {
+ if (urlsafe === void 0) { urlsafe = false; }
+ return urlsafe
+ ? _mkUriSafe(_encode(src))
+ : _encode(src);
+ };
+ /**
+ * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
+ * @returns {string} Base64 string
+ */
+ var encodeURI = function (src) { return encode(src, true); };
+ // This trick is found broken https://github.com/dankogai/js-base64/issues/130
+ // const btou = (src: string) => decodeURIComponent(escape(src));
+ // reverting good old fationed regexp
+ var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
+ var cb_btou = function (cccc) {
+ switch (cccc.length) {
+ case 4:
+ var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
+ | ((0x3f & cccc.charCodeAt(1)) << 12)
+ | ((0x3f & cccc.charCodeAt(2)) << 6)
+ | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
+ return (_fromCC((offset >>> 10) + 0xD800)
+ + _fromCC((offset & 0x3FF) + 0xDC00));
+ case 3:
+ return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
+ | ((0x3f & cccc.charCodeAt(1)) << 6)
+ | (0x3f & cccc.charCodeAt(2)));
+ default:
+ return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
+ | (0x3f & cccc.charCodeAt(1)));
+ }
+ };
+ /**
+ * @deprecated should have been internal use only.
+ * @param {string} src UTF-16 string
+ * @returns {string} UTF-8 string
+ */
+ var btou = function (b) { return b.replace(re_btou, cb_btou); };
+ /**
+ * polyfill version of `atob`
+ */
+ var atobPolyfill = function (asc) {
+ // console.log('polyfilled');
+ asc = asc.replace(/\s+/g, '');
+ if (!b64re.test(asc))
+ throw new TypeError('malformed base64.');
+ asc += '=='.slice(2 - (asc.length & 3));
+ var u24, bin = '', r1, r2;
+ for (var i = 0; i < asc.length;) {
+ u24 = b64tab[asc.charAt(i++)] << 18
+ | b64tab[asc.charAt(i++)] << 12
+ | (r1 = b64tab[asc.charAt(i++)]) << 6
+ | (r2 = b64tab[asc.charAt(i++)]);
+ bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
+ : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
+ : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
+ }
+ return bin;
+ };
+ /**
+ * does what `window.atob` of web browsers do.
+ * @param {String} asc Base64-encoded string
+ * @returns {string} binary string
+ */
+ var _atob = _hasatob ? function (asc) { return atob(_tidyB64(asc)); }
+ : _hasBuffer ? function (asc) { return Buffer.from(asc, 'base64').toString('binary'); }
+ : atobPolyfill;
+ //
+ var _toUint8Array = _hasBuffer
+ ? function (a) { return _U8Afrom(Buffer.from(a, 'base64')); }
+ : function (a) { return _U8Afrom(_atob(a).split('').map(function (c) { return c.charCodeAt(0); })); };
+ /**
+ * converts a Base64 string to a Uint8Array.
+ */
+ var toUint8Array = function (a) { return _toUint8Array(_unURI(a)); };
+ //
+ var _decode = _hasBuffer
+ ? function (a) { return Buffer.from(a, 'base64').toString('utf8'); }
+ : _TD
+ ? function (a) { return _TD.decode(_toUint8Array(a)); }
+ : function (a) { return btou(_atob(a)); };
+ var _unURI = function (a) { return _tidyB64(a.replace(/[-_]/g, function (m0) { return m0 == '-' ? '+' : '/'; })); };
+ /**
+ * converts a Base64 string to a UTF-8 string.
+ * @param {String} src Base64 string. Both normal and URL-safe are supported
+ * @returns {string} UTF-8 string
+ */
+ var decode = function (src) { return _decode(_unURI(src)); };
+ /**
+ * check if a value is a valid Base64 string
+ * @param {String} src a value to check
+ */
+ var isValid = function (src) {
+ if (typeof src !== 'string')
+ return false;
+ var s = src.replace(/\s+/g, '').replace(/={0,2}$/, '');
+ return !/[^\s0-9a-zA-Z\+/]/.test(s) || !/[^\s0-9a-zA-Z\-_]/.test(s);
+ };
+ //
+ var _noEnum = function (v) {
+ return {
+ value: v, enumerable: false, writable: true, configurable: true
+ };
+ };
+ /**
+ * extend String.prototype with relevant methods
+ */
+ var extendString = function () {
+ var _add = function (name, body) { return Object.defineProperty(String.prototype, name, _noEnum(body)); };
+ _add('fromBase64', function () { return decode(this); });
+ _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });
+ _add('toBase64URI', function () { return encode(this, true); });
+ _add('toBase64URL', function () { return encode(this, true); });
+ _add('toUint8Array', function () { return toUint8Array(this); });
+ };
+ /**
+ * extend Uint8Array.prototype with relevant methods
+ */
+ var extendUint8Array = function () {
+ var _add = function (name, body) { return Object.defineProperty(Uint8Array.prototype, name, _noEnum(body)); };
+ _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });
+ _add('toBase64URI', function () { return fromUint8Array(this, true); });
+ _add('toBase64URL', function () { return fromUint8Array(this, true); });
+ };
+ /**
+ * extend Builtin prototypes with relevant methods
+ */
+ var extendBuiltins = function () {
+ extendString();
+ extendUint8Array();
+ };
+ var gBase64 = {
+ version: version,
+ VERSION: VERSION,
+ atob: _atob,
+ atobPolyfill: atobPolyfill,
+ btoa: _btoa,
+ btoaPolyfill: btoaPolyfill,
+ fromBase64: decode,
+ toBase64: encode,
+ encode: encode,
+ encodeURI: encodeURI,
+ encodeURL: encodeURI,
+ utob: utob,
+ btou: btou,
+ decode: decode,
+ isValid: isValid,
+ fromUint8Array: fromUint8Array,
+ toUint8Array: toUint8Array,
+ extendString: extendString,
+ extendUint8Array: extendUint8Array,
+ extendBuiltins: extendBuiltins
+ };
+ //
+ // export Base64 to the namespace
+ //
+ // ES5 is yet to have Object.assign() that may make transpilers unhappy.
+ // gBase64.Base64 = Object.assign({}, gBase64);
+ gBase64.Base64 = {};
+ Object.keys(gBase64).forEach(function (k) { return gBase64.Base64[k] = gBase64[k]; });
+ return gBase64;
+}));
diff --git a/public/config.js b/public/config.js
new file mode 100644
index 0000000..0089ef1
--- /dev/null
+++ b/public/config.js
@@ -0,0 +1,11 @@
+window.ProjectConfig = {
+ // axiosBaseURL: "http://47.117.124.20:2002/",
+ axiosBaseURL: "https://www.probim.cn:7707",
+ axiosTimeout: 1000 * 30, //毫秒
+ workflowLoginURL: "http://workflow-newapi.probim.cn/api/User/Home/Login",
+ workflowWebURL: "http://workflow.probim.cn",
+ pid: "71f7a5df-a7e3-42f4-bcea-36d7d2924ddd",
+ mapboxToken: 'pk.eyJ1Ijoiemhlbmd4dWZhbmciLCJhIjoiY2w5ejNiOWJ1MDE0bTN1cnp4MjNmM2dpNCJ9.qy3k-99E6-XSK5ldYUFz-A',
+ modelUrl: '//multiverse-server.vothing.com', // 模型服务 数据请求地址
+
+}
\ No newline at end of file
diff --git a/public/crypto-js.js b/public/crypto-js.js
new file mode 100644
index 0000000..b87a507
--- /dev/null
+++ b/public/crypto-js.js
@@ -0,0 +1,5736 @@
+(function (global, factory) {
+ typeof exports === "object" && typeof module !== "undefined"
+ ? (module.exports = factory(require("crypto")))
+ : typeof define === "function" && define.amd
+ ? define(["crypto"], factory)
+ : ((global = typeof globalThis !== "undefined" ? globalThis : global || self),
+ (global.CryptoJS = factory(global.require$$0)));
+})(this, function (require$$0) {
+ "use strict";
+
+ function _interopDefaultLegacy(e) {
+ return e && typeof e === "object" && "default" in e ? e : { default: e };
+ }
+
+ var require$$0__default = /*#__PURE__*/ _interopDefaultLegacy(require$$0);
+
+ var commonjsGlobal =
+ typeof globalThis !== "undefined"
+ ? globalThis
+ : typeof window !== "undefined"
+ ? window
+ : typeof global !== "undefined"
+ ? global
+ : typeof self !== "undefined"
+ ? self
+ : {};
+
+ function createCommonjsModule(fn, basedir, module) {
+ return (
+ (module = {
+ path: basedir,
+ exports: {},
+ require: function (path, base) {
+ return commonjsRequire(path, base === undefined || base === null ? module.path : base);
+ },
+ }),
+ fn(module, module.exports),
+ module.exports
+ );
+ }
+
+ function commonjsRequire() {
+ throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs");
+ }
+
+ var core = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory();
+ }
+ })(commonjsGlobal, function () {
+ /*globals window, global, require*/ /**
+ * CryptoJS core components.
+ */ var CryptoJS =
+ CryptoJS ||
+ (function (Math1, undefined1) {
+ var crypto;
+ // Native crypto from window (Browser)
+ if (typeof window !== "undefined" && window.crypto) {
+ crypto = window.crypto;
+ }
+ // Native crypto in web worker (Browser)
+ if (typeof self !== "undefined" && self.crypto) {
+ crypto = self.crypto;
+ }
+ // Native crypto from worker
+ if (typeof globalThis !== "undefined" && globalThis.crypto) {
+ crypto = globalThis.crypto;
+ }
+ // Native (experimental IE 11) crypto from window (Browser)
+ if (!crypto && typeof window !== "undefined" && window.msCrypto) {
+ crypto = window.msCrypto;
+ }
+ // Native crypto from global (NodeJS)
+ if (!crypto && typeof commonjsGlobal !== "undefined" && commonjsGlobal.crypto) {
+ crypto = commonjsGlobal.crypto;
+ }
+ // Native crypto import via require (NodeJS)
+ if (!crypto && typeof commonjsRequire === "function") {
+ try {
+ crypto = require$$0__default["default"];
+ } catch (err) {}
+ }
+ /*
+ * Cryptographically secure pseudorandom number generator
+ *
+ * As Math.random() is cryptographically not safe to use
+ */ var cryptoSecureRandomInt = function cryptoSecureRandomInt() {
+ if (crypto) {
+ // Use getRandomValues method (Browser)
+ if (typeof crypto.getRandomValues === "function") {
+ try {
+ return crypto.getRandomValues(new Uint32Array(1))[0];
+ } catch (err) {}
+ }
+ // Use randomBytes method (NodeJS)
+ if (typeof crypto.randomBytes === "function") {
+ try {
+ return crypto.randomBytes(4).readInt32LE();
+ } catch (err) {}
+ }
+ }
+ throw new Error("Native crypto module could not be used to get secure random number.");
+ };
+ /*
+ * Local polyfill of Object.create
+
+ */ var create =
+ Object.create ||
+ (function () {
+ var F = function F() {};
+ return function (obj) {
+ var subtype;
+ F.prototype = obj;
+ subtype = new F();
+ F.prototype = null;
+ return subtype;
+ };
+ })();
+ /**
+ * CryptoJS namespace.
+ */ var C = {};
+ /**
+ * Library namespace.
+ */ var C_lib = (C.lib = {});
+ /**
+ * Base object for prototypal inheritance.
+ */ var Base = (C_lib.Base = (function () {
+ return {
+ /**
+ * Creates a new object that inherits from this object.
+ *
+ * @param {Object} overrides Properties to copy into the new object.
+ *
+ * @return {Object} The new object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var MyType = CryptoJS.lib.Base.extend({
+ * field: 'value',
+ *
+ * method: function () {
+ * }
+ * });
+ */ extend: function extend(overrides) {
+ // Spawn
+ var subtype = create(this);
+ // Augment
+ if (overrides) {
+ subtype.mixIn(overrides);
+ }
+ // Create default initializer
+ if (!subtype.hasOwnProperty("init") || this.init === subtype.init) {
+ subtype.init = function () {
+ subtype.$super.init.apply(this, arguments);
+ };
+ }
+ // Initializer's prototype is the subtype object
+ subtype.init.prototype = subtype;
+ // Reference supertype
+ subtype.$super = this;
+ return subtype;
+ },
+ /**
+ * Extends this object and runs the init method.
+ * Arguments to create() will be passed to init().
+ *
+ * @return {Object} The new object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var instance = MyType.create();
+ */ create: function create() {
+ var instance = this.extend();
+ instance.init.apply(instance, arguments);
+ return instance;
+ },
+ /**
+ * Initializes a newly created object.
+ * Override this method to add some logic when your objects are created.
+ *
+ * @example
+ *
+ * var MyType = CryptoJS.lib.Base.extend({
+ * init: function () {
+ * // ...
+ * }
+ * });
+ */ init: function init() {},
+ /**
+ * Copies properties into this object.
+ *
+ * @param {Object} properties The properties to mix in.
+ *
+ * @example
+ *
+ * MyType.mixIn({
+ * field: 'value'
+ * });
+ */ mixIn: function mixIn(properties) {
+ for (var propertyName in properties) {
+ if (properties.hasOwnProperty(propertyName)) {
+ this[propertyName] = properties[propertyName];
+ }
+ }
+ // IE won't copy toString using the loop above
+ if (properties.hasOwnProperty("toString")) {
+ this.toString = properties.toString;
+ }
+ },
+ /**
+ * Creates a copy of this object.
+ *
+ * @return {Object} The clone.
+ *
+ * @example
+ *
+ * var clone = instance.clone();
+ */ clone: function clone() {
+ return this.init.prototype.extend(this);
+ },
+ };
+ })());
+ /**
+ * An array of 32-bit words.
+ *
+ * @property {Array} words The array of 32-bit words.
+ * @property {number} sigBytes The number of significant bytes in this word array.
+ */ var WordArray = (C_lib.WordArray = Base.extend({
+ /**
+ * Initializes a newly created word array.
+ *
+ * @param {Array} words (Optional) An array of 32-bit words.
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.lib.WordArray.create();
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);
+ * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);
+ */ init: function init(words, sigBytes) {
+ words = this.words = words || [];
+ if (sigBytes != undefined1) {
+ this.sigBytes = sigBytes;
+ } else {
+ this.sigBytes = words.length * 4;
+ }
+ },
+ /**
+ * Converts this word array to a string.
+ *
+ * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex
+ *
+ * @return {string} The stringified word array.
+ *
+ * @example
+ *
+ * var string = wordArray + '';
+ * var string = wordArray.toString();
+ * var string = wordArray.toString(CryptoJS.enc.Utf8);
+ */ toString: function toString(encoder) {
+ return (encoder || Hex).stringify(this);
+ },
+ /**
+ * Concatenates a word array to this word array.
+ *
+ * @param {WordArray} wordArray The word array to append.
+ *
+ * @return {WordArray} This word array.
+ *
+ * @example
+ *
+ * wordArray1.concat(wordArray2);
+ */ concat: function concat(wordArray) {
+ // Shortcuts
+ var thisWords = this.words;
+ var thatWords = wordArray.words;
+ var thisSigBytes = this.sigBytes;
+ var thatSigBytes = wordArray.sigBytes;
+ // Clamp excess bits
+ this.clamp();
+ // Concat
+ if (thisSigBytes % 4) {
+ // Copy one byte at a time
+ for (var i = 0; i < thatSigBytes; i++) {
+ var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ thisWords[(thisSigBytes + i) >>> 2] |=
+ thatByte << (24 - ((thisSigBytes + i) % 4) * 8);
+ }
+ } else {
+ // Copy one word at a time
+ for (var j = 0; j < thatSigBytes; j += 4) {
+ thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];
+ }
+ }
+ this.sigBytes += thatSigBytes;
+ // Chainable
+ return this;
+ },
+ /**
+ * Removes insignificant bits.
+ *
+ * @example
+ *
+ * wordArray.clamp();
+ */ clamp: function clamp() {
+ // Shortcuts
+ var words = this.words;
+ var sigBytes = this.sigBytes;
+ // Clamp
+ words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);
+ words.length = Math1.ceil(sigBytes / 4);
+ },
+ /**
+ * Creates a copy of this word array.
+ *
+ * @return {WordArray} The clone.
+ *
+ * @example
+ *
+ * var clone = wordArray.clone();
+ */ clone: function clone() {
+ var clone = Base.clone.call(this);
+ clone.words = this.words.slice(0);
+ return clone;
+ },
+ /**
+ * Creates a word array filled with random bytes.
+ *
+ * @param {number} nBytes The number of random bytes to generate.
+ *
+ * @return {WordArray} The random word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.lib.WordArray.random(16);
+ */ random: function random(nBytes) {
+ var words = [];
+ for (var i = 0; i < nBytes; i += 4) {
+ words.push(cryptoSecureRandomInt());
+ }
+ return new WordArray.init(words, nBytes);
+ },
+ }));
+ /**
+ * Encoder namespace.
+ */ var C_enc = (C.enc = {});
+ /**
+ * Hex encoding strategy.
+ */ var Hex = (C_enc.Hex = {
+ /**
+ * Converts a word array to a hex string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The hex string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hexString = CryptoJS.enc.Hex.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ // Convert
+ var hexChars = [];
+ for (var i = 0; i < sigBytes; i++) {
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ hexChars.push((bite >>> 4).toString(16));
+ hexChars.push((bite & 0x0f).toString(16));
+ }
+ return hexChars.join("");
+ },
+ /**
+ * Converts a hex string to a word array.
+ *
+ * @param {string} hexStr The hex string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Hex.parse(hexString);
+ */ parse: function parse(hexStr) {
+ // Shortcut
+ var hexStrLength = hexStr.length;
+ // Convert
+ var words = [];
+ for (var i = 0; i < hexStrLength; i += 2) {
+ words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
+ }
+ return new WordArray.init(words, hexStrLength / 2);
+ },
+ });
+ /**
+ * Latin1 encoding strategy.
+ */ var Latin1 = (C_enc.Latin1 = {
+ /**
+ * Converts a word array to a Latin1 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The Latin1 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ // Convert
+ var latin1Chars = [];
+ for (var i = 0; i < sigBytes; i++) {
+ var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ latin1Chars.push(String.fromCharCode(bite));
+ }
+ return latin1Chars.join("");
+ },
+ /**
+ * Converts a Latin1 string to a word array.
+ *
+ * @param {string} latin1Str The Latin1 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);
+ */ parse: function parse(latin1Str) {
+ // Shortcut
+ var latin1StrLength = latin1Str.length;
+ // Convert
+ var words = [];
+ for (var i = 0; i < latin1StrLength; i++) {
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);
+ }
+ return new WordArray.init(words, latin1StrLength);
+ },
+ });
+ /**
+ * UTF-8 encoding strategy.
+ */ var Utf8 = (C_enc.Utf8 = {
+ /**
+ * Converts a word array to a UTF-8 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-8 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ try {
+ return decodeURIComponent(escape(Latin1.stringify(wordArray)));
+ } catch (e) {
+ throw new Error("Malformed UTF-8 data");
+ }
+ },
+ /**
+ * Converts a UTF-8 string to a word array.
+ *
+ * @param {string} utf8Str The UTF-8 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);
+ */ parse: function parse(utf8Str) {
+ return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
+ },
+ });
+ /**
+ * Abstract buffered block algorithm template.
+ *
+ * The property blockSize must be implemented in a concrete subtype.
+ *
+ * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0
+ */ var BufferedBlockAlgorithm = (C_lib.BufferedBlockAlgorithm = Base.extend({
+ /**
+ * Resets this block algorithm's data buffer to its initial state.
+ *
+ * @example
+ *
+ * bufferedBlockAlgorithm.reset();
+ */ reset: function reset() {
+ // Initial values
+ this._data = new WordArray.init();
+ this._nDataBytes = 0;
+ },
+ /**
+ * Adds new data to this block algorithm's buffer.
+ *
+ * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.
+ *
+ * @example
+ *
+ * bufferedBlockAlgorithm._append('data');
+ * bufferedBlockAlgorithm._append(wordArray);
+ */ _append: function _append(data) {
+ // Convert string to WordArray, else assume WordArray already
+ if (typeof data == "string") {
+ data = Utf8.parse(data);
+ }
+ // Append
+ this._data.concat(data);
+ this._nDataBytes += data.sigBytes;
+ },
+ /**
+ * Processes available data blocks.
+ *
+ * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.
+ *
+ * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.
+ *
+ * @return {WordArray} The processed data.
+ *
+ * @example
+ *
+ * var processedData = bufferedBlockAlgorithm._process();
+ * var processedData = bufferedBlockAlgorithm._process(!!'flush');
+ */ _process: function _process(doFlush) {
+ var processedWords;
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var dataSigBytes = data.sigBytes;
+ var blockSize = this.blockSize;
+ var blockSizeBytes = blockSize * 4;
+ // Count blocks ready
+ var nBlocksReady = dataSigBytes / blockSizeBytes;
+ if (doFlush) {
+ // Round up to include partial blocks
+ nBlocksReady = Math1.ceil(nBlocksReady);
+ } else {
+ // Round down to include only full blocks,
+ // less the number of blocks that must remain in the buffer
+ nBlocksReady = Math1.max((nBlocksReady | 0) - this._minBufferSize, 0);
+ }
+ // Count words ready
+ var nWordsReady = nBlocksReady * blockSize;
+ // Count bytes ready
+ var nBytesReady = Math1.min(nWordsReady * 4, dataSigBytes);
+ // Process blocks
+ if (nWordsReady) {
+ for (var offset = 0; offset < nWordsReady; offset += blockSize) {
+ // Perform concrete-algorithm logic
+ this._doProcessBlock(dataWords, offset);
+ }
+ // Remove processed words
+ processedWords = dataWords.splice(0, nWordsReady);
+ data.sigBytes -= nBytesReady;
+ }
+ // Return processed words
+ return new WordArray.init(processedWords, nBytesReady);
+ },
+ /**
+ * Creates a copy of this object.
+ *
+ * @return {Object} The clone.
+ *
+ * @example
+ *
+ * var clone = bufferedBlockAlgorithm.clone();
+ */ clone: function clone() {
+ var clone = Base.clone.call(this);
+ clone._data = this._data.clone();
+ return clone;
+ },
+ _minBufferSize: 0,
+ }));
+ /**
+ * Abstract hasher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)
+ */ C_lib.Hasher = BufferedBlockAlgorithm.extend({
+ /**
+ * Configuration options.
+ */ cfg: Base.extend(),
+ /**
+ * Initializes a newly created hasher.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for this hash computation.
+ *
+ * @example
+ *
+ * var hasher = CryptoJS.algo.SHA256.create();
+ */ init: function init(cfg) {
+ // Apply config defaults
+ this.cfg = this.cfg.extend(cfg);
+ // Set initial values
+ this.reset();
+ },
+ /**
+ * Resets this hasher to its initial state.
+ *
+ * @example
+ *
+ * hasher.reset();
+ */ reset: function reset() {
+ // Reset data buffer
+ BufferedBlockAlgorithm.reset.call(this);
+ // Perform concrete-hasher logic
+ this._doReset();
+ },
+ /**
+ * Updates this hasher with a message.
+ *
+ * @param {WordArray|string} messageUpdate The message to append.
+ *
+ * @return {Hasher} This hasher.
+ *
+ * @example
+ *
+ * hasher.update('message');
+ * hasher.update(wordArray);
+ */ update: function update(messageUpdate) {
+ // Append
+ this._append(messageUpdate);
+ // Update the hash
+ this._process();
+ // Chainable
+ return this;
+ },
+ /**
+ * Finalizes the hash computation.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @example
+ *
+ * var hash = hasher.finalize();
+ * var hash = hasher.finalize('message');
+ * var hash = hasher.finalize(wordArray);
+ */ finalize: function finalize(messageUpdate) {
+ // Final message update
+ if (messageUpdate) {
+ this._append(messageUpdate);
+ }
+ // Perform concrete-hasher logic
+ var hash = this._doFinalize();
+ return hash;
+ },
+ blockSize: 512 / 32,
+ /**
+ * Creates a shortcut function to a hasher's object interface.
+ *
+ * @param {Hasher} hasher The hasher to create a helper for.
+ *
+ * @return {Function} The shortcut function.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);
+ */ _createHelper: function _createHelper(hasher) {
+ return function (message, cfg) {
+ return new hasher.init(cfg).finalize(message);
+ };
+ },
+ /**
+ * Creates a shortcut function to the HMAC's object interface.
+ *
+ * @param {Hasher} hasher The hasher to use in this HMAC helper.
+ *
+ * @return {Function} The shortcut function.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);
+ */ _createHmacHelper: function _createHmacHelper(hasher) {
+ return function (message, key) {
+ return new C_algo.HMAC.init(hasher, key).finalize(message);
+ };
+ },
+ });
+ /**
+ * Algorithm namespace.
+ */ var C_algo = (C.algo = {});
+ return C;
+ })(Math);
+ return CryptoJS;
+ });
+ });
+
+ var x64Core = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function (undefined1) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var X32WordArray = C_lib.WordArray;
+ /**
+ * x64 namespace.
+ */ var C_x64 = (C.x64 = {});
+ /**
+ * A 64-bit word.
+ */ C_x64.Word = Base.extend({
+ /**
+ * Initializes a newly created 64-bit word.
+ *
+ * @param {number} high The high 32 bits.
+ * @param {number} low The low 32 bits.
+ *
+ * @example
+ *
+ * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);
+ */ init: function init(high, low) {
+ this.high = high;
+ this.low = low;
+ },
+ });
+ /**
+ * An array of 64-bit words.
+ *
+ * @property {Array} words The array of CryptoJS.x64.Word objects.
+ * @property {number} sigBytes The number of significant bytes in this word array.
+ */ C_x64.WordArray = Base.extend({
+ /**
+ * Initializes a newly created word array.
+ *
+ * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.
+ * @param {number} sigBytes (Optional) The number of significant bytes in the words.
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create();
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create([
+ * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+ * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+ * ]);
+ *
+ * var wordArray = CryptoJS.x64.WordArray.create([
+ * CryptoJS.x64.Word.create(0x00010203, 0x04050607),
+ * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)
+ * ], 10);
+ */ init: function init(words, sigBytes) {
+ words = this.words = words || [];
+ if (sigBytes != undefined1) {
+ this.sigBytes = sigBytes;
+ } else {
+ this.sigBytes = words.length * 8;
+ }
+ },
+ /**
+ * Converts this 64-bit word array to a 32-bit word array.
+ *
+ * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.
+ *
+ * @example
+ *
+ * var x32WordArray = x64WordArray.toX32();
+ */ toX32: function toX32() {
+ // Shortcuts
+ var x64Words = this.words;
+ var x64WordsLength = x64Words.length;
+ // Convert
+ var x32Words = [];
+ for (var i = 0; i < x64WordsLength; i++) {
+ var x64Word = x64Words[i];
+ x32Words.push(x64Word.high);
+ x32Words.push(x64Word.low);
+ }
+ return X32WordArray.create(x32Words, this.sigBytes);
+ },
+ /**
+ * Creates a copy of this word array.
+ *
+ * @return {X64WordArray} The clone.
+ *
+ * @example
+ *
+ * var clone = x64WordArray.clone();
+ */ clone: function clone() {
+ var clone = Base.clone.call(this);
+ // Clone "words" array
+ var words = (clone.words = this.words.slice(0));
+ // Clone each X64Word object
+ var wordsLength = words.length;
+ for (var i = 0; i < wordsLength; i++) {
+ words[i] = words[i].clone();
+ }
+ return clone;
+ },
+ });
+ })();
+ return CryptoJS;
+ });
+ });
+
+ function _instanceof(left, right) {
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
+ return !!right[Symbol.hasInstance](left);
+ } else {
+ return left instanceof right;
+ }
+ }
+ var libTypedarrays = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Check if typed arrays are supported
+ if (typeof ArrayBuffer != "function") {
+ return;
+ }
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ // Reference original init
+ var superInit = WordArray.init;
+ // Augment WordArray.init to handle typed arrays
+ var subInit = (WordArray.init = function subInit(typedArray) {
+ // Convert buffers to uint8
+ if (_instanceof(typedArray, ArrayBuffer)) {
+ typedArray = new Uint8Array(typedArray);
+ }
+ // Convert other array views to uint8
+ if (
+ _instanceof(typedArray, Int8Array) ||
+ (typeof Uint8ClampedArray !== "undefined" &&
+ _instanceof(typedArray, Uint8ClampedArray)) ||
+ _instanceof(typedArray, Int16Array) ||
+ _instanceof(typedArray, Uint16Array) ||
+ _instanceof(typedArray, Int32Array) ||
+ _instanceof(typedArray, Uint32Array) ||
+ _instanceof(typedArray, Float32Array) ||
+ _instanceof(typedArray, Float64Array)
+ ) {
+ typedArray = new Uint8Array(
+ typedArray.buffer,
+ typedArray.byteOffset,
+ typedArray.byteLength
+ );
+ }
+ // Handle Uint8Array
+ if (_instanceof(typedArray, Uint8Array)) {
+ // Shortcut
+ var typedArrayByteLength = typedArray.byteLength;
+ // Extract bytes
+ var words = [];
+ for (var i = 0; i < typedArrayByteLength; i++) {
+ words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);
+ }
+ // Initialize this word array
+ superInit.call(this, words, typedArrayByteLength);
+ } else {
+ // Else call normal init
+ superInit.apply(this, arguments);
+ }
+ });
+ subInit.prototype = WordArray;
+ })();
+ return CryptoJS.lib.WordArray;
+ });
+ });
+
+ var encUtf16 = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var swapEndian = function swapEndian(word) {
+ return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+ /**
+ * UTF-16 BE encoding strategy.
+ */ C_enc.Utf16 = C_enc.Utf16BE = {
+ /**
+ * Converts a word array to a UTF-16 BE string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-16 BE string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ // Convert
+ var utf16Chars = [];
+ for (var i = 0; i < sigBytes; i += 2) {
+ var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
+ utf16Chars.push(String.fromCharCode(codePoint));
+ }
+ return utf16Chars.join("");
+ },
+ /**
+ * Converts a UTF-16 BE string to a word array.
+ *
+ * @param {string} utf16Str The UTF-16 BE string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
+ */ parse: function parse(utf16Str) {
+ // Shortcut
+ var utf16StrLength = utf16Str.length;
+ // Convert
+ var words = [];
+ for (var i = 0; i < utf16StrLength; i++) {
+ words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
+ }
+ return WordArray.create(words, utf16StrLength * 2);
+ },
+ };
+ /**
+ * UTF-16 LE encoding strategy.
+ */ C_enc.Utf16LE = {
+ /**
+ * Converts a word array to a UTF-16 LE string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The UTF-16 LE string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ // Convert
+ var utf16Chars = [];
+ for (var i = 0; i < sigBytes; i += 2) {
+ var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
+ utf16Chars.push(String.fromCharCode(codePoint));
+ }
+ return utf16Chars.join("");
+ },
+ /**
+ * Converts a UTF-16 LE string to a word array.
+ *
+ * @param {string} utf16Str The UTF-16 LE string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
+ */ parse: function parse(utf16Str) {
+ // Shortcut
+ var utf16StrLength = utf16Str.length;
+ // Convert
+ var words = [];
+ for (var i = 0; i < utf16StrLength; i++) {
+ words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
+ }
+ return WordArray.create(words, utf16StrLength * 2);
+ },
+ };
+ })();
+ return CryptoJS.enc.Utf16;
+ });
+ });
+
+ var encBase64 = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var parseLoop = function parseLoop(base64Str, base64StrLength, reverseMap) {
+ var words = [];
+ var nBytes = 0;
+ for (var i = 0; i < base64StrLength; i++) {
+ if (i % 4) {
+ var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+ var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+ var bitsCombined = bits1 | bits2;
+ words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+ nBytes++;
+ }
+ }
+ return WordArray.create(words, nBytes);
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+ /**
+ * Base64 encoding strategy.
+ */ C_enc.Base64 = {
+ /**
+ * Converts a word array to a Base64 string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @return {string} The Base64 string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var base64String = CryptoJS.enc.Base64.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ var map = this._map;
+ // Clamp excess bits
+ wordArray.clamp();
+ // Convert
+ var base64Chars = [];
+ for (var i = 0; i < sigBytes; i += 3) {
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+ for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+ }
+ }
+ // Add padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ while (base64Chars.length % 4) {
+ base64Chars.push(paddingChar);
+ }
+ }
+ return base64Chars.join("");
+ },
+ /**
+ * Converts a Base64 string to a word array.
+ *
+ * @param {string} base64Str The Base64 string.
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Base64.parse(base64String);
+ */ parse: function parse(base64Str) {
+ // Shortcuts
+ var base64StrLength = base64Str.length;
+ var map = this._map;
+ var reverseMap = this._reverseMap;
+ if (!reverseMap) {
+ reverseMap = this._reverseMap = [];
+ for (var j = 0; j < map.length; j++) {
+ reverseMap[map.charCodeAt(j)] = j;
+ }
+ }
+ // Ignore padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ var paddingIndex = base64Str.indexOf(paddingChar);
+ if (paddingIndex !== -1) {
+ base64StrLength = paddingIndex;
+ }
+ }
+ // Convert
+ return parseLoop(base64Str, base64StrLength, reverseMap);
+ },
+ _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
+ };
+ })();
+ return CryptoJS.enc.Base64;
+ });
+ });
+
+ var encBase64url = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var parseLoop = function parseLoop(base64Str, base64StrLength, reverseMap) {
+ var words = [];
+ var nBytes = 0;
+ for (var i = 0; i < base64StrLength; i++) {
+ if (i % 4) {
+ var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);
+ var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);
+ var bitsCombined = bits1 | bits2;
+ words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);
+ nBytes++;
+ }
+ }
+ return WordArray.create(words, nBytes);
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_enc = C.enc;
+ /**
+ * Base64url encoding strategy.
+ */ C_enc.Base64url = {
+ /**
+ * Converts a word array to a Base64url string.
+ *
+ * @param {WordArray} wordArray The word array.
+ *
+ * @param {boolean} urlSafe Whether to use url safe
+ *
+ * @return {string} The Base64url string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);
+ */ stringify: function stringify(wordArray) {
+ var urlSafe = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ // Shortcuts
+ var words = wordArray.words;
+ var sigBytes = wordArray.sigBytes;
+ var map = urlSafe ? this._safe_map : this._map;
+ // Clamp excess bits
+ wordArray.clamp();
+ // Convert
+ var base64Chars = [];
+ for (var i = 0; i < sigBytes; i += 3) {
+ var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
+ var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;
+ var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;
+ var triplet = (byte1 << 16) | (byte2 << 8) | byte3;
+ for (var j = 0; j < 4 && i + j * 0.75 < sigBytes; j++) {
+ base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));
+ }
+ }
+ // Add padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ while (base64Chars.length % 4) {
+ base64Chars.push(paddingChar);
+ }
+ }
+ return base64Chars.join("");
+ },
+ /**
+ * Converts a Base64url string to a word array.
+ *
+ * @param {string} base64Str The Base64url string.
+ *
+ * @param {boolean} urlSafe Whether to use url safe
+ *
+ * @return {WordArray} The word array.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var wordArray = CryptoJS.enc.Base64url.parse(base64String);
+ */ parse: function parse(base64Str) {
+ var urlSafe = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
+ // Shortcuts
+ var base64StrLength = base64Str.length;
+ var map = urlSafe ? this._safe_map : this._map;
+ var reverseMap = this._reverseMap;
+ if (!reverseMap) {
+ reverseMap = this._reverseMap = [];
+ for (var j = 0; j < map.length; j++) {
+ reverseMap[map.charCodeAt(j)] = j;
+ }
+ }
+ // Ignore padding
+ var paddingChar = map.charAt(64);
+ if (paddingChar) {
+ var paddingIndex = base64Str.indexOf(paddingChar);
+ if (paddingIndex !== -1) {
+ base64StrLength = paddingIndex;
+ }
+ }
+ // Convert
+ return parseLoop(base64Str, base64StrLength, reverseMap);
+ },
+ _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
+ _safe_map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",
+ };
+ })();
+ return CryptoJS.enc.Base64url;
+ });
+ });
+
+ var md5 = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function (Math1) {
+ var FF = function FF(a, b, c, d, x, s, t) {
+ var n = a + ((b & c) | (~b & d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ var GG = function GG(a, b, c, d, x, s, t) {
+ var n = a + ((b & d) | (c & ~d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ var HH = function HH(a, b, c, d, x, s, t) {
+ var n = a + (b ^ c ^ d) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ var II = function II(a, b, c, d, x, s, t) {
+ var n = a + (c ^ (b | ~d)) + x + t;
+ return ((n << s) | (n >>> (32 - s))) + b;
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+ // Constants table
+ var T = [];
+ // Compute constants
+ (function () {
+ for (var i = 0; i < 64; i++) {
+ T[i] = (Math1.abs(Math1.sin(i + 1)) * 0x100000000) | 0;
+ }
+ })();
+ /**
+ * MD5 hash algorithm.
+ */ var MD5 = (C_algo.MD5 = Hasher.extend({
+ _doReset: function _doReset() {
+ this._hash = new WordArray.init([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Swap endian
+ for (var i = 0; i < 16; i++) {
+ // Shortcuts
+ var offset_i = offset + i;
+ var M_offset_i = M[offset_i];
+ M[offset_i] =
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00);
+ }
+ // Shortcuts
+ var H = this._hash.words;
+ var M_offset_0 = M[offset + 0];
+ var M_offset_1 = M[offset + 1];
+ var M_offset_2 = M[offset + 2];
+ var M_offset_3 = M[offset + 3];
+ var M_offset_4 = M[offset + 4];
+ var M_offset_5 = M[offset + 5];
+ var M_offset_6 = M[offset + 6];
+ var M_offset_7 = M[offset + 7];
+ var M_offset_8 = M[offset + 8];
+ var M_offset_9 = M[offset + 9];
+ var M_offset_10 = M[offset + 10];
+ var M_offset_11 = M[offset + 11];
+ var M_offset_12 = M[offset + 12];
+ var M_offset_13 = M[offset + 13];
+ var M_offset_14 = M[offset + 14];
+ var M_offset_15 = M[offset + 15];
+ // Working varialbes
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ // Computation
+ a = FF(a, b, c, d, M_offset_0, 7, T[0]);
+ d = FF(d, a, b, c, M_offset_1, 12, T[1]);
+ c = FF(c, d, a, b, M_offset_2, 17, T[2]);
+ b = FF(b, c, d, a, M_offset_3, 22, T[3]);
+ a = FF(a, b, c, d, M_offset_4, 7, T[4]);
+ d = FF(d, a, b, c, M_offset_5, 12, T[5]);
+ c = FF(c, d, a, b, M_offset_6, 17, T[6]);
+ b = FF(b, c, d, a, M_offset_7, 22, T[7]);
+ a = FF(a, b, c, d, M_offset_8, 7, T[8]);
+ d = FF(d, a, b, c, M_offset_9, 12, T[9]);
+ c = FF(c, d, a, b, M_offset_10, 17, T[10]);
+ b = FF(b, c, d, a, M_offset_11, 22, T[11]);
+ a = FF(a, b, c, d, M_offset_12, 7, T[12]);
+ d = FF(d, a, b, c, M_offset_13, 12, T[13]);
+ c = FF(c, d, a, b, M_offset_14, 17, T[14]);
+ b = FF(b, c, d, a, M_offset_15, 22, T[15]);
+ a = GG(a, b, c, d, M_offset_1, 5, T[16]);
+ d = GG(d, a, b, c, M_offset_6, 9, T[17]);
+ c = GG(c, d, a, b, M_offset_11, 14, T[18]);
+ b = GG(b, c, d, a, M_offset_0, 20, T[19]);
+ a = GG(a, b, c, d, M_offset_5, 5, T[20]);
+ d = GG(d, a, b, c, M_offset_10, 9, T[21]);
+ c = GG(c, d, a, b, M_offset_15, 14, T[22]);
+ b = GG(b, c, d, a, M_offset_4, 20, T[23]);
+ a = GG(a, b, c, d, M_offset_9, 5, T[24]);
+ d = GG(d, a, b, c, M_offset_14, 9, T[25]);
+ c = GG(c, d, a, b, M_offset_3, 14, T[26]);
+ b = GG(b, c, d, a, M_offset_8, 20, T[27]);
+ a = GG(a, b, c, d, M_offset_13, 5, T[28]);
+ d = GG(d, a, b, c, M_offset_2, 9, T[29]);
+ c = GG(c, d, a, b, M_offset_7, 14, T[30]);
+ b = GG(b, c, d, a, M_offset_12, 20, T[31]);
+ a = HH(a, b, c, d, M_offset_5, 4, T[32]);
+ d = HH(d, a, b, c, M_offset_8, 11, T[33]);
+ c = HH(c, d, a, b, M_offset_11, 16, T[34]);
+ b = HH(b, c, d, a, M_offset_14, 23, T[35]);
+ a = HH(a, b, c, d, M_offset_1, 4, T[36]);
+ d = HH(d, a, b, c, M_offset_4, 11, T[37]);
+ c = HH(c, d, a, b, M_offset_7, 16, T[38]);
+ b = HH(b, c, d, a, M_offset_10, 23, T[39]);
+ a = HH(a, b, c, d, M_offset_13, 4, T[40]);
+ d = HH(d, a, b, c, M_offset_0, 11, T[41]);
+ c = HH(c, d, a, b, M_offset_3, 16, T[42]);
+ b = HH(b, c, d, a, M_offset_6, 23, T[43]);
+ a = HH(a, b, c, d, M_offset_9, 4, T[44]);
+ d = HH(d, a, b, c, M_offset_12, 11, T[45]);
+ c = HH(c, d, a, b, M_offset_15, 16, T[46]);
+ b = HH(b, c, d, a, M_offset_2, 23, T[47]);
+ a = II(a, b, c, d, M_offset_0, 6, T[48]);
+ d = II(d, a, b, c, M_offset_7, 10, T[49]);
+ c = II(c, d, a, b, M_offset_14, 15, T[50]);
+ b = II(b, c, d, a, M_offset_5, 21, T[51]);
+ a = II(a, b, c, d, M_offset_12, 6, T[52]);
+ d = II(d, a, b, c, M_offset_3, 10, T[53]);
+ c = II(c, d, a, b, M_offset_10, 15, T[54]);
+ b = II(b, c, d, a, M_offset_1, 21, T[55]);
+ a = II(a, b, c, d, M_offset_8, 6, T[56]);
+ d = II(d, a, b, c, M_offset_15, 10, T[57]);
+ c = II(c, d, a, b, M_offset_6, 15, T[58]);
+ b = II(b, c, d, a, M_offset_13, 21, T[59]);
+ a = II(a, b, c, d, M_offset_4, 6, T[60]);
+ d = II(d, a, b, c, M_offset_11, 10, T[61]);
+ c = II(c, d, a, b, M_offset_2, 15, T[62]);
+ b = II(b, c, d, a, M_offset_9, 21, T[63]);
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ },
+ _doFinalize: function _doFinalize() {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));
+ var nBitsTotalH = Math1.floor(nBitsTotal / 0x100000000);
+ var nBitsTotalL = nBitsTotal;
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] =
+ (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] =
+ (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00);
+ data.sigBytes = (dataWords.length + 1) * 4;
+ // Hash final blocks
+ this._process();
+ // Shortcuts
+ var hash = this._hash;
+ var H = hash.words;
+ // Swap endian
+ for (var i = 0; i < 4; i++) {
+ // Shortcut
+ var H_i = H[i];
+ H[i] =
+ (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
+ }
+ // Return final computed hash
+ return hash;
+ },
+ clone: function clone() {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+ return clone;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.MD5('message');
+ * var hash = CryptoJS.MD5(wordArray);
+ */ C.MD5 = Hasher._createHelper(MD5);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacMD5(message, key);
+ */ C.HmacMD5 = Hasher._createHmacHelper(MD5);
+ })(Math);
+ return CryptoJS.MD5;
+ });
+ });
+
+ var sha1 = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+ // Reusable object
+ var W = [];
+ /**
+ * SHA-1 hash algorithm.
+ */ var SHA1 = (C_algo.SHA1 = Hasher.extend({
+ _doReset: function _doReset() {
+ this._hash = new WordArray.init([
+ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,
+ ]);
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Shortcut
+ var H = this._hash.words;
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
+ // Computation
+ for (var i = 0; i < 80; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];
+ W[i] = (n << 1) | (n >>> 31);
+ }
+ var t = ((a << 5) | (a >>> 27)) + e + W[i];
+ if (i < 20) {
+ t += ((b & c) | (~b & d)) + 0x5a827999;
+ } else if (i < 40) {
+ t += (b ^ c ^ d) + 0x6ed9eba1;
+ } else if (i < 60) {
+ t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;
+ } /* if (i < 80) */ else {
+ t += (b ^ c ^ d) - 0x359d3e2a;
+ }
+ e = d;
+ d = c;
+ c = (b << 30) | (b >>> 2);
+ b = a;
+ a = t;
+ }
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ H[4] = (H[4] + e) | 0;
+ },
+ _doFinalize: function _doFinalize() {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+ // Hash final blocks
+ this._process();
+ // Return final computed hash
+ return this._hash;
+ },
+ clone: function clone() {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+ return clone;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA1('message');
+ * var hash = CryptoJS.SHA1(wordArray);
+ */ C.SHA1 = Hasher._createHelper(SHA1);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA1(message, key);
+ */ C.HmacSHA1 = Hasher._createHmacHelper(SHA1);
+ })();
+ return CryptoJS.SHA1;
+ });
+ });
+
+ var sha256 = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function (Math1) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+ // Initialization and round constants tables
+ var H = [];
+ var K = [];
+ // Compute constants
+ (function () {
+ var isPrime = function isPrime(n) {
+ var sqrtN = Math1.sqrt(n);
+ for (var factor = 2; factor <= sqrtN; factor++) {
+ if (!(n % factor)) {
+ return false;
+ }
+ }
+ return true;
+ };
+ var getFractionalBits = function getFractionalBits(n) {
+ return ((n - (n | 0)) * 0x100000000) | 0;
+ };
+ var n = 2;
+ var nPrime = 0;
+ while (nPrime < 64) {
+ if (isPrime(n)) {
+ if (nPrime < 8) {
+ H[nPrime] = getFractionalBits(Math1.pow(n, 1 / 2));
+ }
+ K[nPrime] = getFractionalBits(Math1.pow(n, 1 / 3));
+ nPrime++;
+ }
+ n++;
+ }
+ })();
+ // Reusable object
+ var W = [];
+ /**
+ * SHA-256 hash algorithm.
+ */ var SHA256 = (C_algo.SHA256 = Hasher.extend({
+ _doReset: function _doReset() {
+ this._hash = new WordArray.init(H.slice(0));
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Shortcut
+ var H = this._hash.words;
+ // Working variables
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
+ var f = H[5];
+ var g = H[6];
+ var h = H[7];
+ // Computation
+ for (var i = 0; i < 64; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ var gamma0x = W[i - 15];
+ var gamma0 =
+ ((gamma0x << 25) | (gamma0x >>> 7)) ^
+ ((gamma0x << 14) | (gamma0x >>> 18)) ^
+ (gamma0x >>> 3);
+ var gamma1x = W[i - 2];
+ var gamma1 =
+ ((gamma1x << 15) | (gamma1x >>> 17)) ^
+ ((gamma1x << 13) | (gamma1x >>> 19)) ^
+ (gamma1x >>> 10);
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
+ }
+ var ch = (e & f) ^ (~e & g);
+ var maj = (a & b) ^ (a & c) ^ (b & c);
+ var sigma0 =
+ ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));
+ var sigma1 =
+ ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));
+ var t1 = h + sigma1 + ch + K[i] + W[i];
+ var t2 = sigma0 + maj;
+ h = g;
+ g = f;
+ f = e;
+ e = (d + t1) | 0;
+ d = c;
+ c = b;
+ b = a;
+ a = (t1 + t2) | 0;
+ }
+ // Intermediate hash value
+ H[0] = (H[0] + a) | 0;
+ H[1] = (H[1] + b) | 0;
+ H[2] = (H[2] + c) | 0;
+ H[3] = (H[3] + d) | 0;
+ H[4] = (H[4] + e) | 0;
+ H[5] = (H[5] + f) | 0;
+ H[6] = (H[6] + g) | 0;
+ H[7] = (H[7] + h) | 0;
+ },
+ _doFinalize: function _doFinalize() {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math1.floor(nBitsTotal / 0x100000000);
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+ // Hash final blocks
+ this._process();
+ // Return final computed hash
+ return this._hash;
+ },
+ clone: function clone() {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+ return clone;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA256('message');
+ * var hash = CryptoJS.SHA256(wordArray);
+ */ C.SHA256 = Hasher._createHelper(SHA256);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA256(message, key);
+ */ C.HmacSHA256 = Hasher._createHmacHelper(SHA256);
+ })(Math);
+ return CryptoJS.SHA256;
+ });
+ });
+
+ var sha224 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, sha256);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var SHA256 = C_algo.SHA256;
+ /**
+ * SHA-224 hash algorithm.
+ */ var SHA224 = (C_algo.SHA224 = SHA256.extend({
+ _doReset: function _doReset() {
+ this._hash = new WordArray.init([
+ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7,
+ 0xbefa4fa4,
+ ]);
+ },
+ _doFinalize: function _doFinalize() {
+ var hash = SHA256._doFinalize.call(this);
+ hash.sigBytes -= 4;
+ return hash;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA224('message');
+ * var hash = CryptoJS.SHA224(wordArray);
+ */ C.SHA224 = SHA256._createHelper(SHA224);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA224(message, key);
+ */ C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
+ })();
+ return CryptoJS.SHA224;
+ });
+ });
+
+ var sha512 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, x64Core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var X64Word_create = function X64Word_create() {
+ return X64Word.create.apply(X64Word, arguments);
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Hasher = C_lib.Hasher;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var X64WordArray = C_x64.WordArray;
+ var C_algo = C.algo;
+ // Constants
+ var K = [
+ X64Word_create(0x428a2f98, 0xd728ae22),
+ X64Word_create(0x71374491, 0x23ef65cd),
+ X64Word_create(0xb5c0fbcf, 0xec4d3b2f),
+ X64Word_create(0xe9b5dba5, 0x8189dbbc),
+ X64Word_create(0x3956c25b, 0xf348b538),
+ X64Word_create(0x59f111f1, 0xb605d019),
+ X64Word_create(0x923f82a4, 0xaf194f9b),
+ X64Word_create(0xab1c5ed5, 0xda6d8118),
+ X64Word_create(0xd807aa98, 0xa3030242),
+ X64Word_create(0x12835b01, 0x45706fbe),
+ X64Word_create(0x243185be, 0x4ee4b28c),
+ X64Word_create(0x550c7dc3, 0xd5ffb4e2),
+ X64Word_create(0x72be5d74, 0xf27b896f),
+ X64Word_create(0x80deb1fe, 0x3b1696b1),
+ X64Word_create(0x9bdc06a7, 0x25c71235),
+ X64Word_create(0xc19bf174, 0xcf692694),
+ X64Word_create(0xe49b69c1, 0x9ef14ad2),
+ X64Word_create(0xefbe4786, 0x384f25e3),
+ X64Word_create(0x0fc19dc6, 0x8b8cd5b5),
+ X64Word_create(0x240ca1cc, 0x77ac9c65),
+ X64Word_create(0x2de92c6f, 0x592b0275),
+ X64Word_create(0x4a7484aa, 0x6ea6e483),
+ X64Word_create(0x5cb0a9dc, 0xbd41fbd4),
+ X64Word_create(0x76f988da, 0x831153b5),
+ X64Word_create(0x983e5152, 0xee66dfab),
+ X64Word_create(0xa831c66d, 0x2db43210),
+ X64Word_create(0xb00327c8, 0x98fb213f),
+ X64Word_create(0xbf597fc7, 0xbeef0ee4),
+ X64Word_create(0xc6e00bf3, 0x3da88fc2),
+ X64Word_create(0xd5a79147, 0x930aa725),
+ X64Word_create(0x06ca6351, 0xe003826f),
+ X64Word_create(0x14292967, 0x0a0e6e70),
+ X64Word_create(0x27b70a85, 0x46d22ffc),
+ X64Word_create(0x2e1b2138, 0x5c26c926),
+ X64Word_create(0x4d2c6dfc, 0x5ac42aed),
+ X64Word_create(0x53380d13, 0x9d95b3df),
+ X64Word_create(0x650a7354, 0x8baf63de),
+ X64Word_create(0x766a0abb, 0x3c77b2a8),
+ X64Word_create(0x81c2c92e, 0x47edaee6),
+ X64Word_create(0x92722c85, 0x1482353b),
+ X64Word_create(0xa2bfe8a1, 0x4cf10364),
+ X64Word_create(0xa81a664b, 0xbc423001),
+ X64Word_create(0xc24b8b70, 0xd0f89791),
+ X64Word_create(0xc76c51a3, 0x0654be30),
+ X64Word_create(0xd192e819, 0xd6ef5218),
+ X64Word_create(0xd6990624, 0x5565a910),
+ X64Word_create(0xf40e3585, 0x5771202a),
+ X64Word_create(0x106aa070, 0x32bbd1b8),
+ X64Word_create(0x19a4c116, 0xb8d2d0c8),
+ X64Word_create(0x1e376c08, 0x5141ab53),
+ X64Word_create(0x2748774c, 0xdf8eeb99),
+ X64Word_create(0x34b0bcb5, 0xe19b48a8),
+ X64Word_create(0x391c0cb3, 0xc5c95a63),
+ X64Word_create(0x4ed8aa4a, 0xe3418acb),
+ X64Word_create(0x5b9cca4f, 0x7763e373),
+ X64Word_create(0x682e6ff3, 0xd6b2b8a3),
+ X64Word_create(0x748f82ee, 0x5defb2fc),
+ X64Word_create(0x78a5636f, 0x43172f60),
+ X64Word_create(0x84c87814, 0xa1f0ab72),
+ X64Word_create(0x8cc70208, 0x1a6439ec),
+ X64Word_create(0x90befffa, 0x23631e28),
+ X64Word_create(0xa4506ceb, 0xde82bde9),
+ X64Word_create(0xbef9a3f7, 0xb2c67915),
+ X64Word_create(0xc67178f2, 0xe372532b),
+ X64Word_create(0xca273ece, 0xea26619c),
+ X64Word_create(0xd186b8c7, 0x21c0c207),
+ X64Word_create(0xeada7dd6, 0xcde0eb1e),
+ X64Word_create(0xf57d4f7f, 0xee6ed178),
+ X64Word_create(0x06f067aa, 0x72176fba),
+ X64Word_create(0x0a637dc5, 0xa2c898a6),
+ X64Word_create(0x113f9804, 0xbef90dae),
+ X64Word_create(0x1b710b35, 0x131c471b),
+ X64Word_create(0x28db77f5, 0x23047d84),
+ X64Word_create(0x32caab7b, 0x40c72493),
+ X64Word_create(0x3c9ebe0a, 0x15c9bebc),
+ X64Word_create(0x431d67c4, 0x9c100d4c),
+ X64Word_create(0x4cc5d4be, 0xcb3e42b6),
+ X64Word_create(0x597f299c, 0xfc657e2a),
+ X64Word_create(0x5fcb6fab, 0x3ad6faec),
+ X64Word_create(0x6c44198c, 0x4a475817),
+ ];
+ // Reusable objects
+ var W = [];
+ (function () {
+ for (var i = 0; i < 80; i++) {
+ W[i] = X64Word_create();
+ }
+ })();
+ /**
+ * SHA-512 hash algorithm.
+ */ var SHA512 = (C_algo.SHA512 = Hasher.extend({
+ _doReset: function _doReset() {
+ this._hash = new X64WordArray.init([
+ new X64Word.init(0x6a09e667, 0xf3bcc908),
+ new X64Word.init(0xbb67ae85, 0x84caa73b),
+ new X64Word.init(0x3c6ef372, 0xfe94f82b),
+ new X64Word.init(0xa54ff53a, 0x5f1d36f1),
+ new X64Word.init(0x510e527f, 0xade682d1),
+ new X64Word.init(0x9b05688c, 0x2b3e6c1f),
+ new X64Word.init(0x1f83d9ab, 0xfb41bd6b),
+ new X64Word.init(0x5be0cd19, 0x137e2179),
+ ]);
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Shortcuts
+ var H = this._hash.words;
+ var H0 = H[0];
+ var H1 = H[1];
+ var H2 = H[2];
+ var H3 = H[3];
+ var H4 = H[4];
+ var H5 = H[5];
+ var H6 = H[6];
+ var H7 = H[7];
+ var H0h = H0.high;
+ var H0l = H0.low;
+ var H1h = H1.high;
+ var H1l = H1.low;
+ var H2h = H2.high;
+ var H2l = H2.low;
+ var H3h = H3.high;
+ var H3l = H3.low;
+ var H4h = H4.high;
+ var H4l = H4.low;
+ var H5h = H5.high;
+ var H5l = H5.low;
+ var H6h = H6.high;
+ var H6l = H6.low;
+ var H7h = H7.high;
+ var H7l = H7.low;
+ // Working variables
+ var ah = H0h;
+ var al = H0l;
+ var bh = H1h;
+ var bl = H1l;
+ var ch = H2h;
+ var cl = H2l;
+ var dh = H3h;
+ var dl = H3l;
+ var eh = H4h;
+ var el = H4l;
+ var fh = H5h;
+ var fl = H5l;
+ var gh = H6h;
+ var gl = H6l;
+ var hh = H7h;
+ var hl = H7l;
+ // Rounds
+ for (var i = 0; i < 80; i++) {
+ var Wil;
+ var Wih;
+ // Shortcut
+ var Wi = W[i];
+ // Extend message
+ if (i < 16) {
+ Wih = Wi.high = M[offset + i * 2] | 0;
+ Wil = Wi.low = M[offset + i * 2 + 1] | 0;
+ } else {
+ // Gamma0
+ var gamma0x = W[i - 15];
+ var gamma0xh = gamma0x.high;
+ var gamma0xl = gamma0x.low;
+ var gamma0h =
+ ((gamma0xh >>> 1) | (gamma0xl << 31)) ^
+ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^
+ (gamma0xh >>> 7);
+ var gamma0l =
+ ((gamma0xl >>> 1) | (gamma0xh << 31)) ^
+ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^
+ ((gamma0xl >>> 7) | (gamma0xh << 25));
+ // Gamma1
+ var gamma1x = W[i - 2];
+ var gamma1xh = gamma1x.high;
+ var gamma1xl = gamma1x.low;
+ var gamma1h =
+ ((gamma1xh >>> 19) | (gamma1xl << 13)) ^
+ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^
+ (gamma1xh >>> 6);
+ var gamma1l =
+ ((gamma1xl >>> 19) | (gamma1xh << 13)) ^
+ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^
+ ((gamma1xl >>> 6) | (gamma1xh << 26));
+ // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]
+ var Wi7 = W[i - 7];
+ var Wi7h = Wi7.high;
+ var Wi7l = Wi7.low;
+ var Wi16 = W[i - 16];
+ var Wi16h = Wi16.high;
+ var Wi16l = Wi16.low;
+ Wil = gamma0l + Wi7l;
+ Wih = gamma0h + Wi7h + (Wil >>> 0 < gamma0l >>> 0 ? 1 : 0);
+ Wil = Wil + gamma1l;
+ Wih = Wih + gamma1h + (Wil >>> 0 < gamma1l >>> 0 ? 1 : 0);
+ Wil = Wil + Wi16l;
+ Wih = Wih + Wi16h + (Wil >>> 0 < Wi16l >>> 0 ? 1 : 0);
+ Wi.high = Wih;
+ Wi.low = Wil;
+ }
+ var chh = (eh & fh) ^ (~eh & gh);
+ var chl = (el & fl) ^ (~el & gl);
+ var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
+ var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
+ var sigma0h =
+ ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));
+ var sigma0l =
+ ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));
+ var sigma1h =
+ ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));
+ var sigma1l =
+ ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));
+ // t1 = h + sigma1 + ch + K[i] + W[i]
+ var Ki = K[i];
+ var Kih = Ki.high;
+ var Kil = Ki.low;
+ var t1l = hl + sigma1l;
+ var t1h = hh + sigma1h + (t1l >>> 0 < hl >>> 0 ? 1 : 0);
+ var t1l = t1l + chl;
+ var t1h = t1h + chh + (t1l >>> 0 < chl >>> 0 ? 1 : 0);
+ var t1l = t1l + Kil;
+ var t1h = t1h + Kih + (t1l >>> 0 < Kil >>> 0 ? 1 : 0);
+ var t1l = t1l + Wil;
+ var t1h = t1h + Wih + (t1l >>> 0 < Wil >>> 0 ? 1 : 0);
+ // t2 = sigma0 + maj
+ var t2l = sigma0l + majl;
+ var t2h = sigma0h + majh + (t2l >>> 0 < sigma0l >>> 0 ? 1 : 0);
+ // Update working variables
+ hh = gh;
+ hl = gl;
+ gh = fh;
+ gl = fl;
+ fh = eh;
+ fl = el;
+ el = (dl + t1l) | 0;
+ eh = (dh + t1h + (el >>> 0 < dl >>> 0 ? 1 : 0)) | 0;
+ dh = ch;
+ dl = cl;
+ ch = bh;
+ cl = bl;
+ bh = ah;
+ bl = al;
+ al = (t1l + t2l) | 0;
+ ah = (t1h + t2h + (al >>> 0 < t1l >>> 0 ? 1 : 0)) | 0;
+ }
+ // Intermediate hash value
+ H0l = H0.low = H0l + al;
+ H0.high = H0h + ah + (H0l >>> 0 < al >>> 0 ? 1 : 0);
+ H1l = H1.low = H1l + bl;
+ H1.high = H1h + bh + (H1l >>> 0 < bl >>> 0 ? 1 : 0);
+ H2l = H2.low = H2l + cl;
+ H2.high = H2h + ch + (H2l >>> 0 < cl >>> 0 ? 1 : 0);
+ H3l = H3.low = H3l + dl;
+ H3.high = H3h + dh + (H3l >>> 0 < dl >>> 0 ? 1 : 0);
+ H4l = H4.low = H4l + el;
+ H4.high = H4h + eh + (H4l >>> 0 < el >>> 0 ? 1 : 0);
+ H5l = H5.low = H5l + fl;
+ H5.high = H5h + fh + (H5l >>> 0 < fl >>> 0 ? 1 : 0);
+ H6l = H6.low = H6l + gl;
+ H6.high = H6h + gh + (H6l >>> 0 < gl >>> 0 ? 1 : 0);
+ H7l = H7.low = H7l + hl;
+ H7.high = H7h + hh + (H7l >>> 0 < hl >>> 0 ? 1 : 0);
+ },
+ _doFinalize: function _doFinalize() {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));
+ dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(
+ nBitsTotal / 0x100000000
+ );
+ dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;
+ data.sigBytes = dataWords.length * 4;
+ // Hash final blocks
+ this._process();
+ // Convert hash to 32-bit word array before returning
+ var hash = this._hash.toX32();
+ // Return final computed hash
+ return hash;
+ },
+ clone: function clone() {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+ return clone;
+ },
+ blockSize: 1024 / 32,
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA512('message');
+ * var hash = CryptoJS.SHA512(wordArray);
+ */ C.SHA512 = Hasher._createHelper(SHA512);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA512(message, key);
+ */ C.HmacSHA512 = Hasher._createHmacHelper(SHA512);
+ })();
+ return CryptoJS.SHA512;
+ });
+ });
+
+ var sha384 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, x64Core, sha512);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var X64WordArray = C_x64.WordArray;
+ var C_algo = C.algo;
+ var SHA512 = C_algo.SHA512;
+ /**
+ * SHA-384 hash algorithm.
+ */ var SHA384 = (C_algo.SHA384 = SHA512.extend({
+ _doReset: function _doReset() {
+ this._hash = new X64WordArray.init([
+ new X64Word.init(0xcbbb9d5d, 0xc1059ed8),
+ new X64Word.init(0x629a292a, 0x367cd507),
+ new X64Word.init(0x9159015a, 0x3070dd17),
+ new X64Word.init(0x152fecd8, 0xf70e5939),
+ new X64Word.init(0x67332667, 0xffc00b31),
+ new X64Word.init(0x8eb44a87, 0x68581511),
+ new X64Word.init(0xdb0c2e0d, 0x64f98fa7),
+ new X64Word.init(0x47b5481d, 0xbefa4fa4),
+ ]);
+ },
+ _doFinalize: function _doFinalize() {
+ var hash = SHA512._doFinalize.call(this);
+ hash.sigBytes -= 16;
+ return hash;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA384('message');
+ * var hash = CryptoJS.SHA384(wordArray);
+ */ C.SHA384 = SHA512._createHelper(SHA384);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA384(message, key);
+ */ C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
+ })();
+ return CryptoJS.SHA384;
+ });
+ });
+
+ var sha3 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, x64Core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function (Math1) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_x64 = C.x64;
+ var X64Word = C_x64.Word;
+ var C_algo = C.algo;
+ // Constants tables
+ var RHO_OFFSETS = [];
+ var PI_INDEXES = [];
+ var ROUND_CONSTANTS = [];
+ // Compute Constants
+ (function () {
+ // Compute rho offset constants
+ var x = 1,
+ y = 0;
+ for (var t = 0; t < 24; t++) {
+ RHO_OFFSETS[x + 5 * y] = (((t + 1) * (t + 2)) / 2) % 64;
+ var newX = y % 5;
+ var newY = (2 * x + 3 * y) % 5;
+ x = newX;
+ y = newY;
+ }
+ // Compute pi index constants
+ for (var x = 0; x < 5; x++) {
+ for (var y = 0; y < 5; y++) {
+ PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
+ }
+ }
+ // Compute round constants
+ var LFSR = 0x01;
+ for (var i = 0; i < 24; i++) {
+ var roundConstantMsw = 0;
+ var roundConstantLsw = 0;
+ for (var j = 0; j < 7; j++) {
+ if (LFSR & 0x01) {
+ var bitPosition = (1 << j) - 1;
+ if (bitPosition < 32) {
+ roundConstantLsw ^= 1 << bitPosition;
+ } /* if (bitPosition >= 32) */ else {
+ roundConstantMsw ^= 1 << (bitPosition - 32);
+ }
+ }
+ // Compute next LFSR
+ if (LFSR & 0x80) {
+ // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
+ LFSR = (LFSR << 1) ^ 0x71;
+ } else {
+ LFSR <<= 1;
+ }
+ }
+ ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
+ }
+ })();
+ // Reusable objects for temporary values
+ var T = [];
+ (function () {
+ for (var i = 0; i < 25; i++) {
+ T[i] = X64Word.create();
+ }
+ })();
+ /**
+ * SHA-3 hash algorithm.
+ */ var SHA3 = (C_algo.SHA3 = Hasher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} outputLength
+ * The desired number of bits in the output hash.
+ * Only values permitted are: 224, 256, 384, 512.
+ * Default: 512
+ */ cfg: Hasher.cfg.extend({
+ outputLength: 512,
+ }),
+ _doReset: function _doReset() {
+ var state = (this._state = []);
+ for (var i = 0; i < 25; i++) {
+ state[i] = new X64Word.init();
+ }
+ this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Shortcuts
+ var state = this._state;
+ var nBlockSizeLanes = this.blockSize / 2;
+ // Absorb
+ for (var i = 0; i < nBlockSizeLanes; i++) {
+ // Shortcuts
+ var M2i = M[offset + 2 * i];
+ var M2i1 = M[offset + 2 * i + 1];
+ // Swap endian
+ M2i =
+ (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
+ (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00);
+ M2i1 =
+ (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
+ (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00);
+ // Absorb message into state
+ var lane = state[i];
+ lane.high ^= M2i1;
+ lane.low ^= M2i;
+ }
+ // Rounds
+ for (var round = 0; round < 24; round++) {
+ // Theta
+ for (var x = 0; x < 5; x++) {
+ // Mix column lanes
+ var tMsw = 0,
+ tLsw = 0;
+ for (var y = 0; y < 5; y++) {
+ var lane = state[x + 5 * y];
+ tMsw ^= lane.high;
+ tLsw ^= lane.low;
+ }
+ // Temporary values
+ var Tx = T[x];
+ Tx.high = tMsw;
+ Tx.low = tLsw;
+ }
+ for (var x = 0; x < 5; x++) {
+ // Shortcuts
+ var Tx4 = T[(x + 4) % 5];
+ var Tx1 = T[(x + 1) % 5];
+ var Tx1Msw = Tx1.high;
+ var Tx1Lsw = Tx1.low;
+ // Mix surrounding columns
+ var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
+ var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
+ for (var y = 0; y < 5; y++) {
+ var lane = state[x + 5 * y];
+ lane.high ^= tMsw;
+ lane.low ^= tLsw;
+ }
+ }
+ // Rho Pi
+ for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
+ var tMsw;
+ var tLsw;
+ // Shortcuts
+ var lane = state[laneIndex];
+ var laneMsw = lane.high;
+ var laneLsw = lane.low;
+ var rhoOffset = RHO_OFFSETS[laneIndex];
+ // Rotate lanes
+ if (rhoOffset < 32) {
+ tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
+ tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
+ } /* if (rhoOffset >= 32) */ else {
+ tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
+ tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
+ }
+ // Transpose lanes
+ var TPiLane = T[PI_INDEXES[laneIndex]];
+ TPiLane.high = tMsw;
+ TPiLane.low = tLsw;
+ }
+ // Rho pi at x = y = 0
+ var T0 = T[0];
+ var state0 = state[0];
+ T0.high = state0.high;
+ T0.low = state0.low;
+ // Chi
+ for (var x = 0; x < 5; x++) {
+ for (var y = 0; y < 5; y++) {
+ // Shortcuts
+ var laneIndex = x + 5 * y;
+ var lane = state[laneIndex];
+ var TLane = T[laneIndex];
+ var Tx1Lane = T[((x + 1) % 5) + 5 * y];
+ var Tx2Lane = T[((x + 2) % 5) + 5 * y];
+ // Mix rows
+ lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
+ lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
+ }
+ }
+ // Iota
+ var lane = state[0];
+ var roundConstant = ROUND_CONSTANTS[round];
+ lane.high ^= roundConstant.high;
+ lane.low ^= roundConstant.low;
+ }
+ },
+ _doFinalize: function _doFinalize() {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ var blockSizeBits = this.blockSize * 32;
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - (nBitsLeft % 32));
+ dataWords[
+ ((Math1.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1
+ ] |= 0x80;
+ data.sigBytes = dataWords.length * 4;
+ // Hash final blocks
+ this._process();
+ // Shortcuts
+ var state = this._state;
+ var outputLengthBytes = this.cfg.outputLength / 8;
+ var outputLengthLanes = outputLengthBytes / 8;
+ // Squeeze
+ var hashWords = [];
+ for (var i = 0; i < outputLengthLanes; i++) {
+ // Shortcuts
+ var lane = state[i];
+ var laneMsw = lane.high;
+ var laneLsw = lane.low;
+ // Swap endian
+ laneMsw =
+ (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
+ (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00);
+ laneLsw =
+ (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
+ (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00);
+ // Squeeze state to retrieve hash
+ hashWords.push(laneLsw);
+ hashWords.push(laneMsw);
+ }
+ // Return final computed hash
+ return new WordArray.init(hashWords, outputLengthBytes);
+ },
+ clone: function clone() {
+ var clone = Hasher.clone.call(this);
+ var state = (clone._state = this._state.slice(0));
+ for (var i = 0; i < 25; i++) {
+ state[i] = state[i].clone();
+ }
+ return clone;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.SHA3('message');
+ * var hash = CryptoJS.SHA3(wordArray);
+ */ C.SHA3 = Hasher._createHelper(SHA3);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacSHA3(message, key);
+ */ C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
+ })(Math);
+ return CryptoJS.SHA3;
+ });
+ });
+
+ var ripemd160 = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /** @preserve
+ (c) 2012 by Cédric Mesnil. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */ (function (Math1) {
+ var f1 = function f1(x, y, z) {
+ return x ^ y ^ z;
+ };
+ var f2 = function f2(x, y, z) {
+ return (x & y) | (~x & z);
+ };
+ var f3 = function f3(x, y, z) {
+ return (x | ~y) ^ z;
+ };
+ var f4 = function f4(x, y, z) {
+ return (x & z) | (y & ~z);
+ };
+ var f5 = function f5(x, y, z) {
+ return x ^ (y | ~z);
+ };
+ var rotl = function rotl(x, n) {
+ return (x << n) | (x >>> (32 - n));
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var Hasher = C_lib.Hasher;
+ var C_algo = C.algo;
+ // Constants table
+ var _zl = WordArray.create([
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9,
+ 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8,
+ 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13,
+ ]);
+ var _zr = WordArray.create([
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15,
+ 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3,
+ 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9,
+ 11,
+ ]);
+ var _sl = WordArray.create([
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12,
+ 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14,
+ 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11,
+ 8, 5, 6,
+ ]);
+ var _sr = WordArray.create([
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7,
+ 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8,
+ 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15,
+ 13, 11, 11,
+ ]);
+ var _hl = WordArray.create([0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]);
+ var _hr = WordArray.create([0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]);
+ /**
+ * RIPEMD160 hash algorithm.
+ */ var RIPEMD160 = (C_algo.RIPEMD160 = Hasher.extend({
+ _doReset: function _doReset() {
+ this._hash = WordArray.create([
+ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,
+ ]);
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Swap endian
+ for (var i = 0; i < 16; i++) {
+ // Shortcuts
+ var offset_i = offset + i;
+ var M_offset_i = M[offset_i];
+ // Swap
+ M[offset_i] =
+ (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |
+ (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00);
+ }
+ // Shortcut
+ var H = this._hash.words;
+ var hl = _hl.words;
+ var hr = _hr.words;
+ var zl = _zl.words;
+ var zr = _zr.words;
+ var sl = _sl.words;
+ var sr = _sr.words;
+ // Working variables
+ var al, bl, cl, dl, el;
+ var ar, br, cr, dr, er;
+ ar = al = H[0];
+ br = bl = H[1];
+ cr = cl = H[2];
+ dr = dl = H[3];
+ er = el = H[4];
+ // Computation
+ var t;
+ for (var i = 0; i < 80; i += 1) {
+ t = (al + M[offset + zl[i]]) | 0;
+ if (i < 16) {
+ t += f1(bl, cl, dl) + hl[0];
+ } else if (i < 32) {
+ t += f2(bl, cl, dl) + hl[1];
+ } else if (i < 48) {
+ t += f3(bl, cl, dl) + hl[2];
+ } else if (i < 64) {
+ t += f4(bl, cl, dl) + hl[3];
+ } else {
+ t += f5(bl, cl, dl) + hl[4];
+ }
+ t = t | 0;
+ t = rotl(t, sl[i]);
+ t = (t + el) | 0;
+ al = el;
+ el = dl;
+ dl = rotl(cl, 10);
+ cl = bl;
+ bl = t;
+ t = (ar + M[offset + zr[i]]) | 0;
+ if (i < 16) {
+ t += f5(br, cr, dr) + hr[0];
+ } else if (i < 32) {
+ t += f4(br, cr, dr) + hr[1];
+ } else if (i < 48) {
+ t += f3(br, cr, dr) + hr[2];
+ } else if (i < 64) {
+ t += f2(br, cr, dr) + hr[3];
+ } else {
+ t += f1(br, cr, dr) + hr[4];
+ }
+ t = t | 0;
+ t = rotl(t, sr[i]);
+ t = (t + er) | 0;
+ ar = er;
+ er = dr;
+ dr = rotl(cr, 10);
+ cr = br;
+ br = t;
+ }
+ // Intermediate hash value
+ t = (H[1] + cl + dr) | 0;
+ H[1] = (H[2] + dl + er) | 0;
+ H[2] = (H[3] + el + ar) | 0;
+ H[3] = (H[4] + al + br) | 0;
+ H[4] = (H[0] + bl + cr) | 0;
+ H[0] = t;
+ },
+ _doFinalize: function _doFinalize() {
+ // Shortcuts
+ var data = this._data;
+ var dataWords = data.words;
+ var nBitsTotal = this._nDataBytes * 8;
+ var nBitsLeft = data.sigBytes * 8;
+ // Add padding
+ dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - (nBitsLeft % 32));
+ dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] =
+ (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |
+ (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00);
+ data.sigBytes = (dataWords.length + 1) * 4;
+ // Hash final blocks
+ this._process();
+ // Shortcuts
+ var hash = this._hash;
+ var H = hash.words;
+ // Swap endian
+ for (var i = 0; i < 5; i++) {
+ // Shortcut
+ var H_i = H[i];
+ // Swap
+ H[i] =
+ (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |
+ (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);
+ }
+ // Return final computed hash
+ return hash;
+ },
+ clone: function clone() {
+ var clone = Hasher.clone.call(this);
+ clone._hash = this._hash.clone();
+ return clone;
+ },
+ }));
+ /**
+ * Shortcut function to the hasher's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ *
+ * @return {WordArray} The hash.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hash = CryptoJS.RIPEMD160('message');
+ * var hash = CryptoJS.RIPEMD160(wordArray);
+ */ C.RIPEMD160 = Hasher._createHelper(RIPEMD160);
+ /**
+ * Shortcut function to the HMAC's object interface.
+ *
+ * @param {WordArray|string} message The message to hash.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hmac = CryptoJS.HmacRIPEMD160(message, key);
+ */ C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);
+ })();
+ return CryptoJS.RIPEMD160;
+ });
+ });
+
+ var hmac = createCommonjsModule(function (module, exports) {
+ (function (root, factory) {
+ {
+ // CommonJS
+ module.exports = factory(core);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var C_enc = C.enc;
+ var Utf8 = C_enc.Utf8;
+ var C_algo = C.algo;
+ /**
+ * HMAC algorithm.
+ */ C_algo.HMAC = Base.extend({
+ /**
+ * Initializes a newly created HMAC.
+ *
+ * @param {Hasher} hasher The hash algorithm to use.
+ * @param {WordArray|string} key The secret key.
+ *
+ * @example
+ *
+ * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
+ */ init: function init(hasher, key) {
+ // Init hasher
+ hasher = this._hasher = new hasher.init();
+ // Convert string to WordArray, else assume WordArray already
+ if (typeof key == "string") {
+ key = Utf8.parse(key);
+ }
+ // Shortcuts
+ var hasherBlockSize = hasher.blockSize;
+ var hasherBlockSizeBytes = hasherBlockSize * 4;
+ // Allow arbitrary length keys
+ if (key.sigBytes > hasherBlockSizeBytes) {
+ key = hasher.finalize(key);
+ }
+ // Clamp excess bits
+ key.clamp();
+ // Clone key for inner and outer pads
+ var oKey = (this._oKey = key.clone());
+ var iKey = (this._iKey = key.clone());
+ // Shortcuts
+ var oKeyWords = oKey.words;
+ var iKeyWords = iKey.words;
+ // XOR keys with pad constants
+ for (var i = 0; i < hasherBlockSize; i++) {
+ oKeyWords[i] ^= 0x5c5c5c5c;
+ iKeyWords[i] ^= 0x36363636;
+ }
+ oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
+ // Set initial values
+ this.reset();
+ },
+ /**
+ * Resets this HMAC to its initial state.
+ *
+ * @example
+ *
+ * hmacHasher.reset();
+ */ reset: function reset() {
+ // Shortcut
+ var hasher = this._hasher;
+ // Reset
+ hasher.reset();
+ hasher.update(this._iKey);
+ },
+ /**
+ * Updates this HMAC with a message.
+ *
+ * @param {WordArray|string} messageUpdate The message to append.
+ *
+ * @return {HMAC} This HMAC instance.
+ *
+ * @example
+ *
+ * hmacHasher.update('message');
+ * hmacHasher.update(wordArray);
+ */ update: function update(messageUpdate) {
+ this._hasher.update(messageUpdate);
+ // Chainable
+ return this;
+ },
+ /**
+ * Finalizes the HMAC computation.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} messageUpdate (Optional) A final message update.
+ *
+ * @return {WordArray} The HMAC.
+ *
+ * @example
+ *
+ * var hmac = hmacHasher.finalize();
+ * var hmac = hmacHasher.finalize('message');
+ * var hmac = hmacHasher.finalize(wordArray);
+ */ finalize: function finalize(messageUpdate) {
+ // Shortcut
+ var hasher = this._hasher;
+ // Compute HMAC
+ var innerHash = hasher.finalize(messageUpdate);
+ hasher.reset();
+ var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
+ return hmac;
+ },
+ });
+ })();
+ });
+ });
+
+ var pbkdf2 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, sha1, hmac);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var SHA1 = C_algo.SHA1;
+ var HMAC = C_algo.HMAC;
+ /**
+ * Password-Based Key Derivation Function 2 algorithm.
+ */ var PBKDF2 = (C_algo.PBKDF2 = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+ * @property {Hasher} hasher The hasher to use. Default: SHA1
+ * @property {number} iterations The number of iterations to perform. Default: 1
+ */ cfg: Base.extend({
+ keySize: 128 / 32,
+ hasher: SHA1,
+ iterations: 1,
+ }),
+ /**
+ * Initializes a newly created key derivation function.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+ *
+ * @example
+ *
+ * var kdf = CryptoJS.algo.PBKDF2.create();
+ * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });
+ * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });
+ */ init: function init(cfg) {
+ this.cfg = this.cfg.extend(cfg);
+ },
+ /**
+ * Computes the Password-Based Key Derivation Function 2.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @example
+ *
+ * var key = kdf.compute(password, salt);
+ */ compute: function compute(password, salt) {
+ // Shortcut
+ var cfg = this.cfg;
+ // Init HMAC
+ var hmac = HMAC.create(cfg.hasher, password);
+ // Initial values
+ var derivedKey = WordArray.create();
+ var blockIndex = WordArray.create([0x00000001]);
+ // Shortcuts
+ var derivedKeyWords = derivedKey.words;
+ var blockIndexWords = blockIndex.words;
+ var keySize = cfg.keySize;
+ var iterations = cfg.iterations;
+ // Generate key
+ while (derivedKeyWords.length < keySize) {
+ var block = hmac.update(salt).finalize(blockIndex);
+ hmac.reset();
+ // Shortcuts
+ var blockWords = block.words;
+ var blockWordsLength = blockWords.length;
+ // Iterations
+ var intermediate = block;
+ for (var i = 1; i < iterations; i++) {
+ intermediate = hmac.finalize(intermediate);
+ hmac.reset();
+ // Shortcut
+ var intermediateWords = intermediate.words;
+ // XOR intermediate with block
+ for (var j = 0; j < blockWordsLength; j++) {
+ blockWords[j] ^= intermediateWords[j];
+ }
+ }
+ derivedKey.concat(block);
+ blockIndexWords[0]++;
+ }
+ derivedKey.sigBytes = keySize * 4;
+ return derivedKey;
+ },
+ }));
+ /**
+ * Computes the Password-Based Key Derivation Function 2.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ * @param {Object} cfg (Optional) The configuration options to use for this computation.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var key = CryptoJS.PBKDF2(password, salt);
+ * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });
+ * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });
+ */ C.PBKDF2 = function (password, salt, cfg) {
+ return PBKDF2.create(cfg).compute(password, salt);
+ };
+ })();
+ return CryptoJS.PBKDF2;
+ });
+ });
+
+ var evpkdf = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, sha1, hmac);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var C_algo = C.algo;
+ var MD5 = C_algo.MD5;
+ /**
+ * This key derivation function is meant to conform with EVP_BytesToKey.
+ * www.openssl.org/docs/crypto/EVP_BytesToKey.html
+ */ var EvpKDF = (C_algo.EvpKDF = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
+ * @property {Hasher} hasher The hash algorithm to use. Default: MD5
+ * @property {number} iterations The number of iterations to perform. Default: 1
+ */ cfg: Base.extend({
+ keySize: 128 / 32,
+ hasher: MD5,
+ iterations: 1,
+ }),
+ /**
+ * Initializes a newly created key derivation function.
+ *
+ * @param {Object} cfg (Optional) The configuration options to use for the derivation.
+ *
+ * @example
+ *
+ * var kdf = CryptoJS.algo.EvpKDF.create();
+ * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
+ * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
+ */ init: function init(cfg) {
+ this.cfg = this.cfg.extend(cfg);
+ },
+ /**
+ * Derives a key from a password.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @example
+ *
+ * var key = kdf.compute(password, salt);
+ */ compute: function compute(password, salt) {
+ var block;
+ // Shortcut
+ var cfg = this.cfg;
+ // Init hasher
+ var hasher = cfg.hasher.create();
+ // Initial values
+ var derivedKey = WordArray.create();
+ // Shortcuts
+ var derivedKeyWords = derivedKey.words;
+ var keySize = cfg.keySize;
+ var iterations = cfg.iterations;
+ // Generate key
+ while (derivedKeyWords.length < keySize) {
+ if (block) {
+ hasher.update(block);
+ }
+ block = hasher.update(password).finalize(salt);
+ hasher.reset();
+ // Iterations
+ for (var i = 1; i < iterations; i++) {
+ block = hasher.finalize(block);
+ hasher.reset();
+ }
+ derivedKey.concat(block);
+ }
+ derivedKey.sigBytes = keySize * 4;
+ return derivedKey;
+ },
+ }));
+ /**
+ * Derives a key from a password.
+ *
+ * @param {WordArray|string} password The password.
+ * @param {WordArray|string} salt A salt.
+ * @param {Object} cfg (Optional) The configuration options to use for this computation.
+ *
+ * @return {WordArray} The derived key.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var key = CryptoJS.EvpKDF(password, salt);
+ * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
+ * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
+ */ C.EvpKDF = function (password, salt, cfg) {
+ return EvpKDF.create(cfg).compute(password, salt);
+ };
+ })();
+ return CryptoJS.EvpKDF;
+ });
+ });
+
+ var cipherCore = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, evpkdf);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * Cipher core components.
+ */ CryptoJS.lib.Cipher ||
+ (function (undefined1) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var Base = C_lib.Base;
+ var WordArray = C_lib.WordArray;
+ var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;
+ var C_enc = C.enc;
+ C_enc.Utf8;
+ var Base64 = C_enc.Base64;
+ var C_algo = C.algo;
+ var EvpKDF = C_algo.EvpKDF;
+ /**
+ * Abstract base cipher template.
+ *
+ * @property {number} keySize This cipher's key size. Default: 4 (128 bits)
+ * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)
+ * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.
+ * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.
+ */ var Cipher = (C_lib.Cipher = BufferedBlockAlgorithm.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {WordArray} iv The IV to use for this operation.
+ */ cfg: Base.extend(),
+ /**
+ * Creates this cipher in encryption mode.
+ *
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {Cipher} A cipher instance.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });
+ */ createEncryptor: function createEncryptor(key, cfg) {
+ return this.create(this._ENC_XFORM_MODE, key, cfg);
+ },
+ /**
+ * Creates this cipher in decryption mode.
+ *
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {Cipher} A cipher instance.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });
+ */ createDecryptor: function createDecryptor(key, cfg) {
+ return this.create(this._DEC_XFORM_MODE, key, cfg);
+ },
+ /**
+ * Initializes a newly created cipher.
+ *
+ * @param {number} xformMode Either the encryption or decryption transormation mode constant.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @example
+ *
+ * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });
+ */ init: function init(xformMode, key, cfg) {
+ // Apply config defaults
+ this.cfg = this.cfg.extend(cfg);
+ // Store transform mode and key
+ this._xformMode = xformMode;
+ this._key = key;
+ // Set initial values
+ this.reset();
+ },
+ /**
+ * Resets this cipher to its initial state.
+ *
+ * @example
+ *
+ * cipher.reset();
+ */ reset: function reset() {
+ // Reset data buffer
+ BufferedBlockAlgorithm.reset.call(this);
+ // Perform concrete-cipher logic
+ this._doReset();
+ },
+ /**
+ * Adds data to be encrypted or decrypted.
+ *
+ * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.
+ *
+ * @return {WordArray} The data after processing.
+ *
+ * @example
+ *
+ * var encrypted = cipher.process('data');
+ * var encrypted = cipher.process(wordArray);
+ */ process: function process(dataUpdate) {
+ // Append
+ this._append(dataUpdate);
+ // Process available blocks
+ return this._process();
+ },
+ /**
+ * Finalizes the encryption or decryption process.
+ * Note that the finalize operation is effectively a destructive, read-once operation.
+ *
+ * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.
+ *
+ * @return {WordArray} The data after final processing.
+ *
+ * @example
+ *
+ * var encrypted = cipher.finalize();
+ * var encrypted = cipher.finalize('data');
+ * var encrypted = cipher.finalize(wordArray);
+ */ finalize: function finalize(dataUpdate) {
+ // Final data update
+ if (dataUpdate) {
+ this._append(dataUpdate);
+ }
+ // Perform concrete-cipher logic
+ var finalProcessedData = this._doFinalize();
+ return finalProcessedData;
+ },
+ keySize: 128 / 32,
+ ivSize: 128 / 32,
+ _ENC_XFORM_MODE: 1,
+ _DEC_XFORM_MODE: 2,
+ /**
+ * Creates shortcut functions to a cipher's object interface.
+ *
+ * @param {Cipher} cipher The cipher to create a helper for.
+ *
+ * @return {Object} An object with encrypt and decrypt shortcut functions.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);
+ */ _createHelper: (function () {
+ var selectCipherStrategy = function selectCipherStrategy(key) {
+ if (typeof key == "string") {
+ return PasswordBasedCipher;
+ } else {
+ return SerializableCipher;
+ }
+ };
+ return function (cipher) {
+ return {
+ encrypt: function encrypt(message, key, cfg) {
+ return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);
+ },
+ decrypt: function decrypt(ciphertext, key, cfg) {
+ return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);
+ },
+ };
+ };
+ })(),
+ }));
+ /**
+ * Abstract base stream cipher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)
+ */ C_lib.StreamCipher = Cipher.extend({
+ _doFinalize: function _doFinalize() {
+ // Process partial blocks
+ var finalProcessedBlocks = this._process(!!"flush");
+ return finalProcessedBlocks;
+ },
+ blockSize: 1,
+ });
+ /**
+ * Mode namespace.
+ */ var C_mode = (C.mode = {});
+ /**
+ * Abstract base block cipher mode template.
+ */ var BlockCipherMode = (C_lib.BlockCipherMode = Base.extend({
+ /**
+ * Creates this mode for encryption.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);
+ */ createEncryptor: function createEncryptor(cipher, iv) {
+ return this.Encryptor.create(cipher, iv);
+ },
+ /**
+ * Creates this mode for decryption.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);
+ */ createDecryptor: function createDecryptor(cipher, iv) {
+ return this.Decryptor.create(cipher, iv);
+ },
+ /**
+ * Initializes a newly created mode.
+ *
+ * @param {Cipher} cipher A block cipher instance.
+ * @param {Array} iv The IV words.
+ *
+ * @example
+ *
+ * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);
+ */ init: function init(cipher, iv) {
+ this._cipher = cipher;
+ this._iv = iv;
+ },
+ }));
+ /**
+ * Cipher Block Chaining mode.
+ */ var CBC = (C_mode.CBC = (function () {
+ var xorBlock = function xorBlock(words, offset, blockSize) {
+ var block;
+ // Shortcut
+ var iv = this._iv;
+ // Choose mixing block
+ if (iv) {
+ block = iv;
+ // Remove IV for subsequent blocks
+ this._iv = undefined1;
+ } else {
+ block = this._prevBlock;
+ }
+ // XOR blocks
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= block[i];
+ }
+ };
+ /**
+ * Abstract base CBC mode.
+ */ var CBC = BlockCipherMode.extend();
+ /**
+ * CBC encryptor.
+ */ CBC.Encryptor = CBC.extend({
+ /**
+ * Processes the data block at offset.
+ *
+ * @param {Array} words The data words to operate on.
+ * @param {number} offset The offset where the block starts.
+ *
+ * @example
+ *
+ * mode.processBlock(data.words, offset);
+ */ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ // XOR and encrypt
+ xorBlock.call(this, words, offset, blockSize);
+ cipher.encryptBlock(words, offset);
+ // Remember this block to use with next block
+ this._prevBlock = words.slice(offset, offset + blockSize);
+ },
+ });
+ /**
+ * CBC decryptor.
+ */ CBC.Decryptor = CBC.extend({
+ /**
+ * Processes the data block at offset.
+ *
+ * @param {Array} words The data words to operate on.
+ * @param {number} offset The offset where the block starts.
+ *
+ * @example
+ *
+ * mode.processBlock(data.words, offset);
+ */ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ // Remember this block to use with next block
+ var thisBlock = words.slice(offset, offset + blockSize);
+ // Decrypt and XOR
+ cipher.decryptBlock(words, offset);
+ xorBlock.call(this, words, offset, blockSize);
+ // This block becomes the previous block
+ this._prevBlock = thisBlock;
+ },
+ });
+ return CBC;
+ })());
+ /**
+ * Padding namespace.
+ */ var C_pad = (C.pad = {});
+ /**
+ * PKCS #5/7 padding strategy.
+ */ var Pkcs7 = (C_pad.Pkcs7 = {
+ /**
+ * Pads data using the algorithm defined in PKCS #5/7.
+ *
+ * @param {WordArray} data The data to pad.
+ * @param {number} blockSize The multiple that the data should be padded to.
+ *
+ * @static
+ *
+ * @example
+ *
+ * CryptoJS.pad.Pkcs7.pad(wordArray, 4);
+ */ pad: function pad(data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - (data.sigBytes % blockSizeBytes);
+ // Create padding word
+ var paddingWord =
+ (nPaddingBytes << 24) |
+ (nPaddingBytes << 16) |
+ (nPaddingBytes << 8) |
+ nPaddingBytes;
+ // Create padding
+ var paddingWords = [];
+ for (var i = 0; i < nPaddingBytes; i += 4) {
+ paddingWords.push(paddingWord);
+ }
+ var padding = WordArray.create(paddingWords, nPaddingBytes);
+ // Add padding
+ data.concat(padding);
+ },
+ /**
+ * Unpads data that had been padded using the algorithm defined in PKCS #5/7.
+ *
+ * @param {WordArray} data The data to unpad.
+ *
+ * @static
+ *
+ * @example
+ *
+ * CryptoJS.pad.Pkcs7.unpad(wordArray);
+ */ unpad: function unpad(data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ },
+ });
+ /**
+ * Abstract base block cipher template.
+ *
+ * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)
+ */ C_lib.BlockCipher = Cipher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {Mode} mode The block mode to use. Default: CBC
+ * @property {Padding} padding The padding strategy to use. Default: Pkcs7
+ */ cfg: Cipher.cfg.extend({
+ mode: CBC,
+ padding: Pkcs7,
+ }),
+ reset: function reset() {
+ var modeCreator;
+ // Reset cipher
+ Cipher.reset.call(this);
+ // Shortcuts
+ var cfg = this.cfg;
+ var iv = cfg.iv;
+ var mode = cfg.mode;
+ // Reset block mode
+ if (this._xformMode == this._ENC_XFORM_MODE) {
+ modeCreator = mode.createEncryptor;
+ } /* if (this._xformMode == this._DEC_XFORM_MODE) */ else {
+ modeCreator = mode.createDecryptor;
+ // Keep at least one block in the buffer for unpadding
+ this._minBufferSize = 1;
+ }
+ if (this._mode && this._mode.__creator == modeCreator) {
+ this._mode.init(this, iv && iv.words);
+ } else {
+ this._mode = modeCreator.call(mode, this, iv && iv.words);
+ this._mode.__creator = modeCreator;
+ }
+ },
+ _doProcessBlock: function _doProcessBlock(words, offset) {
+ this._mode.processBlock(words, offset);
+ },
+ _doFinalize: function _doFinalize() {
+ var finalProcessedBlocks;
+ // Shortcut
+ var padding = this.cfg.padding;
+ // Finalize
+ if (this._xformMode == this._ENC_XFORM_MODE) {
+ // Pad data
+ padding.pad(this._data, this.blockSize);
+ // Process final blocks
+ finalProcessedBlocks = this._process(!!"flush");
+ } /* if (this._xformMode == this._DEC_XFORM_MODE) */ else {
+ // Process final blocks
+ finalProcessedBlocks = this._process(!!"flush");
+ // Unpad data
+ padding.unpad(finalProcessedBlocks);
+ }
+ return finalProcessedBlocks;
+ },
+ blockSize: 128 / 32,
+ });
+ /**
+ * A collection of cipher parameters.
+ *
+ * @property {WordArray} ciphertext The raw ciphertext.
+ * @property {WordArray} key The key to this ciphertext.
+ * @property {WordArray} iv The IV used in the ciphering operation.
+ * @property {WordArray} salt The salt used with a key derivation function.
+ * @property {Cipher} algorithm The cipher algorithm.
+ * @property {Mode} mode The block mode used in the ciphering operation.
+ * @property {Padding} padding The padding scheme used in the ciphering operation.
+ * @property {number} blockSize The block size of the cipher.
+ * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.
+ */ var CipherParams = (C_lib.CipherParams = Base.extend({
+ /**
+ * Initializes a newly created cipher params object.
+ *
+ * @param {Object} cipherParams An object with any of the possible cipher parameters.
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.lib.CipherParams.create({
+ * ciphertext: ciphertextWordArray,
+ * key: keyWordArray,
+ * iv: ivWordArray,
+ * salt: saltWordArray,
+ * algorithm: CryptoJS.algo.AES,
+ * mode: CryptoJS.mode.CBC,
+ * padding: CryptoJS.pad.PKCS7,
+ * blockSize: 4,
+ * formatter: CryptoJS.format.OpenSSL
+ * });
+ */ init: function init(cipherParams) {
+ this.mixIn(cipherParams);
+ },
+ /**
+ * Converts this cipher params object to a string.
+ *
+ * @param {Format} formatter (Optional) The formatting strategy to use.
+ *
+ * @return {string} The stringified cipher params.
+ *
+ * @throws Error If neither the formatter nor the default formatter is set.
+ *
+ * @example
+ *
+ * var string = cipherParams + '';
+ * var string = cipherParams.toString();
+ * var string = cipherParams.toString(CryptoJS.format.OpenSSL);
+ */ toString: function toString(formatter) {
+ return (formatter || this.formatter).stringify(this);
+ },
+ }));
+ /**
+ * Format namespace.
+ */ var C_format = (C.format = {});
+ /**
+ * OpenSSL formatting strategy.
+ */ var OpenSSLFormatter = (C_format.OpenSSL = {
+ /**
+ * Converts a cipher params object to an OpenSSL-compatible string.
+ *
+ * @param {CipherParams} cipherParams The cipher params object.
+ *
+ * @return {string} The OpenSSL-compatible string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);
+ */ stringify: function stringify(cipherParams) {
+ var wordArray;
+ // Shortcuts
+ var ciphertext = cipherParams.ciphertext;
+ var salt = cipherParams.salt;
+ // Format
+ if (salt) {
+ wordArray = WordArray.create([0x53616c74, 0x65645f5f])
+ .concat(salt)
+ .concat(ciphertext);
+ } else {
+ wordArray = ciphertext;
+ }
+ return wordArray.toString(Base64);
+ },
+ /**
+ * Converts an OpenSSL-compatible string to a cipher params object.
+ *
+ * @param {string} openSSLStr The OpenSSL-compatible string.
+ *
+ * @return {CipherParams} The cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);
+ */ parse: function parse(openSSLStr) {
+ var salt;
+ // Parse base64
+ var ciphertext = Base64.parse(openSSLStr);
+ // Shortcut
+ var ciphertextWords = ciphertext.words;
+ // Test for salt
+ if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {
+ // Extract salt
+ salt = WordArray.create(ciphertextWords.slice(2, 4));
+ // Remove salt from ciphertext
+ ciphertextWords.splice(0, 4);
+ ciphertext.sigBytes -= 16;
+ }
+ return CipherParams.create({
+ ciphertext: ciphertext,
+ salt: salt,
+ });
+ },
+ });
+ /**
+ * A cipher wrapper that returns ciphertext as a serializable cipher params object.
+ */ var SerializableCipher = (C_lib.SerializableCipher = Base.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL
+ */ cfg: Base.extend({
+ format: OpenSSLFormatter,
+ }),
+ /**
+ * Encrypts a message.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {WordArray|string} message The message to encrypt.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {CipherParams} A cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ */ encrypt: function encrypt(cipher, message, key, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+ // Encrypt
+ var encryptor = cipher.createEncryptor(key, cfg);
+ var ciphertext = encryptor.finalize(message);
+ // Shortcut
+ var cipherCfg = encryptor.cfg;
+ // Create and return serializable cipher params
+ return CipherParams.create({
+ ciphertext: ciphertext,
+ key: key,
+ iv: cipherCfg.iv,
+ algorithm: cipher,
+ mode: cipherCfg.mode,
+ padding: cipherCfg.padding,
+ blockSize: cipher.blockSize,
+ formatter: cfg.format,
+ });
+ },
+ /**
+ * Decrypts serialized ciphertext.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+ * @param {WordArray} key The key.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {WordArray} The plaintext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });
+ */ decrypt: function decrypt(cipher, ciphertext, key, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+ // Convert string to CipherParams
+ ciphertext = this._parse(ciphertext, cfg.format);
+ // Decrypt
+ var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);
+ return plaintext;
+ },
+ /**
+ * Converts serialized ciphertext to CipherParams,
+ * else assumed CipherParams already and returns ciphertext unchanged.
+ *
+ * @param {CipherParams|string} ciphertext The ciphertext.
+ * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.
+ *
+ * @return {CipherParams} The unserialized ciphertext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);
+ */ _parse: function _parse(ciphertext, format) {
+ if (typeof ciphertext == "string") {
+ return format.parse(ciphertext, this);
+ } else {
+ return ciphertext;
+ }
+ },
+ }));
+ /**
+ * Key derivation function namespace.
+ */ var C_kdf = (C.kdf = {});
+ /**
+ * OpenSSL key derivation function.
+ */ var OpenSSLKdf = (C_kdf.OpenSSL = {
+ /**
+ * Derives a key and IV from a password.
+ *
+ * @param {string} password The password to derive from.
+ * @param {number} keySize The size in words of the key to generate.
+ * @param {number} ivSize The size in words of the IV to generate.
+ * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.
+ *
+ * @return {CipherParams} A cipher params object with the key, IV, and salt.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);
+ * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');
+ */ execute: function execute(password, keySize, ivSize, salt) {
+ // Generate random salt
+ if (!salt) {
+ salt = WordArray.random(64 / 8);
+ }
+ // Derive key and IV
+ var key = EvpKDF.create({
+ keySize: keySize + ivSize,
+ }).compute(password, salt);
+ // Separate key and IV
+ var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);
+ key.sigBytes = keySize * 4;
+ // Return params
+ return CipherParams.create({
+ key: key,
+ iv: iv,
+ salt: salt,
+ });
+ },
+ });
+ /**
+ * A serializable cipher wrapper that derives the key from a password,
+ * and returns ciphertext as a serializable cipher params object.
+ */ var PasswordBasedCipher = (C_lib.PasswordBasedCipher = SerializableCipher.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL
+ */ cfg: SerializableCipher.cfg.extend({
+ kdf: OpenSSLKdf,
+ }),
+ /**
+ * Encrypts a message using a password.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {WordArray|string} message The message to encrypt.
+ * @param {string} password The password.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {CipherParams} A cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');
+ * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });
+ */ encrypt: function encrypt(cipher, message, password, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+ // Derive key and other params
+ var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);
+ // Add IV to config
+ cfg.iv = derivedParams.iv;
+ // Encrypt
+ var ciphertext = SerializableCipher.encrypt.call(
+ this,
+ cipher,
+ message,
+ derivedParams.key,
+ cfg
+ );
+ // Mix in derived params
+ ciphertext.mixIn(derivedParams);
+ return ciphertext;
+ },
+ /**
+ * Decrypts serialized ciphertext using a password.
+ *
+ * @param {Cipher} cipher The cipher algorithm to use.
+ * @param {CipherParams|string} ciphertext The ciphertext to decrypt.
+ * @param {string} password The password.
+ * @param {Object} cfg (Optional) The configuration options to use for this operation.
+ *
+ * @return {WordArray} The plaintext.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });
+ * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });
+ */ decrypt: function decrypt(cipher, ciphertext, password, cfg) {
+ // Apply config defaults
+ cfg = this.cfg.extend(cfg);
+ // Convert string to CipherParams
+ ciphertext = this._parse(ciphertext, cfg.format);
+ // Derive key and other params
+ var derivedParams = cfg.kdf.execute(
+ password,
+ cipher.keySize,
+ cipher.ivSize,
+ ciphertext.salt
+ );
+ // Add IV to config
+ cfg.iv = derivedParams.iv;
+ // Decrypt
+ var plaintext = SerializableCipher.decrypt.call(
+ this,
+ cipher,
+ ciphertext,
+ derivedParams.key,
+ cfg
+ );
+ return plaintext;
+ },
+ }));
+ })();
+ });
+ });
+
+ var modeCfb = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * Cipher Feedback block mode.
+ */ CryptoJS.mode.CFB = (function () {
+ var generateKeystreamAndEncrypt = function generateKeystreamAndEncrypt(
+ words,
+ offset,
+ blockSize,
+ cipher
+ ) {
+ var keystream;
+ // Shortcut
+ var iv = this._iv;
+ // Generate keystream
+ if (iv) {
+ keystream = iv.slice(0);
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ } else {
+ keystream = this._prevBlock;
+ }
+ cipher.encryptBlock(keystream, 0);
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ };
+ var CFB = CryptoJS.lib.BlockCipherMode.extend();
+ CFB.Encryptor = CFB.extend({
+ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+ // Remember this block to use with next block
+ this._prevBlock = words.slice(offset, offset + blockSize);
+ },
+ });
+ CFB.Decryptor = CFB.extend({
+ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ // Remember this block to use with next block
+ var thisBlock = words.slice(offset, offset + blockSize);
+ generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
+ // This block becomes the previous block
+ this._prevBlock = thisBlock;
+ },
+ });
+ return CFB;
+ })();
+ return CryptoJS.mode.CFB;
+ });
+ });
+
+ var modeCtr = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * Counter block mode.
+ */ CryptoJS.mode.CTR = (function () {
+ var CTR = CryptoJS.lib.BlockCipherMode.extend();
+ var Encryptor = (CTR.Encryptor = CTR.extend({
+ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var counter = this._counter;
+ // Generate keystream
+ if (iv) {
+ counter = this._counter = iv.slice(0);
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ var keystream = counter.slice(0);
+ cipher.encryptBlock(keystream, 0);
+ // Increment counter
+ counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0;
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ },
+ }));
+ CTR.Decryptor = Encryptor;
+ return CTR;
+ })();
+ return CryptoJS.mode.CTR;
+ });
+ });
+
+ var modeCtrGladman = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /** @preserve
+ * Counter block mode compatible with Dr Brian Gladman fileenc.c
+ * derived from CryptoJS.mode.CTR
+ * Jan Hruby jhruby.web@gmail.com
+ */ CryptoJS.mode.CTRGladman = (function () {
+ var incWord = function incWord(word) {
+ if (((word >> 24) & 0xff) === 0xff) {
+ var b1 = (word >> 16) & 0xff;
+ var b2 = (word >> 8) & 0xff;
+ var b3 = word & 0xff;
+ if (b1 === 0xff) {
+ b1 = 0;
+ if (b2 === 0xff) {
+ b2 = 0;
+ if (b3 === 0xff) {
+ b3 = 0;
+ } else {
+ ++b3;
+ }
+ } else {
+ ++b2;
+ }
+ } else {
+ ++b1;
+ }
+ word = 0;
+ word += b1 << 16;
+ word += b2 << 8;
+ word += b3;
+ } else {
+ word += 0x01 << 24;
+ }
+ return word;
+ };
+ var incCounter = function incCounter(counter) {
+ if ((counter[0] = incWord(counter[0])) === 0) {
+ // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
+ counter[1] = incWord(counter[1]);
+ }
+ return counter;
+ };
+ var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();
+ var Encryptor = (CTRGladman.Encryptor = CTRGladman.extend({
+ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var counter = this._counter;
+ // Generate keystream
+ if (iv) {
+ counter = this._counter = iv.slice(0);
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ incCounter(counter);
+ var keystream = counter.slice(0);
+ cipher.encryptBlock(keystream, 0);
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ },
+ }));
+ CTRGladman.Decryptor = Encryptor;
+ return CTRGladman;
+ })();
+ return CryptoJS.mode.CTRGladman;
+ });
+ });
+
+ var modeOfb = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * Output Feedback block mode.
+ */ CryptoJS.mode.OFB = (function () {
+ var OFB = CryptoJS.lib.BlockCipherMode.extend();
+ var Encryptor = (OFB.Encryptor = OFB.extend({
+ processBlock: function processBlock(words, offset) {
+ // Shortcuts
+ var cipher = this._cipher;
+ var blockSize = cipher.blockSize;
+ var iv = this._iv;
+ var keystream = this._keystream;
+ // Generate keystream
+ if (iv) {
+ keystream = this._keystream = iv.slice(0);
+ // Remove IV for subsequent blocks
+ this._iv = undefined;
+ }
+ cipher.encryptBlock(keystream, 0);
+ // Encrypt
+ for (var i = 0; i < blockSize; i++) {
+ words[offset + i] ^= keystream[i];
+ }
+ },
+ }));
+ OFB.Decryptor = Encryptor;
+ return OFB;
+ })();
+ return CryptoJS.mode.OFB;
+ });
+ });
+
+ var modeEcb = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * Electronic Codebook block mode.
+ */ CryptoJS.mode.ECB = (function () {
+ var ECB = CryptoJS.lib.BlockCipherMode.extend();
+ ECB.Encryptor = ECB.extend({
+ processBlock: function processBlock(words, offset) {
+ this._cipher.encryptBlock(words, offset);
+ },
+ });
+ ECB.Decryptor = ECB.extend({
+ processBlock: function processBlock(words, offset) {
+ this._cipher.decryptBlock(words, offset);
+ },
+ });
+ return ECB;
+ })();
+ return CryptoJS.mode.ECB;
+ });
+ });
+
+ var padAnsix923 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * ANSI X.923 padding strategy.
+ */ CryptoJS.pad.AnsiX923 = {
+ pad: function pad(data, blockSize) {
+ // Shortcuts
+ var dataSigBytes = data.sigBytes;
+ var blockSizeBytes = blockSize * 4;
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - (dataSigBytes % blockSizeBytes);
+ // Compute last byte position
+ var lastBytePos = dataSigBytes + nPaddingBytes - 1;
+ // Pad
+ data.clamp();
+ data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);
+ data.sigBytes += nPaddingBytes;
+ },
+ unpad: function unpad(data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ },
+ };
+ return CryptoJS.pad.Ansix923;
+ });
+ });
+
+ var padIso10126 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * ISO 10126 padding strategy.
+ */ CryptoJS.pad.Iso10126 = {
+ pad: function pad(data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+ // Count padding bytes
+ var nPaddingBytes = blockSizeBytes - (data.sigBytes % blockSizeBytes);
+ // Pad
+ data
+ .concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1))
+ .concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));
+ },
+ unpad: function unpad(data) {
+ // Get number of padding bytes from last byte
+ var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;
+ // Remove padding
+ data.sigBytes -= nPaddingBytes;
+ },
+ };
+ return CryptoJS.pad.Iso10126;
+ });
+ });
+
+ var padIso97971 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * ISO/IEC 9797-1 Padding Method 2.
+ */ CryptoJS.pad.Iso97971 = {
+ pad: function pad(data, blockSize) {
+ // Add 0x80 byte
+ data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));
+ // Zero pad the rest
+ CryptoJS.pad.ZeroPadding.pad(data, blockSize);
+ },
+ unpad: function unpad(data) {
+ // Remove zero padding
+ CryptoJS.pad.ZeroPadding.unpad(data);
+ // Remove one more byte -- the 0x80 byte
+ data.sigBytes--;
+ },
+ };
+ return CryptoJS.pad.Iso97971;
+ });
+ });
+
+ var padZeropadding = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * Zero padding strategy.
+ */ CryptoJS.pad.ZeroPadding = {
+ pad: function pad(data, blockSize) {
+ // Shortcut
+ var blockSizeBytes = blockSize * 4;
+ // Pad
+ data.clamp();
+ data.sigBytes += blockSizeBytes - (data.sigBytes % blockSizeBytes || blockSizeBytes);
+ },
+ unpad: function unpad(data) {
+ // Shortcut
+ var dataWords = data.words;
+ // Unpad
+ var i = data.sigBytes - 1;
+ for (var i = data.sigBytes - 1; i >= 0; i--) {
+ if ((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff) {
+ data.sigBytes = i + 1;
+ break;
+ }
+ }
+ },
+ };
+ return CryptoJS.pad.ZeroPadding;
+ });
+ });
+
+ var padNopadding = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ /**
+ * A noop padding strategy.
+ */ CryptoJS.pad.NoPadding = {
+ pad: function pad() {},
+ unpad: function unpad() {},
+ };
+ return CryptoJS.pad.NoPadding;
+ });
+ });
+
+ var formatHex = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function (undefined1) {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var CipherParams = C_lib.CipherParams;
+ var C_enc = C.enc;
+ var Hex = C_enc.Hex;
+ var C_format = C.format;
+ C_format.Hex = {
+ /**
+ * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
+ *
+ * @param {CipherParams} cipherParams The cipher params object.
+ *
+ * @return {string} The hexadecimally encoded string.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var hexString = CryptoJS.format.Hex.stringify(cipherParams);
+ */ stringify: function stringify(cipherParams) {
+ return cipherParams.ciphertext.toString(Hex);
+ },
+ /**
+ * Converts a hexadecimally encoded ciphertext string to a cipher params object.
+ *
+ * @param {string} input The hexadecimally encoded string.
+ *
+ * @return {CipherParams} The cipher params object.
+ *
+ * @static
+ *
+ * @example
+ *
+ * var cipherParams = CryptoJS.format.Hex.parse(hexString);
+ */ parse: function parse(input) {
+ var ciphertext = Hex.parse(input);
+ return CipherParams.create({
+ ciphertext: ciphertext,
+ });
+ },
+ };
+ })();
+ return CryptoJS.format.Hex;
+ });
+ });
+
+ var aes = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, encBase64, md5, evpkdf, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+ // Lookup tables
+ var SBOX = [];
+ var INV_SBOX = [];
+ var SUB_MIX_0 = [];
+ var SUB_MIX_1 = [];
+ var SUB_MIX_2 = [];
+ var SUB_MIX_3 = [];
+ var INV_SUB_MIX_0 = [];
+ var INV_SUB_MIX_1 = [];
+ var INV_SUB_MIX_2 = [];
+ var INV_SUB_MIX_3 = [];
+ // Compute lookup tables
+ (function () {
+ // Compute double table
+ var d = [];
+ for (var i = 0; i < 256; i++) {
+ if (i < 128) {
+ d[i] = i << 1;
+ } else {
+ d[i] = (i << 1) ^ 0x11b;
+ }
+ }
+ // Walk GF(2^8)
+ var x = 0;
+ var xi = 0;
+ for (var i = 0; i < 256; i++) {
+ // Compute sbox
+ var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);
+ sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;
+ SBOX[x] = sx;
+ INV_SBOX[sx] = x;
+ // Compute multiplication
+ var x2 = d[x];
+ var x4 = d[x2];
+ var x8 = d[x4];
+ // Compute sub bytes, mix columns tables
+ var t = (d[sx] * 0x101) ^ (sx * 0x1010100);
+ SUB_MIX_0[x] = (t << 24) | (t >>> 8);
+ SUB_MIX_1[x] = (t << 16) | (t >>> 16);
+ SUB_MIX_2[x] = (t << 8) | (t >>> 24);
+ SUB_MIX_3[x] = t;
+ // Compute inv sub bytes, inv mix columns tables
+ var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);
+ INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);
+ INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);
+ INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);
+ INV_SUB_MIX_3[sx] = t;
+ // Compute next counter
+ if (!x) {
+ x = xi = 1;
+ } else {
+ x = x2 ^ d[d[d[x8 ^ x2]]];
+ xi ^= d[d[xi]];
+ }
+ }
+ })();
+ // Precomputed Rcon lookup
+ var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];
+ /**
+ * AES block cipher algorithm.
+ */ var AES = (C_algo.AES = BlockCipher.extend({
+ _doReset: function _doReset() {
+ var t;
+ // Skip reset of nRounds has been set before and key did not change
+ if (this._nRounds && this._keyPriorReset === this._key) {
+ return;
+ }
+ // Shortcuts
+ var key = (this._keyPriorReset = this._key);
+ var keyWords = key.words;
+ var keySize = key.sigBytes / 4;
+ // Compute number of rounds
+ var nRounds = (this._nRounds = keySize + 6);
+ // Compute number of key schedule rows
+ var ksRows = (nRounds + 1) * 4;
+ // Compute key schedule
+ var keySchedule = (this._keySchedule = []);
+ for (var ksRow = 0; ksRow < ksRows; ksRow++) {
+ if (ksRow < keySize) {
+ keySchedule[ksRow] = keyWords[ksRow];
+ } else {
+ t = keySchedule[ksRow - 1];
+ if (!(ksRow % keySize)) {
+ // Rot word
+ t = (t << 8) | (t >>> 24);
+ // Sub word
+ t =
+ (SBOX[t >>> 24] << 24) |
+ (SBOX[(t >>> 16) & 0xff] << 16) |
+ (SBOX[(t >>> 8) & 0xff] << 8) |
+ SBOX[t & 0xff];
+ // Mix Rcon
+ t ^= RCON[(ksRow / keySize) | 0] << 24;
+ } else if (keySize > 6 && ksRow % keySize == 4) {
+ // Sub word
+ t =
+ (SBOX[t >>> 24] << 24) |
+ (SBOX[(t >>> 16) & 0xff] << 16) |
+ (SBOX[(t >>> 8) & 0xff] << 8) |
+ SBOX[t & 0xff];
+ }
+ keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;
+ }
+ }
+ // Compute inv key schedule
+ var invKeySchedule = (this._invKeySchedule = []);
+ for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {
+ var ksRow = ksRows - invKsRow;
+ if (invKsRow % 4) {
+ var t = keySchedule[ksRow];
+ } else {
+ var t = keySchedule[ksRow - 4];
+ }
+ if (invKsRow < 4 || ksRow <= 4) {
+ invKeySchedule[invKsRow] = t;
+ } else {
+ invKeySchedule[invKsRow] =
+ INV_SUB_MIX_0[SBOX[t >>> 24]] ^
+ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^
+ INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^
+ INV_SUB_MIX_3[SBOX[t & 0xff]];
+ }
+ }
+ },
+ encryptBlock: function encryptBlock(M, offset) {
+ this._doCryptBlock(
+ M,
+ offset,
+ this._keySchedule,
+ SUB_MIX_0,
+ SUB_MIX_1,
+ SUB_MIX_2,
+ SUB_MIX_3,
+ SBOX
+ );
+ },
+ decryptBlock: function decryptBlock(M, offset) {
+ // Swap 2nd and 4th rows
+ var t = M[offset + 1];
+ M[offset + 1] = M[offset + 3];
+ M[offset + 3] = t;
+ this._doCryptBlock(
+ M,
+ offset,
+ this._invKeySchedule,
+ INV_SUB_MIX_0,
+ INV_SUB_MIX_1,
+ INV_SUB_MIX_2,
+ INV_SUB_MIX_3,
+ INV_SBOX
+ );
+ // Inv swap 2nd and 4th rows
+ var t = M[offset + 1];
+ M[offset + 1] = M[offset + 3];
+ M[offset + 3] = t;
+ },
+ _doCryptBlock: function _doCryptBlock(
+ M,
+ offset,
+ keySchedule,
+ SUB_MIX_0,
+ SUB_MIX_1,
+ SUB_MIX_2,
+ SUB_MIX_3,
+ SBOX
+ ) {
+ // Shortcut
+ var nRounds = this._nRounds;
+ // Get input, add round key
+ var s0 = M[offset] ^ keySchedule[0];
+ var s1 = M[offset + 1] ^ keySchedule[1];
+ var s2 = M[offset + 2] ^ keySchedule[2];
+ var s3 = M[offset + 3] ^ keySchedule[3];
+ // Key schedule row counter
+ var ksRow = 4;
+ // Rounds
+ for (var round = 1; round < nRounds; round++) {
+ // Shift rows, sub bytes, mix columns, add round key
+ var t0 =
+ SUB_MIX_0[s0 >>> 24] ^
+ SUB_MIX_1[(s1 >>> 16) & 0xff] ^
+ SUB_MIX_2[(s2 >>> 8) & 0xff] ^
+ SUB_MIX_3[s3 & 0xff] ^
+ keySchedule[ksRow++];
+ var t1 =
+ SUB_MIX_0[s1 >>> 24] ^
+ SUB_MIX_1[(s2 >>> 16) & 0xff] ^
+ SUB_MIX_2[(s3 >>> 8) & 0xff] ^
+ SUB_MIX_3[s0 & 0xff] ^
+ keySchedule[ksRow++];
+ var t2 =
+ SUB_MIX_0[s2 >>> 24] ^
+ SUB_MIX_1[(s3 >>> 16) & 0xff] ^
+ SUB_MIX_2[(s0 >>> 8) & 0xff] ^
+ SUB_MIX_3[s1 & 0xff] ^
+ keySchedule[ksRow++];
+ var t3 =
+ SUB_MIX_0[s3 >>> 24] ^
+ SUB_MIX_1[(s0 >>> 16) & 0xff] ^
+ SUB_MIX_2[(s1 >>> 8) & 0xff] ^
+ SUB_MIX_3[s2 & 0xff] ^
+ keySchedule[ksRow++];
+ // Update state
+ s0 = t0;
+ s1 = t1;
+ s2 = t2;
+ s3 = t3;
+ }
+ // Shift rows, sub bytes, add round key
+ var t0 =
+ ((SBOX[s0 >>> 24] << 24) |
+ (SBOX[(s1 >>> 16) & 0xff] << 16) |
+ (SBOX[(s2 >>> 8) & 0xff] << 8) |
+ SBOX[s3 & 0xff]) ^
+ keySchedule[ksRow++];
+ var t1 =
+ ((SBOX[s1 >>> 24] << 24) |
+ (SBOX[(s2 >>> 16) & 0xff] << 16) |
+ (SBOX[(s3 >>> 8) & 0xff] << 8) |
+ SBOX[s0 & 0xff]) ^
+ keySchedule[ksRow++];
+ var t2 =
+ ((SBOX[s2 >>> 24] << 24) |
+ (SBOX[(s3 >>> 16) & 0xff] << 16) |
+ (SBOX[(s0 >>> 8) & 0xff] << 8) |
+ SBOX[s1 & 0xff]) ^
+ keySchedule[ksRow++];
+ var t3 =
+ ((SBOX[s3 >>> 24] << 24) |
+ (SBOX[(s0 >>> 16) & 0xff] << 16) |
+ (SBOX[(s1 >>> 8) & 0xff] << 8) |
+ SBOX[s2 & 0xff]) ^
+ keySchedule[ksRow++];
+ // Set output
+ M[offset] = t0;
+ M[offset + 1] = t1;
+ M[offset + 2] = t2;
+ M[offset + 3] = t3;
+ },
+ keySize: 256 / 32,
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);
+ */ C.AES = BlockCipher._createHelper(AES);
+ })();
+ return CryptoJS.AES;
+ });
+ });
+
+ var tripledes = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, encBase64, md5, evpkdf, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var exchangeLR = // Swap bits across the left and right words
+ function exchangeLR(offset, mask) {
+ var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;
+ this._rBlock ^= t;
+ this._lBlock ^= t << offset;
+ };
+ var exchangeRL = function exchangeRL(offset, mask) {
+ var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;
+ this._lBlock ^= t;
+ this._rBlock ^= t << offset;
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var WordArray = C_lib.WordArray;
+ var BlockCipher = C_lib.BlockCipher;
+ var C_algo = C.algo;
+ // Permuted Choice 1 constants
+ var PC1 = [
+ 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11,
+ 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53,
+ 45, 37, 29, 21, 13, 5, 28, 20, 12, 4,
+ ];
+ // Permuted Choice 2 constants
+ var PC2 = [
+ 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2,
+ 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36,
+ 29, 32,
+ ];
+ // Cumulative bit shift constants
+ var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
+ // SBOXes and round permutation constants
+ var SBOX_P = [
+ {
+ 0x0: 0x808200,
+ 0x10000000: 0x8000,
+ 0x20000000: 0x808002,
+ 0x30000000: 0x2,
+ 0x40000000: 0x200,
+ 0x50000000: 0x808202,
+ 0x60000000: 0x800202,
+ 0x70000000: 0x800000,
+ 0x80000000: 0x202,
+ 0x90000000: 0x800200,
+ 0xa0000000: 0x8200,
+ 0xb0000000: 0x808000,
+ 0xc0000000: 0x8002,
+ 0xd0000000: 0x800002,
+ 0xe0000000: 0x0,
+ 0xf0000000: 0x8202,
+ 0x8000000: 0x0,
+ 0x18000000: 0x808202,
+ 0x28000000: 0x8202,
+ 0x38000000: 0x8000,
+ 0x48000000: 0x808200,
+ 0x58000000: 0x200,
+ 0x68000000: 0x808002,
+ 0x78000000: 0x2,
+ 0x88000000: 0x800200,
+ 0x98000000: 0x8200,
+ 0xa8000000: 0x808000,
+ 0xb8000000: 0x800202,
+ 0xc8000000: 0x800002,
+ 0xd8000000: 0x8002,
+ 0xe8000000: 0x202,
+ 0xf8000000: 0x800000,
+ 0x1: 0x8000,
+ 0x10000001: 0x2,
+ 0x20000001: 0x808200,
+ 0x30000001: 0x800000,
+ 0x40000001: 0x808002,
+ 0x50000001: 0x8200,
+ 0x60000001: 0x200,
+ 0x70000001: 0x800202,
+ 0x80000001: 0x808202,
+ 0x90000001: 0x808000,
+ 0xa0000001: 0x800002,
+ 0xb0000001: 0x8202,
+ 0xc0000001: 0x202,
+ 0xd0000001: 0x800200,
+ 0xe0000001: 0x8002,
+ 0xf0000001: 0x0,
+ 0x8000001: 0x808202,
+ 0x18000001: 0x808000,
+ 0x28000001: 0x800000,
+ 0x38000001: 0x200,
+ 0x48000001: 0x8000,
+ 0x58000001: 0x800002,
+ 0x68000001: 0x2,
+ 0x78000001: 0x8202,
+ 0x88000001: 0x8002,
+ 0x98000001: 0x800202,
+ 0xa8000001: 0x202,
+ 0xb8000001: 0x808200,
+ 0xc8000001: 0x800200,
+ 0xd8000001: 0x0,
+ 0xe8000001: 0x8200,
+ 0xf8000001: 0x808002,
+ },
+ {
+ 0x0: 0x40084010,
+ 0x1000000: 0x4000,
+ 0x2000000: 0x80000,
+ 0x3000000: 0x40080010,
+ 0x4000000: 0x40000010,
+ 0x5000000: 0x40084000,
+ 0x6000000: 0x40004000,
+ 0x7000000: 0x10,
+ 0x8000000: 0x84000,
+ 0x9000000: 0x40004010,
+ 0xa000000: 0x40000000,
+ 0xb000000: 0x84010,
+ 0xc000000: 0x80010,
+ 0xd000000: 0x0,
+ 0xe000000: 0x4010,
+ 0xf000000: 0x40080000,
+ 0x800000: 0x40004000,
+ 0x1800000: 0x84010,
+ 0x2800000: 0x10,
+ 0x3800000: 0x40004010,
+ 0x4800000: 0x40084010,
+ 0x5800000: 0x40000000,
+ 0x6800000: 0x80000,
+ 0x7800000: 0x40080010,
+ 0x8800000: 0x80010,
+ 0x9800000: 0x0,
+ 0xa800000: 0x4000,
+ 0xb800000: 0x40080000,
+ 0xc800000: 0x40000010,
+ 0xd800000: 0x84000,
+ 0xe800000: 0x40084000,
+ 0xf800000: 0x4010,
+ 0x10000000: 0x0,
+ 0x11000000: 0x40080010,
+ 0x12000000: 0x40004010,
+ 0x13000000: 0x40084000,
+ 0x14000000: 0x40080000,
+ 0x15000000: 0x10,
+ 0x16000000: 0x84010,
+ 0x17000000: 0x4000,
+ 0x18000000: 0x4010,
+ 0x19000000: 0x80000,
+ 0x1a000000: 0x80010,
+ 0x1b000000: 0x40000010,
+ 0x1c000000: 0x84000,
+ 0x1d000000: 0x40004000,
+ 0x1e000000: 0x40000000,
+ 0x1f000000: 0x40084010,
+ 0x10800000: 0x84010,
+ 0x11800000: 0x80000,
+ 0x12800000: 0x40080000,
+ 0x13800000: 0x4000,
+ 0x14800000: 0x40004000,
+ 0x15800000: 0x40084010,
+ 0x16800000: 0x10,
+ 0x17800000: 0x40000000,
+ 0x18800000: 0x40084000,
+ 0x19800000: 0x40000010,
+ 0x1a800000: 0x40004010,
+ 0x1b800000: 0x80010,
+ 0x1c800000: 0x0,
+ 0x1d800000: 0x4010,
+ 0x1e800000: 0x40080010,
+ 0x1f800000: 0x84000,
+ },
+ {
+ 0x0: 0x104,
+ 0x100000: 0x0,
+ 0x200000: 0x4000100,
+ 0x300000: 0x10104,
+ 0x400000: 0x10004,
+ 0x500000: 0x4000004,
+ 0x600000: 0x4010104,
+ 0x700000: 0x4010000,
+ 0x800000: 0x4000000,
+ 0x900000: 0x4010100,
+ 0xa00000: 0x10100,
+ 0xb00000: 0x4010004,
+ 0xc00000: 0x4000104,
+ 0xd00000: 0x10000,
+ 0xe00000: 0x4,
+ 0xf00000: 0x100,
+ 0x80000: 0x4010100,
+ 0x180000: 0x4010004,
+ 0x280000: 0x0,
+ 0x380000: 0x4000100,
+ 0x480000: 0x4000004,
+ 0x580000: 0x10000,
+ 0x680000: 0x10004,
+ 0x780000: 0x104,
+ 0x880000: 0x4,
+ 0x980000: 0x100,
+ 0xa80000: 0x4010000,
+ 0xb80000: 0x10104,
+ 0xc80000: 0x10100,
+ 0xd80000: 0x4000104,
+ 0xe80000: 0x4010104,
+ 0xf80000: 0x4000000,
+ 0x1000000: 0x4010100,
+ 0x1100000: 0x10004,
+ 0x1200000: 0x10000,
+ 0x1300000: 0x4000100,
+ 0x1400000: 0x100,
+ 0x1500000: 0x4010104,
+ 0x1600000: 0x4000004,
+ 0x1700000: 0x0,
+ 0x1800000: 0x4000104,
+ 0x1900000: 0x4000000,
+ 0x1a00000: 0x4,
+ 0x1b00000: 0x10100,
+ 0x1c00000: 0x4010000,
+ 0x1d00000: 0x104,
+ 0x1e00000: 0x10104,
+ 0x1f00000: 0x4010004,
+ 0x1080000: 0x4000000,
+ 0x1180000: 0x104,
+ 0x1280000: 0x4010100,
+ 0x1380000: 0x0,
+ 0x1480000: 0x10004,
+ 0x1580000: 0x4000100,
+ 0x1680000: 0x100,
+ 0x1780000: 0x4010004,
+ 0x1880000: 0x10000,
+ 0x1980000: 0x4010104,
+ 0x1a80000: 0x10104,
+ 0x1b80000: 0x4000004,
+ 0x1c80000: 0x4000104,
+ 0x1d80000: 0x4010000,
+ 0x1e80000: 0x4,
+ 0x1f80000: 0x10100,
+ },
+ {
+ 0x0: 0x80401000,
+ 0x10000: 0x80001040,
+ 0x20000: 0x401040,
+ 0x30000: 0x80400000,
+ 0x40000: 0x0,
+ 0x50000: 0x401000,
+ 0x60000: 0x80000040,
+ 0x70000: 0x400040,
+ 0x80000: 0x80000000,
+ 0x90000: 0x400000,
+ 0xa0000: 0x40,
+ 0xb0000: 0x80001000,
+ 0xc0000: 0x80400040,
+ 0xd0000: 0x1040,
+ 0xe0000: 0x1000,
+ 0xf0000: 0x80401040,
+ 0x8000: 0x80001040,
+ 0x18000: 0x40,
+ 0x28000: 0x80400040,
+ 0x38000: 0x80001000,
+ 0x48000: 0x401000,
+ 0x58000: 0x80401040,
+ 0x68000: 0x0,
+ 0x78000: 0x80400000,
+ 0x88000: 0x1000,
+ 0x98000: 0x80401000,
+ 0xa8000: 0x400000,
+ 0xb8000: 0x1040,
+ 0xc8000: 0x80000000,
+ 0xd8000: 0x400040,
+ 0xe8000: 0x401040,
+ 0xf8000: 0x80000040,
+ 0x100000: 0x400040,
+ 0x110000: 0x401000,
+ 0x120000: 0x80000040,
+ 0x130000: 0x0,
+ 0x140000: 0x1040,
+ 0x150000: 0x80400040,
+ 0x160000: 0x80401000,
+ 0x170000: 0x80001040,
+ 0x180000: 0x80401040,
+ 0x190000: 0x80000000,
+ 0x1a0000: 0x80400000,
+ 0x1b0000: 0x401040,
+ 0x1c0000: 0x80001000,
+ 0x1d0000: 0x400000,
+ 0x1e0000: 0x40,
+ 0x1f0000: 0x1000,
+ 0x108000: 0x80400000,
+ 0x118000: 0x80401040,
+ 0x128000: 0x0,
+ 0x138000: 0x401000,
+ 0x148000: 0x400040,
+ 0x158000: 0x80000000,
+ 0x168000: 0x80001040,
+ 0x178000: 0x40,
+ 0x188000: 0x80000040,
+ 0x198000: 0x1000,
+ 0x1a8000: 0x80001000,
+ 0x1b8000: 0x80400040,
+ 0x1c8000: 0x1040,
+ 0x1d8000: 0x80401000,
+ 0x1e8000: 0x400000,
+ 0x1f8000: 0x401040,
+ },
+ {
+ 0x0: 0x80,
+ 0x1000: 0x1040000,
+ 0x2000: 0x40000,
+ 0x3000: 0x20000000,
+ 0x4000: 0x20040080,
+ 0x5000: 0x1000080,
+ 0x6000: 0x21000080,
+ 0x7000: 0x40080,
+ 0x8000: 0x1000000,
+ 0x9000: 0x20040000,
+ 0xa000: 0x20000080,
+ 0xb000: 0x21040080,
+ 0xc000: 0x21040000,
+ 0xd000: 0x0,
+ 0xe000: 0x1040080,
+ 0xf000: 0x21000000,
+ 0x800: 0x1040080,
+ 0x1800: 0x21000080,
+ 0x2800: 0x80,
+ 0x3800: 0x1040000,
+ 0x4800: 0x40000,
+ 0x5800: 0x20040080,
+ 0x6800: 0x21040000,
+ 0x7800: 0x20000000,
+ 0x8800: 0x20040000,
+ 0x9800: 0x0,
+ 0xa800: 0x21040080,
+ 0xb800: 0x1000080,
+ 0xc800: 0x20000080,
+ 0xd800: 0x21000000,
+ 0xe800: 0x1000000,
+ 0xf800: 0x40080,
+ 0x10000: 0x40000,
+ 0x11000: 0x80,
+ 0x12000: 0x20000000,
+ 0x13000: 0x21000080,
+ 0x14000: 0x1000080,
+ 0x15000: 0x21040000,
+ 0x16000: 0x20040080,
+ 0x17000: 0x1000000,
+ 0x18000: 0x21040080,
+ 0x19000: 0x21000000,
+ 0x1a000: 0x1040000,
+ 0x1b000: 0x20040000,
+ 0x1c000: 0x40080,
+ 0x1d000: 0x20000080,
+ 0x1e000: 0x0,
+ 0x1f000: 0x1040080,
+ 0x10800: 0x21000080,
+ 0x11800: 0x1000000,
+ 0x12800: 0x1040000,
+ 0x13800: 0x20040080,
+ 0x14800: 0x20000000,
+ 0x15800: 0x1040080,
+ 0x16800: 0x80,
+ 0x17800: 0x21040000,
+ 0x18800: 0x40080,
+ 0x19800: 0x21040080,
+ 0x1a800: 0x0,
+ 0x1b800: 0x21000000,
+ 0x1c800: 0x1000080,
+ 0x1d800: 0x40000,
+ 0x1e800: 0x20040000,
+ 0x1f800: 0x20000080,
+ },
+ {
+ 0x0: 0x10000008,
+ 0x100: 0x2000,
+ 0x200: 0x10200000,
+ 0x300: 0x10202008,
+ 0x400: 0x10002000,
+ 0x500: 0x200000,
+ 0x600: 0x200008,
+ 0x700: 0x10000000,
+ 0x800: 0x0,
+ 0x900: 0x10002008,
+ 0xa00: 0x202000,
+ 0xb00: 0x8,
+ 0xc00: 0x10200008,
+ 0xd00: 0x202008,
+ 0xe00: 0x2008,
+ 0xf00: 0x10202000,
+ 0x80: 0x10200000,
+ 0x180: 0x10202008,
+ 0x280: 0x8,
+ 0x380: 0x200000,
+ 0x480: 0x202008,
+ 0x580: 0x10000008,
+ 0x680: 0x10002000,
+ 0x780: 0x2008,
+ 0x880: 0x200008,
+ 0x980: 0x2000,
+ 0xa80: 0x10002008,
+ 0xb80: 0x10200008,
+ 0xc80: 0x0,
+ 0xd80: 0x10202000,
+ 0xe80: 0x202000,
+ 0xf80: 0x10000000,
+ 0x1000: 0x10002000,
+ 0x1100: 0x10200008,
+ 0x1200: 0x10202008,
+ 0x1300: 0x2008,
+ 0x1400: 0x200000,
+ 0x1500: 0x10000000,
+ 0x1600: 0x10000008,
+ 0x1700: 0x202000,
+ 0x1800: 0x202008,
+ 0x1900: 0x0,
+ 0x1a00: 0x8,
+ 0x1b00: 0x10200000,
+ 0x1c00: 0x2000,
+ 0x1d00: 0x10002008,
+ 0x1e00: 0x10202000,
+ 0x1f00: 0x200008,
+ 0x1080: 0x8,
+ 0x1180: 0x202000,
+ 0x1280: 0x200000,
+ 0x1380: 0x10000008,
+ 0x1480: 0x10002000,
+ 0x1580: 0x2008,
+ 0x1680: 0x10202008,
+ 0x1780: 0x10200000,
+ 0x1880: 0x10202000,
+ 0x1980: 0x10200008,
+ 0x1a80: 0x2000,
+ 0x1b80: 0x202008,
+ 0x1c80: 0x200008,
+ 0x1d80: 0x0,
+ 0x1e80: 0x10000000,
+ 0x1f80: 0x10002008,
+ },
+ {
+ 0x0: 0x100000,
+ 0x10: 0x2000401,
+ 0x20: 0x400,
+ 0x30: 0x100401,
+ 0x40: 0x2100401,
+ 0x50: 0x0,
+ 0x60: 0x1,
+ 0x70: 0x2100001,
+ 0x80: 0x2000400,
+ 0x90: 0x100001,
+ 0xa0: 0x2000001,
+ 0xb0: 0x2100400,
+ 0xc0: 0x2100000,
+ 0xd0: 0x401,
+ 0xe0: 0x100400,
+ 0xf0: 0x2000000,
+ 0x8: 0x2100001,
+ 0x18: 0x0,
+ 0x28: 0x2000401,
+ 0x38: 0x2100400,
+ 0x48: 0x100000,
+ 0x58: 0x2000001,
+ 0x68: 0x2000000,
+ 0x78: 0x401,
+ 0x88: 0x100401,
+ 0x98: 0x2000400,
+ 0xa8: 0x2100000,
+ 0xb8: 0x100001,
+ 0xc8: 0x400,
+ 0xd8: 0x2100401,
+ 0xe8: 0x1,
+ 0xf8: 0x100400,
+ 0x100: 0x2000000,
+ 0x110: 0x100000,
+ 0x120: 0x2000401,
+ 0x130: 0x2100001,
+ 0x140: 0x100001,
+ 0x150: 0x2000400,
+ 0x160: 0x2100400,
+ 0x170: 0x100401,
+ 0x180: 0x401,
+ 0x190: 0x2100401,
+ 0x1a0: 0x100400,
+ 0x1b0: 0x1,
+ 0x1c0: 0x0,
+ 0x1d0: 0x2100000,
+ 0x1e0: 0x2000001,
+ 0x1f0: 0x400,
+ 0x108: 0x100400,
+ 0x118: 0x2000401,
+ 0x128: 0x2100001,
+ 0x138: 0x1,
+ 0x148: 0x2000000,
+ 0x158: 0x100000,
+ 0x168: 0x401,
+ 0x178: 0x2100400,
+ 0x188: 0x2000001,
+ 0x198: 0x2100000,
+ 0x1a8: 0x0,
+ 0x1b8: 0x2100401,
+ 0x1c8: 0x100401,
+ 0x1d8: 0x400,
+ 0x1e8: 0x2000400,
+ 0x1f8: 0x100001,
+ },
+ {
+ 0x0: 0x8000820,
+ 0x1: 0x20000,
+ 0x2: 0x8000000,
+ 0x3: 0x20,
+ 0x4: 0x20020,
+ 0x5: 0x8020820,
+ 0x6: 0x8020800,
+ 0x7: 0x800,
+ 0x8: 0x8020000,
+ 0x9: 0x8000800,
+ 0xa: 0x20800,
+ 0xb: 0x8020020,
+ 0xc: 0x820,
+ 0xd: 0x0,
+ 0xe: 0x8000020,
+ 0xf: 0x20820,
+ 0x80000000: 0x800,
+ 0x80000001: 0x8020820,
+ 0x80000002: 0x8000820,
+ 0x80000003: 0x8000000,
+ 0x80000004: 0x8020000,
+ 0x80000005: 0x20800,
+ 0x80000006: 0x20820,
+ 0x80000007: 0x20,
+ 0x80000008: 0x8000020,
+ 0x80000009: 0x820,
+ 0x8000000a: 0x20020,
+ 0x8000000b: 0x8020800,
+ 0x8000000c: 0x0,
+ 0x8000000d: 0x8020020,
+ 0x8000000e: 0x8000800,
+ 0x8000000f: 0x20000,
+ 0x10: 0x20820,
+ 0x11: 0x8020800,
+ 0x12: 0x20,
+ 0x13: 0x800,
+ 0x14: 0x8000800,
+ 0x15: 0x8000020,
+ 0x16: 0x8020020,
+ 0x17: 0x20000,
+ 0x18: 0x0,
+ 0x19: 0x20020,
+ 0x1a: 0x8020000,
+ 0x1b: 0x8000820,
+ 0x1c: 0x8020820,
+ 0x1d: 0x20800,
+ 0x1e: 0x820,
+ 0x1f: 0x8000000,
+ 0x80000010: 0x20000,
+ 0x80000011: 0x800,
+ 0x80000012: 0x8020020,
+ 0x80000013: 0x20820,
+ 0x80000014: 0x20,
+ 0x80000015: 0x8020000,
+ 0x80000016: 0x8000000,
+ 0x80000017: 0x8000820,
+ 0x80000018: 0x8020820,
+ 0x80000019: 0x8000020,
+ 0x8000001a: 0x8000800,
+ 0x8000001b: 0x0,
+ 0x8000001c: 0x20800,
+ 0x8000001d: 0x820,
+ 0x8000001e: 0x20020,
+ 0x8000001f: 0x8020800,
+ },
+ ];
+ // Masks that select the SBOX input
+ var SBOX_MASK = [
+ 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, 0x0001f800, 0x00001f80, 0x000001f8,
+ 0x8000001f,
+ ];
+ /**
+ * DES block cipher algorithm.
+ */ var DES = (C_algo.DES = BlockCipher.extend({
+ _doReset: function _doReset() {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ // Select 56 bits according to PC1
+ var keyBits = [];
+ for (var i = 0; i < 56; i++) {
+ var keyBitPos = PC1[i] - 1;
+ keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - (keyBitPos % 32))) & 1;
+ }
+ // Assemble 16 subkeys
+ var subKeys = (this._subKeys = []);
+ for (var nSubKey = 0; nSubKey < 16; nSubKey++) {
+ // Create subkey
+ var subKey = (subKeys[nSubKey] = []);
+ // Shortcut
+ var bitShift = BIT_SHIFTS[nSubKey];
+ // Select 48 bits according to PC2
+ for (var i = 0; i < 24; i++) {
+ // Select from the left 28 key bits
+ subKey[(i / 6) | 0] |= keyBits[(PC2[i] - 1 + bitShift) % 28] << (31 - (i % 6));
+ // Select from the right 28 key bits
+ subKey[4 + ((i / 6) | 0)] |=
+ keyBits[28 + ((PC2[i + 24] - 1 + bitShift) % 28)] << (31 - (i % 6));
+ }
+ // Since each subkey is applied to an expanded 32-bit input,
+ // the subkey can be broken into 8 values scaled to 32-bits,
+ // which allows the key to be used without expansion
+ subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);
+ for (var i = 1; i < 7; i++) {
+ subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);
+ }
+ subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);
+ }
+ // Compute inverse subkeys
+ var invSubKeys = (this._invSubKeys = []);
+ for (var i = 0; i < 16; i++) {
+ invSubKeys[i] = subKeys[15 - i];
+ }
+ },
+ encryptBlock: function encryptBlock(M, offset) {
+ this._doCryptBlock(M, offset, this._subKeys);
+ },
+ decryptBlock: function decryptBlock(M, offset) {
+ this._doCryptBlock(M, offset, this._invSubKeys);
+ },
+ _doCryptBlock: function _doCryptBlock(M, offset, subKeys) {
+ // Get input
+ this._lBlock = M[offset];
+ this._rBlock = M[offset + 1];
+ // Initial permutation
+ exchangeLR.call(this, 4, 0x0f0f0f0f);
+ exchangeLR.call(this, 16, 0x0000ffff);
+ exchangeRL.call(this, 2, 0x33333333);
+ exchangeRL.call(this, 8, 0x00ff00ff);
+ exchangeLR.call(this, 1, 0x55555555);
+ // Rounds
+ for (var round = 0; round < 16; round++) {
+ // Shortcuts
+ var subKey = subKeys[round];
+ var lBlock = this._lBlock;
+ var rBlock = this._rBlock;
+ // Feistel function
+ var f = 0;
+ for (var i = 0; i < 8; i++) {
+ f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];
+ }
+ this._lBlock = rBlock;
+ this._rBlock = lBlock ^ f;
+ }
+ // Undo swap from last round
+ var t = this._lBlock;
+ this._lBlock = this._rBlock;
+ this._rBlock = t;
+ // Final permutation
+ exchangeLR.call(this, 1, 0x55555555);
+ exchangeRL.call(this, 8, 0x00ff00ff);
+ exchangeRL.call(this, 2, 0x33333333);
+ exchangeLR.call(this, 16, 0x0000ffff);
+ exchangeLR.call(this, 4, 0x0f0f0f0f);
+ // Set output
+ M[offset] = this._lBlock;
+ M[offset + 1] = this._rBlock;
+ },
+ keySize: 64 / 32,
+ ivSize: 64 / 32,
+ blockSize: 64 / 32,
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);
+ */ C.DES = BlockCipher._createHelper(DES);
+ /**
+ * Triple-DES block cipher algorithm.
+ */ var TripleDES = (C_algo.TripleDES = BlockCipher.extend({
+ _doReset: function _doReset() {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ // Make sure the key length is valid (64, 128 or >= 192 bit)
+ if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {
+ throw new Error(
+ "Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192."
+ );
+ }
+ // Extend the key according to the keying options defined in 3DES standard
+ var key1 = keyWords.slice(0, 2);
+ var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);
+ var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);
+ // Create DES instances
+ this._des1 = DES.createEncryptor(WordArray.create(key1));
+ this._des2 = DES.createEncryptor(WordArray.create(key2));
+ this._des3 = DES.createEncryptor(WordArray.create(key3));
+ },
+ encryptBlock: function encryptBlock(M, offset) {
+ this._des1.encryptBlock(M, offset);
+ this._des2.decryptBlock(M, offset);
+ this._des3.encryptBlock(M, offset);
+ },
+ decryptBlock: function decryptBlock(M, offset) {
+ this._des3.decryptBlock(M, offset);
+ this._des2.encryptBlock(M, offset);
+ this._des1.decryptBlock(M, offset);
+ },
+ keySize: 192 / 32,
+ ivSize: 64 / 32,
+ blockSize: 64 / 32,
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);
+ */ C.TripleDES = BlockCipher._createHelper(TripleDES);
+ })();
+ return CryptoJS.TripleDES;
+ });
+ });
+
+ var rc4 = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, encBase64, md5, evpkdf, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var generateKeystreamWord = function generateKeystreamWord() {
+ // Shortcuts
+ var S = this._S;
+ var i = this._i;
+ var j = this._j;
+ // Generate keystream word
+ var keystreamWord = 0;
+ for (var n = 0; n < 4; n++) {
+ i = (i + 1) % 256;
+ j = (j + S[i]) % 256;
+ // Swap
+ var t = S[i];
+ S[i] = S[j];
+ S[j] = t;
+ keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);
+ }
+ // Update counters
+ this._i = i;
+ this._j = j;
+ return keystreamWord;
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+ /**
+ * RC4 stream cipher algorithm.
+ */ var RC4 = (C_algo.RC4 = StreamCipher.extend({
+ _doReset: function _doReset() {
+ // Shortcuts
+ var key = this._key;
+ var keyWords = key.words;
+ var keySigBytes = key.sigBytes;
+ // Init sbox
+ var S = (this._S = []);
+ for (var i = 0; i < 256; i++) {
+ S[i] = i;
+ }
+ // Key setup
+ for (var i = 0, j = 0; i < 256; i++) {
+ var keyByteIndex = i % keySigBytes;
+ var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;
+ j = (j + S[i] + keyByte) % 256;
+ // Swap
+ var t = S[i];
+ S[i] = S[j];
+ S[j] = t;
+ }
+ // Counters
+ this._i = this._j = 0;
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ M[offset] ^= generateKeystreamWord.call(this);
+ },
+ keySize: 256 / 32,
+ ivSize: 0,
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);
+ */ C.RC4 = StreamCipher._createHelper(RC4);
+ /**
+ * Modified RC4 stream cipher algorithm.
+ */ var RC4Drop = (C_algo.RC4Drop = RC4.extend({
+ /**
+ * Configuration options.
+ *
+ * @property {number} drop The number of keystream words to drop. Default 192
+ */ cfg: RC4.cfg.extend({
+ drop: 192,
+ }),
+ _doReset: function _doReset() {
+ RC4._doReset.call(this);
+ // Drop
+ for (var i = this.cfg.drop; i > 0; i--) {
+ generateKeystreamWord.call(this);
+ }
+ },
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);
+ */ C.RC4Drop = StreamCipher._createHelper(RC4Drop);
+ })();
+ return CryptoJS.RC4;
+ });
+ });
+
+ var rabbit = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, encBase64, md5, evpkdf, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var nextState = function nextState() {
+ // Shortcuts
+ var X = this._X;
+ var C = this._C;
+ // Save old counter values
+ for (var i = 0; i < 8; i++) {
+ C_[i] = C[i];
+ }
+ // Calculate new counter values
+ C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+ C[1] = (C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0)) | 0;
+ C[2] = (C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0)) | 0;
+ C[3] = (C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0)) | 0;
+ C[4] = (C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0)) | 0;
+ C[5] = (C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0)) | 0;
+ C[6] = (C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0)) | 0;
+ C[7] = (C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0)) | 0;
+ this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;
+ // Calculate the g-values
+ for (var i = 0; i < 8; i++) {
+ var gx = X[i] + C[i];
+ // Construct high and low argument for squaring
+ var ga = gx & 0xffff;
+ var gb = gx >>> 16;
+ // Calculate high and low result of squaring
+ var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+ var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+ // High XOR low
+ G[i] = gh ^ gl;
+ }
+ // Calculate new state values
+ X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+ X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
+ X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+ X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
+ X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+ X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
+ X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+ X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+ // Reusable objects
+ var S = [];
+ var C_ = [];
+ var G = [];
+ /**
+ * Rabbit stream cipher algorithm
+ */ var Rabbit = (C_algo.Rabbit = StreamCipher.extend({
+ _doReset: function _doReset() {
+ // Shortcuts
+ var K = this._key.words;
+ var iv = this.cfg.iv;
+ // Swap endian
+ for (var i = 0; i < 4; i++) {
+ K[i] =
+ (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |
+ (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);
+ }
+ // Generate initial state values
+ var X = (this._X = [
+ K[0],
+ (K[3] << 16) | (K[2] >>> 16),
+ K[1],
+ (K[0] << 16) | (K[3] >>> 16),
+ K[2],
+ (K[1] << 16) | (K[0] >>> 16),
+ K[3],
+ (K[2] << 16) | (K[1] >>> 16),
+ ]);
+ // Generate initial counter values
+ var C = (this._C = [
+ (K[2] << 16) | (K[2] >>> 16),
+ (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+ (K[3] << 16) | (K[3] >>> 16),
+ (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+ (K[0] << 16) | (K[0] >>> 16),
+ (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+ (K[1] << 16) | (K[1] >>> 16),
+ (K[3] & 0xffff0000) | (K[0] & 0x0000ffff),
+ ]);
+ // Carry bit
+ this._b = 0;
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ // Modify the counters
+ for (var i = 0; i < 8; i++) {
+ C[i] ^= X[(i + 4) & 7];
+ }
+ // IV setup
+ if (iv) {
+ // Shortcuts
+ var IV = iv.words;
+ var IV_0 = IV[0];
+ var IV_1 = IV[1];
+ // Generate four subvectors
+ var i0 =
+ (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) |
+ (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+ var i2 =
+ (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) |
+ (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+ var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+ var i3 = (i2 << 16) | (i0 & 0x0000ffff);
+ // Modify counter values
+ C[0] ^= i0;
+ C[1] ^= i1;
+ C[2] ^= i2;
+ C[3] ^= i3;
+ C[4] ^= i0;
+ C[5] ^= i1;
+ C[6] ^= i2;
+ C[7] ^= i3;
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ }
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Shortcut
+ var X = this._X;
+ // Iterate the system
+ nextState.call(this);
+ // Generate four keystream words
+ S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+ S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+ S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+ S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+ for (var i = 0; i < 4; i++) {
+ // Swap endian
+ S[i] =
+ (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
+ (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
+ // Encrypt
+ M[offset + i] ^= S[i];
+ }
+ },
+ blockSize: 128 / 32,
+ ivSize: 64 / 32,
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);
+ */ C.Rabbit = StreamCipher._createHelper(Rabbit);
+ })();
+ return CryptoJS.Rabbit;
+ });
+ });
+
+ var rabbitLegacy = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(core, encBase64, md5, evpkdf, cipherCore);
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ (function () {
+ var nextState = function nextState() {
+ // Shortcuts
+ var X = this._X;
+ var C = this._C;
+ // Save old counter values
+ for (var i = 0; i < 8; i++) {
+ C_[i] = C[i];
+ }
+ // Calculate new counter values
+ C[0] = (C[0] + 0x4d34d34d + this._b) | 0;
+ C[1] = (C[1] + 0xd34d34d3 + (C[0] >>> 0 < C_[0] >>> 0 ? 1 : 0)) | 0;
+ C[2] = (C[2] + 0x34d34d34 + (C[1] >>> 0 < C_[1] >>> 0 ? 1 : 0)) | 0;
+ C[3] = (C[3] + 0x4d34d34d + (C[2] >>> 0 < C_[2] >>> 0 ? 1 : 0)) | 0;
+ C[4] = (C[4] + 0xd34d34d3 + (C[3] >>> 0 < C_[3] >>> 0 ? 1 : 0)) | 0;
+ C[5] = (C[5] + 0x34d34d34 + (C[4] >>> 0 < C_[4] >>> 0 ? 1 : 0)) | 0;
+ C[6] = (C[6] + 0x4d34d34d + (C[5] >>> 0 < C_[5] >>> 0 ? 1 : 0)) | 0;
+ C[7] = (C[7] + 0xd34d34d3 + (C[6] >>> 0 < C_[6] >>> 0 ? 1 : 0)) | 0;
+ this._b = C[7] >>> 0 < C_[7] >>> 0 ? 1 : 0;
+ // Calculate the g-values
+ for (var i = 0; i < 8; i++) {
+ var gx = X[i] + C[i];
+ // Construct high and low argument for squaring
+ var ga = gx & 0xffff;
+ var gb = gx >>> 16;
+ // Calculate high and low result of squaring
+ var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;
+ var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);
+ // High XOR low
+ G[i] = gh ^ gl;
+ }
+ // Calculate new state values
+ X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;
+ X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;
+ X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;
+ X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;
+ X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;
+ X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;
+ X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;
+ X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;
+ };
+ // Shortcuts
+ var C = CryptoJS;
+ var C_lib = C.lib;
+ var StreamCipher = C_lib.StreamCipher;
+ var C_algo = C.algo;
+ // Reusable objects
+ var S = [];
+ var C_ = [];
+ var G = [];
+ /**
+ * Rabbit stream cipher algorithm.
+ *
+ * This is a legacy version that neglected to convert the key to little-endian.
+ * This error doesn't affect the cipher's security,
+ * but it does affect its compatibility with other implementations.
+ */ var RabbitLegacy = (C_algo.RabbitLegacy = StreamCipher.extend({
+ _doReset: function _doReset() {
+ // Shortcuts
+ var K = this._key.words;
+ var iv = this.cfg.iv;
+ // Generate initial state values
+ var X = (this._X = [
+ K[0],
+ (K[3] << 16) | (K[2] >>> 16),
+ K[1],
+ (K[0] << 16) | (K[3] >>> 16),
+ K[2],
+ (K[1] << 16) | (K[0] >>> 16),
+ K[3],
+ (K[2] << 16) | (K[1] >>> 16),
+ ]);
+ // Generate initial counter values
+ var C = (this._C = [
+ (K[2] << 16) | (K[2] >>> 16),
+ (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),
+ (K[3] << 16) | (K[3] >>> 16),
+ (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),
+ (K[0] << 16) | (K[0] >>> 16),
+ (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),
+ (K[1] << 16) | (K[1] >>> 16),
+ (K[3] & 0xffff0000) | (K[0] & 0x0000ffff),
+ ]);
+ // Carry bit
+ this._b = 0;
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ // Modify the counters
+ for (var i = 0; i < 8; i++) {
+ C[i] ^= X[(i + 4) & 7];
+ }
+ // IV setup
+ if (iv) {
+ // Shortcuts
+ var IV = iv.words;
+ var IV_0 = IV[0];
+ var IV_1 = IV[1];
+ // Generate four subvectors
+ var i0 =
+ (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) |
+ (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);
+ var i2 =
+ (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) |
+ (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);
+ var i1 = (i0 >>> 16) | (i2 & 0xffff0000);
+ var i3 = (i2 << 16) | (i0 & 0x0000ffff);
+ // Modify counter values
+ C[0] ^= i0;
+ C[1] ^= i1;
+ C[2] ^= i2;
+ C[3] ^= i3;
+ C[4] ^= i0;
+ C[5] ^= i1;
+ C[6] ^= i2;
+ C[7] ^= i3;
+ // Iterate the system four times
+ for (var i = 0; i < 4; i++) {
+ nextState.call(this);
+ }
+ }
+ },
+ _doProcessBlock: function _doProcessBlock(M, offset) {
+ // Shortcut
+ var X = this._X;
+ // Iterate the system
+ nextState.call(this);
+ // Generate four keystream words
+ S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);
+ S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);
+ S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);
+ S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);
+ for (var i = 0; i < 4; i++) {
+ // Swap endian
+ S[i] =
+ (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |
+ (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);
+ // Encrypt
+ M[offset + i] ^= S[i];
+ }
+ },
+ blockSize: 128 / 32,
+ ivSize: 64 / 32,
+ }));
+ /**
+ * Shortcut functions to the cipher's object interface.
+ *
+ * @example
+ *
+ * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);
+ * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);
+ */ C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);
+ })();
+ return CryptoJS.RabbitLegacy;
+ });
+ });
+
+ var cryptoJs = createCommonjsModule(function (module, exports) {
+ (function (root, factory, undef) {
+ {
+ // CommonJS
+ module.exports = factory(
+ core,
+ x64Core,
+ libTypedarrays,
+ encUtf16,
+ encBase64,
+ encBase64url,
+ md5,
+ sha1,
+ sha256,
+ sha224,
+ sha512,
+ sha384,
+ sha3,
+ ripemd160,
+ hmac,
+ pbkdf2,
+ evpkdf,
+ cipherCore,
+ modeCfb,
+ modeCtr,
+ modeCtrGladman,
+ modeOfb,
+ modeEcb,
+ padAnsix923,
+ padIso10126,
+ padIso97971,
+ padZeropadding,
+ padNopadding,
+ formatHex,
+ aes,
+ tripledes,
+ rc4,
+ rabbit,
+ rabbitLegacy
+ );
+ }
+ })(commonjsGlobal, function (CryptoJS) {
+ return CryptoJS;
+ });
+ });
+
+ return cryptoJs;
+});
+//# sourceMappingURL=crypto-js.min.js.map
diff --git a/public/ref/style/darkblue.json b/public/ref/style/darkblue.json
new file mode 100644
index 0000000..cbd1a1b
--- /dev/null
+++ b/public/ref/style/darkblue.json
@@ -0,0 +1,2571 @@
+{
+ "version": 8,
+ "name": "深蓝科技",
+ "metadata": {
+ "mapbox:type": "default",
+ "mapbox:origin": "navigation-night-v1",
+ "mapbox:sdk-support": { "android": "10.6.0", "ios": "10.6.0", "js": "2.9.0" },
+ "mapbox:autocomposite": true,
+ "mapbox:groups": {
+ "Transit, transit-labels": { "name": "Transit, transit-labels", "collapsed": true },
+ "Administrative boundaries, admin": { "name": "Administrative boundaries, admin", "collapsed": false },
+ "Land & water, built": { "name": "Land & water, built", "collapsed": true },
+ "Transit, bridges": { "name": "Transit, bridges", "collapsed": true },
+ "Transit, surface": { "name": "Transit, surface", "collapsed": true },
+ "Land & water, land": { "name": "Land & water, land", "collapsed": true },
+ "Road network, bridges": { "name": "Road network, bridges", "collapsed": true },
+ "Road network, tunnels": { "name": "Road network, tunnels", "collapsed": true },
+ "Road network, road-labels": { "name": "Road network, road-labels", "collapsed": false },
+ "Buildings, built": { "name": "Buildings, built", "collapsed": true },
+ "Natural features, natural-labels": { "name": "Natural features, natural-labels", "collapsed": true },
+ "Road network, surface": { "name": "Road network, surface", "collapsed": true },
+ "Walking, cycling, etc., barriers-bridges": { "name": "Walking, cycling, etc., barriers-bridges", "collapsed": true },
+ "Place labels, place-labels": { "name": "Place labels, place-labels", "collapsed": false },
+ "Transit, ferries": { "name": "Transit, ferries", "collapsed": true },
+ "Transit, elevated": { "name": "Transit, elevated", "collapsed": true },
+ "Buildings, extruded": { "name": "Buildings, extruded", "collapsed": true },
+ "Point of interest labels, poi-labels": { "name": "Point of interest labels, poi-labels", "collapsed": false },
+ "Road network, tunnels-case": { "name": "Road network, tunnels-case", "collapsed": true },
+ "Transit, built": { "name": "Transit, built", "collapsed": true },
+ "Road network, surface-icons": { "name": "Road network, surface-icons", "collapsed": true },
+ "Land & water, water": { "name": "Land & water, water", "collapsed": true },
+ "Transit, ferry-aerialway-labels": { "name": "Transit, ferry-aerialway-labels", "collapsed": true }
+ }
+ },
+ "center": [116.40723286491766, 39.884181989706775],
+ "zoom": 17.58181390300712,
+ "bearing": -32.80000000000001,
+ "pitch": 85,
+ "light": { "anchor": ["step", ["zoom"], "map", 22, "map"] },
+ "fog": { "color": "hsla(0, 0%, 100%, 0)", "high-color": "hsl(205, 35%, 25%)" },
+ "sources": { "composite": { "url": "mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v8", "type": "vector" } },
+ "sprite": "mapbox://sprites/mapbox/streets-v8",
+ "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
+ "projection": { "name": "globe" },
+ "layers": [
+ {
+ "id": "land",
+ "type": "background",
+ "layout": {},
+ "paint": { "background-color": ["interpolate", ["linear"], ["zoom"], 5, "hsl(220, 60%, 25%)", 7, "hsla(227, 86%, 6%, 0.9)"] },
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, land" }
+ },
+ {
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, land" },
+ "maxzoom": 9,
+ "type": "fill",
+ "source": "composite",
+ "id": "landcover",
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 0,
+ ["match", ["get", "class"], "wood", "#2d4a86", ["snow"], "#ffffff", "#2d4a86"],
+ 22,
+ ["match", ["get", "class"], "wood", "#2d4a86", ["snow"], "#ffffff", "#2d4a86"]
+ ],
+ "fill-opacity": ["interpolate", ["exponential", 1.5], ["zoom"], 8, 0.4, 9, 0],
+ "fill-antialias": false
+ },
+ "source-layer": "landcover"
+ },
+ {
+ "minzoom": 5,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, land" },
+ "filter": ["==", ["get", "class"], "national_park"],
+ "type": "fill",
+ "source": "composite",
+ "id": "national-park",
+ "paint": { "fill-color": "hsl(175, 60%, 21%)", "fill-opacity": ["interpolate", ["linear"], ["zoom"], 5, 0, 6, 0.6, 12, 0.2] },
+ "source-layer": "landuse_overlay"
+ },
+ {
+ "minzoom": 5,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, land" },
+ "filter": [
+ "all",
+ [">=", ["to-number", ["get", "sizerank"]], 0],
+ [
+ "match",
+ ["get", "class"],
+ ["agriculture", "wood", "grass", "scrub", "park", "airport", "glacier", "pitch", "sand"],
+ true,
+ "residential",
+ ["step", ["zoom"], true, 12, false],
+ ["facility", "industrial"],
+ ["step", ["zoom"], false, 12, true],
+ "cemetery",
+ true,
+ "school",
+ true,
+ "hospital",
+ true,
+ "commercial_area",
+ true,
+ "parking",
+ ["step", ["zoom"], false, 15, true],
+ false
+ ],
+ ["<=", ["-", ["to-number", ["get", "sizerank"]], ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0, 18, 14]], 14]
+ ],
+ "type": "fill",
+ "source": "composite",
+ "id": "landuse",
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 15,
+ [
+ "match",
+ ["get", "class"],
+ "wood",
+ "hsla(180, 80%, 64%, 0.8)",
+ "scrub",
+ "hsla(175, 77%, 65%, 0.6)",
+ "agriculture",
+ "hsla(175, 80%, 69%, 0.6)",
+ "park",
+ "hsl(175, 85%, 23%)",
+ "grass",
+ "hsla(175, 80%, 69%, 0.6)",
+ "airport",
+ "hsl(230, 77%, 59%)",
+ "cemetery",
+ "hsl(175, 69%, 28%)",
+ "glacier",
+ "hsl(185, 60%, 60%)",
+ "hospital",
+ "hsl(250, 10%, 35%)",
+ "pitch",
+ "hsl(165, 95%, 25%)",
+ "sand",
+ "hsla(175, 90%, 69%, 0.05)",
+ "school",
+ "hsl(200, 10%, 30%)",
+ "commercial_area",
+ "hsl(215, 15%, 30%)",
+ "parking",
+ "hsl(215, 15%, 34%)",
+ "residential",
+ "hsla(230, 17%, 59%, 0)",
+ ["facility", "industrial"],
+ "hsl(230, 12%, 28%)",
+ "hsla(230, 33%, 62%, 0)"
+ ],
+ 16,
+ [
+ "match",
+ ["get", "class"],
+ "wood",
+ "hsla(180, 80%, 64%, 0.8)",
+ "scrub",
+ "hsla(175, 77%, 65%, 0.6)",
+ "agriculture",
+ "hsla(175, 80%, 69%, 0.6)",
+ "park",
+ "hsl(175, 85%, 23%)",
+ "grass",
+ "hsla(175, 80%, 69%, 0.6)",
+ "airport",
+ "hsl(230, 77%, 59%)",
+ "cemetery",
+ "hsl(175, 69%, 28%)",
+ "glacier",
+ "hsl(185, 60%, 60%)",
+ "hospital",
+ "hsl(250, 10%, 35%)",
+ "pitch",
+ "hsl(165, 95%, 25%)",
+ "sand",
+ "hsla(175, 90%, 69%, 0.05)",
+ "school",
+ "hsl(200, 10%, 30%)",
+ "commercial_area",
+ "hsla(215, 15%, 30%, 0.5)",
+ "parking",
+ "hsl(215, 15%, 34%)",
+ ["facility", "industrial"],
+ "hsl(230, 12%, 28%)",
+ "hsla(230, 33%, 62%, 0)"
+ ]
+ ],
+ "fill-opacity": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 8,
+ ["match", ["get", "class"], ["residential", "airport"], 0.8, 0.2],
+ 12,
+ ["match", ["get", "class"], "residential", 0, 1]
+ ]
+ },
+ "source-layer": "landuse"
+ },
+ {
+ "minzoom": 15,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, land" },
+ "filter": ["==", ["get", "class"], "pitch"],
+ "type": "line",
+ "source": "composite",
+ "id": "pitch-outline",
+ "paint": { "line-color": "hsl(165, 90%, 18%)" },
+ "source-layer": "landuse"
+ },
+ {
+ "id": "waterway",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "waterway",
+ "minzoom": 8,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 11, "round"], "line-join": "round" },
+ "paint": {
+ "line-color": "hsl(185, 90%, 35%)",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.3],
+ ["zoom"],
+ 9,
+ ["match", ["get", "class"], ["canal", "river"], 0.1, 0],
+ 20,
+ ["match", ["get", "class"], ["canal", "river"], 8, 3]
+ ],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 8, 0, 8.5, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, water" }
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "water",
+ "layout": {},
+ "paint": { "fill-color": ["interpolate", ["linear"], ["zoom"], 2, "hsl(224, 50%, 15%)", 10, "hsl(195, 90%, 45%)"] },
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, water" }
+ },
+ {
+ "minzoom": 13,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, built" },
+ "filter": ["all", ["==", ["get", "class"], "land"], ["==", ["geometry-type"], "Polygon"]],
+ "type": "fill",
+ "source": "composite",
+ "id": "land-structure-polygon",
+ "paint": { "fill-color": ["interpolate", ["linear"], ["zoom"], 9, "hsla(230, 32%, 78%, 0)", 11, "hsla(230, 30%, 65%, 0)"] },
+ "source-layer": "structure"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": "square" },
+ "metadata": { "mapbox:featureComponent": "land-and-water", "mapbox:group": "Land & water, built" },
+ "filter": ["all", ["==", ["get", "class"], "land"], ["==", ["geometry-type"], "LineString"]],
+ "type": "line",
+ "source": "composite",
+ "id": "land-structure-line",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.99], ["zoom"], 14, 0.75, 20, 40],
+ "line-color": ["interpolate", ["linear"], ["zoom"], 9, "hsla(230, 32%, 78%, 0)", 11, "hsla(230, 30%, 65%, 0)"]
+ },
+ "source-layer": "structure"
+ },
+ {
+ "id": "aeroway-polygon",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": ["all", ["match", ["get", "type"], ["runway", "taxiway", "helipad"], true, false], ["==", ["geometry-type"], "Polygon"]],
+ "paint": { "fill-color": "hsl(230, 68%, 68%)", "fill-opacity": ["interpolate", ["linear"], ["zoom"], 10, 0, 11, 1] },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, built" }
+ },
+ {
+ "id": "aeroway-line",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "aeroway",
+ "minzoom": 9,
+ "filter": ["==", ["geometry-type"], "LineString"],
+ "paint": {
+ "line-color": "hsl(230, 68%, 68%)",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.5],
+ ["zoom"],
+ 9,
+ ["match", ["get", "type"], "runway", 1, 0.5],
+ 18,
+ ["match", ["get", "type"], "runway", 80, 20]
+ ],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 10, 0, 11, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, built" }
+ },
+ {
+ "minzoom": 15,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "buildings", "mapbox:group": "Buildings, built" },
+ "filter": ["all", ["!=", ["get", "type"], "building:part"], ["==", ["get", "underground"], "false"]],
+ "type": "fill",
+ "source": "composite",
+ "id": "building",
+ "paint": {
+ "fill-color": "hsla(230, 27%, 59%, 0)",
+ "fill-opacity": ["interpolate", ["linear"], ["zoom"], 15, 0, 16, 1],
+ "fill-outline-color": "hsla(230, 22%, 56%, 0)"
+ },
+ "source-layer": "building"
+ },
+ {
+ "id": "tunnel-minor-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 4%, 19%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" }
+ },
+ {
+ "id": "tunnel-street-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 4%, 19%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-opacity": ["step", ["zoom"], 0, 14, 1],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "tunnel"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-minor-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-opacity": ["step", ["zoom"], 0, 11, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-secondary-tertiary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 4%, 19%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" }
+ },
+ {
+ "id": "tunnel-primary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 9,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 4%, 19%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" }
+ },
+ {
+ "id": "tunnel-major-link-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsl(215, 20%, 35%)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" }
+ },
+ {
+ "id": "tunnel-motorway-trunk-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels-case" }
+ },
+ {
+ "id": "tunnel-construction",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "class"], "construction"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 2, 18, 20, 22, 200],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-dasharray": [
+ "step",
+ ["zoom"],
+ ["literal", [0.4, 0.8]],
+ 15,
+ ["literal", [0.3, 0.6]],
+ 16,
+ ["literal", [0.2, 0.3]],
+ 17,
+ ["literal", [0.2, 0.25]],
+ 18,
+ ["literal", [0.15, 0.15]]
+ ]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "id": "tunnel-minor",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsla(230, 34%, 71%, 0)", "hsl(215, 20%, 35%)"]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 13, "round"], "line-join": ["step", ["zoom"], "miter", 13, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "tunnel"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-minor-link",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-major-link",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsl(205, 50%, 65%)", "hsl(225, 55%, 65%)"]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "id": "tunnel-street",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsla(230, 34%, 71%, 0)", "hsl(215, 20%, 35%)"],
+ "line-opacity": ["step", ["zoom"], 0, 14, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" },
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-street-low",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-secondary-tertiary",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260], "line-color": "hsl(215, 20%, 35%)" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "id": "tunnel-primary",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280], "line-color": "hsl(215, 20%, 35%)" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "id": "tunnel-motorway-trunk",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": ["match", ["get", "class"], "motorway", "hsl(205, 50%, 65%)", "hsl(225, 55%, 65%)"]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" }
+ },
+ {
+ "minzoom": 16,
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": ["step", ["zoom"], "oneway-small", 18, "oneway-large"],
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["==", ["get", "oneway"], "true"],
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["primary", "secondary", "street", "street_limited", "tertiary"], true, false],
+ 16,
+ [
+ "match",
+ ["get", "class"],
+ ["primary", "secondary", "tertiary", "street", "street_limited", "primary_link", "secondary_link", "tertiary_link", "service", "track"],
+ true,
+ false
+ ]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "tunnel-oneway-arrow-blue",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 16,
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": ["step", ["zoom"], "oneway-white-small", 18, "oneway-white-large"],
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, tunnels" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway", "motorway_link", "trunk", "trunk_link"], true, false],
+ ["==", ["get", "oneway"], "true"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "tunnel-oneway-arrow-white",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "id": "ferry",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 8,
+ "filter": ["==", ["get", "type"], "ferry"],
+ "paint": {
+ "line-color": ["interpolate", ["linear"], ["zoom"], 15, "hsl(194, 83%, 28%)", 17, "hsl(219, 83%, 28%)"],
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 20, 1],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 13, ["literal", [12, 4]]]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, ferries" }
+ },
+ {
+ "id": "ferry-auto",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 8,
+ "filter": ["==", ["get", "type"], "ferry_auto"],
+ "paint": {
+ "line-color": ["interpolate", ["linear"], ["zoom"], 15, "hsl(194, 83%, 28%)", 17, "hsl(219, 83%, 28%)"],
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 20, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, ferries" }
+ },
+ {
+ "id": "road-polygon",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ [
+ "primary",
+ "secondary",
+ "tertiary",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link",
+ "trunk",
+ "trunk_link",
+ "street",
+ "street_limited",
+ "track",
+ "service"
+ ],
+ true,
+ false
+ ],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "Polygon"]
+ ],
+ "paint": { "fill-color": "hsl(215, 20%, 35%)", "fill-outline-color": "hsla(217, 11%, 32%, 0)" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" }
+ },
+ {
+ "id": "turning-feature-outline",
+ "type": "circle",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": ["all", ["match", ["get", "class"], ["turning_circle", "turning_loop"], true, false], ["==", ["geometry-type"], "Point"]],
+ "paint": {
+ "circle-radius": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 4.5, 16, 8, 18, 20, 22, 200],
+ "circle-color": "hsl(215, 20%, 35%)",
+ "circle-stroke-width": ["interpolate", ["linear"], ["zoom"], 15, 0.8, 16, 1.2, 18, 2],
+ "circle-stroke-color": "hsla(217, 11%, 32%, 0)",
+ "circle-pitch-alignment": "map"
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 14,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-street-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-opacity": ["step", ["zoom"], 0, 14, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-opacity": ["step", ["zoom"], 0, 11, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 11,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-secondary-tertiary-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 9,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "primary"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-primary-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-major-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-opacity": ["step", ["zoom"], 0, 11, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 3,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ 5,
+ ["all", ["match", ["get", "class"], ["motorway", "trunk"], true, false], ["match", ["get", "structure"], ["none", "ford"], true, false]]
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-motorway-trunk-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0, 3.5, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "turning-feature",
+ "type": "circle",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": ["all", ["match", ["get", "class"], ["turning_circle", "turning_loop"], true, false], ["==", ["geometry-type"], "Point"]],
+ "paint": {
+ "circle-radius": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 4.5, 16, 8, 18, 20, 22, 200],
+ "circle-color": "hsl(215, 20%, 35%)",
+ "circle-pitch-alignment": "map"
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" }
+ },
+ {
+ "id": "road-construction",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "construction"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 2, 18, 20, 22, 200],
+ "line-color": "hsl(215, 20%, 35%)",
+ "line-dasharray": [
+ "step",
+ ["zoom"],
+ ["literal", [0.4, 0.8]],
+ 15,
+ ["literal", [0.3, 0.6]],
+ 16,
+ ["literal", [0.2, 0.3]],
+ 17,
+ ["literal", [0.2, 0.25]],
+ 18,
+ ["literal", [0.15, 0.15]]
+ ]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 13, "round"], "line-join": ["step", ["zoom"], "miter", 13, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor-link",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 13, "round"], "line-join": ["step", ["zoom"], "miter", 13, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-major-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsl(205, 43%, 55%)", "hsl(225, 56%, 55%)"]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-street",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsla(230, 34%, 71%, 0)", "hsl(215, 20%, 35%)"],
+ "line-opacity": ["step", ["zoom"], 0, 14, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 11,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-street-low",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 8,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-secondary-tertiary",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 6,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "primary"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-primary",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 3,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 13, "round"], "line-join": ["step", ["zoom"], "miter", 13, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface" },
+ "filter": [
+ "all",
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ 5,
+ ["all", ["match", ["get", "class"], ["motorway", "trunk"], true, false], ["match", ["get", "structure"], ["none", "ford"], true, false]]
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-motorway-trunk",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], "motorway", "hsl(205, 65%, 49%)", "trunk", "hsl(225, 58%, 39%)", "hsla(230, 31%, 74%, 0)"],
+ 9,
+ ["match", ["get", "class"], "motorway", "hsl(205, 43%, 55%)", "hsl(225, 56%, 55%)"]
+ ],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0, 3.5, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "road-rail",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["match", ["get", "class"], ["major_rail", "minor_rail"], true, false], ["match", ["get", "structure"], ["none", "ford"], true, false]],
+ "paint": {
+ "line-color": ["interpolate", ["linear"], ["zoom"], 13, "hsla(245, 37%, 59%, 0)", 16, "hsla(217, 0%, 47%, 0)"],
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 20, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, surface" }
+ },
+ {
+ "id": "road-rail-tracks",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["match", ["get", "class"], ["major_rail", "minor_rail"], true, false], ["match", ["get", "structure"], ["none", "ford"], true, false]],
+ "paint": {
+ "line-color": ["interpolate", ["linear"], ["zoom"], 13, "hsla(245, 37%, 59%, 0)", 16, "hsla(217, 0%, 47%, 0)"],
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 4, 20, 8],
+ "line-dasharray": [0.1, 15],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13.75, 0, 14, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, surface" }
+ },
+ {
+ "minzoom": 16,
+ "layout": { "icon-image": "level-crossing", "icon-rotation-alignment": "map", "icon-allow-overlap": true, "icon-ignore-placement": true },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface-icons" },
+ "filter": ["==", ["get", "class"], "level_crossing"],
+ "type": "symbol",
+ "source": "composite",
+ "id": "level-crossing",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 16,
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": ["step", ["zoom"], "oneway-small", 18, "oneway-large"],
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface-icons" },
+ "filter": [
+ "all",
+ ["==", ["get", "oneway"], "true"],
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["primary", "secondary", "tertiary", "street", "street_limited"], true, false],
+ 16,
+ [
+ "match",
+ ["get", "class"],
+ ["primary", "secondary", "tertiary", "street", "street_limited", "primary_link", "secondary_link", "tertiary_link", "service", "track"],
+ true,
+ false
+ ]
+ ],
+ ["match", ["get", "structure"], ["none", "ford"], true, false]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-oneway-arrow-blue",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 16,
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": ["step", ["zoom"], "oneway-white-small", 18, "oneway-white-large"],
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface-icons" },
+ "filter": [
+ "all",
+ ["==", ["get", "oneway"], "true"],
+ ["match", ["get", "class"], ["motorway", "trunk", "motorway_link", "trunk_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-oneway-arrow-white",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 17,
+ "layout": {
+ "icon-size": ["interpolate", ["linear"], ["zoom"], 16, 0.1, 18, 0.2, 19, 0.5, 22, 1.5],
+ "icon-image": ["step", ["zoom"], "crosswalk-small", 18, "crosswalk-large"],
+ "icon-rotate": ["get", "direction"],
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, surface-icons" },
+ "filter": ["all", ["==", ["get", "type"], "crosswalk"], ["==", ["geometry-type"], "Point"]],
+ "type": "symbol",
+ "source": "composite",
+ "id": "crosswalks",
+ "paint": {},
+ "source-layer": "structure"
+ },
+ {
+ "minzoom": 16,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "walking-cycling", "mapbox:group": "Walking, cycling, etc., barriers-bridges" },
+ "filter": ["match", ["get", "class"], ["gate", "fence", "hedge"], true, false],
+ "type": "line",
+ "source": "composite",
+ "id": "gate-fence-hedge",
+ "paint": {
+ "line-color": ["match", ["get", "class"], "hedge", "hsl(175, 50%, 64%)", "hsla(230, 37%, 54%, 0)"],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 16, 1, 20, 3],
+ "line-opacity": ["match", ["get", "class"], "gate", 0.5, 1],
+ "line-dasharray": [1, 2, 5, 2, 1, 2]
+ },
+ "source-layer": "structure"
+ },
+ {
+ "minzoom": 16,
+ "layout": { "icon-image": ["match", ["get", "type"], "gate", "gate", "lift_gate", "lift-gate", ""] },
+ "metadata": { "mapbox:featureComponent": "walking-cycling", "mapbox:group": "Walking, cycling, etc., barriers-bridges" },
+ "filter": ["==", ["get", "class"], "gate"],
+ "type": "symbol",
+ "source": "composite",
+ "id": "gate-label",
+ "paint": {},
+ "source-layer": "structure"
+ },
+ {
+ "id": "bridge-minor-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "id": "bridge-street-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-opacity": ["step", ["zoom"], 0, 14, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "bridge"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-minor-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-opacity": ["step", ["zoom"], 0, 11, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "bridge-secondary-tertiary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-opacity": ["step", ["zoom"], 0, 10, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "id": "bridge-primary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 9,
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-opacity": ["step", ["zoom"], 0, 10, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "id": "bridge-major-link-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "id": "bridge-motorway-trunk-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "id": "bridge-construction",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["==", ["get", "class"], "construction"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 2, 18, 20, 22, 200],
+ "line-color": "hsla(217, 11%, 32%, 0)",
+ "line-dasharray": [
+ "step",
+ ["zoom"],
+ ["literal", [0.4, 0.8]],
+ 15,
+ ["literal", [0.3, 0.6]],
+ 16,
+ ["literal", [0.2, 0.3]],
+ 17,
+ ["literal", [0.2, 0.25]],
+ 18,
+ ["literal", [0.15, 0.15]]
+ ]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-minor",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": "round" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "bridge"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-minor-link",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": { "line-cap": "round" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-major-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsl(205, 43%, 55%)", "hsl(225, 56%, 55%)"]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-street",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsla(230, 34%, 71%, 0)", "hsl(215, 20%, 35%)"],
+ "line-opacity": ["step", ["zoom"], 0, 14, 1]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"], "line-join": ["step", ["zoom"], "miter", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-street-low",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-secondary-tertiary",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-primary",
+ "paint": { "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280], "line-color": "hsl(215, 20%, 35%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": "round" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-motorway-trunk",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": ["match", ["get", "class"], "motorway", "hsl(205, 43%, 55%)", "hsl(225, 56%, 55%)"]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "bridge-major-link-2-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "id": "bridge-motorway-trunk-2-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(217, 11%, 44%, 0)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" }
+ },
+ {
+ "minzoom": 12,
+ "layout": { "line-cap": "round" },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-major-link-2",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsl(205, 43%, 55%)", "hsl(225, 56%, 55%)"]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": { "line-cap": ["step", ["zoom"], "butt", 14, "round"] },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-motorway-trunk-2",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": ["match", ["get", "class"], "motorway", "hsl(205, 43%, 55%)", "hsl(225, 56%, 55%)"]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 16,
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": ["step", ["zoom"], "oneway-small", 18, "oneway-large"],
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["==", ["get", "oneway"], "true"],
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["primary", "secondary", "tertiary", "street", "street_limited"], true, false],
+ 16,
+ [
+ "match",
+ ["get", "class"],
+ ["primary", "secondary", "tertiary", "street", "street_limited", "primary_link", "secondary_link", "tertiary_link", "service", "track"],
+ true,
+ false
+ ]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "bridge-oneway-arrow-blue",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 16,
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": "oneway-white-small",
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, bridges" },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway", "trunk", "motorway_link", "trunk_link"], true, false],
+ ["==", ["get", "oneway"], "true"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "bridge-oneway-arrow-white",
+ "paint": {},
+ "source-layer": "road"
+ },
+ {
+ "id": "bridge-rail",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["match", ["get", "class"], ["major_rail", "minor_rail"], true, false]],
+ "paint": {
+ "line-color": ["interpolate", ["linear"], ["zoom"], 13, "hsla(245, 37%, 59%, 0)", 16, "hsla(217, 0%, 47%, 0)"],
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 20, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, bridges" }
+ },
+ {
+ "id": "bridge-rail-tracks",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["match", ["get", "class"], ["major_rail", "minor_rail"], true, false]],
+ "paint": {
+ "line-color": ["interpolate", ["linear"], ["zoom"], 13, "hsla(245, 37%, 59%, 0)", 16, "hsla(217, 0%, 47%, 0)"],
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 4, 20, 8],
+ "line-dasharray": [0.1, 15],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13.75, 0, 14, 1]
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, bridges" }
+ },
+ {
+ "id": "aerialway",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": ["==", ["get", "class"], "aerialway"],
+ "paint": { "line-color": "hsl(230, 54%, 85%)", "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 20, 2], "line-dasharray": [4, 1] },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, elevated" }
+ },
+ {
+ "minzoom": 7,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "admin-boundaries", "mapbox:group": "Administrative boundaries, admin" },
+ "filter": ["all", ["==", ["get", "admin_level"], 1], ["==", ["get", "maritime"], "false"], ["match", ["get", "worldview"], ["all", "CN"], true, false]],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-1-boundary-bg",
+ "paint": {
+ "line-color": "hsl(250, 30%, 79%)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 3, 12, 6],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 7, 0, 8, 0.5],
+ "line-dasharray": [1, 0],
+ "line-blur": ["interpolate", ["linear"], ["zoom"], 3, 0, 12, 3]
+ },
+ "source-layer": "admin"
+ },
+ {
+ "minzoom": 1,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "admin-boundaries", "mapbox:group": "Administrative boundaries, admin" },
+ "filter": ["all", ["==", ["get", "admin_level"], 0], ["==", ["get", "maritime"], "false"], ["match", ["get", "worldview"], ["all", "CN"], true, false]],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-0-boundary-bg",
+ "paint": {
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 4, 12, 8],
+ "line-color": "hsla(251, 31%, 79%, 0)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0, 4, 0.5],
+ "line-blur": ["interpolate", ["linear"], ["zoom"], 3, 0, 12, 2]
+ },
+ "source-layer": "admin"
+ },
+ {
+ "minzoom": 2,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "admin-boundaries", "mapbox:group": "Administrative boundaries, admin" },
+ "filter": ["all", ["==", ["get", "admin_level"], 1], ["==", ["get", "maritime"], "false"], ["match", ["get", "worldview"], ["all", "CN"], true, false]],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-1-boundary",
+ "paint": {
+ "line-dasharray": ["step", ["zoom"], ["literal", [2, 0]], 7, ["literal", [2, 2, 6, 2]]],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 0.5, 12, 1.5],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 2, 0, 3, 1],
+ "line-color": "hsl(215, 76%, 58%)"
+ },
+ "source-layer": "admin"
+ },
+ {
+ "minzoom": 1,
+ "layout": { "line-join": "round" },
+ "metadata": { "mapbox:featureComponent": "admin-boundaries", "mapbox:group": "Administrative boundaries, admin" },
+ "filter": [
+ "all",
+ ["==", ["get", "admin_level"], 0],
+ ["==", ["get", "disputed"], "false"],
+ ["==", ["get", "maritime"], "false"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-0-boundary",
+ "paint": { "line-color": "hsl(205, 50%, 45%)", "line-width": ["interpolate", ["linear"], ["zoom"], 2, 1.5, 12, 1.5], "line-dasharray": [10, 0] },
+ "source-layer": "admin"
+ },
+ {
+ "minzoom": 1,
+ "layout": {},
+ "metadata": { "mapbox:featureComponent": "admin-boundaries", "mapbox:group": "Administrative boundaries, admin" },
+ "filter": [
+ "all",
+ ["==", ["get", "disputed"], "true"],
+ ["==", ["get", "admin_level"], 0],
+ ["==", ["get", "maritime"], "false"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-0-boundary-disputed",
+ "paint": {
+ "line-color": "hsl(250, 10%, 65%)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 0.5, 12, 2],
+ "line-dasharray": ["step", ["zoom"], ["literal", [3, 2, 5]], 7, ["literal", [2, 1.5]]]
+ },
+ "source-layer": "admin"
+ },
+ {
+ "minzoom": 10,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 10,
+ [
+ "match",
+ ["get", "class"],
+ ["motorway", "trunk", "primary", "secondary", "tertiary"],
+ 11,
+ ["motorway_link", "trunk_link", "primary_link", "secondary_link", "tertiary_link", "street", "street_limited"],
+ 9.9,
+ 7.15
+ ],
+ 18,
+ [
+ "match",
+ ["get", "class"],
+ ["motorway", "trunk", "primary", "secondary", "tertiary"],
+ 17.6,
+ ["motorway_link", "trunk_link", "primary_link", "secondary_link", "tertiary_link", "street", "street_limited"],
+ 15.400000000000002,
+ 14.3
+ ]
+ ],
+ "text-max-angle": 30,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": 0.01
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, road-labels" },
+ "filter": [
+ "all",
+ ["has", "name"],
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["motorway", "trunk", "primary", "secondary", "tertiary"], true, false],
+ 12,
+ ["match", ["get", "class"], ["motorway", "trunk", "primary", "secondary", "tertiary", "street", "street_limited"], true, false],
+ 15,
+ ["match", ["get", "class"], ["path", "pedestrian", "golf", "ferry", "aerialway"], false, true]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-label",
+ "paint": {
+ "text-color": "#e6e6e6",
+ "text-halo-color": ["match", ["get", "class"], ["motorway", "trunk"], "hsla(230, 37%, 63%, 0.75)", "hsla(230, 37%, 63%, 0)"],
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 15,
+ "layout": {
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "icon-image": "intersection",
+ "icon-text-fit": "both",
+ "icon-text-fit-padding": [1, 2, 1, 2],
+ "text-size": ["interpolate", ["exponential", 1.2], ["zoom"], 15, 9, 18, 12],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, road-labels" },
+ "filter": ["all", ["==", ["get", "class"], "intersection"], ["has", "name"]],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-intersection",
+ "paint": { "text-color": "hsl(230, 40%, 52%)" },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 6,
+ "layout": {
+ "text-size": 9,
+ "icon-image": [
+ "case",
+ ["has", "shield_beta"],
+ [
+ "coalesce",
+ ["image", ["concat", ["get", "shield_beta"], "-", ["to-string", ["get", "reflen"]]]],
+ ["image", ["concat", "default-", ["to-string", ["get", "reflen"]]]]
+ ],
+ ["concat", ["get", "shield"], "-", ["to-string", ["get", "reflen"]]]
+ ],
+ "icon-rotation-alignment": "viewport",
+ "text-max-angle": 38,
+ "symbol-spacing": ["interpolate", ["linear"], ["zoom"], 11, 1333.3333333333333, 14, 2000],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "symbol-placement": ["step", ["zoom"], "point", 11, "line"],
+ "text-rotation-alignment": "viewport",
+ "text-field": ["get", "ref"],
+ "text-letter-spacing": 0.05,
+ "icon-padding": 6.66667
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, road-labels" },
+ "filter": [
+ "all",
+ ["has", "reflen"],
+ ["<=", ["get", "reflen"], 6],
+ ["match", ["get", "class"], ["pedestrian", "service"], false, true],
+ [
+ "step",
+ ["zoom"],
+ ["==", ["geometry-type"], "Point"],
+ 11,
+ [">", ["get", "len"], 5000],
+ 12,
+ [">", ["get", "len"], 2500],
+ 13,
+ [">", ["get", "len"], 1000],
+ 14,
+ true
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-number-shield",
+ "paint": {
+ "text-color": [
+ "case",
+ [
+ "all",
+ ["has", "shield_text_color_beta"],
+ ["to-boolean", ["coalesce", ["image", ["concat", ["get", "shield_beta"], "-", ["to-string", ["get", "reflen"]]]], ""]]
+ ],
+ [
+ "match",
+ ["get", "shield_text_color_beta"],
+ "white",
+ "hsl(0, 0%, 78%)",
+ "yellow",
+ "hsl(50, 70%, 54%)",
+ "orange",
+ "hsl(25, 70%, 61%)",
+ "blue",
+ "hsl(230, 40%, 32%)",
+ "red",
+ "hsl(0, 61%, 46%)",
+ "green",
+ "hsl(140, 52%, 29%)",
+ "hsl(230, 13%, 10%)"
+ ],
+ [
+ "match",
+ ["get", "shield_text_color"],
+ "white",
+ "hsl(0, 0%, 78%)",
+ "yellow",
+ "hsl(50, 70%, 54%)",
+ "orange",
+ "hsl(25, 70%, 61%)",
+ "blue",
+ "hsl(230, 40%, 32%)",
+ "red",
+ "hsl(0, 61%, 46%)",
+ "green",
+ "hsl(140, 52%, 29%)",
+ "hsl(230, 13%, 10%)"
+ ]
+ ]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 14,
+ "layout": {
+ "text-field": ["get", "ref"],
+ "text-size": 9,
+ "icon-image": ["concat", "motorway-exit-", ["to-string", ["get", "reflen"]]],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"]
+ },
+ "metadata": { "mapbox:featureComponent": "road-network", "mapbox:group": "Road network, road-labels" },
+ "filter": ["all", ["has", "reflen"], ["<=", ["get", "reflen"], 9]],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-exit-shield",
+ "paint": { "text-color": "hsl(0, 0%, 78%)", "text-translate": [0, 0] },
+ "source-layer": "motorway_junction"
+ },
+ {
+ "minzoom": 15,
+ "layout": {
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 8.450000000000001, 18, 16.900000000000002],
+ "text-max-angle": 30,
+ "text-font": ["DIN Pro Regular", "Arial Unicode MS Regular"],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": 0.01
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, ferry-aerialway-labels" },
+ "filter": ["match", ["get", "class"], "aerialway", true, "ferry", true, false],
+ "type": "symbol",
+ "source": "composite",
+ "id": "ferry-aerialway-label",
+ "paint": {
+ "text-color": ["match", ["get", "class"], "ferry", "hsl(185, 58%, 70%)", "hsl(230, 54%, 85%)"],
+ "text-halo-color": ["match", ["get", "class"], "ferry", "hsl(185, 90%, 35%)", "hsla(230, 32%, 99%, 0)"],
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "text-font": ["DIN Pro Italic", "Arial Unicode MS Regular"],
+ "text-max-angle": 30,
+ "symbol-spacing": ["interpolate", ["linear", 1], ["zoom"], 15, 250, 17, 400],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 18, 18],
+ "symbol-placement": "line",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ },
+ "metadata": { "mapbox:featureComponent": "natural-features", "mapbox:group": "Natural features, natural-labels" },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["canal", "river", "stream", "disputed_canal", "disputed_river", "disputed_stream"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "waterway-label",
+ "paint": { "text-color": "hsl(185, 58%, 90%)", "text-halo-color": "hsla(230, 29%, 62%, 0.5)" },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 4,
+ "layout": {
+ "text-size": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], 19.8, 5, 13.200000000000001],
+ 17,
+ ["step", ["get", "sizerank"], 19.8, 13, 13.200000000000001]
+ ],
+ "text-max-angle": 30,
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "symbol-placement": "line-center",
+ "text-pitch-alignment": "viewport"
+ },
+ "metadata": { "mapbox:featureComponent": "natural-features", "mapbox:group": "Natural features, natural-labels" },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["glacier", "landform", "disputed_glacier", "disputed_landform"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["<=", ["get", "filterrank"], 0],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "natural-line-label",
+ "paint": { "text-halo-width": 0.5, "text-halo-color": "hsla(230, 29%, 62%, 0)", "text-halo-blur": 0.5, "text-color": "hsl(236, 50%, 95%)" },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 4,
+ "layout": {
+ "text-size": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], 19.8, 5, 13.200000000000001],
+ 17,
+ ["step", ["get", "sizerank"], 19.8, 13, 13.200000000000001]
+ ],
+ "icon-image": ["get", "maki"],
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-offset": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 5, ["literal", [0, 0.6499999999999999]]],
+ 17,
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 13, ["literal", [0, 0.75]]]
+ ],
+ "text-anchor": ["step", ["zoom"], ["step", ["get", "sizerank"], "center", 5, "top"], 17, ["step", ["get", "sizerank"], "center", 13, "top"]],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ },
+ "metadata": { "mapbox:featureComponent": "natural-features", "mapbox:group": "Natural features, natural-labels" },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ [
+ "dock",
+ "glacier",
+ "landform",
+ "water_feature",
+ "wetland",
+ "disputed_dock",
+ "disputed_glacier",
+ "disputed_landform",
+ "disputed_water_feature",
+ "disputed_wetland"
+ ],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["<=", ["get", "filterrank"], 0],
+ ["==", ["geometry-type"], "Point"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "natural-point-label",
+ "paint": {
+ "icon-opacity": ["step", ["zoom"], ["step", ["get", "sizerank"], 0, 5, 1], 17, ["step", ["get", "sizerank"], 0, 13, 1]],
+ "text-halo-color": "hsla(230, 32%, 99%, 0)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5,
+ "text-color": "hsl(236, 50%, 95%)"
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 1,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 0,
+ ["*", ["-", 16, ["sqrt", ["get", "sizerank"]]], 1],
+ 22,
+ ["*", ["-", 22, ["sqrt", ["get", "sizerank"]]], 1]
+ ],
+ "text-max-angle": 30,
+ "text-letter-spacing": ["match", ["get", "class"], "ocean", 0.25, ["sea", "bay"], 0.15, 0],
+ "text-font": ["DIN Pro Italic", "Arial Unicode MS Regular"],
+ "symbol-placement": "line-center",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ },
+ "metadata": { "mapbox:featureComponent": "natural-features", "mapbox:group": "Natural features, natural-labels" },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["bay", "ocean", "reservoir", "sea", "water", "disputed_bay", "disputed_ocean", "disputed_reservoir", "disputed_sea", "disputed_water"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "water-line-label",
+ "paint": {
+ "text-color": ["match", ["get", "class"], ["bay", "ocean", "sea"], "hsl(185, 86%, 55%)", "hsl(185, 58%, 90%)"],
+ "text-halo-color": "hsla(230, 29%, 62%, 0.5)"
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 1,
+ "layout": {
+ "text-line-height": 1.3,
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 0,
+ ["*", ["-", 16, ["sqrt", ["get", "sizerank"]]], 1],
+ 22,
+ ["*", ["-", 22, ["sqrt", ["get", "sizerank"]]], 1]
+ ],
+ "text-font": ["DIN Pro Italic", "Arial Unicode MS Regular"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": ["match", ["get", "class"], "ocean", 0.25, ["bay", "sea"], 0.15, 0.01],
+ "text-max-width": ["match", ["get", "class"], "ocean", 4, "sea", 5, ["bay", "water"], 7, 10]
+ },
+ "metadata": { "mapbox:featureComponent": "natural-features", "mapbox:group": "Natural features, natural-labels" },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["bay", "ocean", "reservoir", "sea", "water", "disputed_bay", "disputed_ocean", "disputed_reservoir", "disputed_sea", "disputed_water"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["==", ["geometry-type"], "Point"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "water-point-label",
+ "paint": {
+ "text-color": ["match", ["get", "class"], ["bay", "ocean", "sea"], "hsl(185, 86%, 55%)", "hsl(185, 58%, 90%)"],
+ "text-halo-color": "hsla(230, 29%, 62%, 0.5)"
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 6,
+ "layout": {
+ "text-size": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], 19.8, 5, 13.200000000000001],
+ 17,
+ ["step", ["get", "sizerank"], 19.8, 13, 13.200000000000001]
+ ],
+ "icon-image": ["case", ["has", "maki_beta"], ["coalesce", ["image", ["get", "maki_beta"]], ["image", ["get", "maki"]]], ["image", ["get", "maki"]]],
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-offset": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 5, ["literal", [0, 0.8999999999999999]]],
+ 17,
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 13, ["literal", [0, 0.8999999999999999]]]
+ ],
+ "text-anchor": ["step", ["zoom"], ["step", ["get", "sizerank"], "center", 5, "top"], 17, ["step", ["get", "sizerank"], "center", 13, "top"]],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "symbol-placement": "line"
+ },
+ "metadata": { "mapbox:featureComponent": "point-of-interest-labels", "mapbox:group": "Point of interest labels, poi-labels" },
+ "filter": [
+ "<=",
+ ["get", "filterrank"],
+ ["+", ["step", ["zoom"], 0, 16, 1, 17, 2], ["match", ["get", "class"], "education", 1, "landmark", 2, "medical", 1, "motorist", 3, "park_like", 1, 0]]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "poi-label",
+ "paint": {
+ "icon-opacity": ["step", ["zoom"], ["step", ["get", "sizerank"], 0, 5, 1], 17, ["step", ["get", "sizerank"], 0, 13, 1]],
+ "text-halo-color": "hsla(230, 32%, 99%, 0)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5,
+ "text-color": ["match", ["get", "class"], "park_like", "hsl(150, 50%, 85%)", "medical", "hsl(0, 50%, 85%)", "hsl(236, 50%, 95%)"]
+ },
+ "source-layer": "poi_label"
+ },
+ {
+ "minzoom": 8,
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": ["step", ["get", "sizerank"], 19.8, 9, 13.200000000000001],
+ "icon-image": ["get", "maki"],
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-offset": [0, 0.8999999999999999],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": [
+ "step",
+ ["get", "sizerank"],
+ [
+ "case",
+ ["has", "ref"],
+ ["concat", ["get", "ref"], " -\n", ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]],
+ ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ ],
+ 15,
+ ["get", "ref"]
+ ],
+ "text-letter-spacing": 0.01,
+ "text-max-width": 9
+ },
+ "metadata": { "mapbox:featureComponent": "transit", "mapbox:group": "Transit, transit-labels" },
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["military", "civil", "disputed_military", "disputed_civil"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "airport-label",
+ "paint": { "text-color": "hsl(230, 77%, 60%)", "text-halo-color": "hsla(230, 32%, 99%, 0)", "text-halo-width": 1 },
+ "source-layer": "airport_label"
+ },
+ {
+ "minzoom": 10,
+ "layout": {
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-transform": "uppercase",
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-letter-spacing": ["match", ["get", "type"], "suburb", 0.15, 0.05],
+ "text-max-width": 7,
+ "text-padding": 3,
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.5, 0, 1, 1],
+ ["zoom"],
+ 11,
+ ["match", ["get", "type"], "suburb", 12.100000000000001, 11.55],
+ 15,
+ ["match", ["get", "type"], "suburb", 16.5, 15.400000000000002]
+ ]
+ },
+ "metadata": { "mapbox:featureComponent": "place-labels", "mapbox:group": "Place labels, place-labels" },
+ "maxzoom": 15,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["settlement_subdivision", "disputed_settlement_subdivision"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["<=", ["get", "filterrank"], 1]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "settlement-subdivision-label",
+ "paint": { "text-halo-color": "hsla(230, 37%, 63%, 0.75)", "text-halo-width": 1, "text-color": "hsl(215, 28%, 100%)", "text-halo-blur": 0.5 },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 2,
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.2, 0, 0.9, 1],
+ ["zoom"],
+ 3,
+ ["step", ["get", "symbolrank"], 12.100000000000001, 9, 11],
+ 6,
+ ["step", ["get", "symbolrank"], 15.400000000000002, 9, 13.200000000000001, 12, 11],
+ 8,
+ ["step", ["get", "symbolrank"], 17.6, 9, 15.400000000000002, 12, 13.200000000000001, 15, 11],
+ 13,
+ ["step", ["get", "symbolrank"], 24.200000000000003, 9, 22, 12, 17.6, 15, 15.400000000000002]
+ ],
+ "text-radial-offset": ["step", ["zoom"], ["match", ["get", "capital"], 2, 0.6, 0.55], 8, 0],
+ "symbol-sort-key": ["get", "symbolrank"],
+ "icon-image": [
+ "step",
+ ["zoom"],
+ ["case", ["==", ["get", "capital"], 2], "border-dot-13", ["step", ["get", "symbolrank"], "dot-11", 9, "dot-10", 11, "dot-9"]],
+ 8,
+ ""
+ ],
+ "text-font": ["DIN Pro Regular", "Arial Unicode MS Regular"],
+ "text-justify": "auto",
+ "text-anchor": ["step", ["zoom"], ["get", "text_anchor"], 8, "center"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-max-width": 7
+ },
+ "metadata": { "mapbox:featureComponent": "place-labels", "mapbox:group": "Place labels, place-labels" },
+ "maxzoom": 13,
+ "filter": [
+ "all",
+ ["<=", ["get", "filterrank"], 1],
+ ["match", ["get", "class"], ["settlement", "disputed_settlement"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ [
+ "step",
+ ["zoom"],
+ [">", ["get", "symbolrank"], 6],
+ 4,
+ [">=", ["get", "symbolrank"], 7],
+ 6,
+ [">=", ["get", "symbolrank"], 8],
+ 7,
+ [">=", ["get", "symbolrank"], 10],
+ 10,
+ [">=", ["get", "symbolrank"], 11],
+ 11,
+ [">=", ["get", "symbolrank"], 13],
+ 12,
+ [">=", ["get", "symbolrank"], 15]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "settlement-minor-label",
+ "paint": { "text-color": "hsl(215, 28%, 93%)", "text-halo-color": "hsla(230, 37%, 63%, 0)", "text-halo-width": 1, "text-halo-blur": 1 },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 2,
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.2, 0, 0.9, 1],
+ ["zoom"],
+ 3,
+ ["step", ["get", "symbolrank"], 16.900000000000002, 6, 14.3],
+ 6,
+ ["step", ["get", "symbolrank"], 23.400000000000002, 6, 20.8, 7, 18.2],
+ 8,
+ ["step", ["get", "symbolrank"], 26, 9, 20.8, 10, 18.2],
+ 15,
+ ["step", ["get", "symbolrank"], 31.200000000000003, 9, 26, 12, 20.8, 15, 18.2]
+ ],
+ "text-radial-offset": ["step", ["zoom"], ["match", ["get", "capital"], 2, 0.6, 0.55], 8, 0],
+ "symbol-sort-key": ["get", "symbolrank"],
+ "icon-image": [
+ "step",
+ ["zoom"],
+ ["case", ["==", ["get", "capital"], 2], "border-dot-13", ["step", ["get", "symbolrank"], "dot-11", 9, "dot-10", 11, "dot-9"]],
+ 8,
+ ""
+ ],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Regular"],
+ "text-justify": [
+ "step",
+ ["zoom"],
+ ["match", ["get", "text_anchor"], ["left", "bottom-left", "top-left"], "left", ["right", "bottom-right", "top-right"], "right", "center"],
+ 8,
+ "center"
+ ],
+ "text-anchor": ["step", ["zoom"], ["get", "text_anchor"], 8, "center"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-max-width": 7
+ },
+ "metadata": { "mapbox:featureComponent": "place-labels", "mapbox:group": "Place labels, place-labels" },
+ "maxzoom": 15,
+ "filter": [
+ "all",
+ ["<=", ["get", "filterrank"], 1],
+ ["match", ["get", "class"], ["settlement", "disputed_settlement"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ [
+ "step",
+ ["zoom"],
+ false,
+ 2,
+ ["<=", ["get", "symbolrank"], 6],
+ 4,
+ ["<", ["get", "symbolrank"], 7],
+ 6,
+ ["<", ["get", "symbolrank"], 8],
+ 7,
+ ["<", ["get", "symbolrank"], 10],
+ 10,
+ ["<", ["get", "symbolrank"], 11],
+ 11,
+ ["<", ["get", "symbolrank"], 13],
+ 12,
+ ["<", ["get", "symbolrank"], 15],
+ 13,
+ [">=", ["get", "symbolrank"], 11],
+ 14,
+ [">=", ["get", "symbolrank"], 15]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "settlement-major-label",
+ "paint": { "text-color": "hsl(215, 28%, 93%)", "text-halo-color": "hsla(230, 37%, 63%, 0)", "text-halo-width": 1, "text-halo-blur": 1 },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 3,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.85, 0.7, 0.65, 1],
+ ["zoom"],
+ 4,
+ ["step", ["get", "symbolrank"], 10.799999999999999, 6, 9.6, 7, 8.4],
+ 9,
+ ["step", ["get", "symbolrank"], 25.2, 6, 19.2, 7, 16.8]
+ ],
+ "text-transform": "uppercase",
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": 0.15,
+ "text-max-width": 6
+ },
+ "metadata": { "mapbox:featureComponent": "place-labels", "mapbox:group": "Place labels, place-labels" },
+ "maxzoom": 9,
+ "filter": ["match", ["get", "class"], ["state", "disputed_state"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ "type": "symbol",
+ "source": "composite",
+ "id": "state-label",
+ "paint": { "text-color": "hsl(215, 28%, 93%)", "text-halo-color": "hsla(230, 37%, 63%, 0)", "text-halo-width": 1, "text-opacity": 0.5 },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 1,
+ "layout": {
+ "icon-image": "",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-line-height": 1.1,
+ "text-max-width": 6,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-radial-offset": ["step", ["zoom"], 0.6, 8, 0],
+ "text-justify": [
+ "step",
+ ["zoom"],
+ ["match", ["get", "text_anchor"], ["left", "bottom-left", "top-left"], "left", ["right", "bottom-right", "top-right"], "right", "center"],
+ 7,
+ "auto"
+ ],
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.2, 0, 0.7, 1],
+ ["zoom"],
+ 1,
+ ["step", ["get", "symbolrank"], 12.1, 4, 9.9, 5, 8.8],
+ 9,
+ ["step", ["get", "symbolrank"], 30.799999999999997, 4, 26.599999999999998, 5, 23.799999999999997]
+ ]
+ },
+ "metadata": { "mapbox:featureComponent": "place-labels", "mapbox:group": "Place labels, place-labels" },
+ "maxzoom": 10,
+ "filter": ["match", ["get", "class"], ["country", "disputed_country"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ "type": "symbol",
+ "source": "composite",
+ "id": "country-label",
+ "paint": {
+ "icon-opacity": ["step", ["zoom"], ["case", ["has", "text_anchor"], 1, 0], 7, 0],
+ "text-color": "hsl(215, 28%, 93%)",
+ "text-halo-color": ["interpolate", ["linear"], ["zoom"], 2, "hsla(230, 37%, 63%, 0.75)", 3, "hsla(230, 37%, 63%, 0)"],
+ "text-halo-width": 1.25
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 0.75,
+ "layout": {
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-line-height": 1.1,
+ "text-max-width": 6,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-size": ["interpolate", ["exponential", 0.5], ["zoom"], 0, 10, 2.5, 15],
+ "text-transform": "uppercase",
+ "text-letter-spacing": 0.05
+ },
+ "metadata": { "mapbox:featureComponent": "place-labels", "mapbox:group": "Place labels, place-labels" },
+ "maxzoom": 3,
+ "filter": ["==", ["get", "class"], "continent"],
+ "type": "symbol",
+ "source": "composite",
+ "id": "continent-label",
+ "paint": {
+ "text-color": "hsl(215, 28%, 93%)",
+ "text-halo-color": ["interpolate", ["linear"], ["zoom"], 0, "hsla(230, 37%, 63%, 0.75)", 3, "hsla(230, 37%, 63%, 0)"],
+ "text-halo-width": 1.5,
+ "text-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.8, 1.5, 0.5, 2.5, 0]
+ },
+ "source-layer": "natural_label"
+ }
+ ],
+ "created": "2022-11-11T07:06:36.814Z",
+ "modified": "2022-11-15T10:20:07.721Z",
+ "id": "clac5oby2000c14o27c4d529k",
+ "owner": "Vothing",
+ "visibility": "private",
+ "protected": false,
+ "draft": false
+}
diff --git a/public/ref/style/satellite.json b/public/ref/style/satellite.json
new file mode 100644
index 0000000..7d1bf9b
--- /dev/null
+++ b/public/ref/style/satellite.json
@@ -0,0 +1,2631 @@
+{
+ "version": 8,
+ "name": "影像注记",
+ "metadata": {
+ "mapbox:type": "default",
+ "mapbox:origin": "satellite-streets-v12",
+ "mapbox:sdk-support": {
+ "android": "10.6.0",
+ "ios": "10.6.0",
+ "js": "2.9.0"
+ },
+ "mapbox:autocomposite": true,
+ "mapbox:groups": {
+ "Transit, transit-labels": {
+ "name": "Transit, transit-labels",
+ "collapsed": true
+ },
+ "Administrative boundaries, admin": {
+ "name": "Administrative boundaries, admin",
+ "collapsed": true
+ },
+ "Road network, bridges": {
+ "name": "Road network, bridges",
+ "collapsed": true
+ },
+ "Road network, tunnels": {
+ "name": "Road network, tunnels",
+ "collapsed": true
+ },
+ "Road network, road-labels": {
+ "name": "Road network, road-labels",
+ "collapsed": true
+ },
+ "Natural features, natural-labels": {
+ "name": "Natural features, natural-labels",
+ "collapsed": true
+ },
+ "Road network, surface": {
+ "name": "Road network, surface",
+ "collapsed": true
+ },
+ "Walking, cycling, etc., barriers-bridges": {
+ "name": "Walking, cycling, etc., barriers-bridges",
+ "collapsed": true
+ },
+ "Place labels, place-labels": {
+ "name": "Place labels, place-labels",
+ "collapsed": true
+ },
+ "Transit, elevated": {
+ "name": "Transit, elevated",
+ "collapsed": true
+ },
+ "Point of interest labels, poi-labels": {
+ "name": "Point of interest labels, poi-labels",
+ "collapsed": true
+ },
+ "Walking, cycling, etc., tunnels": {
+ "name": "Walking, cycling, etc., tunnels",
+ "collapsed": true
+ },
+ "Road network, tunnels-case": {
+ "name": "Road network, tunnels-case",
+ "collapsed": true
+ },
+ "Walking, cycling, etc., walking-cycling-labels": {
+ "name": "Walking, cycling, etc., walking-cycling-labels",
+ "collapsed": true
+ },
+ "Walking, cycling, etc., surface": {
+ "name": "Walking, cycling, etc., surface",
+ "collapsed": true
+ },
+ "Satellite imagery, land": {
+ "name": "Satellite imagery, land",
+ "collapsed": true
+ },
+ "Transit, ferry-aerialway-labels": {
+ "name": "Transit, ferry-aerialway-labels",
+ "collapsed": true
+ }
+ }
+ },
+ "center": [116.40446932693203, 39.9209801377464],
+ "zoom": 19.393526793882586,
+ "bearing": 11.200000000000273,
+ "pitch": 41.99999999999993,
+ "fog": {
+ "range": [1, 10],
+ "color": ["interpolate", ["exponential", 1.2], ["zoom"], 5.5, "hsl(240, 12%, 70%)", 6, "hsl(0, 0%, 100%)"],
+ "high-color": ["interpolate", ["exponential", 1.2], ["zoom"], 5.5, "hsl(240, 12%, 7%)", 6, "hsl(38, 63%, 84%)"],
+ "space-color": ["interpolate", ["exponential", 1.2], ["zoom"], 5.5, "hsl(240, 12%, 9%)", 6, "hsl(199, 61%, 80%)"],
+ "horizon-blend": ["interpolate", ["exponential", 1.2], ["zoom"], 5.5, 0.008, 6, 0.15],
+ "star-intensity": ["interpolate", ["exponential", 1.2], ["zoom"], 5.5, 0.1, 6, 0]
+ },
+ "sources": {
+ "mapbox://mapbox.satellite": {
+ "url": "mapbox://mapbox.satellite",
+ "type": "raster",
+ "tileSize": 256
+ },
+ "composite": {
+ "url": "mapbox://mapbox.mapbox-streets-v8",
+ "type": "vector"
+ }
+ },
+ "sprite": "mapbox://sprites/mapbox/satellite-v9",
+ "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
+ "projection": {
+ "name": "globe"
+ },
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "layout": {},
+ "paint": {
+ "background-color": "hsl(222, 56%, 4%)",
+ "background-opacity": 0.9
+ },
+ "metadata": {
+ "mapbox:featureComponent": "satellite",
+ "mapbox:group": "Satellite imagery, land"
+ }
+ },
+ {
+ "id": "satellite",
+ "type": "raster",
+ "source": "mapbox://mapbox.satellite",
+ "layout": {},
+ "paint": {},
+ "metadata": {
+ "mapbox:featureComponent": "satellite",
+ "mapbox:group": "Satellite imagery, land"
+ }
+ },
+ {
+ "id": "tunnel-minor-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 0%, 0%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ }
+ },
+ {
+ "id": "tunnel-street-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 0%, 0%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0],
+ "line-dasharray": [3, 3]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ }
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "tunnel"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-minor-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-secondary-tertiary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 0%, 0%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-dasharray": [3, 3],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ }
+ },
+ {
+ "id": "tunnel-primary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 9,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 0%, 0%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-dasharray": [3, 3],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ }
+ },
+ {
+ "id": "tunnel-major-link-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-dasharray": [3, 3],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ }
+ },
+ {
+ "id": "tunnel-motorway-trunk-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-dasharray": [3, 3],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels-case"
+ }
+ },
+ {
+ "minzoom": 14,
+ "layout": {},
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., tunnels"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["==", ["get", "class"], "path"],
+ ["!=", ["get", "type"], "steps"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-path",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 1, 18, 4],
+ "line-color": "hsla(40, 88%, 77%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.75, 1]], 16, ["literal", [1, 0.75]], 17, ["literal", [1, 0.5]]]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-steps",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "type"], "steps"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 1, 16, 1.6, 18, 6],
+ "line-color": "hsla(40, 88%, 77%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.75, 1]], 16, ["literal", [1, 0.75]], 17, ["literal", [0.3, 0.3]]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., tunnels"
+ }
+ },
+ {
+ "id": "tunnel-pedestrian",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "class"], "pedestrian"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 18, 12],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.5, 0.4]], 16, ["literal", [1, 0.2]]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., tunnels"
+ }
+ },
+ {
+ "id": "tunnel-minor",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsl(0, 2%, 22%)", "hsla(0, 0%, 80%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ }
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 13, "round"],
+ "line-join": ["step", ["zoom"], "miter", 13, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "tunnel"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-minor-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-major-link",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsla(30, 100%, 80%, 0.8)", "hsla(50, 78%, 80%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ }
+ },
+ {
+ "id": "tunnel-street",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsl(0, 2%, 22%)", "hsla(0, 0%, 80%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ }
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ },
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "tunnel-street-low",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "tunnel-secondary-tertiary",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ }
+ },
+ {
+ "id": "tunnel-primary",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["==", ["get", "structure"], "tunnel"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ }
+ },
+ {
+ "id": "tunnel-motorway-trunk",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "tunnel"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": ["match", ["get", "class"], "motorway", "hsla(30, 100%, 80%, 0.8)", "hsla(50, 78%, 80%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, tunnels"
+ }
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., surface"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "path"],
+ ["step", ["zoom"], ["!", ["match", ["get", "type"], ["steps", "sidewalk", "crossing"], true, false]], 16, ["!=", ["get", "type"], "steps"]],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-path",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 13, 0.5, 14, 1, 15, 1, 18, 4],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [4, 0.3]], 15, ["literal", [1.75, 0.3]], 16, ["literal", [1, 0.3]], 17, ["literal", [1, 0.25]]]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 14,
+ "layout": {
+ "line-join": "round"
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., surface"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "type"], "steps"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-steps",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 1, 16, 1.6, 18, 6],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.75, 1]], 16, ["literal", [1, 0.75]], 17, ["literal", [0.3, 0.3]]]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., surface"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "pedestrian"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["case", ["has", "layer"], [">=", ["get", "layer"], 0], true],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-pedestrian",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 18, 12],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.5, 0.4]], 16, ["literal", [1, 0.2]]]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": ["match", ["get", "class"], "track", "hsla(40, 95%, 90%, 0.8)", "hsla(0, 1%, 10%, 0.7)"],
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 14,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-street-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 11,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-secondary-tertiary-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 9,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "primary"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-primary-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-major-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 3,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ 5,
+ ["all", ["match", ["get", "class"], ["motorway", "trunk"], true, false], ["match", ["get", "structure"], ["none", "ford"], true, false]]
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-motorway-trunk-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0, 3.5, 1, 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 13, "round"],
+ "line-join": ["step", ["zoom"], "miter", 13, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-minor-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 13, "round"],
+ "line-join": ["step", ["zoom"], "miter", 13, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-major-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsla(30, 100%, 70%, 0.8)", "hsla(50, 89%, 70%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-street",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsl(0, 2%, 22%)", "hsla(0, 0%, 80%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 11,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-street-low",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 8,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-secondary-tertiary",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 6,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "primary"],
+ ["match", ["get", "structure"], ["none", "ford"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-primary",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 3,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 13, "round"],
+ "line-join": ["step", ["zoom"], "miter", 13, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, surface"
+ },
+ "filter": [
+ "all",
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ 5,
+ ["all", ["match", ["get", "class"], ["motorway", "trunk"], true, false], ["match", ["get", "structure"], ["none", "ford"], true, false]]
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "road-motorway-trunk",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], "motorway", "hsla(30, 88%, 64%, 0.8)", "trunk", "hsla(50, 81%, 54%, 0.8)", "hsl(0, 0%, 22%)"],
+ 9,
+ ["match", ["get", "class"], "motorway", "hsla(30, 100%, 70%, 0.8)", "hsla(50, 89%, 70%, 0.8)"]
+ ],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0, 3.5, 1, 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 14,
+ "layout": {},
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., barriers-bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["==", ["get", "class"], "path"],
+ ["!=", ["get", "type"], "steps"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-path",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 1, 18, 4],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [4, 0.3]], 15, ["literal", [1.75, 0.3]], 16, ["literal", [1, 0.3]], 17, ["literal", [1, 0.25]]]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "bridge-steps",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": ["all", ["==", ["get", "type"], "steps"], ["==", ["get", "structure"], "bridge"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 15, 1, 16, 1.6, 18, 6],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.75, 1]], 16, ["literal", [1, 0.75]], 17, ["literal", [0.3, 0.3]]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., barriers-bridges"
+ }
+ },
+ {
+ "id": "bridge-pedestrian",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["==", ["get", "class"], "pedestrian"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.5, 18, 12],
+ "line-color": "hsla(40, 95%, 90%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 17, 1, 18, 0],
+ "line-dasharray": ["step", ["zoom"], ["literal", [1, 0]], 15, ["literal", [1.5, 0.4]], 16, ["literal", [1, 0.2]]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., barriers-bridges"
+ }
+ },
+ {
+ "id": "bridge-minor-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": ["match", ["get", "class"], "track", "hsla(40, 95%, 90%, 0.8)", "hsla(0, 1%, 10%, 0.7)"],
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "id": "bridge-street-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": ["match", ["get", "class"], "track", "hsla(40, 95%, 90%, 0.8)", "hsla(0, 1%, 10%, 0.7)"],
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "bridge"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-minor-link-case",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "bridge-secondary-tertiary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "id": "bridge-primary-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 9,
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 10%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "id": "bridge-major-link-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "id": "bridge-motorway-trunk-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["track"], true, "service", ["step", ["zoom"], false, 14, true], false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-minor",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 18, 10, 22, 100],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": "round"
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["match", ["get", "class"], ["primary_link", "secondary_link", "tertiary_link"], true, false],
+ ["==", ["get", "structure"], "bridge"],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-minor-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.4, 18, 18, 22, 180],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-cap": "round"
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-major-link",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsla(30, 100%, 70%, 0.8)", "hsla(50, 89%, 70%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-street",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "street_limited", "hsl(0, 2%, 22%)", "hsla(0, 0%, 80%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"],
+ "line-join": ["step", ["zoom"], "miter", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-street-low",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.5, 18, 20, 22, 200],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-secondary-tertiary",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0, 18, 26, 22, 260],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": ["all", ["==", ["get", "structure"], "bridge"], ["==", ["get", "class"], "primary"], ["==", ["geometry-type"], "LineString"]],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-primary",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 28, 22, 280],
+ "line-color": "hsla(0, 0%, 80%, 0.8)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 0.3, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": "round"
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["<=", ["get", "layer"], 1],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-motorway-trunk",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": ["match", ["get", "class"], "motorway", "hsla(30, 100%, 70%, 0.8)", "hsla(50, 89%, 70%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "bridge-major-link-2-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 0.8, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "id": "bridge-motorway-trunk-2-case",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 22, 2],
+ "line-color": "hsla(0, 1%, 22%, 0.7)",
+ "line-gap-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ }
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "line-cap": "round"
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway_link", "trunk_link"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-major-link-2",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 12, 0.8, 18, 20, 22, 200],
+ "line-color": ["match", ["get", "class"], "motorway_link", "hsla(30, 100%, 70%, 0.8)", "hsla(50, 89%, 70%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "line-cap": ["step", ["zoom"], "butt", 14, "round"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, bridges"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "structure"], "bridge"],
+ [">=", ["get", "layer"], 2],
+ ["match", ["get", "class"], ["motorway", "trunk"], true, false],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "bridge-motorway-trunk-2",
+ "paint": {
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 3, 0.8, 18, 30, 22, 300],
+ "line-color": ["match", ["get", "class"], "motorway", "hsla(30, 100%, 70%, 0.8)", "hsla(50, 89%, 70%, 0.8)"],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 13, 1, 15, 0]
+ },
+ "source-layer": "road"
+ },
+ {
+ "id": "aerialway",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": ["==", ["get", "class"], "aerialway"],
+ "paint": {
+ "line-color": "hsl(204, 100%, 80%)",
+ "line-width": ["interpolate", ["exponential", 1.5], ["zoom"], 14, 1, 20, 2],
+ "line-dasharray": [4, 1]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "transit",
+ "mapbox:group": "Transit, elevated"
+ }
+ },
+ {
+ "id": "admin-1-boundary-bg",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "admin",
+ "minzoom": 7,
+ "filter": ["all", ["==", ["get", "admin_level"], 1], ["==", ["get", "maritime"], "false"], ["match", ["get", "worldview"], ["all", "CN"], true, false]],
+ "paint": {
+ "line-color": "hsl(260, 45%, 0%)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 3, 12, 6],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 7, 0, 8, 0.5],
+ "line-dasharray": [1, 0],
+ "line-blur": ["interpolate", ["linear"], ["zoom"], 3, 0, 12, 3]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "admin-boundaries",
+ "mapbox:group": "Administrative boundaries, admin"
+ }
+ },
+ {
+ "id": "admin-0-boundary-bg",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "admin",
+ "minzoom": 1,
+ "filter": ["all", ["==", ["get", "admin_level"], 0], ["==", ["get", "maritime"], "false"], ["match", ["get", "worldview"], ["all", "CN"], true, false]],
+ "paint": {
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 6, 12, 12],
+ "line-color": "hsl(260, 45%, 0%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 3, 0, 4, 0.5],
+ "line-blur": ["interpolate", ["linear"], ["zoom"], 3, 0, 12, 3]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "admin-boundaries",
+ "mapbox:group": "Administrative boundaries, admin"
+ }
+ },
+ {
+ "minzoom": 2,
+ "layout": {},
+ "metadata": {
+ "mapbox:featureComponent": "admin-boundaries",
+ "mapbox:group": "Administrative boundaries, admin"
+ },
+ "filter": ["all", ["==", ["get", "admin_level"], 1], ["==", ["get", "maritime"], "false"], ["match", ["get", "worldview"], ["all", "CN"], true, false]],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-1-boundary",
+ "paint": {
+ "line-dasharray": ["step", ["zoom"], ["literal", [2, 0]], 7, ["literal", [2, 2, 6, 2]]],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 0.3, 12, 1.5],
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 2, 0, 3, 1],
+ "line-color": "hsl(260, 15%, 85%)"
+ },
+ "source-layer": "admin"
+ },
+ {
+ "minzoom": 1,
+ "layout": {},
+ "metadata": {
+ "mapbox:featureComponent": "admin-boundaries",
+ "mapbox:group": "Administrative boundaries, admin"
+ },
+ "filter": [
+ "all",
+ ["==", ["get", "admin_level"], 0],
+ ["==", ["get", "disputed"], "false"],
+ ["==", ["get", "maritime"], "false"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false]
+ ],
+ "type": "line",
+ "source": "composite",
+ "id": "admin-0-boundary",
+ "paint": {
+ "line-color": "hsl(260, 15%, 80%)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 0.75, 12, 3],
+ "line-dasharray": ["step", ["zoom"], ["literal", [2, 0]], 7, ["literal", [2, 2, 6, 2]]]
+ },
+ "source-layer": "admin"
+ },
+ {
+ "id": "admin-0-boundary-disputed",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "admin",
+ "minzoom": 1,
+ "filter": [
+ "all",
+ ["==", ["get", "disputed"], "true"],
+ ["==", ["get", "admin_level"], 0],
+ ["==", ["get", "maritime"], "false"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(260, 15%, 80%)",
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 0.75, 12, 3],
+ "line-dasharray": ["step", ["zoom"], ["literal", [3, 2, 5]], 7, ["literal", [2, 1.5]]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "admin-boundaries",
+ "mapbox:group": "Administrative boundaries, admin"
+ }
+ },
+ {
+ "minzoom": 10,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 10,
+ [
+ "match",
+ ["get", "class"],
+ ["motorway", "trunk", "primary", "secondary", "tertiary"],
+ 11,
+ ["motorway_link", "trunk_link", "primary_link", "secondary_link", "tertiary_link", "street", "street_limited"],
+ 9.9,
+ 7.15
+ ],
+ 18,
+ [
+ "match",
+ ["get", "class"],
+ ["motorway", "trunk", "primary", "secondary", "tertiary"],
+ 17.6,
+ ["motorway_link", "trunk_link", "primary_link", "secondary_link", "tertiary_link", "street", "street_limited"],
+ 15.400000000000002,
+ 14.3
+ ]
+ ],
+ "text-max-angle": 30,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name"]],
+ "text-letter-spacing": 0.01
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, road-labels"
+ },
+ "filter": [
+ "all",
+ ["has", "name"],
+ [
+ "step",
+ ["zoom"],
+ ["match", ["get", "class"], ["motorway", "trunk", "primary", "secondary", "tertiary"], true, false],
+ 12,
+ ["match", ["get", "class"], ["motorway", "trunk", "primary", "secondary", "tertiary", "street", "street_limited"], true, false],
+ 15,
+ ["match", ["get", "class"], ["path", "pedestrian", "golf", "ferry", "aerialway"], false, true]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 100%)",
+ "text-halo-color": ["match", ["get", "class"], ["motorway", "trunk"], "hsla(0, 5%, 0%, 0.75)", "hsl(0, 5%, 0%)"],
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 15,
+ "layout": {
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "icon-image": "intersection",
+ "icon-text-fit": "both",
+ "icon-text-fit-padding": [1, 2, 1, 2],
+ "text-size": ["interpolate", ["exponential", 1.2], ["zoom"], 15, 9, 18, 12],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, road-labels"
+ },
+ "filter": ["all", ["==", ["get", "class"], "intersection"], ["has", "name"]],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-intersection",
+ "paint": {
+ "text-color": "hsl(230, 36%, 64%)"
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 6,
+ "layout": {
+ "text-size": 9,
+ "icon-image": [
+ "case",
+ ["has", "shield_beta"],
+ [
+ "coalesce",
+ ["image", ["concat", ["get", "shield_beta"], "-", ["to-string", ["get", "reflen"]]]],
+ ["image", ["concat", "default-", ["to-string", ["get", "reflen"]]]]
+ ],
+ ["concat", ["get", "shield"], "-", ["to-string", ["get", "reflen"]]]
+ ],
+ "icon-rotation-alignment": "viewport",
+ "text-max-angle": 38,
+ "symbol-spacing": ["interpolate", ["linear"], ["zoom"], 11, 400, 14, 600],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "symbol-placement": ["step", ["zoom"], "point", 11, "line"],
+ "text-rotation-alignment": "viewport",
+ "text-field": ["get", "ref"],
+ "text-letter-spacing": 0.05
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, road-labels"
+ },
+ "filter": [
+ "all",
+ ["has", "reflen"],
+ ["<=", ["get", "reflen"], 6],
+ ["match", ["get", "class"], ["pedestrian", "service"], false, true],
+ [
+ "step",
+ ["zoom"],
+ ["==", ["geometry-type"], "Point"],
+ 11,
+ [">", ["get", "len"], 5000],
+ 12,
+ [">", ["get", "len"], 2500],
+ 13,
+ [">", ["get", "len"], 1000],
+ 14,
+ true
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-number-shield",
+ "paint": {
+ "text-color": [
+ "case",
+ [
+ "all",
+ ["has", "shield_text_color_beta"],
+ ["to-boolean", ["coalesce", ["image", ["concat", ["get", "shield_beta"], "-", ["to-string", ["get", "reflen"]]]], ""]]
+ ],
+ [
+ "match",
+ ["get", "shield_text_color_beta"],
+ "white",
+ "hsl(0, 0%, 100%)",
+ "yellow",
+ "hsl(50, 63%, 70%)",
+ "orange",
+ "hsl(25, 63%, 75%)",
+ "blue",
+ "hsl(230, 36%, 44%)",
+ "red",
+ "hsl(0, 54%, 59%)",
+ "green",
+ "hsl(140, 46%, 37%)",
+ "hsl(230, 11%, 13%)"
+ ],
+ [
+ "match",
+ ["get", "shield_text_color"],
+ "white",
+ "hsl(0, 0%, 100%)",
+ "yellow",
+ "hsl(50, 63%, 70%)",
+ "orange",
+ "hsl(25, 63%, 75%)",
+ "blue",
+ "hsl(230, 36%, 44%)",
+ "red",
+ "hsl(0, 54%, 59%)",
+ "green",
+ "hsl(140, 46%, 37%)",
+ "hsl(230, 11%, 13%)"
+ ]
+ ]
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 14,
+ "layout": {
+ "text-field": ["get", "ref"],
+ "text-size": 9,
+ "icon-image": ["concat", "motorway-exit-", ["to-string", ["get", "reflen"]]],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "road-network",
+ "mapbox:group": "Road network, road-labels"
+ },
+ "filter": ["all", ["has", "reflen"], ["<=", ["get", "reflen"], 9]],
+ "type": "symbol",
+ "source": "composite",
+ "id": "road-exit-shield",
+ "paint": {
+ "text-color": "hsl(0, 0%, 100%)",
+ "text-translate": [0, 0]
+ },
+ "source-layer": "motorway_junction"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 10,
+ ["match", ["get", "class"], "pedestrian", 9.9, 7.15],
+ 18,
+ ["match", ["get", "class"], "pedestrian", 15.400000000000002, 14.3]
+ ],
+ "text-max-angle": 30,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": 0.01
+ },
+ "metadata": {
+ "mapbox:featureComponent": "walking-cycling",
+ "mapbox:group": "Walking, cycling, etc., walking-cycling-labels"
+ },
+ "filter": [
+ "all",
+ ["case", ["has", "layer"], [">=", ["get", "layer"], 0], true],
+ ["step", ["zoom"], ["match", ["get", "class"], ["pedestrian"], true, false], 15, ["match", ["get", "class"], ["path", "pedestrian"], true, false]]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "path-pedestrian-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 100%)",
+ "text-halo-color": "hsl(0, 5%, 0%)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 15,
+ "layout": {
+ "text-size": ["interpolate", ["linear"], ["zoom"], 10, 7.15, 18, 14.3],
+ "text-max-angle": 30,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hant"], ["get", "name"]],
+ "text-letter-spacing": 0.01
+ },
+ "metadata": {
+ "mapbox:featureComponent": "transit",
+ "mapbox:group": "Transit, ferry-aerialway-labels"
+ },
+ "filter": ["match", ["get", "class"], "aerialway", true, false],
+ "type": "symbol",
+ "source": "composite",
+ "id": "ferry-aerialway-label",
+ "paint": {
+ "text-color": ["match", ["get", "class"], "ferry", "hsl(240, 68%, 94%)", "hsl(204, 100%, 80%)"],
+ "text-halo-color": ["match", ["get", "class"], "ferry", "hsl(240, 100%, 62%)", "hsl(0, 0%, 0%)"],
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "road"
+ },
+ {
+ "minzoom": 13,
+ "layout": {
+ "text-font": ["DIN Pro Italic", "Arial Unicode MS Regular"],
+ "text-max-angle": 30,
+ "symbol-spacing": ["interpolate", ["linear", 1], ["zoom"], 15, 250, 17, 400],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 18, 18],
+ "symbol-placement": "line",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "natural-features",
+ "mapbox:group": "Natural features, natural-labels"
+ },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["canal", "river", "stream", "disputed_canal", "disputed_river", "disputed_stream"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "waterway-label",
+ "paint": {
+ "text-color": "hsl(240, 68%, 90%)",
+ "text-halo-color": "hsla(0, 0%, 0%, 0.5)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 4,
+ "layout": {
+ "text-size": ["step", ["zoom"], ["step", ["get", "sizerank"], 18, 5, 12], 17, ["step", ["get", "sizerank"], 18, 13, 12]],
+ "text-max-angle": 30,
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "symbol-placement": "line-center",
+ "text-pitch-alignment": "viewport"
+ },
+ "metadata": {
+ "mapbox:featureComponent": "natural-features",
+ "mapbox:group": "Natural features, natural-labels"
+ },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["glacier", "landform", "disputed_glacier", "disputed_landform"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["<=", ["get", "filterrank"], 2],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "natural-line-label",
+ "paint": {
+ "text-halo-width": 0.5,
+ "text-halo-color": "hsl(0, 0%, 0%)",
+ "text-halo-blur": 0.5,
+ "text-color": "hsl(0, 0%, 100%)"
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 4,
+ "layout": {
+ "text-size": ["step", ["zoom"], ["step", ["get", "sizerank"], 18, 5, 12], 17, ["step", ["get", "sizerank"], 18, 13, 12]],
+ "icon-image": ["get", "maki"],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "text-offset": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 5, ["literal", [0, 0.55]]],
+ 17,
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 13, ["literal", [0, 0.6000000000000001]]]
+ ],
+ "text-anchor": ["step", ["zoom"], ["step", ["get", "sizerank"], "center", 5, "top"], 17, ["step", ["get", "sizerank"], "center", 13, "top"]],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "natural-features",
+ "mapbox:group": "Natural features, natural-labels"
+ },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ [
+ "dock",
+ "glacier",
+ "landform",
+ "water_feature",
+ "wetland",
+ "disputed_dock",
+ "disputed_glacier",
+ "disputed_landform",
+ "disputed_water_feature",
+ "disputed_wetland"
+ ],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["<=", ["get", "filterrank"], 2],
+ ["==", ["geometry-type"], "Point"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "natural-point-label",
+ "paint": {
+ "icon-opacity": ["step", ["zoom"], ["step", ["get", "sizerank"], 0, 5, 1], 17, ["step", ["get", "sizerank"], 0, 13, 1]],
+ "text-halo-color": "hsl(0, 0%, 0%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5,
+ "text-color": "hsl(0, 0%, 100%)"
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 1,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 0,
+ ["*", ["-", 16, ["sqrt", ["get", "sizerank"]]], 1],
+ 22,
+ ["*", ["-", 22, ["sqrt", ["get", "sizerank"]]], 1]
+ ],
+ "text-max-angle": 30,
+ "text-letter-spacing": ["match", ["get", "class"], "ocean", 0.25, ["sea", "bay"], 0.15, 0],
+ "text-font": ["DIN Pro Italic", "Arial Unicode MS Regular"],
+ "symbol-placement": "line-center",
+ "text-pitch-alignment": "viewport",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "natural-features",
+ "mapbox:group": "Natural features, natural-labels"
+ },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["bay", "ocean", "reservoir", "sea", "water", "disputed_bay", "disputed_ocean", "disputed_reservoir", "disputed_sea", "disputed_water"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["==", ["geometry-type"], "LineString"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "water-line-label",
+ "paint": {
+ "text-color": ["match", ["get", "class"], ["bay", "ocean", "sea"], "hsl(240, 96%, 82%)", "hsl(240, 68%, 90%)"],
+ "text-halo-color": "hsla(0, 0%, 0%, 0.5)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 1,
+ "layout": {
+ "text-line-height": 1.3,
+ "text-size": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 0,
+ ["*", ["-", 16, ["sqrt", ["get", "sizerank"]]], 1],
+ 22,
+ ["*", ["-", 22, ["sqrt", ["get", "sizerank"]]], 1]
+ ],
+ "text-font": ["DIN Pro Italic", "Arial Unicode MS Regular"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": ["match", ["get", "class"], "ocean", 0.25, ["bay", "sea"], 0.15, 0.01],
+ "text-max-width": ["match", ["get", "class"], "ocean", 4, "sea", 5, ["bay", "water"], 7, 10]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "natural-features",
+ "mapbox:group": "Natural features, natural-labels"
+ },
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["bay", "ocean", "reservoir", "sea", "water", "disputed_bay", "disputed_ocean", "disputed_reservoir", "disputed_sea", "disputed_water"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["==", ["geometry-type"], "Point"]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "water-point-label",
+ "paint": {
+ "text-color": ["match", ["get", "class"], ["bay", "ocean", "sea"], "hsl(240, 96%, 82%)", "hsl(240, 68%, 90%)"],
+ "text-halo-color": "hsla(0, 0%, 0%, 0.5)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "natural_label"
+ },
+ {
+ "minzoom": 6,
+ "layout": {
+ "text-size": ["step", ["zoom"], ["step", ["get", "sizerank"], 18, 5, 12], 17, ["step", ["get", "sizerank"], 18, 13, 12]],
+ "icon-image": ["case", ["has", "maki_beta"], ["coalesce", ["image", ["get", "maki_beta"]], ["image", ["get", "maki"]]], ["image", ["get", "maki"]]],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "text-offset": [
+ "step",
+ ["zoom"],
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 5, ["literal", [0, 0.8]]],
+ 17,
+ ["step", ["get", "sizerank"], ["literal", [0, 0]], 13, ["literal", [0, 0.8]]]
+ ],
+ "text-anchor": ["step", ["zoom"], ["step", ["get", "sizerank"], "center", 5, "top"], 17, ["step", ["get", "sizerank"], "center", 13, "top"]],
+ "text-field": ["get", "name_zh-Hans"]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "point-of-interest-labels",
+ "mapbox:group": "Point of interest labels, poi-labels"
+ },
+ "filter": ["<=", ["get", "filterrank"], ["+", ["step", ["zoom"], 0, 16, 1, 17, 2], 3]],
+ "type": "symbol",
+ "source": "composite",
+ "id": "poi-label",
+ "paint": {
+ "icon-opacity": ["step", ["zoom"], ["step", ["get", "sizerank"], 0, 5, 1], 17, ["step", ["get", "sizerank"], 0, 13, 1]],
+ "text-halo-color": "hsl(0, 0%, 0%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5,
+ "text-color": [
+ "match",
+ ["get", "class"],
+ "park_like",
+ "hsl(110, 100%, 85%)",
+ "education",
+ "hsl(30, 100%, 85%)",
+ "medical",
+ "hsl(0, 100%, 85%)",
+ "hsl(0, 0%, 100%)"
+ ]
+ },
+ "source-layer": "poi_label"
+ },
+ {
+ "minzoom": 12,
+ "layout": {
+ "text-size": 12,
+ "icon-image": ["get", "network"],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "text-justify": ["match", ["get", "stop_type"], "entrance", "left", "center"],
+ "text-offset": ["match", ["get", "stop_type"], "entrance", ["literal", [1, 0]], ["literal", [0, 0.8]]],
+ "text-anchor": ["match", ["get", "stop_type"], "entrance", "left", "top"],
+ "text-field": [
+ "step",
+ ["zoom"],
+ "",
+ 13,
+ ["match", ["get", "mode"], ["rail", "metro_rail"], ["coalesce", ["get", "name_zh-Hant"], ["get", "name"]], ""],
+ 14,
+ ["match", ["get", "mode"], ["bus", "bicycle"], "", ["coalesce", ["get", "name_zh-Hant"], ["get", "name"]]],
+ 18,
+ ["coalesce", ["get", "name_zh-Hant"], ["get", "name"]]
+ ],
+ "text-letter-spacing": 0.01,
+ "text-max-width": ["match", ["get", "stop_type"], "entrance", 15, 9]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "transit",
+ "mapbox:group": "Transit, transit-labels"
+ },
+ "filter": [
+ "step",
+ ["zoom"],
+ [
+ "all",
+ ["<=", ["get", "filterrank"], 4],
+ ["match", ["get", "mode"], "rail", true, "metro_rail", true, false],
+ ["!=", ["get", "stop_type"], "entrance"]
+ ],
+ 14,
+ ["all", ["match", ["get", "mode"], "rail", true, "metro_rail", true, false], ["!=", ["get", "stop_type"], "entrance"]],
+ 15,
+ ["all", ["match", ["get", "mode"], "rail", true, "metro_rail", true, "light_rail", true, false], ["!=", ["get", "stop_type"], "entrance"]],
+ 16,
+ ["all", ["match", ["get", "mode"], "ferry", false, "bus", false, true], ["!=", ["get", "stop_type"], "entrance"]],
+ 17,
+ ["all", ["match", ["get", "mode"], "ferry", false, true], ["!=", ["get", "stop_type"], "entrance"]],
+ 19,
+ ["match", ["get", "mode"], "ferry", false, true]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "transit-label",
+ "paint": {
+ "text-halo-color": "hsl(0, 0%, 0%)",
+ "text-color": "hsl(204, 100%, 80%)",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 0.5
+ },
+ "source-layer": "transit_stop_label"
+ },
+ {
+ "minzoom": 8,
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": ["step", ["get", "sizerank"], 18, 9, 12],
+ "icon-image": ["get", "maki"],
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "text-offset": [0, 0.8],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": [
+ "step",
+ ["get", "sizerank"],
+ [
+ "case",
+ ["has", "ref"],
+ ["concat", ["get", "ref"], " -\n", ["coalesce", ["get", "name_zh-Hant"], ["get", "name"]]],
+ ["coalesce", ["get", "name_zh-Hant"], ["get", "name"]]
+ ],
+ 15,
+ ["get", "ref"]
+ ],
+ "text-letter-spacing": 0.01,
+ "text-max-width": 9
+ },
+ "metadata": {
+ "mapbox:featureComponent": "transit",
+ "mapbox:group": "Transit, transit-labels"
+ },
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["military", "civil", "disputed_military", "disputed_civil"],
+ ["match", ["get", "worldview"], ["all", "US"], true, false],
+ false
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "airport-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 100%)",
+ "text-halo-color": "hsl(0, 0%, 0%)",
+ "text-halo-width": 1
+ },
+ "source-layer": "airport_label"
+ },
+ {
+ "minzoom": 10,
+ "layout": {
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-transform": "uppercase",
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-letter-spacing": ["match", ["get", "type"], "suburb", 0.15, 0.05],
+ "text-max-width": 7,
+ "text-padding": 3,
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.5, 0, 1, 1],
+ ["zoom"],
+ 11,
+ ["match", ["get", "type"], "suburb", 12.100000000000001, 11.55],
+ 15,
+ ["match", ["get", "type"], "suburb", 16.5, 15.400000000000002]
+ ]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "place-labels",
+ "mapbox:group": "Place labels, place-labels"
+ },
+ "maxzoom": 15,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["get", "class"],
+ ["settlement_subdivision", "disputed_settlement_subdivision"],
+ ["match", ["get", "worldview"], ["all", "CN"], true, false],
+ false
+ ],
+ ["<=", ["get", "filterrank"], 4]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "settlement-subdivision-label",
+ "paint": {
+ "text-halo-color": "hsla(0, 5%, 0%, 0.75)",
+ "text-halo-width": 1,
+ "text-color": "hsl(0, 0%, 100%)",
+ "text-halo-blur": 0.5
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 2,
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.2, 0, 0.9, 1],
+ ["zoom"],
+ 3,
+ ["step", ["get", "symbolrank"], 12.100000000000001, 9, 11],
+ 6,
+ ["step", ["get", "symbolrank"], 15.400000000000002, 9, 13.200000000000001, 12, 11],
+ 8,
+ ["step", ["get", "symbolrank"], 17.6, 9, 15.400000000000002, 12, 13.200000000000001, 15, 11],
+ 13,
+ ["step", ["get", "symbolrank"], 24.200000000000003, 9, 22, 12, 17.6, 15, 15.400000000000002]
+ ],
+ "text-radial-offset": ["step", ["zoom"], ["match", ["get", "capital"], 2, 0.6, 0.55], 8, 0],
+ "symbol-sort-key": ["get", "symbolrank"],
+ "icon-image": [
+ "step",
+ ["zoom"],
+ ["case", ["==", ["get", "capital"], 2], "border-dot-13", ["step", ["get", "symbolrank"], "dot-11", 9, "dot-10", 11, "dot-9"]],
+ 8,
+ ""
+ ],
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-justify": "auto",
+ "text-anchor": ["step", ["zoom"], ["get", "text_anchor"], 8, "center"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-max-width": 7
+ },
+ "metadata": {
+ "mapbox:featureComponent": "place-labels",
+ "mapbox:group": "Place labels, place-labels"
+ },
+ "maxzoom": 13,
+ "filter": [
+ "all",
+ ["<=", ["get", "filterrank"], 3],
+ ["match", ["get", "class"], ["settlement", "disputed_settlement"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ [
+ "step",
+ ["zoom"],
+ [">", ["get", "symbolrank"], 6],
+ 4,
+ [">=", ["get", "symbolrank"], 7],
+ 6,
+ [">=", ["get", "symbolrank"], 8],
+ 7,
+ [">=", ["get", "symbolrank"], 10],
+ 10,
+ [">=", ["get", "symbolrank"], 11],
+ 11,
+ [">=", ["get", "symbolrank"], 13],
+ 12,
+ [">=", ["get", "symbolrank"], 15]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "settlement-minor-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 95%)",
+ "text-halo-color": "hsl(0, 5%, 0%)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 2,
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.2, 0, 0.9, 1],
+ ["zoom"],
+ 3,
+ ["step", ["get", "symbolrank"], 14.3, 6, 12.100000000000001],
+ 6,
+ ["step", ["get", "symbolrank"], 19.8, 6, 17.6, 7, 15.400000000000002],
+ 8,
+ ["step", ["get", "symbolrank"], 22, 9, 17.6, 10, 15.400000000000002],
+ 15,
+ ["step", ["get", "symbolrank"], 26.400000000000002, 9, 22, 12, 17.6, 15, 15.400000000000002]
+ ],
+ "text-radial-offset": ["step", ["zoom"], ["match", ["get", "capital"], 2, 0.6, 0.55], 8, 0],
+ "symbol-sort-key": ["get", "symbolrank"],
+ "icon-image": [
+ "step",
+ ["zoom"],
+ ["case", ["==", ["get", "capital"], 2], "border-dot-13", ["step", ["get", "symbolrank"], "dot-11", 9, "dot-10", 11, "dot-9"]],
+ 8,
+ ""
+ ],
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-justify": [
+ "step",
+ ["zoom"],
+ ["match", ["get", "text_anchor"], ["left", "bottom-left", "top-left"], "left", ["right", "bottom-right", "top-right"], "right", "center"],
+ 8,
+ "center"
+ ],
+ "text-anchor": ["step", ["zoom"], ["get", "text_anchor"], 8, "center"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-max-width": 7
+ },
+ "metadata": {
+ "mapbox:featureComponent": "place-labels",
+ "mapbox:group": "Place labels, place-labels"
+ },
+ "maxzoom": 15,
+ "filter": [
+ "all",
+ ["<=", ["get", "filterrank"], 3],
+ ["match", ["get", "class"], ["settlement", "disputed_settlement"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ [
+ "step",
+ ["zoom"],
+ false,
+ 2,
+ ["<=", ["get", "symbolrank"], 6],
+ 4,
+ ["<", ["get", "symbolrank"], 7],
+ 6,
+ ["<", ["get", "symbolrank"], 8],
+ 7,
+ ["<", ["get", "symbolrank"], 10],
+ 10,
+ ["<", ["get", "symbolrank"], 11],
+ 11,
+ ["<", ["get", "symbolrank"], 13],
+ 12,
+ ["<", ["get", "symbolrank"], 15],
+ 13,
+ [">=", ["get", "symbolrank"], 11],
+ 14,
+ [">=", ["get", "symbolrank"], 15]
+ ]
+ ],
+ "type": "symbol",
+ "source": "composite",
+ "id": "settlement-major-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 95%)",
+ "text-halo-color": "hsl(0, 5%, 0%)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 3,
+ "layout": {
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.85, 0.7, 0.65, 1],
+ ["zoom"],
+ 4,
+ ["step", ["get", "symbolrank"], 9.9, 6, 8.8, 7, 7.700000000000001],
+ 9,
+ ["step", ["get", "symbolrank"], 23.1, 6, 17.6, 7, 15.400000000000002]
+ ],
+ "text-transform": "uppercase",
+ "text-font": ["DIN Pro Bold", "Arial Unicode MS Bold"],
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-letter-spacing": 0.15,
+ "text-max-width": 6
+ },
+ "metadata": {
+ "mapbox:featureComponent": "place-labels",
+ "mapbox:group": "Place labels, place-labels"
+ },
+ "maxzoom": 9,
+ "filter": ["match", ["get", "class"], ["state", "disputed_state"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ "type": "symbol",
+ "source": "composite",
+ "id": "state-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 95%)",
+ "text-halo-color": "hsl(0, 5%, 0%)",
+ "text-halo-width": 1,
+ "text-opacity": 0.5
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 1,
+ "layout": {
+ "icon-image": "",
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-line-height": 1.1,
+ "text-max-width": 6,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-radial-offset": ["step", ["zoom"], 0.6, 8, 0],
+ "text-justify": [
+ "step",
+ ["zoom"],
+ ["match", ["get", "text_anchor"], ["left", "bottom-left", "top-left"], "left", ["right", "bottom-right", "top-right"], "right", "center"],
+ 7,
+ "auto"
+ ],
+ "text-size": [
+ "interpolate",
+ ["cubic-bezier", 0.2, 0, 0.7, 1],
+ ["zoom"],
+ 1,
+ ["step", ["get", "symbolrank"], 12.100000000000001, 4, 9.9, 5, 8.8],
+ 9,
+ ["step", ["get", "symbolrank"], 24.200000000000003, 4, 20.900000000000002, 5, 18.700000000000003]
+ ]
+ },
+ "metadata": {
+ "mapbox:featureComponent": "place-labels",
+ "mapbox:group": "Place labels, place-labels"
+ },
+ "maxzoom": 10,
+ "filter": ["match", ["get", "class"], ["country", "disputed_country"], ["match", ["get", "worldview"], ["all", "CN"], true, false], false],
+ "type": "symbol",
+ "source": "composite",
+ "id": "country-label",
+ "paint": {
+ "icon-opacity": ["step", ["zoom"], ["case", ["has", "text_anchor"], 1, 0], 7, 0],
+ "text-color": "hsl(0, 0%, 95%)",
+ "text-halo-color": ["interpolate", ["linear"], ["zoom"], 2, "hsla(0, 5%, 0%, 0.75)", 3, "hsl(0, 5%, 0%)"],
+ "text-halo-width": 1.25
+ },
+ "source-layer": "place_label"
+ },
+ {
+ "minzoom": 0.75,
+ "layout": {
+ "text-field": ["coalesce", ["get", "name_zh-Hans"], ["get", "name"]],
+ "text-line-height": 1.1,
+ "text-max-width": 6,
+ "text-font": ["DIN Pro Medium", "Arial Unicode MS Regular"],
+ "text-size": ["interpolate", ["exponential", 0.5], ["zoom"], 0, 11, 2.5, 16.5],
+ "text-transform": "uppercase",
+ "text-letter-spacing": 0.05
+ },
+ "metadata": {
+ "mapbox:featureComponent": "place-labels",
+ "mapbox:group": "Place labels, place-labels"
+ },
+ "maxzoom": 3,
+ "filter": ["==", ["get", "class"], "continent"],
+ "type": "symbol",
+ "source": "composite",
+ "id": "continent-label",
+ "paint": {
+ "text-color": "hsl(0, 0%, 95%)",
+ "text-halo-color": ["interpolate", ["linear"], ["zoom"], 0, "hsla(0, 5%, 0%, 0.75)", 3, "hsl(0, 5%, 0%)"],
+ "text-halo-width": 1.5,
+ "text-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.8, 1.5, 0.5, 2.5, 0]
+ },
+ "source-layer": "natural_label"
+ }
+ ],
+ "created": "2022-11-11T09:30:10.170Z",
+ "modified": "2022-11-11T09:59:36.852Z",
+ "id": "clacasy19000014qrnsjm7yk6",
+ "owner": "vothing",
+ "visibility": "private",
+ "protected": false,
+ "draft": false
+}
diff --git a/reg-js-sdjk.reg b/reg-js-sdjk.reg
new file mode 100644
index 0000000..e6d2342
--- /dev/null
+++ b/reg-js-sdjk.reg
@@ -0,0 +1,8 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_CLASSES_ROOT\sdjk]
+"URL Protocol"=""
+@="URL:sdjk"
+
+[HKEY_CLASSES_ROOT\sdjk\Shell\Open\command]
+@="E:\\startscg.bat"
\ No newline at end of file
diff --git a/reg-js-sgfa.reg b/reg-js-sgfa.reg
new file mode 100644
index 0000000..02c8d3a
--- /dev/null
+++ b/reg-js-sgfa.reg
@@ -0,0 +1,8 @@
+Windows Registry Editor Version 5.00
+
+[HKEY_CLASSES_ROOT\sgfa]
+@="URL:sgfa"
+"URL Protocol"=""
+
+[HKEY_CLASSES_ROOT\sgfa\Shell\Open\command]
+@="C:\\Users\\fangtc\\AppData\\Local\\uclient\\apps\\UG_3e623c98\\Launcher.exe UG_3e623c98"
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..0757d94
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,17 @@
+<!-- eslint-disable vue/no-textarea-mustache -->
+<!-- eslint-disable vue/html-self-closing -->
+<template>
+ <dashboard />
+</template>
+
+<script>
+
+export default {
+ name: "App",
+ components: {
+ dashboard: () => import("./Dashboard.vue")
+ },
+ computed: {
+ },
+};
+</script>
diff --git a/src/Dashboard.vue b/src/Dashboard.vue
new file mode 100644
index 0000000..5e6dc05
--- /dev/null
+++ b/src/Dashboard.vue
@@ -0,0 +1,188 @@
+<!--
+ * @Author: gjj Ganjj@probim.com.cn
+ * @Date: 2025-02-14 14:32:17
+ * @LastEditors: gjj Ganjj@probim.com.cn
+ * @LastEditTime: 2025-02-20 15:46:39
+ * @FilePath: \北京交通大学\src\Dashboard.vue
+-->
+<!-- eslint-disable vue/no-textarea-mustache -->
+<!-- eslint-disable vue/html-self-closing -->
+<template>
+ <main
+ v-loading="isAuthenticating || isLoadingPrjList"
+ id="appWrapper"
+ class="absolute top-[50%] left-[50%] -translate-x-[50%] w-screen h-screen -translate-y-[50%] font-pingfang text-white select-none"
+ :style="{
+ backgroundImage: `url(${backgroundImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: 'cover'
+ }"
+ >
+ <!--头部-->
+ <app-header class="absolute z-[100] top-0 left-0 right-0" :selected-id="currentProjectId" />
+
+
+
+ <!--全屏、切换地图-->
+ <!--<div class="absolute z-[50] top-20 left-4 flex space-x-3">
+ <fullscreen-button />
+ <switch-map mapType="gis" @changeMap="onChangeMap" />
+ </div>-->
+
+
+
+ <!--页面内容-->
+ <div class="content-wrapper px-[22px] py-[10px] absolute inset-0 top-[80px] flex gap-[20px]">
+ <div class="flex-1 min-w-0">
+ <!-- 左侧模块 -->
+ <div class="w-full h-full">
+ <project-view/>
+ </div>
+ </div>
+ <div class="flex-1 min-w-0">
+ <!-- 中间模块 -->
+ <div class="w-full h-full">
+ <equipment-view/>
+ </div>
+ </div>
+ <div class="w-[1080px]">
+ <!-- 右侧模块 -->
+ <div class="w-full h-full">
+ <Home/>
+ </div>
+ </div>
+ </div>
+
+
+ <!--multiverse渲染容器
+ <div id="renderDom" class="absolute z-[40] top-0 bottom-0 left-0 right-0 w-full h-full"></div>-->
+
+
+ </main>
+</template>
+
+<script>
+import Vue from "vue";
+import { mapGetters } from "vuex";
+import Header from "./components/Header.vue";
+import FullscreenButton from "./components/FullScreenButton.vue";
+import SwitchMap from "./components/SwitchMap.vue";
+import Home from "./views/Home.vue";
+import ProjectView from "./views/ProjectView.vue";
+import { sceneJSON } from "./sceneJSON.js";
+import { AppAPI } from "./api/app";
+import EquipmentView from "./views/EquipmentView.vue";
+import dayjs from "dayjs";
+import "dayjs/locale/zh-cn";
+import relativeTime from "dayjs/plugin/relativeTime";
+dayjs.locale("zh-cn");
+dayjs.extend(relativeTime);
+Vue.prototype.$dayjs = dayjs;
+
+import * as echarts from "echarts";
+Vue.prototype.$echarts = echarts;
+
+import { nanoid } from "nanoid";
+Vue.prototype.$nanoid = nanoid;
+
+export default {
+ name: "Dashboard",
+ components: {
+ "app-header": Header,
+ "fullscreen-button": FullscreenButton,
+ "switch-map": SwitchMap,
+ "Home": Home,
+ "project-view": ProjectView,
+ "equipment-view": EquipmentView
+ },
+ data() {
+ return {
+ backgroundImage: new URL('@/assets/images/backgrounds/screen.png', import.meta.url).href
+ };
+ },
+ computed: {
+ ...mapGetters("common", [])
+ },
+ watch: {
+ },
+ mounted() {
+ this.initMultiverse();
+ },
+ beforeDestroy() {
+ this.resetEngineRelated();
+ },
+ methods: {
+ //重置引擎相关的东西
+ resetEngineRelated() {
+ window.scene = window.underlay = null;
+ },
+ //响应切换地图
+ onChangeMap(item) {
+ if (window.scene && window.underlay) {
+ const u = window.underlay;
+ const building = window.scene.findFeature("3DBuilding");
+ switch (item.id) {
+ case "pic": {
+ if (building) {
+ building.visible = false;
+ }
+ u.change("satellite"); //这样需要将本地资源放在工程内
+ // u.url = "http://multiverse.vothing.com/ref/style/satellite.json";
+ // // 加载显示底图
+ // u.load();
+ break;
+ }
+ case "gis": {
+ if (building) {
+ building.visible = true;
+ }
+ u.change("darkblue"); //这样需要将本地资源放在工程内
+ // u.url = "http://multiverse.vothing.com/ref/style/darkblue.json";
+ // // 加载显示底图
+ // u.load();
+ break;
+ }
+ }
+ }
+ },
+
+
+ //初始化引擎
+ initMultiverse() {
+ // 获取承载场景画布dom
+ const renderDom = document.getElementById("renderDom");
+ if (window.multiverse && renderDom) {
+ // 实例化引擎
+ const multiverse = window.multiverse;
+ const engine = new multiverse.mvCore(renderDom);
+
+ // mapbox地图服务的Token,需申请,如不使用Mapbox地图服务,可不设置
+ engine.token = window.ProjectConfig.mapboxToken;
+ // multiverse.js所在的路径,用于获取静态资源文件
+ engine.path = "https://multiverse.vothing.com/";
+
+ // 初始化场景
+ engine.initialize().then((s) => {
+ window.scene = s;
+ s.fromJSON(sceneJSON);
+ s.load();
+ s.stop();
+ window.underlay = s.findFeature("underlay");
+
+ setTimeout(() => {
+
+ }, 1000);
+ });
+ }
+ },
+ //设置字体颜色
+ cellStyle(row, _column, _rowIndex, _columnIndex) {
+ // console.log("row", row);
+ if (row.column.label === "状态" && row.row.status === "未处置") {
+ return "color:#EF424E";
+ }
+ },
+ },
+};
+</script>
diff --git a/src/api/app.js b/src/api/app.js
new file mode 100644
index 0000000..55265fa
--- /dev/null
+++ b/src/api/app.js
@@ -0,0 +1,9 @@
+import { http } from "../utils/http";
+export const AppAPI = {
+ getRiskData(data, config = {}) {
+ return http.post("/beh/environment/GetRiskData", data, config);
+ },
+ getRiskDetails(id, config = {}) {
+ return http.post(`/beh/environment/risk/${id}`, null, config);
+ },
+};
diff --git a/src/api/home.js b/src/api/home.js
new file mode 100644
index 0000000..ace0a96
--- /dev/null
+++ b/src/api/home.js
@@ -0,0 +1,45 @@
+import { http } from "../utils/http";
+export const HomeAPI = {
+ getProjectList: (config = {}) => {
+ return http.get("/beh/home/getGisProjectList", config);
+ },
+
+ getProjectInfo: (data, config = {}) => {
+ return http.post("/beh/summary/getPrjSummary", data, config);
+ },
+
+ getWorkerCategoryData: (data, config = {}) => {
+ return http.post("/beh/person/workTypeTotal", data, config);
+ },
+
+ getEquipmentCategoryCount: (data, config = {}) => {
+ return http.post("/beh/equipment/total", data, config);
+ },
+
+ getVideoAreaList: (belong, data, config = {}) => {
+ return http.post(`/beh/video/area?belong=${belong}`, data, config);
+ },
+
+ getEnvPointInfo: () => {
+ return http.get("/beh/environment/getPointEnvironmentRealData");
+ },
+
+ getVideoByAreaId: (data, config = {}) => {
+ return http.post("/beh/video", data, config);
+ },
+
+ getTotalGoingData: () => {
+ return http.get("/beh/home/getHomeTotalGoingData");
+ },
+
+ getProjectTypeSummaryData: () => {
+ return http.get("/beh/home/getHomeProjectTypeData");
+ },
+
+ getTradeCategoriesStatisticsData: () => {
+ return http.get("/beh/home/getHomeIndustryCategoryData");
+ },
+ getVideoSourceList() {
+ return http.post("/beh/person/tree");
+ }
+};
diff --git a/src/assets/css/DIN_font.css b/src/assets/css/DIN_font.css
new file mode 100644
index 0000000..cc6a5ab
--- /dev/null
+++ b/src/assets/css/DIN_font.css
@@ -0,0 +1,23 @@
+@font-face {
+ font-family: 'DINEngschrift-Alternate';
+ src: url(data:font/truetype;charset=utf-8;base64,T1RUTwANAIAAAwBQQ0ZGINK2MzwAAAdgAAA7E0RTSUcAAAABAABGCAAAAAhHREVGABAA5QAARhAAAAAWR1BPU/jUEbUAAEYoAAADOEdTVUJskXSPAABJYAAAACBPUy8yEXgGmAAAAUAAAABgY21hcFBbS68AAAN0AAADzGhlYWT8QVTkAAAA3AAAADZoaGVhBu8DLwAAARQAAAAkaG10eEs+Fq8AAEJ0AAADlG1heHAA5VAAAAABOAAAAAZuYW1lIzo85gAAAaAAAAHScG9zdP+fADIAAAdAAAAAIAABAAAAAQAAtELsWF8PPPUAAQPoAAAAAMGx6n0AAAAA2Dcm1f9b/wYD6AOpAAAABgACAAAAAAAAAAEAAAOp/wYAAAPo/1v/WwPoAAEAAAAAAAAAAAAAAAAAAADlAABQAADlAAAAAwFyAfQABQAAAooCigAAAJYCigKKAAAB9AAyAOEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAACD7AgLI/zMAMgOpAPoAAAABAAAAAAH7AsgAAAAgAAIAAAAHAFoAAwABBAkAAACUAAAAAwABBAkAAQAUAKIAAwABBAkAAgAOAJQAAwABBAkAAwAuAKIAAwABBAkABAAUAKIAAwABBAkABQB6ANAAAwABBAkABgAuAUoAQwBvAHAAeQByAGkAZwBoAHQAIAAoAGMAKQAgADEAOQA5ADAALAAgADEAOQA5ADIAIABBAGQAbwBiAGUAIABTAHkAcwB0AGUAbQBzACAASQBuAGMAbwByAHAAbwByAGEAdABlAGQALgAgACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAFIAZQBnAHUAbABhAHIARABJAE4AUwBjAGgAcgBpAGYAdAA6AFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADsARABlAGMAZQBtAGIAZQByACAAMQAyACwAIAAyADAAMQA4ADsARgBvAG4AdABDAHIAZQBhAHQAbwByACAAMQAxAC4ANQAuADAALgAyADQAMgAxACAANgA0AC0AYgBpAHQARABJAE4ARQBuAGcAcwBjAGgAcgBpAGYAdAAtAEEAbAB0AGUAcgBuAGEAdABlAAAAAAADAAAAAwAAABwAAQAAAAACAgADAAEAAAAcAAQB5gAAADgAIAAEABgAJgAnAF8AYAB+AKwA/wExAUIBUwFhAXgBfgGSAscC3SAUIBogHiAiICYgMCA6IEQhIiIS+wL//wAAACAAJwAoAGAAYQChAK4BMQFBAVIBYAF4AX0BkgLGAtggEyAYIBwgICAmIDAgOSBEISIiEvsB////4QAA/+EAAP/hAAAAAP9gAAAAAAAA/08AAP7TAAAAAAAAAAAAAAAA4FPgSuAy4B/fiN6OBWwAAQAAADYAAAA0AAAAMgBIAAAA6ADqAOwAAADsAAAA7ADuAPgA+gD+AQIAAAAAAAAAAAAAAAAAAAAAAGgAfABgAGEAYgBnAGQAnQBmAIMApgCLAGoApwCbAIAAqwCjAKgAqQB9AKwAcwByAIUAmQCPAHgAmACfAJcAewCwAK0ArgCyAK8AsQCKAKQAtgCzALQAtQC6ALcAuAC5AJ4AuwC/ALwAvQDAAL4AmgCNAMUAwgDDAMQAxgCcAJUAzADJAMoAzgDLAM0AkAChANIAzwDQANEA1gDTANQA1QCiANcA2wDYANkA3ADaAJYAkwDhAN4A3wDgAOIApQDjAIwAkgCOAJQAwQDdAMgA5AB+AIgAgQCCAIQAhwB/AIYAbwCJAEEACAB1AGkAdwB2AHAAcQB0AAYBygAAACAA4AABAAIAAwAEAAUABgAHAGgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAHwAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AAACvALEApACzALsAvgDEAMkAzADKAMsAzgDNAKEAzwDSANAA0QDTANYA1ADVANcA2ADbANkA2gDcAN4A4QDfAOAAcACrAGEAYgBmAHQAcwCVAJsApgCqAH0AgwAAAIoAjQAAAKMAAAAAAGQArAAAAAAAAAAAAAAAiwCPAAAAkACTAHsAYACnAAAAZQAAAAAAagB4AHkAAACwALIAwACOAJQAbwCJAGkAdwBBAAgAlgAAAOMAxwAAAGcAawBsAG0AbgBxAAAAdQB2AHoArgC0AK0AtQC2ALcAuAC5ALoAvAC9AAAAvwDCAMMAxQCRAH4AfwCAAIEAggCEAIUAhgCHAIgAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAEABAQAAQEBGERJTkVuZ3NjaHJpZnQtQWx0ZXJuYXRlAAEBASX4GwD4HAwA+B0C+B0D+BgE+zn7jvp8+j0F90AP+QkRlBw7ChIAAwEBBk9ZMS4wMDBDb3B5cmlnaHQgKGMpIDE5OTAsIDE5OTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuRElOU2NocmlmdAAA4EoAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAJQAlQCfAKMAngCWAKgApQCdAKAAmgCbAKYAzgCnAJwAsQCiAKoAlwCkAKkAmQChAJgAqwCsAK0ArgCvALAAsgCzALQAtQC2ALcAuAC5ALoAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDPANAA0QDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUCAAEABAAHAB8ANACEAQABlgITAiACUAJ+Aq0CyALUAuAC6QL4AzoDTQOLA/gEGgRqBNIE6AV9BeMF8wYGBiUGOwZYBrEHbQeXB+wINQhsCIQImAjmCP0JBwkwCVcJZAmOCasJ8QoqCocKxgsqCzsLZguEC7oL5gwJDCQMOAxIDFoMdQyBDI8M9Q1MDaAN+Q5WDnoO7A8ZDykPSQ9vD4sP1xADEF4QtxEQETIRjRG0EeMSARI4EmQSkxKuEwMTDxNlE6ITuRQmFKUUtRTrFUYV6BZYFmQWfBanFr8W1RcIF0UXURdrF5MXsxfVF/UYARgXGC4YWBhyGUMZmxmsGb0Z0xoDGhAaNBo/GlIajRrQGu8bHxs2G0IbcxvZG/0cZxzGHQodqB2yHeMeTh7jHzsfgiAUIFQgaCCTISshZyF7IcAiJSIyIsQjTCNxI/YkUCToJPklPyWlJeQmHyZYJo8myycEJzwnnif1KBooRChrKJIoqSjFKN4o9ilAKZQp7SpDKpcrCiuBK7sr+iw2LHAsoSzULQMteC3yLmku3S98MA4weTDpMVYxwTHYMfQyDTIlMn4y5zNVM8A0KTSxNR81XTWgNeA2HjZaNpg2x/tMDvtMDvsW6vdEFb0GsvisBfsUBpj9XBXx8SUGDi+s+KwV2/dEOwb3GPtEFdv3RDsGDo33SBbPBqj3awXFx1kGofc2BcbHWAao92sFRwZu+2sFNwao92sFRwZu+2sFUU+9BnX7NgVQT74GbvtrBc8GqPdrBd8Gk8cVNwah9zYF3wYOjfc1+EkVZJ2HoIu7i7WUsK2YCL77zBWzepJ6i0eLUYdlYIEIWPtOFb7fBvcDlrHfi/cGi/N6xDGtCGGcBfddB62AmGqLYQh08b0Hi9ZR1jCWCNZYQAcqfls6iyaLMqJR42cIrX0F+3oHaZN9qYuqCK8lYweLM8pG4oEIDnnp+L8Vfot/l4uZCL4Hi5mXl5iLmIuXf4t9CFgHi31/f36LCE8Ev4usqou4CMwHi71qq1eLV4tqa4tZCEoHi16sbL+LCPcf/AAVi5mXl5iLmIuXf4t9CFgHi31/f36Lfot/l4uZCKQ1Fb+LrKqLuAjMB4u9aqtXi1eLamuLWQhKB4terGy/iwj7gZEVzQb3iPlcBUkGDvcD9/UW8QY+9w7X7Uy3VEAFaL1px3Kyw727yovNi9FbxjSLL4tcTYs/i0+lVq9YU1lhUos9iyjNSdyLwYu1n7OzCPtV9wIVi7ejramqCO37MAV8eG1zbItfi2u0i7wIr/fqFYuqn6iqi6mLnnGLcotZZ2Vyc3Wveq+LqggO+0y1+KwV8dUF8SUHDvso9z35XBVB+wNe+zKL+x2L+xWy+zXb+wgIrQZr9wh49xOL9xuL9yaX9yuy9x0IDvsowCcV1fcDuPcyi/cdi/cVZPc1O/cICGkGq/sInvsTi/sbi/smf/srZPsdCA6LqvjwFe9TJ1SnVu3Hh/sIBcsGh/cI7U+nwCfC78NvvylPj/cIBUsGj/sIKccFDvd695j3uRX7aTv3aftp2/dp92nb+2n3aTsGDvtMtUEV8dUF8SUHDp6393YV98Hx+8EGDvtMtRbx8SUGDvsokIUV2wb3GPloBTsGDo2t9ycViyzSUdyL3IvSxYvqCPg2B4vqRMU6izqLRFGLLAjxFouooKGoi6iLoHWLbgj8NgeLbnZ1botui3ahi6gIDo33Lxbx+VwlBiVABfsAB/HWBQ6NrRb3xPH7TAb3Kve1BavIjZ2L0IvqXt8hizaLR0WLNghT8cUHi6yfnamLvYuLYItni2SLd3loCPtM++8FDo33L/fWFc2Lmn+LVAglB4toeHVsi2yLeKKLqwjAJVEHi/sE4WPMi8mLsqeksKCqkaCL6Yvwi6JMssWukJuL7Yvmf6dwq3mhZadUizeLRUiLNwhQ8cUHi6CZqK+LqouedotuCC8Hi1Z3gk6LCA6N92gW8fW861r3XyX7XyYG9y34kgX7AAb7J/ySBSv3XwcOjffm+VwV+7j8FOUGkZeWpq6Lp4ufdItvCPs7B4tqeXdti22LdZ+LrgilJW0HiyzSUdyL3IvSxYvqCPdMB4vdW7dGi2eLbXx4eQj3VPdeBw6NrfcnFYss0lHci9yL0sWL6gj3YQeLtIekead6pWqfZ4tpi2+Da3wI6weLqKChqIuoi6B1i24I8QaL6kTFOos6i0RRiywI8ftqFYuqo5+li6WLo3eLbAj7YAeLbHN3cYtxi3Ofi6oIDo3EFvcABvdB+PYF8fvE+0bl3fcEBw6N94D4YhWLb3N1cYtxi3Ohi6cI8weLp6OhpYuli6N1i28I+15jFYs3jW68ZFpmiW2L+wCLNJJzoGyiaLVvxovGi7Wnoq6gqpKji+KL9wCJqVqwvLKNqIvfCIvZgaRwrXCuYZ9di12LYXdwaHBpgXKLPQj3XvwQFYtvc3Vxi3GLc6GLpwj3IAeLp6OhpYuli6N1i28IDo2t9/wVi2KPcp1vnHGsd6+LrYunk6uaCCsHi252dW6Lbot2oYuoCCUGiyzSUdyL3IvSxYvqCPg2B4vqRMU6izqLRFGLLAjxFouqo5+li6WLo3eLbAj7YAeLbHN3cYtxi3Ofi6oIDvtMtRbx8SUG9xEE8fElBg77TLVBFfHVBfElB/cRBPHxJQYO93r4vfiWFfyO+3sFTwf4jvt7BdsH/CH3Sfgh90kFDvd6uvfNFfiO2/yOBvusBPiO2/yOBg73erqDFfiO93sFxwf8jvd7BTsH+CH7Sfwh+0kFDour+I8V8cUGi6ynnaOLp4uhdItvCFYHi3eIdoF6CEsjBXxygXCLbggu8dsHi52TnJSbCND3CgWYoY6ji8+LyISkcK9wr2GgWos2i0ZHizcI8fzKFfHxJQYO+EL4lfguFYs7RvsLP4tZi2qqi8OL3873A+KLu4ulZ4tcCPcS9x4VTAZ3TgWJBnfBW6Nci/sgiy37Iov7GIs4xEbhi8mLqquoqgiNBpBhp3a4i+CL9yP3BYv3O4v3Q/sy9xD7UIv7Yov7QPs0i/tci/tl9zv7L/dli/cci/cTy8z2CD4GXFIoWyqL+0GL+xr3Fov3N4v3MPca9yP3PIv3Iov3EimL+yCLK0P7C0uLeouFl4uci5SPnZGdCA6w95L3jRUlBr33lgWNBvte/I8V8Qap9y0F9x8GqfstBfEG+zP5XAU2Bg7Duxb3Hwb3GIvG0Yv3EAizB4vVdbZborinpKeL1wilB4voWuL7GIsI+ykG8fwSFbgG1YuYZotEi0WFWTmLCF8G+JYEtQbOi6Jqi0yLSnloR4sIXQYOsPgI918VJWgGi1Nne2+LXYt7q4u0CPgAB4u7l66+i7KLo2mLYwhp8bMHi+5F0i2LKItIRIsuCPwcB4v7FuVl2Yvmi9LYi+MIDsO7FvciBvcMi8/Ki/cYCPfhB4v3B0vQ+weLCPsrBvErFboGx4uea4tTCPvrB4tOdW9SiwhcBg6Luxb3xPH7Xvdl90Tr+0T3Zfde6/vEBg6Luxbx98T3ROv7RPds917r+8QGDsO19zwVi/sI41Hei96L48WL9wgI93T7SzHc+xoHi1prdGaLZotroou8CPgMB4u8q6Kwi7CLq3SLWghn8a8Hi/cIM8U4iziLM1GL+wgIDsO7FvH30fcS+9Hx+Vwl+8X7EvfFJQYO+zq+FvH5XCUGDmb3sflcFSX8pgaLRF98cot2i3aXfZkIO0sFpG+2Z8yL9wGLzNuL6QgOw7sW8fdpBsLy9wj70AX3AAb7Ofg/9x/3sQUlBvsp+9kFiffZJQYOi7sW98Tx+1749iUGDvdOuxbx+EWNBu/7xgW+BvD3xgWN/EXx+VwoBvsW/A0FiQb7F/gNBSkGDtW3FvH4QI0G9zD8QAXr+Vwl/EGJBvsu+EEFKQYOw7X3PBWL+wjjUd6L3ovjxYv3CAj4DAeL9wgzxTiLOIszUYv7CAjxFou8q6Kwi7CLq3SLWgj8DAeLWmt0Zotmi2uii7wIDrC7FvH3qr8G1ou4p6e5o7KQtYvJi+CAuGiwaLBimFOLCPstBvErFcAG24uLVItIi0SKWjiLCFoGDsP3JPi0FYu8q6Kwi7CLq3SLWgj8DAeJB2KsV025ZgWEiISKg4tmi2uii7wIJRaL+wjjUd6LsYuxl6qkCMdav8lMvgWVoJCji6cI+AwHi/cIM8U4iziLM1GL+wgIDsP3Kvj8FcAG1ouXZItDi0SAY0SLCFEGJfweFfH3xMgG6vvEBfcABvsC99kFzK+ix4vdi/ceUNL7DYsI+zgGDq/4DvjBFYvaR90li/sJi1E0i/sAizKiUeNnCNRtBb13lH+LP4tKhmJGi1eLd6+LsAirJWUHiyvWQu6L9xiLt+SL9wyL83rEMa0IPaoFVqCGnovCi7qYuMOLv4ufZItcCHTxBw5l9wcW8fj89wrr++Yr9woGDsP4DvlcFSX8sgaLWXBzZ4tni3Cji70I+LIl/LwHiy7VQuaL5ovV1IvoCA6w+B75XBX7AAY5/IUFiQY6+IUF+wAG9yX9XAXlBg73c/jV+VwV+wAGWvxjBYkGOPhjBT0GO/xYBYkGWPhYBfsABvX9XAXrBtj4YgWNBtn8YgXrBg6eiRb3AAbj94Tk+4QF9wAG+yf4Cfcc9+cF+wAGPftnPvdnBfsABvcZ++cFDp33Ixbx98EG9yD4LwX7AAY5+68FiQY5968F+wAG9yD8LwUOZpoW98Pr+1gG91j4qwXc+7kr90oH+1T8ogUO+yj3avlcFfsw/cD3MMdJ+UjNBg77KOD5YhU7BvcY/WgF2wYO+yiTJxX3MPnA+zBPzf1ISQYO93q9968V2wb3Pvfn9z775wXbBvtt+EEFSQYO9xb7EQT4iL38iAYO+0z3JPlcFSVBBSXxBw6L938W8ff1Bov1R8E2i12LZXtwcHBwe2WIXgjuBpGspZ2li7GLmHGLaQhWB3aMfY19i/sUi2pTi/sIi/sEynS6i7yLoaCmsAiNBuwEi2J2c2mLaot3pYuyi8GvnbeLlIuTipaJCA6etRbxuQalbp90vou0i6manayXoZCqi8MI91UHi9SIqH6geqZynlqLY4treHVqCIn3jyUG91/8txWLYnxvaItsi3eli7AI91kHi6uhoqiLsouWb4trCA6L9yr39RWLsZ6fqouqi554i2II8QaL6VHPLYtNi1xuc199cYZni2II+zsHi2KQZ5lxo1+6bsmLuouwnKanpaaasou1CCUGiXWCbmSLbIt4nYurCA6e9yT38xWLq5ansouoi6F0i2sI+1kHi2Z3cWyLaIt8p4u0CPD7ORXx+Vwl+4+JBnWsa55ji1qLcnh6cH52iG6LQgj7VQeLU5Bsl3Wdaql8tIu+i5+ipagIDov35fdrFfcgB4vkUdAti02LXG5zX31xhmeLYgj7OweLYpBnmXGjX7puyYu6i7Ccpqelppqyi7UIJQaJdYJuZItsi3idi6sI0Af3HgSLsZ6fqouqi553i2UIUScHDvsowhbx+D/X2z/VBouhlpieiwi561wGSYtKZYspCEZZO70HDp61UBWY+wjYZ8mL9wCLuNuL0Aj4zSVdB3God6JZi1qLcnh6cH52iG6LQgj7VQeLU5Bsl3Wdaql8tIu0i6ueoawIjScGi2t9dGqLaIt5pYqjCPglBIu0mqeui6qLn3GLZgj7WQeLa3V0botki4Cni6sIDp61FvH36QaLuJiksYuri510i2YI+/Px+BkHi+ZVrFiLXItvdHZrCIn3kiUGDvtMtRbx+I8lBvIE8fElBg77TLV7FYtBfHhaiwgrB+uL0b6L7wj4xSUH8gTx8SUGDp61FvH3Iga82Of7bwX3Awb7JvfB9w33YgUlBvsP+3EFifg+JQYO+0yv9xwVi/sKxXPpiwjrB2SPgJaLsQj4zSUHDvdytRbx9+kGi7iYpLGLq4uddItmCPvz8ffpB4u4mKSxi6uLnXSLZgj78/H4GQeL5k+sWItVi3B0cm95pG6lX4tci290dmsIibwlBg6etRbx9+kGi7iYpLGLq4uddItmCPvz8fgZB4vmVaxYi1yLb3R2awiJvCUGDous9z4Vi2KQZ5lxo1+6bsmLyYu6qKO3maWQr4u0CPc7B4u0hq99pXO3XKhNi02LXG5zX31xhmeLYgjxmxWLsZ6fqouqi553i2UI+1sHi2V4d2yLbIt4n4uxCA6etfthFfH3j40GoWqreLOLvIuknpymmKCOqIvUCPdVB4vDhqp/oXmsbZpii1iLd3Rxbgi5JQf3X/vzFYtrgG9ki26LdaKLqwj3WQeLsJ+lqouui5pvi2IIDp73ifthFfH5XCVdBnGod6JYi2KLbXx5an91hmyLUwj7VQeLQo5umHaccKR4vIuzi6ueoawIjQYm97wVi7Sap66LqoufcYtmCPtZB4trdXRui2SLgKeLqwgOL7UW8ffBBoveyKa2i5aLlYmVhwj3AAdQi2l0YWYIwSUHDnn31/gBFYrfT8s4izmLR02LNYtHslvLcwi8eQWyfJd4i2+LaW92botli36oh6cIKwaPJ89W24vji8vQi9+Lx3PBP6gIT6MFZZqGnYuei6WdpKuLpoujeYxpCA77OrX4jxVYO777yAaLVapK54sItesGXot5jou6CPetyttM9y4lBw6e9+/4jxUl++kGi15+cmWLa4t5oouwCPfzJfwZB4swwWq+i7qLp6KgqwiNWvEGDnn39fiPFfsABkf72AWJBkf32AX7AAb3GPyPBeUGDvc6+Kv4jxX7AAZO+88FiQZV988FOwZS+88FiQZN988F+wAG9wz8jwXlBsP3wQWNBsP7wQXlBg5lgBb3AAbQ9y/Q+y8F9wAG+xP3l/cN94wF+wAGTPskTPckBfsABvcL+4wFDnmK+I8V9x/8eAV0+wp+fWKLCHQrpwbIi8WloeYI9yb45wUiBkb70AWJBkX30AUOVJwW963r+zkG9zn33gXc+6Ax9ywH+zn75AUO+yiO96kVsIumW4tICPsrB4tFuGLAiwjBx3kGa4t/pIu1CPcpB4vnYqtvkAiNB6eQtK6L4wj3KweLtJekq4sIncdVBlaLXmKLRQj7LAeLSnBcZosIDvso0vuOFdv6fDsGDvso92/35RVmi3C6i8wI9ywHi9FetFaLCFVPnQari5dyi2II+ysHizO0aKeGCIkHb4Zia4svCPspB4thf3Jriwh5T8EGwIu4tIvRCPcrB4vOpruwiwgO93r4g/feFXRocmZji3CLZZ9mm2WdZJppi0iLZ151YQivSwWiraSws4umi7F3sHuxebJ8rYvOi6+4obUIDvsWw/thFfcUBmT4rAVZBnHVFfHxJQYOjfc46xV6kYCbi6MI92sHi5qOlpCUkJSSkpOOCPyJBLTfBrGOqpuio6WmmrKLtwglBol2hXV0gwj3zwefhJZ5i2gI8QaL5VjMOZII1mJAB1iGZHB2ZH1xhmeLYgj7QAeLYpBnmXGgZbJvvocIDo2Y974V2QaZZ5Rgi26LbIFsenJ1iWt/gYUINQeYkbCVqIu4i+J4sYu6i6ybqrYIR9AFc254iHSLb4trk3WOnqyYr4uzi7WCoIKkCOjS+wgGe7V7xIu/i8ObubqLtouXZ4tnCGPruAeL9wY5vEmL+weLXC+LIotHmGakXAhUBg77X/s5ehXHBvhJ+X4FTwYOjfceFuv3QPcGzfsGvPcGzSkG9wr3+wUlBjz7rwWJBjz3rwUlBvcK+/sFKUn3Blr7Bkn3BgYOjbj4BxXbBkD8NQWEZnp0aIt+i3yNf48IgC0FnIaYiKKL9Yut1J3xCNL4IgXZBpjbBT4GnfIFlcWZm66LmIuYh5iJCJnnBXCNeI15i0uLVXN2+wcIdPsUBTcGDov32fjZFYvnRrhJi0GLTFqLIotFkWzNakF0eWqL+weLLo9mwGsI9wpDBaV7kX+LWYtWe3Jii2uLdKiLrgi0NmEHi1GtNvcBi7iLuaCirJ+okKiLw4vcg6VIrdywkaaL7IvzhKNbqggqygVfp4iTi7uLs5WstYusi5xti2wIYeAH+1L7cxWLqKGjp4umi6Jzi24IKAeLbnRzcItvi3Wji6gIDo2P92oVtGO0tQWidrB9s4uzi7CYoqAItGK0tGK0BZ+hmbCLtIuzfrB2owi0tGO0YmEFc6BmmGOLY4tmfXR3CGK1YmK0YQV2dH5mi2OLY5lloHUIqu8Vi8e8vMeLx4u8WotPi09aWk+LT4tavIvHCA77TMD4rBXb90Q7Bg4v95j5XBUlQQUl8Qf7IPdEFSVBBSXxBw7D+CL4cxX7X/te91/7XgXxBybv8O8F+03xFftf+173X/teBfEHJu/w7wUO+xX3afhzFftf+173X/teBfEHJu/w7wUO+xWn1hX3X/de+1/3XgUlB/AnJicFDrDCFvH4P9fbP9UGi6GWmJ6LCLnrXAZJi0pliykIRlk7vQf3ZPw/FfH4jyUG8gTx8SUGDrDCFvH4P9fbP9UGi6GWmJ6LCLnrXAZJi0pliykIRlk7vQf3ZPu3FYv7CsVz6YsI6wdkj4CWi7EI+M0lBw73Fvd5BPiI6/yIBg6L9yD7YRXl+O33GuX7Gvd2Mft2+xox9xoGDov3IPiCFfsaO/ca+9X7Gjv3Gvtu5fdu9xrb+xr31fca2/sa924xBg77TKj3vhWLaKhurouui6ioi66Lrm6oaItoi25ui2gIDtX3SvthFdP59tP99tP6KftABvsWizNNi/sWiyPiOeKLCA73FtP3+BWLKds77Yvti9vbi+2L7TvbKYspizs7iykIDvtMtUEV8dUF8SUHDi+dQRXx1QXxJQf3IPtEFfHVBfElBw4vnfisFfHVBfElB/cg+0QV8dUF8SUHDsP3adYV91/3Xvtf914FJQfwJyYnBftNJRX3X/de+1/3XgUlB/AnJicFDvkK9wgW8fElBvfhJRXx8SUG9+ElFfHxJQYO9zv4NvcXFYuZl5eYi5iLl3+LfQhYB4t9f39+i36Lf5eLmQhPgRWLXqxsv4u/i6yqi7gIzAeLvWqrV4tXi2pri1kI+7X4hRWLmZeXmIuYi5d/i30IWAeLfX9/fot+i3+Xi5kIT4EVi16sbL+Lv4usqou4CMwHi71qq1eLV4tqa4tZCPds/I0Vi5mXl5iLmIuXf4t9CFgHi31/f36Lfot/l4uZCE+BFYterGy/i7+LrKqLuAjMB4u9aqtXi1eLamuLWQj7JfsbFc0G94j5XAVJBg6L9+YWJVEGi2pveXOLb4t1oounCMAHi5+OoJWcCMvzBZqklaaLqAjoJTsHi3mDeoJ7CEb7CgV+dYhzi0eLTpJypmemZ7V2vIvgi9DPi98IJfjKFSUl8QYO+0zP+V8V+wAG9xj7IQXNBg77TKf40hXNBvcY9yEF+wAGDvtMV/jSFdkGzurOLAXZBin3IQUtBg77TPdo+U8VinF8eG+LdYsws2yLS4tyWX9OCL4GjKWanqeLoovlY6qLy4ukvZfICA77TF/48xX3psf7pgYO+0z3WPlfFYZmdGRAi0CLdLKGsAhYBpkyv1zji+OLv7qZ5AgO+0y7+N4V5fExBg77TGr43hXl8TEG9zYlFeXxMQYO+0yC+SgVi1S5XMOLw4u5uYvDi8JdulOLU4tdXYtTCLQWi62mpq2LrYumcItpi2lwcGmLaYtwpoutCA77TJ81FZx3BZiQl42Zi6KLoXyLdItpa4R1i3WLdZJ2kwh6YQWehK5/sovCi8+li8yLq3i2SYuBi4CKgYoIuccFXQYO+0xV+NIVzQb3GPchBfsABtP7IRXNBvcY9yEF+wAGDvtM90n7ORV9g3qGdYtxi3Sfi6uLtKO6s7EIWAZXZ2Jri0qLU7Zow4u3i6yWn5YIDvtM94L5XxU9BkgsSOoFPQbt+yEF6QYO+Qr3eQT6fOv+fAYO94WNFvcABrL3LQX3IPst98Tx+173ZfdE6/tE92X3Xuv8GQbg/GMV+wgG5/gDBaMGDvsW9y74LhXT92gGi8pZrFSLbYtygXl7enuAdIlsCM0GjqGck5yLo4uUe4t3CHMHfYyCjIKLOItyZ4tFi0e3faqLq4uZmJyhCI0GygSLeH18dYt2i4CWi52LrKCWqIuQi5GKkooIDou7FvfE8fte94cG9wzrBeUH+wwrBfepJfv5B1tlBTEHu7EFDsOVexWxdbPfBatounq5i96L48WL9wgI+AwHi6uEp4CgCL3yZaFjNwVprl2cXos4izNRi/sICPwMB4tskXCXdAjh90MVifeuBou8q6Kwi66LqnaOXQiJJxWN+60Gi1prdGaLZ4tsoYm4CA73hPe09zIVi2NwaWGLYYtwrYuzCPggB4uzpq21i7WLpmmLYwj3xPcyFfvEZ4kGfaFwn1+LKotTPIsxCPwWB4sxwzzsi6yLrpycogiNaffE8fte92X3ROv7RPdl914GDvsWnfiNFYtSs2HJi8mLs7WLxAj3BgeLxGO1TYtNi2Nhi1II04kVi6KWl56LnouWf4t0CPsDB4t1gH94i3iLgJeLoQgO91735ff1FYuxnp+qi6qLnneLZQhRJwf3XscVi+RR0C2LZItlfXJ1cKJrmGGLL4tQTIUxCO4GkaylnaWLsYuYcYtpCFYHdox9jX2L+xSLalOL+wiL+wTKdLqLvYu4o6O7n2S5ac6M5IzKy4vjCCUGiXWCbmSLbIt4nYurCND3Xgf7xEkVi2J2c2mLaot3pYuyi8GvnbeLlIuTipaJCA77TLUW8fiPJQYO+0yv9xwVi/sKxXPpiwjrB2SPgJaLsQj3kwe9tgXTB1lgBfeGJfvgB1lfBUMHvbcFDov3HfdlFYn3JAaLsZ6fqouli5x9j3IIjEEVjfskBotleHdsi3GLepmHpAj7GvsnFa12tNAFpXCvfLeL6YvF0IvqCPdTB4urhKh+pQi83mmgYkYFcaZnml+LLYtRRossCPtTB4trkm6YcQgO916s9z4Vi2KQZ5lxo1+6bsmLsouvmaGgonO4gLCLuouwnKanpaaasou1CCUGiXWCbmSLbIt4nYurCND3XvcgB4vkUdAti2WLZoBxdHSeZ5phi02LXG5zX31xhmeLYgj3xJsVi7Gen6qLqoued4tlCFEnB/texRWLsZ6fqouqi553i2UI+1sHi2V4d2yLbIt4n4uxCA6etRbx+KoGi82aobGLsouUdotvCDsHi2t+hGyLCDEHp4ubhItxCPtSB4thfIJuiwgrB9aL0puL9xAI90QHi752qWWgvKqVoYvSi/Fl2/sIiyOLXDyLNAgO93q692kV+I7b/I4G91H7ixWLaKhurouui6ioi66Lrm6oaItoi25ui2gI+DIEi2iobq6LrouoqIuui65uqGiLaItubotoCA73TbB6FccG+En5fgVPBvwK+5MVtIuVhIttCFcHi3x+fHqLeYt/mIufCKI7aQeLRcNzwYvZi6u/i7wIvgeLrIKga56vnpCgi6gItAeLvGm+QYtJi11ji1MIa9ulB4uXlJ2gi52Ll36LeghhB4pvgIVkiwj34vywFdvJqc1t9wc7+wdQBun3vwU7Bin7wwVN9yMHDvdNnXoVxwb4Sfl+BU8G/A78ThXb+D07BklgBUMHzbYF9/n9FBXbyanNbfcHO/sHUAbp978FOwYp+8MFTfcjBw77FOj3sxXb+D07BklgBUMHzbYFDvd6ztgVxFL3RPdF90X7RcPE+0T3RPdE90VTw/tF+0T7RPdEUlP3RftFBQ74Qvfd+I8V6wa4i6t6i2SLXmp5SosIQAZJ+4cVzfdLvgb3DftLBdsG+w33TQXGkryri9qL21uyKosI+zQG+D/7ZxWL+zf7FvsZ+zSL+zSL+xb3GYv3N4v3N/cW9xn3NIv3NIv3FvsZi/s3CP0gFov7XPc2+zb3XIv3XIv3Nvc2i/dci/dc+zb3Nvtci/tci/s2+zaL+1wIDrC7FvH3Lr8G1ou4p6e5o7KQtYvJi+CAuGiwaLBimFOLCFj3ECUG8ftwFcAG24uLVItIi0SKWjiLCFoGDvso0vtDFdv38jsG9yoE2/fyOwYOw/cq+PwVugbHi55ri1MI++sHi051b1KLCFz3ktHNRQYl/DQV9yIG9wyLz8qL9xgI9+EHi/cHS9D7B4sI+yv7vFtJuwYO902dehXHBvhJ+X4FTwb8DvxOFdv4PTsGSWAFQwfNtgX3if0UFfdy0/sKBur3NAWZopSci64IrAeLwFmxT4tLi1thi1MIZ9uqB4ufmZaci5mLnICLdwh0B4t9hn6Efwj7FvtoBQ73err3aRX4jtv8jgYOi/cENRWcdwWYkJeNmYuii6F8i3SLaWuEdYt1i3WSdpMIemEFnoSuf7KLwovPpYvMi6t4tkmLgYuAioGKCLbDBbGPqZqio6WmmrKLtQglBol1gm5ki2yLeJ2Lqwj3YweLsZ6fqouqi554i2II8QaL6VHPLYtNi1xuc199cYZni2II+zsHi2KQZ5lxn2axcL2ECA6L9xv39RWLsZ6fqouqi553i2UI+1sHi2V4d2yLbIt4n4uxCFr4WhWnY9WuBaFvmWaWXQiJiQWBmHiVeItNi1xuc199cYZni2II+zsHi2KQZ5lxo1+6bsmLyYu6qKO3maWQr4u0CPeCB4vZfuZZzQjKqG+zR2sFdZ9xm2uWCDhfBap/pX2feggO93r3mPMV2/c192nb+2n3NTv7NftpO/dpBvtp+50V+I7b/I4GDrD3FzUVnHcFmJCXjZmLoouhfIt0i2lrhHWLdYt1knaTCHphBZ6Ern+yi8KLz6WLzIureLZJi4GLgIqBigi2wwXYmsPRi9kItyVoB4tTZ3tvi12Le6uLtAj4AAeLu5euvouyi6Npi2MIafGzB4vuRdItiyiLSESLLgj8HAeL+wzYYdSFCA6etfthFfH3j40GoWqreLOLvIuknpymmKCOqIvUCPdVB4vDhqp/oXmsbZpii1iLd3Rxbgj3jyUH91/8wBWLa4BvZItui3Wii6sI91kHi7CfpaqLrouab4tiCA74Qvig97MVglleY1KLNYtT2Yvei+K+0uSLxIu4ZZZcCM0Gfuw/wTCL+xiLPCuL+xaL+xLfKPcWi+OL0smd6Qjv0BWL+zf7FvsZ+zSL+zSL+xb3GYv3N4v3N/cW9xn3NIv3NIv3FvsZi/s3CP0gFov7XPc2+zb3XIv3XIv3Nvc2i/dci/dc+zb3Nvtci/tci/s2+zaL+1wIDvd6+G33BRXb96z8jjv4PgYO+xSW+NwV26oGi5+ZlpqLmYucgIt3CHQHi32GfoR/CPsU+2gFVfdw0/sKB+r3NAWZopSci64IrAeLwFmxT4tNi1thi1MIDvsU7/huFbSLlYSLbQhXB4t8fnx6i3mLf5iLnwiiO2kHi0XDc8GL2Yurv4u8CL4Hi6yCoGuer56QoIuoCLQHi7xpvkGLSYtdY4tTCGvbpQeLl5SdoIudi5d+i3oIYQeKb4CFZIsIDvkA9zr3wBXT9+73E8372kn3Ewb5E/vuFdP4MPsGBvsJ+8H7CffBBfsG/DDT9+6NBvcc++4FtAb3HffuBY0GDvsC0PjyFYutpqati62LpnCLaYtpcHBpi2mLcKaLrQhYFotNvVnJi8mLvb2LyYvJWb1Ni02LWVmLTQgOnvfv+I8VJfvpBotefnJli2uLeaKLsAj38yX9XPH3ZY0HkYWVh5qLlouWj5eUlpSXmZSeCI1a8QYOsPeS940VJQa995YFjQb7XvyPFfEGqfctBfcfBqn7LQXxBvsz+VwFNgZ1qxXNBvcY9yEF+wAGDrD3kveNFSUGvfeWBY0G+178jxXxBqn3LQX3Hwap+y0F8Qb7M/lcBTYGJasV2QbO6s4sBdkGKfchBS0GDrD3kveNFSUGvfeWBY0G+178jxXxBqn3LQX3Hwap+y0F8Qb7M/lcBTYGOLcV5fExBvc2JRXl8TEGDrD3kveNFSUGvfeWBY0G+178jxXxBqn3LQX3Hwap+y0F8Qb7M/lcBTYGnfdBFfsABvcY+yEFzQYOsPeS940VJQa995YFjQb7XvyPFfEGqfctBfcfBqn7LQXxBvsz+VwFNgZQ9w8Vi1S5XMOLw4u5uYvDi8JdulOLU4tdXYtTCLQWi62mpq2LrYumcItpi2lwcGmLaYtwpoutCA6w95L3jRUlBr33lgWNBvte/I8V8Qap9y0F9x8GqfstBfEG+zP5XAU2Bvc29zEVinF8eG+LdYsws2yLS4tyWX9OCL4GjKWanqeLoovlY6qLy4ukvZfICA6Luxb3xPH7Xvdl90Tr+0T3Zfde6/vEBt2rFc0G9xj3IQX7AAYOi7sW98Tx+173ZfdE6/tE92X3Xuv7xAaNqxXZBs7qziwF2QYp9yEFLQYOi7sW98Tx+173ZfdE6/tE92X3Xuv7xAagtxXl8TEG9zYlFeXxMQYOi7sW98Tx+173ZfdE6/tE92X3Xuv7xAb3DvdBFfsABvcY+yEFzQYO+zq+FvH5XCUGfasVzQb3GPchBfsABg77Or4W8flcJQYtqxXZBs7qziwF2QYp9yEFLQYO+zq+FvH5XCUGQLcV5fExBvc2JRXl8TEGDvs6vhbx+VwlBqX3QRX7AAb3GPshBc0GDtW3FvH4QI0G9zD8QAXr+Vwl/EGJBvsu+EEFKQb3vfcxFYpxfHhvi3WLMLNsi0uLcll/Tgi+Boylmp6ni6KL5WOqi8uLpL2XyAgOw7X3PBWL+wjjUd6L3ovjxYv3CAj4DAeL9wgzxTiLOIszUYv7CAjxFou8q6Kwi7CLq3SLWgj8DAeLWmt0Zotmi2uii7wIj/jUFc0G9xj3IQX7AAYOw7X3PBWL+wjjUd6L3ovjxYv3CAj4DAeL9wgzxTiLOIszUYv7CAjxFou8q6Kwi7CLq3SLWgj8DAeLWmt0Zotmi2uii7wIP/jUFdkGzurOLAXZBin3IQUtBg7Dtfc8FYv7CONR3ovei+PFi/cICPgMB4v3CDPFOIs4izNRi/sICPEWi7yrorCLsIurdItaCPwMB4taa3Rmi2aLa6KLvAhS+OAV5fExBvc2JRXl8TEGDsO19zwVi/sI41Hei96L48WL9wgI+AwHi/cIM8U4iziLM1GL+wgI8RaLvKuisIuwi6t0i1oI/AwHi1prdGaLZotroou8CLf5YRX7AAb3GPshBc0GDsO19zwVi/sI41Hei96L48WL9wgI+AwHi/cIM8U4iziLM1GL+wgI8RaLvKuisIuwi6t0i1oI/AwHi1prdGaLZotroou8CPdQ+VEVinF8eG+LdYsws2yLS4tyWX9OCL4GjKWanqeLoovlY6qLy4ukvZfICA6v+A74wRWL2kfdJYv7CYtRNIv7AIsyolHjZwjUbQW9d5R/iz+LSoZiRotXi3evi7AIqyVlB4sr1kLui/cYi7fki/cMi/N6xDGtCD2qBVaghp6Lwou6mLjDi7+Ln2SLXAh08Qdt+A4VPQZILEjqBT0G7fshBekGDsP4DvlcFSX8sgaLWXBzZ4tni3Cji70I+LIl/LwHiy7VQuaL5ovV1IvoCPt6+NwVzQb3GPchBfsABg7D+A75XBUl/LIGi1lwc2eLZ4two4u9CPiyJfy8B4su1ULmi+aL1dSL6Aj7yvjcFdkGzurOLAXZBin3IQUtBg7D+A75XBUl/LIGi1lwc2eLZ4two4u9CPiyJfy8B4su1ULmi+aL1dSL6Aj7t/joFeXxMQb3NiUV5fExBg7D+A75XBUl/LIGi1lwc2eLZ4two4u9CPiyJfy8B4su1ULmi+aL1dSL6Aj7UvlpFfsABvcY+yEFzQYOnfcjFvH3wQb3IPgvBfsABjn7rwWJBjn3rwX7AAb3IPwvBX34TxXNBvcY9yEF+wAGDp33Ixbx98EG9yD4LwX7AAY5+68FiQY5968F+wAG9yD8LwVA+FsV5fExBvc2JRXl8TEGDmaaFvfD6/tYBvdY+KsF3Pu5K/dKB/tU/KIF9735rxU9BkgsSOoFPQbt+yEF6QYOi/d/FvH39QaL9UfBNotdi2V7cHBwcHtliF4I7gaRrKWdpYuxi5hxi2kIVgd2jH2NfYv7FItqU4v7CIv7BMp0uou8i6GgprAIjQbsBItidnNpi2qLd6WLsovBr523i5SLk4qWiQj7B/f4Fc0G9xj3IQX7AAYOi/d/FvH39QaL9UfBNotdi2V7cHBwcHtliF4I7gaRrKWdpYuxi5hxi2kIVgd2jH2NfYv7FItqU4v7CIv7BMp0uou8i6GgprAIjQbsBItidnNpi2qLd6WLsovBr523i5SLk4qWiQj7V/f4FdkGzurOLAXZBin3IQUtBg6L938W8ff1Bov1R8E2i12LZXtwcHBwe2WIXgjuBpGspZ2li7GLmHGLaQhWB3aMfY19i/sUi2pTi/sIi/sEynS6i7yLoaCmsAiNBuwEi2J2c2mLaot3pYuyi8GvnbeLlIuTipaJCPtE+AQV5fExBvc2JRXl8TEGDov3fxbx9/UGi/VHwTaLXYtle3BwcHB7ZYheCO4GkaylnaWLsYuYcYtpCFYHdox9jX2L+xSLalOL+wiL+wTKdLqLvIuhoKawCI0G7ASLYnZzaYtqi3eli7KLwa+dt4uUi5OKlokIQPiFFfsABvcY+yEFzQYOi/d/FvH39QaL9UfBNotdi2V7cHBwcHtliF4I7gaRrKWdpYuxi5hxi2kIVgd2jH2NfYv7FItqU4v7CIv7BMp0uou8i6GgprAIjQbsBItidnNpi2qLd6WLsovBr523i5SLk4qWiQj7LPhOFYtUuVzDi8OLubmLw4vCXbpTi1OLXV2LUwi0Foutpqati62LpnCLaYtpcHBpi2mLcKaLrQgOi/d/FvH39QaL9UfBNotdi2V7cHBwcHtliF4I7gaRrKWdpYuxi5hxi2kIVgd2jH2NfYv7FItqU4v7CIv7BMp0uou8i6GgprAIjQbsBItidnNpi2qLd6WLsovBr523i5SLk4qWiQjQ+HUVinF8eG+LdYsws2yLS4tyWX9OCL4GjKWanqeLoovlY6qLy4ukvZfICA6L9+X3axX3IAeL5FHQLYtNi1xuc199cYZni2II+zsHi2KQZ5lxo1+6bsmLuouwnKanpaaasou1CCUGiXWCbmSLbIt4nYurCNAH9x4Ei7Gen6qLqoued4tlCFEnB3z3qxXNBvcY9yEF+wAGDov35fdrFfcgB4vkUdAti02LXG5zX31xhmeLYgj7OweLYpBnmXGjX7puyYu6i7Ccpqelppqyi7UIJQaJdYJuZItsi3idi6sI0Af3HgSLsZ6fqouqi553i2UIUScHLPerFdkGzurOLAXZBin3IQUtBg6L9+X3axX3IAeL5FHQLYtNi1xuc199cYZni2II+zsHi2KQZ5lxo1+6bsmLuouwnKanpaaasou1CCUGiXWCbmSLbIt4nYurCNAH9x4Ei7Gen6qLqoued4tlCFEnBz/3txXl8TEG9zYlFeXxMQYOi/fl92sV9yAHi+RR0C2LTYtcbnNffXGGZ4tiCPs7B4tikGeZcaNfum7Ji7qLsJymp6WmmrKLtQglBol1gm5ki2yLeJ2LqwjQB/ceBIuxnp+qi6qLnneLZQhRJwek+DgV+wAG9xj7IQXNBg77TLUW8fiPJQZ9zhXNBvcY9yEF+wAGDvtMtRbx+I8lBi3OFdkGzurOLAXZBin3IQUtBg77TLUW8fiPJQZA2hXl8TEG9zYlFeXxMQYO+0y1FvH4jyUGpfdkFfsABvcY+yEFzQYOnrUW8ffpBou4mKSxi6uLnXSLZgj78/H4GQeL5lWsWItci290dmsIibwlBvek91QVinF8eG+LdYsws2yLS4tyWX9OCL4GjKWanqeLoovlY6qLy4ukvZfICA6LrPc+FYtikGeZcaNfum7Ji8mLuqijt5mlkK+LtAj3OweLtIavfaVzt1yoTYtNi1xuc199cYZni2II8ZsVi7Gen6qLqoued4tlCPtbB4tleHdsi2yLeJ+LsQh8+DgVzQb3GPchBfsABg6LrPc+FYtikGeZcaNfum7Ji8mLuqijt5mlkK+LtAj3OweLtIavfaVzt1yoTYtNi1xuc199cYZni2II8ZsVi7Gen6qLqoued4tlCPtbB4tleHdsi2yLeJ+LsQgs+DgV2QbO6s4sBdkGKfchBS0GDous9z4Vi2KQZ5lxo1+6bsmLyYu6qKO3maWQr4u0CPc7B4u0hq99pXO3XKhNi02LXG5zX31xhmeLYgjxmxWLsZ6fqouqi553i2UI+1sHi2V4d2yLbIt4n4uxCD/4RBXl8TEG9zYlFeXxMQYOi6z3PhWLYpBnmXGjX7puyYvJi7qoo7eZpZCvi7QI9zsHi7SGr32lc7dcqE2LTYtcbnNffXGGZ4tiCPGbFYuxnp+qi6qLnneLZQj7WweLZXh3bItsi3ifi7EIpPjFFfsABvcY+yEFzQYOi6z3PhWLYpBnmXGjX7puyYvJi7qoo7eZpZCvi7QI9zsHi7SGr32lc7dcqE2LTYtcbnNffXGGZ4tiCPGbFYuxnp+qi6qLnneLZQj7WweLZXh3bItsi3ifi7EI9z34tRWKcXx4b4t1izCzbItLi3JZf04IvgaMpZqep4uii+VjqovLi6S9l8gIDnn31/gBFYrfT8s4izmLR02LNYtHslvLcwi8eQWyfJd4i2+LaW92botli36oh6cIKwaPJ89W24vji8vQi9+Lx3PBP6gIT6MFZZqGnYuei6WdpKuLpoujeYxpCOn38hU9BkgsSOoFPQbt+yEF6QYOnvfv+I8VJfvpBotefnJli2uLeaKLsAj38yX8GQeLMMFqvou6i6eioKsIjVrxBvtt+NIVzQb3GPchBfsABg6e9+/4jxUl++kGi15+cmWLa4t5oouwCPfzJfwZB4swwWq+i7qLp6KgqwiNWvEG+7340hXZBs7qziwF2QYp9yEFLQYOnvfv+I8VJfvpBotefnJli2uLeaKLsAj38yX8GQeLMMFqvou6i6eioKsIjVrxBvuq+N4V5fExBvc2JRXl8TEGDp737/iPFSX76QaLXn5yZYtri3mii7AI9/Ml/BkHizDBar6LuounoqCrCI1a8Qb7RflfFfsABvcY+yEFzQYOeYr4jxX3H/x4BXT7Cn59YosIdCunBsiLxaWh5gj3JvjnBSIGRvvQBYkGRffQBY/OFc0G9xj3IQX7AAYOeYr4jxX3H/x4BXT7Cn59YosIdCunBsiLxaWh5gj3JvjnBSIGRvvQBYkGRffQBVLaFeXxMQb3NiUV5fExBg5UnBb3rev7OQb3OffeBdz7oDH3LAf7OfvkBfey+Q4VPQZILEjqBT0G7fshBekGDnyLBvdcFPgGFQAAugAAALoAAADwADgBFgAhAXQABgF0AAsBYAAJAeEAJAC6ACoA3gAyAN4AEwFyAB8CWAAvALoAKgGFACwAugAqAN4ABQF0ACIBdAA1AXQAIgF0ACIBdAAJAXQAIgF0ACIBdAAiAXQAIgF0ACIAugAqALoAKgJYAC8CWAAvAlgALwFyACADIAA2AZcAAgGqADABlwAqAaoAMAFyADABcgAwAaoAKgGqADAAzAAzAU3/6gGqADABcgAwAiwAMAG8ACwBqgAqAZcAMAGqACoBqgAwAZYAHAFM//0BqgAwAZcADQJRABABhf/+AYQAAwFNAA8A3gA6AN4ABQDeAAgCWAAyAfQAAAC6ACoBcgAZAYUAKgFyADABhQAqAXIAIQDeAAUBhQAqAYUAKgC6ACoAuv/qAYUAKgC6ACQCUAAqAYUAKgFyACEBhQAqAYUAKgEWACoBYAAYAMz/9wGFACoBYP//AhgAAQFM//UBYP//ATsAEQDeAAMA3gBHAN4AAwJYAEUA8AA4AXQAIgF0AA0Ap/9bAXQABAF0/8QBcgAhAXQABAC6ADUBFgASAaoACgDxAAoA8QAcAZcABQGXAAUB9AAAAXIABgFyAAYAugAdAbwACAH0AEgAugAqARYAEgEWABIBqgAcA+gAdAIZAAkBcgAgALr/2AC6ABwAuv/MALr/swC6/9QAuv/DALoAMAC6/98Auv/3ALr/8QC6/8oAuv//ALr/zAPoAAACYwACAPAADgFyAAABqgAKAmIAMADwABICPAAZALoAKgC6//IBcgAEAjwAIQGFACoCWAAvAisACwIrAAsA8gAbAlgAQwMgACYBlwAwAN4ARwGqAAACKwALAlgALwFyADABcgAhAlgALwGXACoBhQAqAyAAJgJYAC8A8gALAPIACwPeACcBBAASAYUAKgGXAAIBlwACAZcAAgGXAAIBlwACAZcAAgFyADABcgAwAXIAMAFyADAAzAAzAMwAMwDMADMAzAAzAbwALAGqACoBqgAqAaoAKgGqACoBqgAqAZYAHAGqADABqgAwAaoAMAGqADABhAADAYQAAwFNAA8BcgAZAXIAGQFyABkBcgAZAXIAGQFyABkBcgAhAXIAIQFyACEBcgAhALoAKgC6ACoAugAqALoAKgGFACoBcgAhAXIAIQFyACEBcgAhAXIAIQFgABgBhQAqAYUAKgGFACoBhQAqAWD//wFg//8BOwARAAAAAQAAAAAAAQAAAAwAAAAAAAAAAgABAAAA5AABAAAAAQAAAAoAHgAsAAFsYXRuAAgABAAAAAD//wABAAAAAWtlcm4ACAAAAAEAAAABAAQAAgAAAAEACAABArwABAAAACAASgBYAH4AhACWALQAzgDkAQIBGAEyATwAfgF6AaQB1gIEAgoCGAIiAjQCPgJIAgoCUgJYAnoCgAKWAoACrAK2AAMACP/eAEX/tgBU/8kACQAI/8kANf/JADf/2wA4/9sAOv/JAFf/7gBY/+4AWv/uAHf/yQABACL/9AAEACL/9AA3/+4AOP/0ADr/7gAHAA3/kQAP/5EAIv/OAEb/7gBK//QAUP/uAFP/7gAGAA3/7gAP/+4AQv/6AEb/+gBQ//oAVv/6AAUAMP/0AEb/9ABQ//QAVv/0AFr/7gAHAAj/pAA1/7YAN/+2ADj/tgA6/6QAWv/JAHf/tQAFACL/9AA1//QAN//uADj/9AA6/+4ABgAN/38AD/9/ACL/2wBC//QARv/0AFD/9AACADX/7gA6/+4ADwAN/6QADv/CAA//pAAb/8QAHP/CACL/yQAw//QAQv/CAEb/wgBK/+4AUP/CAFP/wgBW/8IAWP+2AFr/yQAKAA3/pAAO/9sAD/+kABv/7gAc/+4AIv/bAEL/2wBG/9sAUP/bAFb/4gAMAA3/tgAO/+4AD/+2ABv/7gAc/+4AIv/iADD/9ABC/+4ARv/uAFD/7gBW/+4AWv/0AAsADf+kAA7/tgAP/6QAG//bABz/yQAi/8kAQv/JAEb/yQBK/+4AUP/JAFb/yQABAEH/3gADAFf/+gBY//oAWv/0AAIAV//6AFr/9AAEAEn/9ABM//QATf/0AFr/7gACAFf/9ABa//QAAgAIABIAdwAMAAIARv/0AFD/9AABAFr/9AAIAA3/tgAO/9sAD/+2AEL/+gBE//QAUP/6AFcAEgBaABIAAQBY//QABQAN/8kAD//JAEL/+gBG//oAUP/6AAUADf/bAA//2wBC//oARv/6AFD/+gACAEb/+gBQ//oAAQAi/8kAAQAgAAgAIgAjACUAJwArACwALQAwADEAMwA1ADYANwA4ADoAQQBCAEMARABGAEcATABQAFEAUwBUAFcAWABaAFsAaQABAAAACgAcAB4AAWxhdG4ACAAEAAAAAP//AAAAAAAA
+ ) format('truetype');
+ font-weight: normal;
+ font-style: normal;
+}
+
+.DIN-font{
+ display: inline-block;
+ font-family: 'DINEngschrift-Alternate';
+ speak: none;
+ font-size: 16px;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ text-rendering: auto;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ vertical-align: middle;
+}
\ No newline at end of file
diff --git a/src/assets/css/element-ui-override.scss b/src/assets/css/element-ui-override.scss
new file mode 100644
index 0000000..e3faabe
--- /dev/null
+++ b/src/assets/css/element-ui-override.scss
@@ -0,0 +1,140 @@
+/*覆盖element-ui自带的样式放在该文件中*/
+
+.el-input {
+ height: 34px;
+}
+
+.el-input__inner {
+ padding-left: 15px;
+ height: 34px;
+ border-radius: 0;
+ border: 0;
+ background: #313847;
+ font-size: 14px;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 600;
+ color: #ffffff;
+}
+
+.el-loading-mask {
+ position: absolute;
+ z-index: 2000;
+ background-color: rgba(0, 0, 0, 0.7);
+ margin: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ transition: opacity 0.3s;
+}
+
+.el-loading-spinner .circular {
+ margin: auto;
+}
+
+.el-table {
+ background-color: #000a1f;
+
+ &::before {
+ background-color: unset;
+ }
+
+ .el-table__header {
+ thead {
+ color: #fff;
+
+ tr {
+ border-bottom: unset;
+
+ th.el-table__cell.is-leaf {
+ border-bottom: unset;
+ }
+
+ th {
+ font-weight: 600;
+ }
+
+ .el-table__cell {
+ padding: 6px 0;
+ background-color: #5e616e;
+ }
+ }
+ }
+ }
+
+ .el-table__body {
+ tbody {
+ tr.el-table__row {
+ background-color: #000a1f;
+ color: #fff;
+ font-weight: 600;
+ td.el-table__cell {
+ padding: 0;
+ border-bottom: unset;
+ }
+ &:hover {
+ td.el-table__cell {
+ background-color: rgba(255, 255, 255, 0.1);
+ }
+ }
+ }
+ }
+ }
+
+ // &--striped {
+ // .el-table__body {
+ // tr.el-table__row--striped {
+ // td.el-table__cell {
+ // background-color: rgba(255, 255, 255, 0.1);
+ // }
+ // }
+ // }
+ // }
+}
+
+.el-pagination {
+ &.is-background {
+ .el-pager li {
+ background-color: rgba(233, 234, 240, 0.1);
+ color: #fefefe;
+ &:not(.disabled).active {
+ background-color: #3661eb;
+ }
+ }
+
+ .btn-prev {
+ background-color: #3661eb;
+ color: #fff;
+ &:disabled {
+ background-color: rgba(54, 97, 235, 0.5);
+ color: rgba(246, 247, 250, 0.5);
+ }
+ }
+
+ .btn-next {
+ background-color: #3661eb;
+ color: #f6f7fa;
+ &:disabled {
+ background-color: rgba(54, 97, 235, 0.5);
+ color: rgba(246, 247, 250, 0.5);
+ }
+ }
+ }
+}
+.el-select,
+.el-input__inner{
+ height: 32px;
+ line-height: 32px;
+ background: rgba(255,255,255,0.15);
+ color: #fff;
+ border: none;
+ outline: none;
+}
+ //未选中框时右侧文字
+ .el-checkbox__label{
+ color: #fff;
+ }
+ //选中框时右侧文字
+ .el-checkbox__input.is-checked+.el-checkbox__label{
+ color: #fff;
+ }
\ No newline at end of file
diff --git a/src/assets/css/sass.scss b/src/assets/css/sass.scss
new file mode 100644
index 0000000..d204e74
--- /dev/null
+++ b/src/assets/css/sass.scss
@@ -0,0 +1,3 @@
+@function count($val) {
+ @return calc($val / 1920 * 100vw);
+}
\ No newline at end of file
diff --git a/src/assets/css/self-global.scss b/src/assets/css/self-global.scss
new file mode 100644
index 0000000..0fedc91
--- /dev/null
+++ b/src/assets/css/self-global.scss
@@ -0,0 +1,40 @@
+/*自定义全局样式放在该文件中*/
+
+/*自定义滚动条*/
+::-webkit-scrollbar {
+ width: 6px;
+}
+
+::-webkit-scrollbar-thumb {
+ background-color: #4a6cf7;
+}
+
+::-webkit-scrollbar-track {
+ background-color: hsla(0, 0%, 100%, 0.1);
+}
+
+.scrollbar-white::-webkit-scrollbar-thumb {
+ background-color: #fff;
+}
+
+body {
+ overflow: hidden;
+}
+
+.vjs-control-bar {
+ background-color: rgba(0, 0, 0, 0.6);
+}
+
+//覆盖videojs默认的一些样式
+.vjs-slider-horizontal {
+ .vjs-volume-level::before {
+ top: -4px;
+ }
+ .vjs-play-progress::before {
+ top: -5px;
+ }
+}
+
+.vjs-slider-vertical .vjs-volume-level:before {
+ left: -4px;
+}
diff --git a/src/assets/css/tail-wind/index.css b/src/assets/css/tail-wind/index.css
new file mode 100644
index 0000000..8a90c80
--- /dev/null
+++ b/src/assets/css/tail-wind/index.css
@@ -0,0 +1,5 @@
+@tailwind base;
+
+@tailwind components;
+
+@tailwind utilities;
\ No newline at end of file
diff --git a/src/assets/images/backgrounds/PM10.png b/src/assets/images/backgrounds/PM10.png
new file mode 100644
index 0000000..501d4f6
--- /dev/null
+++ b/src/assets/images/backgrounds/PM10.png
Binary files differ
diff --git a/src/assets/images/backgrounds/PM2.png b/src/assets/images/backgrounds/PM2.png
new file mode 100644
index 0000000..0f78b28
--- /dev/null
+++ b/src/assets/images/backgrounds/PM2.png
Binary files differ
diff --git a/src/assets/images/backgrounds/cover_bg.png b/src/assets/images/backgrounds/cover_bg.png
new file mode 100644
index 0000000..fe5fb77
--- /dev/null
+++ b/src/assets/images/backgrounds/cover_bg.png
Binary files differ
diff --git a/src/assets/images/backgrounds/daqishidu.png b/src/assets/images/backgrounds/daqishidu.png
new file mode 100644
index 0000000..442146d
--- /dev/null
+++ b/src/assets/images/backgrounds/daqishidu.png
Binary files differ
diff --git a/src/assets/images/backgrounds/daqiwendu.png b/src/assets/images/backgrounds/daqiwendu.png
new file mode 100644
index 0000000..cf44f97
--- /dev/null
+++ b/src/assets/images/backgrounds/daqiwendu.png
Binary files differ
diff --git a/src/assets/images/backgrounds/fengli.png b/src/assets/images/backgrounds/fengli.png
new file mode 100644
index 0000000..64e8701
--- /dev/null
+++ b/src/assets/images/backgrounds/fengli.png
Binary files differ
diff --git a/src/assets/images/backgrounds/fengxiang.png b/src/assets/images/backgrounds/fengxiang.png
new file mode 100644
index 0000000..6c519aa
--- /dev/null
+++ b/src/assets/images/backgrounds/fengxiang.png
Binary files differ
diff --git a/src/assets/images/backgrounds/home.png b/src/assets/images/backgrounds/home.png
new file mode 100644
index 0000000..9e276bc
--- /dev/null
+++ b/src/assets/images/backgrounds/home.png
Binary files differ
diff --git a/src/assets/images/backgrounds/home_active.png b/src/assets/images/backgrounds/home_active.png
new file mode 100644
index 0000000..f876c6e
--- /dev/null
+++ b/src/assets/images/backgrounds/home_active.png
Binary files differ
diff --git a/src/assets/images/backgrounds/home_line.png b/src/assets/images/backgrounds/home_line.png
new file mode 100644
index 0000000..8bc88f4
--- /dev/null
+++ b/src/assets/images/backgrounds/home_line.png
Binary files differ
diff --git a/src/assets/images/backgrounds/jianlidanwei.png b/src/assets/images/backgrounds/jianlidanwei.png
new file mode 100644
index 0000000..56e798b
--- /dev/null
+++ b/src/assets/images/backgrounds/jianlidanwei.png
Binary files differ
diff --git a/src/assets/images/backgrounds/jianshedanwei.png b/src/assets/images/backgrounds/jianshedanwei.png
new file mode 100644
index 0000000..793e8ae
--- /dev/null
+++ b/src/assets/images/backgrounds/jianshedanwei.png
Binary files differ
diff --git a/src/assets/images/backgrounds/jianzhumianji.png b/src/assets/images/backgrounds/jianzhumianji.png
new file mode 100644
index 0000000..afcded8
--- /dev/null
+++ b/src/assets/images/backgrounds/jianzhumianji.png
Binary files differ
diff --git a/src/assets/images/backgrounds/logo.png b/src/assets/images/backgrounds/logo.png
new file mode 100644
index 0000000..0c1311a
--- /dev/null
+++ b/src/assets/images/backgrounds/logo.png
Binary files differ
diff --git a/src/assets/images/backgrounds/mubiaowanc.png b/src/assets/images/backgrounds/mubiaowanc.png
new file mode 100644
index 0000000..354a3f6
--- /dev/null
+++ b/src/assets/images/backgrounds/mubiaowanc.png
Binary files differ
diff --git a/src/assets/images/backgrounds/mubiaowancheng.png b/src/assets/images/backgrounds/mubiaowancheng.png
new file mode 100644
index 0000000..354a3f6
--- /dev/null
+++ b/src/assets/images/backgrounds/mubiaowancheng.png
Binary files differ
diff --git a/src/assets/images/backgrounds/people.png b/src/assets/images/backgrounds/people.png
new file mode 100644
index 0000000..e28ef44
--- /dev/null
+++ b/src/assets/images/backgrounds/people.png
Binary files differ
diff --git a/src/assets/images/backgrounds/screen.png b/src/assets/images/backgrounds/screen.png
new file mode 100644
index 0000000..105a607
--- /dev/null
+++ b/src/assets/images/backgrounds/screen.png
Binary files differ
diff --git a/src/assets/images/backgrounds/search.png b/src/assets/images/backgrounds/search.png
new file mode 100644
index 0000000..78971c1
--- /dev/null
+++ b/src/assets/images/backgrounds/search.png
Binary files differ
diff --git a/src/assets/images/backgrounds/shejidanwei.png b/src/assets/images/backgrounds/shejidanwei.png
new file mode 100644
index 0000000..1a45ede
--- /dev/null
+++ b/src/assets/images/backgrounds/shejidanwei.png
Binary files differ
diff --git a/src/assets/images/backgrounds/shigongdanwei.png b/src/assets/images/backgrounds/shigongdanwei.png
new file mode 100644
index 0000000..cb5bbda
--- /dev/null
+++ b/src/assets/images/backgrounds/shigongdanwei.png
Binary files differ
diff --git a/src/assets/images/backgrounds/shigongjinduchart.png b/src/assets/images/backgrounds/shigongjinduchart.png
new file mode 100644
index 0000000..d4161dc
--- /dev/null
+++ b/src/assets/images/backgrounds/shigongjinduchart.png
Binary files differ
diff --git a/src/assets/images/backgrounds/shishirenshu.png b/src/assets/images/backgrounds/shishirenshu.png
new file mode 100644
index 0000000..a2911f5
--- /dev/null
+++ b/src/assets/images/backgrounds/shishirenshu.png
Binary files differ
diff --git a/src/assets/images/backgrounds/table_bg.png b/src/assets/images/backgrounds/table_bg.png
new file mode 100644
index 0000000..42c8dfa
--- /dev/null
+++ b/src/assets/images/backgrounds/table_bg.png
Binary files differ
diff --git a/src/assets/images/backgrounds/time.png b/src/assets/images/backgrounds/time.png
new file mode 100644
index 0000000..d6ffbd0
--- /dev/null
+++ b/src/assets/images/backgrounds/time.png
Binary files differ
diff --git a/src/assets/images/backgrounds/zaigang.png b/src/assets/images/backgrounds/zaigang.png
new file mode 100644
index 0000000..66a7f8e
--- /dev/null
+++ b/src/assets/images/backgrounds/zaigang.png
Binary files differ
diff --git a/src/assets/images/backgrounds/zhihui.png b/src/assets/images/backgrounds/zhihui.png
new file mode 100644
index 0000000..52fce69
--- /dev/null
+++ b/src/assets/images/backgrounds/zhihui.png
Binary files differ
diff --git a/src/assets/images/backgrounds/zhihui_active.png b/src/assets/images/backgrounds/zhihui_active.png
new file mode 100644
index 0000000..7dce64a
--- /dev/null
+++ b/src/assets/images/backgrounds/zhihui_active.png
Binary files differ
diff --git a/src/assets/images/backgrounds/zoomout.png b/src/assets/images/backgrounds/zoomout.png
new file mode 100644
index 0000000..0d985b4
--- /dev/null
+++ b/src/assets/images/backgrounds/zoomout.png
Binary files differ
diff --git a/src/assets/images/titles/huanjing.png b/src/assets/images/titles/huanjing.png
new file mode 100644
index 0000000..75869fd
--- /dev/null
+++ b/src/assets/images/titles/huanjing.png
Binary files differ
diff --git a/src/assets/images/titles/renyuan.png b/src/assets/images/titles/renyuan.png
new file mode 100644
index 0000000..67ecffe
--- /dev/null
+++ b/src/assets/images/titles/renyuan.png
Binary files differ
diff --git a/src/assets/images/titles/shebei.png b/src/assets/images/titles/shebei.png
new file mode 100644
index 0000000..e058c27
--- /dev/null
+++ b/src/assets/images/titles/shebei.png
Binary files differ
diff --git a/src/assets/images/titles/shigong.png b/src/assets/images/titles/shigong.png
new file mode 100644
index 0000000..b36b3bd
--- /dev/null
+++ b/src/assets/images/titles/shigong.png
Binary files differ
diff --git a/src/assets/images/titles/title_second.png b/src/assets/images/titles/title_second.png
new file mode 100644
index 0000000..5dcccc4
--- /dev/null
+++ b/src/assets/images/titles/title_second.png
Binary files differ
diff --git a/src/assets/images/titles/wendu_bg.png b/src/assets/images/titles/wendu_bg.png
new file mode 100644
index 0000000..523c791
--- /dev/null
+++ b/src/assets/images/titles/wendu_bg.png
Binary files differ
diff --git a/src/assets/images/titles/xiangmu.png b/src/assets/images/titles/xiangmu.png
new file mode 100644
index 0000000..e9ebe9a
--- /dev/null
+++ b/src/assets/images/titles/xiangmu.png
Binary files differ
diff --git a/src/assets/images/titles/xiangmu_bg.png b/src/assets/images/titles/xiangmu_bg.png
new file mode 100644
index 0000000..4da7a71
--- /dev/null
+++ b/src/assets/images/titles/xiangmu_bg.png
Binary files differ
diff --git a/src/components/Collapse.vue b/src/components/Collapse.vue
new file mode 100644
index 0000000..d67f576
--- /dev/null
+++ b/src/components/Collapse.vue
@@ -0,0 +1,154 @@
+<template>
+ <div class="inline-block outerWrapper" ref="outerWrapper" :style="outerWrapperStyle">
+ <div class="relative collapseWrapper" ref="collapseWrapper">
+ <slot ref="content"></slot>
+ <div class="absolute flex justify-center items-center cursor-pointer" :class="collapseBarClass" ref="bar" @click="toggleCollapsed">
+ <img ref="triangleIcon" class="triangleIcon w-1.5 h-1.5" :class="triangleClass" src="../assets/images/triangle.png" alt="方向三角" />
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+ const DirectionsMap = {
+ left: "cleft",
+ right: "cright",
+ top: "ctop",
+ bottom: "cbottom",
+ };
+ export default {
+ name: "Collapse",
+ props: {
+ direction: {
+ type: String,
+ default: DirectionsMap.left,
+ validator(v) {
+ return Object.keys(DirectionsMap).includes(v);
+ },
+ },
+ bgc: {
+ type: String,
+ default: "#334CAF",
+ },
+ },
+ data() {
+ return {
+ isCollapsed: false,
+ width: "",
+ height: "",
+ };
+ },
+ computed: {
+ triangleClass() {
+ switch (this.direction) {
+ case "left":
+ return "rotate-0";
+ case "right":
+ return "rotate-180";
+ case "top":
+ return "rotate-90";
+ case "bottom":
+ return "-rotate-90";
+ default:
+ break;
+ }
+ return "";
+ },
+ collapseBarClass() {
+ switch (this.direction) {
+ case "left":
+ return "top-[50%] right-0 translate-x-full -translate-y-[50%] w-3 h-16 triangleLeftBg";
+ case "right":
+ return "top-[50%] left-0 -translate-x-full -translate-y-[50%] w-3 h-16 triangleRightBg";
+ case "top":
+ return "bottom-0 left-[50%] -translate-x-[50%] translate-y-full w-16 h-3";
+ case "bottom":
+ return "top-0 left-[50%] -translate-x-[50%] -translate-y-full w-16 h-3";
+ default:
+ break;
+ }
+ return "";
+ },
+ outerWrapperStyle() {
+ return {
+ width: this.width,
+ height: this.height,
+ };
+ },
+ },
+ mounted() {
+ // console.log("Collapsed-mounted");
+ this.setSizeInfo();
+ },
+ methods: {
+ setSizeInfo() {
+ const elm = this.$scopedSlots.default()[0].elm;
+ if (elm) {
+ const { width, height } = window.getComputedStyle(elm);
+ this.width = width;
+ this.height = height;
+ }
+ },
+ toggleCollapsed() {
+ this.isCollapsed = !this.isCollapsed;
+ const outerWrapperClasslist = this.$refs.outerWrapper.classList;
+ if (this.isCollapsed) {
+ outerWrapperClasslist.add("collapsed");
+ outerWrapperClasslist.add(this.direction);
+ this.$emit(`collapse${this.direction}`);
+ } else {
+ outerWrapperClasslist.remove("collapsed");
+ outerWrapperClasslist.remove(this.direction);
+ this.$emit(`uncollapse${this.direction}`);
+ }
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ .outerWrapper {
+ transition: all 0.3s linear;
+ .triangleLeftBg {
+ background-image: url("../assets/images/triangle-left.png");
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center center;
+ }
+ .triangleRightBg {
+ background-image: url("../assets/images/triangle-right.png");
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center center;
+ }
+ &.collapsed {
+ &.right {
+ // width: 0px !important;
+ transform: translate3d(100%, 0, 0);
+ .triangleIcon {
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+ }
+ &.left {
+ transform: translate3d(-100%, 0, 0);
+ .triangleIcon {
+ transform: rotate3d(0, 0, 1, 180deg);
+ }
+ }
+ &.bottom {
+ height: 0 !important;
+ bottom: 0 !important;
+ .triangleIcon {
+ transform: rotate3d(0, 0, 1, 90deg);
+ }
+ }
+ &.top {
+ height: 0 !important;
+ top: 0 !important;
+ .triangleIcon {
+ transform: rotate3d(0, 0, 1, 270deg);
+ }
+ }
+ }
+ }
+</style>
diff --git a/src/components/DialogFixed.vue b/src/components/DialogFixed.vue
new file mode 100644
index 0000000..f94e5a4
--- /dev/null
+++ b/src/components/DialogFixed.vue
@@ -0,0 +1,108 @@
+<template>
+ <el-dialog v-bind="finalAttrs" v-on="$listeners" custom-class="dialogCus" :append-to-body="false" :modal-append-to-body="false">
+ <div :style="contentWrapperStyle" v-bind="$props">
+ <img class="absolute top-0 bottom-0 left-0 right-0 w-full h-full" src="../assets/images/dialog/dialog-bg.png" alt="背景" />
+ <img class="z-[9999]" :style="closeIconStyle" src="../assets/images/dialog/close.png" alt="关闭" @click="onCloseIconClick" />
+ <div class="relative z-50 w-full h-full">
+ <slot></slot>
+ </div>
+ </div>
+ </el-dialog>
+</template>
+
+<script>
+ export default {
+ name: "DialogFixed",
+ inheritAttrs: false,
+ props: {
+ width: {
+ type: String,
+ default: "1025px",
+ },
+ height: {
+ type: String,
+ default: "560px",
+ },
+ closeIconWidth: {
+ type: String,
+ default: "64px",
+ },
+ closeIconHeight: {
+ type: String,
+ default: "26px",
+ },
+ closeIconTop: {
+ type: String,
+ default: "17px",
+ },
+ closeIconRight: {
+ type: String,
+ default: "8px",
+ },
+ },
+ computed: {
+ contentWrapperStyle() {
+ return {
+ position: "relative",
+ display: "flex",
+ width: `${this.width}`,
+ height: `${this.height}`,
+ "justify-content": "center",
+ "align-items": "center",
+ color: "#FFF",
+ };
+ },
+ closeIconStyle() {
+ return {
+ position: "absolute",
+ top: `${this.closeIconTop}`,
+ right: `${this.closeIconRight}`,
+ width: `${this.closeIconWidth}`,
+ height: `${this.closeIconHeight}`,
+ cursor: "pointer",
+ };
+ },
+ finalAttrs() {
+ return Object.assign(
+ {
+ modal: true,
+ "modal-append-to-body": true,
+ "append-to-body": false,
+ "lock-scroll": true,
+ "close-on-click-modal": false,
+ "close-on-press-escape": true,
+ "show-close": false,
+ "destroy-on-close": false,
+ },
+ this.$attrs,
+ );
+ },
+ },
+ methods: {
+ onCloseIconClick() {
+ this.$emit("update:visible", false);
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ ::v-deep .el-dialog.dialogCus {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: 0 !important;
+ width: auto;
+ background: transparent;
+ border-radius: initial;
+ box-shadow: initial;
+ box-sizing: border-box;
+ transform: translate3d(-50%, -50%, 0);
+ .el-dialog__header {
+ display: none;
+ }
+ // .el-table tr {
+ // background-color: initial;
+ // }
+ }
+</style>
diff --git a/src/components/Divide.vue b/src/components/Divide.vue
new file mode 100644
index 0000000..d7a2028
--- /dev/null
+++ b/src/components/Divide.vue
@@ -0,0 +1,46 @@
+<template>
+ <div :style="styleObj"></div>
+</template>
+
+<script>
+ const Directions = ["x", "y"];
+ export default {
+ name: "Divide",
+ props: {
+ direction: {
+ type: String,
+ default: "y",
+ validator(v) {
+ return Directions.includes(v);
+ },
+ },
+ width: {
+ type: String,
+ default: "1px",
+ },
+ height: {
+ type: String,
+ default: "24px",
+ },
+ bgc: {
+ type: String,
+ default: "#fff",
+ },
+ opacity: {
+ type: Number,
+ default: 1,
+ },
+ },
+ computed: {
+ styleObj() {
+ return {
+ width: this.width,
+ height: this.height,
+ backgroundColor: this.bgc,
+ opacity: this.opacity,
+ transform: this.direction === "x" ? "rotate3d(0,0,1,90deg)" : "",
+ };
+ },
+ },
+ };
+</script>
diff --git a/src/components/DropDown.vue b/src/components/DropDown.vue
new file mode 100644
index 0000000..b72d739
--- /dev/null
+++ b/src/components/DropDown.vue
@@ -0,0 +1,108 @@
+<template>
+ <div class="dropdownWrapper relative w-[372px] h-[40px] p-[20px] flex rounded-tl-[6px] rounded-tr-[6px] bg-[#2849CD] items-center">
+ <img v-if="withIcon" class="mr-[14px] w-[15px] h-[12px]" src="../assets/images/list.png" alt="列表" />
+ <div class="flex items-center text-[16px] hover:cursor-pointer" @click="toggleOptions">
+ {{ selectedOption?.label ?? "暂无数据" }}
+ </div>
+ <div class="flex-1 flex items-center justify-end hover:cursor-pointer" @click="toggleOptions">
+ <div v-if="withText" class="mr-[8px] ml-[8px] text-[14px]">切换</div>
+ <img class="w-[8px] h-[8px]" :class="{ 'rotate-180': isOptionVisible }" src="../assets/images/triangle-down.png" alt="下拉" />
+ </div>
+ <!--下拉选项-->
+ <div
+ class="absolute z-50 top-full right-0 left-0 pl-[16px] pr-[12px] py-[16px] rounded-bl-[6px] rounded-br-[6px] transition-transform origin-top bg-[#2849CD]"
+ :class="dynamicClassStr"
+ >
+ <div class="max-h-[256px] space-y-2 overflow-y-auto scrollbar-white">
+ <template v-if="options?.length">
+ <div
+ v-for="v in options"
+ :key="v.id"
+ class="optionItem mr-[6px] min-h-[40px] py-[8px] px-[12px] rounded-[6px] flex items-center text-base hover:bg-[hsla(0,0%,100%,0.1)] hover:cursor-pointer"
+ :class="{ activated: v.id === selectedId }"
+ >
+ <div v-if="!v.disabled" class="w-full h-full flex justify-between items-center" @click="onOptionClick(v)">
+ <div>{{ v.label }}</div>
+ <template v-if="withCheck">
+ <div v-show="v.id === selectedId">✓</div>
+ </template>
+ </div>
+ <div v-else class="w-full h-full flex justify-between items-center cursor-not-allowed text-gray-400">
+ <div>{{ v.label }}</div>
+ </div>
+ </div>
+ </template>
+ <template v-else>
+ <div class="text-sm text-gray-400 font-thin cursor-not-allowed"> 暂无数据 </div>
+ </template>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+ export default {
+ name: "DropDown",
+ props: {
+ options: {
+ type: Array,
+ default() {
+ return [];
+ },
+ },
+ selectedId: {
+ type: String,
+ default: "",
+ },
+ withIcon: {
+ type: Boolean,
+ default: true,
+ },
+ withText: {
+ type: Boolean,
+ default: true,
+ },
+ withCheck: {
+ type: Boolean,
+ default: true,
+ },
+ },
+ data() {
+ return {
+ isOptionVisible: false,
+ };
+ },
+ computed: {
+ dynamicClassStr() {
+ return this.isOptionVisible ? "scale-y-1" : "scale-y-0";
+ },
+ selectedOption() {
+ return this.options.find((item) => item.id === this.selectedId);
+ },
+ },
+ methods: {
+ toggleOptions() {
+ this.isOptionVisible = !this.isOptionVisible;
+ },
+ onOptionClick(item) {
+ if (item.id === this.selectedId) {
+ this.toggleOptions();
+ return;
+ }
+ this.toggleOptions();
+ this.$emit("change", item);
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ .dropdownWrapper {
+ box-shadow: -1px 0px 25px 0px rgba(14, 15, 15, 0.1);
+ }
+ .optionItem {
+ &.activated {
+ background-color: #0e1120;
+ }
+ }
+</style>
diff --git a/src/components/FullScreenButton.vue b/src/components/FullScreenButton.vue
new file mode 100644
index 0000000..c139bc5
--- /dev/null
+++ b/src/components/FullScreenButton.vue
@@ -0,0 +1,62 @@
+<template>
+ <span @click="onFullscreen" class="inline-flex justify-center items-center w-[42px] h-[42px] rounded-md cursor-pointer bg-[hsla(0,0%,0%,0.9)]">
+ <img class="w-[18px] h-[18px]" src="../assets/images/fullscreen.png" alt="全屏" />
+ </span>
+</template>
+
+<script>
+ export default {
+ name: "FullscreenButton",
+ methods: {
+ onFullscreen() {
+ if (this.isFullscreenEnabled()) {
+ if (this.isFullScreen()) {
+ this.exitFullscreen();
+ } else {
+ this.openFullScreen(document.body);
+ }
+ }
+ },
+ // 判断当前文档是否能切换到全屏
+ isFullscreenEnabled() {
+ return document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled;
+ },
+ // 判断当前窗体是否为全屏状态
+ isFullScreen() {
+ return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.webkitFullScreen || document.msFullScreen);
+ },
+ // 打开全屏
+ openFullScreen(ele) {
+ if (ele.requestFullscreen) {
+ ele.requestFullscreen();
+ } else if (ele.mozRequestFullScreen) {
+ ele.mozRequestFullScreen();
+ } else if (ele.webkitRequestFullscreen) {
+ ele.webkitRequestFullscreen();
+ } else if (ele.msRequestFullscreen) {
+ ele.msRequestFullscreen();
+ }
+ this.$store.dispatch("common/setFullscreenInfo", {
+ isFullscreen: true,
+ fullscreenElement: ele,
+ });
+ },
+ // 退出全屏
+ exitFullscreen() {
+ if (document.exitFullscreen) {
+ document.exitFullscreen();
+ } else if (document.mozCancelFullScreen) {
+ document.mozCancelFullScreen();
+ } else if (document.webkitExitFullscreen) {
+ document.webkitExitFullscreen();
+ } else if (element.msExitFullscreen) {
+ element.msExitFullscreen();
+ }
+ this.$store.dispatch("common/setFullscreenInfo", {
+ isFullscreen: false,
+ fullscreenElement: null,
+ });
+ },
+ },
+ };
+</script>
diff --git a/src/components/Header.vue b/src/components/Header.vue
new file mode 100644
index 0000000..4b4c510
--- /dev/null
+++ b/src/components/Header.vue
@@ -0,0 +1,98 @@
+<template>
+ <header class="headerWrapper">
+ <div class="relative z-[100] w-full h-[80px]" :style="{
+ backgroundImage: `url(${backgroundImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }">
+ <div class="absolute top-0 left-1/2 -translate-x-1/2 h-full px-[16px] flex items-center justify-between">
+ <div class="flex flex-col items-center cursor-pointer relative" @click="onHomeClick('home')">
+ <div class="flex items-center">
+ <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'home' ? 'home_active.png' : 'home.png')" alt="">
+ <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{'text-[#FFBF00]': activeTab === 'home'}">项目首页</div>
+ </div>
+ <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'home'">
+ </div>
+ <div class="flex flex-col items-center ml-[78px] cursor-pointer relative" @click="onHomeClick('zhihui')">
+ <div class="flex items-center">
+ <img class="w-[20px] h-[20px]" :src="getImageUrl(activeTab === 'zhihui' ? 'zhihui_active.png' : 'zhihui.png')" alt="">
+ <div class="text-[20px] text-[#C8C8C8] ml-[8px]" :class="{'text-[#FFBF00]': activeTab === 'zhihui'}">智慧工地</div>
+ </div>
+ <img class="w-[116px] h-[8px] absolute bottom-[-4px]" :src="getImageUrl('home_line.png')" alt="" v-if="activeTab === 'zhihui'">
+ </div>
+ </div>
+ <div class="absolute top-0 right-0">
+ <div class="flex items-center h-[80px] mr-[20px]">
+ <img class="w-[20px] h-[20px]" :src="getImageUrl('time.png')" alt="">
+ <div class="text-[24px] text-[#FFBF00] ml-[8px]">{{ currentTime }}</div>
+ <div class="text-[16px] text-[#C8C8C8] ml-[20px]">{{ currentDate }}</div>
+ </div>
+ </div>
+ </div>
+ </header>
+</template>
+
+<script>
+ import DropDown from "./DropDown.vue";
+
+ export default {
+ name: "AppHeader",
+ components: {
+ "drop-down": DropDown,
+ },
+ data() {
+ return {
+ activeTab: 'home',
+ currentTime: '',
+ currentDate: '',
+ timer: null,
+ backgroundImage: new URL('@/assets/images/backgrounds/logo.png', import.meta.url).href
+ }
+ },
+ props: {
+ selectedId: {
+ type: String,
+ default: "",
+ },
+ optionList: {
+ type: Array,
+ default: () => [],
+ },
+ },
+ methods: {
+ getImageUrl(name) {
+ return new URL(`../assets/images/backgrounds/${name}`, import.meta.url).href
+ },
+ onHomeClick(tab) {
+ this.activeTab = tab;
+ },
+ onProjectChange(data) {
+ this.$store.commit("common/setCurrentProject", data);
+ },
+ updateTime() {
+ const now = new Date();
+ const hours = String(now.getHours()).padStart(2, '0');
+ const minutes = String(now.getMinutes()).padStart(2, '0');
+ const seconds = String(now.getSeconds()).padStart(2, '0');
+ this.currentTime = `${hours}:${minutes}:${seconds}`;
+
+ const year = now.getFullYear();
+ const month = String(now.getMonth() + 1).padStart(2, '0');
+ const day = String(now.getDate()).padStart(2, '0');
+ const weekDays = ['日', '一', '二', '三', '四', '五', '六'];
+ const weekDay = weekDays[now.getDay()];
+ this.currentDate = `${year}.${month}.${day} 星期${weekDay}`;
+ }
+ },
+ mounted() {
+ this.updateTime();
+ this.timer = setInterval(this.updateTime, 1000);
+ },
+ beforeDestroy() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ }
+ }
+ };
+</script>
diff --git a/src/components/Login.vue b/src/components/Login.vue
new file mode 100644
index 0000000..6a62431
--- /dev/null
+++ b/src/components/Login.vue
@@ -0,0 +1,171 @@
+<template>
+ <div class="login-wrapper">
+ <div class="video-wrapper">
+ <!--<video class="w-full h-full object-fill" muted autoplay="true" loop="loop" poster="/login/bg-video-poster.jpg">
+ <source src="/login/bg-video.mp4" type="video/mp4" />
+ </video>-->
+ <img src="/login/login-bg.jpg" alt="logo"/>
+ </div>
+ <div class="form-wrapper">
+ <img class="logo" src="/login/logo.png" alt="logo"/>
+ <div class="form">
+ <div class="content">
+ <el-form ref="loginForm" :inline="true" :model="formInline" size="medium" :rules="formInline.rules" @keyup.enter.native="doLogin">
+ <el-form-item prop="id">
+ <el-input class="el-formitem-cus id" v-model="formInline.id" placeholder="请输入您的账号"></el-input>
+ </el-form-item>
+ <el-form-item prop="pwd">
+ <el-input class="el-formitem-cus pwd" v-model="formInline.pwd" placeholder="请输入您的密码" :type="formInline.type">
+ <div slot="suffix" @click.stop="toggleInputType" class="hover:cursor-pointer">
+ <img v-if="isPassword" src="/login/eye-closed.png" alt="密码" />
+ <img v-else src="/login/eye.png" alt="文本" />
+ </div>
+ </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button class="el-formitem-cus btn-login" type="primary" :loading="isAuthenticating" @click="doLogin">登录</el-button>
+ </el-form-item>
+ <el-form-item class="rember">
+ <el-checkbox v-model="formInline.rember">记住我</el-checkbox>
+ </el-form-item>
+ </el-form>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+import { doAuthenticateLogin } from "../api/authenticate";
+export default {
+ name: "Login",
+ data() {
+ return {
+ formInline: {
+ id: "",
+ pwd: "",
+ type: "password",
+ rember: false,
+ rules: {
+ id: [{ required: true, message: "请输入账号", trigger: "change" }],
+ pwd: [{ required: true, message: "请输入密码", trigger: "change" }],
+ },
+ },
+ };
+ },
+ computed: {
+ ...mapGetters("common", ["isAuthenticating", "token"]),
+ isPassword() {
+ return this.formInline.type === "password";
+ },
+ },
+ methods: {
+ toggleInputType() {
+ if (this.formInline.type === "password") {
+ this.formInline.type = "text";
+ } else {
+ this.formInline.type = "password";
+ }
+ },
+ doLogin() {
+ this.$refs.loginForm.validate((valid) => {
+ if (valid) {
+ doAuthenticateLogin({ name: this.formInline.id, pwd: this.formInline.pwd }).then((loginResult) => {
+ if (loginResult?.code === 0) {
+ this.$router.replace("/home");
+ }
+ });
+ }
+ });
+ },
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+.login-wrapper {
+ position: relative;
+ width: 100%;
+ height: 100vh;
+ overflow: hidden;
+ .video-wrapper {
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ img{
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .form-wrapper {
+ margin-top: 180px;
+ display: flex;
+ width: 100%;
+ height: 100%;
+ flex-direction: column;
+ align-items: center;
+ .logo {
+ margin: 0 auto;
+ width: 606px;
+ // height: auto;
+ }
+ .form {
+ position: relative;
+ z-index: 2;
+ margin-top: 70px;
+ width: 966px;
+ min-height: 186px;
+ background: url("/login/form-bg.png") center/cover no-repeat;
+ .content {
+ display: flex;
+ position: absolute;
+ z-index: 90;
+ top: 70px;
+ left: 40px;
+ @apply space-x-3;
+ @apply font-pingfang;
+ flex-wrap: wrap;
+ justify-content: center;
+ align-items: center;
+ ::v-deep .el-formitem-cus {
+ height: 50px;
+ border: none;
+ font-size: 16px;
+ &.id,
+ &.pwd {
+ width: 360px;
+ .el-input__inner {
+ height: 50px;
+ background-color: #5b6693;
+ border-radius: 6px;
+ }
+ }
+ .el-input__suffix {
+ &-inner {
+ display: flex;
+ height: 100%;
+ align-items: center;
+ }
+ }
+ &.btn-login {
+ width: 130px;
+ background-color: rgba(0, 140, 153, 1);
+ }
+ }
+ ::v-deep .rember {
+ margin: 0;
+ margin-top: -8px;
+ width: 100%;
+ .el-checkbox__label {
+ color: #d8d7da;
+ }
+ }
+ }
+ }
+ }
+}
+</style>
diff --git a/src/components/MenuList.vue b/src/components/MenuList.vue
new file mode 100644
index 0000000..c08b441
--- /dev/null
+++ b/src/components/MenuList.vue
@@ -0,0 +1,264 @@
+<template>
+ <div class="menuListWrapper inline-block rounded-tr-[34px] rounded-br-[34px] w-[13.5rem] h-[45rem]">
+ <router-link
+ v-for="item in localMenusFiltered"
+ :key="item.id"
+ :to="item.to"
+ class="relative z-[100] menuItem flex items-center pl-6 py-[9px] pr-5 my-3 cursor-pointer"
+ active-class="activated"
+ exact
+ >
+ <img class="w-8" :src="item.icon" :alt="item.label" />
+ <div class="ml-[12px] text-[18px] text-[#FFF] text-opacity-60 menuName">{{ item.label }}</div>
+ </router-link>
+ <div
+ v-for="item in thirdMenus"
+ :key="item.id"
+ class="relative z-[100] thirdMenuItem flex items-center pl-6 py-[9px] pr-5 my-3"
+ :class="{
+ 'cursor-pointer': item.subMenus?.length > 0,
+ 'cursor-not-allowed': !item.subMenus || item.subMenus.length === 0,
+ hovered: activatedThirdMenu2?.id === item.id,
+ activated: activatedThirdMenu?.id === item.id,
+ }"
+ @mouseenter="onThirdMenuEnter(item)"
+ @mouseleave="onThirdMenuLeave(item)"
+ >
+ <img class="w-8" :src="item.icon" :alt="item.label" />
+ <div class="ml-[12px] font-pingfang text-[18px] text-[#FFF] text-opacity-60 menuName">{{ item.label }}</div>
+ <div v-show="item.subMenus?.length && activatedThirdMenu2?.id === item.id" class="absolute top-6 left-full min-w-[260px] submenusWrapper">
+ <div
+ v-for="submenu in item.subMenus"
+ :key="submenu.id"
+ @click.stop="onThirdMenuClick(submenu, item)"
+ class="submenuItem"
+ :class="{ activated: activatedThirdSubmenu?.id === submenu.id }"
+ >
+ <a v-if="submenu.needInvokeLocalApp" :href="submenu.to" target="_blank">{{ submenu.label }}</a>
+ <span v-else>{{ submenu.label }}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+ import CryptoJS from "crypto-js";
+ import { Message } from "element-ui";
+ import { mapGetters } from "vuex";
+
+ let workflowLoginURL;
+ let workflowWebURL;
+ let pid;
+ if (import.meta.env.PROD) {
+ //生产环境
+ const ProjectConfig = window.ProjectConfig;
+ workflowLoginURL = ProjectConfig.workflowLoginURL;
+ workflowWebURL = ProjectConfig.workflowWebURL;
+ pid = ProjectConfig.pid;
+ } else {
+ //非生产环境
+ workflowLoginURL = "http://workflow-newapi.probim.cn/api/User/Home/Login";
+ workflowWebURL = "http://workflow.probim.cn";
+ pid = "71f7a5df-a7e3-42f4-bcea-36d7d2924ddd";
+ }
+
+ export default {
+ name: "MenuList",
+ data() {
+ return {
+ activatedThirdMenu2: null,
+ PublicKey: "MK4ZJF10PRO19*#8",
+ };
+ },
+ computed: {
+ ...mapGetters("common", [
+ "localMenus",
+ "thirdMenus",
+ "activatedThirdSubmenu",
+ "activatedThirdMenu",
+ "currentProjectId",
+ "projectIdsWithoutMoldBase",
+ "projectIdPNMap",
+ "aiJumpThirdPage"
+ ]),
+ localMenusFiltered() {
+ if (this.projectIdsWithoutMoldBase.includes(this.currentProjectId)) {
+ return this.localMenus.filter((item) => item.id !== "mold-base");
+ } else {
+ return this.localMenus;
+ }
+ },
+ },
+ watch: {
+ aiJumpThirdPage: {
+ deep: true,
+ handler(n, o) {
+ if(n && n.self) {
+ this.onThirdMenuClick(n.self, n.parent)
+ }
+ },
+ },
+ },
+ methods: {
+ onThirdMenuClick(item, parentItem) {
+ if (item?.isLocal === true) {
+ if (this.$route.path === item.to) return;
+ item?.to &&
+ this.$router?.push(item.to).then(() => {
+ this.$store.commit("common/setActivatedThirdMenu", parentItem);
+ this.$store.commit("common/setActivatedThirdSubmenu", item);
+ });
+ } else {
+ if (item?.needInvokeLocalApp) {
+ return;
+ } else if (item?.needLocalHandle) {
+ const id = item.id;
+ if (id === "construction-1") {
+ //绿色建造九宫格管理系统
+ this.doVmsEnvmonitorLoginRedirect();
+ } else if (id === "construction-2") {
+ //协同
+ this.doSelfLoginRedirect(item);
+ } else if (id === "construction-3") {
+ const pn = this.projectIdPNMap[this.currentProjectId];
+ if (!/^\s*$/i.test(pn + "")) {
+ window.open(`http://xmglappjs.sh2j.com/web/public/index.php/fanganapi/index/index?pn=${pn}`);
+ }
+ }
+ } else {
+ item?.to && window.open(item.to);
+ }
+ }
+ },
+ onThirdMenuEnter(item) {
+ this.activatedThirdMenu2 = item;
+ },
+ // eslint-disable-next-line no-unused-vars
+ onThirdMenuLeave(item) {
+ this.activatedThirdMenu2 = null;
+ },
+
+ //登录绿色建造九宫格管理系统
+ async doVmsEnvmonitorLoginRedirect() {
+ window.open("http://127.0.0.1:9000/vms-envmonitor-webapp/");
+ },
+
+ //登录自己的协同平台
+ async doSelfLoginRedirect(item) {
+ const userInfo = {
+ UserName: "huangtj_0909@163.com",
+ Password: this.computepwdstr("htj123456" + this.PublicKey, CryptoJS),
+ };
+ // const userInfo = {
+ // UserName: "admin",
+ // Password: this.computepwdstr("admin" + this.PublicKey, CryptoJS),
+ // };
+ const postData = Object.keys(userInfo)
+ .map((key) => {
+ return `${key}=${encodeURIComponent(userInfo[key])}`;
+ })
+ .join("&");
+ const res = await this.$http({
+ method: "post",
+ url: workflowLoginURL,
+ data: postData,
+ withCredentials: false,
+ withProjectId: false,
+ withToken: false,
+ baseURL: "/",
+ });
+ if (res?.code === 0) {
+ const token = res.data?.token;
+ if (token) {
+ window.open(`${workflowWebURL}/#/Home/Boot/${token}/0/${pid}`);
+ } else {
+ Message.error({ message: `${item.label}登录失败,请稍后再试`, duration: 1000 * 3 });
+ }
+ } else {
+ Message.error({ message: `${item.label}登录失败,请稍后再试`, duration: 1000 * 3 });
+ }
+ },
+ computepwdstr(pwdorigin, _this_CryptoJS) {
+ const afterpwd = this.SymmetricEncryption(
+ {
+ input: pwdorigin,
+ key: this.PublicKey,
+ },
+ _this_CryptoJS,
+ );
+ return afterpwd;
+ },
+ SymmetricEncryption(json, CryptoJS) {
+ if (!json || !json.input || !json.key) {
+ console.warn("json, json.input and json.key are not allow null!");
+ return -1;
+ }
+ if (json.key.length === 0) {
+ console.warn("json.length should not be zero!");
+ return -1;
+ }
+ while (json.key.length < 16) {
+ json.key = json.key + json.key;
+ }
+ const KEY = json.key;
+ const IV = "*BIM19FF4KMY0R8*";
+ const key = CryptoJS.enc.Utf8.parse(KEY);
+ const iv = CryptoJS.enc.Utf8.parse(IV);
+ const srcs = CryptoJS.enc.Utf8.parse(json.input);
+ const encrypted = CryptoJS.AES.encrypt(srcs, key, {
+ iv: iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7,
+ });
+ return encrypted.ciphertext.toString();
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ .menuListWrapper {
+ background: rgba(0,22,26,0.95);
+ border-radius: 0px 40px 40px 0px;
+ }
+ .menuItem:not(.activated):hover {
+ background: linear-gradient( 270deg, rgba(0,75,83,0) 0%, rgba(0,135,153,0.3) 100%);
+ }
+ .menuItem.activated {
+ background: linear-gradient( 270deg, rgba(0,75,83,0) 0%, #008C99 100%);
+ .menuName {
+ @apply text-opacity-100;
+ }
+ }
+
+ .thirdMenuItem:not(.activated).hovered {
+ background: linear-gradient( 270deg, rgba(0,75,83,0) 0%, rgba(0,135,153,0.3) 100%);
+ }
+ .thirdMenuItem.activated {
+ background: linear-gradient( 270deg, rgba(0,75,83,0) 0%, #008C99 100%);
+ .menuName {
+ @apply text-opacity-100;
+ }
+ }
+ .submenusWrapper {
+ .submenuItem {
+ @apply h-[60px] px-6 flex justify-start items-center font-pingfang text-base bg-[#00161af2] cursor-pointer;
+ &:first-of-type {
+ @apply rounded-tl-[12px] rounded-tr-[12px];
+ &:only-child {
+ @apply rounded-bl-[12px] rounded-br-[12px];
+ }
+ }
+ &:last-of-type:not(:first-of-type) {
+ @apply rounded-bl-[12px] rounded-br-[12px];
+ }
+ &:not(.activated):hover {
+ @apply bg-[hsla(228,67%,48%,1)];
+ }
+ &.activated {
+ @apply bg-[#485eb7];
+ }
+ }
+ }
+</style>
diff --git a/src/components/SizeAdapter.vue b/src/components/SizeAdapter.vue
new file mode 100644
index 0000000..f070971
--- /dev/null
+++ b/src/components/SizeAdapter.vue
@@ -0,0 +1,45 @@
+<template>
+ <div id="sizeAdapterWrapper">
+ <slot></slot>
+ </div>
+</template>
+
+<script>
+ export default {
+ name: "SizeAdapter",
+ props: {
+ originDeviceInfo: {
+ type: Object,
+ default: () => {
+ return {
+ width: window.innerWidth,
+ height: window.innerHeight,
+ };
+ },
+ },
+ },
+ created() {
+ window.addEventListener("resize", this.adapteSlot);
+ },
+ mounted() {
+ // this.adapteSlot();
+ },
+ beforeDestroy() {
+ window.removeEventListener("resize", this.adapteSlot);
+ },
+ methods: {
+ adapteSlot() {
+ const nowWidth = window.innerWidth;
+ const nowHeight = window.innerHeight;
+
+ const { width, height } = this.originDeviceInfo;
+
+ const xScale = nowWidth / width;
+ const yScale = nowHeight / height;
+ this.$scopedSlots.default()[0].elm.style.transform = `scale3d(${xScale},${yScale},1)`;
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped></style>
diff --git a/src/components/SwitchMap.vue b/src/components/SwitchMap.vue
new file mode 100644
index 0000000..57e9bca
--- /dev/null
+++ b/src/components/SwitchMap.vue
@@ -0,0 +1,46 @@
+<template>
+ <span class="inline-flex justify-center items-center rounded-md h-[42px] space-x-1 bg-[hsla(0,0%,0%,0.9)] font-pingfang-regular">
+ <span
+ v-for="item in maps"
+ :key="item.id"
+ class="map flex items-center px-[16px] h-full rounded-md hover:bg-[#334CAF] hover:cursor-pointer"
+ :class="{ activated: item.id === selected }"
+ @click="onItemClick(item)"
+ >
+ {{ item.label }}
+ </span>
+ </span>
+</template>
+
+<script>
+ export default {
+ name: "SwitchMap",
+ props: {
+ mapType: {
+ type: String,
+ default: "pic",
+ },
+ },
+ data() {
+ return {
+ selected: this.mapType,
+ maps: [
+ { id: "pic", label: "影像地图" },
+ { id: "gis", label: "GIS地图" },
+ ],
+ };
+ },
+ methods: {
+ onItemClick(item) {
+ if (item.id === this.selected) return;
+ this.selected = item.id;
+ this.$emit("changeMap", item);
+ },
+ },
+ };
+</script>
+<style>
+ .map.activated {
+ @apply bg-[#334CAF];
+ }
+</style>
diff --git a/src/components/TimeLine/TimeLine.vue b/src/components/TimeLine/TimeLine.vue
new file mode 100644
index 0000000..d5da441
--- /dev/null
+++ b/src/components/TimeLine/TimeLine.vue
@@ -0,0 +1,101 @@
+<template>
+ <ul class="w-full h-full">
+ <li v-for="(v, i) in items" :key="i" class="relative m-0 list-none">
+ <div class="py-2" :class="{ itemCenter: itemCenter }">
+ <div class="start">
+ <slot name="start" :item="v"></slot>
+ </div>
+ <!-- <template v-if="useDefaultHeadStyle"> -->
+ <div class="headFixedStyle" :class="{ defaultHead: !v[warningKey], warningHead: v[warningKey] }"></div>
+ <!-- </template> -->
+ <!-- <template v-else>
+ <div class="headFixedStyle">
+ <slot name="head" :item="v"></slot>
+ </div>
+ </template> -->
+ <div class="tail"></div>
+ <div class="end">
+ <slot name="end" :item="v"> </slot>
+ </div>
+ </div>
+ </li>
+ </ul>
+</template>
+
+<script>
+ export default {
+ name: "TimeLine",
+ props: {
+ items: {
+ type: Array,
+ default() {
+ return [];
+ },
+ },
+ itemCenter: {
+ type: Boolean,
+ default: true,
+ },
+ warningKey: {
+ type: String,
+ default: "isWarning",
+ },
+ // useDefaultHeadStyle: {
+ // type: Boolean,
+ // default: true,
+ // },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ $nodeSize: 1.5rem;
+ $lineSize: 1px;
+ $gap: 0.5rem;
+ $startWidth: 70px;
+ .itemCenter {
+ display: flex;
+ align-items: center;
+ }
+ .start {
+ position: absolute;
+ width: $startWidth;
+ word-break: break-all;
+ }
+ .defaultHead {
+ border-radius: 50%;
+ background: radial-gradient(circle calc($nodeSize / 3) at 50% 50%, #fff, #fff 50%, hsla(240, 5%, 40%, 0.2) calc(50% + 1px), hsla(240, 5%, 40%, 0.2) 100%)
+ no-repeat center/cover border-box;
+ }
+ .defaultHead {
+ border-radius: 50%;
+ background: radial-gradient(circle calc($nodeSize / 3) at 50% 50%, #fff, #fff 50%, hsla(240, 5%, 40%, 0.2) calc(50% + 1px), hsla(240, 5%, 40%, 0.2) 100%)
+ no-repeat center/cover border-box;
+ }
+ .warningHead {
+ border-radius: 50%;
+ background: radial-gradient(circle calc($nodeSize / 3) at 50% 50%, #ef424e, #ef424e 50%, #552331 calc(50% + 1px), #552331 100%) no-repeat center/cover
+ border-box;
+ }
+ .headFixedStyle {
+ position: absolute;
+ width: $nodeSize;
+ height: $nodeSize;
+ inset-inline-start: calc($startWidth + $gap);
+ text-align: center;
+ overflow: hidden;
+ }
+ .tail {
+ position: absolute;
+ height: 100%;
+ inset-inline-start: calc($startWidth + $gap + $nodeSize/2 - $lineSize/2);
+ border-inline-start: $lineSize solid hsla(0, 0%, 100%, 0.2);
+ }
+ .end {
+ position: relative;
+ inset-inline-start: calc($startWidth + $gap + $nodeSize + $gap);
+ width: calc(100% - ($startWidth + $gap + $nodeSize + $gap));
+ text-align: start;
+ word-break: break-all;
+ }
+</style>
diff --git a/src/components/TimeLine/TimeLineItem.vue b/src/components/TimeLine/TimeLineItem.vue
new file mode 100644
index 0000000..cc7dc48
--- /dev/null
+++ b/src/components/TimeLine/TimeLineItem.vue
@@ -0,0 +1,67 @@
+<template>
+ <li class="relative m-0 list-none">
+ <div class="start">
+ <slot name="start" :item="data"></slot>
+ </div>
+ <div class="head"></div>
+ <div class="tail"></div>
+ <div class="end">
+ <slot name="end" :item="data"></slot>
+ </div>
+ </li>
+</template>
+
+<script>
+ export default {
+ name: "TimeLineItem",
+ props: {
+ data: {
+ type: Object,
+ default() {
+ return {};
+ },
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ $nodeSize: 1.5rem;
+ $lineSize: 1px;
+ $gap: 0.5rem;
+ .start {
+ position: absolute;
+ width: calc(50% - $nodeSize/2 - $gap);
+ width: 30px;
+ max-height: calc(100% - $nodeSize/2);
+ inset-inline-end: calc(50% + $gap + $nodeSize/2);
+ text-align: end;
+ word-break: break-all;
+ // overflow-y: auto;
+ // overflow-x: hidden;
+ }
+ .head {
+ position: absolute;
+ width: $nodeSize;
+ height: $nodeSize;
+ inset-inline-start: calc(50% - $nodeSize/2);
+ border-radius: 50%;
+ background: radial-gradient(circle calc($nodeSize / 3) at 50% 50%, #fff, #fff 50%, hsla(240, 5%, 40%, 0.2) calc(50% + 1px), hsla(240, 5%, 40%, 0.2) 100%)
+ no-repeat center/cover border-box;
+ }
+ .tail {
+ position: absolute;
+ height: calc(100% - $nodeSize);
+ inset-block-start: $nodeSize;
+ inset-inline-start: calc(50% - $lineSize/2);
+ border-inline-start: $lineSize solid hsla(0, 0%, 100%, 0.2);
+ }
+ .end {
+ position: relative;
+ // width: calc(50% - ($nodeSize/2) - $gap);
+ width: calc(100%);
+ inset-inline-start: calc(50% + ($nodeSize/2) + $gap);
+ text-align: start;
+ word-break: break-all;
+ }
+</style>
diff --git a/src/components/TransitionSize.vue b/src/components/TransitionSize.vue
new file mode 100644
index 0000000..5f76e7d
--- /dev/null
+++ b/src/components/TransitionSize.vue
@@ -0,0 +1,253 @@
+<template>
+ <transition
+ :name="name"
+ @before-appear="beforeAppear"
+ @appear="appear"
+ @after-appear="afterAppear"
+ @appear-cancelled="appearCancelled"
+ @before-enter="beforeEnter"
+ @enter="enter"
+ @after-enter="afterEnter"
+ @enter-cancelled="enterCancelled"
+ @before-leave="beforeLeave"
+ @leave="leave"
+ @after-leave="afterLeave"
+ @leave-cancelled="leaveCancelled"
+ >
+ <slot></slot>
+ </transition>
+</template>
+
+<script>
+ export default {
+ name: "CollapseTransition",
+ props: {
+ name: {
+ type: String,
+ required: false,
+ default: "collapse",
+ },
+ dimension: {
+ type: String,
+ required: false,
+ default: "height",
+ validator: (value) => {
+ return ["height", "width"].includes(value);
+ },
+ },
+ duration: {
+ type: Number,
+ required: false,
+ default: 300,
+ },
+ easing: {
+ type: String,
+ required: false,
+ default: "ease-in-out",
+ },
+ },
+ data() {
+ return {
+ cachedStyles: null,
+ };
+ },
+ computed: {
+ transition() {
+ let transitions = [];
+ Object.keys(this.cachedStyles).forEach((key) => {
+ transitions.push(`${this.convertToCssProperty(key)} ${this.duration}ms ${this.easing}`);
+ });
+ return transitions.join(", ");
+ },
+ },
+ watch: {
+ dimension() {
+ this.clearCachedDimensions();
+ },
+ },
+ methods: {
+ beforeAppear(el) {
+ // Emit the event to the parent
+ this.$emit("before-appear", el);
+ },
+ appear(el) {
+ // Emit the event to the parent
+ this.$emit("appear", el);
+ },
+ afterAppear(el) {
+ // Emit the event to the parent
+ this.$emit("after-appear", el);
+ },
+ appearCancelled(el) {
+ // Emit the event to the parent
+ this.$emit("appear-cancelled", el);
+ },
+ beforeEnter(el) {
+ // Emit the event to the parent
+ this.$emit("before-enter", el);
+ },
+ enter(el, done) {
+ // Because width and height may be 'auto',
+ // first detect and cache the dimensions
+ this.detectAndCacheDimensions(el);
+ // The order of applying styles is important:
+ // - 1. Set styles for state before transition
+ // - 2. Force repaint
+ // - 3. Add transition style
+ // - 4. Set styles for state after transition
+ // If the order is not right and you open any 2nd level submenu
+ // for the first time, the transition will not work.
+ this.setClosedDimensions(el);
+ this.hideOverflow(el);
+ this.forceRepaint(el);
+ this.setTransition(el);
+ this.setOpenedDimensions(el);
+ // Emit the event to the parent
+ this.$emit("enter", el, done);
+ // Call done() when the transition ends
+ // to trigger the @after-enter event.
+ setTimeout(done, this.duration);
+ },
+ afterEnter(el) {
+ // Clean up inline styles
+ this.unsetOverflow(el);
+ this.unsetTransition(el);
+ this.unsetDimensions(el);
+ this.clearCachedDimensions();
+ // Emit the event to the parent
+ this.$emit("after-enter", el);
+ },
+ enterCancelled(el) {
+ // Emit the event to the parent
+ this.$emit("enter-cancelled", el);
+ },
+ beforeLeave(el) {
+ // Emit the event to the parent
+ this.$emit("before-leave", el);
+ },
+ leave(el, done) {
+ // For some reason, @leave triggered when starting
+ // from open state on page load. So for safety,
+ // check if the dimensions have been cached.
+ this.detectAndCacheDimensions(el);
+ // The order of applying styles is less important
+ // than in the enter phase, as long as we repaint
+ // before setting the closed dimensions.
+ // But it is probably best to use the same
+ // order as the enter phase.
+ this.setOpenedDimensions(el);
+ this.hideOverflow(el);
+ this.forceRepaint(el);
+ this.setTransition(el);
+ this.setClosedDimensions(el);
+ // Emit the event to the parent
+ this.$emit("leave", el, done);
+ // Call done() when the transition ends
+ // to trigger the @after-leave event.
+ // This will also cause v-show
+ // to reapply 'display: none'.
+ setTimeout(done, this.duration);
+ },
+ afterLeave(el) {
+ // Clean up inline styles
+ this.unsetOverflow(el);
+ this.unsetTransition(el);
+ this.unsetDimensions(el);
+ this.clearCachedDimensions();
+ // Emit the event to the parent
+ this.$emit("after-leave", el);
+ },
+ leaveCancelled(el) {
+ // Emit the event to the parent
+ this.$emit("leave-cancelled", el);
+ },
+ detectAndCacheDimensions(el) {
+ // Cache actual dimensions
+ // only once to void invalid values when
+ // triggering during a transition
+ if (this.cachedStyles) return;
+ const visibility = el.style.visibility;
+ const display = el.style.display;
+ // Trick to get the width and
+ // height of a hidden element
+ el.style.visibility = "hidden";
+ el.style.display = "";
+ this.cachedStyles = this.detectRelevantDimensions(el);
+ // Restore any original styling
+ el.style.visibility = visibility;
+ el.style.display = display;
+ },
+ clearCachedDimensions() {
+ this.cachedStyles = null;
+ },
+ detectRelevantDimensions(el) {
+ // These properties will be transitioned
+ if (this.dimension === "height") {
+ return {
+ height: el.offsetHeight + "px",
+ paddingTop: el.style.paddingTop || this.getCssValue(el, "padding-top"),
+ paddingBottom: el.style.paddingBottom || this.getCssValue(el, "padding-bottom"),
+ };
+ }
+ if (this.dimension === "width") {
+ return {
+ width: el.offsetWidth + "px",
+ paddingLeft: el.style.paddingLeft || this.getCssValue(el, "padding-left"),
+ paddingRight: el.style.paddingRight || this.getCssValue(el, "padding-right"),
+ };
+ }
+ return {};
+ },
+ setTransition(el) {
+ el.style.transition = this.transition;
+ },
+ unsetTransition(el) {
+ el.style.transition = "";
+ },
+ hideOverflow(el) {
+ el.style.overflow = "hidden";
+ },
+ unsetOverflow(el) {
+ el.style.overflow = "";
+ },
+ setClosedDimensions(el) {
+ Object.keys(this.cachedStyles).forEach((key) => {
+ el.style[key] = "0";
+ });
+ },
+ setOpenedDimensions(el) {
+ Object.keys(this.cachedStyles).forEach((key) => {
+ el.style[key] = this.cachedStyles[key];
+ });
+ },
+ unsetDimensions(el) {
+ Object.keys(this.cachedStyles).forEach((key) => {
+ el.style[key] = "";
+ });
+ },
+ forceRepaint(el) {
+ // Force repaint to make sure the animation is triggered correctly.
+ // Thanks: https://markus.oberlehner.net/blog/transition-to-height-auto-with-vue/
+ getComputedStyle(el)[this.dimension];
+ },
+ getCssValue(el, style) {
+ return getComputedStyle(el, null).getPropertyValue(style);
+ },
+ convertToCssProperty(style) {
+ // Example: convert 'paddingTop' to 'padding-top'
+ // Thanks: https://gist.github.com/tan-yuki/3450323
+ const upperChars = style.match(/([A-Z])/g);
+ if (!upperChars) {
+ return style;
+ }
+ for (let i = 0, n = upperChars.length; i < n; i++) {
+ style = style.replace(new RegExp(upperChars[i]), "-" + upperChars[i].toLowerCase());
+ }
+ if (style.slice(0, 1) === "-") {
+ style = style.slice(1);
+ }
+ return style;
+ },
+ },
+ };
+</script>
diff --git a/src/components/V2Echarts.vue b/src/components/V2Echarts.vue
new file mode 100644
index 0000000..037b6e5
--- /dev/null
+++ b/src/components/V2Echarts.vue
@@ -0,0 +1,176 @@
+<template>
+ <div
+ :id="idName"
+ :style="`margin-top:${top}px`"
+ class="echarts w-full h-full"
+ >
+ </div>
+</template>
+
+<script>
+import * as echarts from 'echarts'
+export default {
+ name: 'V2Echarts',
+ props: {
+ options: {
+ type: Object,
+ default: () => {},
+ require: true
+ },
+ // 传入id名称
+ idName: {
+ type: String,
+ default: () => {
+ return ''
+ },
+ require: true
+ },
+ width: {
+ type: String,
+ default: () => {
+ return '410'
+ }
+ },
+ height: {
+ type: String,
+ default: () => {
+ return '290'
+ }
+ },
+ top: {
+ type: String,
+ default: () => {
+ return '0'
+ }
+ }
+ },
+ data () {
+ return {
+ myChart: null,
+ resizeObserver: null,
+ }
+ },
+
+ watch: {
+ options: {
+ handler (newVal) {
+ this.setChartEvents(newVal)
+ },
+ deep: true,
+ immediate: true
+ }
+ },
+ created() {
+ this.$nextTick(this.initTheChart)
+ },
+ methods: {
+ // 初始化图表
+ initTheChart() {
+ this.myChart = echarts.init(document.getElementById(this.idName))
+ this.myChart.setOption(this.options, true)
+
+ // 鼠标移入图表时,不为第一条时就取消第一条的高亮效果
+ this.myChart.on('mouseover', v => {
+ if (v.dataIndex !== 0) {
+ this.myChart.dispatchAction({
+ type: 'downplay',
+ seriesIndex: 0,
+ dataIndex: 0
+ })
+ }
+ if (this.idName === 'jinzhanqushi' || this.idName === 'dailogjinzhanqushi') {
+ this.myChart.setOption({
+ tooltip: {
+ // 鼠标在折线上,系列内横向比对,显示系列名称
+ formatter: function(p) {
+ const ynames = ['年度计划完成', '预计年度完成', '预计年度TBM', '预计年度钻爆']
+ if (ynames.indexOf(p[v.seriesIndex].seriesName) !== -1) {
+ return p[v.seriesIndex].marker +
+ ' ' + p[v.seriesIndex].seriesName + ':' + p[v.seriesIndex].value + 'm'
+ } else {
+ let dataStr = ''
+ const valMap = {};
+ p.forEach(element => {
+ const seriesName = element.seriesName; // 图例名称
+ const value = element.value; // y轴值
+
+ // 过滤无效值
+ if (value === '-') {
+ return
+ }
+ // 过滤重叠值
+ if (valMap[seriesName] === value) {
+ return
+ }
+ if (ynames.indexOf(seriesName) === -1) {
+ dataStr += `<span style="display:inline-block;margin-right:5px;width:10px;height:10px;background-color:${element.color};"></span>`
+ dataStr += `${element.seriesName}: <span style="font-size:16px;font-weight:600;">${element.data ? element.data : 0}m</span> <br>`
+ valMap[seriesName] = value;
+ }
+ });
+ return dataStr
+ }
+ }
+ }
+ })
+ }
+ })
+ // 鼠标图表时默认显示第一条
+ this.myChart.on('mouseout', v => {
+ this.myChart.dispatchAction({
+ type: 'highlight',
+ seriesIndex: 0,
+ dataIndex: 0
+ })
+ })
+ // this.myChart.on('click', function (param) {
+ // console.log('param', param)
+ // })
+ // 监听窗口变化 - 只刷新最后一个图表
+ window.onresize = () => {
+ this.myChart.resize()
+ }
+ // 监听窗口变化 - 多个图表同时刷新
+ window.addEventListener('resize', () => {
+ this.myChart.resize()
+ })
+ },
+ // 设置图表的事件
+ setChartEvents (options) {
+ // console.log(options, this.idName)
+ if (!this.myChart) return
+ this.myChart.setOption(options, true)
+ // 刷新时默认显示第一条
+ this.myChart.dispatchAction({
+ type: 'highlight',
+ seriesIndex: 0,
+ dataIndex: 0
+ })
+ },
+ setResize() {
+ this.$nextTick(() => {
+ // 使echarts尺寸重置
+ if (this.myChart) {
+ this.myChart.resize()
+ }
+ })
+ }
+ },
+ mounted() {
+ // 当屏幕改变,图表重新动态改变并渲染
+ const self = this;
+ const viewElem = document.body;
+ // 调用实例对象的observe方法,监听整个body节点的变化,当改变窗口大小或者某个DOM节点出现或隐藏时时,就会触发回调
+ this.resizeObserver = new ResizeObserver(() => {
+ if (!self.myChart) return
+ self.myChart.resize();
+ });
+ this.resizeObserver.observe(viewElem);
+ },
+ beforeDestroy() {
+ if (this.resizeObserver) {
+ this.resizeObserver.unobserve(document.body)
+ }
+ }
+}
+</script>
diff --git a/src/components/VideoPlayer.vue b/src/components/VideoPlayer.vue
new file mode 100644
index 0000000..5bcf447
--- /dev/null
+++ b/src/components/VideoPlayer.vue
@@ -0,0 +1,91 @@
+<template>
+ <video ref="videoPlayer" class="video-js vjs-big-play-centered" v-bind="$attrs"></video>
+</template>
+
+<script>
+ import videojs from "video.js";
+ import "video.js/dist/video-js.min.css";
+ import { merge } from "lodash-es";
+
+ export default {
+ name: "VideoPlayer",
+ inheritAttrs: false,
+ props: {
+ options: {
+ type: Object,
+ default() {
+ return {};
+ },
+ },
+ },
+ data() {
+ return {
+ player: null,
+ defaultOptions: {
+ autoplay: "play", // false true muted play any
+ controls: true,
+ loop: false,
+ muted: true,
+ preload: "auto", // auto metadata none
+
+ fluid: false,
+ language: "zh-CN",
+ notSupportedMessage: "此视频暂无法播放,请稍后再试",
+ controlBar: {
+ remainingTimeDisplay: true,
+ currentTimeDisplay: true,
+ timeDivider: true,
+ durationDisplay: true,
+ progressControl: true,
+ customControlSpacer: true,
+ fullscreenToggle: true,
+ volumePanel: {
+ inline: false,
+ },
+ },
+ liveTracker: { trackingThreshold: 5, liveTolerance: 5 },
+ },
+ };
+ },
+ computed: {
+ finalOptions() {
+ return merge({}, this.defaultOptions, this.options);
+ },
+ },
+ mounted() {
+ this.init();
+ },
+ beforeDestroy() {
+ this.player?.dispose();
+ this.$emit("dispose");
+ },
+ methods: {
+ init() {
+ const that = this;
+ videojs(this.$refs.videoPlayer, this.finalOptions, function () {
+ that.player = this;
+ that.$emit("ready", this);
+ });
+ },
+ },
+ };
+</script>
+
+<style lang="scss" scoped>
+ ::v-deep .vjs-control-bar {
+ background-color: rgba(0, 0, 0, 0.6);
+ }
+
+ ::v-deep .vjs-slider-horizontal {
+ .vjs-volume-level::before {
+ top: -4px;
+ }
+ .vjs-play-progress::before {
+ top: -5px;
+ }
+ }
+
+ ::v-deep .vjs-slider-vertical .vjs-volume-level:before {
+ left: -4px;
+ }
+</style>
diff --git a/src/components/Warning.vue b/src/components/Warning.vue
new file mode 100644
index 0000000..f8f0a6b
--- /dev/null
+++ b/src/components/Warning.vue
@@ -0,0 +1,20 @@
+<template>
+ <div class="warning-bg">
+ <slot></slot>
+ </div>
+</template>
+
+<script>
+ export default {
+ name: "Warning",
+ };
+</script>
+
+<style>
+ .warning-bg {
+ @apply h-10;
+ background: url("../assets/images/warning-bg.png") no-repeat left center / cover,
+ linear-gradient(to right, hsla(0, 0%, 0%, 0.1), hsla(0, 0%, 0%, 0.3)) no-repeat left center / cover hsla(0, 0%, 0%, 0.6);
+ height: 32px;
+ }
+</style>
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 0000000..4988e8e
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,29 @@
+import Vue from "vue";
+
+//todo:更改为按需引入
+import ElementUI from "element-ui";
+import "element-ui/lib/theme-chalk/index.css";
+Vue.use(ElementUI);
+
+import { http } from "./utils/http.js";
+Vue.prototype.$http = http;
+
+import store from "./store/index";
+import router from "./router";
+import App from "./App.vue";
+
+import "@css/DIN_font.css";
+import "@css/tail-wind/index.css";
+import "@css/element-ui-override.scss";
+import "@css/self-global.scss";
+
+
+Vue.config.productionTip = false;
+
+new Vue({
+ store,
+ router,
+ render: (h) => {
+ return h(App);
+ },
+}).$mount("#app");
diff --git a/src/mixins/index.js b/src/mixins/index.js
new file mode 100644
index 0000000..e8fe035
--- /dev/null
+++ b/src/mixins/index.js
@@ -0,0 +1,22 @@
+/*
+ * @Author: gjj Ganjj@probim.com.cn
+ * @Date: 2025-02-14 14:32:18
+ * @LastEditors: gjj Ganjj@probim.com.cn
+ * @LastEditTime: 2025-02-18 16:21:27
+ * @FilePath: \北京交通大学\src\mixins\index.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+import { mapGetters } from "vuex";
+export const mixinGetters = {
+ computed: {
+ ...mapGetters("common", []),
+ },
+ methods: {
+ getImageUrl(path) {
+ return new URL(path,
+ import.meta.url).href;
+ },
+ },
+};
+export { default as conversationMix }
+from './conversationMix'
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 0000000..a5ef209
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,45 @@
+/*
+ * @Author: gjj Ganjj@probim.com.cn
+ * @Date: 2025-02-14 14:32:19
+ * @LastEditors: gjj Ganjj@probim.com.cn
+ * @LastEditTime: 2025-02-18 15:25:13
+ * @FilePath: \北京交通大学\src\router\index.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+import Vue from "vue";
+import VueRouter from "vue-router";
+
+import NProgress from "nprogress";
+import "nprogress/nprogress.css";
+
+
+
+// 注册路由插件
+Vue.use(VueRouter);
+
+const routes = [{
+ path: "/",
+ redirect: "/home",
+ },
+ {
+ path: "/home",
+ component: () =>
+ import ("../views/Home.vue")
+ },
+];
+
+const router = new VueRouter({
+ routes,
+ mode: "hash",
+});
+
+router.beforeEach((to, from, next) => {
+ NProgress.start();
+ next();
+});
+
+router.afterEach((to) => {
+ NProgress.done();
+});
+
+export default router;
\ No newline at end of file
diff --git a/src/sceneJSON.js b/src/sceneJSON.js
new file mode 100644
index 0000000..0d1f8ef
--- /dev/null
+++ b/src/sceneJSON.js
@@ -0,0 +1,2 @@
+export const sceneJSON =
+'{"id":"","name":"","modifiedTime":"2024-08-29 15:43:24","version":"1.3","config":"{\\"envmapIndex\\":14,\\"envmapIntensity\\":0.4,\\"envAngle\\":60,\\"fpsFirst\\":false,\\"highlightColor\\":41209,\\"highlight\\":true,\\"ssao\\":true,\\"highQuality\\":false,\\"cullingRatio\\":0,\\"fogRange\\":[20,20],\\"fogIntensity\\":0,\\"shadow\\":false,\\"shadowFar\\":200,\\"lightX\\":-1,\\"lightY\\":-1,\\"lightZ\\":-1,\\"lightIntensity\\":0.75,\\"maxDistance\\":0,\\"mapboxToken\\":\\"qqwwee\\",\\"shadowBias\\":-0.000004}","features":["{\\"id\\":\\"underlay\\",\\"name\\":\\"空白球体\\",\\"type\\":\\"underlay\\",\\"lib\\":\\"1\\",\\"version\\":\\"\\",\\"url\\":\\"https://app.probim.cn/scenemanager//ref/style/blank.json\\",\\"phase\\":\\"\\",\\"origin\\":[0,0],\\"rotation\\":0,\\"altitude\\":0,\\"offset\\":[0,0,0],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[1,0,0,0,0,0.9999999998476913,0.000017453292519057202,0,0,-0.000017453292519057202,0.9999999998476913,0,0,0,0,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":null,\\"y\\":null,\\"z\\":null},\\"max\\":{\\"x\\":null,\\"y\\":null,\\"z\\":null},\\"_id\\":\\"2e2ec760-f585-c89e-ed53-a7f652513f49\\"},\\"dataKey\\":\\"e5501695-3091-0bea-1ccc-1cbc56f4dcb9\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[]}","{\\"id\\":\\"bfddecc4-6167-b5cb-467a-98fed380b2e3\\",\\"name\\":\\"WMTS服务1\\",\\"type\\":\\"wmts\\",\\"lib\\":\\"1\\",\\"version\\":\\"\\",\\"url\\":\\"https://t7.tianditu.gov.cn/img_w/wmts?tk=1e1e425c920f09544d68abc6d3817d04&SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&FORMAT=tiles\\",\\"phase\\":\\"\\",\\"origin\\":[0,0],\\"rotation\\":0,\\"altitude\\":0,\\"offset\\":[0,0,0],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[1,0,0,0,0,0.9999999998476913,0.000017453292519057202,0,0,-0.000017453292519057202,0.9999999998476913,0,0,0,0,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":null,\\"y\\":null,\\"z\\":null},\\"max\\":{\\"x\\":null,\\"y\\":null,\\"z\\":null},\\"_id\\":\\"57538fb7-4b10-8076-d0eb-c13a3feca460\\"},\\"dataKey\\":\\"837848da-f832-4b53-acd4-4f194a2d5b1e\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[]}","{\\"id\\":\\"f687a975-5bd9-a403-6484-e2f418826862\\",\\"name\\":\\"新闸\\",\\"type\\":\\"model\\",\\"lib\\":\\"0\\",\\"version\\":\\"\\",\\"url\\":null,\\"phase\\":\\"DefaultPhase\\",\\"origin\\":[119.90260831711623,31.827473378552156],\\"rotation\\":[0,0,0],\\"altitude\\":0,\\"offset\\":[-241.11057275906205,-293.2394152218476,1.7955735561783366e-14],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[1.176940613392704,0,0,0,0,1.1769406132134457,0.000020541488803101475,0,0,-0.000020541488803101475,1.1769406132134457,0,13332339.041458853,1.9500641577063412e-26,-3736211.246584299,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":0.000030517578125,\\"y\\":-1.8686627184255267e-21,\\"z\\":-601.8034057617188},\\"max\\":{\\"x\\":761.9501953125,\\"y\\":74.78964233398442,\\"z\\":0.00003051757812957955},\\"_id\\":\\"cf21d89d-e5b5-36c6-54e7-07406abca142\\"},\\"dataKey\\":\\"ed4d29c9-b869-e975-2724-101578a928c8\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D81A2F92F01D1040\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^85970412D7185703\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5EE349E88CE5865A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.10000002384185791,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5329743,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E62DEF52FC092AC9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":33023,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^52FA4786D4A119AF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16547197,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^ED01C3C336EA80F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744448,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^8D997C2F5980A36B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14054434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AEC20C5D28F59780\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13057855,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^8DF151103E33A521\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6610B07BFEFCCE13\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10855437,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^14716A0BCDA9E170\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8592153,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^8AB0018257A53CE2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10947338,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D7B56A186ADA0A5D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10591898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B7ABE79D0138F023\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":819613,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^4592AAF8119D3977\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15132390,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7890BBA158DE57FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10790050,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^29575D86DDE83098\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9214881,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1A5B26E8A1063C4E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":815501,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D119BE571C70F53E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2197793,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CA130647CC78AEBA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13369344,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^71C53BDA98CE170D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14477532,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2C2A496CA6BBFF13\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2565927,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B80125371F67A986\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":328965,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D95421A17DB73BC9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.48000001907348633,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4622045,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D048C9B8DA0DB528\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^654CA06CFDF5289A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13586176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B5D3E50A8D18AB6E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9278095,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E123CBDEF59059CE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^79F430B2CBF5823B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921906,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^38A98D5DB92AF8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6E28F12254156111\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12632256,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5187C22473824681\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14867498,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CB4A9A0A6367ED2A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10853258,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D4543C7C3BAEA683\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15133164,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1F0596B044E4BE85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":0,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^841471E9F3378BB4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16776960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E27903C4F8756E07\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1381653,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^87ABF33F4BB1AF4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C18E45BC1E5F0CAE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7631724,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FC81D800187D630E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":891473,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2E6CBE96B8BF028A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2840809,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^198D83F04A2A36BB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^92E73F81B2D0A8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5288898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^22F5BFB61D796628\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32512,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^4FF7E03F0D4AD6CC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.25,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^65D7CDDBF36EF4BA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.19999998807907104,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^548FC51FFD2D8572\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":65280,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C03D5A072FEF71FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13355979,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^15B2D083D78D1BBC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11513748,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B073F9C3E4FD7CBA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3785435,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C791C0DD5A93A1E4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^0E84E1A6D54885E9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7632236,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^48444795BEA520FD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1513471,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3BEEECEB3372239B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14277068,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^86C8CB497A1998DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2631750,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7EACF5F30DA72DB9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.699999988079071,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FF2A9B9632C1559E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4900351,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^75314D1F676F6B7B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.30000001192092896,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9221610,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D73EA68337E7114C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6579310,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FA96E42575BED707\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405056,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6ABE4198ECB8DBFB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16711680,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^27D3FCC5063FAA3E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11316396,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F3BF5B638390B6B9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":18303,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6D9622CFEBF52E8E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1184274,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A51FFC62ED7EDA27\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1339463,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C92740ED4D40E339\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11314082,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C66BBAB92B4E4604\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10969439,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D8B7EEFA759A1453\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16225308,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^92BEDB9CADE80520\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9601654,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^08DDEA3FEAF7BE87\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5526353,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7119A034FCDE58CB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1007285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3E11B912B5C75E85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5658198,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A72F95B9EF6517D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12895428,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5F0B112779DF95C2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10526880,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^239F413F588B85B7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1602812,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^849DE34EA4110355\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16185078,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7DCE659C9B351155\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5308673,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A4BF2009F409739B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14865581,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^38157C3BE4E88A28\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3089701,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2571C7833CFA0CAB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921919,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^162C3932316C0191\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8556446,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F31C0642D9567BE1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7009239,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^353572C4715D9AB0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9539985,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^9BA265DCD88EB62D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8275968,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^13C7EA441A4DD08D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1582584,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^95010136E77993D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15855582,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^871CD988591A6644\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5263440,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C1E7E32D18C4B34F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12951926,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AF5ECC0D6B87A765\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5400497,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6CA0E9A625FB4672\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6126768,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CF10FE079662AE0B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6389166,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F6C2EB603F8779AE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6710886,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C1AF737C876921CB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11228995,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^17BF247A1022F69F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16762766,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^EDBC03C5C8823A39\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16757606,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1563546319BCF852\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5264728,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^9DEF0DEE1E23ECBD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6804EA363474D20C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1644825,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^ED9081801F254C7A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16645629,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F174E2795AC548F6\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":52736,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^0FEB1ECF20F7BB6B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15466496,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^994000BF54CA9923\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5923430,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^73CC441BE7E1E3C9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6730751,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B8040B4247C69AFF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3419176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6FD50FA633213D65\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13938795,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^77766EB3C7F0D92A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4429039,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^95ACA1DCB6DC3661\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8278590,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B187CE833DB0B6E0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16222,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5C41870E23BFE88F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5269169,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^03273155CAA3DD68\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13421772,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^20398ABEDEA7F9F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":49151,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5CBC2C2E6B487C43\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^489B65D19F1C9B1F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13806700,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^68284746F4FA59E7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3165590,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^9895FD7D7F00FCA4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3296917,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^39FB9861BE0037F3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9338213,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^04CC71DA800B002A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7902098,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^31E791FAD1B5C2A6\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10461329,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5DF714E055809E6D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16757760,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FF9C56DA57D62974\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4473924,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B95DECABE4B2E1C3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8388608,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^54F5E06AF84F94A7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.01,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7128025,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1408A395E7AC0B35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9524247,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^35AE951F0B6D7062\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7910761,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AF3B304D1CB724E8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10590351,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^35E9197E0C4EF5DF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6376254,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AAB55F57B4013A98\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FB8C5422CE261ABB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9474189,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6A11245E68559A75\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9540631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3ECFC04B1F048D55\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6383731,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E841BB89C12B374A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5462370,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^98E434375738AC7C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6785982,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2797A039118B4490\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921894,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^071B43F50F81032F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3034694,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3EFE7EC5CC7228E2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2955539,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FC76D80D6D53889C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10060923,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B9EEE9FE0753EB42\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421568,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^774528D54053BADD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8454016,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FE210A488D3B185A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2A96E00E6665B982\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12563117,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3A892A6F9DFB4735\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744576,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F5148E191CCB2A1E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8454143,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^360761F51BEC8316\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1795427,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CD63CF11FEE94E51\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405799,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6B4CEDEF62BCF1DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13681585,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E6DD88A3714CEE61\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11310467,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AF29B923CBE1C8B8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7122513,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^85FE11013D0386D9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777088,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A6BDBF786D3815F8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16732240,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2AA72A2F6DB29350\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11260873,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6A2794655182CFFA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.1499999761581421,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14345184,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B52D8EC6D7EC3A86\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6449996,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C5E25139E4360983\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4147021,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D45E6C9F456EDB04\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8673341,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C9AB20258B98901A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744640,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7A0621CA20CAC430\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.7999999970197678,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421568,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^892763180A66BFE4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12497868,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^59185EB1E038D84E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15667434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^69A1A81ACEF3BE6C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16748335,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2F8022B11A0E74A0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D81A2F92F01D1040\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^85970412D7185703\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5EE349E88CE5865A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.10000002384185791,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5329743,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E62DEF52FC092AC9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":33023,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^52FA4786D4A119AF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16547197,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^ED01C3C336EA80F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744448,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^8D997C2F5980A36B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14054434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AEC20C5D28F59780\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13057855,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^8DF151103E33A521\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6610B07BFEFCCE13\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10855437,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^14716A0BCDA9E170\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8592153,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^8AB0018257A53CE2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10947338,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D7B56A186ADA0A5D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10591898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B7ABE79D0138F023\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":819613,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^4592AAF8119D3977\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15132390,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7890BBA158DE57FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10790050,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^29575D86DDE83098\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9214881,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1A5B26E8A1063C4E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":815501,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D119BE571C70F53E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2197793,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CA130647CC78AEBA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13369344,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^71C53BDA98CE170D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14477532,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2C2A496CA6BBFF13\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2565927,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B80125371F67A986\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":328965,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D95421A17DB73BC9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.48000001907348633,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4622045,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D048C9B8DA0DB528\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^654CA06CFDF5289A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13586176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B5D3E50A8D18AB6E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9278095,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E123CBDEF59059CE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^79F430B2CBF5823B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921906,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^38A98D5DB92AF8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6E28F12254156111\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12632256,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5187C22473824681\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14867498,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CB4A9A0A6367ED2A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10853258,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D4543C7C3BAEA683\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15133164,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1F0596B044E4BE85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":0,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^841471E9F3378BB4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16776960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E27903C4F8756E07\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1381653,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^87ABF33F4BB1AF4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C18E45BC1E5F0CAE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7631724,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FC81D800187D630E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":891473,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2E6CBE96B8BF028A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2840809,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^198D83F04A2A36BB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^92E73F81B2D0A8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5288898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^22F5BFB61D796628\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32512,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^4FF7E03F0D4AD6CC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.25,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^65D7CDDBF36EF4BA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.19999998807907104,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^548FC51FFD2D8572\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":65280,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C03D5A072FEF71FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13355979,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^15B2D083D78D1BBC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11513748,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B073F9C3E4FD7CBA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3785435,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C791C0DD5A93A1E4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^0E84E1A6D54885E9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7632236,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^48444795BEA520FD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1513471,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3BEEECEB3372239B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14277068,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^86C8CB497A1998DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2631750,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7EACF5F30DA72DB9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.699999988079071,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FF2A9B9632C1559E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4900351,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^75314D1F676F6B7B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.30000001192092896,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9221610,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D73EA68337E7114C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6579310,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FA96E42575BED707\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405056,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6ABE4198ECB8DBFB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16711680,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^27D3FCC5063FAA3E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11316396,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F3BF5B638390B6B9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":18303,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6D9622CFEBF52E8E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1184274,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A51FFC62ED7EDA27\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1339463,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C92740ED4D40E339\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11314082,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C66BBAB92B4E4604\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10969439,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D8B7EEFA759A1453\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16225308,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^92BEDB9CADE80520\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9601654,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^08DDEA3FEAF7BE87\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5526353,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7119A034FCDE58CB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1007285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3E11B912B5C75E85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5658198,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A72F95B9EF6517D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12895428,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5F0B112779DF95C2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10526880,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^239F413F588B85B7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1602812,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^849DE34EA4110355\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16185078,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7DCE659C9B351155\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5308673,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A4BF2009F409739B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14865581,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^38157C3BE4E88A28\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3089701,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2571C7833CFA0CAB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921919,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^162C3932316C0191\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8556446,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F31C0642D9567BE1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7009239,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^353572C4715D9AB0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9539985,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^9BA265DCD88EB62D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8275968,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^13C7EA441A4DD08D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1582584,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^95010136E77993D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15855582,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^871CD988591A6644\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5263440,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C1E7E32D18C4B34F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12951926,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AF5ECC0D6B87A765\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5400497,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6CA0E9A625FB4672\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6126768,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CF10FE079662AE0B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6389166,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F6C2EB603F8779AE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6710886,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C1AF737C876921CB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11228995,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^17BF247A1022F69F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16762766,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^EDBC03C5C8823A39\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16757606,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1563546319BCF852\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5264728,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^9DEF0DEE1E23ECBD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6804EA363474D20C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1644825,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^ED9081801F254C7A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16645629,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F174E2795AC548F6\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":52736,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^0FEB1ECF20F7BB6B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15466496,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^994000BF54CA9923\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5923430,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^73CC441BE7E1E3C9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6730751,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B8040B4247C69AFF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3419176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6FD50FA633213D65\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13938795,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^77766EB3C7F0D92A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4429039,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^95ACA1DCB6DC3661\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8278590,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B187CE833DB0B6E0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16222,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5C41870E23BFE88F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5269169,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^03273155CAA3DD68\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13421772,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^20398ABEDEA7F9F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":49151,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5CBC2C2E6B487C43\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^489B65D19F1C9B1F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13806700,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^68284746F4FA59E7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3165590,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^9895FD7D7F00FCA4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3296917,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^39FB9861BE0037F3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9338213,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^04CC71DA800B002A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7902098,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^31E791FAD1B5C2A6\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10461329,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^5DF714E055809E6D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16757760,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FF9C56DA57D62974\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4473924,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B95DECABE4B2E1C3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8388608,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^54F5E06AF84F94A7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.01,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7128025,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^1408A395E7AC0B35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9524247,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^35AE951F0B6D7062\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7910761,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AF3B304D1CB724E8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10590351,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^35E9197E0C4EF5DF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6376254,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AAB55F57B4013A98\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FB8C5422CE261ABB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9474189,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6A11245E68559A75\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9540631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3ECFC04B1F048D55\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6383731,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E841BB89C12B374A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5462370,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^98E434375738AC7C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6785982,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2797A039118B4490\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921894,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^071B43F50F81032F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3034694,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3EFE7EC5CC7228E2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2955539,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FC76D80D6D53889C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10060923,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B9EEE9FE0753EB42\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421568,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^774528D54053BADD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8454016,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^FE210A488D3B185A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2A96E00E6665B982\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12563117,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^3A892A6F9DFB4735\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744576,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^F5148E191CCB2A1E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8454143,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^360761F51BEC8316\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1795427,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^CD63CF11FEE94E51\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405799,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6B4CEDEF62BCF1DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13681585,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^E6DD88A3714CEE61\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11310467,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^AF29B923CBE1C8B8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7122513,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^85FE11013D0386D9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777088,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^A6BDBF786D3815F8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16732240,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2AA72A2F6DB29350\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11260873,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^6A2794655182CFFA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.1499999761581421,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14345184,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^B52D8EC6D7EC3A86\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6449996,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C5E25139E4360983\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4147021,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^D45E6C9F456EDB04\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8673341,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^C9AB20258B98901A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744640,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^7A0621CA20CAC430\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.7999999970197678,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421568,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^892763180A66BFE4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12497868,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^59185EB1E038D84E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15667434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^69A1A81ACEF3BE6C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16748335,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"f687a975-5bd9-a403-6484-e2f418826862^2F8022B11A0E74A0\\"}],\\"server\\":\\"https://app-multiverse.probim.cn\\",\\"vaultID\\":\\"13127881-36dd-4af4-b96c-bb261dde7bb2\\",\\"modelID\\":\\"f70b5b81-31e3-4f6c-a334-cbfe0c70909a\\",\\"activeViews\\":[\\"{\\\\\\"id\\\\\\":\\\\\\"Default\\\\\\",\\\\\\"name\\\\\\":\\\\\\"{ 三维 }\\\\\\",\\\\\\"type\\\\\\":\\\\\\"3D\\\\\\",\\\\\\"default\\\\\\":true}\\"],\\"part\\":false,\\"texture\\":true,\\"cacheVersion\\":0}","{\\"id\\":\\"9fafef36-ee75-19ef-0619-25e41b857568\\",\\"name\\":\\"飞龙二小\\",\\"type\\":\\"model\\",\\"lib\\":\\"0\\",\\"version\\":\\"\\",\\"url\\":null,\\"phase\\":\\"DefaultPhase\\",\\"origin\\":[119.92343340675626,31.815238831026093],\\"rotation\\":[0,0,24.48361326359418],\\"altitude\\":0,\\"offset\\":[-23.268060324713588,-169.62839399510995,1.0386743487549342e-14],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[1.0709789648570414,0.000008512029475097851,-0.4877033639627791,0,-2.802300313941357e-17,1.176796717380481,0.000020538977347048848,0,0.48770336403706055,-0.000018692109155407023,1.0709789646939218,0,13334872.53148468,1.8467233791223886e-26,-3734733.789521135,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":0.00002956390380859375,\\"y\\":9.343313592127634e-22,\\"z\\":-368.0233154296875},\\"max\\":{\\"x\\":447.7242736816406,\\"y\\":46.989639282226584,\\"z\\":-0.000015258789059622714},\\"_id\\":\\"707555bf-c3e3-8e13-a0f1-a56573e770f1\\"},\\"dataKey\\":\\"8d906c55-5106-2bd6-ab6e-7d5a3463c453\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6804EA363474D20C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^85970412D7185703\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9524247,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^35AE951F0B6D7062\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":94742,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^345535803A2531C4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^BFDF7E1521F921F3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5EE349E88CE5865A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^85A695E4B04D033F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":33023,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^52FA4786D4A119AF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12632256,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5187C22473824681\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15133164,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1F0596B044E4BE85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6E28F12254156111\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5263440,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C1E7E32D18C4B34F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3EBDD4907D4FFC35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^2CA14FA2D236A7D1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744448,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8D997C2F5980A36B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14054434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AEC20C5D28F59780\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16547197,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^ED01C3C336EA80F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13057855,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8DF151103E33A521\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^79F430B2CBF5823B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10947338,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D7B56A186ADA0A5D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":815501,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D119BE571C70F53E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6610B07BFEFCCE13\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10591898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^B7ABE79D0138F023\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":819613,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4592AAF8119D3977\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15132390,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7890BBA158DE57FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10790050,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^29575D86DDE83098\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8592153,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8AB0018257A53CE2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9214881,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1A5B26E8A1063C4E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10855437,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^14716A0BCDA9E170\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14867498,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^CB4A9A0A6367ED2A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1381653,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^87ABF33F4BB1AF4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16776960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E27903C4F8756E07\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16379976,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9508B68FA3CA43A5\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3223857,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^388B500F9AF39DBC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^92E73F81B2D0A8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5288898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^22F5BFB61D796628\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":0,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^841471E9F3378BB4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32512,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4FF7E03F0D4AD6CC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.25,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^65D7CDDBF36EF4BA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.1499999761581421,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15528175,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F4333A4676AAA503\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":65280,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C03D5A072FEF71FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13355979,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^15B2D083D78D1BBC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14277068,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^86C8CB497A1998DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1513471,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3BEEECEB3372239B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16711680,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^27D3FCC5063FAA3E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1582584,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^95010136E77993D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15855582,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^871CD988591A6644\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4900351,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^75314D1F676F6B7B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C18E45BC1E5F0CAE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.30000001192092896,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9221610,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D73EA68337E7114C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7632236,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^48444795BEA520FD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^0E84E1A6D54885E9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1184274,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A51FFC62ED7EDA27\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405056,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6ABE4198ECB8DBFB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11316396,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F3BF5B638390B6B9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12895428,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5F0B112779DF95C2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10526880,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^239F413F588B85B7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1602812,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^849DE34EA4110355\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16185078,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7DCE659C9B351155\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5308673,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A4BF2009F409739B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14865581,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^38157C3BE4E88A28\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3089701,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^2571C7833CFA0CAB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921919,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^162C3932316C0191\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8556446,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F31C0642D9567BE1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.699999988079071,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^FF2A9B9632C1559E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2631750,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7EACF5F30DA72DB9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5658198,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A72F95B9EF6517D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1007285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3E11B912B5C75E85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4227200,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^59EC7CFABC70D480\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3785435,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C791C0DD5A93A1E4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A059685633098DBE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^711AA6A3D95293A2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16182986,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^B5A89992B998BCFF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4741217,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^393051331DCA77E0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":949698,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^258D943C638DE382\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.2799999713897705,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15528175,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AC88942361CBDD4F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7009239,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^353572C4715D9AB0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9539985,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9BA265DCD88EB62D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8275968,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^13C7EA441A4DD08D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9C640EC05C40DC4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15461355,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6348493CCC95A4A9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5876991,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7311ACF8F6E26312\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2500134,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^2992DBB2CD0A5BC7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^654CA06CFDF5289A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6974058,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8D7856FE83DE6186\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8603718,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F531B7AF7FF6272D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15776380,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^587FE5317A301DCC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15644951,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F40B4256E9CB016F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6381921,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1484F41C06177A0A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11579568,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^CDB18C93133E662F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15263976,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^69BC47E5585C0D5E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2631720,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^142C12987526F554\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":986895,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C989962B4C06469A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6908265,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^DB7B2F2FE6CD53A8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1F0C7DFC8C94AD37\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10066578,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^16BE52042A490771\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7828858,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F2DB9930D4743CE7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^95FDA8C329A0EFEE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5066314,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E463DC86ACFDC4F7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11228995,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^17BF247A1022F69F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D4260F865D6281A1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C180AB1AE975B37F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AE31AFBE9793BB7E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10247979,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^17AFCE13EE90D185\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4364EB75AE6CDC6A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^82B23CED4C7CFFE3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E152DCE5575CC276\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9737364,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5E944D3F8B9C521E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^79249AE253340BCE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7DDEEDD855E3EC5F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1563143DE8F700DD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6859992,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^136B7BD40FE19B2F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15987699,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5A33389B3F2B7EBF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6A190C9120CC0191\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^611127A65DFA2791\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2105376,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1BCCE2A6FC499CDD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14737371,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6620FD28B9513372\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16514043,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8F5D92548203F52F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11674403,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^26F50314B59CD03D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8847360,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3B09A6DC104A336E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5923430,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^73CC441BE7E1E3C9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":52736,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^0FEB1ECF20F7BB6B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15466496,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^994000BF54CA9923\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5264728,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9DEF0DEE1E23ECBD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1644825,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^ED9081801F254C7A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16757606,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1563546319BCF852\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16645629,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F174E2795AC548F6\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6389166,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F6C2EB603F8779AE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2840809,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^198D83F04A2A36BB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6710886,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C1AF737C876921CB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16762766,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^EDBC03C5C8823A39\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5400497,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6CA0E9A625FB4672\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6126768,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^CF10FE079662AE0B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12951926,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AF5ECC0D6B87A765\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3419176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6FD50FA633213D65\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13938795,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^77766EB3C7F0D92A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13806700,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^68284746F4FA59E7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":49151,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5CBC2C2E6B487C43\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^489B65D19F1C9B1F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13421772,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^20398ABEDEA7F9F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5269169,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^03273155CAA3DD68\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8388608,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^54F5E06AF84F94A7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.01,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7128025,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1408A395E7AC0B35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4473924,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^B95DECABE4B2E1C3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.5099999904632568,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^36DD56EABC39D462\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^EDF27A24CEE1F343\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4429039,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^95ACA1DCB6DC3661\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A792FB57DA084074\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9540631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3ECFC04B1F048D55\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9474189,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6A11245E68559A75\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6383731,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E841BB89C12B374A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5462370,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^98E434375738AC7C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8488054,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4A38A92BDE054812\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7040100,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E49AEF06B1BD267B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12563117,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3A892A6F9DFB4735\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12893616,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C25D75255A8FFAF1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16579832,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1BF4097EDC4337D3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^842F47C49356C440\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4144959,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^DA805FABD8A83ADD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3947580,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8197F85E5CA5FF6B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9742008,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^17828FE32BAA9602\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6804EA363474D20C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^85970412D7185703\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9524247,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^35AE951F0B6D7062\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":94742,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^345535803A2531C4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^BFDF7E1521F921F3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5EE349E88CE5865A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^85A695E4B04D033F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":33023,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^52FA4786D4A119AF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12632256,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5187C22473824681\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15133164,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1F0596B044E4BE85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6E28F12254156111\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5263440,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C1E7E32D18C4B34F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3EBDD4907D4FFC35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^2CA14FA2D236A7D1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744448,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8D997C2F5980A36B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14054434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AEC20C5D28F59780\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16547197,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^ED01C3C336EA80F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13057855,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8DF151103E33A521\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^79F430B2CBF5823B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10947338,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D7B56A186ADA0A5D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":815501,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D119BE571C70F53E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6610B07BFEFCCE13\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10591898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^B7ABE79D0138F023\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":819613,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4592AAF8119D3977\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15132390,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7890BBA158DE57FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10790050,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^29575D86DDE83098\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8592153,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8AB0018257A53CE2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9214881,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1A5B26E8A1063C4E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10855437,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^14716A0BCDA9E170\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14867498,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^CB4A9A0A6367ED2A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1381653,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^87ABF33F4BB1AF4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16776960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E27903C4F8756E07\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16379976,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9508B68FA3CA43A5\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3223857,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^388B500F9AF39DBC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^92E73F81B2D0A8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5288898,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^22F5BFB61D796628\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":0,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^841471E9F3378BB4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32512,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4FF7E03F0D4AD6CC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.25,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^65D7CDDBF36EF4BA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.1499999761581421,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15528175,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F4333A4676AAA503\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":65280,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C03D5A072FEF71FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13355979,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^15B2D083D78D1BBC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14277068,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^86C8CB497A1998DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1513471,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3BEEECEB3372239B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16711680,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^27D3FCC5063FAA3E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1582584,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^95010136E77993D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15855582,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^871CD988591A6644\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4900351,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^75314D1F676F6B7B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C18E45BC1E5F0CAE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.30000001192092896,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9221610,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D73EA68337E7114C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7632236,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^48444795BEA520FD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^0E84E1A6D54885E9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1184274,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A51FFC62ED7EDA27\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405056,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6ABE4198ECB8DBFB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11316396,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F3BF5B638390B6B9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12895428,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5F0B112779DF95C2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10526880,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^239F413F588B85B7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1602812,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^849DE34EA4110355\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16185078,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7DCE659C9B351155\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5308673,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A4BF2009F409739B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14865581,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^38157C3BE4E88A28\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3089701,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^2571C7833CFA0CAB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921919,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^162C3932316C0191\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8556446,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F31C0642D9567BE1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.699999988079071,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^FF2A9B9632C1559E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2631750,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7EACF5F30DA72DB9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5658198,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A72F95B9EF6517D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1007285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3E11B912B5C75E85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4227200,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^59EC7CFABC70D480\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3785435,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C791C0DD5A93A1E4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A059685633098DBE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^711AA6A3D95293A2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16182986,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^B5A89992B998BCFF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4741217,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^393051331DCA77E0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":949698,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^258D943C638DE382\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.2799999713897705,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15528175,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AC88942361CBDD4F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7009239,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^353572C4715D9AB0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9539985,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9BA265DCD88EB62D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8275968,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^13C7EA441A4DD08D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9C640EC05C40DC4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15461355,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6348493CCC95A4A9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5876991,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7311ACF8F6E26312\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2500134,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^2992DBB2CD0A5BC7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^654CA06CFDF5289A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6974058,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8D7856FE83DE6186\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8603718,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F531B7AF7FF6272D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15776380,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^587FE5317A301DCC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15644951,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F40B4256E9CB016F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6381921,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1484F41C06177A0A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11579568,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^CDB18C93133E662F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15263976,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^69BC47E5585C0D5E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2631720,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^142C12987526F554\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":986895,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C989962B4C06469A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6908265,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^DB7B2F2FE6CD53A8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1F0C7DFC8C94AD37\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10066578,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^16BE52042A490771\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7828858,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F2DB9930D4743CE7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^95FDA8C329A0EFEE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5066314,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E463DC86ACFDC4F7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11228995,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^17BF247A1022F69F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^D4260F865D6281A1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C180AB1AE975B37F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AE31AFBE9793BB7E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10247979,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^17AFCE13EE90D185\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4364EB75AE6CDC6A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^82B23CED4C7CFFE3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E152DCE5575CC276\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9737364,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5E944D3F8B9C521E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^79249AE253340BCE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^7DDEEDD855E3EC5F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1563143DE8F700DD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6859992,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^136B7BD40FE19B2F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15987699,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5A33389B3F2B7EBF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6A190C9120CC0191\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^611127A65DFA2791\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2105376,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1BCCE2A6FC499CDD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14737371,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6620FD28B9513372\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16514043,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8F5D92548203F52F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11674403,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^26F50314B59CD03D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8847360,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3B09A6DC104A336E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5923430,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^73CC441BE7E1E3C9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":52736,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^0FEB1ECF20F7BB6B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15466496,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^994000BF54CA9923\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5264728,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^9DEF0DEE1E23ECBD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1644825,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^ED9081801F254C7A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16757606,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1563546319BCF852\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16645629,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F174E2795AC548F6\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6389166,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^F6C2EB603F8779AE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2840809,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^198D83F04A2A36BB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6710886,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C1AF737C876921CB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16762766,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^EDBC03C5C8823A39\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5400497,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6CA0E9A625FB4672\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6126768,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^CF10FE079662AE0B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12951926,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^AF5ECC0D6B87A765\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3419176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6FD50FA633213D65\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13938795,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^77766EB3C7F0D92A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13806700,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^68284746F4FA59E7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":49151,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^5CBC2C2E6B487C43\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^489B65D19F1C9B1F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13421772,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^20398ABEDEA7F9F1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5269169,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^03273155CAA3DD68\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8388608,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^54F5E06AF84F94A7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.01,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7128025,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1408A395E7AC0B35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4473924,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^B95DECABE4B2E1C3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.5099999904632568,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^36DD56EABC39D462\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^EDF27A24CEE1F343\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4429039,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^95ACA1DCB6DC3661\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^A792FB57DA084074\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9540631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3ECFC04B1F048D55\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9474189,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^6A11245E68559A75\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6383731,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E841BB89C12B374A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5462370,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^98E434375738AC7C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8488054,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^4A38A92BDE054812\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7040100,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^E49AEF06B1BD267B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12563117,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^3A892A6F9DFB4735\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12893616,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^C25D75255A8FFAF1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16579832,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^1BF4097EDC4337D3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^842F47C49356C440\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4144959,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^DA805FABD8A83ADD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3947580,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^8197F85E5CA5FF6B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9742008,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"9fafef36-ee75-19ef-0619-25e41b857568^17828FE32BAA9602\\"}],\\"server\\":\\"https://app-multiverse.probim.cn\\",\\"vaultID\\":\\"13127881-36dd-4af4-b96c-bb261dde7bb2\\",\\"modelID\\":\\"dca8ea41-760a-4f84-9f91-ed5ca48aed5d\\",\\"activeViews\\":[\\"{\\\\\\"id\\\\\\":\\\\\\"Default\\\\\\",\\\\\\"name\\\\\\":\\\\\\"{ 三维 }\\\\\\",\\\\\\"type\\\\\\":\\\\\\"3D\\\\\\",\\\\\\"default\\\\\\":true}\\"],\\"part\\":false,\\"texture\\":true,\\"cacheVersion\\":0}","{\\"id\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5\\",\\"name\\":\\"锦程科创园项目\\",\\"type\\":\\"model\\",\\"lib\\":\\"0\\",\\"version\\":\\"\\",\\"url\\":null,\\"phase\\":\\"DefaultPhase\\",\\"origin\\":[119.95200948393409,31.829179222578617],\\"rotation\\":[0,0,180],\\"altitude\\":0,\\"offset\\":[230.61210049502552,376.3752259532921,-2.3046335787106798e-14],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[-1.1770276040904253,2.264238665273327e-16,-1.4414035696571976e-16,0,2.2642135076903244e-16,1.1770276039111538,0.00002054300707719524,0,1.4414430878574173e-16,0.00002054300707719524,-1.1770276039111538,0,13338303.930840047,-3.748667021610248e-27,-3737104.112524872,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":0,\\"y\\":1.8686627184255267e-21,\\"z\\":-385.6127624511719},\\"max\\":{\\"x\\":369.62847900390625,\\"y\\":99.23963928222659,\\"z\\":-0.000030517578118923325},\\"_id\\":\\"7967a25f-6545-0e9a-05cc-ac2b909568de\\"},\\"dataKey\\":\\"6e01da40-b1d1-c406-9e43-d98e6509f37d\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5066314,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^E463DC86ACFDC4F7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13748167,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^2A4ACD4DA9348C25\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12632256,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^5187C22473824681\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14867498,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^CB4A9A0A6367ED2A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5982789,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^AD5B41BD513164F8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12988942,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^AA8630D41D6F5431\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8860694,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^603026BAB6B187FB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8860438,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^BA75D1A3EFC5282A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4222936,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^7197980C308DE4C3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777215,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^85970412D7185703\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4737095,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^FDBFD0447E21031D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11187133,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^35C1F850BD5F96E1\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":2777583,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^86FD849AC65D144B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":255,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^92E73F81B2D0A8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13057855,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^8DF151103E33A521\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16711680,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^27D3FCC5063FAA3E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10448958,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^F7849FE9BE723C90\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^9C640EC05C40DC4A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12895428,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^5F0B112779DF95C2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5995714,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^0A72A6DFA3317FC0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.1499999761581421,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13558496,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C875710149A8FE8E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10526880,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^239F413F588B85B7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10263708,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^B1247B040F193E17\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7947092,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^3228D5EF191CD1BF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5263440,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C1E7E32D18C4B34F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14054434,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^AEC20C5D28F59780\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4473924,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^B95DECABE4B2E1C3\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8388608,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^54F5E06AF84F94A7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.01,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7128025,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^1408A395E7AC0B35\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9524247,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^35AE951F0B6D7062\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":32960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^489B65D19F1C9B1F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15133164,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^1F0596B044E4BE85\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^5EE349E88CE5865A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15001828,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^94B1B4C66A1F4173\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14737371,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^6620FD28B9513372\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14671839,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^68705FF78DC8225D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8405056,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^6ABE4198ECB8DBFB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16776960,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^E27903C4F8756E07\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11316396,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^F3BF5B638390B6B9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.1499999761581421,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10930372,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^07B05C7425ED04E4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3436428,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^3C120A0511323609\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10066578,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^16BE52042A490771\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.19999998807907104,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^548FC51FFD2D8572\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":0.699999988079071,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^FF2A9B9632C1559E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3419176,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^6FD50FA633213D65\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8275968,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^13C7EA441A4DD08D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1184274,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^A51FFC62ED7EDA27\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":0,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^841471E9F3378BB4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14277068,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^86C8CB497A1998DA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1513471,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^3BEEECEB3372239B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16250871,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^79F430B2CBF5823B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3785435,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C791C0DD5A93A1E4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":11513748,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^B073F9C3E4FD7CBA\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16773632,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^985693350ACAD588\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8157198,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C02E80FCCA00A421\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16762766,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^EDBC03C5C8823A39\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^654CA06CFDF5289A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":949698,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^258D943C638DE382\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^022BF55C5E3CDEBD\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":5923174,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^80E2FD799B2C04D8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921906,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^38A98D5DB92AF8C7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12248057,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^3E4B0D3553BE3313\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16514043,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^8F5D92548203F52F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16777088,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^A6BDBF786D3815F8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^711AA6A3D95293A2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":41961,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^62B08F5FA90C821D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":33023,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^52FA4786D4A119AF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10658466,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^A2D8968D21FA88CE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":18046,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^79E0462D34BE95EB\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12434361,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^BC8725673140D292\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16119285,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C18E45BC1E5F0CAE\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":673942,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^745BFEB7FE672089\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7632236,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^618E503DCB62710C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12289807,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^EF6644790A529C61\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1582584,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^95010136E77993D4\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15855582,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^871CD988591A6644\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7009239,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^353572C4715D9AB0\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":9539985,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^9BA265DCD88EB62D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7895160,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^E01C409F0E80EC2E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10066329,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C1235CA6F0A06324\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":13369344,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^71C53BDA98CE170D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":4539717,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^D020816CF184E511\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15921894,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^071B43F50F81032F\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15859712,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^7D03DC28E6732991\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6974058,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^8D7856FE83DE6186\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":15776380,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^587FE5317A301DCC\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8603718,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^F531B7AF7FF6272D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7910761,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^AF3B304D1CB724E8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8488072,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^8CABA55EB7FE3933\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":14408448,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^97719E7EFFBB4AD8\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16297769,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^C6091791F6B6600B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3034694,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^3EFE7EC5CC7228E2\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":3618615,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^4FB23D90D6372A65\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8816017,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^E66A787237AC029D\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":6124608,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^DE04AFA15AAA0F30\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421504,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^6804EA363474D20C\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8454016,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^FE210A488D3B185A\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":1795427,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^CD63CF11FEE94E51\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421631,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^2A96E00E6665B982\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":65535,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^10BA29E088D46D55\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8421440,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^1F136E2A9B2F3254\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16744448,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^8D997C2F5980A36B\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":8355711,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^6E28F12254156111\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12632256,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^37EACF4F495250A7\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16754253,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^D0EC207D31D00CCF\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":10060923,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^B9EEE9FE0753EB42\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7631724,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^FC81D800187D630E\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":12563117,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^3A892A6F9DFB4735\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16711808,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^174158D226918238\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":7566444,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^6AFC12DE2414C3D9\\"},{\\"metal\\":false,\\"clearCoat\\":0.05,\\"clearCoatRoughness\\":0.05,\\"sheen\\":0,\\"sheenRoughness\\":1,\\"specularIntensity\\":1,\\"opacity\\":1,\\"lights\\":true,\\"polygonOffsetFactor\\":0,\\"dashed\\":false,\\"linewidth\\":1,\\"dashScale\\":1,\\"dashSize\\":1,\\"gapSize\\":1,\\"maps\\":[],\\"color\\":16758271,\\"metalness\\":0.5,\\"roughness\\":0.5,\\"reflectivity\\":1,\\"emissiveColor\\":0,\\"emissive\\":0,\\"type\\":\\"3D\\",\\"matID\\":\\"555928ac-70b2-66c0-7695-0e28ab74b4d5^483D711D08CEE256\\"}],\\"server\\":\\"https://app-multiverse.probim.cn\\",\\"vaultID\\":\\"13127881-36dd-4af4-b96c-bb261dde7bb2\\",\\"modelID\\":\\"c7775edb-5c5c-4e4f-86f0-733566fc63ae\\",\\"activeViews\\":[\\"{\\\\\\"id\\\\\\":\\\\\\"Default\\\\\\",\\\\\\"name\\\\\\":\\\\\\"{ 三维 }\\\\\\",\\\\\\"type\\\\\\":\\\\\\"3D\\\\\\",\\\\\\"default\\\\\\":true}\\"],\\"part\\":false,\\"texture\\":true}","{\\"id\\":\\"41f3c7dc-abc7-963e-1e21-f0d1a34fe8ca\\",\\"name\\":\\"3D Tiles1\\",\\"type\\":\\"_3dTiles\\",\\"lib\\":\\"0\\",\\"version\\":\\"\\",\\"url\\":\\"https://bimcomposer.probim.cn:8070/wumeng/aobili/JCKJY/tileset.json\\",\\"phase\\":\\"\\",\\"origin\\":[119.95152080954345,31.829451597417023],\\"rotation\\":[0,0,0],\\"altitude\\":40.786508311617204,\\"offset\\":[0,0,0],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[1.1769944047081096,0,0,0,0,1.176994404528843,0.000020542427638664234,0,0,-0.000020542427638664234,1.176994404528843,0,13338018.980551478,48.00549207035427,-3736763.384572206,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":-999.0416434444487,\\"y\\":-999.0590798578436,\\"z\\":-999.0590798575431},\\"max\\":{\\"x\\":999.0416434425861,\\"y\\":999.0590798578436,\\"z\\":999.0590798584744},\\"_id\\":\\"2c52dc3a-d5dd-a648-cc3a-499ce5741c8c\\"},\\"dataKey\\":\\"tile-41f3c7dc-abc7-963e-1e21-f0d1a34fe8ca\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[]}","{\\"id\\":\\"66d5243f-abec-1911-31c0-6607ca38bf94\\",\\"name\\":\\"3D Tiles2\\",\\"type\\":\\"_3dTiles\\",\\"lib\\":\\"0\\",\\"version\\":\\"\\",\\"url\\":\\"https://bimcomposer.probim.cn:8070/wumeng/aobili/XZ/tileset.json\\",\\"phase\\":\\"\\",\\"origin\\":[119.90563061194253,31.829785770146547],\\"rotation\\":[0,0,0],\\"altitude\\":19.597619277171663,\\"offset\\":[0,0,0],\\"scale\\":[1,1,1],\\"bpt\\":{\\"elements\\":[1.176998665936478,0,0,0,0,1.1769986657572107,0.000020542502011129438,0,0,-0.000020542502011129438,1.1769986657572107,0,13332916.216347307,23.066371744762048,-3736807.119837275,1]},\\"visible\\":true,\\"AABB\\":{\\"isBox3\\":true,\\"min\\":{\\"x\\":-796.8248775918037,\\"y\\":-796.8387846881682,\\"z\\":-796.8387846881524},\\"max\\":{\\"x\\":796.8248775918037,\\"y\\":796.8387846881682,\\"z\\":796.838784688618},\\"_id\\":\\"68453ac7-6e21-40da-0dd0-2647a44756db\\"},\\"dataKey\\":\\"tile-66d5243f-abec-1911-31c0-6607ca38bf94\\",\\"followType\\":\\"feature\\",\\"config\\":\\"{\\\\\\"skybox\\\\\\":\\\\\\"noon\\\\\\"}\\",\\"dynamicLoad\\":true,\\"priority\\":0,\\"always\\":false,\\"immediate\\":true,\\"materials\\":[]}"],"data":"[{\\"key\\":\\"e5501695-3091-0bea-1ccc-1cbc56f4dcb9\\",\\"data\\":{\\"projectionValue\\":\\"globe\\"}},{\\"key\\":\\"837848da-f832-4b53-acd4-4f194a2d5b1e\\",\\"data\\":{}},{\\"key\\":\\"ed4d29c9-b869-e975-2724-101578a928c8\\",\\"data\\":{}},{\\"key\\":\\"8d906c55-5106-2bd6-ab6e-7d5a3463c453\\",\\"data\\":{}},{\\"key\\":\\"6e01da40-b1d1-c406-9e43-d98e6509f37d\\",\\"data\\":{}},{\\"key\\":\\"tile-41f3c7dc-abc7-963e-1e21-f0d1a34fe8ca\\",\\"data\\":{\\"opacity\\":1,\\"errorTarget\\":10,\\"errorThreshold\\":100,\\"includePoints\\":false,\\"pntsSize\\":2,\\"pntColor\\":\\"\\"}},{\\"key\\":\\"tile-66d5243f-abec-1911-31c0-6607ca38bf94\\",\\"data\\":{\\"opacity\\":1,\\"errorTarget\\":5,\\"errorThreshold\\":150,\\"includePoints\\":false,\\"pntsSize\\":2,\\"pntColor\\":\\"\\"}}]","viewpoints":[],"pathRoamings":[],"clips":[],"animations":[],"triggers":[],"selectionSets":[],"defaultViewpoint":"{\\"id\\":\\"4309baee-2c02-906f-69c1-d620a6015089\\",\\"type\\":\\"viewpoint\\",\\"cameraInfo\\":{\\"position\\":{\\"x\\":13333080.791135095,\\"y\\":123.62657806456848,\\"z\\":-3736329.4793962254},\\"target\\":{\\"x\\":13332965.398053603,\\"y\\":39.892778497046706,\\"z\\":-3736569.1929557077},\\"focalOffset\\":{\\"x\\":-1.9480155337083147,\\"y\\":-9.428415271815595,\\"z\\":-0.1400808070217181}},\\"coloredObjects\\":[],\\"twinkleObjects\\":[],\\"invisibleObjects\\":[],\\"isolatedObjects\\":[],\\"ghostObjects\\":[],\\"featureSnap\\":[],\\"default\\":true}","deletedObjects":[]}'
\ No newline at end of file
diff --git a/src/store/index.js b/src/store/index.js
new file mode 100644
index 0000000..35108d4
--- /dev/null
+++ b/src/store/index.js
@@ -0,0 +1,16 @@
+import Vue from "vue";
+import Vuex from "vuex";
+
+Vue.use(Vuex);
+
+const moduleFilesObj = import.meta.glob("./modules/*.js", { eager: true });
+const modules = Object.keys(moduleFilesObj).reduce((acc, moduleKey) => {
+ const moduleName = moduleKey.replace(/^\.\/modules\/(.*)\.js$/gi, "$1");
+ if (moduleName) {
+ acc[moduleName] = moduleFilesObj[moduleKey]?.default ?? {};
+ acc[moduleName].namespaced = true;
+ }
+ return acc;
+}, {});
+
+export default new Vuex.Store({ modules });
diff --git a/src/store/modules/common.js b/src/store/modules/common.js
new file mode 100644
index 0000000..9cdbc46
--- /dev/null
+++ b/src/store/modules/common.js
@@ -0,0 +1,20 @@
+export default {
+ namespaced: true,
+ state: () => ({
+ code: null, //用户信息
+ }),
+
+ mutations: {
+ setCode(state, data) {
+ state.code = data;
+ },
+ },
+ actions: {
+ setCode(context, data) {
+ context.commit("setCode", data);
+ },
+ },
+ getters: {
+ code: (state) => state.code,
+ },
+};
\ No newline at end of file
diff --git a/src/utils/getToken.js b/src/utils/getToken.js
new file mode 100644
index 0000000..a2fe80d
--- /dev/null
+++ b/src/utils/getToken.js
@@ -0,0 +1,9 @@
+import store from "../store/index";
+
+export const getToken = () => {
+ let token = store.getters["common/token"];
+ if (!token) {
+ token = window.localStorage.getItem("token");
+ }
+ return token;
+}
\ No newline at end of file
diff --git a/src/utils/getUserProfile.js b/src/utils/getUserProfile.js
new file mode 100644
index 0000000..83251cc
--- /dev/null
+++ b/src/utils/getUserProfile.js
@@ -0,0 +1,9 @@
+import store from "../store/index";
+
+export const getUserProfile = () => {
+ let userProfile = store.getters["common/userProfile"];
+ if (!userProfile) {
+ userProfile = JSON.parse(window.localStorage.getItem("userProfile"));
+ }
+ return userProfile;
+}
\ No newline at end of file
diff --git a/src/utils/http.js b/src/utils/http.js
new file mode 100644
index 0000000..8cf3b4d
--- /dev/null
+++ b/src/utils/http.js
@@ -0,0 +1,280 @@
+import axios from "axios";
+import { Message, Loading } from "element-ui";
+import { debounce } from "lodash-es";
+import store from "../store/index";
+import { getToken } from "./getToken.js";
+import { toLoginPage, toResetPwdPage } from "./logout";
+
+let axiosBaseURL;
+let axiosTimeout;
+let workflowLoginURL;
+if (import.meta.env.PROD) {
+ //生产环境
+ const ProjectConfig = window.ProjectConfig;
+
+ axiosBaseURL = ProjectConfig.axiosBaseURL;
+ axiosTimeout = ProjectConfig.axiosTimeout;
+ workflowLoginURL = ProjectConfig.workflowLoginURL;
+} else {
+ //非生产环境
+ axiosBaseURL = "/api";
+ axiosTimeout = 1000 * 30;
+ workflowLoginURL = "http://workflow-newapi.probim.cn/api/User/Home/Login";
+}
+
+export const http = axios.create({
+ withCredentials: false,
+ baseURL: axiosBaseURL,
+ timeout: axiosTimeout
+});
+
+//loading对象
+let loadingInstance;
+
+//当前正在请求的数量
+let needLoadingRequestCount = 0;
+
+//显示loading
+function showLoading(target) {
+ // 后面这个判断很重要,因为关闭时加了抖动,此时loading对象可能还存在,
+ // 但needLoadingRequestCount已经变成0.避免这种情况下会重新创建个loading
+ if (needLoadingRequestCount === 0 && !loadingInstance) {
+ loadingInstance = Loading.service({
+ target: target || "body",
+ fullscreen: false,
+ lock: true,
+ text: "Loading...",
+ // spinner: "",
+ // background: "",
+ // customClass: "",
+ });
+ }
+ needLoadingRequestCount++;
+}
+
+//隐藏loading
+function hideLoading() {
+ needLoadingRequestCount--;
+ needLoadingRequestCount = Math.max(needLoadingRequestCount, 0); //做个保护
+ if (needLoadingRequestCount === 0) {
+ //关闭loading
+ toHideLoading();
+ }
+}
+
+//防抖:将 300ms 间隔内的关闭 loading 便合并为一次。防止连续请求时, loading闪烁的问题。
+const toHideLoading = debounce(() => {
+ loadingInstance?.close();
+ loadingInstance = null;
+}, 300);
+
+
+//处理响应的结果,返回统一结构
+function handleTheResponse(response) {
+ console.log(`axios包装过的响应${response.config.url}`, response);
+ if (response.config.showLoading === true) {
+ hideLoading();
+ }
+ // {
+ // // `data` 由服务器提供的响应
+ // data: {},
+ // // `status` 来自服务器响应的 HTTP 状态码
+ // status: 200,
+ // // `statusText` 来自服务器响应的 HTTP 状态信息
+ // statusText: 'OK',
+ // // `headers` 是服务器响应头
+ // // 所有的 header 名称都是小写,而且可以使用方括号语法访问
+ // // 例如: `response.headers['content-type']`
+ // headers: {},
+ // // `config` 是 `axios` 请求的配置信息
+ // config: {},
+ // // `request` 是生成此响应的请求
+ // // 在node.js中它是最后一个ClientRequest实例 (in redirects),
+ // // 在浏览器中则是 XMLHttpRequest 实例
+ // request: {}
+ // }
+
+ let responseData = response.data;
+ if (response.status === 200) {
+ if (responseData?.code === 40001) {
+ toLoginPage();
+ return;
+ }
+ if(responseData?.code === 40002) {
+ toResetPwdPage();
+ return;
+ }
+ const targetUrl = response.config.url.toLowerCase();
+ if (/^\s*$/g.test("" + responseData)) {
+ responseData = {
+ code: 1,
+ message: "无响应数据",
+ data: null,
+ };
+ } else if (targetUrl === "https://bnah-web-api.biaddti.com/api/video/video/getvideo") {
+ //摄像头视频
+ responseData = {
+ code: responseData?.Ret === 1 ? 0 : 1,
+ message: responseData?.Msg ?? "服务异常",
+ data: responseData?.Data ?? null,
+ };
+ } else if (targetUrl.startsWith(workflowLoginURL.toLowerCase())) {
+ //协同登录,响应结构不一样,需要单独处理
+ responseData = {
+ code: responseData?.Ret === 1 ? 0 : 1,
+ message: responseData?.Msg ?? "协同登录服务异常",
+ data: responseData?.Data ?? null,
+ };
+ } else if (targetUrl.startsWith("https://api.help.bj.cn/apis/weather")) {
+ // {
+ // "status": "0", //反馈代码 0成功
+ // "msg": "反馈信息", //反馈信息
+ // "cityen": "changchun", //城市名称英文
+ // "city": "长春", //城市名称
+ // "citycode": "101060101", //城市编码
+ // "temp": "10", //实时温度
+ // "tempf": "50", //华氏温度
+ // "wd": "西风", //风向
+ // "wden": "W", //风向英文
+ // "wdforce": "3级", //风力
+ // "wdspd": "<12km/h", //风速
+ // "uptime": "12:00", //更新时间
+ // "weather": "晴", //天气状况
+ // "weatheren": "Sunny", //天气状况英文
+ // "weatherimg": "d00", //天气状况图标
+ // "stp": "994", //气压
+ // "wisib": "35000", //能见度
+ // "humidity": "46%", //湿度
+ // "prcp": "0", //降雨
+ // "prcp24h": "2.2", //24小时降雨量
+ // "aqi": "22", //AQI
+ // "pm25": "20", //PM2.5
+ // "today": "10月17日(星期一)" //今天日期
+ // }
+ //网上找的天气信息接口,由服务端代理,响应结构不一样,需要单独处理
+ if (responseData?.status === "0") {
+ responseData = {
+ code: 0,
+ message: null,
+ data: responseData,
+ };
+ } else {
+ responseData = {
+ code: 1,
+ message: "天气服务异常",
+ data: null,
+ };
+ }
+ }
+ } else {
+ return {
+ code: 1,
+ message: responseData?.message ?? "服务异常",
+ data: responseData,
+ };
+ }
+ if (!responseData || responseData.code !== 0) {
+ Message.error({ message: responseData?.message ?? "服务异常", duration: 1000 * 3 });
+ }
+ return responseData;
+}
+
+//处理错误,返回统一结构
+function handleTheError(error) {
+ console.log(`axios包装过的错误${error.config.url}`, error);
+ if (error.config?.showLoading === true) {
+ hideLoading();
+ }
+ const responseData = { code: -999, data: null };
+ if (error.response) {
+ const { data, status, statusText } = error.response;
+ if (status === 500 && /^\s*$/gi.test(data + "")) {
+ responseData.message = "服务异常,无响应数据";
+ } else {
+ responseData.data = data;
+ responseData.message = `${statusText ?? "服务异常,请稍后再试"}`;
+ }
+ } else if (error.request) {
+ responseData.message = "未收到服务端响应,请稍后再试";
+ } else {
+ responseData.message = "未发送请求,请检查请求参数是否正确";
+ }
+ Message.error({ message: responseData.message, duration: 1000 * 3 });
+ return responseData;
+}
+
+//添加请求拦截器
+http.interceptors.request.use(
+ (config) => {
+ if (config.showLoading === true) {
+ showLoading(config.loadingTarget);
+ }
+ if (config.withProjectId !== false) {
+ config.headers["projectId"] = store.getters["common/currentProjectId"];
+ }
+ if (config.withToken !== false) {
+ config.headers["token"] = getToken();
+ }
+ return config;
+ },
+ (error) => {
+ // console.log("request-error", error);
+ //todo 封装成固定结构 {code,data,message}
+ return handleTheError(error);
+ },
+);
+
+//响应拦截器
+http.interceptors.response.use(
+ (response) => {
+ //todo 封装成固定结构 {code,data,message}
+ return handleTheResponse(response);
+ },
+ (error) => {
+ //todo 封装成固定结构 {code,data,message}
+ return handleTheError(error);
+ },
+);
+// 引擎接口
+let modelaxiosUrl
+const ProjectConfig = window.ProjectConfig;
+
+modelaxiosUrl = ProjectConfig.modelUrl;
+export const modelhttp = axios.create({
+ withCredentials: false,
+ baseURL: modelaxiosUrl,
+ timeout: axiosTimeout
+});
+
+//添加请求拦截器
+modelhttp.interceptors.request.use(
+ (config) => {
+ if (config.showLoading === true) {
+ showLoading(config.loadingTarget);
+ }
+ if (config.withProjectId !== false) {
+ config.headers["projectId"] = store.getters["common/currentProjectId"];
+ }
+ if (config.withToken !== false) {
+ config.headers["token"] = getToken();
+ }
+ return config;
+ },
+ (error) => {
+ // console.log("request-error", error);
+ //todo 封装成固定结构 {code,data,message}
+ return handleTheError(error);
+ },
+);
+
+//响应拦截器
+modelhttp.interceptors.response.use(
+ (response) => {
+ //todo 封装成固定结构 {code,data,message}
+ return handleTheResponse(response);
+ },
+ (error) => {
+ //todo 封装成固定结构 {code,data,message}
+ return handleTheError(error);
+ },
+);
\ No newline at end of file
diff --git a/src/utils/logout.js b/src/utils/logout.js
new file mode 100644
index 0000000..29f9c57
--- /dev/null
+++ b/src/utils/logout.js
@@ -0,0 +1,19 @@
+import store from "../store/index";
+import router from "../router";
+
+const clearAuthenticateInfo = () => {
+ store.commit("common/setToken", "");
+ store.commit("common/setUserProfile", null);
+ window.localStorage.removeItem("token");
+ window.localStorage.removeItem("userProfile");
+}
+
+export const toLoginPage = () => {
+ clearAuthenticateInfo();
+ router.replace("/login");
+}
+
+export const toResetPwdPage = () => {
+ clearAuthenticateInfo();
+ router.replace("/resetpwd");
+}
\ No newline at end of file
diff --git a/src/views/EquipmentView.vue b/src/views/EquipmentView.vue
new file mode 100644
index 0000000..a499a46
--- /dev/null
+++ b/src/views/EquipmentView.vue
@@ -0,0 +1,618 @@
+<template>
+ <div class="equipment-container">
+ <div class="top-section mb-[20px]">
+ <div
+ class="w-full h-[4vh] mb-[1vh]"
+ :style="{
+ backgroundImage: `url(${titleImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ </div>
+ <div class="stats-grid" :style="sectionStyle">
+ <div class="stat-item mb-[10px]">
+ <div class="stat-info">
+ <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/shishirenshu.png" alt="">
+ <span class="satalabel ml-[8px]">实时人数</span>
+ </div>
+ <div class="value text-[#00FFFF] text-[28px] font-bold">62</div>
+ </div>
+ <div class="stat-item mb-[10px]">
+ <div class="stat-info">
+ <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/people.png" alt="">
+ <span class="satalabel ml-[8px]">今日累计/人次</span>
+ </div>
+ <div class="value text-[#FFD500] text-[28px] font-bold">62</div>
+ </div>
+ <div class="stat-item">
+ <div class="stat-info">
+ <img class="w-[24px] h-[24px]" src="../assets/images/backgrounds/zaigang.png" alt="">
+ <span class="satalabel ml-[8px]">在岗总数</span>
+ </div>
+ <div class="value text-[#FFD500] text-[28px] font-bold">62</div>
+ </div>
+ </div>
+ </div>
+
+ <div class="middle-section mb-[20px]">
+ <div
+ class="w-full h-[4vh] mb-[1vh]"
+ :style="{
+ backgroundImage: `url(${middleImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ </div>
+ <div class="equipment-status" :style="sectionStyle">
+ <div
+ class="w-full h-[30px] mb-[10px]"
+ :style="{
+ backgroundImage: `url(${bgImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ <div class="text-white text-[14px] ml-[40px] leading-[35px]">升降机监控</div>
+ </div>
+ <div class="status-circles">
+ <template v-for="item in circleItems">
+ <div class="circle-item flex flex-col items-center justify-center" :key="item.id">
+ <div class="progress-circle">
+ <V2Echarts :idName="item.id" :options="item.options" />
+ <div class="percentage">{{item.percentage}}%</div>
+ </div>
+ <div class="label mt-[5px] flex flex-row items-center justify-center">
+ <div class="text-[12px] text-[#FFFFFF] mr-[12px]">{{item.name}}</div>
+ <div class="text-[24px] text-[#FFD500]">{{item.value}}</div>
+ </div>
+ </div>
+ </template>
+ </div>
+ <div class="control-buttons mt-[30px]">
+ <button class="control-btn" :class="{ 'active': currentTab === '塔吊监控' }" @click="handleControlBtnClick('塔吊监控')">塔吊监控</button>
+ <button class="control-btn" :class="{ 'active': currentTab === '升降机监控' }" @click="handleControlBtnClick('升降机监控')">升降机监控</button>
+ </div>
+ <div class="divider"></div>
+ <div class="progress-bar">
+ <div class="label">运行设备总数</div>
+ <div class="bar flex items-center">
+ <div class="progress relative w-[80%] h-[24px]">
+ <div class="progress-inner" :style="{ width: `${deviceOnline / deviceTotal * 100}%` }"></div>
+ <div class="progress-blocks">
+ <div v-for="n in 28" :key="n"
+ class="block"
+ :class="{ 'active': (n-1)/28 * 100 <= (deviceOnline / deviceTotal * 100) }"
+ ></div>
+ </div>
+ </div>
+ <div class="count-container ml-[25px]">
+ <span class="text-[#FFBF00] text-[24px]">{{deviceOnline}}</span>
+ <span class="text-white text-[24px]">/</span>
+ <span class="text-white text-[24px]">{{deviceTotal}}</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="bottom-section">
+ <div
+ class="w-full h-[4vh] mb-[1vh]"
+ :style="{
+ backgroundImage: `url(${bottomImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ </div>
+ <div class="environment-grid" :style="sectionStyle">
+ <div class="env-item">
+ <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqiwendu.png" alt="">
+ <div class="env-info">
+ <span class="envlabel">大气温度</span>
+ <span class="envvalue" :style="enviorStyle">5°C</span>
+ </div>
+ </div>
+ <div class="env-item">
+ <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/daqishidu.png" alt="">
+ <div class="env-info">
+ <span class="envlabel">大气湿度</span>
+ <span class="envvalue" :style="enviorStyle">22.9%</span>
+ </div>
+ </div>
+ <div class="env-item">
+ <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM2.png" alt="">
+ <div class="env-info">
+ <span class="envlabel">PM2.5</span>
+ <span class="envvalue" :style="enviorStyle">10 μg/m³</span>
+ </div>
+ </div>
+ <div class="env-item">
+ <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/PM10.png" alt="">
+ <div class="env-info">
+ <span class="envlabel">PM10</span>
+ <span class="envvalue" :style="enviorStyle">13 μg/m³</span>
+ </div>
+ </div>
+ <div class="env-item">
+ <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengli.png" alt="">
+ <div class="env-info">
+ <span class="envlabel">风力</span>
+ <span class="envvalue" :style="enviorStyle">3级</span>
+ </div>
+ </div>
+ <div class="env-item">
+ <img class="w-[60px] h-[60px]" src="../assets/images/backgrounds/fengxiang.png" alt="">
+ <div class="env-info">
+ <span class="envlabel">风向</span>
+ <span class="envvalue" :style="enviorStyle">北风</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import V2Echarts from '@/components/V2Echarts.vue'
+export default {
+ name: 'EquipmentView',
+ components: {
+ V2Echarts
+ },
+ data() {
+ return {
+ backgroundImage: new URL('@/assets/images/backgrounds/cover_bg.png', import.meta.url).href,
+ titleImage: new URL('@/assets/images/titles/renyuan.png', import.meta.url).href,
+ middleImage: new URL('@/assets/images/titles/shebei.png', import.meta.url).href,
+ bottomImage: new URL('@/assets/images/titles/huanjing.png', import.meta.url).href,
+ bgImage: new URL('@/assets/images/titles/title_second.png', import.meta.url).href,
+ enviorImage: new URL('@/assets/images/titles/wendu_bg.png', import.meta.url).href,
+ deviceOnline: 1,
+ deviceTotal: 27,
+ currentTab: '塔吊监控',
+ circleItems: [
+ {
+ id: 'zaixianChartBox',
+ name: '总在线',
+ value: 22,
+ percentage: 81.5,
+ options: {
+ tooltip: {
+ trigger: 'item',
+ },
+ legend: {
+ itemWidth: 8,
+ itemHeight: 8,
+ top: '5%',
+ left: 'center',
+ show: false,
+ },
+ series: [
+ {
+ type: 'pie',
+ radius: ['70%', '80%'],
+ center: ['50%', '50%'],
+ avoidLabelOverlap: false,
+ hoverAnimation: false,
+ startAngle: 90,
+ itemStyle: {
+ normal: {
+ label: {
+ show: false,
+ },
+ labelLine: {
+ show: false,
+ },
+ shadowBlur: 40,
+ borderWidth: 5,
+ shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
+ },
+ },
+ data: [
+ { value: 100, name: '', itemStyle: { color: '#234E84' } },
+ ],
+ },
+ {
+ type: 'pie',
+ radius: ['70%', '100%'],
+ center: ['50%', '50%'],
+ avoidLabelOverlap: false,
+ hoverAnimation: false,
+ startAngle: 90,
+ itemStyle: {
+ normal: {
+ label: {
+ show: false,
+ },
+ labelLine: {
+ show: false,
+ },
+ shadowBlur: 40,
+ borderWidth: 10,
+ shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
+ },
+ },
+ data: [
+ { value: 20, name: '主隧洞掘进', itemStyle: { color: '#00FFFF' } },
+ { value: 80, name: '', itemStyle: { color: 'transparent' } },
+ ],
+ },
+
+ ],
+ }
+ },
+ {
+ id: 'lixianChartBox',
+ name: '总离线',
+ value: 5,
+ percentage: 81.5,
+ options: {
+ tooltip: {
+ trigger: 'item',
+ },
+ legend: {
+ itemWidth: 8,
+ itemHeight: 8,
+ top: '5%',
+ left: 'center',
+ show: false,
+ },
+ series: [
+ {
+ type: 'pie',
+ radius: ['70%', '80%'],
+ center: ['50%', '50%'],
+ avoidLabelOverlap: false,
+ hoverAnimation: false,
+ startAngle: 90,
+ itemStyle: {
+ normal: {
+ label: {
+ show: false,
+ },
+ labelLine: {
+ show: false,
+ },
+ shadowBlur: 40,
+ borderWidth: 5,
+ shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
+ },
+ },
+ data: [
+ { value: 100, name: '', itemStyle: { color: '#234E84' } },
+ ],
+ },
+ {
+ type: 'pie',
+ radius: ['70%', '100%'],
+ center: ['50%', '50%'],
+ avoidLabelOverlap: false,
+ hoverAnimation: false,
+ startAngle: 90,
+ itemStyle: {
+ normal: {
+ label: {
+ show: false,
+ },
+ labelLine: {
+ show: false,
+ },
+ shadowBlur: 40,
+ borderWidth: 10,
+ shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
+ },
+ },
+ data: [
+ { value: 20, name: '主隧洞掘进', itemStyle: { color: '#00FFFF' } },
+ { value: 80, name: '', itemStyle: { color: 'transparent' } },
+ ],
+ },
+
+ ],
+ }
+ },
+ {
+ id: 'baojingChartBox',
+ name: '总报警',
+ value: 0,
+ percentage: 81.5,
+ options: {
+ tooltip: {
+ trigger: 'item',
+ },
+ legend: {
+ itemWidth: 8,
+ itemHeight: 8,
+ top: '5%',
+ left: 'center',
+ show: false,
+ },
+ series: [
+ {
+ type: 'pie',
+ radius: ['70%', '80%'],
+ center: ['50%', '50%'],
+ avoidLabelOverlap: false,
+ hoverAnimation: false,
+ startAngle: 90,
+ itemStyle: {
+ normal: {
+ label: {
+ show: false,
+ },
+ labelLine: {
+ show: false,
+ },
+ shadowBlur: 40,
+ borderWidth: 5,
+ shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
+ },
+ },
+ data: [
+ { value: 100, name: '', itemStyle: { color: '#234E84' } },
+ ],
+ },
+ {
+ type: 'pie',
+ radius: ['70%', '100%'],
+ center: ['50%', '50%'],
+ avoidLabelOverlap: false,
+ hoverAnimation: false,
+ startAngle: 90,
+ itemStyle: {
+ normal: {
+ label: {
+ show: false,
+ },
+ labelLine: {
+ show: false,
+ },
+ shadowBlur: 40,
+ borderWidth: 10,
+ shadowColor: 'rgba(0, 0, 0, 0)', // 边框阴影
+ },
+ },
+ data: [
+ { value: 20, name: '主隧洞掘进', itemStyle: { color: '#00FFFF' } },
+ { value: 80, name: '', itemStyle: { color: 'transparent' } },
+ ],
+ },
+ ],
+ }
+ }
+ ]
+ }
+ },
+ computed: {
+ sectionStyle() {
+ return {
+ backgroundImage: `url(${this.backgroundImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }
+ },
+ enviorStyle() {
+ return {
+ backgroundImage: `url(${this.enviorImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }
+ }
+ },
+ methods: {
+ handleControlBtnClick(tab) {
+ this.currentTab = tab;
+ },
+ handleResize() {
+ if (this.myChart) {
+ this.myChart.resize()
+ }
+ },
+ }
+}
+</script>
+
+<style scoped>
+.equipment-container {
+ width: 100%;
+ height: calc(100vh - 100px);
+ color: white;
+}
+
+.section-title {
+ font-size: 18px;
+ margin-bottom: 20px;
+ color: #fff;
+}
+
+.top-section {
+ width: 100%;
+}
+
+.middle-section {
+ width: 100%;
+}
+
+.bottom-section {
+ width: 100%;
+}
+
+.stats-grid {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 20px 10px;
+}
+
+.stat-item{
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20px 14px;
+ height: 52px;
+ background: linear-gradient( 270deg, rgba(48,104,165,0.1) 2%, #3068A5 100%);
+ border-radius: 2px;
+}
+.env-item {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 10px 14px;
+}
+
+.stat-info {
+ display: flex;
+ flex-direction: row;
+ align-items: left;
+}
+.env-info {
+ display: flex;
+ flex-direction: column;
+ width: 70%;
+ height: 100%;
+}
+.satalabel{
+ font-size: 16px;
+ color: #fff;
+}
+.label {
+ font-size: 12px;
+ color: #fff;
+}
+.envlabel {
+ font-size: 14px;
+ color: #C8C8C8;
+ margin-left: 20px;
+}
+
+.envvalue {
+ font-size: 16px;
+ color: #fff;
+ margin-top: 4px;
+ width: 100%;
+ height: 100%;
+ padding-left: 20px;
+}
+
+.equipment-status {
+ padding: 20px 10px;
+}
+
+.status-title {
+ font-size: 16px;
+ margin-bottom: 20px;
+}
+
+.status-circles {
+ display: flex;
+ justify-content: space-around;
+ margin: 20px 0;
+}
+
+.progress-circle {
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ border: 4px solid #3068A5;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+}
+
+.percentage {
+ font-size: 12px;
+ color: #00ffff;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+
+.environment-grid {
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+}
+
+.control-buttons {
+ display: flex;
+ gap: 10px;
+ justify-content: center;
+}
+
+.control-btn {
+ padding: 8px 16px;
+ background: rgba(112,119,140,0.3);
+ border-radius: 2px;
+ border: 1px solid rgba(112,124,140,0.6);
+ color: #C8C8C8;
+ cursor: pointer;
+}
+
+.control-btn.active {
+ background: rgba(255,191,0,0.2);
+ border-radius: 2px;
+ border: 1px solid #FFBF00;
+ color: #fff;
+}
+
+.divider {
+ width: 100%;
+ height: 1px;
+ background: linear-gradient( 270deg, rgba(94,161,209,0.1) 0%, #4886BC 49%, rgba(48,104,165,0.1) 100%);
+ margin: 20px 0;
+}
+
+.progress-bar {
+ margin-top: 20px;
+}
+
+.bar {
+ width: 100%;
+}
+
+.progress {
+ background: rgba(216,216,216,0.1);
+ border: 1px solid rgba(255,255,255,0.2);
+ overflow: hidden;
+}
+
+.progress-blocks {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ gap: 4px;
+ padding: 2px 4px;
+}
+
+.block {
+ flex: 1;
+ height: 100%;
+ background: rgba(216,216,216,0.1);
+}
+
+.block.active {
+ background: linear-gradient(180deg, #FFD500 0%, #FF9B00 100%);
+}
+
+.progress-inner {
+ display: none;
+}
+</style>
diff --git a/src/views/Home.vue b/src/views/Home.vue
new file mode 100644
index 0000000..9e8fbf5
--- /dev/null
+++ b/src/views/Home.vue
@@ -0,0 +1,314 @@
+<template>
+ <div class="home-container">
+ <!-- 顶部导航 -->
+ <div class="top-nav">
+ <div class="nav-items">
+ <div class="nav-item mr-[8px]" :class="{ active: currentView === 'model' }" @click="handleChange('model')">模型</div>
+ <div class="nav-item mr-[8px]" :class="{ active: currentView === '720' }" @click="handleChange('720')">720全景</div>
+ <div class="nav-item" :class="{ active: currentView === 'project' }" @click="handleChange('project')">项目实况</div>
+ </div>
+ <div class="time-info">
+ <div class="time-info-item">
+ <i class="el-icon-date" style="color: #FFBF00;font-size: 20px;"></i>
+ <div class="text-white text-[16px] ml-[4px]">工程倒计时/天</div>
+ <div class="text-[#FFBF00] text-[24px] font-bold ml-[28px]">175</div>
+ </div>
+ <div class="time-line">
+ </div>
+ </div>
+ </div>
+
+ <div class="content-wrapper mb-[20px]">
+ <!-- 720菜单 -->
+ <div class="side-menu" v-if="currentView === '720'">
+ <div class="menu-dropdown">
+ <select class="menu-select">
+ <option>请选择</option>
+ </select>
+ </div>
+ <div class="menu-list">
+ <div class="menu-item">
+ <span>一期</span>
+ <i class="arrow-icon"></i>
+ </div>
+ <div class="menu-item">
+ <span>二期</span>
+ <i class="arrow-icon"></i>
+ </div>
+ <div class="menu-item">
+ <span>三期</span>
+ <i class="arrow-icon"></i>
+ </div>
+ <div class="menu-item">
+ <span>四期</span>
+ <i class="arrow-icon"></i>
+ </div>
+ </div>
+ <div class="submenu">
+ <div class="submenu-item">1#楼东立面图</div>
+ <div class="submenu-item">1#出入口层立-1</div>
+ <div class="submenu-item">2#出入口层立-2</div>
+ <div class="submenu-item">2#楼东立面图</div>
+ <div class="submenu-item">3#楼东立面图</div>
+ <div class="submenu-item">停车场入口区控制面</div>
+ </div>
+ </div>
+
+ <!-- 主要内容区域 -->
+ <div class="main-content">
+ <!-- 模型 -->
+ <div class="content" v-if="currentView === 'model'">
+ <iframe id="model-iframe" class="content-frame" src="" frameborder="0"></iframe>
+ </div>
+ <!-- 720 -->
+ <div class="pano-content" v-if="currentView === '720'">
+ <div id="panoviewpreview" class="pano-frame">
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="chart-content">
+ <div
+ class="w-full h-[4vh] mb-[1vh]"
+ :style="{
+ backgroundImage: `url(${bottomImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ </div>
+ <div class="chart-container">
+ <img src="../assets/images/backgrounds/shigongjinduchart.png" alt="施工进度" class="w-full h-[280px]"/>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'Home',
+ components: {
+ },
+ data() {
+ return {
+ currentView: 'model',
+ chartOptions: {
+ id: 'shigongjinduChart',
+ options: {
+ title: {
+ text: '施工进度'
+ }
+ }
+ },
+ bottomImage: new URL('@/assets/images/titles/shigong.png', import.meta.url).href,
+ }
+ },
+ methods: {
+ handleChange(view) {
+ this.currentView = view
+
+ },
+ modelShow() {
+ const iframe = document.getElementById('model-iframe')
+ let token = ''
+ let ifrSrc = ''
+ console.log('模型中查看')
+ ifrSrc = `${window.IP_CONFIG.SCENE_URL}?token=${token}&projectId=${_this.projectID}&isPreview=1&edit=false`
+ iframe.src = ifrSrc
+ console.log('加载iframe地址', ifrSrc)
+ }
+ },
+ mounted() {
+ this.modelShow()
+ },
+}
+</script>
+
+<style scoped lang="scss">
+.home-container {
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+}
+
+.top-nav {
+ height: 50px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ color: white;
+}
+
+.nav-items {
+ display: flex;
+ gap: 20px;
+}
+
+.nav-item {
+ background: rgba(112,119,140,0.3);
+ border-radius: 2px;
+ border: 1px solid rgba(112,124,140,0.6);
+ padding: 5px 16px;
+ cursor: pointer;
+}
+
+.nav-item.active {
+ background: rgba(255,191,0,0.2);
+ border-radius: 2px;
+ border: 1px solid #FFBF00;
+}
+
+.time-info {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 200px;
+}
+.time-info-item {
+ display: flex;
+ align-items: center;
+
+}
+.time-line {
+ width: 200px;
+ height: 1px;
+ background: linear-gradient( 270deg, rgba(255,191,0,0) 0%, #FFBF00 100%);
+}
+
+.content-wrapper {
+ display: flex;
+ overflow: hidden;
+ position: relative;
+}
+
+.side-menu {
+ width: 250px;
+ background-color: #1e3d6b;
+ color: white;
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ right: auto;
+ bottom: auto;
+}
+
+.menu-dropdown {
+ padding: 15px;
+}
+
+.menu-select {
+ width: 100%;
+ padding: 8px;
+ background-color: #0a1931;
+ color: white;
+ border: 1px solid #2a4d7d;
+}
+
+.menu-list {
+ border-top: 1px solid #2a4d7d;
+}
+
+.menu-item {
+ padding: 12px 20px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ cursor: pointer;
+}
+
+.menu-item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.arrow-icon {
+ border: solid white;
+ border-width: 0 2px 2px 0;
+ display: inline-block;
+ padding: 3px;
+ transform: rotate(-45deg);
+}
+
+.submenu {
+ background-color: #152b4a;
+}
+
+.submenu-item {
+ padding: 10px 30px;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.submenu-item:hover {
+ background-color: rgba(255, 255, 255, 0.1);
+}
+
+.main-content {
+ flex: 1;
+ padding: 20px;
+ background-color: #0a1931;
+ width: 100%;
+ height: 588px;
+}
+
+.content-header {
+ color: white;
+ margin-bottom: 20px;
+}
+
+.chart-container {
+ background-color: #1e3d6b;
+ border-radius: 8px;
+ padding: 20px;
+ width: 100%;
+ height: 100%;
+}
+
+.chart-legend {
+ display: flex;
+ gap: 20px;
+ margin-bottom: 20px;
+ color: white;
+}
+
+.legend-item {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+.dot {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+}
+
+.dot.blue {
+ background-color: #00ffff;
+}
+
+.dot.yellow {
+ background-color: #ffd700;
+}
+
+.chart-area {
+ height: 400px;
+ margin-bottom: 20px;
+}
+
+.chart-tabs {
+ display: flex;
+ gap: 10px;
+}
+
+.tab {
+ padding: 8px 16px;
+ color: white;
+ cursor: pointer;
+ border-radius: 4px;
+}
+
+.tab.active {
+ background-color: #2a4d7d;
+}
+</style>
diff --git a/src/views/ProjectView.vue b/src/views/ProjectView.vue
new file mode 100644
index 0000000..f0d31c4
--- /dev/null
+++ b/src/views/ProjectView.vue
@@ -0,0 +1,305 @@
+<template>
+ <div class="project-info">
+ <!-- 上部分 - 图片 -->
+ <div
+ class="w-full h-[4vh] mb-[1vh]"
+ :style="{
+ backgroundImage: `url(${titleImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ </div>
+
+ <!-- 下部分 - 内容区域 -->
+ <div
+ class="content flex-1 px-[16px] py-[14px] overflow-y-auto"
+ :style="{
+ backgroundImage: `url(${backgroundImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: 'cover'
+ }"
+ >
+ <!-- 建筑面积 -->
+ <div
+ class="w-full h-[50px] mb-[10px] flex items-center justify-evenly"
+ :style="{
+ backgroundImage: `url(${contentImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ <img
+ src="../assets/images/backgrounds/jianzhumianji.png"
+ alt=""
+ class="h-[30px] w-[40px]"
+ >
+ <div class="text-white text-[14px]">一期总建筑面积</div>
+ <div class="flex items-center justify-center">
+ <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">103.18</div>
+ <div class="text-[14px] text-white">万㎡</div>
+ </div>
+ </div>
+
+ <!-- 目标日期 -->
+ <div
+ class="w-full h-[50px] flex items-center justify-evenly"
+ :style="{
+ backgroundImage: `url(${contentImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ <img
+ src="../assets/images/backgrounds/mubiaowancheng.png"
+ alt=""
+ class="h-[30px] w-[40px]"
+ >
+ <div class="text-white text-[14px]">目标完成日期</div>
+ <div class="flex items-center justify-center">
+ <div class="text-[24px] text-[#00FFFF] font-bold">2028-12-01</div>
+ </div>
+ </div>
+
+ <!-- 项目名称 -->
+ <div
+ class="w-full h-[30px] mt-[20px] mb-[10px]"
+ :style="{
+ backgroundImage: `url(${bgImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ <div class="text-white text-[14px] ml-[40px] leading-[35px]">项目名称:北京交通大学雄安校区</div>
+ </div>
+
+ <div class="text-white text-[14px] tracking-[1px] leading-[24px]">
+ 北京交通大学雄安校区选址位于河北雄安新区第五组团及启动区。东至规划绿地、城市道路NB6,南至城市道路ED34、城市道路EA2,西至城市道路ND32、城市道路NA11,北至城市道路EA1。
+ </div>
+
+ <img
+ src="../assets/images/backgrounds/map.png"
+ alt=""
+ class="w-full h-[196px] mt-[20px]"
+ >
+
+ <!-- 参建单位 -->
+ <div
+ class="w-full h-[30px] mt-[20px] mb-[10px]"
+ :style="{
+ backgroundImage: `url(${bgImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ <div class="text-white text-[14px] ml-[40px] leading-[35px]">参建单位</div>
+ </div>
+
+ <!-- 参建单位统计 -->
+ <div class="flex justify-between mb-[10px]">
+ <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
+ <div class="text-white text-[14px] flex flex-col items-center justify-center">
+ <div class="text-[16px] text-[#00FFFF]">3</div>
+ <div class="text-[12px] text-[#ddd]">建设单位</div>
+ </div>
+ <img
+ src="../assets/images/backgrounds/jianshedanwei.png"
+ alt=""
+ class="h-[40px] w-[60px]"
+ >
+ </div>
+ <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
+ <div class="text-white text-[14px] flex flex-col items-center justify-center">
+ <div class="text-[16px] text-[#00FFFF]">5</div>
+ <div class="text-[12px] text-[#ddd]">施工单位</div>
+ </div>
+ <img
+ src="../assets/images/backgrounds/shigongdanwei.png"
+ alt=""
+ class="h-[40px] w-[60px]"
+ >
+ </div>
+ </div>
+
+ <div class="flex justify-between">
+ <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
+ <div class="text-white text-[14px] flex flex-col items-center justify-center">
+ <div class="text-[16px] text-[#00FFFF]">1</div>
+ <div class="text-[12px] text-[#ddd]">监理单位</div>
+ </div>
+ <img
+ src="../assets/images/backgrounds/jianlidanwei.png"
+ alt=""
+ class="h-[40px] w-[60px]"
+ >
+ </div>
+ <div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
+ <div class="text-white text-[14px] flex flex-col items-center justify-center">
+ <div class="text-[16px] text-[#00FFFF]">1</div>
+ <div class="text-[12px] text-[#ddd]">设计单位</div>
+ </div>
+ <img
+ src="../assets/images/backgrounds/shejidanwei.png"
+ alt=""
+ class="h-[40px] w-[60px]"
+ >
+ </div>
+ </div>
+
+ <!-- 表格搜索 -->
+ <div class="w-full flex items-center justify-between mb-[10px] mt-[20px]">
+ <el-input
+ v-model="searchText"
+ placeholder="搜索"
+ class="search-item w-full rounded-[2px]"
+ prefix-icon="el-icon-search"
+ >
+ </el-input>
+ </div>
+
+ <!-- 表格 -->
+ <div
+ class="w-full min-h-[20vh] px-[8px] py-[10px]"
+ :style="{
+ backgroundImage: `url(${tableImage})`,
+ backgroundRepeat: 'no-repeat',
+ backgroundPosition: 'center center',
+ backgroundSize: '100% 100%'
+ }"
+ >
+ <table class="w-full text-white text-[14px] overflow-y-auto">
+ <thead>
+ <tr class="table-header">
+ <th class="py-[8px] text-left pl-[12px]">类型</th>
+ <th class="py-[8px] text-left">阶段</th>
+ <th class="py-[8px] text-left">名称</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr
+ v-for="item in tableData"
+ :key="item.id"
+ class="border-b border-[rgba(255,255,255,0.1)]"
+ >
+ <td class="py-[8px] pl-[12px]">{{ item.type }}</td>
+ <td class="py-[8px]">{{ item.stage }}</td>
+ <td class="py-[8px]">{{ item.name }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'ProjectView',
+ data() {
+ return {
+ searchText: '',
+ backgroundImage: new URL('@/assets/images/backgrounds/cover_bg.png', import.meta.url).href,
+ titleImage: new URL('@/assets/images/titles/xiangmu.png', import.meta.url).href,
+ contentImage: new URL('@/assets/images/titles/xiangmu_bg.png', import.meta.url).href,
+ bgImage: new URL('@/assets/images/titles/title_second.png', import.meta.url).href,
+ tableImage: new URL('@/assets/images/backgrounds/table_bg.png', import.meta.url).href,
+ tableData: [
+ {
+ name: '建设单位名称单位',
+ stage: '一标',
+ type: '建设单位'
+ },
+ {
+ name: '建设单位名称单位',
+ stage: '一标',
+ type: '建设单位'
+ },
+ {
+ name: '建设单位名称单位',
+ stage: '一标',
+ type: '建设单位'
+ },
+ {
+ name: '建设单位名称单位',
+ stage: '一标',
+ type: '建设单位'
+ },
+ ]
+ };
+ },
+}
+</script>
+
+<style scoped lang="scss">
+.project-info {
+ width: 100%;
+ height: calc(100vh - 100px);
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+}
+
+.header {
+ width: 100%;
+}
+
+.content {
+ flex: 1;
+ width: 100%;
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background-color: rgba(255, 255, 255, 0.2);
+ border-radius: 3px;
+ }
+
+ &::-webkit-scrollbar-track {
+ background-color: rgba(0, 0, 0, 0.1);
+ }
+}
+
+.lineB {
+ background: radial-gradient(25% 60% at 50% 50%, rgb(26 56 89 / 50%) 0%, rgb(93 174 255 / 15%) 100%);
+ border-radius: 2px;
+ border: 1px solid;
+ border-image: linear-gradient(90deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5)) 1 1;
+}
+
+.search-item {
+ ::v-deep .el-input__wrapper {
+ background-color: rgba(26, 56, 89, 0.5);
+ box-shadow: none;
+ }
+
+ ::v-deep .el-input__icon {
+ line-height: 35px;
+ }
+
+ ::v-deep .el-input__inner {
+ color: white;
+ }
+
+ ::v-deep .el-input__inner::placeholder {
+ color: rgba(255, 255, 255, 0.5);
+ }
+
+ ::v-deep .el-input__prefix-icon {
+ color: rgba(255, 255, 255, 0.5);
+ }
+}
+
+.table-header {
+ height: 32px;
+ background: linear-gradient(180deg, #3068A5 0%, #1E4066 100%);
+ box-shadow: inset 0px 1px 0px 0px rgba(255,255,255,0.2);
+}
+</style>
diff --git a/startscg.bat b/startscg.bat
new file mode 100644
index 0000000..6139c5b
--- /dev/null
+++ b/startscg.bat
@@ -0,0 +1,3 @@
+cd /d C:\Program Files (x86)\SCG-HAWE\Setup-SCG\
+start "SCG" "SCG.exe"
+exit
\ No newline at end of file
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..7944e5d
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,23 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
+ theme: {
+ extend: {
+ fontFamily: {
+ pingfang: ["PingFang SC Semibold", "PingFang SC Regular", "PingFang SC Medium", "Microsoft YaHei"],
+ "pingfang-medium": ["PingFang SC Medium", "Microsoft YaHei"],
+ "pingfang-regular": ["PingFang SC Regular", "Microsoft YaHei"],
+ "pingfang-light": ["PingFang SC Light", "平方 细体", "Microsoft YaHei"],
+ ding: ["DINEngschrift-Alternate"],
+ },
+ spacing: {
+ 4.5: "1.125rem",
+ 18: "4.5rem",
+ },
+ borderRadius: {
+ half: "50%",
+ },
+ },
+ },
+ plugins: [],
+};
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..037f13a
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,98 @@
+/* eslint-disable no-unused-vars */
+import path from "path";
+import { defineConfig, splitVendorChunkPlugin } from "vite";
+// splitVendorChunk, isCSSRequest
+
+import PluginForViteVue2 from "@vitejs/plugin-vue2";
+
+export default defineConfig(({ mode }) => {
+ return {
+ resolve: {
+ alias: {
+ "@": path.resolve(__dirname, './src'),
+ "@css": path.resolve("./src/assets/css"),
+ 'worker-loader': require.resolve('worker-loader'),
+ },
+ },
+ worker: {
+ // 例如,设置一个worker的入口文件
+ // 注意:这是一个假设的配置,具体取决于worker-loader是否支持这样的配置
+ // entry: '/path/to/worker/entry.js',
+ options: { inline: true, name: 'workerName.[hash].js' }
+ },
+ plugins: [PluginForViteVue2(), splitVendorChunkPlugin()],
+ css: {
+ preprocessorOptions: {
+ scss: {
+ additionalData: "@import '@css/sass.scss';",
+ },
+ },
+ },
+ server: {
+ proxy: {
+ "^/api/": {
+ // target: "http://47.117.124.20:2002/",
+ target: "https://www.probim.cn:7707",
+ rewrite: (path) => path.replace(/^\/api\//, ""),
+ changeOrigin: true, //通过浏览器查看像是"未生效",实际发送给后端的是更改过的Host(与target的host相同)
+ },
+ },
+ port: 3000,
+ host: "0.0.0.0",
+ cors: true,
+ open: true,
+ },
+ esbuild: {
+ treeShaking: true,
+ drop: mode === "production" ? ["console", "debugger"] : [],
+ },
+ build: {
+ minify: "esbuild",
+ chunkSizeWarningLimit: 500, //kbs
+ rollupOptions: {
+ output: {
+ chunkFileNames: "assets/js/[name]-[hash].js",
+ entryFileNames: "assets/js/[name]-[hash].js",
+ assetFileNames: "assets/[ext]/[name]-[hash].[ext]",
+ // manualChunks(id) {
+ // if (id.includes("/node_modules/")) {
+ // const name = id.split("/node_modules/")[1].split("/")[0];
+ // for (const key of Object.keys(ChunksMap)) {
+ // if (ChunksMap[key].includes(name)) {
+ // return key;
+ // }
+ // }
+ // return "vendor";
+ // }
+ // },
+
+ // eslint-disable-next-line no-unused-vars
+ // manualChunks(id, { getModuleInfo, getModuleIds }) {
+ // const getShouldBeVendor = splitVendorChunk();
+ // const chunkName = getShouldBeVendor(id, { getModuleInfo });
+ // if (chunkName === "vendor") {
+ // //1 在node_modules文件夹下
+ // //2 不是css类请求
+ // //3 是被静态引入的
+ // return chunkName;
+ // } else if (id.includes("src")) {
+ // const moduleInfo = getModuleInfo(id);
+ // // console.log(id, "importers", moduleInfo.importers);
+ // // console.log(id, "dynamicImporters", moduleInfo.dynamicImporters);
+ // if (moduleInfo.importers.length + moduleInfo.dynamicImporters.length > 1) {
+ // return "manifest";
+ // }
+ // }
+ // },
+
+ // eslint-disable-next-line no-unused-vars
+ manualChunks(id) {
+ if (id.includes("/node_modules/")) {
+ return id.split("/node_modules/")[1].split("/")[0];
+ }
+ },
+ },
+ },
+ },
+ };
+});
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..ecec6fb
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,1845 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/parser@^7.18.4":
+ version "7.20.7"
+ resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
+ integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
+
+"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.5":
+ version "7.20.7"
+ resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd"
+ integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==
+ dependencies:
+ regenerator-runtime "^0.13.11"
+
+"@esbuild/android-arm64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz#cf91e86df127aa3d141744edafcba0abdc577d23"
+ integrity sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==
+
+"@esbuild/android-arm@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.16.17.tgz#025b6246d3f68b7bbaa97069144fb5fb70f2fff2"
+ integrity sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==
+
+"@esbuild/android-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.16.17.tgz#c820e0fef982f99a85c4b8bfdd582835f04cd96e"
+ integrity sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==
+
+"@esbuild/darwin-arm64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz#edef4487af6b21afabba7be5132c26d22379b220"
+ integrity sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==
+
+"@esbuild/darwin-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz#42829168730071c41ef0d028d8319eea0e2904b4"
+ integrity sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==
+
+"@esbuild/freebsd-arm64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz#1f4af488bfc7e9ced04207034d398e793b570a27"
+ integrity sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==
+
+"@esbuild/freebsd-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz#636306f19e9bc981e06aa1d777302dad8fddaf72"
+ integrity sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==
+
+"@esbuild/linux-arm64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz#a003f7ff237c501e095d4f3a09e58fc7b25a4aca"
+ integrity sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==
+
+"@esbuild/linux-arm@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz#b591e6a59d9c4fe0eeadd4874b157ab78cf5f196"
+ integrity sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==
+
+"@esbuild/linux-ia32@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz#24333a11027ef46a18f57019450a5188918e2a54"
+ integrity sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==
+
+"@esbuild/linux-loong64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8"
+ integrity sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==
+
+"@esbuild/linux-mips64el@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz#4e5967a665c38360b0a8205594377d4dcf9c3726"
+ integrity sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==
+
+"@esbuild/linux-ppc64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz#206443a02eb568f9fdf0b438fbd47d26e735afc8"
+ integrity sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==
+
+"@esbuild/linux-riscv64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz#c351e433d009bf256e798ad048152c8d76da2fc9"
+ integrity sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==
+
+"@esbuild/linux-s390x@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz#661f271e5d59615b84b6801d1c2123ad13d9bd87"
+ integrity sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==
+
+"@esbuild/linux-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz#e4ba18e8b149a89c982351443a377c723762b85f"
+ integrity sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==
+
+"@esbuild/netbsd-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz#7d4f4041e30c5c07dd24ffa295c73f06038ec775"
+ integrity sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==
+
+"@esbuild/openbsd-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz#970fa7f8470681f3e6b1db0cc421a4af8060ec35"
+ integrity sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==
+
+"@esbuild/sunos-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz#abc60e7c4abf8b89fb7a4fe69a1484132238022c"
+ integrity sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==
+
+"@esbuild/win32-arm64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz#7b0ff9e8c3265537a7a7b1fd9a24e7bd39fcd87a"
+ integrity sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==
+
+"@esbuild/win32-ia32@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz#e90fe5267d71a7b7567afdc403dfd198c292eb09"
+ integrity sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==
+
+"@esbuild/win32-x64@0.16.17":
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz#c5a1a4bfe1b57f0c3e61b29883525c6da3e5c091"
+ integrity sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==
+
+"@eslint/eslintrc@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
+ integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.4.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
+ strip-json-comments "^3.1.1"
+
+"@humanwhocodes/config-array@^0.11.8":
+ version "0.11.8"
+ resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
+ integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
+ dependencies:
+ "@humanwhocodes/object-schema" "^1.2.1"
+ debug "^4.1.1"
+ minimatch "^3.0.5"
+
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
+
+"@humanwhocodes/object-schema@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+ integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
+ version "1.2.8"
+ resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@videojs/http-streaming@2.14.3":
+ version "2.14.3"
+ resolved "https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-2.14.3.tgz#3277e03b576766decb4fc663e954e18bfa10d2a1"
+ integrity sha512-2tFwxCaNbcEZzQugWf8EERwNMyNtspfHnvxRGRABQs09W/5SqmkWFuGWfUAm4wQKlXGfdPyAJ1338ASl459xAA==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@videojs/vhs-utils" "3.0.5"
+ aes-decrypter "3.1.3"
+ global "^4.4.0"
+ m3u8-parser "4.7.1"
+ mpd-parser "0.21.1"
+ mux.js "6.0.1"
+ video.js "^6 || ^7"
+
+"@videojs/vhs-utils@3.0.5", "@videojs/vhs-utils@^3.0.4", "@videojs/vhs-utils@^3.0.5":
+ version "3.0.5"
+ resolved "https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-3.0.5.tgz#665ba70d78258ba1ab977364e2fe9f4d4799c46c"
+ integrity sha512-PKVgdo8/GReqdx512F+ombhS+Bzogiofy1LgAj4tN8PfdBx3HSS7V5WfJotKTqtOWGwVfSWsrYN/t09/DSryrw==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ global "^4.4.0"
+ url-toolkit "^2.2.1"
+
+"@videojs/xhr@2.6.0":
+ version "2.6.0"
+ resolved "https://registry.npmmirror.com/@videojs/xhr/-/xhr-2.6.0.tgz#cd897e0ad54faf497961bcce3fa16dc15a26bb80"
+ integrity sha512-7J361GiN1tXpm+gd0xz2QWr3xNWBE+rytvo8J3KuggFaLg+U37gZQ2BuPLcnkfGffy2e+ozY70RHC8jt7zjA6Q==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ global "~4.4.0"
+ is-function "^1.0.1"
+
+"@vitejs/plugin-vue2@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.npmmirror.com/@vitejs/plugin-vue2/-/plugin-vue2-2.2.0.tgz#7453207197d6ac2b7023cedc7133b142c604c356"
+ integrity sha512-1km7zEuZ/9QRPvzXSjikbTYGQPG86Mq1baktpC4sXqsXlb02HQKfi+fl8qVS703JM7cgm24Ga9j+RwKmvFn90A==
+
+"@vue/compiler-sfc@2.7.14":
+ version "2.7.14"
+ resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.14.tgz#3446fd2fbb670d709277fc3ffa88efc5e10284fd"
+ integrity sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==
+ dependencies:
+ "@babel/parser" "^7.18.4"
+ postcss "^8.4.14"
+ source-map "^0.6.1"
+
+"@xmldom/xmldom@^0.7.2":
+ version "0.7.9"
+ resolved "https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.7.9.tgz#7f9278a50e737920e21b297b8a35286e9942c056"
+ integrity sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==
+
+acorn-jsx@^5.3.2:
+ version "5.3.2"
+ resolved "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-node@^1.8.2:
+ version "1.8.2"
+ resolved "https://registry.npmmirror.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8"
+ integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
+ dependencies:
+ acorn "^7.0.0"
+ acorn-walk "^7.0.0"
+ xtend "^4.0.2"
+
+acorn-walk@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn@^7.0.0:
+ version "7.4.1"
+ resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+acorn@^8.8.0:
+ version "8.8.1"
+ resolved "https://registry.npmmirror.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
+ integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
+
+aes-decrypter@3.1.3:
+ version "3.1.3"
+ resolved "https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-3.1.3.tgz#65ff5f2175324d80c41083b0e135d1464b12ac35"
+ integrity sha512-VkG9g4BbhMBy+N5/XodDeV6F02chEk9IpgRTq/0bS80y4dzy79VH2Gtms02VXomf3HmyRe3yyJYkJ990ns+d6A==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@videojs/vhs-utils" "^3.0.5"
+ global "^4.4.0"
+ pkcs7 "^1.0.4"
+
+ajv-keywords@^3.1.0:
+ version "3.5.2"
+ resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.4:
+ version "6.12.6"
+ resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+arg@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+async-validator@~1.8.1:
+ version "1.8.5"
+ resolved "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
+ integrity sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==
+ dependencies:
+ babel-runtime "6.x"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+autoprefixer@^10.4.13:
+ version "10.4.13"
+ resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
+ integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
+ dependencies:
+ browserslist "^4.21.4"
+ caniuse-lite "^1.0.30001426"
+ fraction.js "^4.2.0"
+ normalize-range "^0.1.2"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
+
+axios@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.npmmirror.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1"
+ integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==
+ dependencies:
+ follow-redirects "^1.15.0"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
+babel-helper-vue-jsx-merge-props@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
+ integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==
+
+babel-runtime@6.x:
+ version "6.26.0"
+ resolved "https://registry.npmmirror.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^3.0.2, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+browserslist@^4.21.4:
+ version "4.21.4"
+ resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
+ integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
+ dependencies:
+ caniuse-lite "^1.0.30001400"
+ electron-to-chromium "^1.4.251"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.9"
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase-css@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426:
+ version "1.0.30001442"
+ resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz#40337f1cf3be7c637b061e2f78582dc1daec0614"
+ integrity sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==
+
+chalk@^4.0.0:
+ version "4.1.2"
+ resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3:
+ version "3.5.3"
+ resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+claygl@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.npmmirror.com/claygl/-/claygl-1.3.0.tgz#7a6e2903210519ac358848f5d78070ed211685f3"
+ integrity sha512-+gGtJjT6SSHD2l2yC3MCubW/sCV40tZuSs5opdtn79vFSGUgp/lH139RNEQ6Jy078/L0aV8odCw8RSrUcMfLaQ==
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@^1.1.4, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+comutils@^1.1.9:
+ version "1.1.19"
+ resolved "https://registry.npmmirror.com/comutils/-/comutils-1.1.19.tgz#3e07f306abf48e83726511713a72b20565034443"
+ integrity sha512-JxXB67juILiwhdLwOsYyjUqwWEhHdObI0EClOPk+JDtEuTbac59s0pxGpfCBnNNQ5JommifmcMGneW/4Cg7YWw==
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+core-js@^2.4.0:
+ version "2.6.12"
+ resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
+ integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
+
+cross-spawn@^7.0.2:
+ version "7.0.3"
+ resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+crypto-js@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
+ integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+csstype@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
+ integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
+
+dayjs@^1.11.7:
+ version "1.11.7"
+ resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
+ integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
+
+de-indent@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
+ integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==
+
+debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+ version "4.3.4"
+ resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+deep-is@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^1.2.0:
+ version "1.5.2"
+ resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
+ integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
+
+defined@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf"
+ integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+detective@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.npmmirror.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
+ integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
+ dependencies:
+ acorn-node "^1.8.2"
+ defined "^1.0.0"
+ minimist "^1.2.6"
+
+didyoumean@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
+ integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
+dlv@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+ integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
+dom-walk@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
+ integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
+
+echarts-gl@2.0.9:
+ version "2.0.9"
+ resolved "https://registry.npmmirror.com/echarts-gl/-/echarts-gl-2.0.9.tgz#ee228a6c7520a6fb7bbb71ea94394f3637ade033"
+ integrity sha512-oKeMdkkkpJGWOzjgZUsF41DOh6cMsyrGGXimbjK2l6Xeq/dBQu4ShG2w2Dzrs/1bD27b2pLTGSaUzouY191gzA==
+ dependencies:
+ claygl "^1.2.1"
+ zrender "^5.1.1"
+
+echarts@^5.4.1:
+ version "5.4.1"
+ resolved "https://registry.npmmirror.com/echarts/-/echarts-5.4.1.tgz#d7f65a584d78beff62568d878b16151b3381811c"
+ integrity sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==
+ dependencies:
+ tslib "2.3.0"
+ zrender "5.4.1"
+
+electron-to-chromium@^1.4.251:
+ version "1.4.284"
+ resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
+ integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
+
+element-ui@^2.15.12:
+ version "2.15.12"
+ resolved "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.12.tgz#fdde927a54078b17a85541ff7c0f0dad32488b8e"
+ integrity sha512-Y5FMT2BPOindU2GkDEQ5ZKUVxDawKONRNMh2eL3uBx1FOtvUJ+L6IxXLVsNxq4WnaX/UnVNgWXebl7DobygZMg==
+ dependencies:
+ async-validator "~1.8.1"
+ babel-helper-vue-jsx-merge-props "^2.0.0"
+ deepmerge "^1.2.0"
+ normalize-wheel "^1.0.1"
+ resize-observer-polyfill "^1.5.0"
+ throttle-debounce "^1.0.1"
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+esbuild@^0.16.3:
+ version "0.16.17"
+ resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259"
+ integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==
+ optionalDependencies:
+ "@esbuild/android-arm" "0.16.17"
+ "@esbuild/android-arm64" "0.16.17"
+ "@esbuild/android-x64" "0.16.17"
+ "@esbuild/darwin-arm64" "0.16.17"
+ "@esbuild/darwin-x64" "0.16.17"
+ "@esbuild/freebsd-arm64" "0.16.17"
+ "@esbuild/freebsd-x64" "0.16.17"
+ "@esbuild/linux-arm" "0.16.17"
+ "@esbuild/linux-arm64" "0.16.17"
+ "@esbuild/linux-ia32" "0.16.17"
+ "@esbuild/linux-loong64" "0.16.17"
+ "@esbuild/linux-mips64el" "0.16.17"
+ "@esbuild/linux-ppc64" "0.16.17"
+ "@esbuild/linux-riscv64" "0.16.17"
+ "@esbuild/linux-s390x" "0.16.17"
+ "@esbuild/linux-x64" "0.16.17"
+ "@esbuild/netbsd-x64" "0.16.17"
+ "@esbuild/openbsd-x64" "0.16.17"
+ "@esbuild/sunos-x64" "0.16.17"
+ "@esbuild/win32-arm64" "0.16.17"
+ "@esbuild/win32-ia32" "0.16.17"
+ "@esbuild/win32-x64" "0.16.17"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+eslint-config-prettier@^8.5.0:
+ version "8.6.0"
+ resolved "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207"
+ integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
+
+eslint-define-config@^1.12.0:
+ version "1.14.0"
+ resolved "https://registry.npmmirror.com/eslint-define-config/-/eslint-define-config-1.14.0.tgz#a9ce2861e88c7f1b6bc73a8f38ed8225ab296d13"
+ integrity sha512-NREt5SzMwKmLAY28YdaqIiTSJxfPpuZ+1ZLJxY2Wbj02dYF4QX81z0q9MPMjZB8C+SlCu66qAhcPpFJyhXOiuA==
+
+eslint-plugin-prettier@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b"
+ integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==
+ dependencies:
+ prettier-linter-helpers "^1.0.0"
+
+eslint-plugin-vue@^9.8.0:
+ version "9.8.0"
+ resolved "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.8.0.tgz#91de2aabbee8cdbef078ccd4f650a9ecfa445f4f"
+ integrity sha512-E/AXwcTzunyzM83C2QqDHxepMzvI2y6x+mmeYHbVDQlKFqmKYvRrhaVixEeeG27uI44p9oKDFiyCRw4XxgtfHA==
+ dependencies:
+ eslint-utils "^3.0.0"
+ natural-compare "^1.4.0"
+ nth-check "^2.0.1"
+ postcss-selector-parser "^6.0.9"
+ semver "^7.3.5"
+ vue-eslint-parser "^9.0.1"
+ xml-name-validator "^4.0.0"
+
+eslint-scope@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
+ integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-utils@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
+ integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
+ dependencies:
+ eslint-visitor-keys "^2.0.0"
+
+eslint-visitor-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+ integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint-visitor-keys@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
+ integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
+
+eslint@^8.30.0:
+ version "8.31.0"
+ resolved "https://registry.npmmirror.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524"
+ integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==
+ dependencies:
+ "@eslint/eslintrc" "^1.4.1"
+ "@humanwhocodes/config-array" "^0.11.8"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ ajv "^6.10.0"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.3.2"
+ doctrine "^3.0.0"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^7.1.1"
+ eslint-utils "^3.0.0"
+ eslint-visitor-keys "^3.3.0"
+ espree "^9.4.0"
+ esquery "^1.4.0"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^6.0.1"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ grapheme-splitter "^1.0.4"
+ ignore "^5.2.0"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-sdsl "^4.1.4"
+ js-yaml "^4.1.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.1"
+ regexpp "^3.2.0"
+ strip-ansi "^6.0.1"
+ strip-json-comments "^3.1.0"
+ text-table "^0.2.0"
+
+espree@^9.3.1, espree@^9.4.0:
+ version "9.4.1"
+ resolved "https://registry.npmmirror.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
+ integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
+ dependencies:
+ acorn "^8.8.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.3.0"
+
+esquery@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+ integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+ integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-diff@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.npmmirror.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
+ integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
+
+fast-glob@^3.2.12:
+ version "3.2.12"
+ resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
+ integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
+
+fastq@^1.6.0:
+ version "1.15.0"
+ resolved "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
+ integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
+ dependencies:
+ reusify "^1.0.4"
+
+file-entry-cache@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+ integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+ dependencies:
+ flat-cache "^3.0.4"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
+flat-cache@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+ integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+ dependencies:
+ flatted "^3.1.0"
+ rimraf "^3.0.2"
+
+flatted@^3.1.0:
+ version "3.2.7"
+ resolved "https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
+ integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
+
+follow-redirects@^1.15.0:
+ version "1.15.2"
+ resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
+ integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+fraction.js@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+ integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-parent@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+ integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+ dependencies:
+ is-glob "^4.0.3"
+
+glob@^7.1.3:
+ version "7.2.3"
+ resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+global@^4.3.1, global@^4.4.0, global@~4.4.0:
+ version "4.4.0"
+ resolved "https://registry.npmmirror.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
+ integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
+ dependencies:
+ min-document "^2.19.0"
+ process "^0.11.10"
+
+globals@^13.19.0:
+ version "13.19.0"
+ resolved "https://registry.npmmirror.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
+ integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
+ dependencies:
+ type-fest "^0.20.2"
+
+grapheme-splitter@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmmirror.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
+ integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmmirror.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+he@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+ignore@^5.2.0:
+ version "5.2.4"
+ resolved "https://registry.npmmirror.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
+ integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
+
+immutable@^4.0.0:
+ version "4.2.2"
+ resolved "https://registry.npmmirror.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16"
+ integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==
+
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+individual@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmmirror.com/individual/-/individual-2.0.0.tgz#833b097dad23294e76117a98fb38e0d9ad61bb97"
+ integrity sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2:
+ version "2.0.4"
+ resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-core-module@^2.9.0:
+ version "2.11.0"
+ resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
+ integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
+ dependencies:
+ has "^1.0.3"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+
+is-function@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08"
+ integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+ version "4.0.3"
+ resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-path-inside@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+
+jquery@^3.7.1:
+ version "3.7.1"
+ resolved "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de"
+ integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==
+
+js-sdsl@^4.1.4:
+ version "4.2.0"
+ resolved "https://registry.npmmirror.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0"
+ integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==
+
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
+json5@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
+ integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
+ dependencies:
+ minimist "^1.2.0"
+
+keycode@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.npmmirror.com/keycode/-/keycode-2.2.1.tgz#09c23b2be0611d26117ea2501c2c391a01f39eff"
+ integrity sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==
+
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+lilconfig@^2.0.5, lilconfig@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
+ integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
+
+loader-utils@^1.0.0:
+ version "1.4.2"
+ resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
+ integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ dependencies:
+ p-locate "^5.0.0"
+
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+lodash.merge@^4.6.2:
+ version "4.6.2"
+ resolved "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+ integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+m3u8-parser@4.7.1:
+ version "4.7.1"
+ resolved "https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-4.7.1.tgz#d6df2c940bb19a01112a04ccc4ff44886a945305"
+ integrity sha512-pbrQwiMiq+MmI9bl7UjtPT3AK603PV9bogNlr83uC+X9IoxqL5E4k7kU7fMQ0dpRgxgeSMygqUa0IMLQNXLBNA==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@videojs/vhs-utils" "^3.0.5"
+ global "^4.4.0"
+
+merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.4, micromatch@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12:
+ version "2.1.35"
+ resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+min-document@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
+ dependencies:
+ dom-walk "^0.1.0"
+
+minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@^1.2.0:
+ version "1.2.8"
+ resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+minimist@^1.2.6:
+ version "1.2.7"
+ resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
+ integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
+
+mpd-parser@0.21.1:
+ version "0.21.1"
+ resolved "https://registry.npmmirror.com/mpd-parser/-/mpd-parser-0.21.1.tgz#4f4834074ed0a8e265d8b04a5d2d7b5045a4fa55"
+ integrity sha512-BxlSXWbKE1n7eyEPBnTEkrzhS3PdmkkKdM1pgKbPnPOH0WFZIc0sPOWi7m0Uo3Wd2a4Or8Qf4ZbS7+ASqQ49fw==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@videojs/vhs-utils" "^3.0.5"
+ "@xmldom/xmldom" "^0.7.2"
+ global "^4.4.0"
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+mux.js@6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmmirror.com/mux.js/-/mux.js-6.0.1.tgz#65ce0f7a961d56c006829d024d772902d28c7755"
+ integrity sha512-22CHb59rH8pWGcPGW5Og7JngJ9s+z4XuSlYvnxhLuc58cA1WqGDQPzuG8I+sPm1/p0CdgpzVTaKW408k5DNn8w==
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ global "^4.4.0"
+
+nanoid@^3.3.4:
+ version "3.3.4"
+ resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
+ integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
+
+nanoid@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/nanoid/-/nanoid-4.0.0.tgz#6e144dee117609232c3f415c34b0e550e64999a5"
+ integrity sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+
+node-releases@^2.0.6:
+ version "2.0.8"
+ resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
+ integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+
+normalize-wheel@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
+ integrity sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==
+
+nprogress@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
+ integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==
+
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ dependencies:
+ boolbase "^1.0.0"
+
+object-hash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+optionator@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+ integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.3"
+
+p-limit@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+pkcs7@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmmirror.com/pkcs7/-/pkcs7-1.0.4.tgz#6090b9e71160dabf69209d719cbafa538b00a1cb"
+ integrity sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+
+postcss-import@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
+ integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
+ dependencies:
+ postcss-value-parser "^4.0.0"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
+
+postcss-js@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00"
+ integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
+ dependencies:
+ camelcase-css "^2.0.1"
+
+postcss-load-config@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
+ integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
+ dependencies:
+ lilconfig "^2.0.5"
+ yaml "^1.10.2"
+
+postcss-nested@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735"
+ integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
+
+postcss-pxtorem@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmmirror.com/postcss-pxtorem/-/postcss-pxtorem-6.0.0.tgz#f228a4d05d8a73f0642eabae950e2b19836366d7"
+ integrity sha512-ZRXrD7MLLjLk2RNGV6UA4f5Y7gy+a/j1EqjAfp9NdcNYVjUMvg5HTYduTjSkKBkRkfqbg/iKrjMO70V4g1LZeg==
+
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.9:
+ version "6.0.11"
+ resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
+ integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+ integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+
+postcss@^8.0.9, postcss@^8.4.14, postcss@^8.4.20:
+ version "8.4.21"
+ resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
+ integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prettier-linter-helpers@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
+ integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
+ dependencies:
+ fast-diff "^1.1.2"
+
+prettier@^2.8.1:
+ version "2.8.2"
+ resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160"
+ integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.npmmirror.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
+punycode@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.npmmirror.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74"
+ integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+quick-lru@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmmirror.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+ integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
+
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+ dependencies:
+ pify "^2.3.0"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
+regenerator-runtime@^0.13.11:
+ version "0.13.11"
+ resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
+ integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+
+regexpp@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+ integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+resize-observer-polyfill@^1.5.0:
+ version "1.5.1"
+ resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"
+ integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve@^1.1.7, resolve@^1.22.1:
+ version "1.22.1"
+ resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
+ integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
+ dependencies:
+ is-core-module "^2.9.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+rollup@^3.7.0:
+ version "3.9.1"
+ resolved "https://registry.npmmirror.com/rollup/-/rollup-3.9.1.tgz#27501d3d026418765fe379d5620d25954ff2a011"
+ integrity sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
+rust-result@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/rust-result/-/rust-result-1.0.0.tgz#34c75b2e6dc39fe5875e5bdec85b5e0f91536f72"
+ integrity sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==
+ dependencies:
+ individual "^2.0.0"
+
+safe-json-parse@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/safe-json-parse/-/safe-json-parse-4.0.0.tgz#7c0f578cfccd12d33a71c0e05413e2eca171eaac"
+ integrity sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==
+ dependencies:
+ rust-result "^1.0.0"
+
+sass@^1.57.1:
+ version "1.57.1"
+ resolved "https://registry.npmmirror.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5"
+ integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==
+ dependencies:
+ chokidar ">=3.0.0 <4.0.0"
+ immutable "^4.0.0"
+ source-map-js ">=0.6.2 <2.0.0"
+
+schema-utils@^0.4.0:
+ version "0.4.7"
+ resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
+ integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-keywords "^3.1.0"
+
+semver@^7.3.5, semver@^7.3.6:
+ version "7.3.8"
+ resolved "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
+ integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
+ dependencies:
+ lru-cache "^6.0.0"
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+tailwindcss@^3.2.7:
+ version "3.2.7"
+ resolved "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07"
+ integrity sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==
+ dependencies:
+ arg "^5.0.2"
+ chokidar "^3.5.3"
+ color-name "^1.1.4"
+ detective "^5.2.1"
+ didyoumean "^1.2.2"
+ dlv "^1.1.3"
+ fast-glob "^3.2.12"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
+ lilconfig "^2.0.6"
+ micromatch "^4.0.5"
+ normalize-path "^3.0.0"
+ object-hash "^3.0.0"
+ picocolors "^1.0.0"
+ postcss "^8.0.9"
+ postcss-import "^14.1.0"
+ postcss-js "^4.0.0"
+ postcss-load-config "^3.1.4"
+ postcss-nested "6.0.0"
+ postcss-selector-parser "^6.0.11"
+ postcss-value-parser "^4.2.0"
+ quick-lru "^5.1.1"
+ resolve "^1.22.1"
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+
+throttle-debounce@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd"
+ integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+tslib@2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
+ integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
+
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
+type-fest@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+ integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+update-browserslist-db@^1.0.9:
+ version "1.0.10"
+ resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
+ integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+url-toolkit@^2.2.1:
+ version "2.2.5"
+ resolved "https://registry.npmmirror.com/url-toolkit/-/url-toolkit-2.2.5.tgz#58406b18e12c58803e14624df5e374f638b0f607"
+ integrity sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==
+
+util-deprecate@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+"video.js@^6 || ^7", video.js@^7.20.3:
+ version "7.20.3"
+ resolved "https://registry.npmmirror.com/video.js/-/video.js-7.20.3.tgz#5694741346dc683255993e5069daa15d4bacb646"
+ integrity sha512-JMspxaK74LdfWcv69XWhX4rILywz/eInOVPdKefpQiZJSMD5O8xXYueqACP2Q5yqKstycgmmEKlJzZ+kVmDciw==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ "@videojs/http-streaming" "2.14.3"
+ "@videojs/vhs-utils" "^3.0.4"
+ "@videojs/xhr" "2.6.0"
+ aes-decrypter "3.1.3"
+ global "^4.4.0"
+ keycode "^2.2.0"
+ m3u8-parser "4.7.1"
+ mpd-parser "0.21.1"
+ mux.js "6.0.1"
+ safe-json-parse "4.0.0"
+ videojs-font "3.2.0"
+ videojs-vtt.js "^0.15.4"
+
+videojs-font@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmmirror.com/videojs-font/-/videojs-font-3.2.0.tgz#212c9d3f4e4ec3fa7345167d64316add35e92232"
+ integrity sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA==
+
+videojs-vtt.js@^0.15.4:
+ version "0.15.4"
+ resolved "https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.15.4.tgz#5dc5aabcd82ba40c5595469bd855ea8230ca152c"
+ integrity sha512-r6IhM325fcLb1D6pgsMkTQT1PpFdUdYZa1iqk7wJEu+QlibBwATPfPc9Bg8Jiym0GE5yP1AG2rMLu+QMVWkYtA==
+ dependencies:
+ global "^4.3.1"
+
+vite@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.npmmirror.com/vite/-/vite-4.0.4.tgz#4612ce0b47bbb233a887a54a4ae0c6e240a0da31"
+ integrity sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==
+ dependencies:
+ esbuild "^0.16.3"
+ postcss "^8.4.20"
+ resolve "^1.22.1"
+ rollup "^3.7.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+vue-eslint-parser@^9.0.1:
+ version "9.1.0"
+ resolved "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz#0e121d1bb29bd10763c83e3cc583ee03434a9dd5"
+ integrity sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==
+ dependencies:
+ debug "^4.3.4"
+ eslint-scope "^7.1.1"
+ eslint-visitor-keys "^3.3.0"
+ espree "^9.3.1"
+ esquery "^1.4.0"
+ lodash "^4.17.21"
+ semver "^7.3.6"
+
+vue-router@^3.6.5:
+ version "3.6.5"
+ resolved "https://registry.npmmirror.com/vue-router/-/vue-router-3.6.5.tgz#95847d52b9a7e3f1361cb605c8e6441f202afad8"
+ integrity sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==
+
+vue-seamless-scroll@^1.1.23:
+ version "1.1.23"
+ resolved "https://registry.npmmirror.com/vue-seamless-scroll/-/vue-seamless-scroll-1.1.23.tgz#dde81b3c79aa499791b3c3bffd0fdb22ff3e59a7"
+ integrity sha512-HBjUub8WwsKJzbFCrwKPDrZn4e+SSbkKgwWtjKtfLwesiFGwSsVxP44/Z6d3kpXy94qIFOiflJH6l0/9pj7SGA==
+ dependencies:
+ comutils "^1.1.9"
+
+vue-template-compiler@^2.7.14:
+ version "2.7.14"
+ resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1"
+ integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
+ dependencies:
+ de-indent "^1.0.2"
+ he "^1.2.0"
+
+vue@^2.7.14:
+ version "2.7.14"
+ resolved "https://registry.npmmirror.com/vue/-/vue-2.7.14.tgz#3743dcd248fd3a34d421ae456b864a0246bafb17"
+ integrity sha512-b2qkFyOM0kwqWFuQmgd4o+uHGU7T+2z3T+WQp8UBjADfEv2n4FEMffzBmCKNP0IGzOEEfYjvtcC62xaSKeQDrQ==
+ dependencies:
+ "@vue/compiler-sfc" "2.7.14"
+ csstype "^3.1.0"
+
+vuex@^3.6.2:
+ version "3.6.2"
+ resolved "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71"
+ integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==
+
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+word-wrap@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+worker-loader@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmmirror.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac"
+ integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==
+ dependencies:
+ loader-utils "^1.0.0"
+ schema-utils "^0.4.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+xml-name-validator@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+ integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+xtend@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^1.10.2:
+ version "1.10.2"
+ resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zrender@5.4.1:
+ version "5.4.1"
+ resolved "https://registry.npmmirror.com/zrender/-/zrender-5.4.1.tgz#892f864b885c71e1dc25dcb3c7a4ba42678d3f11"
+ integrity sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==
+ dependencies:
+ tslib "2.3.0"
+
+zrender@^5.1.1:
+ version "5.6.0"
+ resolved "https://registry.npmmirror.com/zrender/-/zrender-5.6.0.tgz#01325b0bb38332dd5e87a8dbee7336cafc0f4a5b"
+ integrity sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==
+ dependencies:
+ tslib "2.3.0"
diff --git "a/\345\244\247\345\261\217.xmind" "b/\345\244\247\345\261\217.xmind"
new file mode 100644
index 0000000..8f61c6b
--- /dev/null
+++ "b/\345\244\247\345\261\217.xmind"
Binary files differ
--
Gitblit v1.9.3