ccxt 4.3.91__py2.py3-none-any.whl → 4.3.92__py2.py3-none-any.whl
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.
- ccxt/__init__.py +1 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/hyperliquid.py +2 -1
- ccxt/async_support/kucoin.py +11 -8
- ccxt/base/exchange.py +1 -1
- ccxt/hyperliquid.py +2 -1
- ccxt/kucoin.py +11 -8
- ccxt/pro/__init__.py +1 -1
- {ccxt-4.3.91.dist-info → ccxt-4.3.92.dist-info}/METADATA +4 -4
- {ccxt-4.3.91.dist-info → ccxt-4.3.92.dist-info}/RECORD +14 -14
- {ccxt-4.3.91.dist-info → ccxt-4.3.92.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.3.91.dist-info → ccxt-4.3.92.dist-info}/WHEEL +0 -0
- {ccxt-4.3.91.dist-info → ccxt-4.3.92.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/async_support/__init__.py
CHANGED
@@ -1694,9 +1694,10 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1694
1694
|
userAddress, params = self.handle_public_address('fetchOrder', params)
|
1695
1695
|
await self.load_markets()
|
1696
1696
|
market = self.safe_market(symbol)
|
1697
|
+
isClientOrderId = len(id) >= 34
|
1697
1698
|
request: dict = {
|
1698
1699
|
'type': 'orderStatus',
|
1699
|
-
'oid': self.parse_to_numeric(id),
|
1700
|
+
'oid': id if isClientOrderId else self.parse_to_numeric(id),
|
1700
1701
|
'user': userAddress,
|
1701
1702
|
}
|
1702
1703
|
response = await self.publicPostInfo(self.extend(request, params))
|
ccxt/async_support/kucoin.py
CHANGED
@@ -1222,7 +1222,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1222
1222
|
return result
|
1223
1223
|
|
1224
1224
|
async def load_migration_status(self, force: bool = False):
|
1225
|
-
if not ('hfMigrated' in self.options) or force:
|
1225
|
+
if not ('hfMigrated' in self.options) or (self.options['hfMigrated'] is None) or force:
|
1226
1226
|
result: dict = await self.privateGetMigrateUserAccountStatus()
|
1227
1227
|
data: dict = self.safe_dict(result, 'data', {})
|
1228
1228
|
status: Int = self.safe_integer(data, 'status')
|
@@ -1755,7 +1755,8 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1755
1755
|
# }
|
1756
1756
|
# }
|
1757
1757
|
#
|
1758
|
-
|
1758
|
+
data = self.safe_dict(response, 'data', {})
|
1759
|
+
return self.parse_ticker(data, market)
|
1759
1760
|
|
1760
1761
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
1761
1762
|
#
|
@@ -3464,8 +3465,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
3464
3465
|
# }
|
3465
3466
|
# }
|
3466
3467
|
#
|
3467
|
-
|
3468
|
-
|
3468
|
+
data = self.safe_dict(response, 'data', {})
|
3469
|
+
items = self.safe_list(data, 'items', [])
|
3470
|
+
return self.parse_transactions(items, currency, since, limit, {'type': 'deposit'})
|
3469
3471
|
|
3470
3472
|
async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
3471
3473
|
"""
|
@@ -3541,8 +3543,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
3541
3543
|
# }
|
3542
3544
|
# }
|
3543
3545
|
#
|
3544
|
-
|
3545
|
-
|
3546
|
+
data = self.safe_dict(response, 'data', {})
|
3547
|
+
items = self.safe_list(data, 'items', [])
|
3548
|
+
return self.parse_transactions(items, currency, since, limit, {'type': 'withdrawal'})
|
3546
3549
|
|
3547
3550
|
def parse_balance_helper(self, entry):
|
3548
3551
|
account = self.account()
|
@@ -4346,7 +4349,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
4346
4349
|
# }
|
4347
4350
|
#
|
4348
4351
|
data = self.safe_dict(response, 'data')
|
4349
|
-
rows = self.safe_list(data, 'items')
|
4352
|
+
rows = self.safe_list(data, 'items', [])
|
4350
4353
|
return self.parse_borrow_rate_histories(rows, codes, since, limit)
|
4351
4354
|
|
4352
4355
|
async def fetch_borrow_rate_history(self, code: str, since: Int = None, limit: Int = None, params={}):
|
@@ -4397,7 +4400,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
4397
4400
|
# }
|
4398
4401
|
#
|
4399
4402
|
data = self.safe_dict(response, 'data')
|
4400
|
-
rows = self.safe_list(data, 'items')
|
4403
|
+
rows = self.safe_list(data, 'items', [])
|
4401
4404
|
return self.parse_borrow_rate_history(rows, code, since, limit)
|
4402
4405
|
|
4403
4406
|
def parse_borrow_rate_histories(self, response, codes, since, limit):
|
ccxt/base/exchange.py
CHANGED
ccxt/hyperliquid.py
CHANGED
@@ -1693,9 +1693,10 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1693
1693
|
userAddress, params = self.handle_public_address('fetchOrder', params)
|
1694
1694
|
self.load_markets()
|
1695
1695
|
market = self.safe_market(symbol)
|
1696
|
+
isClientOrderId = len(id) >= 34
|
1696
1697
|
request: dict = {
|
1697
1698
|
'type': 'orderStatus',
|
1698
|
-
'oid': self.parse_to_numeric(id),
|
1699
|
+
'oid': id if isClientOrderId else self.parse_to_numeric(id),
|
1699
1700
|
'user': userAddress,
|
1700
1701
|
}
|
1701
1702
|
response = self.publicPostInfo(self.extend(request, params))
|
ccxt/kucoin.py
CHANGED
@@ -1221,7 +1221,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1221
1221
|
return result
|
1222
1222
|
|
1223
1223
|
def load_migration_status(self, force: bool = False):
|
1224
|
-
if not ('hfMigrated' in self.options) or force:
|
1224
|
+
if not ('hfMigrated' in self.options) or (self.options['hfMigrated'] is None) or force:
|
1225
1225
|
result: dict = self.privateGetMigrateUserAccountStatus()
|
1226
1226
|
data: dict = self.safe_dict(result, 'data', {})
|
1227
1227
|
status: Int = self.safe_integer(data, 'status')
|
@@ -1754,7 +1754,8 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1754
1754
|
# }
|
1755
1755
|
# }
|
1756
1756
|
#
|
1757
|
-
|
1757
|
+
data = self.safe_dict(response, 'data', {})
|
1758
|
+
return self.parse_ticker(data, market)
|
1758
1759
|
|
1759
1760
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
1760
1761
|
#
|
@@ -3463,8 +3464,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
3463
3464
|
# }
|
3464
3465
|
# }
|
3465
3466
|
#
|
3466
|
-
|
3467
|
-
|
3467
|
+
data = self.safe_dict(response, 'data', {})
|
3468
|
+
items = self.safe_list(data, 'items', [])
|
3469
|
+
return self.parse_transactions(items, currency, since, limit, {'type': 'deposit'})
|
3468
3470
|
|
3469
3471
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
3470
3472
|
"""
|
@@ -3540,8 +3542,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
3540
3542
|
# }
|
3541
3543
|
# }
|
3542
3544
|
#
|
3543
|
-
|
3544
|
-
|
3545
|
+
data = self.safe_dict(response, 'data', {})
|
3546
|
+
items = self.safe_list(data, 'items', [])
|
3547
|
+
return self.parse_transactions(items, currency, since, limit, {'type': 'withdrawal'})
|
3545
3548
|
|
3546
3549
|
def parse_balance_helper(self, entry):
|
3547
3550
|
account = self.account()
|
@@ -4345,7 +4348,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
4345
4348
|
# }
|
4346
4349
|
#
|
4347
4350
|
data = self.safe_dict(response, 'data')
|
4348
|
-
rows = self.safe_list(data, 'items')
|
4351
|
+
rows = self.safe_list(data, 'items', [])
|
4349
4352
|
return self.parse_borrow_rate_histories(rows, codes, since, limit)
|
4350
4353
|
|
4351
4354
|
def fetch_borrow_rate_history(self, code: str, since: Int = None, limit: Int = None, params={}):
|
@@ -4396,7 +4399,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
4396
4399
|
# }
|
4397
4400
|
#
|
4398
4401
|
data = self.safe_dict(response, 'data')
|
4399
|
-
rows = self.safe_list(data, 'items')
|
4402
|
+
rows = self.safe_list(data, 'items', [])
|
4400
4403
|
return self.parse_borrow_rate_history(rows, code, since, limit)
|
4401
4404
|
|
4402
4405
|
def parse_borrow_rate_histories(self, response, codes, since, limit):
|
ccxt/pro/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.92
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -272,13 +272,13 @@ console.log(version, Object.keys(exchanges));
|
|
272
272
|
|
273
273
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
274
274
|
|
275
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
276
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
275
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.92/dist/ccxt.browser.min.js
|
276
|
+
* unpkg: https://unpkg.com/ccxt@4.3.92/dist/ccxt.browser.min.js
|
277
277
|
|
278
278
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
279
279
|
|
280
280
|
```HTML
|
281
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
281
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.92/dist/ccxt.browser.min.js"></script>
|
282
282
|
```
|
283
283
|
|
284
284
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=P2-4GLGy5XA0txx_PStOjbp-TczfhXKBn4idfeDr_Ew,16681
|
2
2
|
ccxt/ace.py,sha256=3KFlbRm6N9hXsKUsgZbQCFPZT5WGLm4HOjR19Q3uPts,42419
|
3
3
|
ccxt/alpaca.py,sha256=nVQJ8vG4JrjEvMlu_nPoyR2lBq41j9Z2smPq95nDhng,47504
|
4
4
|
ccxt/ascendex.py,sha256=RCJrO6WUMycfZZsiok9DG3KWpHOeImbZcFNI-AX98k4,151336
|
@@ -66,13 +66,13 @@ ccxt/hollaex.py,sha256=2KIbenZ3vcBDN_rs2CxG5_foKLaYxJd73vVV7M8n_8E,76140
|
|
66
66
|
ccxt/htx.py,sha256=X4A5SVzO1wPzbxK5OHG_u67ewOqj-xtb5YIkl1tSG_c,427883
|
67
67
|
ccxt/huobi.py,sha256=4vaG7IRN7fyjaJ_ac6S-njlHOfSEN5de7aq0noznxYw,438
|
68
68
|
ccxt/huobijp.py,sha256=m9rYCCApGDtpbiqCK6Gw4GDd5EskEmho4xSemGbY1kY,89852
|
69
|
-
ccxt/hyperliquid.py,sha256=
|
69
|
+
ccxt/hyperliquid.py,sha256=nhbDQvrqQqusDw7lmdSVc3Emf96CB0tT-QSw3_aldYM,110769
|
70
70
|
ccxt/idex.py,sha256=P2jNsxiwIlMgrfPKbtmjLJQrzFcWp_TjgJaLq793oco,73255
|
71
71
|
ccxt/independentreserve.py,sha256=ChkSnahGsn0aN_cfaAonSk-V2Aa1UB-0cPTa1d3AdI4,37713
|
72
72
|
ccxt/indodax.py,sha256=VdTGxm49I6s-DhT0H1NLFVJ1XYaDWpq51jP2tyK68Ks,54580
|
73
73
|
ccxt/kraken.py,sha256=DMy-Lncp9zYsid59O7cn3OLlCIT4Nf1BQa_kqM5dSJM,133417
|
74
74
|
ccxt/krakenfutures.py,sha256=_-bbgzshifKnbyOB1pSs_bRfRepkRAdiDlsLDRiAw9w,119597
|
75
|
-
ccxt/kucoin.py,sha256=
|
75
|
+
ccxt/kucoin.py,sha256=93zdALN3NE1xQ-QV9bcLqMXYprBnsphwNI-qhOjBjp4,228129
|
76
76
|
ccxt/kucoinfutures.py,sha256=KNh4biqkvaVzgQ2DGUTnNf5853iwF628jKWk3rdOcB4,125860
|
77
77
|
ccxt/kuna.py,sha256=GnIMk8R_IL84FTUHDNP6jHxd2FKNX9YwfoCXoYG83uA,96157
|
78
78
|
ccxt/latoken.py,sha256=wBhaMcTEsB316nFCxm_WbLRZ_G2Q0Vi1FK-850Q07D0,79516
|
@@ -220,7 +220,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
|
|
220
220
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
221
221
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
222
222
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
223
|
-
ccxt/async_support/__init__.py,sha256=
|
223
|
+
ccxt/async_support/__init__.py,sha256=MIa83arWgbNAeH2GvibM05_KtoiUKArfy-pgnNxcTkA,16504
|
224
224
|
ccxt/async_support/ace.py,sha256=ucCkKaWRkILAIK9g4iEi1Q_-zmn0V89-rX8Al4WdK8s,42643
|
225
225
|
ccxt/async_support/alpaca.py,sha256=HxonsP_MzbE7Z9r6hZ1rgmf_jPcP4H7H3z1YQgCv4qc,47716
|
226
226
|
ccxt/async_support/ascendex.py,sha256=PIgHokT4gFPEUaoi_ze2T0qgu6vEs8SytRG9ocM3r7M,152124
|
@@ -288,13 +288,13 @@ ccxt/async_support/hollaex.py,sha256=msUnnbWLNeCxFW77BnfLoFWBdvQIDwV7Rtbi9TA4TYY
|
|
288
288
|
ccxt/async_support/htx.py,sha256=pPdetpi1Y2bHxNIXrFO9VDgMOra0v8Y2hggVbe2Qzdk,430275
|
289
289
|
ccxt/async_support/huobi.py,sha256=fup0j6wQ1khAtfbb1H4CSyJAOzhxuoHMmrM6sgTuhr8,452
|
290
290
|
ccxt/async_support/huobijp.py,sha256=OeEHn0GXQ56YGeUM21zwRqsEm8d2LD_SDspBsQMlds4,90352
|
291
|
-
ccxt/async_support/hyperliquid.py,sha256=
|
291
|
+
ccxt/async_support/hyperliquid.py,sha256=UFj6FUYKTlYRW1ThSzLp02HXhX1Mod1Y_XQXOo9y-Mg,111325
|
292
292
|
ccxt/async_support/idex.py,sha256=UcAvdMc2CP_6E8lET4rmQiIP-RaUfZHSo6pQeA17v-g,73731
|
293
293
|
ccxt/async_support/independentreserve.py,sha256=fCTAQ1U74KOZHIoYbDxzEly1xSgykcYcdpeiJiCEXkU,37991
|
294
294
|
ccxt/async_support/indodax.py,sha256=S4qV7w3gMTRLnzahoCKR70oeRlpxOV3mXDdJw8XpIo8,54888
|
295
295
|
ccxt/async_support/kraken.py,sha256=aDndekk6rCIyASRAjJNg1oNzxcProwA1ezZ7ftKLOY8,134067
|
296
296
|
ccxt/async_support/krakenfutures.py,sha256=stPhBne9pFVlgFkw4mwqtaaI6NTZCAcmOIFVlQSbl8I,120085
|
297
|
-
ccxt/async_support/kucoin.py,sha256=
|
297
|
+
ccxt/async_support/kucoin.py,sha256=vpygCpD5m5-mRuGEwE2mBWuBDCraeBHUHVTo64g1XE4,229314
|
298
298
|
ccxt/async_support/kucoinfutures.py,sha256=a2oRhfH61LsSnhSlhwSJM7yRUUsegkmQenOa_nPwHuA,126516
|
299
299
|
ccxt/async_support/kuna.py,sha256=QtzLgqgv8mLXECN2drWNVtdvm_vy-bawdxKvozDzbVE,96573
|
300
300
|
ccxt/async_support/latoken.py,sha256=9BUu8akWtbBtAzVr_c_cYLkiLQqcJdSdkJbHmuLee-Y,79992
|
@@ -332,7 +332,7 @@ ccxt/async_support/yobit.py,sha256=GQhvYrsGHQrVdTrNHQxx9isEGqUABexlllzao9HL3f8,5
|
|
332
332
|
ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
|
333
333
|
ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
|
334
334
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
335
|
-
ccxt/async_support/base/exchange.py,sha256=
|
335
|
+
ccxt/async_support/base/exchange.py,sha256=QipUhG1vzEbRFubZfis7eliKO7iQAA_El-5H2xE6FCw,110810
|
336
336
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
337
337
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
338
338
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
|
@@ -346,10 +346,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
|
|
346
346
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
347
347
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
348
348
|
ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
|
349
|
-
ccxt/base/exchange.py,sha256=
|
349
|
+
ccxt/base/exchange.py,sha256=PmJEfEYTehAeq0e4mSXL4vazSbGMSuT0JqVAMoELmGs,296075
|
350
350
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
351
351
|
ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
|
352
|
-
ccxt/pro/__init__.py,sha256=
|
352
|
+
ccxt/pro/__init__.py,sha256=OZXP810CknOtgr5sTmdNQd3Row6hy5p9ArgEb5UibkE,7710
|
353
353
|
ccxt/pro/alpaca.py,sha256=xh1yg1Ok-Zh_Mfx-MBjNrfJDs6MUU0exFfEj3GuQPC4,27631
|
354
354
|
ccxt/pro/ascendex.py,sha256=QueLgISoIxgGSOta2W7En4pwAsEXbTP5q5ef4UjpTQQ,37524
|
355
355
|
ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
|
@@ -652,8 +652,8 @@ ccxt/test/tests_async.py,sha256=yVoLZLPkB-_ay0ab_oCyYOSwkLQkLXkPFj5jHTE3esw,8442
|
|
652
652
|
ccxt/test/tests_helpers.py,sha256=xhOILoZ_x3RSfQjtKt6AQlkp9DkOtpTQe8GAUUZoM6s,10069
|
653
653
|
ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
|
654
654
|
ccxt/test/tests_sync.py,sha256=uu0QsWOuEpkmtV12nIffsiZZFUpM-f1k6W9nlgCDqXs,83485
|
655
|
-
ccxt-4.3.
|
656
|
-
ccxt-4.3.
|
657
|
-
ccxt-4.3.
|
658
|
-
ccxt-4.3.
|
659
|
-
ccxt-4.3.
|
655
|
+
ccxt-4.3.92.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
656
|
+
ccxt-4.3.92.dist-info/METADATA,sha256=5gK1R-EPm2VXF8T_phjBH8gJlUAOZbb9KW_o-iHBzZA,118342
|
657
|
+
ccxt-4.3.92.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
|
658
|
+
ccxt-4.3.92.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
659
|
+
ccxt-4.3.92.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|