Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
94960621
Commit
94960621
authored
Feb 10, 2022
by
walkhan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add deploy document
parent
e990a130
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
511 additions
and
33 deletions
+511
-33
_navbar.md
docs/zh-CN/_navbar.md
+9
-25
_sidebar.md
docs/zh-CN/_sidebar.md
+0
-3
user_management.md
...-CN/administrator-guide/system_setting/user_management.md
+0
-0
debug.md
docs/zh-CN/developer-guide/debug.md
+3
-5
build.md
docs/zh-CN/quick_start/build.md
+204
-0
deploy.md
docs/zh-CN/quick_start/deploy.md
+189
-0
download
docs/zh-CN/quick_start/download
+0
-0
download.md
docs/zh-CN/quick_start/download.md
+20
-0
dinky-0.4.0.md
docs/zh-CN/release_notes/dinky-0.4.0.md
+22
-0
dinky-0.5.0.md
docs/zh-CN/release_notes/dinky-0.5.0.md
+39
-0
dinky-0.5.1.md
docs/zh-CN/release_notes/dinky-0.5.1.md
+25
-0
No files found.
docs/zh-CN/_navbar.md
View file @
94960621
*
[
首页
](
/zh-CN/introduce.md
)
*
文档
*
[
快速开始
](
/guide/quickstart.md
)
*
[
发展计划
](
/guide/roadmap.md
)
*
[
编译部署
](
/guide/deploy.md
)
*
[
核心功能
](
/guide/functions.md
)
*
[
开发调试
](
/guide/debug.md
)
*
[
master
](
)
*
[
dev
](
/zh-CN/introduce.md
)
*
[
0.5.1
](
)
*
[
0.5.0
](
)
*
下载
*
[
扩展语法补全
](
/extend/completion.md
)
*
[
扩展自定义函数
](
/extend/udf.md
)
*
[
扩展连接器
](
/extend/connector.md
)
*
[
扩展数据源
](
/extend/datasource.md
)
*
[
扩展 Flink 版本
](
/extend/flinkversion.md
)
*
[
Flink-CDC 集成
](
/extend/flinkcdc.md
)
*
[
DolphinScheduler 集成
](
/extend/dolphinscheduler.md
)
*
[
DataSphereStudio 集成
](
/extend/dataspherestudio.md
)
*
[
Hive 集成
](
/extend/hive.md
)
*
[
Doris 集成
](
/extend/doris.md
)
*
[
Clickhouse 集成
](
/extend/clickhouse.md
)
*
[
Hudi 集成
](
/extend/hudi.md
)
*
[
Iceberg 集成
](
/extend/hudi.md
)
*
[
Flink CDC和Kafka进行多源合并和下游同步更新
](
/extend/Flink_CDC_kafka_Multi_source_merger.md
)
*
[
下载
](
/zh-CN/quick_start/download.md
)
*
开发者
*
[
Dlink Yarn 的三种提交实践
](
/share/yarnsubmit.md
)
*
[
Dlink AGGTABLE 表值聚合的实践
](
/share/aggtable.md
)
*
[
Dlink 核心概念及实现原理详解
](
/share/principle.md
)
*
[
开发调试
](
/zh-CN/developer-guide/debug.md
)
*
用户案例
*
[
OpenAPI
](
/api/openapi.md
)
*
语言
*
[
中文
](
/zh-CN/
)
...
...
docs/zh-CN/_sidebar.md
View file @
94960621
...
...
@@ -7,7 +7,6 @@
-
[
基本概念
](
/zh-CN/concept.md
)
-
[
功能
](
/zh-CN/feature.md
)
-
入门
-
[
下载
](
/zh-CN/quick_start/download.md
)
-
[
编译
](
/zh-CN/quick_start/build.md
)
-
[
部署
](
/zh-CN/quick_start/deploy.md
)
-
基本使用指南
...
...
@@ -54,8 +53,6 @@
-
[
FlinkSQL 编辑器自动补全函数
](
/zh-CN/extend/completion.md
)
-
开发者指南
-
常见问题
-
历史版本
-
[
近期计划
](
/zh-CN/others/plans.md
)
-
[
致谢
](
/zh-CN/others/thanks.md
)
-
[
交流与贡献
](
/zh-CN/others/comminicate.md
)
-
[
roadmap
](
/zh-CN/roadmap.md
)
...
...
docs/zh-CN/
quick_start/deploy
→
docs/zh-CN/
administrator-guide/system_setting/user_management.md
View file @
94960621
File moved
docs/zh-CN/developer-guide/debug.md
View file @
94960621
...
...
@@ -61,7 +61,7 @@ IDEA 里 Build → Build Project 。
mvn clean
install
-Dmaven
.test.skip
=
true
```
打包最终位于根目录 build 下,
`dlink-release-
0.5.0-SNAPSHOT
.tar.gz`
其大小约为 40 M。
打包最终位于根目录 build 下,
`dlink-release-
x.x.x
.tar.gz`
其大小约为 40 M。
### 问题
...
...
@@ -280,9 +280,7 @@ Dlink 的官网实现,大佬们可以修改或贡献 markdown。多多分享
注册集群配置 ==> 异步提交 ==> StudioService ==> JobManager ==> Executor ==> TaskId & JDBC ==> Gateway ==> YarnApplicationGateway==> YarnClient ==> dlink-app.jar ==> Executor ==> AppStreamExecutor ==> CustomTableEnvironmentImpl ==> LocalEnvironmentFlink Yarn Application Cluster
##
总结
##
说明
以为内容为大家带来了 Dlink 的基本功能 IDEA 部署调试步骤,并简单介绍了各模块的作用,也清晰的描述了各执行模式下 FlinkSQL 实现免 Jar 提交的代码思路。在了解以上内容后,相信大家已经可以动手改造 Dlink 了,欢迎大家及时加入 Dlink 社区成为核心贡献者,共建共赢。
后续文章将指引大家如何快速拓展 Dlink 的功能组件,敬请期待。
以为内容是 Dinky在IDEA 部署调试步骤,并简单介绍了各模块的作用,也清晰的描述了各执行模式下 FlinkSQL 实现免 Jar 提交的代码思路。在了解以上内容后,可以动手改造 Dinky。
docs/zh-CN/quick_start/build.md
0 → 100644
View file @
94960621
## 环境准备
|
**环境**
|
**版本**
| 备注 |
| -------- | --------- | --------------------------------- |
| npm | 7.19.0 | |
| node.js | 14.19.0 | |
| jdk | 1.8.0_201 | |
| maven | 3.6.3 | |
| lombok | 1.18.16 | 如果在idea编译,需要自行安装 插件 |
| mysql | 5.6+ | |
## NodeJS 安装部署
### Windows版本
[
下载地址
](
<
https://registry.npmmirror.com/-/binary/node/v14.19.0/node-v14.19.0-x64.msi
>
)
下载完成后,双击傻瓜式安装即可
由于Dinky编译NPM最低版本为7.19.0,因此需要把NPM版本升级到7.19.0。具体操作如下
```
npm install -g npm@7.19.0
```
### Linux 版本
[
下载地址
](
<
https://registry.npmmirror.com/-/binary/node/v14.19.0/node-v14.19.0.tar.gz
>
)
下载完成后,安装配置即可,操作如下:
```
tar xf node-v14.19.0.tar.gz -C /opt/module/
vim /etc/profile
export NODEJS_HOME=/opt/module/node-v14.19.0
export PATH=$NODEJS_HOME/bin:$PATH
#保存退出
source /etc/profile #刷新环境变量
```
由于Dinky编译NPM最低版本为7.19.0,因此需要把NPM版本升级到7.19.0。具体操作如下:
```
npm install -g npm@7.19.0
```
## MySQL部署
MySQL版本选择5.6+
### Windows版本
[
下载地址
](
<
https://dev.mysql.com/downloads/file/?id=510038
>
)
下载完成后,双击傻瓜式安装即可
### Linux 版本
[
下载地址
](
[http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm](http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
)
)
下载完成后,安装配置即可,操作如下:
```
#如果没有wget命令
yum install wget
#下载mysql 5.7
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
#安装yum repository
yum -y install mysql57-community-release-el7-11.noarch.rpm
#在线安装
yum -y install mysql-community-server
#修改配置文件
vi /etc/my.cnf
skip-grant-tables #末尾添加这句话,这时候登入mysql就不需要密码
#开启mysql服务
service mysqld start
#空密码登录mysql
mysql -u root -p
#设置root密码
flush privileges;
set password for root@localhost = password('123456');
#恢复mysql配置
service mysqld stop #停止mysql服务
vi /etc/my.cnf #修改配置文件
# skip-grant-tables # 注释掉这句话
service mysqld start # 启动mysql服务
#设置开机自启动
systemctl enable mysqld
-------------------------------修改密码策略-------------------------
vi /etc/my.cnf
在 [mysqld]下面添加
validate_password=off
collation_server = utf8mb4_general_ci
character_set_server = utf8mb4
#重启服务
service mysqld restart 或者 systemctl restart mysqld.service
#卸载自动更新
yum -y remove mysql57-community-release-el7-11.noarch
------------------------------------远程连接----------------------------
#输入mysql -uroot -p123456 进入到mysql命令行
#授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
#刷新权限
flush privileges;
---------------------------------修改默认编码-------------------------------------------
#root用户
vi /etc/my.cnf
#添加如下内容
[client]
default_character_set=utf8mb4
#重启mysql服务
service mysqld restart
#查看修改结果
mysql -u root -p
SHOW VARIABLES LIKE 'char%'; 字符编码
SHOW VARIABLES LIKE 'collation_%'; 排序规则
#显示为utf-8
#已存在的表编码不变
#改变的是新建的表
```
## Maven 安装部署
### Windows版本
[
下载地址
](
<
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
>
)
下载完成后后,解压到对应目录
```
1.将安装包解压到某目录,这里解压到C:\Program Files\apache-maven-3.6.3
3.设置系统变量MAVEN_HOME,值为C:\Program Files\apache-maven-3.6.3
4. 更新 PATH 变量,添加 Maven bin 文件夹到 PATH 的最后,%MAVEN_HOME%\bin
完成,以验证它,执行 mvn –v 在命令提示符
```
### Linux 版本
[
下载地址
](
<
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
>
)
下载完成后后,解压到对应目录
解压安装
```
tar xf apache-maven-3.6.3-bin.tar.gz -C /opt/module/
cd /opt/module/
mv apache-maven-3.6.3-bin maven-3.6.3
#添加环境变量
vim /etc/profile
export MAVEN_HOME=/opt/module/maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
#保存退出,刷新环境变量
source /etc/profile
```
以上环境准备就绪后,接下来就可以开始Dinky的编译。
## Dinky编译
### Windows编译
#### 直接编译
如果在window直接编译,首先将源码包解压到相应目录下,其次切换到Dinky根目录,编译命令如下:
```
mvn clean install -Dmaven.test.skip=true
```
切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包
#### IDEA编译
```
创建 远程克隆项目
maven ->> dlink->> 生命周期->> 跳过测试 ->> 双击install
打包完成后 安装包见项目根下 build 文件夹下
```
说明:如果要对dinky做二次开发,请参考
[
开发调试
](
/zh-CN/developer-guide/debug.md
)
### Linux编译
```
yum -y install git
git clone https://github.com/DataLinkDC/dlink.git
cd dlink
mvn clean install -Dmaven.test.skip=true
```
切换到Dinky根目录下得build文件夹下,即可出现编译后的安装包。
以上就是Dinky源码编译的详细步骤,Dinky如何安装部署,请查看下一章节
[
Dinky部署
](
/zh-CN/quick_start/deploy.md
)
docs/zh-CN/quick_start/deploy.md
0 → 100644
View file @
94960621
## 单机部署
### 解压到指定目录
Dlink 不依赖任何外部的 Hadoop 或者 Flink 环境,可以单独部署在 flink、 hadoop 和 K8S 集群之外,完全解耦,支持同时连接多个不同的集群实例进行运维。
```
tar -zxvf dlink-release-0.5.0-SNAPSHOT.tar.gz
mv dlink-release-0.5.0-SNAPSHOT dlink
cd dlink
```
说明:安装目录根据自身情况而定。
### 初始化数据库
Dlink采用mysql作为后端的存储库,mysql支持5.6+。这里假设你已经安装了mysql。首先需要创建Dlink的后端数据库,这里以配置文件中默认库创建。
```
#登录mysql
mysql -uroot -proot@123
#授权并创建数据库
mysql> grant all privileges on *.* to 'dlink'@'%' identified by 'dlink' with grant option;
mysql> grant all privileges on *.* to 'dlink'@'fdw1' identified by 'dlink' with grant option;
mysql> flush privileges;
#此处用dlink用户登录
mysql -h fdw1 -udlink -pdlink
mysql> create database dlink;
```
在dlink根目录sql文件夹下有2个sql文件,分别是dlink.sql和dlink_history.sql。如果第一次部署,可以直接将dlink.sql文件在dlink数据库下执行。(如果之前已经建立了 dlink 的数据库,那 dlink_history.sql 存放了各版本的升级 sql ,根据版本号按需执行即可)
```
#首先登录mysql
mysql -h fdw1 -udlink -pdlink
mysql> use dlink;
mysql> source /opt/dlink/sql/dlink.sql
```
### 配置文件
创建好数据库后,就可以修改dlink连接mysql的配置文件啦,根据个人情况修改。配置文件比较简单,这里就不多说了。
```
#切换目录
cd /opt/dlink/config/
vim application.yml
```
配置文件修改好后,下一步就是安装nginx。如果已安装nginx可以忽略。因为Dlink部署需要nginx,所以先要部署nginx,配置完成后,才能正常启动。
执行完成后,接下来,部署nginx服务。
### 部署nginx
在linux,首先要配置好相应的yum库,因为在安装过程中没有配置,这里可以大概讲述下步骤,可以选择连接网络或者本地yum源都可以,这里选择连接网络方式配置。
```
#下载yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除缓存
yum makecache
#接下来安装nginx
yum -y install epel-release
yum -y install nginx
sudo systemctl enable nginx
sudo service nginx start
sudo service nginx reload
nginx -v
#最后查看进程看是否正常启动
ps -ef|grep nginx
```
说明:Dinky-0.5.0以上版本部署nginx可选
### nginx中配置dlink
如果是yum源安装的nginx,配置文件在etc下,如果是源码包安装,请自行找到配置文件
```
#切换到nginx配置目录
cd /etc/nginx/
```
vim /etc/nginx/nginx.conf打开配置文件,修改server中的内容,其中server中的内容按照如下配置即可。
```
server {
listen 9999;
#listen [::]:80;
server_name bigdata3;
root /usr/share/nginx/html;
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ^~ /api {
proxy_pass http://192.168.0.0:8888;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
修改内容:
-
listen 监听端口;
-
存放html路径;
-
location / 这里可以指定为绝对路径
红色部分就是所修改的地方

配置完成后,保存退出。并重启nginx并重新加载生效
```
$systemctl restart nginx.service
$systemctl reload nginx.service
#查看nginx是否配置成功
nginx -t
$nginx -s reload
```
### 加载依赖
Dinky具备自己的 Flink 环境,该 Flink 环境的实现需要用户自己在Dinky 根目录下创建 plugins 文件夹并上传相关的 Flink 依赖,如 flink-dist, flink-table 等,具体请阅 Readme(后续的扩展依赖也放到该目录下)。当然也可在启动文件中指定 FLINK_HOME,但不建议这样做。
Dinky当前版本的yarn的perjob与application执行模式依赖Flink-shade-hadoop去启动,需要额外添加Flink-shade-hadoop 包。
```
#创建目录
cd /opt/dlink/
mkdir plugins
```
将Flink-shade-hadoop上传到到plugins文件目录下,对于使用hadoop2 或者 hadoop 3 的均可使用 flink-shade-hadoop-3 地址如下:
```
https://mvnrepository.com/artifact/org.apache.flink/flink-shaded-hadoop-3-uber?repo=cloudera-repos
```
如果是CDH及HDP使用开源flink-shade对Dlink没有任何影响,其他用到的依赖取决于CDH或者HDP与开源版本的兼容性,需要自行根据兼容性添加依赖即可正常使用 Dlink 的所有功能。
### 启动Dlink
```
#启动
$sh auto.sh start
#停止
$sh auto.sh stop
#重启
$sh auto.sh restart
#查看状态
$sh auto.sh status
```
看到如下界面说明Dlink部署成功

默认用户名/密码:admin/admin
如果访问失败,请检查防火墙是否关闭、Nginx的配置是否正确
## 高可用部署
敬请期待
docs/zh-CN/quick_start/download
deleted
100644 → 0
View file @
e990a130
docs/zh-CN/quick_start/download.md
0 → 100644
View file @
94960621
## Dinky 下载
### 发行说明
dinky 版本的
[
发行说明
](
/zh-CN/release_notes/dinky-0.5.1.md
)
### 当前稳定版本 0.5.1
| 发布版 | 链接 | |
| ---------- | ------------------------------------------------------------ | ---- |
| 二进制程序 |
[
dlink-release-0.5.1.tar.gz
](
https://github.com/DataLinkDC/dlink/releases/download/0.5.1/dlink-release-0.5.1.tar.gz
)
| |
| source |
[
Source code (zip)
](
https://github.com/DataLinkDC/dlink/archive/refs/tags/0.5.1.zip
)
| |
### 旧版本
| 发布版 | 二进制程序 | Source | 发行说明 |
| ------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -------- |
| 0.5.0 |
[
dlink-release-0.5.0.tar.gz
](
https://github.com/DataLinkDC/dlink/releases/download/0.5.0/dlink-release-0.5.0.tar.gz
)
|
[
Source code (zip)
](
https://github.com/DataLinkDC/dlink/archive/refs/tags/0.5.0.zip
)
|
[
发行说明
](
/zh-CN/release_notes/dinky-0.5.0.md
)
|
| 0.4.0 |
[
dlink-release-0.4.0.tar.gz
](
https://github.com/DataLinkDC/dlink/releases/download/0.4.0/dlink-release-0.4.0.tar.gz
)
|
[
Source code (zip)
](
https://github.com/DataLinkDC/dlink/archive/refs/tags/0.4.0.zip
)
|
[
发行说明
](
/zh-CN/release_notes/dinky-0.4.0.md
)
|
docs/zh-CN/release_notes/dinky-0.4.0.md
0 → 100644
View file @
94960621
## Dinky发行说明
Dinky 0.4.0是对FlinkSQL Studio的正式开源发布版本。
#### 新增功能
-
支持standalone,yarn-session,yarn-per-job,yarn-application 多种模式的 FlinkSQL 执行与作业运维;
-
支持yarn-application 的 User Jar 提交;
-
支持SavePoint 管理与恢复;
-
支持SELECT 和 SHOW 语句预览;
-
支持SQL片段、AGGTABLE、语句集等语法增强;
-
支持依据文档模块或SQL上下文的自动提示与补全;
-
支持sql-client 的所有语法;
-
支持FlinkSQL 语法及逻辑校验;
-
支持表级血缘分析;
-
支持StreamGraph 计划图预览;
-
支持共享会话模式及其 Catalog 管理;
-
支持数据源管理及元数据查询;
-
支持集群及配置管理;
-
支持文档管理;
-
支持Jar 管理;
-
支持用户管理;
-
支持系统配置;
\ No newline at end of file
docs/zh-CN/release_notes/dinky-0.5.0.md
0 → 100644
View file @
94960621
## Dinky发行说明
Dinky 0.5.0版本包括对K8S的支持以及数据库,catalog的实现。它还包括对0.4.0 中引入的一些重大更改的修复。
#### 新增功能
-
支持Kubernetes Session 和 Application 模式提交任务
-
新增UDF Java方言的Local模式的在线编写、调试、动态加载
-
新增FlinkSQL 执行环境方言及其应用功能
-
新增BI选项卡的折线图、条形图、饼图
-
新增元数据查看表和字段信息
-
新增ChangLog 和 Table 的查询及自动停止实现
-
新增Mysql,Oracle,PostGreSql,ClickHouse,Doris,Java 方言
-
新增OpenAPI 的执行sql、校验sql、获取计划图、获取StreamGraph、获取预览数据、执行Jar、停止、SavePoint接口
-
新增数据源的 Sql 作业语法校验和语句执行
-
新增快捷键保存、校验、美化等
-
新增引导页
-
新增JobPlanGraph 展示
-
新增SQLServer Jdbc Connector 的实现
-
新增Local 的运行模式选择与分类
-
新增SavePoint 的 restAPI 实现
-
新增编辑器选项卡右键关闭其他和关闭所有
-
新增FlinkSQL 及 SQL 导出
-
新增集群与数据源的 Studio 管理交互
-
新增Yarn 的 Kerboros 验证
-
建立官网文档
#### 修复
-
修改项目名为 Dinky 以及图标
-
优化所有模式的所有功能的执行逻辑
-
升级各版本 Flink 依赖至最新版本以解决核弹问题
-
修复编辑集群配置测试后保存会新建的bug
-
修复登录页报错弹框
-
修复Yarn Application 解析数组异常问题
-
修复自定义Jar配置为空会导致异常的bug
-
修复任务提交失败时注册集群报错的bug
-
修复set在perjob和application模式不生效的问题
-
修复perjob和application模式的任务名无法自定义的问题
-
修复set 语法在1.11和1.12的兼容问题
-
修复血缘分析图由于前端依赖无法正常加载的问题
docs/zh-CN/release_notes/dinky-0.5.1.md
0 → 100644
View file @
94960621
## Dinky发行说明
Dinky 0.5.1 是一个修复版本,其中包括针对前端问题(如优化SQL编辑器性能)的优化。它还包括对0.5.0 中引入的一些重大更改的修复。
#### 前端
-
修复SHOW和DESC 的查询预览失效;
-
修复作业非remote作业进行remote语法校验的问题;
-
优化菜单;
-
修复前端多处bug;
-
新增F2 全屏开发;
-
升级SpringBoot 至 2.6.3
-
修复前端 state 赋值 bug
-
修复异常预览内容溢出 bug
-
修复数据预览特殊条件下无法获取数据的 bug
-
优化SQL编辑器性能
-
修复全屏开发退出后 sql 不同步
-
优化作业配置查看及全屏开发按钮
-
新增K8S集群配置
#### 后端
-
增加dlink-client-hadoop 版本定制依赖
-
优化pom及升级log4j至最新
-
升级Flink 1.14.2 到 1.14.3
-
修复Flink 1.14 提交任务报错缺类 bug
-
优化日志依赖
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment