cgohlke / imagecodecs

Image transformation, compression, and decompression codecs

Home Page:https://pypi.org/project/imagecodecs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IMCD_LZW_TABLE_TOO_SMALL exception with large image

rossbar opened this issue · comments

I'm not sure this is the correct place to open this issue, as the original exception arose while using dask_image to attempt to lazily load a large (32 x 50k x 51k) ome tiff.

Reproducer + traceback

Update: See subsequent comment for simpler example w/out dask

>>> import dask_image.imread
>>> import numpy as np
>>> img_fname = "foo.ome.tif"
>>> x = dask_image.imread.imread(img_fname)
>>> x.shape
(32, 49380, 51055)
>>> x.dtype
dtype('uint16')
>>> img = np.array(x[-1, ...])  # Attempt to lazily load the last channel
Traceback (most recent call last)
   ...
ImcdError: imcd_lzw_decode returned IMCD_LZW_TABLE_TOO_SMALL
Full traceback ImcdError Traceback (most recent call last) Cell In[5], line 1 ----> 1 img = np.array(x[-1, ...])

File ~/envs/base/lib/python3.10/site-packages/dask/threaded.py:89, in get(dsk, keys, cache, num_workers, pool, **kwargs)
86 elif isinstance(pool, multiprocessing.pool.Pool):
87 pool = MultiprocessingPoolExecutor(pool)
---> 89 results = get_async(
90 pool.submit,
91 pool._max_workers,
92 dsk,
93 keys,
94 cache=cache,
95 get_id=_thread_get_id,
96 pack_exception=pack_exception,
97 **kwargs,
98 )
100 # Cleanup pools associated to dead threads
101 with pools_lock:

File ~/envs/base/lib/python3.10/site-packages/dask/local.py:511, in get_async(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs)
509 _execute_task(task, data) # Re-execute locally
510 else:
--> 511 raise_exception(exc, tb)
512 res, worker_id = loads(res_info)
513 state["cache"][key] = res

File ~/envs/base/lib/python3.10/site-packages/dask/local.py:319, in reraise(exc, tb)
317 if exc.traceback is not tb:
318 raise exc.with_traceback(tb)
--> 319 raise exc

File ~/envs/base/lib/python3.10/site-packages/dask/local.py:224, in execute_task(key, task_info, dumps, loads, get_id, pack_exception)
222 try:
223 task, data = loads(task_info)
--> 224 result = _execute_task(task, data)
225 id = get_id()
226 result = dumps((result, id))

File ~/envs/base/lib/python3.10/site-packages/dask_image/imread/init.py:99, in _map_read_frame(x, multiple_files, block_info, **kwargs)
96 else:
97 i, j = block_info[None]['array-location'][0]
---> 99 return _read_frame(fn=fn, i=slice(i, j), **kwargs)

File ~/envs/base/lib/python3.10/site-packages/dask_image/imread/init.py:104, in _read_frame(fn, i, arrayfunc)
102 def _read_frame(fn, i, *, arrayfunc=np.asanyarray):
103 with pims.open(fn) as imgs:
--> 104 return arrayfunc(imgs[i])

File ~/envs/base/lib/python3.10/site-packages/slicerator/init.py:226, in (.0)
225 def iter(self):
--> 226 return (self._get(i) for i in self.indices)

File ~/envs/base/lib/python3.10/site-packages/slicerator/init.py:206, in Slicerator._get(self, key)
205 def _get(self, key):
--> 206 return self._ancestor[key]

File ~/envs/base/lib/python3.10/site-packages/slicerator/init.py:187, in Slicerator.from_class..SliceratorSubclass.getitem(self, i)
185 indices, new_length = key_to_indices(i, len(self))
186 if new_length is None:
--> 187 return self._get(indices)
188 else:
189 return cls(self, indices, new_length, propagate_attrs)

File ~/envs/base/lib/python3.10/site-packages/pims/base_frames.py:100, in FramesSequence.getitem(self, key)
97 def getitem(self, key):
98 """getitem is handled by Slicerator. In all pims readers, the data
99 returning function is get_frame."""
--> 100 return self.get_frame(key)

File ~/envs/base/lib/python3.10/site-packages/pims/tiff_stack.py:115, in TiffStack_tifffile.get_frame(self, j)
113 def get_frame(self, j):
114 t = self._tiff[j]
--> 115 data = t.asarray()
116 return Frame(data, frame_no=j, metadata=self._read_metadata(t))

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:10261, in TiffFrame.asarray(self, *args, **kwargs)
10254 def asarray(self, *args: Any, **kwargs: Any) -> NDArray[Any]:
10255 """Return image from frame as NumPy array.
10256
10257 Parameters:
10258 **kwargs: Arguments passed to :py:meth:TiffPage.asarray.
10259
10260 """

10261 return TiffPage.asarray(self, *args, **kwargs)

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8923, in TiffPage.asarray(self, out, squeeze, lock, maxworkers)
8913 out[
8914 s, d : d + shape[0], h : h + shape[1], w : w + shape[2]
8915 ] = segment[
(...)
8918 : keyframe.imagewidth - w,
8919 ]
8920 # except IndexError:
8921 # pass # corrupted file, e.g., with too many strips
-> 8923 for _ in self.segments(
8924 func=func,
8925 lock=lock,
8926 maxworkers=maxworkers,
8927 sort=True,
8928 _fullsize=False,
8929 ):
8930 pass
8932 result.shape = keyframe.shaped

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8737, in TiffPage.segments(self, lock, maxworkers, func, sort, _fullsize)
8729 with ThreadPoolExecutor(maxworkers) as executor:
8730 for segments in fh.read_segments(
8731 self.dataoffsets,
8732 self.databytecounts,
(...)
8735 flat=False,
8736 ):
-> 8737 yield from executor.map(decode, segments)

File /usr/lib/python3.10/concurrent/futures/_base.py:621, in Executor.map..result_iterator()
618 while fs:
619 # Careful not to keep a reference to the popped future
620 if timeout is None:
--> 621 yield _result_or_cancel(fs.pop())
622 else:
623 yield _result_or_cancel(fs.pop(), end_time - time.monotonic())

File /usr/lib/python3.10/concurrent/futures/_base.py:319, in _result_or_cancel(failed resolving arguments)
317 try:
318 try:
--> 319 return fut.result(timeout)
320 finally:
321 fut.cancel()

File /usr/lib/python3.10/concurrent/futures/_base.py:451, in Future.result(self, timeout)
449 raise CancelledError()
450 elif self._state == FINISHED:
--> 451 return self.__get_result()
453 self._condition.wait(timeout)
455 if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:

File /usr/lib/python3.10/concurrent/futures/_base.py:403, in Future.__get_result(self)
401 if self._exception:
402 try:
--> 403 raise self._exception
404 finally:
405 # Break a reference cycle with the exception in self._exception
406 self = None

File /usr/lib/python3.10/concurrent/futures/thread.py:58, in _WorkItem.run(self)
55 return
57 try:
---> 58 result = self.fn(*self.args, **self.kwargs)
59 except BaseException as exc:
60 self.future.set_exception(exc)

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8712, in TiffPage.segments..decode(args, decodeargs, decode)
8711 def decode(args, decodeargs=decodeargs, decode=keyframe.decode):
-> 8712 return func(decode(*args, **decodeargs))

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8641, in TiffPage.decode..decode_other(data, index, jpegtables, jpegheader, _fullsize)
8638 if decompress is not None:
8639 # TODO: calculate correct size for packed integers
8640 size = shape[0] * shape[1] * shape[2] * shape[3]
-> 8641 data = decompress(data, out=size * dtype.itemsize)
8642 data_array = unpack(data) # type: ignore
8643 # del data

File imagecodecs/_imcd.pyx:1209, in imagecodecs._imcd.lzw_decode()

ImcdError: imcd_lzw_decode returned IMCD_LZW_TABLE_TOO_SMALL

Unfortunately foo.ome.tif is not publicly-available data, so I can't provide a full reproducer. If there is any relevant metadata from the file that would help in debugging, I'd be happy to provide it if possible. Also, if this issue seems more relevant to a different component in the dask/tif-reading toolchain, I'm happy to transfer it there.

Environment info

Python 3.10.6 on Ubuntu 22.04
Subset of pip list:

dask                         2023.7.0
dask-image                   2023.3.0
tifffile                     2023.7.10
imagecodecs                  2023.7.10
ome-types                    0.3.4

Quick follow-up: I was able to access a machine with enough RAM that I could in principle load the entire image at once, so I tried a simplified MRE without the dask_image component. I can confirm that I still get the ImcdError: imcd_lzw_decode returned IMCD_LZW_TABLE_TOO_SMALL:

>>> img_fname = "foo.ome.tif"
>>> import tifffile as tff
>>> data = tff.imread(fname, maxworkers=1)
Traceback (most recent call last)
   ...
ImcdError: imcd_lzw_decode returned IMCD_LZW_TABLE_TOO_SMALL
Full Traceback Traceback (most recent call last) Cell In[3], line 1 ----> 1 data = tff.imread(fname, maxworkers=1)

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:1121, in imread(files, selection, aszarr, key, series, level, squeeze, maxworkers, mode, name, offset, size, pattern, axesorder, categories, imread, sort, container, chunkshape, dtype, axestiled, ioworkers, chunkmode, fillvalue, zattrs, multiscales, omexml, out, out_inplace, _multifile, _useframes, **kwargs)
1119 return store
1120 return zarr_selection(store, selection)
-> 1121 return tif.asarray(
1122 key=key,
1123 series=series,
1124 level=level,
1125 squeeze=squeeze,
1126 maxworkers=maxworkers,
1127 out=out,
1128 )
1130 elif isinstance(files, (FileHandle, BinaryIO)):
1131 raise ValueError('BinaryIO not supported')

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:4309, in TiffFile.asarray(self, key, series, level, squeeze, out, maxworkers)
4307 result = page0.asarray(out=out, maxworkers=maxworkers)
4308 else:
-> 4309 result = stack_pages(pages, out=out, maxworkers=maxworkers)
4311 if result is None:
4312 return None

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:22285, in stack_pages(pages, tiled, lock, maxworkers, out, **kwargs)
22283 if maxworkers < 2:
22284 for index, page in enumerate(pages):

22285 func(page, index)
22286 else:
22287 page0.decode # init TiffPage.decode function

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:22280, in stack_pages..func(page, index, out, filecache, kwargs)
22278 if page is not None:
22279 filecache.open(page.parent.filehandle)

22280 page.asarray(lock=lock, out=out[index], **kwargs)
22281 filecache.close(page.parent.filehandle)

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:10328, in TiffFrame.asarray(self, *args, **kwargs)
10321 def asarray(self, *args: Any, **kwargs: Any) -> NDArray[Any]:
10322 """Return image from frame as NumPy array.
10323
10324 Parameters:
10325 **kwargs: Arguments passed to :py:meth:TiffPage.asarray.
10326
10327 """

10328 return TiffPage.asarray(self, *args, **kwargs)

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8981, in TiffPage.asarray(self, out, squeeze, lock, maxworkers)
8971 out[
8972 s, d : d + shape[0], h : h + shape[1], w : w + shape[2]
8973 ] = segment[
(...)
8976 : keyframe.imagewidth - w,
8977 ]
8978 # except IndexError:
8979 # pass # corrupted file, for example, with too many strips
-> 8981 for _ in self.segments(
8982 func=func,
8983 lock=lock,
8984 maxworkers=maxworkers,
8985 sort=True,
8986 _fullsize=False,
8987 ):
8988 pass
8990 result.shape = keyframe.shaped

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8782, in TiffPage.segments(self, lock, maxworkers, func, sort, _fullsize)
8774 if maxworkers < 2:
8775 for segment in fh.read_segments(
8776 self.dataoffsets,
8777 self.databytecounts,
(...)
8780 flat=True,
8781 ):
-> 8782 yield decode(segment)
8783 else:
8784 # reduce memory overhead by processing chunks of up to
8785 # ~256 MB of segments because ThreadPoolExecutor.map is not
8786 # collecting iterables lazily
8787 with ThreadPoolExecutor(maxworkers) as executor:

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8770, in TiffPage.segments..decode(args, decodeargs, decode)
8769 def decode(args, decodeargs=decodeargs, decode=keyframe.decode):
-> 8770 return func(decode(*args, **decodeargs))

File ~/envs/base/lib/python3.10/site-packages/tifffile/tifffile.py:8699, in TiffPage.decode..decode_other(data, index, jpegtables, jpegheader, _fullsize)
8696 if decompress is not None:
8697 # TODO: calculate correct size for packed integers
8698 size = shape[0] * shape[1] * shape[2] * shape[3]
-> 8699 data = decompress(data, out=size * dtype.itemsize)
8700 data_array = unpack(data) # type: ignore
8701 # del data

File imagecodecs/_imcd.pyx:1209, in imagecodecs._imcd.lzw_decode()

ImcdError: imcd_lzw_decode returned IMCD_LZW_TABLE_TOO_SMALL

I have not seen that error for a while. If I understand correctly, this should only happen with old-style LZW, but I am surprised that is used to write OME. So it could simply be a corrupt segment. Is libtiff based software able to load the whole image? Libtiff uses the same LZW table size I think.

Can you share the output and .lzw file produced by this script:

import sys
import tifffile
from imagecodecs import lzw_decode

