Skip to content

Commit 46f80d0

Browse files
committed
SuperMap.ThemeStyle 参数 strokeDashstyle 类型 dashot 更改为 dashdot`
开放一些类的api
1 parent 26013a0 commit 46f80d0

31 files changed

+78
-84
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646

4747
- `L.supermap.ThemeLayer` 类新增 `toFeature` 接口
4848

49+
- `SuperMap.ThemeStyle` 参数 `strokeDashstyle` 类型 `dashot` 更改为 `dashdot`
50+
4951
### for OpenLayers
5052

5153
- `ol.supermap.WebMap` 新增支持加载 "MapEditor" , "DataInsights" , "ISERVER" 格式 json 数据
@@ -82,6 +84,8 @@
8284

8385
- `ol.source.Graphic` 类新增 `isHighLight` 参数,支持高亮响应事件
8486

87+
- `SuperMap.ThemeStyle` 参数 `strokeDashstyle` 类型 `dashot` 更改为 `dashdot`
88+
8589
### for MapboxGL
8690

8791
- 废弃 `SuperMap.ElasticSearch``options.change` 参数,直接使用 `SuperMap.ElasticSearch.msearch` `SuperMap.ElasticSearch.msearch``callback` 参数
@@ -115,6 +119,8 @@
115119

116120
- 废弃 `mapboxgl.supermap.ThemeLayer` 类的 `toiClientFeature` 接口,改用 `toFeature`接口
117121

122+
- `SuperMap.ThemeStyle` 参数 `strokeDashstyle` 类型 `dashot` 更改为 `dashdot`
123+
118124
### Classic
119125

120126
- 废弃 `SuperMap.ElasticSearch``options.change` 参数,直接使用 `SuperMap.ElasticSearch.msearch` `SuperMap.ElasticSearch.msearch``callback` 参数

dist/iclient-classic.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4059,7 +4059,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
40594059
/**
40604060
* @class MapVRenderer
40614061
* @classdesc MapV渲染器。
4062-
* @private
40634062
* @extends mapv.MapVBaseLayer
40644063
* @param map - {SuperMap.Map} 待渲染的地图
40654064
* @param layer - {mapv.baiduMapLayer} 待渲染的图层
@@ -4098,6 +4097,7 @@ var MapVRenderer = exports.MapVRenderer = function (_MapVBaseLayer) {
40984097
/**
40994098
* @function MapvRenderer.prototype.clickEvent
41004099
* @description 点击事件
4100+
* @private
41014101
* @param e - {Object} 触发对象
41024102
*/
41034103

@@ -4112,6 +4112,7 @@ var MapVRenderer = exports.MapVRenderer = function (_MapVBaseLayer) {
41124112
/**
41134113
* @function MapvRenderer.prototype.mousemoveEvent
41144114
* @description 鼠标移动事件
4115+
*
41154116
* @param e - {Object} 触发对象
41164117
*/
41174118

dist/iclient9-leaflet.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15122,7 +15122,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
1512215122
* @function L.supermap.GeoFeatureThemeLayer
1512315123
* @classdesc 地理几何专题要素型专题图层基类。此类型专题图的专题要素形状就是由 feature.geometry 决定。此类不建议直接实例化调用。
1512415124
* @category Visualization Theme
15125-
* @private
1512615125
* @extends L.supermap.ThemeLayer
1512715126
* @category Visualization Graphic
1512815127
* @param name - {string} 专题图名
@@ -15750,7 +15749,7 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1575015749
if (style.brushType == 'fill' || style.brushType == 'both' || typeof style.brushType == 'undefined') {
1575115750
// 默认为fill
1575215751
ctx.beginPath();
15753-
if (style.lineType == 'dashed' || style.lineType == 'dotted' || style.lineType == 'dot' || style.lineType == 'dash' || style.lineType == 'dashot' || style.lineType == 'longdash' || style.lineType == 'longdashdot') {
15752+
if (style.lineType == 'dashed' || style.lineType == 'dotted' || style.lineType == 'dot' || style.lineType == 'dash' || style.lineType == 'dashdot' || style.lineType == 'longdash' || style.lineType == 'longdashdot') {
1575415753
// 特殊处理,虚线围不成path,实线再build一次
1575515754
this.buildPath(ctx, {
1575615755
lineType: 'solid',
@@ -15797,7 +15796,7 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1579715796
if (hpStyle.brushType == 'fill' || hpStyle.brushType == 'both' || typeof hpStyle.brushType == 'undefined') {
1579815797
// 默认为fill
1579915798
ctx.beginPath();
15800-
if (hpStyle.lineType == 'dashed' || hpStyle.lineType == 'dotted' || hpStyle.lineType == 'dot' || hpStyle.lineType == 'dash' || hpStyle.lineType == 'dashot' || hpStyle.lineType == 'longdash' || hpStyle.lineType == 'longdashdot') {
15799+
if (hpStyle.lineType == 'dashed' || hpStyle.lineType == 'dotted' || hpStyle.lineType == 'dot' || hpStyle.lineType == 'dash' || hpStyle.lineType == 'dashdot' || hpStyle.lineType == 'longdash' || hpStyle.lineType == 'longdashdot') {
1580115800
// 特殊处理,虚线围不成path,实线再build一次
1580215801
this.buildPath(ctx, {
1580315802
lineType: 'solid',
@@ -15953,7 +15952,7 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1595315952
_SUtil.SUtil.SUtil_dashedLineTo(ctx, pointList[_i2 - 1][0] + __OP[0], pointList[_i2 - 1][1] + __OP[1], pointList[_i2][0] + __OP[0], pointList[_i2][1] + __OP[1], dashLength, [pattern1, pattern2]);
1595415953
}
1595515954
_SUtil.SUtil.SUtil_dashedLineTo(ctx, pointList[pointList.length - 1][0] + __OP[0], pointList[pointList.length - 1][1] + __OP[1], pointList[0][0] + __OP[0], pointList[0][1] + __OP[1], dashLength, [pattern1, pattern2]);
15956-
} else if (style.lineType === 'dashot' || style.lineType === 'longdashdot') {
15955+
} else if (style.lineType === 'dashdot' || style.lineType === 'longdashdot') {
1595715956
var _dashLengthForStyle = style._dashLength || (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1);
1595815957
style._dashLength = _dashLengthForStyle;
1595915958

@@ -15963,8 +15962,8 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1596315962
var pattern3 = _dashLength;
1596415963
var pattern4 = _dashLength;
1596515964

15966-
//dashot
15967-
if (style.lineType === 'dashot') {
15965+
//dashdot
15966+
if (style.lineType === 'dashdot') {
1596815967
_pattern *= 4;
1596915968
_pattern2 *= 4;
1597015969
pattern4 *= 4;
@@ -19415,7 +19414,7 @@ var Vector = exports.Vector = function (_Feature) {
1941519414
* * strokeOpacity - {number} 描边的不透明度(0-1),默认为0.4。
1941619415
* * strokeWidth - {number} 像素描边宽度,默认为1。
1941719416
* * strokeLinecap - {string} strokeLinecap有三种类型butt,round,square,默认为"round"。
19418-
* * strokeDashstyle - {string} 有dot,dash,dashot,longdash,longdashdot,solid几种样式,默认为"solid"。
19417+
* * strokeDashstyle - {string} 有dot,dash,dashdot,longdash,longdashdot,solid几种样式,默认为"solid"。
1941919418
* * graphic - {Boolean} 不需要则设置为false。
1942019419
* * pointRadius - {number} 像素点半径,默认为6
1942119420
* * pointerEvents - {string} 默认为"visiblePainted"。
@@ -21143,7 +21142,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
2114321142
* @class L.supermap.ThemeLayer
2114421143
* @classdesc 专题图层基类,调用建议使用其子类实现类。
2114521144
* @category Visualization Theme
21146-
* @private
2114721145
* @extends L.Layer{@linkdoc-leaflet/#layer}
2114821146
* @param name - {string} 专题图图层名称
2114921147
* @param options -{Object} 可选参数,如:</br>
@@ -23317,15 +23315,15 @@ var SmicBrokenLine = exports.SmicBrokenLine = function (_Shape) {
2331723315
for (var i = 1; i < len; i++) {
2331823316
_SUtil.SUtil.SUtil_dashedLineTo(ctx, pointList[i - 1][0] + __OP[0], pointList[i - 1][1] + __OP[1], pointList[i][0] + __OP[0], pointList[i][1] + __OP[1], dashLength, [pattern1, pattern2]);
2331923317
}
23320-
} else if (style.lineType === 'dashot' || style.lineType === 'longdashdot') {
23318+
} else if (style.lineType === 'dashdot' || style.lineType === 'longdashdot') {
2332123319
var _dashLength = style.lineWidth || 1;
2332223320
var _pattern = _dashLength;
2332323321
var _pattern2 = _dashLength;
2332423322
var pattern3 = _dashLength;
2332523323
var pattern4 = _dashLength;
2332623324

23327-
//dashot
23328-
if (style.lineType === 'dashot') {
23325+
//dashdot
23326+
if (style.lineType === 'dashdot') {
2332923327
_pattern *= 4;
2333023328
_pattern2 *= 4;
2333123329
pattern4 *= 4;
@@ -76997,7 +76995,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
7699776995
* strokeWidth - {number} 线宽度/描边宽度,默认值 1。<br>
7699876996
* strokeLinecap - {string} 线帽样式。strokeLinecap 有三种类型 “butt", "round", "square"; 默认为"butt"。<br>
7699976997
* strokeLineJoin - {string} 线段连接样式。strokeLineJoin 有三种类型 “miter", "round", "bevel"; 默认为"miter"。<br>
77000-
* strokeDashstyle - {string} 虚线类型。strokeDashstyle 有八种类型 “dot",“dash",“dashot",“longdash",“longdashdot",“solid", "dashed", "dotted"。默认值 "solid"。solid 表示实线。<br>
76998+
* strokeDashstyle - {string} 虚线类型。strokeDashstyle 有八种类型 “dot",“dash",“dashdot",“longdash",“longdashdot",“solid", "dashed", "dotted"。默认值 "solid"。solid 表示实线。<br>
7700176999
* pointRadius - {number} 点半径,默认为 6 (像素)。<br>
7700277000
* shadowBlur - {number} 阴影模糊度,(大于 0 有效; 默认值 0)。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。<br>
7700377001
* shadowColor - {string} 阴影颜色; 默认值 '#000000'。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。<br>
@@ -77069,7 +77067,7 @@ var ThemeStyle = exports.ThemeStyle = function ThemeStyle(options) {
7706977067
this.strokeLineJoin = "miter";
7707077068
/**
7707177069
* @member SuperMap.ThemeStyle.prototype.strokeDashstyle -{string}
77072-
* @description 虚线类型; strokeDashstyle 有八种类型 “dot",“dash",“dashot",“longdash",“longdashdot",“solid", "dashed", "dotted";
77070+
* @description 虚线类型; strokeDashstyle 有八种类型 “dot",“dash",“dashdot",“longdash",“longdashdot",“solid", "dashed", "dotted";
7707377071
* 默认值 "solid"。solid 表示实线。
7707477072
*/
7707577073
this.strokeDashstyle = "solid";
@@ -86589,7 +86587,6 @@ var _Util = __webpack_require__(1);
8658986587
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8659086588

8659186589
/**
86592-
* @private
8659386590
* @class SuperMap.ServerFeature
8659486591
* @category iServer
8659586592
* @classdesc 服务端矢量要素类。该类描述了服务端返回的矢量要素的相关信息,包括字段和几何信息。

dist/iclient9-leaflet.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-mapboxgl.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-mapboxgl.js

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14784,7 +14784,6 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
1478414784
/**
1478514785
* @class mapboxgl.supermap.GeoFeatureThemeLayer
1478614786
* @classdesc 地理几何专题要素型专题图层。
14787-
* @private
1478814787
* @param name - {string} 图层名
1478914788
* @param opt_options - {Object} 参数,如:<br>
1479014789
* id - {string} 专题图层ID。</br>
@@ -15408,7 +15407,7 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1540815407
if (style.brushType == 'fill' || style.brushType == 'both' || typeof style.brushType == 'undefined') {
1540915408
// 默认为fill
1541015409
ctx.beginPath();
15411-
if (style.lineType == 'dashed' || style.lineType == 'dotted' || style.lineType == 'dot' || style.lineType == 'dash' || style.lineType == 'dashot' || style.lineType == 'longdash' || style.lineType == 'longdashdot') {
15410+
if (style.lineType == 'dashed' || style.lineType == 'dotted' || style.lineType == 'dot' || style.lineType == 'dash' || style.lineType == 'dashdot' || style.lineType == 'longdash' || style.lineType == 'longdashdot') {
1541215411
// 特殊处理,虚线围不成path,实线再build一次
1541315412
this.buildPath(ctx, {
1541415413
lineType: 'solid',
@@ -15455,7 +15454,7 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1545515454
if (hpStyle.brushType == 'fill' || hpStyle.brushType == 'both' || typeof hpStyle.brushType == 'undefined') {
1545615455
// 默认为fill
1545715456
ctx.beginPath();
15458-
if (hpStyle.lineType == 'dashed' || hpStyle.lineType == 'dotted' || hpStyle.lineType == 'dot' || hpStyle.lineType == 'dash' || hpStyle.lineType == 'dashot' || hpStyle.lineType == 'longdash' || hpStyle.lineType == 'longdashdot') {
15457+
if (hpStyle.lineType == 'dashed' || hpStyle.lineType == 'dotted' || hpStyle.lineType == 'dot' || hpStyle.lineType == 'dash' || hpStyle.lineType == 'dashdot' || hpStyle.lineType == 'longdash' || hpStyle.lineType == 'longdashdot') {
1545915458
// 特殊处理,虚线围不成path,实线再build一次
1546015459
this.buildPath(ctx, {
1546115460
lineType: 'solid',
@@ -15611,7 +15610,7 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1561115610
_SUtil.SUtil.SUtil_dashedLineTo(ctx, pointList[_i2 - 1][0] + __OP[0], pointList[_i2 - 1][1] + __OP[1], pointList[_i2][0] + __OP[0], pointList[_i2][1] + __OP[1], dashLength, [pattern1, pattern2]);
1561215611
}
1561315612
_SUtil.SUtil.SUtil_dashedLineTo(ctx, pointList[pointList.length - 1][0] + __OP[0], pointList[pointList.length - 1][1] + __OP[1], pointList[0][0] + __OP[0], pointList[0][1] + __OP[1], dashLength, [pattern1, pattern2]);
15614-
} else if (style.lineType === 'dashot' || style.lineType === 'longdashdot') {
15613+
} else if (style.lineType === 'dashdot' || style.lineType === 'longdashdot') {
1561515614
var _dashLengthForStyle = style._dashLength || (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1);
1561615615
style._dashLength = _dashLengthForStyle;
1561715616

@@ -15621,8 +15620,8 @@ var SmicPolygon = exports.SmicPolygon = function (_Shape) {
1562115620
var pattern3 = _dashLength;
1562215621
var pattern4 = _dashLength;
1562315622

15624-
//dashot
15625-
if (style.lineType === 'dashot') {
15623+
//dashdot
15624+
if (style.lineType === 'dashdot') {
1562615625
_pattern *= 4;
1562715626
_pattern2 *= 4;
1562815627
pattern4 *= 4;
@@ -19073,7 +19072,7 @@ var Vector = exports.Vector = function (_Feature) {
1907319072
* * strokeOpacity - {number} 描边的不透明度(0-1),默认为0.4。
1907419073
* * strokeWidth - {number} 像素描边宽度,默认为1。
1907519074
* * strokeLinecap - {string} strokeLinecap有三种类型butt,round,square,默认为"round"。
19076-
* * strokeDashstyle - {string} 有dot,dash,dashot,longdash,longdashdot,solid几种样式,默认为"solid"。
19075+
* * strokeDashstyle - {string} 有dot,dash,dashdot,longdash,longdashdot,solid几种样式,默认为"solid"。
1907719076
* * graphic - {Boolean} 不需要则设置为false。
1907819077
* * pointRadius - {number} 像素点半径,默认为6
1907919078
* * pointerEvents - {string} 默认为"visiblePainted"。
@@ -20589,7 +20588,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
2058920588
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2059020589

2059120590
/**
20592-
* @private
2059320591
* @class mapboxgl.supermap.ThemeLayer
2059420592
* @classdesc 专题图基类。
2059520593
* @param name - {string} 专题图图层名。
@@ -22009,15 +22007,15 @@ var SmicBrokenLine = exports.SmicBrokenLine = function (_Shape) {
2200922007
for (var i = 1; i < len; i++) {
2201022008
_SUtil.SUtil.SUtil_dashedLineTo(ctx, pointList[i - 1][0] + __OP[0], pointList[i - 1][1] + __OP[1], pointList[i][0] + __OP[0], pointList[i][1] + __OP[1], dashLength, [pattern1, pattern2]);
2201122009
}
22012-
} else if (style.lineType === 'dashot' || style.lineType === 'longdashdot') {
22010+
} else if (style.lineType === 'dashdot' || style.lineType === 'longdashdot') {
2201322011
var _dashLength = style.lineWidth || 1;
2201422012
var _pattern = _dashLength;
2201522013
var _pattern2 = _dashLength;
2201622014
var pattern3 = _dashLength;
2201722015
var pattern4 = _dashLength;
2201822016

22019-
//dashot
22020-
if (style.lineType === 'dashot') {
22017+
//dashdot
22018+
if (style.lineType === 'dashdot') {
2202122019
_pattern *= 4;
2202222020
_pattern2 *= 4;
2202322021
pattern4 *= 4;
@@ -58761,7 +58759,6 @@ var RankSymbol = exports.RankSymbol = function (_Graph) {
5876158759
}
5876258760

5876358761
/**
58764-
* @private
5876558762
* @function mapboxgl.supermap.RankSymbolThemeLayer.prototype.createThematicFeature
5876658763
* @description 创建专题图形要素
5876758764
* @param feature -{Object} 要创建的专题图形要素
@@ -58856,7 +58853,6 @@ var Range = exports.Range = function (_GeoFeature) {
5885658853
}
5885758854

5885858855
/**
58859-
* @private
5886058856
* @function mapboxgl.supermap.RangeThemeLayer.prototype.createThematicFeature
5886158857
* @description 创建专题图要素
5886258858
* @param feature -{Object} 要创建的专题图形要素
@@ -59474,7 +59470,6 @@ var Label = exports.Label = function (_GeoFeature) {
5947459470
}
5947559471

5947659472
/**
59477-
* @private
5947859473
* @function mapboxgl.supermap.LabelThemeLayer.prototype.redrawThematicFeatures
5947959474
* @description 重绘所有专题要素。
5948059475
* 此方法包含绘制专题要素的所有步骤,包含用户数据到专题要素的转换,抽稀,缓存等步骤。
@@ -59498,7 +59493,6 @@ var Label = exports.Label = function (_GeoFeature) {
5949859493
}
5949959494

5950059495
/**
59501-
* @private
5950259496
* @function mapboxgl.supermap.LabelThemeLayer.prototype.createThematicFeature
5950359497
* @description 创建专题图要素
5950459498
* @param feature - {Object} 要创建的专题图形要素
@@ -64873,7 +64867,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
6487364867
* strokeWidth - {number} 线宽度/描边宽度,默认值 1。<br>
6487464868
* strokeLinecap - {string} 线帽样式。strokeLinecap 有三种类型 “butt", "round", "square"; 默认为"butt"。<br>
6487564869
* strokeLineJoin - {string} 线段连接样式。strokeLineJoin 有三种类型 “miter", "round", "bevel"; 默认为"miter"。<br>
64876-
* strokeDashstyle - {string} 虚线类型。strokeDashstyle 有八种类型 “dot",“dash",“dashot",“longdash",“longdashdot",“solid", "dashed", "dotted"。默认值 "solid"。solid 表示实线。<br>
64870+
* strokeDashstyle - {string} 虚线类型。strokeDashstyle 有八种类型 “dot",“dash",“dashdot",“longdash",“longdashdot",“solid", "dashed", "dotted"。默认值 "solid"。solid 表示实线。<br>
6487764871
* pointRadius - {number} 点半径,默认为 6 (像素)。<br>
6487864872
* shadowBlur - {number} 阴影模糊度,(大于 0 有效; 默认值 0)。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。<br>
6487964873
* shadowColor - {string} 阴影颜色; 默认值 '#000000'。注:请将 shadowColor 属性与 shadowBlur 属性一起使用,来创建阴影。<br>
@@ -64945,7 +64939,7 @@ var ThemeStyle = exports.ThemeStyle = function ThemeStyle(options) {
6494564939
this.strokeLineJoin = "miter";
6494664940
/**
6494764941
* @member SuperMap.ThemeStyle.prototype.strokeDashstyle -{string}
64948-
* @description 虚线类型; strokeDashstyle 有八种类型 “dot",“dash",“dashot",“longdash",“longdashdot",“solid", "dashed", "dotted";
64942+
* @description 虚线类型; strokeDashstyle 有八种类型 “dot",“dash",“dashdot",“longdash",“longdashdot",“solid", "dashed", "dotted";
6494964943
* 默认值 "solid"。solid 表示实线。
6495064944
*/
6495164945
this.strokeDashstyle = "solid";
@@ -74465,7 +74459,6 @@ var _Util = __webpack_require__(1);
7446574459
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7446674460

7446774461
/**
74468-
* @private
7446974462
* @class SuperMap.ServerFeature
7447074463
* @category iServer
7447174464
* @classdesc 服务端矢量要素类。该类描述了服务端返回的矢量要素的相关信息,包括字段和几何信息。

dist/iclient9-mapboxgl.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/iclient9-openlayers.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy