copyparty 1.19.0__tar.gz → 1.19.1__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.
- {copyparty-1.19.0 → copyparty-1.19.1}/PKG-INFO +1 -1
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/__main__.py +8 -3
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/__version__.py +2 -2
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/httpcli.py +11 -7
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/mdns.py +2 -1
- copyparty-1.19.1/copyparty/web/browser.css.gz +0 -0
- copyparty-1.19.1/copyparty/web/browser.js.gz +0 -0
- copyparty-1.19.1/copyparty/web/splash.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty.egg-info/PKG-INFO +1 -1
- copyparty-1.19.0/copyparty/web/browser.css.gz +0 -0
- copyparty-1.19.0/copyparty/web/browser.js.gz +0 -0
- copyparty-1.19.0/copyparty/web/splash.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/LICENSE +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/README.md +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/authsrv.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/bos/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/bos/bos.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/bos/path.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/broker_mp.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/broker_mpw.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/broker_thr.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/broker_util.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/cert.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/cfg.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/dxml.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/fsutil.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/ftpd.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/httpconn.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/httpsrv.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/ico.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/metrics.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/mtag.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/multicast.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/pwhash.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/res/COPYING.txt +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/res/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/res/insecure.pem +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/smbd.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/ssdp.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/star.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/bimap.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/bit.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/buffer.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/dns.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/label.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/lex.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/dnslib/ranges.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/ifaddr/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/ifaddr/_posix.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/ifaddr/_shared.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/ifaddr/_win32.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/qrcodegen.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/stolen/surrogateescape.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/sutil.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/svchub.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/szip.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/tcpsrv.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/tftpd.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/th_cli.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/th_srv.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/u2idx.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/up2k.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/util.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/a/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/a/partyfuse.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/a/u2c.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/a/webdav-cfg.bat +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/baguettebox.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/browser.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/browser2.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/cf.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/dbg-audio.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/__init__.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/busy.mp3.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/easymde.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/easymde.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/fuse.py +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/marked.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/mini-fa.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/mini-fa.woff +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/prism.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/prism.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/prismd.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/scp.woff2 +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/sha512.ac.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/deps/sha512.hw.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/idp.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/md.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/md.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/md.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/md2.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/md2.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/mde.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/mde.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/mde.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/msg.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/msg.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/rups.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/rups.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/rups.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/shares.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/shares.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/shares.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/splash.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/splash.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/svcs.html +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/svcs.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/ui.css.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/up2k.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/util.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty/web/w.hash.js.gz +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty.egg-info/SOURCES.txt +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty.egg-info/dependency_links.txt +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty.egg-info/entry_points.txt +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty.egg-info/requires.txt +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/copyparty.egg-info/top_level.txt +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/pyproject.toml +0 -0
- {copyparty-1.19.0 → copyparty-1.19.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.19.
|
3
|
+
Version: 1.19.1
|
4
4
|
Summary: Portable file server with accelerated resumable uploads, deduplication, WebDAV, FTP, zeroconf, media indexer, video thumbnails, audio transcoding, and write-only folders
|
5
5
|
Author-email: ed <copyparty@ocv.me>
|
6
6
|
License: MIT
|
@@ -1193,6 +1193,7 @@ def add_zc_mdns(ap):
|
|
1193
1193
|
ap2.add_argument("--zm-lh", metavar="PATH", type=u, default="", help="link a specific folder for http shares")
|
1194
1194
|
ap2.add_argument("--zm-lf", metavar="PATH", type=u, default="", help="link a specific folder for ftp shares")
|
1195
1195
|
ap2.add_argument("--zm-ls", metavar="PATH", type=u, default="", help="link a specific folder for smb shares")
|
1196
|
+
ap2.add_argument("--zm-fqdn", metavar="FQDN", type=u, default="--name.local", help="the domain to announce; NOTE: using anything other than .local is nonstandard and could cause problems")
|
1196
1197
|
ap2.add_argument("--zm-mnic", action="store_true", help="merge NICs which share subnets; assume that same subnet means same network")
|
1197
1198
|
ap2.add_argument("--zm-msub", action="store_true", help="merge subnets on each NIC -- always enabled for ipv6 -- reduces network load, but gnome-gvfs clients may stop working, and clients cannot be in subnets that the server is not")
|
1198
1199
|
ap2.add_argument("--zm-noneg", action="store_true", help="disable NSEC replies -- try this if some clients don't see copyparty")
|
@@ -1382,7 +1383,7 @@ def add_shutdown(ap):
|
|
1382
1383
|
def add_logging(ap):
|
1383
1384
|
ap2 = ap.add_argument_group("logging options")
|
1384
1385
|
ap2.add_argument("-q", action="store_true", help="quiet; disable most STDOUT messages")
|
1385
|
-
ap2.add_argument("-lo", metavar="PATH", type=u, default="", help="logfile
|
1386
|
+
ap2.add_argument("-lo", metavar="PATH", type=u, default="", help="logfile; use .txt for plaintext or .xz for compressed. Example: \033[32mcpp-%%Y-%%m%%d-%%H%%M%%S.txt.xz\033[0m (NB: some errors may appear on STDOUT only)")
|
1386
1387
|
ap2.add_argument("--no-ansi", action="store_true", default=not VT100, help="disable colors; same as environment-variable NO_COLOR")
|
1387
1388
|
ap2.add_argument("--ansi", action="store_true", help="force colors; overrides environment-variable NO_COLOR")
|
1388
1389
|
ap2.add_argument("--no-logflush", action="store_true", help="don't flush the logfile after each write; tiny bit faster")
|
@@ -1485,8 +1486,8 @@ def add_db_general(ap, hcores):
|
|
1485
1486
|
ap2.add_argument("-e2vp", action="store_true", help="on hash mismatch: panic and quit copyparty")
|
1486
1487
|
ap2.add_argument("--hist", metavar="PATH", type=u, default="", help="where to store volume data (db, thumbs); default is a folder named \".hist\" inside each volume (volflag=hist)")
|
1487
1488
|
ap2.add_argument("--dbpath", metavar="PATH", type=u, default="", help="override where the volume databases are to be placed; default is the same as \033[33m--hist\033[0m (volflag=dbpath)")
|
1488
|
-
ap2.add_argument("--no-hash", metavar="PTN", type=u, default="", help="regex: disable hashing of matching absolute-filesystem-paths during e2ds folder scans (volflag=nohash)")
|
1489
|
-
ap2.add_argument("--no-idx", metavar="PTN", type=u, default=noidx, help="regex: disable indexing of matching absolute-filesystem-paths during e2ds folder
|
1489
|
+
ap2.add_argument("--no-hash", metavar="PTN", type=u, default="", help="regex: disable hashing of matching absolute-filesystem-paths during e2ds folder scans (must be specified as one big regex, not multiple times) (volflag=nohash)")
|
1490
|
+
ap2.add_argument("--no-idx", metavar="PTN", type=u, default=noidx, help="regex: disable indexing of matching absolute-filesystem-paths during e2ds folder scan (must be specified as one big regex, not multiple times) (volflag=noidx)")
|
1490
1491
|
ap2.add_argument("--no-dirsz", action="store_true", help="do not show total recursive size of folders in listings, show inode size instead; slightly faster (volflag=nodirsz)")
|
1491
1492
|
ap2.add_argument("--re-dirsz", action="store_true", help="if the directory-sizes in the UI are bonkers, use this along with \033[33m-e2dsa\033[0m to rebuild the index from scratch")
|
1492
1493
|
ap2.add_argument("--no-dhash", action="store_true", help="disable rescan acceleration; do full database integrity check -- makes the db ~5%% smaller and bootup/rescans 3~10x slower")
|
@@ -1759,6 +1760,10 @@ def main(argv = None) :
|
|
1759
1760
|
|
1760
1761
|
ensure_webdeps()
|
1761
1762
|
|
1763
|
+
if CFG_DEF:
|
1764
|
+
supp = args_from_cfg(CFG_DEF[0])
|
1765
|
+
argv.extend(supp)
|
1766
|
+
|
1762
1767
|
for k, v in zip(argv[1:], argv[2:]):
|
1763
1768
|
if k == "-c" and os.path.isfile(v):
|
1764
1769
|
supp = args_from_cfg(v)
|
@@ -1594,6 +1594,10 @@ class HttpCli(object):
|
|
1594
1594
|
"quota-available-bytes": str(bfree),
|
1595
1595
|
"quota-used-bytes": str(btot - bfree),
|
1596
1596
|
}
|
1597
|
+
if "quotaused" in props: # macos finder crazytalk
|
1598
|
+
df["quotaused"] = df["quota-used-bytes"]
|
1599
|
+
if "quota" in props:
|
1600
|
+
df["quota"] = df["quota-available-bytes"] # idk, makes it happy
|
1597
1601
|
else:
|
1598
1602
|
df = {}
|
1599
1603
|
else:
|
@@ -4949,7 +4953,7 @@ class HttpCli(object):
|
|
4949
4953
|
rip = host
|
4950
4954
|
|
4951
4955
|
vp = (self.uparam["hc"] or "").lstrip("/")
|
4952
|
-
pw = self.pw or "hunter2"
|
4956
|
+
pw = self.ouparam.get("pw") or "hunter2"
|
4953
4957
|
if pw in self.asrv.sesa:
|
4954
4958
|
pw = "hunter2"
|
4955
4959
|
|
@@ -5458,13 +5462,13 @@ class HttpCli(object):
|
|
5458
5462
|
q = "select sz, rd, fn, at from up where ip=? and at>? order by at desc"
|
5459
5463
|
for sz, rd, fn, at in cur.execute(q, (self.ip, lim)):
|
5460
5464
|
vp = "/" + "/".join(x for x in [vol.vpath, rd, fn] if x)
|
5461
|
-
if nfi == 0 or (nfi == 1 and vfi in vp):
|
5465
|
+
if nfi == 0 or (nfi == 1 and vfi in vp.lower()):
|
5462
5466
|
pass
|
5463
5467
|
elif nfi == 2:
|
5464
|
-
if not vp.startswith(vfi):
|
5468
|
+
if not vp.lower().startswith(vfi):
|
5465
5469
|
continue
|
5466
5470
|
elif nfi == 3:
|
5467
|
-
if not vp.endswith(vfi):
|
5471
|
+
if not vp.lower().endswith(vfi):
|
5468
5472
|
continue
|
5469
5473
|
else:
|
5470
5474
|
continue
|
@@ -5583,13 +5587,13 @@ class HttpCli(object):
|
|
5583
5587
|
q = "select sz, rd, fn, ip, at from up where at>0 order by at desc"
|
5584
5588
|
for sz, rd, fn, ip, at in cur.execute(q):
|
5585
5589
|
vp = "/" + "/".join(x for x in [vol.vpath, rd, fn] if x)
|
5586
|
-
if nfi == 0 or (nfi == 1 and vfi in vp):
|
5590
|
+
if nfi == 0 or (nfi == 1 and vfi in vp.lower()):
|
5587
5591
|
pass
|
5588
5592
|
elif nfi == 2:
|
5589
|
-
if not vp.startswith(vfi):
|
5593
|
+
if not vp.lower().startswith(vfi):
|
5590
5594
|
continue
|
5591
5595
|
elif nfi == 3:
|
5592
|
-
if not vp.endswith(vfi):
|
5596
|
+
if not vp.lower().endswith(vfi):
|
5593
5597
|
continue
|
5594
5598
|
else:
|
5595
5599
|
continue
|
@@ -72,7 +72,8 @@ class MDNS(MCast):
|
|
72
72
|
if not self.args.zm_nwa_1:
|
73
73
|
set_avahi_379()
|
74
74
|
|
75
|
-
zs = self.args.name + ".local
|
75
|
+
zs = self.args.zm_fqdn or (self.args.name + ".local")
|
76
|
+
zs = zs.replace("--name", self.args.name).rstrip(".") + "."
|
76
77
|
zs = zs.encode("ascii", "replace").decode("ascii", "replace")
|
77
78
|
self.hn = "-".join(x for x in zs.split("?") if x) or (
|
78
79
|
"vault-{}".format(random.randint(1, 255))
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: copyparty
|
3
|
-
Version: 1.19.
|
3
|
+
Version: 1.19.1
|
4
4
|
Summary: Portable file server with accelerated resumable uploads, deduplication, WebDAV, FTP, zeroconf, media indexer, video thumbnails, audio transcoding, and write-only folders
|
5
5
|
Author-email: ed <copyparty@ocv.me>
|
6
6
|
License: MIT
|
Binary file
|
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|