Update README
This commit is contained in:
10
README.md
10
README.md
@@ -100,7 +100,7 @@ Example integration: `update_robogauge` in [`go2_rl_gym - on_policy_runner.py`](
|
|||||||
|
|
||||||
> You can launch training with evaluation enabled via `python legged_gym/scripts/train.py --task=xxx --robogauge`. The trainer waits for the evaluation client to be available. Results are saved under `logs/{experiment_name}` and visualized in TensorBoard.
|
> You can launch training with evaluation enabled via `python legged_gym/scripts/train.py --task=xxx --robogauge`. The trainer waits for the evaluation client to be available. Results are saved under `logs/{experiment_name}` and visualized in TensorBoard.
|
||||||
|
|
||||||
## Metrics / Goals / Terrains
|
## Env Params / Metrics / Goals
|
||||||
|
|
||||||
Metrics are computed by sending fixed commands to the environment for a fixed duration, reading required signals from MuJoCo, and aggregating them.
|
Metrics are computed by sending fixed commands to the environment for a fixed duration, reading required signals from MuJoCo, and aggregating them.
|
||||||
|
|
||||||
@@ -201,7 +201,11 @@ Create a new robot implementation and control-model configuration under `robogau
|
|||||||
- `assets/`: documentation assets
|
- `assets/`: documentation assets
|
||||||
- `scripts/`: helper shell scripts for running experiments
|
- `scripts/`: helper shell scripts for running experiments
|
||||||
|
|
||||||
### Pipeline Logic
|
### RoboGauge Framework
|
||||||
|
|
||||||
|
| Details | Diagram |
|
||||||
|
| - | - |
|
||||||
|
| RoboGauge evaluation framework consists of three parts as shown in the diagram on the right: <br> Part A: BasePipeline handles a single evaluation environment, including terrain, robot, domain randomization, and raw metric computation. <br> Part B: MultiPipeline launches multiple BasePipelines in parallel processes for multi-seed evaluation, while LevelPipeline calls MultiPipeline to find the highest difficulty terrain that the policy can handle. <br> Part C: StressPipeline handles testing across all terrains, providing an overall RoboGauge score.|  |
|
||||||
|
|
||||||
[BasePipeline](./robogauge/tasks/pipeline/base_pipeline.py) manages scheduling among the simulator `sim`, the gauge (command generation + metric computation) `gauge`, and the locomotion policy wrapper `robot`. It also includes exception handling, domain randomization, and observation noise.
|
[BasePipeline](./robogauge/tasks/pipeline/base_pipeline.py) manages scheduling among the simulator `sim`, the gauge (command generation + metric computation) `gauge`, and the locomotion policy wrapper `robot`. It also includes exception handling, domain randomization, and observation noise.
|
||||||
|
|
||||||
@@ -224,4 +228,4 @@ Cause: MuJoCo cannot create an OpenGL context in headless mode.
|
|||||||
Fix: In `robogauge/scripts/run.py` and `robogauge/scripts/server.py`, set `os.environ['MUJOCO_GL']` to `egl` (GPU) or `osmesa` (CPU, slower).
|
Fix: In `robogauge/scripts/run.py` and `robogauge/scripts/server.py`, set `os.environ['MUJOCO_GL']` to `egl` (GPU) or `osmesa` (CPU, slower).
|
||||||
|
|
||||||
## Thanks
|
## Thanks
|
||||||
Thanks to [@windigal](https://github.com/windigal) for editing the videos.
|
Thanks to [@windigal](https://github.com/windigal) for terrains generation and editing the videos.
|
||||||
|
|||||||
12
README_zh.md
12
README_zh.md
@@ -89,7 +89,7 @@ while True:
|
|||||||
|
|
||||||
> 可通过`python legged_gym/scripts/train.py --task=xxx --robogauge`启动带有评估的训练,会等待客户端启动,结果会在`logs/{experiment_name}`目录下保存,并绘制tensorboard
|
> 可通过`python legged_gym/scripts/train.py --task=xxx --robogauge`启动带有评估的训练,会等待客户端启动,结果会在`logs/{experiment_name}`目录下保存,并绘制tensorboard
|
||||||
|
|
||||||
## 指标/目标/地形
|
## 环境参数/指标/目标
|
||||||
指标的计算方法是通过在环境中发送固定指令及持续时长, 通过Mujoco获取所需参数并计算.
|
指标的计算方法是通过在环境中发送固定指令及持续时长, 通过Mujoco获取所需参数并计算.
|
||||||
|
|
||||||
### 环境参数
|
### 环境参数
|
||||||
@@ -106,6 +106,8 @@ while True:
|
|||||||
1. 支持legged_gym中的部分地形, 包括: `wave, slope, stairs up, stairs down, obstacles, flat`, 除`flat`地形外其他地形可进行难度系数提升
|
1. 支持legged_gym中的部分地形, 包括: `wave, slope, stairs up, stairs down, obstacles, flat`, 除`flat`地形外其他地形可进行难度系数提升
|
||||||
2. 地面类型 (影响接触摩擦系数, 弹性摩擦系数), 包括: 橡胶地, 木地板, 瓷砖地
|
2. 地面类型 (影响接触摩擦系数, 弹性摩擦系数), 包括: 橡胶地, 木地板, 瓷砖地
|
||||||
|
|
||||||
|
地形生成代码:[windigal - mujoco_terrains](https://github.com/windigal/mujoco_terrains)
|
||||||
|
|
||||||
### 指标
|
### 指标
|
||||||
目前在每个`env.step`后可度量的指标, 所有指标均要求**越大越好**, 目前支持:
|
目前在每个`env.step`后可度量的指标, 所有指标均要求**越大越好**, 目前支持:
|
||||||
|
|
||||||
@@ -177,7 +179,11 @@ while True:
|
|||||||
- `assets/`:文档资源
|
- `assets/`:文档资源
|
||||||
- `scripts/`:实验运行的辅助 shell 脚本
|
- `scripts/`:实验运行的辅助 shell 脚本
|
||||||
|
|
||||||
### Pipeline逻辑
|
### RoboGauge评估框架
|
||||||
|
|
||||||
|
| 说明 | 框架图 |
|
||||||
|
| - | - |
|
||||||
|
| RoboGauge评估框架如右图中三部分组成:<br> Part A: BasePipeline负责单一评估环境,包含地形、机器人、域随机化、原始指标计算功能 <br> Part B: MultiPipeline通过多进程启动多个BasePipeline,进行多seed评估,LevelPipeline负责调用MultiPipeline寻找最高难度地形 <br> Part C: StressPipeline负责全地形下测试,给出整体RoboGauge评分|  |
|
||||||
|
|
||||||
[BasePipeline](./robogauge/tasks/pipeline/base_pipeline.py)用于管理仿真`sim`, 度量器(控制指令, 指标计算)`gauge`, 机器人运控模型`robot`三者的调度, 并包含异常处理, 域随机化, 观测噪声的添加.
|
[BasePipeline](./robogauge/tasks/pipeline/base_pipeline.py)用于管理仿真`sim`, 度量器(控制指令, 指标计算)`gauge`, 机器人运控模型`robot`三者的调度, 并包含异常处理, 域随机化, 观测噪声的添加.
|
||||||
|
|
||||||
@@ -196,4 +202,4 @@ while True:
|
|||||||
解决方案: 在`robogauge/scripts/run.py`和`robogauge/scripts/server.py`中, 将`os.environ['MUJOCO_GL']`设置为`egl`(GPU)或`osmesa`(CPU, 慢)
|
解决方案: 在`robogauge/scripts/run.py`和`robogauge/scripts/server.py`中, 将`os.environ['MUJOCO_GL']`设置为`egl`(GPU)或`osmesa`(CPU, 慢)
|
||||||
|
|
||||||
## 致谢
|
## 致谢
|
||||||
感谢[@windigal](https://github.com/windigal)剪辑视频
|
感谢[@windigal](https://github.com/windigal)地形生成及视频剪辑
|
||||||
@@ -1,79 +1,79 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.0.3 Chrome/140.0.7339.249 Electron/38.7.0 Safari/537.36" version="29.0.3">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.3.0 Chrome/140.0.7339.249 Electron/38.7.2 Safari/537.36" version="29.3.0">
|
||||||
<diagram name="第 1 页" id="8v6NF5F31sSyrdGHMDpO">
|
<diagram name="第 1 页" id="8v6NF5F31sSyrdGHMDpO">
|
||||||
<mxGraphModel dx="1181" dy="691" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="983" dy="603" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-1" value="<font face="Lucida Console">&nbsp;BasePipline</font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" value="<font face="Lucida Console">&nbsp;BasePipeline</font>" vertex="1">
|
||||||
<mxGeometry x="30" y="45.5" width="780" height="180" as="geometry" />
|
<mxGeometry height="180" width="780" x="30" y="45.5" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-6" value="" style="group" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-6" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||||
<mxGeometry x="40" y="80" width="50" height="70" as="geometry" />
|
<mxGeometry height="70" width="50" x="40" y="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-3" value="<div><font face="Lucida Console">sim</font></div><div><font face="Lucida Console">gauge</font></div><div><font face="Lucida Console">robot</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="C1xzxP5kP4-2OWV6bNVM-6" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-3" parent="C1xzxP5kP4-2OWV6bNVM-6" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">sim</font></div><div><font face="Lucida Console">gauge</font></div><div><font face="Lucida Console">robot</font></div>" vertex="1">
|
||||||
<mxGeometry y="20" width="50" height="50" as="geometry" />
|
<mxGeometry height="50" width="50" y="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-5" value="<font face="Lucida Console">init</font>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" parent="C1xzxP5kP4-2OWV6bNVM-6" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-5" parent="C1xzxP5kP4-2OWV6bNVM-6" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" value="<font face="Lucida Console">init</font>" vertex="1">
|
||||||
<mxGeometry width="50" height="20" as="geometry" />
|
<mxGeometry height="20" width="50" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="C1xzxP5kP4-2OWV6bNVM-3" edge="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-8" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" value="">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="180" y="125" as="targetPoint" />
|
<mxPoint x="180" y="125" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-9" value="<font face="Lucida Console">sim.load</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="C1xzxP5kP4-2OWV6bNVM-8" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-9" connectable="0" parent="C1xzxP5kP4-2OWV6bNVM-8" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">sim.load</font>" vertex="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="-4" y="-9" as="offset" />
|
<mxPoint x="-4" y="-9" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-10" value="<font face="Lucida Console">run</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="C1xzxP5kP4-2OWV6bNVM-8" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-10" connectable="0" parent="C1xzxP5kP4-2OWV6bNVM-8" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">run</font>" vertex="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="-4" y="11" as="offset" />
|
<mxPoint x="-4" y="11" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-18" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" parent="1" source="C1xzxP5kP4-2OWV6bNVM-11" target="C1xzxP5kP4-2OWV6bNVM-17" edge="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-18" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" target="C1xzxP5kP4-2OWV6bNVM-17" value="">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-19" value="<font face="Lucida Console">robot.build_obs</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" parent="C1xzxP5kP4-2OWV6bNVM-18" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-19" connectable="0" parent="C1xzxP5kP4-2OWV6bNVM-18" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" value="<font face="Lucida Console">robot.build_obs</font>" vertex="1">
|
||||||
<mxGeometry x="-0.469" y="-1" relative="1" as="geometry">
|
<mxGeometry relative="1" x="-0.469" y="-1" as="geometry">
|
||||||
<mxPoint x="24" y="-11" as="offset" />
|
<mxPoint x="24" y="-11" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-11" value="<div><font face="Lucida Console">sim_data<br>goal_data</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">sim_data<br>goal_data</font></div>" vertex="1">
|
||||||
<mxGeometry x="180" y="100" width="80" height="50" as="geometry" />
|
<mxGeometry height="50" width="80" x="180" y="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-14" value="<font face="Lucida Console">sim.step</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-14" connectable="0" parent="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">sim.step</font>" vertex="1">
|
||||||
<mxGeometry x="520" y="115" as="geometry" />
|
<mxGeometry x="520" y="115" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-17" value="<div><font face="Lucida Console">action</font></div><div><font face="Lucida Console">pd_gains</font></div><div><font face="Lucida Console">control_type</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">action</font></div><div><font face="Lucida Console">pd_gains</font></div><div><font face="Lucida Console">control_type</font></div>" vertex="1">
|
||||||
<mxGeometry x="380" y="100" width="100" height="50" as="geometry" />
|
<mxGeometry height="50" width="100" x="380" y="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-20" value="<font face="Lucida Console">robot.get_action</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-20" connectable="0" parent="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" value="<font face="Lucida Console">robot.get_action</font>" vertex="1">
|
||||||
<mxGeometry x="317" y="135.5" as="geometry" />
|
<mxGeometry x="317" y="135.5" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-22" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" parent="1" target="C1xzxP5kP4-2OWV6bNVM-21" edge="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-22" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" target="C1xzxP5kP4-2OWV6bNVM-21" value="">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="480" y="124.75" as="sourcePoint" />
|
<mxPoint x="480" y="124.75" as="sourcePoint" />
|
||||||
<mxPoint x="600" y="124.75" as="targetPoint" />
|
<mxPoint x="600" y="124.75" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" parent="1" source="C1xzxP5kP4-2OWV6bNVM-26" target="C1xzxP5kP4-2OWV6bNVM-11" edge="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-23" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" target="C1xzxP5kP4-2OWV6bNVM-11">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points" />
|
<Array as="points" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-21" target="DQq9_kveZUeOBhKwjd4h-1">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-8" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="DQq9_kveZUeOBhKwjd4h-1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-21" value="<div><font face="Lucida Console">gauge.update_metrics</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-21" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">gauge.update_metrics</font></div>" vertex="1">
|
||||||
<mxGeometry x="570" y="110" width="150" height="30" as="geometry" />
|
<mxGeometry height="30" width="150" x="570" y="110" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-25" value="<font face="Lucida Console">no</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-25" connectable="0" parent="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" value="<font face="Lucida Console">no</font>" vertex="1">
|
||||||
<mxGeometry x="414" y="164" as="geometry">
|
<mxGeometry x="414" y="164" as="geometry">
|
||||||
<mxPoint x="3" y="6" as="offset" />
|
<mxPoint x="3" y="6" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" parent="1" source="C1xzxP5kP4-2OWV6bNVM-26" target="C1xzxP5kP4-2OWV6bNVM-11" edge="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-29" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" target="C1xzxP5kP4-2OWV6bNVM-11">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="540" y="200" />
|
<mxPoint x="540" y="200" />
|
||||||
@@ -81,21 +81,21 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-31" value="<font face="Lucida Console">Yes</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" parent="C1xzxP5kP4-2OWV6bNVM-29" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-31" connectable="0" parent="C1xzxP5kP4-2OWV6bNVM-29" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" value="<font face="Lucida Console">Yes</font>" vertex="1">
|
||||||
<mxGeometry x="-0.2822" relative="1" as="geometry">
|
<mxGeometry relative="1" x="-0.2822" as="geometry">
|
||||||
<mxPoint y="-1" as="offset" />
|
<mxPoint y="-1" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-26" value="<span style="font-family: &quot;Lucida Console&quot;; font-size: 11px; text-wrap-mode: nowrap; background-color: rgb(255, 255, 255);">gauge.is_reset</span>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-26" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<span style="font-family: &quot;Lucida Console&quot;; font-size: 11px; text-wrap-mode: nowrap; background-color: rgb(255, 255, 255);">gauge.is_reset</span>" vertex="1">
|
||||||
<mxGeometry x="490" y="162" width="100" height="20" as="geometry" />
|
<mxGeometry height="20" width="100" x="490" y="162" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-32" value="<font face="Lucida Console">sim.reset</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-32" connectable="0" parent="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" value="<font face="Lucida Console">sim.reset</font>" vertex="1">
|
||||||
<mxGeometry x="340" y="190" as="geometry" />
|
<mxGeometry x="340" y="190" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-33" value="<font face="Lucida Console">robot.reset</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-33" connectable="0" parent="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;fillColor=none;gradientColor=none;" value="<font face="Lucida Console">robot.reset</font>" vertex="1">
|
||||||
<mxGeometry x="340" y="210" as="geometry" />
|
<mxGeometry x="340" y="210" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="DQq9_kveZUeOBhKwjd4h-1" target="C1xzxP5kP4-2OWV6bNVM-26">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-2" edge="1" parent="1" source="DQq9_kveZUeOBhKwjd4h-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" target="C1xzxP5kP4-2OWV6bNVM-26">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="645" y="202" />
|
<mxPoint x="645" y="202" />
|
||||||
@@ -103,28 +103,28 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-3" value="<font face="Lucida Console">No</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DQq9_kveZUeOBhKwjd4h-2">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-3" connectable="0" parent="DQq9_kveZUeOBhKwjd4h-2" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">No</font>" vertex="1">
|
||||||
<mxGeometry x="0.1912" relative="1" as="geometry">
|
<mxGeometry relative="1" x="0.1912" as="geometry">
|
||||||
<mxPoint x="10" as="offset" />
|
<mxPoint x="10" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="DQq9_kveZUeOBhKwjd4h-1" target="DQq9_kveZUeOBhKwjd4h-5">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-6" edge="1" parent="1" source="DQq9_kveZUeOBhKwjd4h-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="DQq9_kveZUeOBhKwjd4h-5">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="645" y="202" />
|
<mxPoint x="645" y="202" />
|
||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-7" value="<font face="Lucida Console">Yes</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="DQq9_kveZUeOBhKwjd4h-6">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-7" connectable="0" parent="DQq9_kveZUeOBhKwjd4h-6" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">Yes</font>" vertex="1">
|
||||||
<mxGeometry x="0.1024" y="1" relative="1" as="geometry">
|
<mxGeometry relative="1" x="0.1024" y="1" as="geometry">
|
||||||
<mxPoint x="8" as="offset" />
|
<mxPoint x="8" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-1" value="<span style="font-family: &quot;Lucida Console&quot;; font-size: 11px; text-wrap-mode: nowrap; background-color: rgb(255, 255, 255);">gauge.is_done</span>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<span style="font-family: &quot;Lucida Console&quot;; font-size: 11px; text-wrap-mode: nowrap; background-color: rgb(255, 255, 255);">gauge.is_done</span>" vertex="1">
|
||||||
<mxGeometry x="595" y="150" width="100" height="20" as="geometry" />
|
<mxGeometry height="20" width="100" x="595" y="150" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="DQq9_kveZUeOBhKwjd4h-5" value="<span style="font-family: &quot;Lucida Console&quot;; font-size: 11px; text-wrap-mode: nowrap; background-color: rgb(255, 255, 255);">result.yaml</span>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="DQq9_kveZUeOBhKwjd4h-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<span style="font-family: &quot;Lucida Console&quot;; font-size: 11px; text-wrap-mode: nowrap; background-color: rgb(255, 255, 255);">result.yaml</span>" vertex="1">
|
||||||
<mxGeometry x="710" y="192" width="80" height="20" as="geometry" />
|
<mxGeometry height="20" width="80" x="710" y="192" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 28 KiB |
BIN
assets/robogauge_framework.jpg
Normal file
BIN
assets/robogauge_framework.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 194 KiB |
@@ -1,28 +1,28 @@
|
|||||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.0.3 Chrome/140.0.7339.249 Electron/38.7.0 Safari/537.36" version="29.0.3">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.3.0 Chrome/140.0.7339.249 Electron/38.7.2 Safari/537.36" version="29.3.0">
|
||||||
<diagram name="第 1 页" id="8v6NF5F31sSyrdGHMDpO">
|
<diagram name="第 1 页" id="8v6NF5F31sSyrdGHMDpO">
|
||||||
<mxGraphModel dx="984" dy="576" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
<mxGraphModel dx="815" dy="500" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-1" value="<font face="Lucida Console">&nbsp;LevelPipline</font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" value="<font face="Lucida Console">&nbsp;LevelPipeline</font>" vertex="1">
|
||||||
<mxGeometry x="30" y="20" width="790" height="205.5" as="geometry" />
|
<mxGeometry height="205.5" width="790" x="30" y="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-32" value="<font face="Lucida Console">&nbsp;MultiPipline</font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;dashed=1;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-32" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;dashed=1;" value="<font face="Lucida Console">&nbsp;MultiPipeline</font>" vertex="1">
|
||||||
<mxGeometry x="310" y="30" width="320" height="155" as="geometry" />
|
<mxGeometry height="155" width="320" x="310" y="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-6" value="" style="group" parent="1" vertex="1" connectable="0">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-6" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||||
<mxGeometry x="40" y="80" width="50" height="70" as="geometry" />
|
<mxGeometry height="70" width="50" x="40" y="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-3" value="<div><font face="Lucida Console">level</font></div><div><font face="Lucida Console">type</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="C1xzxP5kP4-2OWV6bNVM-6" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-3" parent="C1xzxP5kP4-2OWV6bNVM-6" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">level</font></div><div><font face="Lucida Console">type</font></div>" vertex="1">
|
||||||
<mxGeometry y="20" width="50" height="50" as="geometry" />
|
<mxGeometry height="50" width="50" y="20" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-5" value="<font face="Lucida Console">init</font>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" parent="C1xzxP5kP4-2OWV6bNVM-6" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-5" parent="C1xzxP5kP4-2OWV6bNVM-6" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" value="<font face="Lucida Console">init</font>" vertex="1">
|
||||||
<mxGeometry width="50" height="20" as="geometry" />
|
<mxGeometry height="20" width="50" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-18" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" parent="1" source="C1xzxP5kP4-2OWV6bNVM-11" target="C1xzxP5kP4-2OWV6bNVM-17" edge="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-18" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=0;" target="C1xzxP5kP4-2OWV6bNVM-17" value="">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-17" target="LAeri6nIJ74vq4yU8XOa-4">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-5" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="LAeri6nIJ74vq4yU8XOa-4" value="">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="320" y="125" />
|
<mxPoint x="320" y="125" />
|
||||||
@@ -30,10 +30,10 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-17" target="LAeri6nIJ74vq4yU8XOa-6">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-8" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-6">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-17" target="LAeri6nIJ74vq4yU8XOa-7">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-9" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-7">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="320" y="125" />
|
<mxPoint x="320" y="125" />
|
||||||
@@ -41,42 +41,42 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-17" value="<div><font face="Lucida Console">level</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">level</font></div>" vertex="1">
|
||||||
<mxGeometry x="240" y="110" width="60" height="30" as="geometry" />
|
<mxGeometry height="30" width="60" x="240" y="110" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-3" target="C1xzxP5kP4-2OWV6bNVM-11">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-1" edge="1" parent="1" source="C1xzxP5kP4-2OWV6bNVM-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="C1xzxP5kP4-2OWV6bNVM-11" value="">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="180" y="125" as="targetPoint" />
|
|
||||||
<mxPoint x="90" y="125" as="sourcePoint" />
|
<mxPoint x="90" y="125" as="sourcePoint" />
|
||||||
|
<mxPoint x="180" y="125" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-2" value="<font face="Lucida Console">run</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="LAeri6nIJ74vq4yU8XOa-1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-2" connectable="0" parent="LAeri6nIJ74vq4yU8XOa-1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">run</font>" vertex="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="-3" y="-10" as="offset" />
|
<mxPoint x="-3" y="-10" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="C1xzxP5kP4-2OWV6bNVM-11" value="<font face="Lucida Console">binary</font><div><font face="Lucida Console">search</font></div><div><font face="Lucida Console">(l, r)</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
<mxCell id="C1xzxP5kP4-2OWV6bNVM-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<font face="Lucida Console">binary</font><div><font face="Lucida Console">search</font></div><div><font face="Lucida Console">(l, r)</font></div>" vertex="1">
|
||||||
<mxGeometry x="130" y="100" width="80" height="50" as="geometry" />
|
<mxGeometry height="50" width="80" x="130" y="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-11" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-4" target="LAeri6nIJ74vq4yU8XOa-10">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-11" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="LAeri6nIJ74vq4yU8XOa-10" value="">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-4" value="<div><font face="Lucida Console">seed_0</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">seed_0</font></div>" vertex="1">
|
||||||
<mxGeometry x="338" y="70" width="60" height="30" as="geometry" />
|
<mxGeometry height="30" width="60" x="338" y="70" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-6" target="LAeri6nIJ74vq4yU8XOa-12">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-15" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-12">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-6" value="<div><font face="Lucida Console">seed_1</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">seed_1</font></div>" vertex="1">
|
||||||
<mxGeometry x="338" y="110" width="60" height="30" as="geometry" />
|
<mxGeometry height="30" width="60" x="338" y="110" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-7" target="LAeri6nIJ74vq4yU8XOa-13">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-16" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-13">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-7" value="<div><font face="Lucida Console">seed_2</font></div>" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-7" parent="1" style="rounded=1;whiteSpace=wrap;html=1;" value="<div><font face="Lucida Console">seed_2</font></div>" vertex="1">
|
||||||
<mxGeometry x="338" y="150" width="60" height="30" as="geometry" />
|
<mxGeometry height="30" width="60" x="338" y="150" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-10" target="LAeri6nIJ74vq4yU8XOa-17">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-38" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-17">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="620" y="85" />
|
<mxPoint x="620" y="85" />
|
||||||
@@ -84,16 +84,16 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-10" value="<div><font face="Lucida Console">result_0.yaml</font></div>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-10" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<div><font face="Lucida Console">result_0.yaml</font></div>" vertex="1">
|
||||||
<mxGeometry x="500" y="70" width="100" height="30" as="geometry" />
|
<mxGeometry height="30" width="100" x="500" y="70" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-12" target="LAeri6nIJ74vq4yU8XOa-17">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-39" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-17">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-12" value="<div><font face="Lucida Console">result_1.yaml</font></div>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-12" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<div><font face="Lucida Console">result_1.yaml</font></div>" vertex="1">
|
||||||
<mxGeometry x="500" y="110" width="100" height="30" as="geometry" />
|
<mxGeometry height="30" width="100" x="500" y="110" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-13" target="LAeri6nIJ74vq4yU8XOa-17">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-40" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-17">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="620" y="165" />
|
<mxPoint x="620" y="165" />
|
||||||
@@ -101,16 +101,16 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-13" value="<div><font face="Lucida Console">result_2.yaml</font></div>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-13" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<div><font face="Lucida Console">result_2.yaml</font></div>" vertex="1">
|
||||||
<mxGeometry x="500" y="150" width="100" height="30" as="geometry" />
|
<mxGeometry height="30" width="100" x="500" y="150" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-17" target="LAeri6nIJ74vq4yU8XOa-24">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-44" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="LAeri6nIJ74vq4yU8XOa-24">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-17" value="<div><font face="Lucida Console">aggregated</font></div><div><font face="Lucida Console">result.yaml</font></div>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-17" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<div><font face="Lucida Console">aggregated</font></div><div><font face="Lucida Console">result.yaml</font></div>" vertex="1">
|
||||||
<mxGeometry x="647" y="105" width="100" height="40" as="geometry" />
|
<mxGeometry height="40" width="100" x="647" y="105" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-24" target="LAeri6nIJ74vq4yU8XOa-27">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-45" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="LAeri6nIJ74vq4yU8XOa-27">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="670" y="165" />
|
<mxPoint x="670" y="165" />
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-24" target="C1xzxP5kP4-2OWV6bNVM-11">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-46" edge="1" parent="1" source="LAeri6nIJ74vq4yU8XOa-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="C1xzxP5kP4-2OWV6bNVM-11">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<Array as="points">
|
<Array as="points">
|
||||||
<mxPoint x="670" y="165" />
|
<mxPoint x="670" y="165" />
|
||||||
@@ -127,30 +127,30 @@
|
|||||||
</Array>
|
</Array>
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-47" value="<font face="Lucida Console">Yes</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="LAeri6nIJ74vq4yU8XOa-46">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-47" connectable="0" parent="LAeri6nIJ74vq4yU8XOa-46" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">Yes</font>" vertex="1">
|
||||||
<mxGeometry x="-0.1813" y="-2" relative="1" as="geometry">
|
<mxGeometry relative="1" x="-0.1813" y="-2" as="geometry">
|
||||||
<mxPoint as="offset" />
|
<mxPoint as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-24" value="<font face="Lucida Console"><span style="font-size: 11px;">l &lt; r</span></font>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;fillColor=default;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-24" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;fillColor=default;" value="<font face="Lucida Console"><span style="font-size: 11px;">l &lt; r</span></font>" vertex="1">
|
||||||
<mxGeometry x="678.88" y="155" width="36.25" height="20" as="geometry" />
|
<mxGeometry height="20" width="36.25" x="678.88" y="155" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-27" value="<font face="Lucida Console">level</font><div><font face="Lucida Console">result.yaml</font></div>" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-27" parent="1" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;" value="<font face="Lucida Console">level</font><div><font face="Lucida Console">result.yaml</font></div>" vertex="1">
|
||||||
<mxGeometry x="717.12" y="180" width="90" height="40" as="geometry" />
|
<mxGeometry height="40" width="90" x="717.12" y="180" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-31" value="<font face="Lucida Console">No</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-31" connectable="0" parent="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="<font face="Lucida Console">No</font>" vertex="1">
|
||||||
<mxGeometry x="697" y="200" as="geometry">
|
<mxGeometry x="697" y="200" as="geometry">
|
||||||
<mxPoint x="-4" y="-2" as="offset" />
|
<mxPoint x="-4" y="-2" as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-34" value="<font face="Lucida Console" style="font-size: 11px;">BasePipeline</font>" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;dashed=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-34" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;dashed=1;strokeColor=none;" value="<font face="Lucida Console" style="font-size: 11px;">BasePipeline</font>" vertex="1">
|
||||||
<mxGeometry x="404.67" y="71" width="83.33" height="10" as="geometry" />
|
<mxGeometry height="10" width="83.33" x="404.67" y="71" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-36" value="<font face="Lucida Console" style="font-size: 11px;">BasePipeline</font>" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;dashed=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-36" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;dashed=1;strokeColor=none;" value="<font face="Lucida Console" style="font-size: 11px;">BasePipeline</font>" vertex="1">
|
||||||
<mxGeometry x="404.67" y="111" width="83.33" height="10" as="geometry" />
|
<mxGeometry height="10" width="83.33" x="404.67" y="111" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="LAeri6nIJ74vq4yU8XOa-37" value="<font face="Lucida Console" style="font-size: 11px;">BasePipeline</font>" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;dashed=1;strokeColor=none;" vertex="1" parent="1">
|
<mxCell id="LAeri6nIJ74vq4yU8XOa-37" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=center;verticalAlign=middle;dashed=1;strokeColor=none;" value="<font face="Lucida Console" style="font-size: 11px;">BasePipeline</font>" vertex="1">
|
||||||
<mxGeometry x="404.67" y="151" width="83.33" height="10" as="geometry" />
|
<mxGeometry height="10" width="83.33" x="404.67" y="151" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
</mxGraphModel>
|
</mxGraphModel>
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 31 KiB |
Reference in New Issue
Block a user