with tifffile.TiffFile('foo.ome.tif') as tif:
    for page in tif.pages:
        if not page.compression == 5:
            print(f'page {page.index} not LZW compressed')
            continue
        for offset, bytecount in zip(page.dataoffsets, page.databytecounts):
            tif.filehandle.seek(offset)
            encoded = tif.filehandle.read(bytecount)
            try:
                segment = lzw_decode(encoded)
            except Exception as exc:
                print(page)
                print(page.tags)
                print(page.dataoffsets)
                print(offset, bytecount, exc)
                with open(f'{page.index}_{offset}_{bytecount}.lzw', 'wb') as fh:
                    fh.write(encoded)
                raise

If I understand correctly, this should only happen with old-style LZW, but I am surprised that is used to write OME.

I'm relatively new to tiffs/biological imaging so I have no real sense here. I am however in contact with the folks who generated the data, so if there are specific questions that would help shed light on the situation I'd be happy to pass them along.

So it could simply be a corrupt segment.

I had overlooked this possibility a bit, so after your comments I went back to test whether I was able to load any other of the 32 channels. For this particular image, it turns out I am able to read channel 0 (i.e. img = np.array(x[0, ...])), but I get the ImcdError for channels 1+.

There are three other images in this series (2 of which I have access to) with roughly the same dimensions, I will experiment with those to see if there are any differences.

Is libtiff based software able to load the whole image?

I'm not sure, I will give it a try.

Can you share the output and .lzw file produced by this script:

Log of stdout+stderr from script TiffPage 1 @119418264305 49380x51055 uint16 minisblack tiled lzw TiffTag 256 ImageWidth @119418264313 LONG8 @119418264325 = 51055 TiffTag 257 ImageLength @119418264333 LONG8 @119418264345 = 49380 TiffTag 258 BitsPerSample @119418264353 SHORT @119418264365 = 16 TiffTag 259 Compression @119418264373 SHORT @119418264385 = LZW TiffTag 262 PhotometricInterpretation @119418264393 SHORT @119418264405 = MINIS TiffTag 277 SamplesPerPixel @119418264413 SHORT @119418264425 = 1 TiffTag 284 PlanarConfiguration @119418264433 SHORT @119418264445 = CONTIG TiffTag 305 Software @119418264453 ASCII[22] @119418264601 = OME Bio-Formats 6. TiffTag 322 TileWidth @119418264473 SHORT @119418264485 = 1024 TiffTag 323 TileLength @119418264493 SHORT @119418264505 = 1024 TiffTag 324 TileOffsets @119418264513 LONG8[2450] @119418264623 = (1918989043, TiffTag 325 TileByteCounts @119418264533 LONG8[2450] @119418284223 = (1569815, TiffTag 330 SubIFDs @119418264553 LONG8[8] @119418303823 = (119417710631, 11941 TiffTag 339 SampleFormat @119418264573 SHORT @119418264585 = UINT (1918989043, 1920558858, 1922269596, 1923738522, 1925170575, 1926551780, 1927926667, 1929295449, 1930563303, 1931063573, 1931067569, 1931071565, 1931075561, 1931079557, 1931083553, 1931087549, 1931167612, 1932713999, 1934269282, 1935919683, 1936819628, 1936823624, 1936827620, 1936831616, 1936835612, 1936839608, 1936843604, 1936847600, 1936851596, 1936855592, 1936859588, 1936863584, 1936867580, 1936871576, 1936875572, 1936879568, 1936883564, 1936887560, 1936891556, 1936895552, 1936899548, 1936903544, 1936907540, 1936911536, 1936915532, 1936919528, 1936923524, 1936927520, 1936931516, 1936935512, 1936943519, 1938963779, 1940988045, 1943002071, 1944943866, 1946899767, 1948938831, 1950988445, 1952932840, 1954141661, 1954939539, 1955790176, 1956661604, 1957305650, 1958023103, 1958854845, 1959781104, 1961692280, 1963618809, 1965465044, 1966774233, 1967484581, 1968201377, 1968837739, 1969464922, 1970123693, 1970747287, 1971355251, 1972016380, 1972655719, 1973309953, 1973949421, 1974587849, 1975190308, 1975800948, 1976396392, 1976716452, 1976720448, 1976724444, 1976728440, 1976732436, 1976736432, 1976740428, 1976744424, 1976748420, 1976752416, 1976756412, 1976760408, 1976764404, 1976768400, 1976776407, 1978699317, 1980734870, 1982787231, 1984871716, 1986970365, 1989026921, 1991042340, 1993099441, 1995239512, 1997436875, 1999634020, 2001885815, 2004077017, 2006281752, 2008348793, 2010539746, 2012648281, 2014862243, 2017128611, 2019128316, 2021162218, 2023076904, 2025162366, 2027174688, 2029365117, 2031424310, 2033362404, 2035442035, 2037431345, 2039264668, 2041119131, 2042762619, 2044461439, 2046232229, 2047898394, 2048718790, 2048722786, 2048726782, 2048730778, 2048734774, 2048738770, 2048742766, 2048746762, 2048750758, 2048754754, 2048758750, 2048762746, 2048766742, 2048770738, 2048778745, 2056904582, 2054813206, 2052668508, 2050547221, 2079996080, 2077951537, 2075905182, 2073802594, 2071581030, 2069418009, 2067160019, 2065076760, 2062921381, 2060849882, 2058868199, 2111376367, 2109316376, 2107084934, 2105066629, 2103040961, 2100943431, 2098815826, 2096691714, 2094588664, 2092504577, 2090347500, 2088359516, 2086334908, 2084227321, 2082064273, 2120841973, 2118792401, 2114503963, 2116662286, 2113523556, 2116658290, 2113519560, 2113515564, 2113511568, 2113507572, 2113503576, 2113499580, 2122684906, 2122688902, 2122692898, 2122696894, 2122700890, 2122704886, 2122708882, 2122716889, 2124504047, 2126659131, 2128619536, 2130617442, 2132780479, 2134964387, 2137037522, 2139141197, 2141275426, 2143463889, 2145710484, 2148021774, 2149963752, 2152029528, 2154121211, 2156019292, 2158120684, 2160178380, 2162326552, 2164454525, 2166556937, 2168783946, 2171010277, 2172993964, 2175087367, 2177250383, 2179367438, 2181399568, 2183440239, 2185583459, 2187811538, 2189862459, 2192045508, 2194271269, 2196523764, 2197903845, 2198225196, 2198262999, 2198266995, 2198270991, 2198274987, 2198278983, 2198282979, 2198286975, 2198290971, 2198294967, 2198298963, 2198302959, 2198306955, 2198314962, 2199990490, 2202105577, 2204213463, 2206117987, 2208264806, 2210405203, 2212551470, 2214686779, 2216894370, 2218954993, 2220916517, 2222830411, 2224893296, 2226952234, 2228839487, 2230939283, 2233047694, 2235075003, 2237178584, 2239196830, 2241356301, 2243314167, 2245365693, 2247452776, 2249448045, 2251558420, 2253702634, 2255784328, 2257838996, 2260049016, 2262347306, 2264517883, 2266593409, 2268873977, 2271157329, 2273421179, 2275013062, 2275189754, 2275193750, 2275197746, 2275201742, 2275205738, 2275209734, 2275213730, 2275217726, 2275221722, 2275225718, 2275229714, 2275233710, 2275241717, 2276981725, 2279100943, 2281205610, 2283354760, 2285441107, 2287678726, 2289890371, 2292129005, 2294334823, 2296360289, 2298254510, 2300313675, 2302359191, 2304623788, 2306764494, 2308960195, 2311197366, 2313302049, 2315427751, 2317585199, 2319817847, 2321867792, 2324047187, 2326192799, 2328262037, 2330395997, 2332542688, 2334780852, 2336907909, 2339003878, 2341303988, 2343426363, 2345528442, 2347881526, 2350105228, 2352273087, 2354128901, 2354308500, 2354312496, 2354316492, 2354320488, 2354324484, 2354328480, 2354332476, 2354336472, 2354340468, 2354344464, 2354348460, 2354352456, 2354360463, 2356336617, 2358497348, 2360609384, 2362716025, 2364872267, 2366768446, 2368898030, 2370896587, 2373107278, 2375098806, 2377161458, 2379173425, 2381214901, 2383356948, 2385443931, 2387575818, 2389711793, 2391814909, 2393953461, 2396090042, 2398299390, 2400526097, 2402698418, 2404786929, 2406847367, 2409096272, 2411234456, 2413391032, 2415504590, 2417763868, 2420084948, 2422427210, 2424723436, 2426988178, 2429247968, 2431480739, 2433447600, 2433627360, 2433631356, 2433635352, 2433639348, 2433643344, 2433647340, 2433651336, 2433655332, 2433659328, 2433663324, 2433667320, 2433671316, 2433679323, 2435516233, 2437608761, 2439733366, 2441936370, 2444083052, 2446240850, 2448403812, 2450576303, 2452863412, 2455059384, 2457149330, 2459178786, 2461251276, 2463248844, 2465335338, 2467326510, 2469080920, 2471090281, 2473056338, 2475045458, 2477125179, 2479101710, 2480923892, 2482807667, 2484906015, 2486973056, 2489133909, 2491353775, 2493636282, 2495971718, 2498359660, 2500723754, 2502901374, 2504997002, 2507206158, 2509324912, 2511386812, 2511568620, 2511572616, 2511576612, 2511580608, 2511584604, 2511588600, 2511592596, 2511596592, 2511600588, 2511604584, 2511608580, 2511612576, 2511620583, 2517366471, 2515264570, 2513226802, 2519520862, 2521533410, 2523538873, 2525726861, 2527881633, 2530081668, 2532109744, 2534189989, 2536320326, 2538394612, 2540555742, 2542552298, 2544622690, 2546690613, 2548592453, 2550593368, 2552638684, 2554593842, 2556651982, 2558596561, 2560537071, 2562595522, 2564566063, 2566765102, 2569015487, 2571335823, 2573659439, 2576047321, 2578341538, 2580620951, 2582899076, 2585111222, 2587232146, 2589106549, 2589869439, 2590330531, 2590334527, 2590338523, 2590342519, 2590346515, 2590350511, 2590354507, 2590358503, 2590362499, 2590366495, 2590370491, 2590378498, 2591811163, 2593814658, 2596097086, 2598237141, 2600304735, 2602291986, 2604462891, 2606693849, 2608909256, 2610632036, 2612701562, 2619257262, 2617069799, 2614937360, 2621356626, 2623384150, 2625573575, 2627635432, 2629814524, 2631692606, 2633304598, 2635171736, 2637049025, 2638904203, 2640764545, 2642712423, 2644793010, 2646787234, 2649007086, 2651309631, 2653567556, 2655649124, 2657823989, 2660039870, 2662215848, 2664125156, 2666278503, 2667917267, 2668978641, 2668982637, 2668986633, 2668990629, 2668994625, 2668998621, 2669002617, 2669006613, 2669010609, 2669014605, 2669018601, 2669026608, 2669786074, 2671189358, 2673343836, 2675363137, 2677496806, 2679619736, 2681579086, 2683680118, 2685910441, 2688072639, 2689697223, 2691832244, 2693891218, 2695853778, 2698025777, 2700105099, 2702173983, 2704095889, 2706111059, 2708103260, 2709979217, 2715414839, 2713530479, 2711537925, 2717260713, 2719124171, 2721112181, 2723186959, 2725323593, 2727563108, 2729823871, 2732090997, 2734321229, 2736575467, 2738752741, 2740855306, 2742826531, 2744769833, 2745873413, 2745877409, 2745881405, 2745885401, 2745889397, 2745893393, 2745897389, 2745901385, 2745905381, 2745909377, 2745913373, 2745921380, 2745925376, 2746666504, 2748728735, 2750854835, 2752895170, 2754989194, 2757065530, 2759184643, 2761298816, 2763484626, 2765377502, 2767312956, 2769451625, 2771512281, 2773620534, 2775667726, 2777792777, 2780055923, 2782188697, 2784164769, 2786192330, 2788091615, 2789875531, 2791685871, 2793459843, 2795379366, 2797290561, 2799402423, 2801672796, 2803969680, 2806279296, 2808242759, 2812692638, 2810491200, 2814897466, 2817065442, 2819186252, 2821193778, 2822291957, 2822295953, 2822299949, 2822303945, 2822307941, 2822311937, 2822315933, 2822319929, 2822323925, 2822327921, 2822331917, 2822339924, 2822343920, 2823111447, 2825255190, 2827415635, 2829644921, 2831676904, 2833710986, 2835626461, 2837717985, 2839831800, 2842006507, 2843906391, 2846040096, 2848136260, 2850195786, 2852369432, 2854433898, 2856698586, 2858621223, 2860714299, 2862765845, 2864756298, 2866740714, 2868728307, 2870595232, 2872473886, 2874479620, 2876584189, 2878802837, 2881206861, 2883476930, 2885494640, 2887599986, 2889853734, 2892127803, 2894238562, 2896371664, 2898591642, 2899988884, 2899992880, 2899996876, 2900000872, 2900004868, 2900008864, 2900012860, 2900016856, 2900020852, 2900024848, 2900028844, 2900036851, 2900040847, 2900710013, 2902950059, 2905112308, 2907290599, 2909393997, 2911458251, 2913398032, 2915493803, 2917701404, 2919879830, 2921813871, 2923872193, 2926078150, 2928235376, 2930239613, 2932264248, 2934484793, 2936637133, 2938736544, 2940846346, 2943026196, 2945100413, 2947160394, 2949281221, 2951388663, 2953553084, 2955639111, 2957638384, 2959643104, 2961715403, 2963831859, 2966093722, 2968407484, 2970678889, 2972811383, 2974866852, 2976729874, 2978607288, 2979632830, 2979929501, 2979933497, 2979937493, 2979941489, 2979945485, 2979949481, 2979953477, 2979957473, 2979961469, 2979969476, 2979973472, 2980632564, 2982579998, 2986876718, 2984747824, 2988961685, 2991096815, 2993037221, 2995027181, 2997232801, 2999405632, 3001522319, 3003412080, 3005577821, 3007615519, 3009768836, 3012066610, 3014377455, 3016752120, 3018892233, 3021154055, 3023172756, 3025200433, 3027176542, 3029328642, 3031292761, 3033474171, 3035525385, 3037605537, 3039764212, 3041826037, 3043814281, 3045773010, 3047853289, 3050091199, 3052258998, 3054415252, 3056625772, 3058773829, 3060463817, 3060922881, 3060926877, 3060930873, 3060934869, 3060938865, 3060942861, 3060946857, 3060950853, 3060954849, 3060962856, 3060966852, 3061630312, 3063751984, 3065952369, 3068104171, 3070244014, 3074394813, 3072352531, 3084588337, 3082484467, 3080381275, 3078447405, 3076424580, 3093179514, 3091098336, 3088780540, 3086640130, 3095305641, 3097438943, 3099541798, 3101853380, 3103953429, 3106110439, 3108286780, 3110296596, 3112294807, 3114252064, 3116450152, 3118548987, 3120679593, 3122847098, 3124976913, 3127103103, 3129250974, 3131257452, 3133368658, 3135580687, 3137773334, 3139891851, 3141838710, 3142353402, 3142357398, 3142361394, 3142365390, 3142369386, 3142373382, 3142377378, 3142381374, 3142385370, 3142393377, 3142397373, 3143054856, 3145154723, 3160139288, 3157953815, 3155742710, 3153472025, 3151395788, 3149356696, 3147319312, 3162334752, 3164435448, 3166433359, 3180958964, 3178866702, 3176795032, 3174944615, 3172895560, 3170800361, 3168578770, 3199899750, 3197753390, 3195800727, 3193878329, 3191896675, 3189832940, 3187613145, 3185348782, 3183080555, 3202106903, 3204365562, 3206539935, 3208731581, 3210896661, 3213009102, 3215201798, 3217329555, 3219368838, 3221512022, 3223688068, 3224203783, 3224207779, 3224211775, 3224215771, 3224219767, 3224223763, 3224227759, 3224231755, 3224235751, 3224243758, 3224247754, 3224902321, 3227026176, 3229367965, 3231574414, 3233751793, 3235945088, 3238073052, 3240298967, 3242510928, 3244632310, 3246734125, 3248754878, 3251024255, 3253339160, 3255529730, 3257838464, 3260009258, 3262148950, 3264481013, 3266835865, 3269100103, 3271290884, 3273233108, 3275354936, 3277533045, 3279763286, 3282016225, 3284302301, 3286596314, 3288932155, 3291219773, 3293381370, 3295588990, 3297784301, 3300062863, 3302225073, 3304363304, 3306507537, 3308509767, 3309017681, 3309021677, 3309025673, 3309029669, 3309033665, 3309037661, 3309041657, 3309045653, 3309049649, 3309057656, 3309061652, 3309684519, 3311529673, 3313826025, 3315761179, 3317965813, 3320177793, 3322012649, 3323999332, 3326093839, 3328310386, 3330440526, 3332547456, 3334820898, 3337217944, 3339473218, 3341727305, 3344084688, 3346038840, 3348510397, 3350956313, 3352940148, 3354966719, 3356820659, 3358914749, 3361039578, 3363332987, 3365583062, 3367937620, 3370176903, 3372357631, 3374657616, 3376945434, 3379212249, 3381360394, 3383623134, 3385811003, 3387962478, 3390029660, 3391872271, 3393587625, 3394732836, 3394736832, 3394740828, 3394744824, 3394748820, 3394752816, 3394756812, 3394760808, 3394768815, 3394772811, 3395358978, 3396979319, 3399208748, 3401349679, 3403414677, 3405576100, 3407617042, 3409378306, 3411500223, 3413601750, 3415938718, 3418304539, 3420553594, 3422829169, 3424559486, 3426380703, 3428779643, 3430896620, 3433173269, 3435550026, 3437704173, 3439775052, 3441877190, 3443900319, 3446134352, 3448394457, 3450689420, 3452961949, 3455306614, 3457640230, 3459926655, 3462235736, 3464555235, 3466826326, 3469019073, 3471262396, 3473389085, 3475540683, 3477670195, 3479715749, 3481181355, 3481185351, 3481189347, 3481193343, 3481197339, 3481201335, 3481205331, 3481209327, 3481217334, 3481221330, 3481295319, 3481488225, 3487598544, 3485437226, 3483331550, 3489644989, 3491895959, 3494022930, 3496242228, 3498573675, 3500727617, 3503100167, 3505222201, 3507635973, 3509909658, 3511575451, 3513818746, 3516073127, 3518357223, 3520836971, 3523030114, 3525221022, 3527367794, 3529289876, 3531489133, 3533756195, 3536000322, 3538172369, 3540438141, 3542650639, 3544936590, 3547272896, 3549546154, 3551791215, 3554039352, 3556206165, 3558351055, 3560463629, 3562250955, 3562901095, 3563070695, 3563074691, 3563078687, 3563082683, 3563086679, 3563090675, 3563094671, 3563098667, 3563106674, 3563110670, 3563114666, 3563118662, 3564800078, 3566895424, 3569081649, 3571280967, 3573568805, 3589967198, 3587620466, 3585380552, 3583052622, 3580870259, 3578387129, 3575900755, 3592224667, 3594439906, 3596870835, 3599156530, 3601334126, 3603353537, 3605450175, 3607643906, 3609858669, 3612028113, 3614189047, 3616148730, 3618290220, 3620369725, 3622528862, 3624837759, 3627150480, 3629448834, 3631775973, 3634153986, 3636401727, 3638504657, 3640655034, 3642766135, 3644414877, 3644877936, 3644881932, 3644885928, 3644889924, 3644893920, 3644897916, 3644901912, 3644905908, 3644909904, 3644917911, 3644921907, 3644925903, 3644929899, 3646766182, 3648869916, 3651083091, 3653364583, 3655610380, 3657908704, 3660237009, 3662561405, 3664845093, 3667201159, 3669594474, 3672025034, 3674384664, 3676796155, 3678864753, 3681149063, 3687592832, 3685512221, 3683408290, 3702363744, 3700119012, 3697984254, 3695951902, 3693860150, 3691703800, 3689509775, 3704639362, 3706928714, 3709166162, 3711413919, 3713635901, 3715843854, 3717902218, 3719937542, 3722093074, 3724220543, 3725727813, 3726278066, 3726403588, 3726407584, 3726411580, 3726415576, 3726419572, 3726423568, 3726427564, 3726431560, 3726439567, 3726443563, 3726447559, 3726451555, 3728141314, 3730343970, 3732564050, 3734838740, 3736911201, 3739182783, 3741495825, 3743752790, 3745929221, 3748192664, 3750551286, 3752782655, 3755044106, 3757307617, 3759555257, 3761783430, 3764113769, 3766143339, 3768211148, 3770148844, 3772396784, 3774453180, 3776599573, 3778672834, 3780696829, 3782801437, 3784940706, 3791631308, 3789388432, 3787110357, 3807342310, 3805185969, 3803115100, 3800958468, 3799257536, 3797378870, 3795415183, 3793933800, 3793929804, 3793925808, 3793921812, 3793917816, 3793913820, 3793909824, 3793905828, 3820124980, 3820116988, 3820112992, 3820120984, 3818377520, 3816204230, 3814031348, 3811778572, 3809609484, 3820132987, 3822387788, 3824688044, 3826925458, 3829050327, 3831279721, 3833716499, 3836012014, 3838307124, 3840527267, 3842801453, 3844832430, 3847126463, 3848952813, 3851128262, 3853149695, 3855402139, 3857521055, 3859705175, 3861676120, 3863946520, 3865955943, 3867950890, 3870131309, 3872318296, 3874420918, 3876544370, 3878734445, 3880932904, 3882976659, 3885115445, 3887010271, 3889149859, 3891227551, 3892826111, 3892830107, 3892834103, 3892838099, 3892842095, 3892846091, 3892850087, 3892854083, 3892862090, 3892866086, 3892870082, 3892874078, 3894352941, 3896585312, 3898793581, 3901085117, 3903239367, 3905413863, 3907592010, 3909863669, 3912149833, 3914501078, 3916980100, 3919310529, 3921515315, 3923716316, 3925998018, 3928363224, 3930672031, 3932701021, 3934890290, 3936984406, 3939082391, 3941052099, 3942956908, 3944861765, 3946937324, 3949174418, 3951381976, 3953487696, 3955701026, 3957852396, 3960015365, 3962186311, 3964445379, 3966446373, 3968469007, 3970552005, 3972235838, 3974183093, 3975858367, 3975862363, 3975866359, 3975870355, 3975874351, 3975878347, 3975882343, 3975886339, 3975894346, 3975898342, 3975902338, 3975906334, 3977221535, 3979397053, 3988205250, 3985994382, 3983738664, 3981552131, 4019461142, 4017123964, 4014762875, 4012404433, 4010049246, 4007930136, 4005752741, 4003601860, 4001333698, 3999001589, 3996906752, 3994709948, 3992595734, 3990504846, 4042551991, 4040486125, 4034204613, 4038471594, 4036325211, 4032384938, 4030357528, 4028179021, 4026080597, 4023982087, 4021786332, 4058817984, 4056839128, 4054961901, 4052871811, 4050829040, 4045412916, 4048817790, 4047441704, 4044747287, 4044743291, 4044739295, 4044735299, 4044731303, 4061099692, 4061091685, 4061083693, 4061087689, 4061103688, 4061107684, 4062410713, 4064544733, 4066731296, 4068938750, 4071292143, 4073552923, 4075660818, 4077950086, 4080272807, 4082538178, 4084741420, 4086956032, 4089242342, 4091461338, 4093608392, 4095852746, 4098104806, 4100374819, 4102526069, 4104690760, 4106781735, 4108842362, 4110977134, 4113131657, 4115066742, 4117135626, 4119069562, 4121192999, 4123354617, 4125435411, 4127530589, 4129714326, 4131803808, 4133932220, 4135916534, 4138034396, 4140006935, 4142173910, 4144178375, 4145998284, 4146737003, 4146740999, 4146744995, 4146748991, 4146752987, 4146756983, 4146764990, 4146768986, 4146772982, 4146776978, 4148016108, 4150158364, 4152211907, 4154372767, 4156625949, 4158887749, 4161121582, 4163346912, 4165727285, 4168015309, 4170104201, 4172488465, 4174897559, 4177127257, 4179330439, 4181503842, 4183598923, 4185692643, 4187934982, 4189986517, 4192272485, 4194392601, 4196477424, 4198400841, 4200544884, 4202728806, 4204725021, 4206883687, 4208926096, 4211124478, 4213216512, 4215164626, 4217325249, 4219452887, 4221474939, 4223612574, 4225845540, 4227911648, 4229987099, 4231944602, 4232707905, 4232711901, 4232715897, 4232719893, 4232723889, 4232727885, 4232735892, 4232739888, 4232743884, 4232747880, 4234067655, 4236249243, 4238416476, 4240569244, 4242767124, 4245043956, 4247243127, 4249494368, 4251835347, 4254109785, 4256413823, 4258595042, 4260990553, 4263315401, 4265548878, 4267640941, 4269698009, 4271766787, 4273587626, 4275358138, 4277480609, 4279597787, 4281566301, 4283613801, 4285778041, 4287902289, 4290080116, 4292167713, 4294311763, 4296526811, 4298479604, 4300458778, 4302519007, 4304551851, 4306624967, 4308538720, 4310587436, 4312677397, 4314537134, 4316548031, 4317330429, 4317334425, 4317338421, 4317342417, 4317346413, 4317350409, 4317358416, 4317362412, 4317366408, 4317370404, 4318710907, 4320851340, 4323016006, 4325203337, 4327404801, 4329679369, 4331968929, 4334217220, 4336593944, 4338940641, 4341200018, 4343592269, 4345939258, 4348314665, 4350521199, 4352654238, 4354827672, 4356927752, 4358684196, 4360316056, 4362087710, 4364203936, 4366364736, 4368401762, 4370275283, 4372137516, 4374433112, 4376598280, 4378766972, 4380924123, 4382809611, 4384902578, 4386945637, 4388711651, 4390841763, 4392652856, 4394589853, 4396488428, 4398482799, 4400420963, 4401211243, 4401215239, 4401219235, 4401223231, 4401227227, 4401231223, 4401239230, 4401243226, 4401247222, 4401251218, 4402649677, 4404869853, 4407186499, 4409472932, 4411719405, 4413981718, 4416329818, 4418786830, 4421153712, 4423471178, 4425762381, 4427988563, 4430232408, 4432636338, 4434917944, 4437067802, 4439099535, 4441122613, 4443162768, 4445367177, 4447401801, 4449443133, 4451536521, 4453647641, 4455451855, 4457606592, 4459797278, 4461903886, 4463991656, 4466097402, 4468010195, 4470181447, 4472005549, 4474103135, 4476270493, 4478274828, 4480396865, 4482411530, 4484445605, 4486451146, 4487486192, 4487490188, 4487494184, 4487498180, 4487502176, 4487506172, 4487514179, 4487518175, 4487522171, 4487526167, 4489026906, 4491164907, 4493484865, 4495816521, 4498164899, 4500445734, 4502735503, 4505176892, 4512361930, 4509999110, 4507693078, 4514716110, 4516965048, 4519228685, 4521642573, 4523816942, 4525917935, 4528215217, 4530424055, 4532369462, 4534286495, 4536485351, 4538717425, 4540799489, 4542883632, 4544903806, 4547124740, 4549111478, 4551130309, 4553371772, 4555611106, 4557824059, 4559748872, 4561711317, 4563955408, 4566173337, 4568263127, 4570282482, 4572241695, 4573955951, 4575537515, 4576362391, 4576430092, 4576434088, 4576438084, 4576442080, 4576450087, 4576454083, 4576458079, 4576462075, 4577928312, 4580054430, 4582208480, 4584403970, 4586831722, 4589242591, 4591535082, 4593927719, 4596355914, 4598693785, 4601088313, 4603200398, 4605443526, 4607749722, 4610122530, 4612439630, 4618889667, 4616786156, 4614693603, 4621096180, 4622902182, 4625016880, 4627130570, 4629208601, 4631495377, 4633580770, 4635900767, 4638243038, 4640463204, 4642772085, 4644985383, 4646957550, 4649076129, 4651187923, 4653276160, 4655406545, 4657549644, 4659573562, 4661591075, 4663767297, 4665881553, 4667649646, 4667776163, 4667780159, 4667784155, 4667788151, 4667796158, 4667800154, 4667804150, 4667808146, 4669304115, 4671439397, 4673552292, 4675649152, 4677879439, 4680243416, 4682430820, 4684794173, 4687199264, 4689498618, 4691878259, 4694129323, 4696390583, 4698462397, 4700805102, 4703131172, 4705245695, 4707402466, 4709568843, 4711689011, 4713843589, 4715854297, 4717959126, 4733430285, 4731310204, 4729079248, 4726702284, 4724480597, 4722204376, 4720127010, 4735776304, 4738010610, 4740260648, 4742278621, 4744417402, 4746562667, 4748713704, 4750613958, 4752565477, 4754718357, 4756810435, 4758720420, 4758851148, 4758855144, 4758859140, 4758863136, 4758871143, 4758875139, 4758879135, 4758883131, 4760361961, 4762449633, 4764598632, 4766747631, 4768974545, 4771436426, 4773764984, 4776098161, 4778451053, 4780629867, 4783071690, 4785325315, 4787565927, 4789609148, 4791926745, 4794242176, 4796243555, 4798270510, 4800419894, 4802552654, 4804638185, 4806800245, 4808897799, 4811013834, 4813321807, 4815424465, 4817563539, 4819850075, 4822230562, 4824395023, 4839479699, 4837317163, 4835179621, 4833028476, 4830944740, 4828758276, 4826673030, 4841673205, 4843606389, 4845739817, 4847903586, 4849990284, 4850136981, 4850140977, 4850144973, 4850148969, 4850156976, 4850160972, 4850164968, 4850168964, 4851557637, 4853503652, 4855485054, 4857568196, 4859784204, 4862262118, 4864663253, 4866989551, 4869360031, 4871477266, 4873920164, 4876162434, 4878424462, 4880739247, 4882965357, 4885199956, 4887171730, 4889073854, 4891219275, 4893234259, 4895458685, 4897692145, 4899919617, 4901778334, 4904034686, 4906205131, 4908329493, 4910390073, 4912591832, 4914694577, 4916873093, 4919040149, 4921212800, 4923380635, 4925525332, 4927727079, 4929947131, 4932141237, 4933942691, 4937966470, 4936167209, 4936024747, 4936020751, 4936016755, 4936012759, 4940001644, 4940009651, 4940013647, 4940017643, 4940021639, 4941303797, 4950043724, 4947976955, 4945688612, 4943258795, 4958956081, 4956639632, 4954299983, 4952027276, 4961262076, 4963576716, 4965634733, 4967941134, 4970054131, 4972292907, 4974493868, 4976674390, 4978830918, 4980961136, 4983026445, 4985259540, 4987141451, 4989344954, 4991264855, 4993412656, 4995545284, 4997647180, 4999881799, 5002144614, 5004103136, 5006329972, 5008542332, 5010779540, 5012986439, 5015224748, 5017491116, 5019730445, 5022089639, 5024307575, 5026351322, 5028303108, 5030391883, 5031916566, 5032723825, 5032727821, 5032731817, 5032739824, 5032743820, 5032747816, 5032751812, 5034064475, 5035926554, 5037992225, 5040135426, 5042386742, 5044608472, 5046910975, 5049328746, 5051568267, 5053839911, 5055850940, 5058026616, 5060167400, 5072726779, 5070488068, 5068349569, 5066354328, 5064305822, 5062117884, 5083241764, 5081067677, 5078925274, 5077028360, 5074939908, 5085306785, 5087489469, 5089629891, 5091680680, 5093941074, 5096262266, 5098461806, 5100653867, 5102862138, 5105138397, 5107412221, 5109637803, 5111969168, 5114140462, 5116373298, 5118378494, 5120171190, 5122202761, 5124131718, 5125209857, 5125213853, 5125217849, 5125225856, 5125229852, 5125233848, 5125237844, 5126599571, 5128451532, 5130540021, 5132504183, 5134521115, 5136767400, 5138987594, 5141261220, 5143560744, 5145797441, 5147989462, 5150203438, 5152413515, 5154562206, 5156554398, 5158740513, 5160884548, 5162507769, 5164356128, 5166082357, 5168101231, 5170298712, 5172328879, 5174435593, 5176329844, 5178462730, 5180333358, 5182574294, 5184717829, 5186936056, 5189137729, 5191438446, 5193853346, 5196262731, 5198620902, 5200999639, 5203333095, 5205602412, 5207851419, 5210057911, 5212061104, 5213634581, 5214145456, 5214398863, 5214402859, 5214406855, 5214414862, 5214418858, 5214422854, 5214426850, 5215660739, 5217616217, 5219654018, 5221858252, 5224007816, 5226193407, 5228450540, 5230681276, 5232958134, 5235198117, 5237265890, 5239388170, 5241598130, 5243771543, 5245763603, 5247848898, 5250003001, 5252126349, 5254219921, 5256193473, 5258319172, 5260527118, 5262622557, 5264738551, 5266901825, 5269099199, 5270836500, 5272980189, 5275258817, 5277459881, 5279537817, 5281795765, 5284099036, 5286324800, 5288533484, 5290511656, 5292833035, 5295241202, 5297674103, 5300071720, 5302400991, 5304066672, 5304196359, 5304200355, 5304204351, 5304208347, 5304216354, 5304220350, 5304224346, 5304228342, 5305337656, 5307104952, 5309056459, 5311197225, 5313239490, 5315342295, 5317570042, 5319717448, 5321879919, 5324112981, 5326203734, 5328198777, 5330336309, 5332397811, 5334426610, 5336428335, 5338467469, 5340543195, 5342301247, 5344344261, 5346373394, 5347993205, 5349855931, 5351925535, 5353986535, 5356154340, 5358000017, 5360275748, 5362380779, 5364656613, 5366764196, 5369030541, 5371135869, 5373266683, 5375287921, 5377461723, 5379694935, 5381981086, 5384279062, 5386509090, 5388549472, 5390181098, 5390307309, 5390311305, 5390315301, 5390319297, 5390327304, 5390331300, 5390335296, 5390339292, 5390780719, 5391664442, 5393534592, 5395438054, 5397548384, 5399602715, 5401589187, 5403627419, 5405665141, 5407803846, 5409737569, 5411741695, 5413862166, 5415799974, 5417719032, 5419690230, 5421731346, 5423796818, 5425858503, 5428029678, 5430329850, 5432437302, 5434654197, 5436853736, 5438871844, 5440994519, 5443000658, 5445109842, 5447283059, 5449413617, 5451473514, 5453608733, 5455666348, 5461619238, 5459624309, 5457627602, 5463718984, 5465768059, 5467924724, 5469605479, 5471439020, 5473532999, 5475462088, 5477101763, 5478523384, 5478912376, 5478920383, 5478924379, 5478928375, 5478932371, 5478936367, 5479269253, 5480908087, 5482659445, 5484475377, 5486300377, 5488146101, 5490171523, 5492156102, 5494186452, 5496262809, 5498190529, 5499939134, 5501816533, 5503704327, 5505629573, 5507592598, 5509422872, 5511547156, 5513645833, 5515781967, 5518022310, 5520291330, 5522672714, 5524900715, 5527142099, 5529180416, 5531087300, 5533049412, 5534977910, 5536940740, 5538981847, 5540984986, 5543016558, 5545025033, 5546839952, 5548769148, 5550877682, 5552739871, 5554823108, 5557016964, 5563687966, 5561419504, 5559444830, 5566158449, 5567107511, 5567563802, 5567567798, 5567571794, 5567575790, 5567579786, 5567874903, 5569090292, 5570477804, 5572055575, 5573773779, 5575478616, 5577175422, 5578829895, 5580536438, 5582557275, 5583843041, 5583890218, 5583947895, 5584831361, 5586569195, 5588299307, 5590172215, 5592078027, 5594173069, 5596330983, 5598577103, 5600466251, 5602782975, 5604879539, 5606778196, 5608661692, 5610567688, 5612429855, 5614211170, 5616074670, 5617996318, 5619717308, 5621585899, 5623410719, 5625102287, 5626936240, 5628905293, 5630776623, 5632625108, 5634738902, 5636786601, 5638926212, 5641023231, 5643044109, 5644870732, 5647057788, 5647053792, 5647049796, 5647045800, 5646864601, 5646132537, 5647061784, 5647827451, 5648603785, 5649530304, 5650434697, 5651404307, 5652289554, 5653108567, 5654083140, 5654814401, 5654818397, 5654822393, 5655251784, 5656158590, 5657089334, 5658045586, 5659196429, 5661018330, 5663155296, 5665219849, 5667301966, 5669359689, 5671237166, 5673056017, 5674993236, 5676679499, 5677895679, 5679006244, 5680086614, 5681192580, 5682280849, 5683459555, 5684579216, 5686297753, 5688132356, 5689429910, 5690913110, 5692755767, 5694607673, 5696554277, 5698682935, 5700469742, 5701680749, 5702607976, 5703341961, 5703345957, 5703349953, 5703353949, 5703357945, 5703361941, 5703365937, 5703369933, 5703373929, 5703377925, 5703381921, 5703385917, 5703389913, 5703393909, 5703397905, 5703401901, 5703405897, 5703409893, 5703413889, 5703417885, 5703421881, 5703425877, 5703429873, 5710055505, 5708161348, 5706242257, 5704553018, 5711821289, 5713458450, 5715070019, 5716603434, 5717735234, 5717739230, 5717743226, 5717747222, 5717751218, 5717755214, 5717759210, 5717763206, 5718918496, 5720370237, 5720798288, 5721574109, 5723089071, 5724642435, 5726260856, 5727839496, 5728904082, 5728908078, 5728912074, 5728920081, 5728928901, 5728924491, 5728933311, 5728937721, 5728942131, 5728946541, 5728950951, 5728955361, 5728959771, 5728964181, 5728968591, 5728973001, 5728977411, 5728981821, 5728986231, 5728990641, 5728995051, 5728999461, 5729003871, 5729008281, 5729012691, 5729017101, 5729246090, 5729605290, 5729954106, 5730298888, 5730640772, 5730972299, 5731296706, 5731618404, 5731853766, 5731858176, 5731862586, 5731866996, 5731871406, 5731875816, 5731880226, 5731884636, 5732146297, 5732467194, 5732562329, 5732727386, 5733038790, 5733360161, 5733686568, 5734006444, 5734227207, 5734231617, 5734236027) 3455306614 2333616 imcd_lzw_decode_size returned IMCD_LZW_TABLE_TOO_SMALL

File saved by script:

Here's a google drive link to the output - if you have a different preferred form of file sharing just LMK

https://drive.google.com/file/d/1ZmyyQjBM0FOn7W8oQgAoMetUGZZ8bRFS/view?usp=sharing

The LZW compressed segment is corrupted. The libtiff library throws an Using code not yet in table error and Bio-Formats 6.16 stops decoding after about a quarter.

Which Bio-Formats version was used to produce the file? Was multi-threading enabled? This could be related to the following issues. There was also an issue with multi-threaded export from QuPath which I cannot find right now....

https://forum.image.sc/t/bioformats-lzw-compression-missing-image-parts/64451
ome/bioformats#3752

Try to re-write the file using latest versions or report the issue with the writing software. Here's a TIFF file containing just the corrupted segment: 1_3455306614_2333616.zip

Thanks for looking into this @cgohlke , I will follow-up with the folks who generated the images to see if they have any info on the above. If anything relevant pops up I'll be sure to post it here. Thanks again!