qtmodel 0.5.36__tar.gz → 0.5.38__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of qtmodel might be problematic. Click here for more details.
- {qtmodel-0.5.36 → qtmodel-0.5.38}/PKG-INFO +14 -10
- {qtmodel-0.5.36 → qtmodel-0.5.38}/README.md +12 -8
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel/qt_mdb.py +24 -19
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel.egg-info/PKG-INFO +14 -10
- {qtmodel-0.5.36 → qtmodel-0.5.38}/setup.py +2 -2
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel/__init__.py +0 -0
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel/qt_db.py +0 -0
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel/qt_odb.py +0 -0
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel.egg-info/SOURCES.txt +0 -0
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel.egg-info/dependency_links.txt +0 -0
- {qtmodel-0.5.36 → qtmodel-0.5.38}/qtmodel.egg-info/top_level.txt +0 -0
- {qtmodel-0.5.36 → qtmodel-0.5.38}/setup.cfg +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qtmodel
|
|
3
|
-
Version: 0.5.
|
|
4
|
-
Summary: python modeling for qt 24/11/
|
|
3
|
+
Version: 0.5.38
|
|
4
|
+
Summary: python modeling for qt 24/11/14
|
|
5
5
|
Home-page: https://github.com/Inface0443/pyqt
|
|
6
6
|
Author: dqy-zhj
|
|
7
7
|
Author-email: 1105417715@qq.com
|
|
@@ -12,9 +12,9 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
|
|
15
|
-
# 最新版本 V0.5.
|
|
15
|
+
# 最新版本 V0.5.38 - 2024.11.14
|
|
16
16
|
> pip install --upgrade qtmodel -i https://pypi.org/simple
|
|
17
|
-
-
|
|
17
|
+
- 扩展组合材料
|
|
18
18
|
## 项目管理
|
|
19
19
|
### update_bim
|
|
20
20
|
刷新Bim模型信息
|
|
@@ -218,12 +218,14 @@ mdb.update_response_spectrum_setting(do_analysis=True,kind=1,damping_ratio=0.05)
|
|
|
218
218
|
Returns: 无
|
|
219
219
|
## 节点操作
|
|
220
220
|
### add_node
|
|
221
|
-
|
|
221
|
+
根据坐标信息和节点编号添加节点
|
|
222
222
|
> 参数:
|
|
223
|
-
> node_data: [id,x,y,z] 或 [x,y,z]
|
|
223
|
+
> node_data: [id,x,y,z] 或 [x,y,z] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
224
224
|
> intersected: 是否交叉分割
|
|
225
225
|
> is_merged: 是否忽略位置重复节点
|
|
226
226
|
> merge_error: 合并容许误差
|
|
227
|
+
> numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
228
|
+
> start_id:自定义节点起始编号(用户定义号码时使用)
|
|
227
229
|
```Python
|
|
228
230
|
# 示例代码
|
|
229
231
|
from qtmodel import *
|
|
@@ -232,12 +234,14 @@ mdb.add_node(node_data=[1,1,2,3])
|
|
|
232
234
|
```
|
|
233
235
|
Returns: 无
|
|
234
236
|
### add_nodes
|
|
235
|
-
|
|
237
|
+
根据坐标信息和节点编号添加一组节点,可指定节点号,或不指定节点号
|
|
236
238
|
> 参数:
|
|
237
|
-
> node_data: [[id,x,y,z]...]
|
|
239
|
+
> node_data: [[id,x,y,z]...] 或[[x,y,z]...] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
238
240
|
> intersected: 是否交叉分割
|
|
239
241
|
> is_merged: 是否忽略位置重复节点
|
|
240
242
|
> merge_error: 合并容许误差
|
|
243
|
+
> numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
244
|
+
> start_id:自定义节点起始编号(用户定义号码时使用)
|
|
241
245
|
```Python
|
|
242
246
|
# 示例代码
|
|
243
247
|
from qtmodel import *
|
|
@@ -457,7 +461,7 @@ Returns: 无
|
|
|
457
461
|
> 参数:
|
|
458
462
|
> index:材料编号,默认自动识别 (可选参数)
|
|
459
463
|
> name:材料名称
|
|
460
|
-
> mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义
|
|
464
|
+
> mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义 6-组合材料
|
|
461
465
|
> standard:规范序号,参考UI 默认从1开始
|
|
462
466
|
> database:数据库名称
|
|
463
467
|
> construct_factor:构造系数
|
|
@@ -465,6 +469,7 @@ Returns: 无
|
|
|
465
469
|
> data_info:材料参数列表[弹性模量,容重,泊松比,热膨胀系数] (可选参数)
|
|
466
470
|
> creep_id:徐变材料id (可选参数)
|
|
467
471
|
> f_cuk: 立方体抗压强度标准值 (可选参数)
|
|
472
|
+
> composite_info: 主材名和辅材名 (仅组合材料需要)
|
|
468
473
|
```Python
|
|
469
474
|
# 示例代码
|
|
470
475
|
from qtmodel import *
|
|
@@ -2760,6 +2765,5 @@ odb.get_deviation_load(case_name="荷载工况1")
|
|
|
2760
2765
|
```
|
|
2761
2766
|
Returns: json字符串,包含信息为list[dict]
|
|
2762
2767
|
|
|
2763
|
-
Process finished with exit code 0
|
|
2764
2768
|
|
|
2765
2769
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# 最新版本 V0.5.
|
|
1
|
+
# 最新版本 V0.5.38 - 2024.11.14
|
|
2
2
|
> pip install --upgrade qtmodel -i https://pypi.org/simple
|
|
3
|
-
-
|
|
3
|
+
- 扩展组合材料
|
|
4
4
|
## 项目管理
|
|
5
5
|
### update_bim
|
|
6
6
|
刷新Bim模型信息
|
|
@@ -204,12 +204,14 @@ mdb.update_response_spectrum_setting(do_analysis=True,kind=1,damping_ratio=0.05)
|
|
|
204
204
|
Returns: 无
|
|
205
205
|
## 节点操作
|
|
206
206
|
### add_node
|
|
207
|
-
|
|
207
|
+
根据坐标信息和节点编号添加节点
|
|
208
208
|
> 参数:
|
|
209
|
-
> node_data: [id,x,y,z] 或 [x,y,z]
|
|
209
|
+
> node_data: [id,x,y,z] 或 [x,y,z] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
210
210
|
> intersected: 是否交叉分割
|
|
211
211
|
> is_merged: 是否忽略位置重复节点
|
|
212
212
|
> merge_error: 合并容许误差
|
|
213
|
+
> numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
214
|
+
> start_id:自定义节点起始编号(用户定义号码时使用)
|
|
213
215
|
```Python
|
|
214
216
|
# 示例代码
|
|
215
217
|
from qtmodel import *
|
|
@@ -218,12 +220,14 @@ mdb.add_node(node_data=[1,1,2,3])
|
|
|
218
220
|
```
|
|
219
221
|
Returns: 无
|
|
220
222
|
### add_nodes
|
|
221
|
-
|
|
223
|
+
根据坐标信息和节点编号添加一组节点,可指定节点号,或不指定节点号
|
|
222
224
|
> 参数:
|
|
223
|
-
> node_data: [[id,x,y,z]...]
|
|
225
|
+
> node_data: [[id,x,y,z]...] 或[[x,y,z]...] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
224
226
|
> intersected: 是否交叉分割
|
|
225
227
|
> is_merged: 是否忽略位置重复节点
|
|
226
228
|
> merge_error: 合并容许误差
|
|
229
|
+
> numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
230
|
+
> start_id:自定义节点起始编号(用户定义号码时使用)
|
|
227
231
|
```Python
|
|
228
232
|
# 示例代码
|
|
229
233
|
from qtmodel import *
|
|
@@ -443,7 +447,7 @@ Returns: 无
|
|
|
443
447
|
> 参数:
|
|
444
448
|
> index:材料编号,默认自动识别 (可选参数)
|
|
445
449
|
> name:材料名称
|
|
446
|
-
> mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义
|
|
450
|
+
> mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义 6-组合材料
|
|
447
451
|
> standard:规范序号,参考UI 默认从1开始
|
|
448
452
|
> database:数据库名称
|
|
449
453
|
> construct_factor:构造系数
|
|
@@ -451,6 +455,7 @@ Returns: 无
|
|
|
451
455
|
> data_info:材料参数列表[弹性模量,容重,泊松比,热膨胀系数] (可选参数)
|
|
452
456
|
> creep_id:徐变材料id (可选参数)
|
|
453
457
|
> f_cuk: 立方体抗压强度标准值 (可选参数)
|
|
458
|
+
> composite_info: 主材名和辅材名 (仅组合材料需要)
|
|
454
459
|
```Python
|
|
455
460
|
# 示例代码
|
|
456
461
|
from qtmodel import *
|
|
@@ -2746,4 +2751,3 @@ odb.get_deviation_load(case_name="荷载工况1")
|
|
|
2746
2751
|
```
|
|
2747
2752
|
Returns: json字符串,包含信息为list[dict]
|
|
2748
2753
|
|
|
2749
|
-
Process finished with exit code 0
|
|
@@ -324,46 +324,49 @@ class Mdb:
|
|
|
324
324
|
|
|
325
325
|
# region 节点操作
|
|
326
326
|
@staticmethod
|
|
327
|
-
def add_node(node_data: list[float], intersected: bool =
|
|
328
|
-
is_merged: bool = False, merge_error: float = 1e-
|
|
327
|
+
def add_node(node_data: list[float], intersected: bool = False,
|
|
328
|
+
is_merged: bool = False, merge_error: float = 1e-3,
|
|
329
|
+
numbering_type: int = 0, start_id: int = 1):
|
|
329
330
|
"""
|
|
330
|
-
|
|
331
|
+
根据坐标信息和节点编号添加节点
|
|
331
332
|
Args:
|
|
332
|
-
node_data: [id,x,y,z] 或 [x,y,z]
|
|
333
|
+
node_data: [id,x,y,z] 或 [x,y,z] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
333
334
|
intersected: 是否交叉分割
|
|
334
335
|
is_merged: 是否忽略位置重复节点
|
|
335
336
|
merge_error: 合并容许误差
|
|
337
|
+
numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
338
|
+
start_id:自定义节点起始编号(用户定义号码时使用)
|
|
336
339
|
Example:
|
|
337
340
|
mdb.add_node(node_data=[1,2,3])
|
|
338
341
|
mdb.add_node(node_data=[1,1,2,3])
|
|
339
342
|
Returns: 无
|
|
340
343
|
"""
|
|
341
344
|
try:
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
intersected=intersected, isMerged=is_merged, merge_error=merge_error)
|
|
345
|
-
elif len(node_data) == 3:
|
|
346
|
-
qt_model.AddNode(x=node_data[0], y=node_data[1], z=node_data[2],
|
|
347
|
-
intersected=intersected, isMerged=is_merged, merge_error=merge_error)
|
|
345
|
+
qt_model.AddNodes(nodeData=[node_data], intersected=intersected, isMerged=is_merged, merge_error=merge_error,
|
|
346
|
+
numberingType=numbering_type, startId=start_id)
|
|
348
347
|
except Exception as ex:
|
|
349
348
|
raise Exception(ex)
|
|
350
349
|
|
|
351
350
|
@staticmethod
|
|
352
|
-
def add_nodes(node_data: list[list[float]], intersected: bool =
|
|
353
|
-
is_merged: bool = False, merge_error: float = 1e-
|
|
351
|
+
def add_nodes(node_data: list[list[float]], intersected: bool = False,
|
|
352
|
+
is_merged: bool = False, merge_error: float = 1e-3,
|
|
353
|
+
numbering_type: int = 0, start_id: int = 1):
|
|
354
354
|
"""
|
|
355
|
-
|
|
355
|
+
根据坐标信息和节点编号添加一组节点,可指定节点号,或不指定节点号
|
|
356
356
|
Args:
|
|
357
|
-
node_data: [[id,x,y,z]...]
|
|
357
|
+
node_data: [[id,x,y,z]...] 或[[x,y,z]...] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
358
358
|
intersected: 是否交叉分割
|
|
359
359
|
is_merged: 是否忽略位置重复节点
|
|
360
360
|
merge_error: 合并容许误差
|
|
361
|
+
numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
362
|
+
start_id:自定义节点起始编号(用户定义号码时使用)
|
|
361
363
|
Example:
|
|
362
364
|
mdb.add_nodes(node_data=[[1,1,2,3],[1,1,2,3]])
|
|
363
365
|
Returns: 无
|
|
364
366
|
"""
|
|
365
367
|
try:
|
|
366
|
-
qt_model.AddNodes(nodeData=node_data, intersected=intersected, isMerged=is_merged, merge_error=merge_error
|
|
368
|
+
qt_model.AddNodes(nodeData=node_data, intersected=intersected, isMerged=is_merged, merge_error=merge_error,
|
|
369
|
+
numberingType=numbering_type, startId=start_id)
|
|
367
370
|
except Exception as ex:
|
|
368
371
|
raise Exception(ex)
|
|
369
372
|
|
|
@@ -709,13 +712,14 @@ class Mdb:
|
|
|
709
712
|
# region 材料操作
|
|
710
713
|
@staticmethod
|
|
711
714
|
def add_material(index: int = -1, name: str = "", mat_type: int = 1, standard: int = 1, database: str = "C50",
|
|
712
|
-
construct_factor: float = 1, modified: bool = False, data_info: list[float] = None, creep_id: int = -1,
|
|
715
|
+
construct_factor: float = 1, modified: bool = False, data_info: list[float] = None, creep_id: int = -1,
|
|
716
|
+
f_cuk: float = 0, composite_info: tuple[str, str] = None):
|
|
713
717
|
"""
|
|
714
718
|
添加材料
|
|
715
719
|
Args:
|
|
716
720
|
index:材料编号,默认自动识别 (可选参数)
|
|
717
721
|
name:材料名称
|
|
718
|
-
mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义
|
|
722
|
+
mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义 6-组合材料
|
|
719
723
|
standard:规范序号,参考UI 默认从1开始
|
|
720
724
|
database:数据库名称
|
|
721
725
|
construct_factor:构造系数
|
|
@@ -723,6 +727,7 @@ class Mdb:
|
|
|
723
727
|
data_info:材料参数列表[弹性模量,容重,泊松比,热膨胀系数] (可选参数)
|
|
724
728
|
creep_id:徐变材料id (可选参数)
|
|
725
729
|
f_cuk: 立方体抗压强度标准值 (可选参数)
|
|
730
|
+
composite_info: 主材名和辅材名 (仅组合材料需要)
|
|
726
731
|
Example:
|
|
727
732
|
mdb.add_material(index=1,name="混凝土材料1",mat_type=1,standard=1,database="C50")
|
|
728
733
|
mdb.add_material(index=1,name="自定义材料1",mat_type=5,data_info=[3.5e10,2.5e4,0.2,1.5e-5])
|
|
@@ -736,13 +741,13 @@ class Mdb:
|
|
|
736
741
|
if not modified:
|
|
737
742
|
qt_model.AddMaterial(id=index, name=name, materialType=mat_type, standardIndex=standard,
|
|
738
743
|
database=database, constructFactor=construct_factor, isModified=modified,
|
|
739
|
-
timeParameterId=creep_id, fcuk=f_cuk)
|
|
744
|
+
timeParameterId=creep_id, fcuk=f_cuk, compositeInfo=composite_info)
|
|
740
745
|
else:
|
|
741
746
|
qt_model.AddMaterial(id=index, name=name, materialType=mat_type, standardIndex=standard,
|
|
742
747
|
database=database, constructFactor=construct_factor, isModified=modified,
|
|
743
748
|
elasticModulus=data_info[0], unitWeight=data_info[1],
|
|
744
749
|
posiRatio=data_info[2], temperatureCoefficient=data_info[3],
|
|
745
|
-
timeParameterId=creep_id, fcuk=f_cuk)
|
|
750
|
+
timeParameterId=creep_id, fcuk=f_cuk, compositeInfo=composite_info)
|
|
746
751
|
qt_model.UpdateModel()
|
|
747
752
|
except Exception as ex:
|
|
748
753
|
raise Exception(ex)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qtmodel
|
|
3
|
-
Version: 0.5.
|
|
4
|
-
Summary: python modeling for qt 24/11/
|
|
3
|
+
Version: 0.5.38
|
|
4
|
+
Summary: python modeling for qt 24/11/14
|
|
5
5
|
Home-page: https://github.com/Inface0443/pyqt
|
|
6
6
|
Author: dqy-zhj
|
|
7
7
|
Author-email: 1105417715@qq.com
|
|
@@ -12,9 +12,9 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
|
|
15
|
-
# 最新版本 V0.5.
|
|
15
|
+
# 最新版本 V0.5.38 - 2024.11.14
|
|
16
16
|
> pip install --upgrade qtmodel -i https://pypi.org/simple
|
|
17
|
-
-
|
|
17
|
+
- 扩展组合材料
|
|
18
18
|
## 项目管理
|
|
19
19
|
### update_bim
|
|
20
20
|
刷新Bim模型信息
|
|
@@ -218,12 +218,14 @@ mdb.update_response_spectrum_setting(do_analysis=True,kind=1,damping_ratio=0.05)
|
|
|
218
218
|
Returns: 无
|
|
219
219
|
## 节点操作
|
|
220
220
|
### add_node
|
|
221
|
-
|
|
221
|
+
根据坐标信息和节点编号添加节点
|
|
222
222
|
> 参数:
|
|
223
|
-
> node_data: [id,x,y,z] 或 [x,y,z]
|
|
223
|
+
> node_data: [id,x,y,z] 或 [x,y,z] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
224
224
|
> intersected: 是否交叉分割
|
|
225
225
|
> is_merged: 是否忽略位置重复节点
|
|
226
226
|
> merge_error: 合并容许误差
|
|
227
|
+
> numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
228
|
+
> start_id:自定义节点起始编号(用户定义号码时使用)
|
|
227
229
|
```Python
|
|
228
230
|
# 示例代码
|
|
229
231
|
from qtmodel import *
|
|
@@ -232,12 +234,14 @@ mdb.add_node(node_data=[1,1,2,3])
|
|
|
232
234
|
```
|
|
233
235
|
Returns: 无
|
|
234
236
|
### add_nodes
|
|
235
|
-
|
|
237
|
+
根据坐标信息和节点编号添加一组节点,可指定节点号,或不指定节点号
|
|
236
238
|
> 参数:
|
|
237
|
-
> node_data: [[id,x,y,z]...]
|
|
239
|
+
> node_data: [[id,x,y,z]...] 或[[x,y,z]...] 指定节点编号时不进行交叉分割、合并、编号等操作
|
|
238
240
|
> intersected: 是否交叉分割
|
|
239
241
|
> is_merged: 是否忽略位置重复节点
|
|
240
242
|
> merge_error: 合并容许误差
|
|
243
|
+
> numbering_type:编号方式 0-未使用的最小号码 1-最大号码加1 2-用户定义号码
|
|
244
|
+
> start_id:自定义节点起始编号(用户定义号码时使用)
|
|
241
245
|
```Python
|
|
242
246
|
# 示例代码
|
|
243
247
|
from qtmodel import *
|
|
@@ -457,7 +461,7 @@ Returns: 无
|
|
|
457
461
|
> 参数:
|
|
458
462
|
> index:材料编号,默认自动识别 (可选参数)
|
|
459
463
|
> name:材料名称
|
|
460
|
-
> mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义
|
|
464
|
+
> mat_type: 材料类型,1-混凝土 2-钢材 3-预应力 4-钢筋 5-自定义 6-组合材料
|
|
461
465
|
> standard:规范序号,参考UI 默认从1开始
|
|
462
466
|
> database:数据库名称
|
|
463
467
|
> construct_factor:构造系数
|
|
@@ -465,6 +469,7 @@ Returns: 无
|
|
|
465
469
|
> data_info:材料参数列表[弹性模量,容重,泊松比,热膨胀系数] (可选参数)
|
|
466
470
|
> creep_id:徐变材料id (可选参数)
|
|
467
471
|
> f_cuk: 立方体抗压强度标准值 (可选参数)
|
|
472
|
+
> composite_info: 主材名和辅材名 (仅组合材料需要)
|
|
468
473
|
```Python
|
|
469
474
|
# 示例代码
|
|
470
475
|
from qtmodel import *
|
|
@@ -2760,6 +2765,5 @@ odb.get_deviation_load(case_name="荷载工况1")
|
|
|
2760
2765
|
```
|
|
2761
2766
|
Returns: json字符串,包含信息为list[dict]
|
|
2762
2767
|
|
|
2763
|
-
Process finished with exit code 0
|
|
2764
2768
|
|
|
2765
2769
|
|
|
@@ -7,10 +7,10 @@ with open("README.md", "r", encoding="utf-8") as fh:
|
|
|
7
7
|
# twine upload dist/*
|
|
8
8
|
setup(
|
|
9
9
|
name="qtmodel",
|
|
10
|
-
version="0.5.
|
|
10
|
+
version="0.5.38",
|
|
11
11
|
author="dqy-zhj",
|
|
12
12
|
author_email="1105417715@qq.com",
|
|
13
|
-
description="python modeling for qt 24/11/
|
|
13
|
+
description="python modeling for qt 24/11/14 ",
|
|
14
14
|
long_description=long_description, # 使用读取的 README.md 文件内容
|
|
15
15
|
long_description_content_type="text/markdown", # 指明内容格式为markdown
|
|
16
16
|
url="https://github.com/Inface0443/pyqt",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|