Commit 6238ddc3 authored by xinglei's avatar xinglei

*)初始化项目

parent 9989fb14
module.exports = {
zip: 'amos-iot-graphmod.zip', // default
dirs: [
{fromDir: 'src/assets/**', toDir: 'released/src/assets/'},
{fromDir: 'a3dres/**', toDir: 'released/a3dres/'},
{fromDir: 'elements/**', toDir: 'released/elements/'}
],
// 仅拷贝dist目录内文件到released, false则连同dist一同拷贝
nonDist: true
};
root = true
# Unix-style newlines with a newline ending every file
[*]
# 缩进风格
# 可选的值为- tab, space
indent_style = space
# 缩进几个tab ,空格
indent_size = 2
end_of_line = lf
# 设置编码
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2
node_modules/
**/node_modules/**
module.exports = {
extends: 'eslint-config-ray',
globals: {
location: true
},
rules: {
'no-mixed-operators': 0
}
};
node_modules
.svn
*.rar
/lib
/dist
/released
/example
/cjs
/tests
.stylelintignore
/amos.config.js
report.*.json
/CSFAS_2.1.3.1_1225
*.zip
*.lerna_backup
dist
released
report.*.json
*.log
.history/
jcsV1.0.0/
/website/lib
website/umd_lib/
packages/*/umd_lib/
packages/*/lib/
const { getReactMf } = require('amos-build/lib/tools/pluginConfig');
const { devDependencies: deps } = require("./package.json");
module.exports = {
// dir 和 list 用于从 pkg 中拷贝 mf 包
dir: 'mf_lib',
list: [
{ pkg: 'amos-mf', mf: 'amosmf_dist' }
],
// 用于替换引入路径,修改为 mf 暴露的路径
replacer: {
rules: [
// 通用 mf
{ src: 'amos-amap', dest: 'amosmf/amos-amap' },
{ src: 'amos-gojs', dest: 'amosmf/amos-gojs' },
{ src: 'amos-3d', dest: 'amosmf/amos-3d' },
{ src: 'amos-3d/lib/designer', dest: 'amosmf/amos-3d-designer' }
]
},
remotes: {
amosmf: "amosmf@[window.__mf_prefix_url__]/amosmf_dist/remoteEntry.js",
// webstudio, 该 mf 必须保存在 foundation view 同级
amosasp: 'amosasp@[window.__mf_prefix_url__]/amosasp_dist/remoteEntry.js'
},
shared: {
...getReactMf(deps.react, deps['react-dom'])
}
};
_mock
.vscode
example
a3dres
dist
node_modules
released
mods
zip
src
server
tests
.amosrun.config.js
.editorconfig
.eslintignore
.eslintrc.js
.gitignore
.prettierignore
.prettierrc
.project
.stylelintignore
.stylelintrc.json
amos.config.js
*.bat
tpl.html
webpack.*.js
package-lock=false
save=false
registry=http://113.142.68.105:9696/
sass_binary_site=http://113.142.68.105:8888/node-sass
node_modules
lib
{
"printWidth": 160,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"parser": "babel",
"trailingComma": "none",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"arrowParens": "avoid",
"requirePragma": false,
"proseWrap": "preserve",
"overrides": [
{
"files": ["*.json", ".eslintrc", ".tslintrc", ".prettierrc", ".tern-project", ".travis.yml"],
"options": {
"parser": "json",
"tabWidth": 2
}
},
{
"files": "*.css",
"options": {
"parser": "css",
"tabWidth": 2
}
},
{
"files": "*.{sass,scss}",
"options": {
"parser": "scss",
"tabWidth": 2
}
},
{
"files": "*.less",
"options": {
"parser": "less",
"tabWidth": 2
}
},
{
"files": "*.ts",
"options": {
"parser": "typescript"
}
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>amos-iot-mod</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
<nature>com.aptana.projects.webnature</nature>
<nature>com.aptana.ruby.core.rubynature</nature>
</natures>
</projectDescription>
{
"extends": "stylelint-config-ray"
}
const { commonExternals } = require('amos-build/lib/tools/pluginConfig');
const umdConfig = commonExternals([
'react',
'react-dom',
'amos-react-router',
'prop-types',
'amos-antd',
'amos-framework',
'xgplayer',
'xgplayer-flv',
'xgplayer-hls',
'xgplayer-hls.js',
'xgplayer-flv.js',
'amos-designer',
// studio asp remote 需要
'base-r3d',
'amos-gojs'
]);
module.exports = {
// dir 和 list 用于从 pkg 中拷贝 mf 包
dir: 'website/umd_lib',
list: [
...umdConfig.list,
// codemirror、ace
{ pkg: 'amos-code-actuator', umd: 'dist' },
// tinymce quill
{ pkg: 'amos-richtext', umd: 'umd' },
// echarts all
{ pkg: 'amos-viz', umd: 'umd' }
],
externals: {
...umdConfig.externals,
'amos-code-actuator/lib/codemirror/umd': 'ActuatorCM',
// ace editor
'amos-code-actuator/lib/ace/umd': 'ActuatorACE',
'amos-viz/lib/echarts/umd': 'VizEcharts',
// rich text
'amos-richtext/lib/quill/umd': 'RichTextQuill',
'amos-richtext/lib/tinymce/umd': 'RichTextMCE'
},
scripts: {
// 注意,数组中,靠前的后加载
head: [...umdConfig.scripts.head],
body: [
...umdConfig.scripts.body,
'amos-code-actuator/codemirror.umd.js',
'amos-code-actuator/ace.umd.js',
'amos-viz/viz-echarts.umd.js',
'amos-richtext/tinymce.umd.js',
'amos-richtext/quill.umd.js'
]
},
// link 样式可以, 均放在 head
links: [...umdConfig.links]
};
# mod 说明
组态、混合设计器通用 mod 工程。
## 开发&测试
执行:
```bash
npm run build-mod
```
会在 `lib` 目录生成 `graphmod`,修改 `example/sketch.js` 中 mods 来源即可。
可以将该 `js` 文件拷贝至其它系统,直接使用。
该模式下,默认通过 `package.json` 中的 `version` 字段创建版本目录,如果版本号不变,则更新当前版本。
在开发模式下发布版本,每次只允许修改最后一个版本号,如 `1.0.0` 改为 `1.0.1`。同时将该版本推送至 `prod` 分支。
`prod` 分支中,仅允许的文件:
```conf
- lib
- package.json
- .gitignore
- readme.md
```
## 发布 example 内容
执行:
```bash
npm run build-exp
```
会在 `dist` 目录生成当前 example 测试使用的案例。该目录下,可以直接发布至 nginx 作为一个系统使用
## 发布
执行:
```bash
npm run pub
```
将会将编译好的 mod 发布至 npm 私服。
## 如何解决多团队开发各自业务组件冲突问题 `?`
- 方式一:各团队自行管理自己的发布版本,在 `studio` 平台中,引入不同的发布版本。studio 中所有的业务组件版本都要进行保存, `studio` 创建工程时可采用指定版本。
- 方式二:独立管理各团队的业务组件,每次发布的时候,发布各自业务组件,采用 `npm 私服` 管理各个依赖版本,`graphmod` 核心再引入各自版本。studio 中只引入 `graphmod` 核心。这样可以确保 `graphmod` 中,始终是完善的业务组件, 但无法解决不同业务组件版本共存问题。
- 方式三:采用 `git` 特定分支的方式,管理版本发布,在该分支上,存放所有完整的已发布业务组件。与方式二的效果相同,可以节省 `npm 私服` 管理成本。
### 方式三管理版本具体操作
- 步骤一:拆分集中式 `graphmod` 开发, 采用 [lerna](https://lerna.js.org/) 同仓库不同包管理源码。(lerna 非必须)
- 步骤二:拆分完毕之后的源码,通过控制 `子业务组件` 的版本来确保是否更新依赖
- 步骤三:在核心 `graphmod` 中进行统一业务组件打包 `npm run build-mod`,将打包后的代码推送到指定分支即可。
- 步骤四:在 `studio` 中引入该分支,同时在 `.amosrun.config.js` 中配置 `dirs`,执行拷贝指定版本。
> 附录:使用 `git` 源作为 `npm` 包仓库源。
`amos-iot-graphmod` master 分支作为示例:
```json
{
"dependencies": {
"amos-iot-graphmod": "git+http://amospkg:public123@172.16.10.76/iotgraph/amos-iot-graphmod#master"
}
}
```
`studio``.amosrun.config.js` 添加代码示例:
```js
module.exports = {
...
dirs: [
...
{ fromDir: 'amos-iot-graphmod/released/**', toDir: 'released/external/'},
...
],
...
};
```
其中 `amospkg/public123` 是公共用户,该用户仅作为下载 `git` 依赖使用
## umd 启动 split code 加载
> 或者设置 `window.__mod_baseURL__ = '/external/studio/'` 路径,直接在 html 页面引入 `mod-scripts.js`
> 或者采用 installWorker 实现
```js
// 需要引入 sdkroot 的项目,直接在 entry 中进行子线程加载 mod 包
import { PubSub } from 'ray-eventpool';
import installWorker from 'amos-designer/lib/worker/installWorker';
// 测试加载 worker
installWorker({
baseUrl: '/mod/',
scriptUrl: 'scripts.json',
useBody: true,
// 所有的脚本加载完毕
onDone(){
const globalmod = window.globalmod || {};
}
});
```
> 第三方引入
```js
import loadModScripts from 'amos-designer/lib/utils/loadModScripts';
// 测试加载 worker
loadModScripts({
baseUrl: '/mod/',
scriptUrl: 'scripts.json',
useBody: true,
// 所有的脚本加载完毕
onDone(){
const globalmod = window.globalmod || {};
}
});
```
## 新版本 lerna 管理启动方式
先全局安装 `lerna`, 使用 `lerna v3.22.1`
```bash
npm i -g lerna@3.22.1
```
启动本地项目:
```bash
# 安装依赖
npm run i:root
# 软链接
npm run link
# 启动子模块,以知识库为例
npm run start:gk
```
多个命令合并:
> 无需单个执行删除、安装依赖、软链接。只需要执行 reset 即可。
> windows 环境下直接双击 `reset.bat` 即可
```bash
npm run reset
```
## website 目录说明
该目录仅作为各自项目发布目录,该目录下,可以将 packages 中的不同模块进行组合集成,该模块发布,默认启用 mf。
每一个项目,创建一个项目 `entry.js` 文件,只需要在 `webpack.config.sdk.js` 中,修改entry 中的路径即可。
```bash
# 直接在 website 中创建 sdk
npm run build:sdk
# 启用 mf 创建 sdk 包
npm run build:sdkmf
```
## 其它
umd 或 mf 公共模块,可以在启动的时候,直接使用平台的 umd 和 mf 模块
@echo off
title AmosBuild Guide
@echo author ilex.h
@echo Starting front end initialization Wizard...
npm run build:sdkmf
@echo off
title Amos build mod mf Guide
@echo author ilex.h
@echo Starting build mf Wizard...
@echo First Make sure you have execute `reset task`...
@echo.
npm run build:sdkmf
pause
{
"packages": [
"packages/*",
"singlepages/*",
"website"
],
"npmClient": "npm",
"version": "independent",
"command": {
"create": {
"license": "MIT",
"author": "ilex.h"
},
"bootstrap": {
"yarnClientArgs": ["--no-yarn-lock", "--no-package-lock"],
"forceLocal": true
},
"publish": {
"ignoreChanges": ["*.md", "*.test.js", "*.test.tsx", "**/example/**", "**/tests/**"],
"message": "pkg publish: %s"
}
}
}
{
"name": "amos-iot-graphmod",
"version": "1.0.0",
"author": "ilex.h",
"main": "./lib/index.js",
"private": true,
"scripts": {
"clean": "lerna clean --yes",
"clean:nm": "lerna exec -- rimraf node_modules",
"cleanAll": "rimraf node_modules && npm run clean",
"format": "prettier --write '**/*.{js,jsx,scss,sass,css,less,json}'",
"i:root": "lerna bootstrap --hoist",
"link": "lerna link",
"bootstrap": "lerna bootstrap",
"lerna": "lerna",
"==mf==": "==mf==",
"mf:copy": "amos-plugin --mf --mf-r",
"umd:copy": "amos-plugin --umd --umd-r",
"====": "==split==",
"reset": "npm run cleanAll && npm run i:root && npm run link",
"start:gtool": "lerna exec --scope @gm/graphmod-tool -- npm start",
"build:gtool": "lerna exec --scope @gm/graphmod-tool -- npm run build"
},
"devDependencies": {
"amos-3d": "^2.1.17",
"amos-amap": "^1.0.9",
"amos-build": "^5.x",
"amos-code-actuator": "^2.x",
"amos-core": "^2.0.27",
"amos-designer": "^1.x",
"amos-ebsocket": "^1.x",
"amos-framework": "^1.x",
"amos-gojs": "^2.x",
"amos-minder": "^1.0.7",
"amos-mqtt": "^1.1.1",
"amos-plugin-cli": "^1.1.0",
"amos-processor": "^2.x",
"amos-richtext": "^1.0.4",
"amos-viz": "^1.3.2",
"amos-websocket": "^1.1.0",
"lerna": "^3.22.1",
"ray-code-split": "^1.0.1",
"ray-hotkeys": "^1.0.0",
"ray-mediaquery": "^1.0.0",
"ray-page-container": "^1.2.0",
"react": "~16.3.2",
"react-dom": "~16.3.3",
"react-virtualized": "^9.19.1"
},
"dependencies": {
"amos-tool": "^1.x",
"canvg": "^2.0.0",
"dt2react": "^2.x",
"flatpickr": "^4.0.6",
"html2canvas": "^1.0.0-rc.3",
"kity": "^2.0.4",
"kityminder-core": "^1.4.50",
"raphael": "^2.3.0",
"xgplayer": "^2.12.2",
"xgplayer-flv": "^2.3.36",
"xgplayer-flv.js": "^2.3.0",
"xgplayer-hls": "^2.3.36",
"xgplayer-hls.js": "^2.5.2"
},
"publishConfig": {
"registry": "http://113.142.68.105:9696"
}
}
# graphmod-assets
所有业务组通用的 assets 目录。
公共资源文件存放在改模快下。公共样式存放在该模块下。
## 说明
各子业务模块 pkg 中,使用资源图标时,优先使用公共库,如果公共库中没有,则自行添加至自己所在库的 assets 目录下,同时在其自身 `assets/index.js` 中,添加相应的资源模块。
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>_图标/Icon/新建</title>
<defs>
<path d="M9.1,-2.31599945e-14 L9.1,6.899 L16,6.9 L16,9.1 L9.1,9.099 L9.1,16 L6.9,16 L6.9,9.099 L0,9.1 L0,6.9 L6.899,6.899 L6.9,-2.30252833e-14 L9.1,-2.31599945e-14 Z" id="path-1"></path>
</defs>
<g id="列表页" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="New-列表页-normal" transform="translate(-106.000000, -100.000000)">
<g id="Button/large/01_normal" transform="translate(32.000000, 88.000000)">
<g id="新建-2" transform="translate(74.000000, 9.000000)">
<g id="编组" transform="translate(0.000000, 3.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="新建icon" fill="#FFFFFF" xlink:href="#path-1"></use>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<svg id="类型" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<defs>
<style>
.cls-1 {
fill: none;
}
.cls-2 {
fill: #0060ff;
}
</style>
</defs>
<rect id="图标框" class="cls-1" width="24" height="24"/>
<g id="组_3921" data-name="组 3921" transform="translate(5 5)">
<path id="路径_619" data-name="路径 619" class="cls-2" d="M118.222,170.667h9.555v2.222h-9.555Zm-4.444,0H116v2.222h-2.222Zm0,5.555H116v2.222h-2.222Zm0,5.555H116V184h-2.222Zm4.444,0h9.555V184h-9.555Zm0-5.555h9.555v2.222h-9.555Z" transform="translate(-113.778 -170.667)"/>
</g>
</svg>
<svg id="日间段" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<defs>
<style>
.cls-1 {
fill: none;
}
.cls-2 {
fill: #00aa06;
}
.cls-3 {
fill: #0060ff;
}
</style>
</defs>
<rect id="图标框" class="cls-1" width="24" height="24"/>
<g id="日间段-2" data-name="日间段" transform="translate(6 6)">
<path id="路径_466" data-name="路径 466" class="cls-2" d="M147.131,443.042v2.666h2.823v-2.666Z" transform="translate(-140.98 -436.376)"/>
<path id="路径_2010" data-name="路径 2010" class="cls-3" d="M146.7,435.02h-4.922v-1.333h-1.847v1.333h-.6a.814.814,0,0,0-.836.785v9.1a.82.82,0,0,0,.845.785h9.8a.819.819,0,0,0,.844-.785v-9.1a.814.814,0,0,0-.835-.785h-.6v-1.333H146.7v1.333Zm-6.769,9.38v-6.713h8.615V444.4Z" transform="translate(-138.5 -433.687)"/>
</g>
</svg>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.75984 15.1006C8.48691 15.1045 8.21589 15.0546 7.96227 14.9537C7.70864 14.8528 7.47737 14.7029 7.28167 14.5127C7.08597 14.3224 6.92966 14.0954 6.82168 13.8447C6.7137 13.5941 6.65616 13.3246 6.65234 13.0516V10.1266C6.65986 9.57676 6.88516 9.05231 7.27885 8.66833C7.67253 8.28435 8.20244 8.07219 8.75234 8.0784H14.7673C15.0403 8.07394 15.3114 8.12345 15.5652 8.22409C15.8189 8.32473 16.0503 8.47452 16.246 8.66485C16.4417 8.85517 16.5978 9.08229 16.7055 9.33315C16.8131 9.58402 16.8702 9.85368 16.8733 10.1266V13.0516C16.8648 13.6023 16.6384 14.1272 16.2436 14.5112C15.8489 14.8953 15.318 15.1072 14.7673 15.1006H8.75984ZM12.9598 10.4371V12.0646C12.9677 12.3032 13.0694 12.5291 13.2428 12.6931C13.4162 12.8571 13.6474 12.9461 13.8861 12.9406C14.0045 12.9372 14.121 12.9105 14.2291 12.862C14.3371 12.8134 14.4345 12.744 14.5157 12.6578C14.5969 12.5715 14.6602 12.4701 14.7021 12.3593C14.744 12.2485 14.7636 12.1305 14.7598 12.0121V10.4446C14.7603 10.3258 14.7373 10.2081 14.692 10.0982C14.6468 9.98834 14.5802 9.88851 14.4962 9.80449C14.4122 9.72047 14.3124 9.65392 14.2025 9.60868C14.0926 9.56344 13.9749 9.5404 13.8561 9.5409C13.6183 9.54189 13.3905 9.63694 13.2226 9.80529C13.0547 9.97364 12.9602 10.2016 12.9598 10.4394V10.4371ZM8.75384 10.4371V12.0121C8.75334 12.131 8.77638 12.2487 8.82162 12.3586C8.86686 12.4684 8.93341 12.5683 9.01743 12.6523C9.10145 12.7363 9.20127 12.8029 9.31115 12.8481C9.42102 12.8933 9.53876 12.9164 9.65758 12.9159C9.77609 12.9159 9.89343 12.8925 10.0029 12.847C10.1123 12.8016 10.2117 12.7349 10.2953 12.651C10.3789 12.567 10.4451 12.4673 10.4901 12.3577C10.5352 12.2481 10.5581 12.1306 10.5576 12.0121V10.4454C10.5576 10.3272 10.5343 10.2102 10.4891 10.101C10.4438 9.99179 10.3775 9.89257 10.294 9.809C10.2104 9.72543 10.1112 9.65913 10.002 9.6139C9.8928 9.56868 9.77577 9.5454 9.65758 9.5454C9.53939 9.5449 9.42226 9.56769 9.31288 9.61247C9.2035 9.65724 9.10401 9.72312 9.02009 9.80635C8.93617 9.88957 8.86946 9.98851 8.82378 10.0975C8.77809 10.2065 8.75433 10.3235 8.75384 10.4416V10.4371Z" fill="#333333"/>
<path d="M3.51529 20.4847C2.39705 19.3734 1.51053 18.0512 0.907107 16.5947C0.303688 15.1383 -0.00462126 13.5765 5.23488e-05 12C-0.00433209 10.4233 0.304179 8.8615 0.907714 7.40493C1.51125 5.94836 2.39781 4.62603 3.51604 3.51453C4.62753 2.39682 5.94968 1.51069 7.40596 0.907422C8.86224 0.304157 10.4237 -0.00425268 12 4.67502e-05C13.5765 -0.00436836 15.1383 0.303983 16.5948 0.907248C18.0513 1.51051 19.3738 2.39671 20.4855 3.51453C21.6031 4.6264 22.4892 5.94883 23.0924 7.40534C23.6957 8.86185 24.0041 10.4235 24 12C24.0041 13.5764 23.6954 15.1379 23.0919 16.5942C22.4884 18.0505 21.6019 19.3726 20.484 20.484C19.3728 21.6022 18.0507 22.4887 16.5944 23.0923C15.1381 23.6958 13.5764 24.0043 12 23.9999C10.4235 24.0046 8.86173 23.6963 7.40526 23.0929C5.94878 22.4895 4.62658 21.603 3.51529 20.4847ZM9.99301 18.8347H13.7662C14.0022 18.8354 14.2359 18.7893 14.454 18.6992C14.672 18.6091 14.8701 18.4767 15.0367 18.3097C15.2041 18.1441 15.3367 17.9467 15.4268 17.7292C15.517 17.5117 15.5628 17.2784 15.5617 17.043H8.19827C8.19985 17.5184 8.38947 17.9739 8.72573 18.31C9.06199 18.6462 9.51757 18.8356 9.99301 18.837V18.8347ZM6.42453 15.5872C7.09768 16.1422 7.94306 16.4456 8.81552 16.4452H14.952C15.8084 16.4571 16.6415 16.1666 17.3049 15.6249C17.9682 15.0832 18.4194 14.3249 18.579 13.4835C18.6516 13.5141 18.7296 13.5299 18.8085 13.53C18.9709 13.527 19.1257 13.4605 19.2395 13.3447C19.3534 13.2288 19.4173 13.0729 19.4175 12.9105V10.5495C19.4183 10.4916 19.4112 10.4338 19.3965 10.3778C19.3582 10.2512 19.2805 10.1402 19.1747 10.0609C19.069 9.98161 18.9407 9.93811 18.8085 9.93676C18.7502 9.93708 18.6922 9.94515 18.636 9.96076V9.87826C18.6208 8.91554 18.2246 7.9981 17.5342 7.32697C16.8438 6.65584 15.9155 6.28574 14.9527 6.29777H8.81777C7.84434 6.29277 6.90778 6.66977 6.20928 7.34777C5.86863 7.67578 5.59766 8.06916 5.4126 8.50435C5.22755 8.93954 5.1322 9.4076 5.13228 9.88051C4.97061 9.8813 4.81579 9.94587 4.70147 10.0602C4.58715 10.1745 4.52257 10.3293 4.52178 10.491V12.9C4.53591 13.0525 4.60619 13.1944 4.719 13.2981C4.8318 13.4017 4.97909 13.4598 5.13228 13.461H5.18553C5.33196 14.2952 5.77099 15.0499 6.42378 15.5895L6.42453 15.5872Z" fill="#3D93FD"/>
</svg>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 23.5C5.64872 23.5 0.5 18.3513 0.5 12C0.5 5.64872 5.64872 0.5 12 0.5C18.3513 0.5 23.5 5.64872 23.5 12C23.5 18.3513 18.3513 23.5 12 23.5Z" fill="white" stroke="#007FFF"/>
<path d="M8.72883 8.34341C8.83172 6.69786 10.1688 5.38114 11.8144 5.27849C12.2618 5.25368 12.7096 5.32042 13.1303 5.47462C13.551 5.62882 13.9359 5.86723 14.2613 6.17528C14.5867 6.48332 14.8459 6.85452 15.0229 7.26617C15.1999 7.67781 15.2911 8.12125 15.2909 8.56935C15.2909 10.3797 13.8098 11.8607 11.9995 11.8607C10.107 11.8607 8.60532 10.2561 8.72883 8.34341ZM18.5822 17.8672C18.5825 17.9403 18.5683 18.0126 18.5405 18.0802C18.5127 18.1477 18.4718 18.2091 18.4202 18.2607C18.3685 18.3123 18.3072 18.3533 18.2397 18.3811C18.1721 18.4089 18.0998 18.423 18.0267 18.4227H5.99297C5.91994 18.423 5.84757 18.4089 5.78004 18.3811C5.71251 18.3533 5.65115 18.3123 5.59951 18.2607C5.54786 18.2091 5.50696 18.1477 5.47916 18.0802C5.45135 18.0126 5.43719 17.9403 5.4375 17.8672V16.2217C5.4375 14.042 9.81915 12.9304 12 12.9304C14.1809 12.9304 18.5625 14.0207 18.5625 16.2217L18.5822 17.8672Z" fill="#007FFF"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<defs>
<style>
.cls-1 {
fill: #fff;
stroke: #eaeaea;
}
.cls-2 {
fill: #fa0;
}
.cls-3 {
stroke: none;
}
.cls-4 {
fill: none;
}
</style>
</defs>
<g id="组_5408" data-name="组 5408" transform="translate(-408 -112)">
<g id="矩形_1989" data-name="矩形 1989" class="cls-1" transform="translate(408 112)">
<rect class="cls-3" width="16" height="16"/>
<rect class="cls-4" x="0.5" y="0.5" width="15" height="15"/>
</g>
<rect id="矩形_1990" data-name="矩形 1990" class="cls-2" width="10" height="2" transform="translate(411 115)"/>
<rect id="矩形_1991" data-name="矩形 1991" class="cls-2" width="10" height="2" transform="translate(411 119)"/>
<rect id="矩形_1992" data-name="矩形 1992" class="cls-2" width="10" height="2" transform="translate(411 123)"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<defs>
<style>
.cls-1 {
fill: none;
}
.cls-2 {
fill: #345fa6;
}
</style>
</defs>
<g id="复制" transform="translate(-18 -15)">
<rect id="图标框" class="cls-1" width="16" height="16" transform="translate(18 15)"/>
<path id="路径_1024" data-name="路径 1024" class="cls-2" d="M47.667,26.684V25.1a.292.292,0,0,0-.273-.31H45.421v-.448c0-.345-.243-.448-.546-.448H43.752c-.3,0-.546.1-.546.448v.448H41.233a.292.292,0,0,0-.273.31v7.545a.292.292,0,0,0,.273.31h2.519v.689h3.915l1.669-1.895v-5.1H47.667v.034Zm-3.7-2.343h.577v.413h-.577v-.413Zm-1.882,1.068h4.491v.62H42.083v-.62Zm5.584,7.338v-1h.88Zm1.123-1.619H47.12v1.895H44.329V27.3H48.82v3.824Z" transform="translate(-18.961 -5.893)"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="104" height="80" viewBox="0 0 104 80">
<defs>
<style>
.cls-1, .cls-3 {
fill: #fff;
}
.cls-1 {
stroke: #eaeaea;
}
.cls-2 {
fill: #eaeaea;
stroke: rgba(0,0,0,0);
stroke-miterlimit: 10;
}
.cls-4 {
stroke: none;
}
.cls-5 {
fill: none;
}
</style>
</defs>
<g id="组_5449" data-name="组 5449" transform="translate(-1209 -288)">
<g id="组_5403" data-name="组 5403" transform="translate(1049 184)">
<g id="矩形_1980" data-name="矩形 1980" class="cls-1" transform="translate(160 104)">
<rect class="cls-4" width="104" height="80" rx="3"/>
<rect class="cls-5" x="0.5" y="0.5" width="103" height="79" rx="2.5"/>
</g>
</g>
<g id="组_5407" data-name="组 5407" transform="translate(691.998 -97)">
<g id="组_5406" data-name="组 5406" transform="translate(547.998 403.999)">
<path id="联合_283" data-name="联合 283" class="cls-2" d="M21.6,42V21.6H42V34.763A7.256,7.256,0,0,1,34.766,42ZM7.237,42A7.256,7.256,0,0,1,0,34.763V21.6H20.4V42ZM21.6,20.4V0H34.766A7.256,7.256,0,0,1,42,7.234V20.4ZM0,20.4V7.234A7.256,7.256,0,0,1,7.237,0H20.4V20.4Z" transform="translate(0.002)"/>
<g id="组_5404" data-name="组 5404" transform="translate(3.633 3.807)">
<path id="路径_3407" data-name="路径 3407" class="cls-3" d="M187.3,120.511a2.118,2.118,0,1,1,2.117-2.118,2.117,2.117,0,0,1-2.117,2.118Zm0-.828h0a.247.247,0,0,0,0-.495.246.246,0,0,0-.247.246.248.248,0,0,0,.246.249Zm.562-.376a.246.246,0,0,0,.175.073.247.247,0,1,0-.175-.073Zm-1.472,0a.247.247,0,1,0,0-.35.248.248,0,0,0,0,.35Zm1.954-.658h0a.246.246,0,0,0,.246-.246v0a.246.246,0,1,0-.493,0v.006a.246.246,0,0,0,.245.247Zm-2.081-.006h0a.247.247,0,1,0-.247-.247.247.247,0,0,0,.247.247Zm1.6-.807a.247.247,0,0,0,.35,0,.247.247,0,1,0-.35,0Zm-1.472,0a.247.247,0,1,0,0-.35.247.247,0,0,0,0,.35Zm.911-.232h0a.247.247,0,1,0-.247-.246.248.248,0,0,0,.247.246Zm0,0" transform="translate(-180.762 -109.543)"/>
<path id="路径_3408" data-name="路径 3408" class="cls-3" d="M191.664,121.733l-.97-.445-.014.012a4.3,4.3,0,0,1-2.177.9h0a4.447,4.447,0,0,1-.985,0h0a4.3,4.3,0,0,1-2.177-.9l-.014-.012-.97.445.32.7a.355.355,0,0,1-.174.47l-.891.409a.354.354,0,0,1-.469-.175l-1.64-3.58a.354.354,0,0,1,.175-.469l.891-.408a.353.353,0,0,1,.469.174l.249.544.579-.267a4.361,4.361,0,0,1-.167-.9,1.392,1.392,0,0,1-.991-1.153,11.667,11.667,0,0,1-.094-2.076,1.894,1.894,0,0,1,1.082-1.63,4.754,4.754,0,0,1,8.631,0,1.9,1.9,0,0,1,1.082,1.63,11.568,11.568,0,0,1-.1,2.076,1.39,1.39,0,0,1-.991,1.153,4.335,4.335,0,0,1-.165.9l.579.267.249-.544a.353.353,0,0,1,.469-.174l.892.408a.354.354,0,0,1,.173.469l-1.638,3.58a.355.355,0,0,1-.469.175l-.891-.409a.355.355,0,0,1-.174-.47Zm-7.56-4.262a.573.573,0,0,0,.346-.117,28.015,28.015,0,0,0,2.352-1.91.721.721,0,0,0,.2-.739.7.7,0,0,0-.565-.5,12.193,12.193,0,0,0-1.923-.186H184.5a1.071,1.071,0,0,0-1.071,1.027,10.78,10.78,0,0,0,.088,1.929.581.581,0,0,0,.582.5Zm8.392-.5a10.787,10.787,0,0,0,.088-1.929,1.072,1.072,0,0,0-1.071-1.027H191.5a12.034,12.034,0,0,0-1.922.184.7.7,0,0,0-.565.5.719.719,0,0,0,.2.739c.408.377.895.789,1.454,1.227q.423.332.9.683a.569.569,0,0,0,.345.117.581.581,0,0,0,.583-.5Zm-4.487,4.86a2.365,2.365,0,1,0-2.363-2.365,2.366,2.366,0,0,0,2.363,2.365Zm0,0" transform="translate(-181.468 -110.617)"/>
</g>
<path id="路径_3409" data-name="路径 3409" class="cls-3" d="M209.447,118.639l2.436-3.661a.834.834,0,0,0-1.389-.924l-1.519,2.284-.071-.048,2.193-3.3a.835.835,0,0,0-1.39-.924l-2.193,3.3-.073-.048,2.489-3.741a.835.835,0,1,0-1.39-.924l-2.488,3.741-.073-.048,2.032-3.054a.835.835,0,1,0-1.39-.924l-2.948,4.431-.243-1.18a.834.834,0,1,0-1.636.33l.57,2.8-.6.907,0,0-1.681,2.528a.413.413,0,0,0-.073.251.246.246,0,0,0,.1.193l5.321,3.54a.32.32,0,0,0,.421-.143l1.682-2.528.136-.2.469-.7-5.772-3.84.358-.538,5.772,3.84.589-.886-5.771-3.84.347-.524Z" transform="translate(-174.313 -106.928)"/>
<g id="组_5405" data-name="组 5405" transform="translate(3.782 24.395)">
<path id="路径_3410" data-name="路径 3410" class="cls-3" d="M181.65,137.046c-.032.93-.049,1.866-.057,2.8h2.237c.024-.933.033-1.886.069-2.8Z" transform="translate(-181.593 -126.188)"/>
<path id="路径_3411" data-name="路径 3411" class="cls-3" d="M190.4,137.046c.036.917.045,1.87.069,2.8H192.7c-.008-.938-.025-1.873-.057-2.8Z" transform="translate(-179.921 -126.188)"/>
<rect id="矩形_1987" data-name="矩形 1987" class="cls-3" width="2.236" height="0.392" transform="translate(0.07 10.153)"/>
<rect id="矩形_1988" data-name="矩形 1988" class="cls-3" width="2.236" height="0.392" transform="translate(10.477 10.153)"/>
<path id="路径_3412" data-name="路径 3412" class="cls-3" d="M193.649,131.716a2.6,2.6,0,0,0-1.575-1.969,14.286,14.286,0,0,0-1.923-.633v-.875a8,8,0,0,0-4.474,0v.9a14.33,14.33,0,0,0-1.822.608,2.6,2.6,0,0,0-1.567,1.967,51.24,51.24,0,0,0-.613,6.062h2.259a12.62,12.62,0,0,1,.412-2.641l.226.106-.077,4.194-.017.524h0l-.051,1.607h3.214v-7.075h-3.1v-.588h3.1v-.911h-3.1v-.559h3.1v-3.763a4.351,4.351,0,0,1-1.346-.132,5.09,5.09,0,0,1,2.983-.161,1.939,1.939,0,0,1-1.059.374v3.682h3.086v.559H188.22v.911h3.086v.588H188.22v7.075h3.29l-.052-1.605h0l-.017-.524-.076-4.2.226-.106a12.7,12.7,0,0,1,.412,2.641h2.259A51.291,51.291,0,0,0,193.649,131.716Z" transform="translate(-181.577 -127.92)"/>
</g>
<path id="路径_3413" data-name="路径 3413" class="cls-3" d="M211.71,128.765h-.232v-.02H206.63v.023h-.092a.584.584,0,0,0-.583.584v4.039a3.688,3.688,0,0,1-3.431,2.317c-3.154.164-3.446,2.753-3.395,4.686a.582.582,0,0,0,.582.566h12a.584.584,0,0,0,.583-.584v-11.03A.578.578,0,0,0,211.71,128.765Zm-8.269,7.988.01,0v0Zm7.689,3.044H200.295c0-.214.02-.409.039-.591h10.8Z" transform="translate(-174.483 -103.369)"/>
</g>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="272" height="146.467" viewBox="0 0 272 146.467">
<defs>
<style>
.cls-1 {
fill: url(#linear-gradient);
}
.cls-2 {
fill: url(#linear-gradient-2);
}
.cls-3 {
fill: url(#linear-gradient-3);
}
.cls-4 {
fill: url(#linear-gradient-4);
}
.cls-5 {
fill: url(#linear-gradient-5);
}
.cls-6 {
fill: url(#linear-gradient-6);
}
.cls-7 {
fill: url(#linear-gradient-7);
}
.cls-8 {
fill: url(#linear-gradient-8);
}
.cls-12, .cls-9 {
fill: #fff;
}
.cls-9 {
opacity: 0.6;
}
.cls-10 {
fill: #ccc;
opacity: 0.44;
}
.cls-11 {
fill: #d0d0d0;
}
.cls-13 {
fill: url(#linear-gradient-9);
}
.cls-14 {
fill: none;
stroke: #707070;
stroke-width: 7px;
}
.cls-15 {
opacity: 0.4;
fill: url(#linear-gradient-10);
}
.cls-16 {
fill: url(#linear-gradient-11);
}
.cls-17 {
fill: url(#linear-gradient-12);
}
</style>
<linearGradient id="linear-gradient" x1="-0.47" y1="-1.86" x2="0.689" y2="1" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#d2d2d2"/>
<stop offset="1" stop-color="#d2d2d2" stop-opacity="0"/>
</linearGradient>
<linearGradient id="linear-gradient-2" x1="1.19" y1="-1.109" x2="0.545" y2="0.556" xlink:href="#linear-gradient"/>
<linearGradient id="linear-gradient-3" x1="0.5" y1="-2.212" x2="0.5" xlink:href="#linear-gradient"/>
<linearGradient id="linear-gradient-4" x1="1.001" y1="-0.978" x2="0.388" y2="1.047" xlink:href="#linear-gradient"/>
<linearGradient id="linear-gradient-5" x1="0.5" y1="-2.301" x2="0.5" xlink:href="#linear-gradient"/>
<linearGradient id="linear-gradient-6" x1="0.5" y1="-1.692" x2="0.5" xlink:href="#linear-gradient"/>
<linearGradient id="linear-gradient-7" x1="0.348" y1="0.45" x2="0.644" y2="0.554" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#ebebeb" stop-opacity="0"/>
<stop offset="1" stop-color="#a0a0a0"/>
</linearGradient>
<linearGradient id="linear-gradient-8" x1="0.088" y1="-0.235" x2="0.867" y2="1.155" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#f8f8f8"/>
<stop offset="1" stop-color="#d2d2d2"/>
</linearGradient>
<linearGradient id="linear-gradient-9" y1="0.5" x2="1" y2="0.5" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff"/>
</linearGradient>
<linearGradient id="linear-gradient-10" y1="0.5" x2="1" y2="0.5" gradientUnits="objectBoundingBox">
<stop offset="0" stop-color="#dff6f4"/>
<stop offset="1" stop-color="#1bd1d2"/>
</linearGradient>
<linearGradient id="linear-gradient-11" x1="0.512" y1="-0.409" x2="0.497" y2="0.688" xlink:href="#linear-gradient-10"/>
<linearGradient id="linear-gradient-12" x1="0.489" y1="-1.356" x2="0.501" y2="0.583" xlink:href="#linear-gradient-10"/>
</defs>
<g id="暂无数据" transform="translate(0 -0.001)">
<g id="空状态图标备份" transform="translate(0 0.001)">
<g id="没有数据_1" transform="translate(0 0)">
<path id="路径" class="cls-1" d="M69.409,142.942c-5.809-2.629-12.108-9.68-10.323-16.314a2.157,2.157,0,0,1,2.338.907s10.078,15.742,7.25,1.26c-1.332-6.807-3.625-13.386-3.806-20.419-.3-12.779,11.428-16.322,14.8-2.2.444,1.867,2.148,17.047,6.027,15.308a2.72,2.72,0,0,0,1.16-1.178c1.967-3.226,2.556-7.967,6.163-9.063,3.163-1,6.28,1.749,7.984,4.586,3.453,5.764,8.075,20.093,1.006,24.951S77.1,146.4,69.472,143.005Z" transform="translate(-15.629 -25.812)"/>
<path id="路径-2" data-name="路径" class="cls-2" d="M272.6,168.231c-2.555-5.846-2.492-15.3,3.308-19.032a2.148,2.148,0,0,1,1.1,2.275s-3.091,18.443,4.532,5.8c3.625-5.954,6.344-12.362,10.876-17.7,8.329-9.734,19.431-4.45,12.461,8.284-.906,1.686-9.842,14.084-5.8,15.407a2.783,2.783,0,0,0,1.65-.1c3.625-1.07,7.25-4.187,10.676-2.61,3.009,1.387,3.48,5.5,2.846,8.755-1.305,6.589-7.7,13.958-16.2,12.815-8.682-1.178-22.069-6.19-25.414-13.83Z" transform="translate(-72.055 -35.776)"/>
<path id="路径-3" data-name="路径" class="cls-3" d="M272,185.571c-34.177-23.446-82.474-38.065-136-38.065S34.177,162.125,0,185.571Z" transform="translate(0 -39.222)"/>
<path id="形状结合" class="cls-4" d="M284.377,103.062c-2.166,2.718-3.552,6.57-2.257,10.015.9,2.374,3.6,2.392,3.408,5.692a10.76,10.76,0,0,1-1.65,4.622,35.157,35.157,0,0,1-5.583,7.332,6.443,6.443,0,0,1,2.42,5.963,10.7,10.7,0,0,1-3.054,5.954,4.323,4.323,0,0,1-1.813,1.305,4.628,4.628,0,0,1-2.085,0,36.25,36.25,0,0,1-9.725-3.108c-1.921-.915-3.879-2.166-4.531-4.16-.748-2.288.44-3.016,1.738-3.733l.335-.185a4.383,4.383,0,0,0,1.724-1.429c.952-1.559.979-3.643,1.315-5.383.489-2.565-.236-7.242,2.972-8.248,1.241-.39,2.592-.3,3.833-.7,2.7-.858,3.814-3.4,4.9-5.961l.2-.466a15.261,15.261,0,0,1,2.222-4.041C280.1,104.947,283.472,104.168,284.377,103.062Zm-7.831,15.217s-9.761,11.383-9.444,21.906h3.154S271.4,127.5,276.547,118.279Z" transform="translate(-68.94 -27.405)"/>
<path id="路径-4" data-name="路径" class="cls-5" d="M96.895,19.385h0a7.151,7.151,0,0,0-13.912-2.429,5.963,5.963,0,1,0,.19,11.918H96.305a4.767,4.767,0,0,0,.589-9.489Z" transform="translate(-20.448 -3.227)"/>
<path id="路径-5" data-name="路径" class="cls-6" d="M169.137,8.964V8.918A8.927,8.927,0,0,0,151.8,5.937a7.455,7.455,0,1,0,.236,14.909h16.313A5.945,5.945,0,0,0,169.091,9Z" transform="translate(-38.412 -0.001)"/>
<path id="矩形" class="cls-7" d="M102,139h38.422l38.66,25.277-37.819-.754Z" transform="translate(-27.121 -36.96)"/>
<g id="编组-4" transform="translate(106.79 19.862)">
<rect id="矩形-2" data-name="矩形" class="cls-8" width="73.175" height="95.47" rx="16.26" transform="translate(0 12.229)"/>
<rect id="矩形-3" data-name="矩形" class="cls-9" width="64.411" height="84.595" rx="10.83" transform="translate(4.377 17.667)"/>
<path id="路径-6" data-name="路径" class="cls-10" d="M59.311,12.075H50.819A8.275,8.275,0,1,0,35.194,8.232a8.156,8.156,0,0,0,.906,3.816H27.6a1.7,1.7,0,0,0-1.686,1.695v5.547A1.686,1.686,0,0,0,27.6,20.975H59.275a1.7,1.7,0,0,0,1.695-1.686V13.77A1.7,1.7,0,0,0,59.311,12.075Z" transform="translate(-6.89)"/>
<path id="路径-7" data-name="路径" class="cls-11" d="M27.437,59.444H17.776a1.813,1.813,0,0,1,0-3.625h9.679a1.813,1.813,0,0,1,0,3.625Z" transform="translate(-4.244 -14.842)"/>
<path id="路径-8" data-name="路径" class="cls-12" d="M42.52,72.728H16.9a1.813,1.813,0,1,1,0-3.625H42.52a1.813,1.813,0,0,1,0,3.625Z" transform="translate(-4.011 -18.374)"/>
<path id="路径-9" data-name="路径" class="cls-12" d="M42.52,86.444H16.9a1.813,1.813,0,1,1,0-3.625H42.52a1.813,1.813,0,0,1,0,3.625Z" transform="translate(-4.011 -22.021)"/>
<circle id="椭圆形" class="cls-13" cx="4.803" cy="4.803" r="4.803" transform="translate(31.784 3.293)"/>
</g>
<g id="编组-3" transform="translate(141.646 81.766)">
<ellipse id="椭圆形-2" data-name="椭圆形" class="cls-14" cx="18.969" cy="19.313" rx="18.969" ry="19.313" transform="translate(0 0)"/>
<circle id="椭圆形-3" data-name="椭圆形" class="cls-15" cx="17.165" cy="17.165" r="17.165" transform="translate(1.804 2.148)"/>
<path id="路径-10" data-name="路径" class="cls-12" d="M11.065,23.57h0A3.462,3.462,0,0,1,7.6,20.122a14.037,14.037,0,0,1,3.731-9.332A12.346,12.346,0,0,1,20.3,7.42a3.479,3.479,0,0,1-.046,6.958c-3.167,0-4.271,1.415-4.85,2.5a8.039,8.039,0,0,0-.85,3.247A3.493,3.493,0,0,1,11.065,23.57Z" transform="translate(-2.022 -1.973)"/>
<path id="矩形-4" data-name="矩形" class="cls-16" d="M0,0H8.936V18.344H0Z" transform="matrix(0.684, -0.73, 0.73, 0.684, 33.428, 41.319)"/>
<path id="矩形-5" data-name="矩形" class="cls-17" d="M0,0H3.752V6.806H0Z" transform="matrix(0.684, -0.73, 0.73, 0.684, 31.45, 35.91)"/>
</g>
</g>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<defs>
<style>
.cls-1 {
fill: none;
}
.cls-2 {
fill: #0a5ad0;
}
</style>
</defs>
<g id="建筑" transform="translate(-20 -20)">
<rect id="图标框" class="cls-1" width="24" height="24" transform="translate(20 20)"/>
<path id="路径_489" data-name="路径 489" class="cls-2" d="M84.608,1323.4V1322h-7.5v1.4H74.858V1336h4.5v-1.4h3v1.4h4.5v-12.6Zm-4.5,9.1h-1.5v-1.4h1.5Zm0-2.8h-1.5v-1.4h1.5Zm0-2.8h-1.5v-1.4h1.5Zm3,5.6h-1.5v-1.4h1.5Zm0-2.8h-1.5v-1.4h1.5Zm0-2.8h-1.5v-1.4h1.5Z" transform="translate(-48.858 -1297)"/>
</g>
</svg>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment